\n
\n \n
\n\n\n\n\n","import { render } from \"./MenuBar.vue?vue&type=template&id=27ee8406\"\nimport script from \"./MenuBar.vue?vue&type=script&lang=js\"\nexport * from \"./MenuBar.vue?vue&type=script&lang=js\"\n\nimport \"./MenuBar.vue?vue&type=style&index=0&id=27ee8406&lang=css\"\n\nimport exportComponent from \"/app/node_modules/vue-loader-v16/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","
\n \n\n\n\n\n","import { render } from \"./MenuItem.vue?vue&type=template&id=52d3d23b&scoped=true\"\nimport script from \"./MenuItem.vue?vue&type=script&lang=js\"\nexport * from \"./MenuItem.vue?vue&type=script&lang=js\"\n\nimport \"./MenuItem.vue?vue&type=style&index=0&id=52d3d23b&scoped=true&lang=css\"\n\nimport exportComponent from \"/app/node_modules/vue-loader-v16/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-52d3d23b\"]])\n\nexport default __exports__","
\n \n \n
\n\n\n\n\n","import { render } from \"./BoardCell.vue?vue&type=template&id=65f504e1\"\nimport script from \"./BoardCell.vue?vue&type=script&lang=js\"\nexport * from \"./BoardCell.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"/app/node_modules/vue-loader-v16/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","export const MODE_SELECTING = 'selecting';\nexport const MODE_DRAWING = 'drawing';\nexport const MODE_ERASING = 'erasing';\nexport const MODE_LINE = 'line';\nexport const MODE_RECTANGLE = 'rectangle';\nexport const MODE_CIRCLE = 'circle';\nexport const MODE_TEXT = 'text';\nexport const MODE_IMAGE = 'image';\n","import axios from \"axios\";\nimport {SERVICE_BOARD_URI} from \"@/util/api-host\";\nimport {authHeader} from \"@/util/auth-header\";\n\nexport class BoardsManager {\n constructor(board_id, store, component) {\n this.board_id = board_id;\n this.store = store;\n this.cells = {};\n this.cell_by_user = {};\n this.objects_by_cell = {};\n this.store.dispatch('auth/autoLogin').then(() => {\n axios.get(\n SERVICE_BOARD_URI + '/board',\n {\n params: {board_id: this.board_id},\n headers: authHeader(),\n },\n ).then(resp => {\n const objects = resp.data.payload.objects;\n for (const object of objects) {\n if (!this.objects_by_cell.hasOwnProperty(object.cId)) {\n this.objects_by_cell[object.cId] = [];\n }\n this.objects_by_cell[object.cId].push(object.content);\n }\n component.board_fetched = true;\n });\n });\n }\n\n onNewSocketMessage(t, a, payload) {\n const cellId = payload.fId.split(':', 2)[1];\n if (!cellId) {\n return;\n }\n switch (t) {\n case 3002:\n if (!a || a === localStorage.getItem('username')) {\n return;\n }\n if (this.cell_by_user.hasOwnProperty(a) && this.cell_by_user[a] !== cellId) {\n const old_cellId = this.cell_by_user[a];\n this.cells[old_cellId].removeCursor(a);\n }\n this.cells[cellId].handleMouseMove({\n username: a,\n x: payload.x,\n y: payload.y,\n });\n this.cell_by_user[a] = cellId;\n break;\n case 3003:\n this.cells[cellId].handleObjectAddition({object: payload.o});\n break;\n case 3004:\n this.cells[cellId].handleObjectTransform({objects: payload.o});\n break;\n case 3005:\n this.cells[cellId].handleObjectDeletion({uuids: payload.o});\n break;\n default:\n console.error('unrecognized socket message', payload);\n }\n }\n\n registerBoardCell(cell) {\n this.cells[cell.cellId] = cell;\n }\n\n unregisterBoardCell(cell) {\n delete this.cells[cell.cellId];\n }\n}","export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--7-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--7-oneOf-1-1!../../../../node_modules/vue-loader-v16/dist/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--7-oneOf-1-2!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader-v16/dist/index.js??ref--1-1!./CollabCode.vue?vue&type=style&index=0&id=5b8a66de&lang=css\"","export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--7-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--7-oneOf-1-1!../../../../node_modules/vue-loader-v16/dist/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--7-oneOf-1-2!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader-v16/dist/index.js??ref--1-1!./MenuItem.vue?vue&type=style&index=0&id=52d3d23b&scoped=true&lang=css\"","export * from \"-!../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--7-oneOf-1-0!../../../../../node_modules/css-loader/dist/cjs.js??ref--7-oneOf-1-1!../../../../../node_modules/vue-loader-v16/dist/stylePostLoader.js!../../../../../node_modules/postcss-loader/src/index.js??ref--7-oneOf-1-2!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader-v16/dist/index.js??ref--1-1!./YTMFormula.vue?vue&type=style&index=0&id=4493c835&scoped=true&lang=css\"","export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--7-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--7-oneOf-1-1!../../../../node_modules/vue-loader-v16/dist/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--7-oneOf-1-2!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader-v16/dist/index.js??ref--1-1!./MenuBar.vue?vue&type=style&index=0&id=27ee8406&lang=css\"","export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--7-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--7-oneOf-1-1!../../../../node_modules/vue-loader-v16/dist/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--7-oneOf-1-2!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader-v16/dist/index.js??ref--1-1!./CollabEditor.vue?vue&type=style&index=0&id=8b69f3f4&lang=css\""],"sourceRoot":""}