{"version":3,"file":"js/app.4f5730a6.js","mappings":"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","sources":["webpack://Picto/./src/components/CanvasMessage.vue","webpack://Picto/src/components/CanvasMessage.vue","webpack://Picto/./src/components/CanvasMessage.vue?d27b","webpack://Picto/./src/components/CanvasMessage.vue?a674","webpack://Picto/./src/components/Message.vue","webpack://Picto/src/components/Message.vue","webpack://Picto/./src/components/Message.vue?7120","webpack://Picto/./src/components/Message.vue?216b","webpack://Picto/./src/assets/js/notepad.js","webpack://Picto/./src/App.vue","webpack://Picto/src/App.vue","webpack://Picto/./src/App.vue?51dd","webpack://Picto/./src/App.vue?0e40","webpack://Picto/./src/registerServiceWorker.js","webpack://Picto/./src/views/Join.vue","webpack://Picto/./src/components/JoinForm.vue","webpack://Picto/./src/components/Spinner.vue","webpack://Picto/./src/components/Spinner.vue?b6e3","webpack://Picto/src/components/JoinForm.vue","webpack://Picto/./src/components/JoinForm.vue?4c36","webpack://Picto/./src/components/JoinForm.vue?cb16","webpack://Picto/./src/components/PublicRooms.vue","webpack://Picto/src/components/PublicRooms.vue","webpack://Picto/./src/components/PublicRooms.vue?5923","webpack://Picto/./src/components/PublicRooms.vue?e971","webpack://Picto/./src/components/UpdateManager.vue","webpack://Picto/src/components/UpdateManager.vue","webpack://Picto/./src/components/UpdateManager.vue?a94a","webpack://Picto/./src/components/UpdateManager.vue?857e","webpack://Picto/src/views/Join.vue","webpack://Picto/./src/views/Join.vue?5617","webpack://Picto/./src/views/Join.vue?833f","webpack://Picto/./src/views/Moderate.vue","webpack://Picto/./src/components/AuthForm.vue","webpack://Picto/src/components/AuthForm.vue","webpack://Picto/./src/components/AuthForm.vue?bad9","webpack://Picto/./src/components/AuthForm.vue?8dd0","webpack://Picto/./src/components/RoomList.vue","webpack://Picto/src/components/RoomList.vue","webpack://Picto/./src/components/RoomList.vue?93d4","webpack://Picto/./src/components/RoomList.vue?375f","webpack://Picto/./src/components/StateList.vue","webpack://Picto/src/components/StateList.vue","webpack://Picto/./src/components/StateList.vue?d64d","webpack://Picto/./src/components/StateList.vue?6d56","webpack://Picto/./src/components/ModeratedMessageList.vue","webpack://Picto/./src/components/ModeratedMessage.vue","webpack://Picto/src/components/ModeratedMessage.vue","webpack://Picto/./src/components/ModeratedMessage.vue?16a7","webpack://Picto/./src/components/ModeratedMessage.vue?b575","webpack://Picto/./src/assets/js/runlengthEncoder.js","webpack://Picto/./src/assets/js/message.js","webpack://Picto/./src/assets/js/colours.js","webpack://Picto/src/components/ModeratedMessageList.vue","webpack://Picto/./src/components/ModeratedMessageList.vue?f5cb","webpack://Picto/./src/components/ModeratedMessageList.vue?6d7c","webpack://Picto/src/views/Moderate.vue","webpack://Picto/./src/views/Moderate.vue?a7a8","webpack://Picto/./src/views/Moderate.vue?3e41","webpack://Picto/./src/router/index.js","webpack://Picto/./src/store/client.js","webpack://Picto/./src/store/socket.js","webpack://Picto/./src/store/messages.js","webpack://Picto/./src/store/compose.js","webpack://Picto/./src/store/room.js","webpack://Picto/./src/store/index.js","webpack://Picto/./src/plugins/fontawesome-vue.js","webpack://Picto/./src/main.js","webpack://Picto/webpack/bootstrap","webpack://Picto/webpack/runtime/chunk loaded","webpack://Picto/webpack/runtime/compat get default export","webpack://Picto/webpack/runtime/define property getters","webpack://Picto/webpack/runtime/ensure chunk","webpack://Picto/webpack/runtime/get javascript chunk filename","webpack://Picto/webpack/runtime/get mini-css chunk filename","webpack://Picto/webpack/runtime/global","webpack://Picto/webpack/runtime/hasOwnProperty shorthand","webpack://Picto/webpack/runtime/load script","webpack://Picto/webpack/runtime/make namespace object","webpack://Picto/webpack/runtime/publicPath","webpack://Picto/webpack/runtime/css loading","webpack://Picto/webpack/runtime/jsonp chunk loading","webpack://Picto/webpack/startup"],"sourcesContent":["var render = function render(){var _vm=this,_c=_vm._self._c;return _c('Message',{attrs:{\"copyable\":true,\"author\":_vm.msg.author,\"colour\":_vm.msg.colour,\"hidden\":_vm.msg.hidden},on:{\"copy\":_vm.handleCopy,\"hide\":_vm.handleHide}},[_c('canvas',{directives:[{name:\"show\",rawName:\"v-show\",value:(!_vm.msg.hidden),expression:\"!msg.hidden\"}],attrs:{\"id\":_vm.getID}}),(_vm.msg.hidden)?_c('div',{staticClass:\"canvasCover\"},[_vm._v(\"Hidden\")]):_vm._e()])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n","import mod from \"-!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./CanvasMessage.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./CanvasMessage.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./CanvasMessage.vue?vue&type=template&id=7499fa90&scoped=true&lang=html&\"\nimport script from \"./CanvasMessage.vue?vue&type=script&lang=js&\"\nexport * from \"./CanvasMessage.vue?vue&type=script&lang=js&\"\nimport style0 from \"./CanvasMessage.vue?vue&type=style&index=0&id=7499fa90&prod&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"7499fa90\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{class:'ratio ' + (this.hidden ? 'hidden' : '')},[_c('div',{staticClass:\"inner\",style:({ borderColor: this.borderCol })},[(_vm.author)?_c('div',{staticClass:\"author\",style:({ background: this.colour, borderColor: this.borderCol })},[_c('span',[_vm._v(_vm._s(_vm.author))]),(_vm.copyable && !_vm.hidden)?_c('span',{staticClass:\"copy\",attrs:{\"title\":'Copy this message' + (this.hidden ? ' (disabled)' : '')}},[_c('font-awesome-icon',{staticClass:\"icn\",attrs:{\"icon\":\"copy\"},on:{\"click\":function($event){!_vm.hidden ? _vm.$emit('copy') : null}}})],1):_vm._e(),(_vm.copyable)?_c('span',{staticClass:\"hide\",attrs:{\"title\":(this.hidden ? 'Show' : 'Hide') + ' this message'}},[_c('font-awesome-icon',{staticClass:\"icn\",attrs:{\"icon\":this.hidden ? 'eye' : 'eye-slash'},on:{\"click\":function($event){return _vm.$emit('hide')}}})],1):_vm._e()]):_vm._e(),_c('div',{staticClass:\"content\"},[_vm._t(\"default\")],2)])])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n","import mod from \"-!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./Message.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./Message.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./Message.vue?vue&type=template&id=959157d4&scoped=true&lang=html&\"\nimport script from \"./Message.vue?vue&type=script&lang=js&\"\nexport * from \"./Message.vue?vue&type=script&lang=js&\"\nimport style0 from \"./Message.vue?vue&type=style&index=0&id=959157d4&prod&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"959157d4\",\n null\n \n)\n\nexport default component.exports","class Notepad {\n constructor(width, height, canvas) {\n this.canvas = canvas;\n this.ctx = this.canvas.getContext(\"2d\");\n this.width = width;\n this.height = height;\n this.canvas.width = this.width;\n this.canvas.height = this.height;\n this.saturation = 255; /*Saturation should be in range 0-255 inclusive*/\n }\n\n placeImageData(data) {\n for (var i = 0; i < this.width * this.height; i++) {\n if (data[\"data\"][i] != 0) {\n this.setPixel(\n Math.round(i % data[\"span\"]),\n Math.floor(i / data[\"span\"]),\n data[\"data\"][i]\n );\n }\n }\n }\n\n loadImageData(data) {\n this.ctx.clearRect(0, 0, this.width, this.height);\n this.placeImageData(data);\n }\n\n setPixel(x, y, i, s) {\n s = s || 0;\n this.ctx.fillStyle = this.getColour(i);\n this.ctx.clearRect(x - s, y - s, 1 + s * 2, 1 + s * 2);\n this.ctx.fillRect(x - s, y - s, 1 + s * 2, 1 + s * 2);\n }\n\n getColour(i) {\n switch (i) {\n case 0:\n return \"rgba(255,255,255,0)\";\n case 1:\n return \"rgba(0,0,0,1)\";\n case 2:\n return \"rgba(85,85,85,1)\";\n case 3:\n return \"rgba(170,170,170,1)\";\n default:\n /**This is my (Josh's) nice way of generating rainbows.\n * No touchy. >:c\n * It goes\n * ___ ___ ___ ___ ___\n * \\ /| \\ /...\\ / |\\ / \\ /\n * \\ /.| \\ /|...|\\ / |.\\ / \\ /\n * \\/..| \\/ |...| \\/ |..\\/ \\/\n * ^up ^flat ^down\n */\n var toCode = (r, g, b) => {\n return \"rgba(\" + r + \",\" + g + \",\" + b + \",1)\";\n };\n\n var up = i =>\n Math.round(255 - this.saturation + this.saturation * (i % 1));\n var flat = () => 255;\n var down = i =>\n Math.round(255 - this.saturation + this.saturation * (1 - (i % 1)));\n\n var ci = ((i - 4) / 59) * 3;\n\n switch (Math.floor(ci)) {\n case 0:\n return toCode(flat(ci), up(ci), down(ci));\n case 1:\n return toCode(down(ci), flat(ci), up(ci));\n case 2:\n return toCode(up(ci), down(ci), flat(ci));\n }\n }\n }\n}\n\nexport default Notepad;\n","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{attrs:{\"id\":\"app\"}},[_c('router-view')],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n","import mod from \"-!../node_modules/thread-loader/dist/cjs.js!../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./App.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../node_modules/thread-loader/dist/cjs.js!../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./App.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./App.vue?vue&type=template&id=09e7f9ce&\"\nimport script from \"./App.vue?vue&type=script&lang=js&\"\nexport * from \"./App.vue?vue&type=script&lang=js&\"\nimport style0 from \"./App.vue?vue&type=style&index=0&id=09e7f9ce&prod&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","/* eslint-disable no-console */\n\nimport { register } from \"register-service-worker\";\n\nif (process.env.NODE_ENV === \"production\") {\n register(`${process.env.BASE_URL}service-worker.js`, {\n ready() {\n console.log(\n \"App is being served from cache by a service worker.\\n\" +\n \"For more details, visit https://goo.gl/AFskqB\"\n );\n },\n registered() {\n console.log(\"Service worker has been registered.\");\n },\n cached() {\n console.log(\"Content has been cached for offline use.\");\n },\n updatefound(r) {\n console.log(\"New content is downloading.\");\n window._worker = r;\n document.dispatchEvent(\n new CustomEvent(\"sw-status\", { detail: \"update-preparing\" })\n );\n },\n updated(r) {\n console.log(\"New content is available.\");\n window._worker = r;\n document.dispatchEvent(\n new CustomEvent(\"sw-status\", { detail: \"update-ready\" })\n );\n },\n offline() {\n console.log(\n \"No internet connection found. App is running in offline mode.\"\n );\n document.dispatchEvent(\n new CustomEvent(\"sw-status\", { detail: \"offline\" })\n );\n },\n error(error) {\n console.error(\"Error during service worker registration:\", error);\n }\n });\n}\n\nwindow.document.addEventListener(\"sw-perform-update\", () => {\n if (window._worker) {\n window._worker.waiting.postMessage({ type: \"SKIP_WAITING\" });\n\n navigator.serviceWorker.addEventListener(\"controllerchange\", () => {\n console.log(\"rf\");\n window.location.reload();\n });\n }\n});\n","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{staticClass:\"join\"},[_c('a',{staticClass:\"sr-only\",attrs:{\"href\":\"#core\"}},[_vm._v(\"Skip to join form\")]),_c('div',{staticClass:\"container\"},[_c('img',{staticClass:\"logo\",attrs:{\"src\":\"/img/logo.svg\",\"alt\":\"picto\"}}),_c('p',[_vm._v(\" Send doodles to your friends and chat with Picto, the scribble-powered online messenger. \")]),_c('hr'),_c('JoinForm'),(!_vm.$route.params.id)?_c('PublicRooms'):_vm._e()],1),_c('footer',[_c('UpdateManager',{staticClass:\"item\",attrs:{\"link\":\"https://github.com/onfe/Picto/releases\",\"version\":_vm.version,\"status\":_vm.$store.state.client.swStatus},on:{\"update\":_vm.appUpdate}}),_c('div',{staticClass:\"item\"},[_c('font-awesome-icon',{staticClass:\"icn pad\",attrs:{\"icon\":\"bug\"}}),_c('a',{attrs:{\"href\":\"https://github.com/onfe/Picto/issues?q=is%3Aissue+is%3Aopen+label%3Abug\"}},[_vm._v(\"Found a bug?\")])],1),_c('div',{staticClass:\"item\"},[_c('font-awesome-icon',{staticClass:\"icn pad\",attrs:{\"icon\":['fab', 'twitter']}}),_c('a',{attrs:{\"href\":\"https://twitter.com/PictoTweets\"}},[_vm._v(\"Twitter\")])],1),_c('div',{staticClass:\"item\"},[_vm._v(\" Made with \"),_c('font-awesome-icon',{staticClass:\"icn\",attrs:{\"icon\":\"heart\"}}),_vm._v(\" by \"),_c('a',{attrs:{\"href\":\"https://joshuarainbow.co.uk/\"}},[_vm._v(\"Josh\")]),_vm._v(\", \"),_c('a',{attrs:{\"href\":\"https://onfe.uk/\"}},[_vm._v(\"Eddie\")]),_vm._v(\" & \"),_c('a',{attrs:{\"href\":\"https://freddyheppell.com/\"}},[_vm._v(\"Freddy\")])],1)],1)])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('section',{staticClass:\"join-form\",attrs:{\"id\":\"core\"}},[(_vm.$route.params.id)?_c('p',[_vm._v(\" You're joining room: \"),_c('br'),_c('strong',[_vm._v(_vm._s(_vm.$route.params.id))])]):_c('p',[_vm._v(\"Enter a nickname to create a room...\")]),_c('div',{staticClass:\"joinbox font-pixel\",class:{ error: _vm.error }},[_c('form',{on:{\"submit\":function($event){$event.preventDefault();return _vm.join.apply(null, arguments)}}},[_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.name),expression:\"name\"}],staticClass:\"font-pixel\",attrs:{\"name\":\"name\",\"id\":\"name\",\"placeholder\":\"Type a nickname\",\"autocorrect\":\"off\",\"autocapitalize\":\"off\",\"autofocus\":\"\",\"disabled\":_vm.loading},domProps:{\"value\":(_vm.name)},on:{\"input\":function($event){if($event.target.composing)return;_vm.name=$event.target.value}}}),_c('label',{staticClass:\"sr-only\",attrs:{\"for\":\"name\"}},[_vm._v(\"Nickname\")]),_c('button',{attrs:{\"type\":\"submit\",\"name\":\"button\",\"title\":_vm.$route.params.id ? `Join room (${_vm.$route.params.id})` : 'Create room',\"aria-label\":_vm.$route.params.id ? `Join room (${_vm.$route.params.id})` : 'Create room',\"disabled\":_vm.loading}},[(!_vm.loading)?_c('svg',{attrs:{\"xmlns\":\"http://www.w3.org/2000/svg\",\"width\":\"21\",\"height\":\"35\",\"viewBox\":\"0 0 21 35\"}},[_c('path',{attrs:{\"d\":\"M551,25 L551,18 L544,18 L544,25 L551,25 Z M558,32 L558,25 L551,25 L551,32 L558,32 Z M565,39 L565,32 L558,32 L558,39 L565,39 Z M558,46 L558,39 L551,39 L551,46 L558,46 Z M551,53 L551,46 L544,46 L544,53 L551,53 Z\",\"transform\":\"translate(-544 -18)\"}})]):_c('Spinner')],1)]),(_vm.error)?_c('div',{staticClass:\"error-message\"},[_vm._v(\" \"+_vm._s(_vm.error)+\" \")]):_vm._e()]),(_vm.$route.params.id)?_c('router-link',{staticClass:\"home\",attrs:{\"to\":\"/\"}},[_vm._v(\" I don't want to join this room \")]):_vm._e()],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{staticClass:\"line font-pixel\"})\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import { render, staticRenderFns } from \"./Spinner.vue?vue&type=template&id=41f489b6&scoped=true&\"\nvar script = {}\nimport style0 from \"./Spinner.vue?vue&type=style&index=0&id=41f489b6&prod&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"41f489b6\",\n null\n \n)\n\nexport default component.exports","\n\n\n\n\n","import mod from \"-!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./JoinForm.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./JoinForm.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./JoinForm.vue?vue&type=template&id=08949de0&scoped=true&\"\nimport script from \"./JoinForm.vue?vue&type=script&lang=js&\"\nexport * from \"./JoinForm.vue?vue&type=script&lang=js&\"\nimport style0 from \"./JoinForm.vue?vue&type=style&index=0&id=08949de0&prod&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"08949de0\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return (this.rooms.length > 0)?_c('section',[_c('p',[_vm._v(\"...or join a public room and get drawing\")]),_c('ol',{staticClass:\"public-rooms\"},_vm._l((this.rooms),function(room,index){return _c('li',{key:index,class:{ full: room.Full }},[_c('router-link',{staticClass:\"room-name\",attrs:{\"to\":room.Full ? '#' : 'join/' + room.Name}},[_vm._v(\" \"+_vm._s(room.Name)+\" \")]),(room.Full)?_c('div',[_vm._v(\"Full!\")]):_vm._e(),_c('div',[_vm._v(_vm._s(room.Pop)+\"/\"+_vm._s(room.Cap))])],1)}),0)]):_vm._e()\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n","import mod from \"-!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./PublicRooms.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./PublicRooms.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./PublicRooms.vue?vue&type=template&id=53acf088&scoped=true&lang=html&\"\nimport script from \"./PublicRooms.vue?vue&type=script&lang=js&\"\nexport * from \"./PublicRooms.vue?vue&type=script&lang=js&\"\nimport style0 from \"./PublicRooms.vue?vue&type=style&index=0&id=53acf088&prod&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"53acf088\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{staticClass:\"update-man\",attrs:{\"title\":_vm.hoverTitle}},[(_vm.updateable)?_c('button',{staticClass:\"update\",on:{\"click\":_vm.handleClick}},[_c('font-awesome-icon',{staticClass:\"icn pad\",class:{ spin: _vm.updating },attrs:{\"icon\":\"sync-alt\"}}),_vm._v(_vm._s(_vm.updating ? \"Updating\" : \"Update\")+\" \")],1):_c('div',{staticClass:\"version\"},[_c('font-awesome-icon',{staticClass:\"icn pad\",attrs:{\"icon\":_vm.icon}}),_c('a',{attrs:{\"href\":_vm.link}},[_vm._v(_vm._s(_vm.version))])],1)])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n","import mod from \"-!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./UpdateManager.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./UpdateManager.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./UpdateManager.vue?vue&type=template&id=74993ad3&scoped=true&lang=html&\"\nimport script from \"./UpdateManager.vue?vue&type=script&lang=js&\"\nexport * from \"./UpdateManager.vue?vue&type=script&lang=js&\"\nimport style0 from \"./UpdateManager.vue?vue&type=style&index=0&id=74993ad3&prod&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"74993ad3\",\n null\n \n)\n\nexport default component.exports","\n\n\n\n\n","import mod from \"-!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./Join.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./Join.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./Join.vue?vue&type=template&id=4d77a494&scoped=true&\"\nimport script from \"./Join.vue?vue&type=script&lang=js&\"\nexport * from \"./Join.vue?vue&type=script&lang=js&\"\nimport style0 from \"./Join.vue?vue&type=style&index=0&id=4d77a494&prod&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"4d77a494\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{staticClass:\"moderate\"},[_c('div',{staticClass:\"container\"},[_c('header',[(_vm.token)?_c('span',{attrs:{\"id\":\"sign-out\"},on:{\"click\":_vm.discardToken}},[_c('font-awesome-icon',{attrs:{\"icon\":\"sign-out-alt\",\"title\":\"sign out\"}}),_vm._v(\" Sign Out \")],1):_vm._e(),_c('h1',[_vm._v(\"Moderation dashboard\")]),(_vm.token)?_c('font-awesome-icon',{staticClass:\"icn\",class:{ active: this.refreshing },attrs:{\"id\":\"refresh\",\"disabled\":_vm.refreshing,\"icon\":\"redo-alt\"},on:{\"click\":_vm.refresh}}):_vm._e()],1),_c('hr'),(_vm.token === null)?_c('AuthForm',{on:{\"authenticated\":_vm.setToken}}):_c('div',{attrs:{\"id\":\"dashboard\"}},[_c('div',{attrs:{\"id\":\"controlPanel\"}},[_c('RoomList',{ref:\"roomList\",attrs:{\"id\":\"roomList\",\"token\":_vm.token,\"rooms\":_vm.rooms,\"selectedRoom\":_vm.selectedRoom,\"disabled\":_vm.refreshing},on:{\"select\":room => {\n this.selectedRoom = room;\n this.refresh();\n }}}),(_vm.selectedRoom)?_c('StateList',{ref:\"stateList\",attrs:{\"id\":\"stateList\",\"selectedState\":_vm.selectedState,\"selectedRoom\":_vm.selectedRoom,\"disabled\":_vm.refreshing},on:{\"select\":state => {\n this.selectedState = state;\n this.refresh();\n }}}):_vm._e()],1),_c('div',{attrs:{\"id\":\"moderatedMessages\"}},[(_vm.selectedState && _vm.selectedRoom)?_c('strong',[_vm._v(\" \"+_vm._s({ invisible: \"Invisible\", visible: \"Visible\" }[_vm.selectedState])+\" Moderated messages in room '\"+_vm._s(_vm.selectedRoom.Name)+\"': \")]):(!_vm.selectedRoom)?_c('strong',[_vm._v(\"Select a room.\")]):(!_vm.selectedState)?_c('strong',[_vm._v(\"Select a state.\")]):_vm._e(),_c('hr'),(_vm.selectedRoom && _vm.selectedState)?_c('ModeratedMessageList',{ref:\"moderatedMessageList\",attrs:{\"id\":\"moderatedMessageList\",\"token\":_vm.token,\"selectedRoomName\":_vm.selectedRoom.Name,\"selectedState\":_vm.selectedState,\"disabled\":_vm.refreshing},on:{\"refresh\":_vm.refresh}}):_vm._e()],1)])],1)])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('section',{staticClass:\"auth-form\",attrs:{\"id\":\"core\"}},[_c('p',[_vm._v(\"Enter your auth token...\")]),_c('div',{staticClass:\"authbox font-pixel\",class:{ error: _vm.error }},[_c('form',{on:{\"submit\":function($event){$event.preventDefault();return _vm.authenticate.apply(null, arguments)}}},[_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.token),expression:\"token\"}],staticClass:\"font-pixel\",attrs:{\"type\":\"password\",\"name\":\"token\",\"id\":\"token\",\"placeholder\":\"Type your auth token\",\"autocorrect\":\"off\",\"autocapitalize\":\"off\",\"autofocus\":\"\",\"disabled\":_vm.loading},domProps:{\"value\":(_vm.token)},on:{\"input\":function($event){if($event.target.composing)return;_vm.token=$event.target.value}}}),_c('label',{staticClass:\"sr-only\",attrs:{\"for\":\"token\"}},[_vm._v(\"Token\")]),_c('button',{attrs:{\"type\":\"submit\",\"name\":\"button\",\"title\":\"Submit token\",\"aria-label\":\"Submit token\",\"disabled\":_vm.loading}},[(!_vm.loading)?_c('svg',{attrs:{\"xmlns\":\"http://www.w3.org/2000/svg\",\"width\":\"21\",\"height\":\"35\",\"viewBox\":\"0 0 21 35\"}},[_c('path',{attrs:{\"d\":\"M551,25 L551,18 L544,18 L544,25 L551,25 Z M558,32 L558,25 L551,25 L551,32 L558,32 Z M565,39 L565,32 L558,32 L558,39 L565,39 Z M558,46 L558,39 L551,39 L551,46 L558,46 Z M551,53 L551,46 L544,46 L544,53 L551,53 Z\",\"transform\":\"translate(-544 -18)\"}})]):_c('Spinner')],1)]),(_vm.error)?_c('div',{staticClass:\"error-message\"},[_vm._v(\" \"+_vm._s(_vm.error)+\" \")]):_vm._e()])])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n","import mod from \"-!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./AuthForm.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./AuthForm.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./AuthForm.vue?vue&type=template&id=05dbd64b&scoped=true&\"\nimport script from \"./AuthForm.vue?vue&type=script&lang=js&\"\nexport * from \"./AuthForm.vue?vue&type=script&lang=js&\"\nimport style0 from \"./AuthForm.vue?vue&type=style&index=0&id=05dbd64b&prod&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"05dbd64b\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',[_c('strong',[_vm._v(\"Rooms:\")]),_c('ul',_vm._l((this.rooms),function(room,index){return _c('li',{key:index,class:{\n selected: _vm.selectedRoom ? room.Name == _vm.selectedRoom.Name : false,\n disabled: _vm.disabled\n },on:{\"click\":function($event){_vm.disabled ? null : _vm.$emit('select', room)}}},[_c('a',[_vm._v(_vm._s(room.Name)+\" (\"+_vm._s(room.Visible)+\":\"+_vm._s(room.Invisible)+\")\")])])}),0)])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n","import mod from \"-!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./RoomList.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./RoomList.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./RoomList.vue?vue&type=template&id=4e6538aa&scoped=true&lang=html&\"\nimport script from \"./RoomList.vue?vue&type=script&lang=js&\"\nexport * from \"./RoomList.vue?vue&type=script&lang=js&\"\nimport style0 from \"./RoomList.vue?vue&type=style&index=0&id=4e6538aa&prod&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"4e6538aa\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',[_c('strong',[_vm._v(\"States:\")]),_c('ul',_vm._l((['visible', 'invisible']),function(state){return _c('li',{key:state,class:{ selected: _vm.selectedState == state, disabled: _vm.disabled },on:{\"click\":function($event){_vm.disabled ? null : _vm.$emit('select', state)}}},[_c('a',[_vm._v(_vm._s({ visible: \"Visible\", invisible: \"Invisible\" }[state])+\" (\"+_vm._s({ visible: _vm.selectedRoom.Visible, invisible: _vm.selectedRoom.Invisible }[state])+\")\")])])}),0)])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n","import mod from \"-!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./StateList.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./StateList.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./StateList.vue?vue&type=template&id=3e9849fc&scoped=true&\"\nimport script from \"./StateList.vue?vue&type=script&lang=js&\"\nexport * from \"./StateList.vue?vue&type=script&lang=js&\"\nimport style0 from \"./StateList.vue?vue&type=style&index=0&id=3e9849fc&prod&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"3e9849fc\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('ul',[(_vm.filteredModeratedMessages.length == 0)?_c('li',[_c('p',[_vm._v(\"There's nothing here!\")])]):_vm._e(),_vm._l((_vm.filteredModeratedMessages),function(moderatedMessage){return _c('ModeratedMessage',{key:moderatedMessage.msg.hash,staticClass:\"moderatedMessage\",attrs:{\"token\":_vm.token,\"moderatedMessage\":moderatedMessage,\"selectedRoomName\":_vm.selectedRoomName,\"selectedState\":_vm.selectedState,\"disabled\":_vm.disabled},on:{\"changeState\":newState => {\n moderatedMessage.State = newState;\n _vm.$emit('refresh');\n }}})})],2)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('li',[_c('p',[_vm._v(\"Author: '\"+_vm._s(_vm.moderatedMessage.Message.Payload.Sender)+\"'\")]),_c('CanvasMessage',{attrs:{\"msg\":_vm.moderatedMessage.msg}}),_c('ul',{attrs:{\"id\":\"options\"}},[_c('li',{class:{ btn: true, selected: _vm.newState == 'visible' }},[_c('font-awesome-icon',{class:{\n icn: true,\n disabled: _vm.disabled,\n active: _vm.moderatedMessage.State == 'visible'\n },attrs:{\"icon\":\"eye\",\"title\":\"make visible\"},on:{\"click\":function($event){_vm.disabled ? null : (_vm.newState = 'visible')}}})],1),_c('li',{class:{ btn: true, selected: _vm.newState == 'invisible' }},[_c('font-awesome-icon',{class:{\n icn: true,\n disabled: _vm.disabled,\n active: _vm.moderatedMessage.State == 'invisible'\n },attrs:{\"icon\":\"eye-slash\",\"title\":\"make invisible\"},on:{\"click\":function($event){_vm.disabled ? null : (_vm.newState = 'invisible')}}})],1),_c('li',{class:{ btn: true, selected: _vm.newState == 'deleted' }},[_c('font-awesome-icon',{class:{ icn: true, disabled: _vm.disabled },attrs:{\"icon\":\"times\",\"title\":\"delete\"},on:{\"click\":function($event){_vm.disabled ? null : (_vm.newState = 'deleted')}}})],1),_c('li',{class:{ btn: true, selected: _vm.newState == 'offensive' }},[_c('font-awesome-icon',{class:{ icn: true, disabled: _vm.disabled },attrs:{\"icon\":\"exclamation-triangle\",\"title\":\"ban\"},on:{\"click\":function($event){_vm.disabled ? null : (_vm.newState = 'offensive')}}})],1),_c('div',{staticClass:\"sep\"}),_c('li',{staticClass:\"btn\",attrs:{\"id\":\"submit\"}},[_c('font-awesome-icon',{class:{\n icn: true,\n disabled: _vm.disabled || _vm.newState == _vm.moderatedMessage.State\n },attrs:{\"icon\":\"share\",\"title\":\"submit\"},on:{\"click\":function($event){!_vm.disabled && _vm.newState != _vm.moderatedMessage.State ? _vm.submit() : null}}})],1)])],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n","import mod from \"-!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./ModeratedMessage.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./ModeratedMessage.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./ModeratedMessage.vue?vue&type=template&id=3055ba24&scoped=true&\"\nimport script from \"./ModeratedMessage.vue?vue&type=script&lang=js&\"\nexport * from \"./ModeratedMessage.vue?vue&type=script&lang=js&\"\nimport style0 from \"./ModeratedMessage.vue?vue&type=style&index=0&id=3055ba24&prod&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"3055ba24\",\n null\n \n)\n\nexport default component.exports","const itobs =\n \"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/\";\n\nclass RunlengthEncoder {\n static encode(d) {\n var occurences = 0;\n var prev = null;\n var resArr = [];\n for (var i = 0; i <= d.length; i++) {\n if (prev != d[i] || i == d.length) {\n if (occurences > 4) {\n occurences -= 4;\n resArr.push(63);\n while (occurences > 63) {\n resArr.push(63);\n occurences -= 63;\n }\n resArr.push(occurences);\n resArr.push(0, prev);\n } else if (occurences > 0) {\n resArr.push(...Array(occurences).fill(prev));\n }\n occurences = 1;\n prev = d[i];\n } else {\n occurences += 1;\n }\n }\n var res = resArr.map(i => itobs[i]).join(\"\");\n return res;\n }\n\n static decode(d) {\n d = d.split(\"\").map(char => itobs.indexOf(char));\n var res = [];\n for (var i = 0; i < d.length; i++) {\n if (d[i] == 63) {\n var count = 4;\n i += 1;\n for (i; d[i] != 0; i++) {\n count += d[i];\n if (count > 192 * 64) {\n return res;\n }\n }\n res.push(...Array(count).fill(d[i + 1]));\n i += 1;\n } else {\n res.push(d[i]);\n }\n if (res.length >= 192 * 64) {\n return res;\n }\n }\n return res;\n }\n}\n\nexport default RunlengthEncoder;\n","import RunlengthEncoder from \"./runlengthEncoder.js\";\n\nclass Core {\n constructor(type, time) {\n this.type = type;\n this.time = time || Date.now();\n this.hash = Math.random()\n .toString(36)\n .substring(2, 15);\n }\n}\n\nclass Message extends Core {\n constructor(data, span, author, colour, time) {\n super(\"Message\", time);\n this._data = data;\n this.span = span;\n this.author = author;\n this.colour = colour;\n this.hidden = false;\n }\n\n get data() {\n return [...this._data];\n }\n\n raw() {\n return {\n data: this.data,\n span: this.span\n };\n }\n\n encoded() {\n return {\n data: RunlengthEncoder.encode(this.data),\n span: this.span\n };\n }\n}\n\nclass Announcement extends Core {\n constructor(text, time) {\n super(\"Announcement\", time);\n this.text = text;\n this.colour = \"#000\";\n }\n}\n\nclass Text extends Core {\n constructor(text, time) {\n super(\"Text\", time);\n this.text = text;\n this.colour = \"#808080\";\n }\n}\n\nexport { Message, Announcement, Text };\n","import Color from \"color\";\n\nconst COLOURS = [\n \"#E97777\",\n \"#008DAB\",\n \"#FFC694\",\n \"#89C7B6\",\n \"#EFC57E\",\n \"#AD84C7\",\n \"#7998C9\",\n \"#CF8EA4\"\n];\n\nfunction colour(n) {\n /*\n Returns a hex colour that will always be the same for a given n.\n The first 3 colours are set for branding purposes.\n n is zero indexed.\n */\n if (n < 3) {\n return COLOURS[n];\n } else {\n var hue = Math.floor(((360 / (Math.E / 2)) * n) % 360);\n return Color.hsl([hue, 72, 69]).hex();\n }\n}\n\nexport default colour;\n","\n\n\n\n\n","import mod from \"-!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./ModeratedMessageList.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./ModeratedMessageList.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./ModeratedMessageList.vue?vue&type=template&id=79d354f1&scoped=true&\"\nimport script from \"./ModeratedMessageList.vue?vue&type=script&lang=js&\"\nexport * from \"./ModeratedMessageList.vue?vue&type=script&lang=js&\"\nimport style0 from \"./ModeratedMessageList.vue?vue&type=style&index=0&id=79d354f1&prod&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"79d354f1\",\n null\n \n)\n\nexport default component.exports","\n\n\n\n\n","import mod from \"-!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./Moderate.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./Moderate.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./Moderate.vue?vue&type=template&id=244c5708&scoped=true&\"\nimport script from \"./Moderate.vue?vue&type=script&lang=js&\"\nexport * from \"./Moderate.vue?vue&type=script&lang=js&\"\nimport style0 from \"./Moderate.vue?vue&type=style&index=0&id=244c5708&prod&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"244c5708\",\n null\n \n)\n\nexport default component.exports","import Vue from \"vue\";\nimport Router from \"vue-router\";\nimport Meta from \"vue-meta\";\nimport store from \"../store\";\nimport Join from \"../views/Join.vue\";\nimport Moderate from \"../views/Moderate.vue\";\n\nVue.use(Router);\nVue.use(Meta, {\n // optional pluginOptions\n refreshOnceOnNavigation: true\n});\n\nconst routes = [\n {\n path: \"/\",\n name: \"home\",\n component: Join\n },\n {\n path: \"/join/:id\",\n name: \"join\",\n component: Join\n },\n {\n path: \"/join\",\n redirect: \"/\"\n },\n {\n path: \"/room/:id\",\n name: \"room\",\n component: () => import(/* webpackChunkName: \"room\" */ \"../views/Room.vue\")\n },\n {\n path: \"/room\",\n redirect: \"/\"\n },\n {\n path: \"/moderate\",\n name: \"moderate\",\n component: Moderate\n }\n];\n\nconst router = new Router({\n mode: \"history\",\n base: process.env.BASE_URL,\n routes\n});\n\nrouter.afterEach(() => {\n if (store.state.client.errorMessage != \"\") {\n // when going to a new page, clear the error.\n store.dispatch(\"client/clearError\");\n }\n});\n\nexport default router;\n","import router from \"../router\";\nimport colour from \"../assets/js/colours.js\";\nimport Vue from \"vue\";\n\nconst state = {\n username: null,\n colour: colour(0),\n status: \"idle\",\n errorMessage: \"\",\n swStatus: \"normal\"\n};\n\nconst actions = {\n join: ({ commit, dispatch }, { name, room }) => {\n commit(\"updateStatus\", \"connecting\");\n dispatch(\"socket/connect\", { name, room }, { root: true })\n .then(() => {\n Vue.analytics.trackEvent(\"client\", \"connect\", \"success\");\n commit(\"updateStatus\", \"connected\");\n })\n .catch(() => {\n Vue.analytics.trackEvent(\"client\", \"connect\", \"failure\");\n commit(\"updateStatus\", \"fail\");\n commit(\"updateError\", \"Couldn't connect to Picto.\");\n // eslint-disable-next-line no-console\n console.log(\"Failed to connect to Picto\");\n });\n },\n leave: ({ commit, dispatch }) => {\n dispatch(\"socket/disconnect\", {}, { root: true });\n dispatch(\"messages/reset\", {}, { root: true });\n dispatch(\"room/leave\", {}, { root: true });\n Vue.analytics.trackEvent(\"client\", \"disconnect\");\n commit(\"leave\");\n if (router.currentRoute.name == \"room\") {\n router.replace(`/join/${router.currentRoute.params.id}`);\n }\n },\n error: ({ commit }, error) => {\n Vue.analytics.trackEvent(\"room\", \"join\", \"error\", error.code);\n commit(\"updateError\", error.reason);\n commit(\"updateStatus\", \"fail\");\n },\n clearError: ({ commit }) => {\n commit(\"updateError\", \"\");\n },\n swUpdate: ({ commit }, type) => {\n if (type == \"offline\") {\n commit(\"updateError\", \"Picto is offline.\");\n }\n commit(\"swUpdate\", type);\n }\n};\n\nconst mutations = {\n leave: state => {\n state.username = null;\n state.colour = colour(0);\n state.status = state.status == \"connected\" ? \"idle\" : state.status;\n },\n joined: (state, pl) => {\n state.username = pl.username;\n state.colour = pl.colour;\n },\n updateError: (state, error) => {\n state.errorMessage = error;\n },\n updateStatus: (state, payload) => {\n state.status = payload;\n },\n swUpdate: (state, status) => {\n state.swStatus = status;\n }\n};\n\nconst client = {\n namespaced: true,\n state: state,\n actions: actions,\n mutations: mutations\n};\n\nexport default client;\n","const state = {\n _socket: null\n};\n\nconst getters = {\n open: state =>\n state._socket !== null && state._socket.readyState === WebSocket.OPEN\n};\n\nconst actions = {\n connect: ({ commit, dispatch }, { name, room }) => {\n return new Promise((res, rej) => {\n const proto = window.location.protocol == \"https:\" ? \"wss\" : \"ws\";\n const here = window.location.host;\n const roomarg = room ? `&room=${room}` : \"\";\n var sock = new WebSocket(`${proto}://${here}/ws?name=${name}${roomarg}`);\n\n commit(\"create\", sock);\n window._sock = sock;\n\n sock.onmessage = m => dispatch(\"_onMessage\", m);\n sock.onopen = () => {\n res();\n };\n sock.onerror = e => rej(e);\n sock.onclose = e => dispatch(\"_onClose\", e);\n });\n },\n disconnect: ({ state, commit }) => {\n if (state._socket !== null) {\n state._socket.close();\n }\n commit(\"destroy\");\n },\n _onMessage: ({ dispatch }, pl) => {\n pl = JSON.parse(pl.data);\n if (!pl.Event) {\n throw \"Payload does not contain event field.\";\n }\n const now = new Date();\n // eslint-disable-next-line no-console\n console.log(\n `[SOCK][R] (${now.getHours()}:${now.getMinutes()}:${now.getSeconds()}):`,\n pl\n );\n\n switch (pl.Event) {\n case \"message\":\n dispatch(\"messages/message\", pl, { root: true });\n break;\n case \"init\":\n dispatch(\"room/join\", pl, { root: true });\n break;\n case \"user\":\n dispatch(\"room/updateUsers\", pl, { root: true });\n break;\n case \"announcement\":\n dispatch(\"messages/announce\", pl, { root: true });\n break;\n case \"rename\":\n dispatch(\"room/rename\", pl, { root: true });\n break;\n default:\n // eslint-disable-next-line no-console\n console.log(pl);\n }\n },\n _onClose: ({ commit, dispatch }, e) => {\n commit(\"destroy\");\n if (4000 <= e.code && e.code < 5000) {\n // If 4000 <= code < 5000, it's a custom code to display an error\n dispatch(\"client/error\", e, { root: true });\n }\n dispatch(\"client/leave\", {}, { root: true });\n },\n send: ({ state }, { event, payload }) => {\n const packet = {\n Time: Date.now(),\n Event: event,\n Payload: payload\n };\n\n state._socket.send(JSON.stringify(packet));\n const now = new Date();\n // eslint-disable-next-line no-console\n console.log(\n `[SOCK][S] (${now.getHours()}:${now.getMinutes()}:${now.getSeconds()}):`,\n packet\n );\n },\n reconnect: () => {}\n};\n\nconst mutations = {\n create: (state, sock) => {\n state._socket = sock;\n },\n destroy: state => {\n state._socket = null;\n }\n};\n\nconst client = {\n namespaced: true,\n state: state,\n getters: getters,\n actions: actions,\n mutations: mutations\n};\n\nexport default client;\n","import colour from \"../assets/js/colours.js\";\nimport RunlengthEncoder from \"../assets/js/runlengthEncoder.js\";\nimport { Message, Announcement, Text } from \"../assets/js/message.js\";\n\nconst state = {\n history: [],\n unread: 0\n};\n\nconst getters = {};\n\nconst actions = {\n add: ({ commit }, message) => {\n commit(\"add\", message);\n },\n message: ({ commit }, d) => {\n const pl = d.Payload;\n pl.Data = RunlengthEncoder.decode(pl.Data);\n const message = new Message(\n pl.Data,\n pl.Span,\n pl.Sender,\n colour(pl.ColourIndex),\n d.Time\n );\n commit(\"add\", message);\n },\n announce: ({ commit }, d) => {\n const announce = new Announcement(d.Payload.Announcement, d.Time);\n commit(\"add\", announce);\n },\n join: ({ commit }, pl) => {\n const text = new Text(`${pl.name} joined.`, pl.time);\n commit(\"add\", text);\n },\n leave: ({ commit }, pl) => {\n const text = new Text(`${pl.name} left.`, pl.time);\n commit(\"add\", text);\n },\n reset: ({ commit }) => {\n commit(\"reset\");\n },\n toggleHidden: ({ commit }, msg) => {\n commit(\"toggleHidden\", msg);\n },\n read: ({ commit }) => {\n commit(\"read\");\n }\n};\n\nconst mutations = {\n add: (state, message) => {\n if (document.hidden) {\n state.unread++;\n }\n state.history.unshift(message);\n state.history.sort((a, b) => b.time - a.time);\n state.history.length = Math.min(state.history.length, 32);\n },\n toggleHidden: (state, message) => {\n for (var i = 0; i < state.history.length; i++) {\n if (state.history[i].hash == message.hash) {\n state.history[i].hidden = !state.history[i].hidden;\n return;\n }\n }\n },\n reset: state => {\n state.history = [];\n },\n read: state => {\n state.unread = 0;\n }\n};\n\nconst client = {\n namespaced: true,\n state: state,\n getters: getters,\n actions: actions,\n mutations: mutations\n};\n\nexport default client;\n","import { Message } from \"../assets/js/message.js\";\nimport Vue from \"vue\";\n\nconst state = {\n default: { tool: \"pencil\", size: \"small\", rainbow: false },\n //These get set to defaults above when reset() is called on mount.\n tool: null,\n size: null,\n rainbow: null\n};\n\nconst getters = {};\n\nconst actions = {\n send: ({ dispatch, rootState }) => {\n const raw = window._sketch.getBakedImageData();\n if (raw == null) {\n // Don't send empty messages.\n return;\n }\n\n const msg = new Message(\n raw.data,\n raw.span,\n rootState.client.username,\n rootState.client.colour\n );\n\n dispatch(\"clear\");\n Vue.analytics.trackEvent(\"message\", \"send\");\n dispatch(\"messages/add\", msg, { root: true });\n dispatch(\n \"socket/send\",\n { event: \"message\", payload: msg.encoded() },\n { root: true }\n );\n },\n clear: () => {\n window._sketch.clear();\n },\n copy: ({ rootState }, msg) => {\n if (!msg) {\n var msgs = rootState.messages.history\n .sort((a, b) => {\n a.id - b.id;\n })\n .filter(a => a.type === \"Message\" && !a.hidden);\n if (msgs.length < 1) {\n // eslint-disable-next-line no-console\n console.error(\"No messages to copy!\");\n return;\n }\n msg = msgs[0];\n window._sketch.loadImageData(msg.raw());\n } else {\n window._sketch.loadImageData(msg.raw());\n }\n },\n pencil: ({ commit, state }) => {\n commit(\"rainbow\", state.tool == \"pencil\" && !state.rainbow);\n window._sketch.setPenMode();\n commit(\"pencil\");\n },\n eraser: ({ commit }) => {\n window._sketch.setEraserMode();\n commit(\"eraser\");\n },\n large: ({ commit }) => {\n window._sketch.pensize = 1;\n commit(\"large\");\n },\n small: ({ commit }) => {\n window._sketch.pensize = 0;\n commit(\"small\");\n },\n write: (_, chr) => {\n window._sketch.drawChar(chr);\n },\n backspace: () => {\n window._sketch.backspace();\n },\n reset: ({ commit }) => {\n commit(\"reset\");\n }\n};\n\nconst mutations = {\n pencil: state => {\n state.tool = \"pencil\";\n },\n eraser: state => {\n state.tool = \"eraser\";\n state.rainbow = false;\n },\n large: state => {\n state.size = \"large\";\n },\n small: state => {\n state.size = \"small\";\n },\n rainbow: (state, to) => {\n state.rainbow = to;\n },\n reset: state => {\n state.tool = state.default.tool;\n state.rainbow = state.default.rainbow;\n state.size = state.default.size;\n }\n};\n\nconst client = {\n namespaced: true,\n state: state,\n getters: getters,\n actions: actions,\n mutations: mutations\n};\n\nexport default client;\n","import { Text, Announcement } from \"../assets/js/message.js\";\nimport colour from \"../assets/js/colours.js\";\nimport router from \"../router\";\nimport Vue from \"vue\";\n\nconst state = {\n id: null,\n name: null,\n showInfo: false,\n public: false,\n joinTime: -1,\n users: []\n};\n\nconst getters = {\n title: state => (state.name ? state.name : state.id),\n invite: state => `${window.location.origin}/join/${state.id}`,\n colours: state => state.users.map((k, i) => [k, colour(i)]).filter(e => e[0])\n};\n\nconst actions = {\n join: ({ commit, dispatch }, pl) => {\n // replaces client/init\n commit(\"join\", pl);\n Vue.analytics.trackEvent(\"room\", \"join\", \"success\");\n dispatch(\"messages/add\", new Announcement(\"Welcome to Picto!\"), {\n root: true\n });\n router.push(`/room/${pl.Payload.RoomID}`);\n // the client needs it's confirmed username and colour.\n commit(\n \"client/joined\",\n {\n username: pl.Payload.Users[pl.Payload.UserIndex],\n colour: colour(pl.Payload.UserIndex)\n },\n { root: true }\n );\n },\n leave: ({ commit }) => {\n // supplements client/leave\n commit(\"leave\");\n Vue.analytics.trackEvent(\"room\", \"leave\");\n },\n updateUsers: ({ commit, dispatch, state }, d) => {\n // triggered on user join/leave\n const pl = d.Payload;\n const update = {\n name: pl.UserName,\n time: d.Time\n };\n\n // Add a note to the message history.\n if (pl.Users[pl.UserIndex] != \"\") {\n dispatch(\"messages/join\", update, { root: true });\n } else {\n dispatch(\"messages/leave\", update, { root: true });\n }\n\n // If the update is current (after we joined), mutate the user list.\n if (d.Time > state.joinTime) {\n commit(\"updateUsers\", pl);\n }\n },\n rename: ({ commit, dispatch }, pl) => {\n // replaces client/renameRoom\n const user = pl.Payload.UserName;\n const name = pl.Payload.RoomName;\n\n var message = `${user} named the room '${name}'.`;\n if (name.length == 0) {\n message = `${user} removed the room name.`;\n }\n\n Vue.analytics.trackEvent(\"room\", \"rename\");\n dispatch(\"messages/add\", new Text(message, pl.Time), { root: true });\n commit(\"rename\", name);\n },\n toggleInfo: ({ commit }) => {\n commit(\"toggleInfo\");\n }\n};\n\nconst mutations = {\n join: (state, d) => {\n const pl = d.Payload;\n state.id = pl.RoomID;\n state.users = pl.Users;\n state.name = pl.Name;\n state.public = pl.Public;\n state.showInfo = false;\n state.joinTime = Date.now();\n },\n leave: state => {\n state.id = null;\n state.name = null;\n state.users = [];\n state.public = false;\n state.showInfo = false;\n state.joinTime = -1;\n },\n updateUsers: (state, pl) => {\n state.users = pl.Users;\n },\n rename: (state, name) => {\n state.name = name;\n },\n toggleInfo: state => {\n state.showInfo = !state.showInfo;\n }\n};\n\nconst room = {\n namespaced: true,\n state: state,\n getters: getters,\n actions: actions,\n mutations: mutations\n};\n\nexport default room;\n","import Vue from \"vue\";\nimport Vuex from \"vuex\";\nimport client from \"./client\";\nimport socket from \"./socket\";\nimport messages from \"./messages\";\nimport compose from \"./compose\";\nimport room from \"./room\";\n\nVue.use(Vuex);\n\nexport default new Vuex.Store({\n state: {},\n mutations: {},\n actions: {},\n modules: {\n client,\n socket,\n messages,\n compose,\n room\n }\n});\n","import Vue from \"vue\";\n\nimport { library } from \"@fortawesome/fontawesome-svg-core\";\nimport {\n faPencilAlt,\n faEraser,\n faCircle,\n faKeyboard,\n faInfoCircle,\n faUserPlus,\n faTimesCircle,\n faDoorOpen,\n faBug,\n faHeart,\n faCodeBranch,\n faCopy,\n faEyeSlash,\n faEye,\n faSyncAlt,\n faDownload,\n faMoon,\n faSun,\n faIceCream,\n faShare,\n faCheck,\n faHourglass,\n faTimes,\n faExclamationTriangle,\n faRedoAlt,\n faSignOutAlt,\n faPaintRoller\n} from \"@fortawesome/free-solid-svg-icons\";\nimport { faDotCircle } from \"@fortawesome/free-regular-svg-icons\";\nimport { faTwitter } from \"@fortawesome/free-brands-svg-icons\";\nimport { FontAwesomeIcon } from \"@fortawesome/vue-fontawesome\";\n\n// Add the required icons to keep the bundle small.\nlibrary.add(\n faPencilAlt,\n faEraser,\n faCircle,\n faDotCircle,\n faKeyboard,\n faInfoCircle,\n faUserPlus,\n faTimesCircle,\n faDoorOpen,\n faBug,\n faHeart,\n faTwitter,\n faCodeBranch,\n faCopy,\n faEyeSlash,\n faEye,\n faSyncAlt,\n faDownload,\n faMoon,\n faSun,\n faIceCream,\n faShare,\n faCheck,\n faHourglass,\n faTimes,\n faExclamationTriangle,\n faRedoAlt,\n faSignOutAlt,\n faPaintRoller\n);\n\nVue.component(\"font-awesome-icon\", FontAwesomeIcon);\n","import Vue from \"vue\";\nimport App from \"./App.vue\";\nimport VueAnalytics from \"vue-ua\";\nimport \"./registerServiceWorker\";\nimport store from \"./store\";\nimport router from \"./router\";\nimport \"./assets/scss/style.scss\";\nimport \"./plugins/fontawesome-vue\";\n\nVue.config.productionTip = false;\n\nVue.use(VueAnalytics, {\n appName: \"Picto\",\n appVersion: \"0.0.1\",\n trackingId: \"UA-108088302-4\",\n vueRouter: router, // Pass the router instance to automatically sync with router (optional)\n trackPage: true, // Whether you want page changes to be recorded as pageviews (website) or screenviews (app), default: false\n debug: false,\n createOptions: {\n // Optional, Option when creating GA tracker, ref: https://developers.google.com/analytics/devguides/collection/analyticsjs/field-reference\n siteSpeedSampleRate: 10\n }\n});\n\nVue.use(require(\"vue-cookies\"));\n\nnew Vue({\n store,\n router,\n render: h => h(App)\n}).$mount(\"#app\");\n\n// eslint-disable-next-line no-console\nconsole.log(\n `%c Picto (client) %c v${process.env.VUE_APP_VERSION} %c`,\n \"background:#4d4d4d ; padding: 1px; border-radius: 3px 0 0 3px; color: #fff\",\n \"background:#f0f0f0 ; padding: 1px; border-radius: 0 3px 3px 0; color: #000\",\n \"background:transparent\"\n);\n","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\t// no module.id needed\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n// expose the modules object (__webpack_modules__)\n__webpack_require__.m = __webpack_modules__;\n\n","var deferred = [];\n__webpack_require__.O = function(result, chunkIds, fn, priority) {\n\tif(chunkIds) {\n\t\tpriority = priority || 0;\n\t\tfor(var i = deferred.length; i > 0 && deferred[i - 1][2] > priority; i--) deferred[i] = deferred[i - 1];\n\t\tdeferred[i] = [chunkIds, fn, priority];\n\t\treturn;\n\t}\n\tvar notFulfilled = Infinity;\n\tfor (var i = 0; i < deferred.length; i++) {\n\t\tvar chunkIds = deferred[i][0];\n\t\tvar fn = deferred[i][1];\n\t\tvar priority = deferred[i][2];\n\t\tvar fulfilled = true;\n\t\tfor (var j = 0; j < chunkIds.length; j++) {\n\t\t\tif ((priority & 1 === 0 || notFulfilled >= priority) && Object.keys(__webpack_require__.O).every(function(key) { return __webpack_require__.O[key](chunkIds[j]); })) {\n\t\t\t\tchunkIds.splice(j--, 1);\n\t\t\t} else {\n\t\t\t\tfulfilled = false;\n\t\t\t\tif(priority < notFulfilled) notFulfilled = priority;\n\t\t\t}\n\t\t}\n\t\tif(fulfilled) {\n\t\t\tdeferred.splice(i--, 1)\n\t\t\tvar r = fn();\n\t\t\tif (r !== undefined) result = r;\n\t\t}\n\t}\n\treturn result;\n};","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = function(module) {\n\tvar getter = module && module.__esModule ?\n\t\tfunction() { return module['default']; } :\n\t\tfunction() { return module; };\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","// define getter functions for harmony exports\n__webpack_require__.d = function(exports, definition) {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.f = {};\n// This file contains only the entry chunk.\n// The chunk loading function for additional chunks\n__webpack_require__.e = function(chunkId) {\n\treturn Promise.all(Object.keys(__webpack_require__.f).reduce(function(promises, key) {\n\t\t__webpack_require__.f[key](chunkId, promises);\n\t\treturn promises;\n\t}, []));\n};","// This function allow to reference async chunks\n__webpack_require__.u = function(chunkId) {\n\t// return url for filenames based on template\n\treturn \"js/\" + \"room\" + \".\" + \"de83111e\" + \".js\";\n};","// This function allow to reference async chunks\n__webpack_require__.miniCssF = function(chunkId) {\n\t// return url for filenames based on template\n\treturn \"css/\" + \"room\" + \".\" + \"2c50c2fd\" + \".css\";\n};","__webpack_require__.g = (function() {\n\tif (typeof globalThis === 'object') return globalThis;\n\ttry {\n\t\treturn this || new Function('return this')();\n\t} catch (e) {\n\t\tif (typeof window === 'object') return window;\n\t}\n})();","__webpack_require__.o = function(obj, prop) { return Object.prototype.hasOwnProperty.call(obj, prop); }","var inProgress = {};\nvar dataWebpackPrefix = \"Picto:\";\n// loadScript function to load a script via script tag\n__webpack_require__.l = function(url, done, key, chunkId) {\n\tif(inProgress[url]) { inProgress[url].push(done); return; }\n\tvar script, needAttach;\n\tif(key !== undefined) {\n\t\tvar scripts = document.getElementsByTagName(\"script\");\n\t\tfor(var i = 0; i < scripts.length; i++) {\n\t\t\tvar s = scripts[i];\n\t\t\tif(s.getAttribute(\"src\") == url || s.getAttribute(\"data-webpack\") == dataWebpackPrefix + key) { script = s; break; }\n\t\t}\n\t}\n\tif(!script) {\n\t\tneedAttach = true;\n\t\tscript = document.createElement('script');\n\n\t\tscript.charset = 'utf-8';\n\t\tscript.timeout = 120;\n\t\tif (__webpack_require__.nc) {\n\t\t\tscript.setAttribute(\"nonce\", __webpack_require__.nc);\n\t\t}\n\t\tscript.setAttribute(\"data-webpack\", dataWebpackPrefix + key);\n\t\tscript.src = url;\n\t}\n\tinProgress[url] = [done];\n\tvar onScriptComplete = function(prev, event) {\n\t\t// avoid mem leaks in IE.\n\t\tscript.onerror = script.onload = null;\n\t\tclearTimeout(timeout);\n\t\tvar doneFns = inProgress[url];\n\t\tdelete inProgress[url];\n\t\tscript.parentNode && script.parentNode.removeChild(script);\n\t\tdoneFns && doneFns.forEach(function(fn) { return fn(event); });\n\t\tif(prev) return prev(event);\n\t}\n\t;\n\tvar timeout = setTimeout(onScriptComplete.bind(null, undefined, { type: 'timeout', target: script }), 120000);\n\tscript.onerror = onScriptComplete.bind(null, script.onerror);\n\tscript.onload = onScriptComplete.bind(null, script.onload);\n\tneedAttach && document.head.appendChild(script);\n};","// define __esModule on exports\n__webpack_require__.r = function(exports) {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","__webpack_require__.p = \"/\";","var createStylesheet = function(chunkId, fullhref, resolve, reject) {\n\tvar linkTag = document.createElement(\"link\");\n\n\tlinkTag.rel = \"stylesheet\";\n\tlinkTag.type = \"text/css\";\n\tvar onLinkComplete = function(event) {\n\t\t// avoid mem leaks.\n\t\tlinkTag.onerror = linkTag.onload = null;\n\t\tif (event.type === 'load') {\n\t\t\tresolve();\n\t\t} else {\n\t\t\tvar errorType = event && (event.type === 'load' ? 'missing' : event.type);\n\t\t\tvar realHref = event && event.target && event.target.href || fullhref;\n\t\t\tvar err = new Error(\"Loading CSS chunk \" + chunkId + \" failed.\\n(\" + realHref + \")\");\n\t\t\terr.code = \"CSS_CHUNK_LOAD_FAILED\";\n\t\t\terr.type = errorType;\n\t\t\terr.request = realHref;\n\t\t\tlinkTag.parentNode.removeChild(linkTag)\n\t\t\treject(err);\n\t\t}\n\t}\n\tlinkTag.onerror = linkTag.onload = onLinkComplete;\n\tlinkTag.href = fullhref;\n\n\tdocument.head.appendChild(linkTag);\n\treturn linkTag;\n};\nvar findStylesheet = function(href, fullhref) {\n\tvar existingLinkTags = document.getElementsByTagName(\"link\");\n\tfor(var i = 0; i < existingLinkTags.length; i++) {\n\t\tvar tag = existingLinkTags[i];\n\t\tvar dataHref = tag.getAttribute(\"data-href\") || tag.getAttribute(\"href\");\n\t\tif(tag.rel === \"stylesheet\" && (dataHref === href || dataHref === fullhref)) return tag;\n\t}\n\tvar existingStyleTags = document.getElementsByTagName(\"style\");\n\tfor(var i = 0; i < existingStyleTags.length; i++) {\n\t\tvar tag = existingStyleTags[i];\n\t\tvar dataHref = tag.getAttribute(\"data-href\");\n\t\tif(dataHref === href || dataHref === fullhref) return tag;\n\t}\n};\nvar loadStylesheet = function(chunkId) {\n\treturn new Promise(function(resolve, reject) {\n\t\tvar href = __webpack_require__.miniCssF(chunkId);\n\t\tvar fullhref = __webpack_require__.p + href;\n\t\tif(findStylesheet(href, fullhref)) return resolve();\n\t\tcreateStylesheet(chunkId, fullhref, resolve, reject);\n\t});\n}\n// object to store loaded CSS chunks\nvar installedCssChunks = {\n\t143: 0\n};\n\n__webpack_require__.f.miniCss = function(chunkId, promises) {\n\tvar cssChunks = {\"605\":1};\n\tif(installedCssChunks[chunkId]) promises.push(installedCssChunks[chunkId]);\n\telse if(installedCssChunks[chunkId] !== 0 && cssChunks[chunkId]) {\n\t\tpromises.push(installedCssChunks[chunkId] = loadStylesheet(chunkId).then(function() {\n\t\t\tinstalledCssChunks[chunkId] = 0;\n\t\t}, function(e) {\n\t\t\tdelete installedCssChunks[chunkId];\n\t\t\tthrow e;\n\t\t}));\n\t}\n};\n\n// no hmr","// no baseURI\n\n// object to store loaded and loading chunks\n// undefined = chunk not loaded, null = chunk preloaded/prefetched\n// [resolve, reject, Promise] = chunk loading, 0 = chunk loaded\nvar installedChunks = {\n\t143: 0\n};\n\n__webpack_require__.f.j = function(chunkId, promises) {\n\t\t// JSONP chunk loading for javascript\n\t\tvar installedChunkData = __webpack_require__.o(installedChunks, chunkId) ? installedChunks[chunkId] : undefined;\n\t\tif(installedChunkData !== 0) { // 0 means \"already installed\".\n\n\t\t\t// a Promise means \"currently loading\".\n\t\t\tif(installedChunkData) {\n\t\t\t\tpromises.push(installedChunkData[2]);\n\t\t\t} else {\n\t\t\t\tif(true) { // all chunks have JS\n\t\t\t\t\t// setup Promise in chunk cache\n\t\t\t\t\tvar promise = new Promise(function(resolve, reject) { installedChunkData = installedChunks[chunkId] = [resolve, reject]; });\n\t\t\t\t\tpromises.push(installedChunkData[2] = promise);\n\n\t\t\t\t\t// start chunk loading\n\t\t\t\t\tvar url = __webpack_require__.p + __webpack_require__.u(chunkId);\n\t\t\t\t\t// create error before stack unwound to get useful stacktrace later\n\t\t\t\t\tvar error = new Error();\n\t\t\t\t\tvar loadingEnded = function(event) {\n\t\t\t\t\t\tif(__webpack_require__.o(installedChunks, chunkId)) {\n\t\t\t\t\t\t\tinstalledChunkData = installedChunks[chunkId];\n\t\t\t\t\t\t\tif(installedChunkData !== 0) installedChunks[chunkId] = undefined;\n\t\t\t\t\t\t\tif(installedChunkData) {\n\t\t\t\t\t\t\t\tvar errorType = event && (event.type === 'load' ? 'missing' : event.type);\n\t\t\t\t\t\t\t\tvar realSrc = event && event.target && event.target.src;\n\t\t\t\t\t\t\t\terror.message = 'Loading chunk ' + chunkId + ' failed.\\n(' + errorType + ': ' + realSrc + ')';\n\t\t\t\t\t\t\t\terror.name = 'ChunkLoadError';\n\t\t\t\t\t\t\t\terror.type = errorType;\n\t\t\t\t\t\t\t\terror.request = realSrc;\n\t\t\t\t\t\t\t\tinstalledChunkData[1](error);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t};\n\t\t\t\t\t__webpack_require__.l(url, loadingEnded, \"chunk-\" + chunkId, chunkId);\n\t\t\t\t} else installedChunks[chunkId] = 0;\n\t\t\t}\n\t\t}\n};\n\n// no prefetching\n\n// no preloaded\n\n// no HMR\n\n// no HMR manifest\n\n__webpack_require__.O.j = function(chunkId) { return installedChunks[chunkId] === 0; };\n\n// install a JSONP callback for chunk loading\nvar webpackJsonpCallback = function(parentChunkLoadingFunction, data) {\n\tvar chunkIds = data[0];\n\tvar moreModules = data[1];\n\tvar runtime = data[2];\n\t// add \"moreModules\" to the modules object,\n\t// then flag all \"chunkIds\" as loaded and fire callback\n\tvar moduleId, chunkId, i = 0;\n\tif(chunkIds.some(function(id) { return installedChunks[id] !== 0; })) {\n\t\tfor(moduleId in moreModules) {\n\t\t\tif(__webpack_require__.o(moreModules, moduleId)) {\n\t\t\t\t__webpack_require__.m[moduleId] = moreModules[moduleId];\n\t\t\t}\n\t\t}\n\t\tif(runtime) var result = runtime(__webpack_require__);\n\t}\n\tif(parentChunkLoadingFunction) parentChunkLoadingFunction(data);\n\tfor(;i < chunkIds.length; i++) {\n\t\tchunkId = chunkIds[i];\n\t\tif(__webpack_require__.o(installedChunks, chunkId) && installedChunks[chunkId]) {\n\t\t\tinstalledChunks[chunkId][0]();\n\t\t}\n\t\tinstalledChunks[chunkId] = 0;\n\t}\n\treturn __webpack_require__.O(result);\n}\n\nvar chunkLoadingGlobal = self[\"webpackChunkPicto\"] = self[\"webpackChunkPicto\"] || [];\nchunkLoadingGlobal.forEach(webpackJsonpCallback.bind(null, 0));\nchunkLoadingGlobal.push = webpackJsonpCallback.bind(null, chunkLoadingGlobal.push.bind(chunkLoadingGlobal));","// startup\n// Load entry module and return exports\n// This entry module depends on other loaded chunks and execution need to be delayed\nvar __webpack_exports__ = __webpack_require__.O(undefined, [998], function() { return __webpack_require__(2477); })\n__webpack_exports__ = __webpack_require__.O(__webpack_exports__);\n"],"names":["render","_vm","this","_c","_self","attrs","msg","author","colour","hidden","on","handleCopy","handleHide","directives","name","rawName","value","expression","getID","staticClass","_v","_e","staticRenderFns","components","Message","props","type","default","computed","methods","mounted","component","class","style","borderColor","borderCol","background","_s","copyable","$event","$emit","_t","darken","hex","Notepad","constructor","width","height","canvas","ctx","getContext","saturation","placeImageData","data","i","setPixel","Math","round","floor","loadImageData","clearRect","x","y","s","fillStyle","getColour","fillRect","toCode","r","g","b","up","flat","down","ci","metaInfo","title","created","document","register","ready","console","log","registered","cached","updatefound","window","_worker","dispatchEvent","CustomEvent","detail","updated","offline","error","addEventListener","waiting","postMessage","navigator","serviceWorker","location","reload","$route","params","id","version","$store","state","client","swStatus","appUpdate","preventDefault","join","apply","arguments","loading","domProps","target","composing","script","Spinner","room","method","setTimeout","fetch","then","resp","result","rooms","length","_l","index","key","full","Full","Name","Pop","Cap","hoverTitle","updateable","handleClick","spin","updating","icon","link","status","preparing","JoinForm","PublicRooms","UpdateManager","token","discardToken","active","refreshing","refresh","setToken","ref","selectedRoom","selectedState","invisible","visible","authenticate","selected","disabled","Visible","Invisible","filteredModeratedMessages","moderatedMessage","hash","selectedRoomName","newState","State","Payload","Sender","btn","icn","submit","CanvasMessage","url","bind","itobs","RunlengthEncoder","d","occurences","prev","resArr","push","Array","fill","res","map","split","char","indexOf","count","Core","time","Date","now","random","toString","substring","span","super","_data","raw","encoded","Announcement","text","Text","COLOURS","n","hue","E","Color","ModeratedMessage","moderatedMessages","AuthForm","RoomList","StateList","ModeratedMessageList","Vue","Router","Meta","refreshOnceOnNavigation","routes","path","Join","redirect","Moderate","router","mode","base","process","afterEach","store","errorMessage","dispatch","username","actions","commit","root","catch","leave","code","reason","clearError","swUpdate","mutations","joined","pl","updateError","updateStatus","payload","namespaced","_socket","getters","open","readyState","WebSocket","OPEN","connect","Promise","rej","proto","protocol","here","host","roomarg","sock","_sock","onmessage","m","onopen","onerror","e","onclose","disconnect","close","_onMessage","JSON","parse","Event","getHours","getMinutes","getSeconds","_onClose","send","event","packet","Time","stringify","reconnect","create","destroy","history","unread","add","message","Data","Span","ColourIndex","announce","reset","toggleHidden","read","unshift","sort","a","min","tool","size","rainbow","rootState","_sketch","getBakedImageData","clear","copy","msgs","messages","filter","pencil","setPenMode","eraser","setEraserMode","large","pensize","small","write","_","chr","drawChar","backspace","to","showInfo","public","joinTime","users","invite","origin","colours","k","RoomID","Users","UserIndex","updateUsers","update","UserName","rename","user","RoomName","toggleInfo","Public","Vuex","modules","socket","compose","library","faPencilAlt","faEraser","faCircle","faDotCircle","faKeyboard","faInfoCircle","faUserPlus","faTimesCircle","faDoorOpen","faBug","faHeart","faTwitter","faCodeBranch","faCopy","faEyeSlash","faEye","faSyncAlt","faDownload","faMoon","faSun","faIceCream","faShare","faCheck","faHourglass","faTimes","faExclamationTriangle","faRedoAlt","faSignOutAlt","faPaintRoller","FontAwesomeIcon","VueAnalytics","appName","appVersion","trackingId","vueRouter","trackPage","debug","createOptions","siteSpeedSampleRate","require","h","App","$mount","__webpack_module_cache__","__webpack_require__","moduleId","cachedModule","undefined","exports","module","__webpack_modules__","call","deferred","O","chunkIds","fn","priority","notFulfilled","Infinity","fulfilled","j","Object","keys","every","splice","getter","__esModule","definition","o","defineProperty","enumerable","get","f","chunkId","all","reduce","promises","u","miniCssF","globalThis","Function","obj","prop","prototype","hasOwnProperty","inProgress","dataWebpackPrefix","l","done","needAttach","scripts","getElementsByTagName","getAttribute","createElement","charset","timeout","nc","setAttribute","src","onScriptComplete","onload","clearTimeout","doneFns","parentNode","removeChild","forEach","head","appendChild","Symbol","toStringTag","p","createStylesheet","fullhref","resolve","reject","linkTag","rel","onLinkComplete","errorType","realHref","href","err","Error","request","findStylesheet","existingLinkTags","tag","dataHref","existingStyleTags","loadStylesheet","installedCssChunks","miniCss","cssChunks","installedChunks","installedChunkData","promise","loadingEnded","realSrc","webpackJsonpCallback","parentChunkLoadingFunction","moreModules","runtime","some","chunkLoadingGlobal","self","__webpack_exports__"],"sourceRoot":""}