{"version":3,"sources":["webpack:///webpack/bootstrap","webpack:///./src/components/questions/QuestionChoice.vue?c1ab","webpack:///./src/assets/images/bg_map.png","webpack:///./src/views/Home.vue?9288","webpack:///./src/components/ProgressBar.vue?229e","webpack:///./src/views/Avatar.vue?8eb3","webpack:///./src/App.vue?1e0a","webpack:///./src/components/Debug.vue?ed09","webpack:///./src/components/Debug.vue?537e","webpack:///./src/components/Debug.vue?f915","webpack:///./src/components/Debug.vue","webpack:///./src/components/modals/Modal.vue?8bc9","webpack:///./src/components/modals/ModalReset.vue?69f6","webpack:///./src/lib/event-bus.ts","webpack:///./src/components/modals/ModalReset.vue?c9b5","webpack:///./src/components/modals/ModalReset.vue?b256","webpack:///./src/components/modals/ModalReset.vue","webpack:///./src/components/modals/Modal.vue?b044","webpack:///./src/components/modals/Modal.vue?e469","webpack:///./src/components/modals/Modal.vue","webpack:///./src/QueryWorker.ts","webpack:///./src/App.vue?ec60","webpack:///./src/App.vue?640d","webpack:///./src/App.vue","webpack:///./src/config-defaults.ts","webpack:///./src/store.ts","webpack:///./src/components/icons/IconArrow.vue?6bcf","webpack:///./src/views/Avatar.vue?87b1","webpack:///./src/components/ProgressBar.vue?8779","webpack:///./src/components/icons/IconArrow.vue?d3d4","webpack:///./src/components/icons/IconArrow.vue?c0fd","webpack:///./src/components/icons/IconArrow.vue","webpack:///./src/components/ProgressBar.vue?9356","webpack:///./src/components/ProgressBar.vue?b5d7","webpack:///./src/components/ProgressBar.vue","webpack:///./src/views/Avatar.vue?55c6","webpack:///./src/views/Avatar.vue?fde7","webpack:///./src/views/Avatar.vue","webpack:///./src/views/Complete.vue?9ffb","webpack:///./src/components/ChosenImage.vue?e912","webpack:///./src/components/ChosenImage.vue?ef5e","webpack:///./src/components/ChosenImage.vue?ec8c","webpack:///./src/components/ChosenImage.vue","webpack:///./src/views/Complete.vue?7c65","webpack:///./src/views/Complete.vue?9c20","webpack:///./src/views/Complete.vue","webpack:///./src/views/Home.vue?65c1","webpack:///./src/views/Home.vue?42b8","webpack:///./src/views/Home.vue?102e","webpack:///./src/views/Home.vue","webpack:///./src/views/Survey.vue?eea7","webpack:///./src/components/questions/QuestionChoice.vue?b861","webpack:///./src/components/questions/QuestionChoice.vue?6350","webpack:///./src/components/questions/QuestionChoice.vue?564a","webpack:///./src/components/questions/QuestionChoice.vue","webpack:///./src/views/Survey.vue?822e","webpack:///./src/views/Survey.vue?1033","webpack:///./src/views/Survey.vue","webpack:///./src/router.ts","webpack:///./src/main.ts","webpack:///./src/assets/images/icon_hand.svg"],"names":["webpackJsonpCallback","data","moduleId","chunkId","chunkIds","moreModules","executeModules","i","resolves","length","Object","prototype","hasOwnProperty","call","installedChunks","push","modules","parentJsonpFunction","shift","deferredModules","apply","checkDeferredModules","result","deferredModule","fulfilled","j","depId","splice","__webpack_require__","s","installedModules","exports","module","l","m","c","d","name","getter","o","defineProperty","enumerable","get","r","Symbol","toStringTag","value","t","mode","__esModule","ns","create","key","bind","n","object","property","p","jsonpArray","window","oldJsonpFunction","slice","_vm","this","_h","$createElement","_c","_self","staticClass","style","backgroundImage","attrs","staticRenderFns","staticStyle","_v","_s","version","component","modalComponent","tag","_e","directives","rawName","expression","_m","class","currentSelection","on","$event","handleSelection","eventBus","$emit","setTimeout","reset","close","$router","onClickaway","isOpen","blur","viewElement","document","querySelector","filter","blurView","$on","handleModalClose","payload","components","ModalReset","Worker","queryWorker","QueryWorker","attempts","addEventListener","event","type","$store","dispatch","questions","avatars","media","forEach","h","url","prefetchAsset","handleQueryWorkerMessage","$route","getters","CONFIG","Debug","Modal","href","link","createElement","rel","head","appendChild","SHUFFLE_DECK","use","colors","Store","actions","addResponse","response","commit","decrementProgress","incrementProgress","populateDeck","state","resetState","shuffleDeck","undoResponse","updateAvatarId","avatarId","updateAvatarList","avatarList","updateQuestions","deck","avatar","find","id","currentQuestionIndex","responses","progress","mutations","ADD_RESPONSE","DECREMENT_PROGRESS","unitProgress","INCREMENT_PROGRESS","RESET_STATE","UNDO_RESPONSE","pop","UPDATE_AVATAR_ID","UPDATE_AVATAR_LIST","UPDATE_DECK","UPDATE_QUESTIONS","UPDATE_UNIT_PROGRESS","_l","avatarPreview","handleSelectAvatar","apiUri","image","canGoBack","handleBack","iconColors","Red","title","canReset","handleReset","width","toString","height","strokeColor","strokeWidth","color","Grey20","default","White","running","format","IconArrow","ProgressBar","ChosenImage","breathAnimation","pause","explodeAnimation","play","duration","easing","opacity","targets","tapController","getElementById","tapHandler","direction","loop","scale","autoplay","complete","borderWidth","delay","stagger","remove","questionComponent","controlledQuestionIndex","isComplete","handleNext","handleSubmit","question","prompt","answer","answerId","handleAnswerSelect","text","grow","shrink","DURATION","EASING","isLastQuestion","questionFadeOut","clear","questionFadeIn","index","answer_id","answer_value","question_id","hasSuccess","isPending","isReadyForReview","oldValue","questionAnimation","chosenImageAnimation","reversed","reverse","reviewTitleAnimation","scrollTo","postMessage","leaveInsterstitial","titleAnimation","marginTop","marginBottom","registerAnimations","interstitialTimeout","QuestionChoice","routes","path","beforeEnter","to","from","next","isIncompleteGuard","store","config","productionTip","render","router","$mount"],"mappings":"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","file":"js/app.3752cdf2.js","sourcesContent":[" \t// install a JSONP callback for chunk loading\n \tfunction webpackJsonpCallback(data) {\n \t\tvar chunkIds = data[0];\n \t\tvar moreModules = data[1];\n \t\tvar executeModules = data[2];\n\n \t\t// add \"moreModules\" to the modules object,\n \t\t// then flag all \"chunkIds\" as loaded and fire callback\n \t\tvar moduleId, chunkId, i = 0, resolves = [];\n \t\tfor(;i < chunkIds.length; i++) {\n \t\t\tchunkId = chunkIds[i];\n \t\t\tif(Object.prototype.hasOwnProperty.call(installedChunks, chunkId) && installedChunks[chunkId]) {\n \t\t\t\tresolves.push(installedChunks[chunkId][0]);\n \t\t\t}\n \t\t\tinstalledChunks[chunkId] = 0;\n \t\t}\n \t\tfor(moduleId in moreModules) {\n \t\t\tif(Object.prototype.hasOwnProperty.call(moreModules, moduleId)) {\n \t\t\t\tmodules[moduleId] = moreModules[moduleId];\n \t\t\t}\n \t\t}\n \t\tif(parentJsonpFunction) parentJsonpFunction(data);\n\n \t\twhile(resolves.length) {\n \t\t\tresolves.shift()();\n \t\t}\n\n \t\t// add entry modules from loaded chunk to deferred list\n \t\tdeferredModules.push.apply(deferredModules, executeModules || []);\n\n \t\t// run deferred modules when all chunks ready\n \t\treturn checkDeferredModules();\n \t};\n \tfunction checkDeferredModules() {\n \t\tvar result;\n \t\tfor(var i = 0; i < deferredModules.length; i++) {\n \t\t\tvar deferredModule = deferredModules[i];\n \t\t\tvar fulfilled = true;\n \t\t\tfor(var j = 1; j < deferredModule.length; j++) {\n \t\t\t\tvar depId = deferredModule[j];\n \t\t\t\tif(installedChunks[depId] !== 0) fulfilled = false;\n \t\t\t}\n \t\t\tif(fulfilled) {\n \t\t\t\tdeferredModules.splice(i--, 1);\n \t\t\t\tresult = __webpack_require__(__webpack_require__.s = deferredModule[0]);\n \t\t\t}\n \t\t}\n\n \t\treturn result;\n \t}\n\n \t// The module cache\n \tvar installedModules = {};\n\n \t// object to store loaded and loading chunks\n \t// undefined = chunk not loaded, null = chunk preloaded/prefetched\n \t// Promise = chunk loading, 0 = chunk loaded\n \tvar installedChunks = {\n \t\t\"app\": 0\n \t};\n\n \tvar deferredModules = [];\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"/\";\n\n \tvar jsonpArray = window[\"webpackJsonp\"] = window[\"webpackJsonp\"] || [];\n \tvar oldJsonpFunction = jsonpArray.push.bind(jsonpArray);\n \tjsonpArray.push = webpackJsonpCallback;\n \tjsonpArray = jsonpArray.slice();\n \tfor(var i = 0; i < jsonpArray.length; i++) webpackJsonpCallback(jsonpArray[i]);\n \tvar parentJsonpFunction = oldJsonpFunction;\n\n\n \t// add entry module to deferred list\n \tdeferredModules.push([0,\"chunk-vendors\"]);\n \t// run deferred modules when ready\n \treturn checkDeferredModules();\n","import mod from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./QuestionChoice.vue?vue&type=style&index=0&id=b9a154c2&lang=scss&scoped=true&\"; export default mod; export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./QuestionChoice.vue?vue&type=style&index=0&id=b9a154c2&lang=scss&scoped=true&\"","module.exports = __webpack_public_path__ + \"img/bg_map.4a0eeb47.png\";","import mod from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Home.vue?vue&type=style&index=0&id=78611052&lang=scss&scoped=true&\"; export default mod; export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Home.vue?vue&type=style&index=0&id=78611052&lang=scss&scoped=true&\"","import mod from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ProgressBar.vue?vue&type=style&index=0&id=423bee1a&lang=scss&scoped=true&\"; export default mod; export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ProgressBar.vue?vue&type=style&index=0&id=423bee1a&lang=scss&scoped=true&\"","import mod from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Avatar.vue?vue&type=style&index=0&id=a4e99022&lang=scss&scoped=true&\"; export default mod; export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Avatar.vue?vue&type=style&index=0&id=a4e99022&lang=scss&scoped=true&\"","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('main',{staticClass:\"flex flex-col min-h-screen mx-auto overflow-hidden shadow-xl\",style:((\"background-image: url(\" + _vm.backgroundImage + \");\")),attrs:{\"id\":\"app\"}},[_c('transition',{attrs:{\"name\":\"fade\",\"mode\":\"out-in\"}},[_c('router-view')],1),_c('modal')],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"bottom-0 fixed font-mono text-red text-sm\",staticStyle:{\"right\":\"1rem\"}},[_c('p',[_vm._v(_vm._s(_vm.version))])])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\nimport { Component, Vue } from \"vue-property-decorator\";\nimport * as pkg from \"../../package.json\";\n\n/**\n * Overlays debug information on the display.\n */\n@Component\nexport default class Debug extends Vue {\n private version = pkg.version;\n}\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--13-3!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Debug.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--13-3!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Debug.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./Debug.vue?vue&type=template&id=658e42c9&\"\nimport script from \"./Debug.vue?vue&type=script&lang=ts&\"\nexport * from \"./Debug.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/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","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('transition',{attrs:{\"name\":\"fade\",\"mode\":\"out-in\"}},[(_vm.isOpen)?_c('aside',{staticClass:\"bg-white-70 flex fixed h-screen items-center justify-center px-4 top-0 left-0 w-full z-50\"},[_c(_vm.modalComponent,{tag:\"component\"})],1):_vm._e()])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('section',{directives:[{name:\"on-clickaway\",rawName:\"v-on-clickaway\",value:(_vm.close),expression:\"close\"}],staticClass:\"bg-white border-2 border-grey-50 p-6 w-96\"},[_vm._m(0),_c('footer',{staticClass:\"flex justify-between\"},[_c('div',{staticClass:\"px-2 w-1/2\"},[_c('button',{staticClass:\"block border-2 border-red hover:bg-red hover:text-white py-2 rounded-full transition-all w-full\",class:_vm.currentSelection === 0 ? 'bg-red text-white' : 'bg-white text-grey',on:{\"click\":function($event){return _vm.handleSelection(0)}}},[_vm._v(\" Yes \")])]),_c('div',{staticClass:\"px-2 w-1/2\"},[_c('button',{staticClass:\"block border-2 border-red hover:bg-red hover:text-white py-2 rounded-full transition-all w-full\",class:_vm.currentSelection === 1 ? 'bg-red text-white' : 'bg-white text-grey',on:{\"click\":function($event){return _vm.handleSelection(1)}}},[_vm._v(\" No \")])])])])}\nvar staticRenderFns = [function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('h2',{staticClass:\"font-medium leading-tight mb-6 text-center text-grey text-4xl\"},[_vm._v(\" Are you sure you would like to\"),_c('br'),_c('strong',[_vm._v(\"start over?\")])])}]\n\nexport { render, staticRenderFns }","import Vue from \"vue\";\n\n/**\n * Event bus system for Vue component cross-communication.\n */\nexport const eventBus = new Vue();\n\nexport interface IModalPayload {\n component: string;\n}\n","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { eventBus } from \"@/lib/event-bus\";\nimport { directive as onClickaway } from \"vue-clickaway\";\nimport { Component, Vue } from \"vue-property-decorator\";\n\n/**\n * Modal displayed as a confirmation to a request to reset the application.\n */\n@Component({\n directives: {\n onClickaway\n }\n})\nexport default class ModalReset extends Vue {\n /**\n * currenSelection represents the modal button selected.\n */\n private currentSelection: number = -1;\n\n /**\n * close closes the modal by emitting a close event.\n */\n private close(): void {\n eventBus.$emit(\"modal:close\");\n }\n\n /**\n * handleSelection handles the selection of a modal button.\n */\n private handleSelection(n: number): void {\n this.currentSelection = n;\n setTimeout(() => {\n if (n === 0) {\n this.reset();\n } else if (n === 1) {\n this.close();\n }\n }, 200);\n }\n\n /**\n * reset closes the modal window and resets the survey experience.\n */\n private reset(): void {\n this.close();\n this.$router.push(\"/\");\n }\n}\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--13-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ModalReset.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--13-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ModalReset.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./ModalReset.vue?vue&type=template&id=6fca846a&\"\nimport script from \"./ModalReset.vue?vue&type=script&lang=ts&\"\nexport * from \"./ModalReset.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/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","\n\n\n\n\n\n\n\n\n\n\n\nimport ModalReset from \"@/components/modals/ModalReset.vue\";\nimport { eventBus, IModalPayload } from \"@/lib/event-bus\";\nimport { Component, Vue } from \"vue-property-decorator\";\n\n/**\n * A parent modal component used to display various modal windows.\n */\n@Component({\n components: { ModalReset }\n})\nexport default class Modal extends Vue {\n private isOpen: boolean = false;\n private modalComponent: string = \"\";\n\n /**\n * Apply or remove blur filter on elements with the View class.\n */\n private blurView(blur: boolean = true): void {\n const viewElement = document.querySelector(\".View\") as HTMLElement;\n if (!viewElement) return;\n if (blur) {\n viewElement.style.filter = \"blur(6px)\";\n } else {\n viewElement.style.filter = \"\";\n }\n }\n\n private handleModalClose(): void {\n this.isOpen = false;\n this.blurView(false);\n }\n\n private mounted(): void {\n eventBus.$on(\"modal:close\", () => {\n this.handleModalClose();\n });\n eventBus.$on(\"modal:open\", (payload: IModalPayload) => {\n this.isOpen = true;\n this.modalComponent = payload.component;\n this.blurView();\n });\n }\n}\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--13-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Modal.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--13-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Modal.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./Modal.vue?vue&type=template&id=2db2465a&\"\nimport script from \"./Modal.vue?vue&type=script&lang=ts&\"\nexport * from \"./Modal.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/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","export default function() {\n return new Worker(__webpack_public_path__ + \"js/QueryWorker.a9c6cc54.worker.js\");\n}\n","\n\n\n\n\n\n\n\n\n\n\n\n\nimport Debug from \"@/components/Debug.vue\";\nimport Modal from \"@/components/modals/Modal.vue\";\nimport IConfig from \"@/typings/IConfig\";\nimport { Component, Provide, Vue } from \"vue-property-decorator\";\nimport QueryWorker from \"worker-loader!./QueryWorker\";\nimport { eventBus, IModalPayload } from \"./lib/event-bus\";\nimport IMedia from \"./typings/IMedia\";\n\n/**\n * The base application component.\n */\n@Component({\n components: { Debug, Modal }\n})\nexport default class App extends Vue {\n @Provide(\"queryWorker\") private queryWorker = new QueryWorker();\n\n private attempts: number = 0;\n\n /**\n * The background-image source, based on route.\n */\n private get backgroundImage(): string {\n if (this.$route.name === \"home\")\n return require(\"@/assets/images/bg_map.png\");\n return \"unset\";\n }\n\n private get CONFIG(): IConfig {\n return this.$store.getters.CONFIG;\n }\n\n private get isDebug(): string | undefined {\n return process.env.VUE_APP_DEBUG;\n }\n\n /**\n * Handles incoming messages from the Query web worker.\n */\n private handleQueryWorkerMessage(): void {\n this.queryWorker.addEventListener(\"message\", (event: MessageEvent) => {\n switch (event.data.type) {\n case \"question\":\n this.$store.dispatch(\"updateQuestions\", event.data.questions.data);\n break;\n case \"avatar\":\n this.$store.dispatch(\"updateAvatarList\", event.data.avatars.data);\n break;\n case \"media\":\n const media = event.data.media.data as IMedia[];\n media.forEach(m => {\n const h = `${process.env.VUE_APP_API_URI}${m.url}`;\n prefetchAsset(h);\n });\n default:\n break;\n }\n });\n }\n\n private beforeMount(): void {\n this.handleQueryWorkerMessage();\n }\n}\n\n/**\n * prefetchAsset prefetches an asset, such as an image, and loads it into cache\n * storage.\n */\nconst prefetchAsset = (href: string) => {\n const link = document.createElement(\"link\");\n link.rel = \"prefetch\";\n link.href = href;\n document.head.appendChild(link);\n};\n","import mod from \"-!../node_modules/cache-loader/dist/cjs.js??ref--13-0!../node_modules/thread-loader/dist/cjs.js!../node_modules/babel-loader/lib/index.js!../node_modules/ts-loader/index.js??ref--13-3!../node_modules/cache-loader/dist/cjs.js??ref--0-0!../node_modules/vue-loader/lib/index.js??vue-loader-options!./App.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../node_modules/cache-loader/dist/cjs.js??ref--13-0!../node_modules/thread-loader/dist/cjs.js!../node_modules/babel-loader/lib/index.js!../node_modules/ts-loader/index.js??ref--13-3!../node_modules/cache-loader/dist/cjs.js??ref--0-0!../node_modules/vue-loader/lib/index.js??vue-loader-options!./App.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./App.vue?vue&type=template&id=7551d2b6&\"\nimport script from \"./App.vue?vue&type=script&lang=ts&\"\nexport * from \"./App.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../node_modules/vue-loader/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","import IConfig from \"./typings/IConfig\";\n\nexport const CONFIG: IConfig = {\n /**\n * Should the question deck be shuffled?\n */\n SHUFFLE_DECK: false\n};\n","import Vue from \"vue\";\nimport Vuex from \"vuex\";\nimport { CONFIG } from \"./config-defaults\";\nimport IAvatar from \"./typings/IAvatar\";\nimport IConfig from \"./typings/IConfig\";\nimport IQuestion from \"./typings/IQuestion\";\nimport IResponse from \"./typings/IResponse\";\n\nVue.use(Vuex);\n\nexport default new Vuex.Store({\n actions: {\n addResponse({ commit }, response: IResponse): void {\n commit(\"ADD_RESPONSE\", response);\n },\n\n decrementProgress({ commit }): void {\n commit(\"DECREMENT_PROGRESS\");\n },\n\n incrementProgress({ commit }): void {\n commit(\"INCREMENT_PROGRESS\");\n },\n\n populateDeck({ commit, state }): void {\n commit(\"UPDATE_DECK\", state.questions);\n commit(\"UPDATE_UNIT_PROGRESS\", state);\n },\n\n resetState({ commit }): void {\n commit(\"RESET_STATE\");\n },\n\n shuffleDeck({ commit, state }): void {\n commit(\"UPDATE_DECK\", state.questions);\n commit(\"UPDATE_UNIT_PROGRESS\", state);\n },\n\n undoResponse({ commit }): void {\n commit(\"UNDO_RESPONSE\");\n },\n\n updateAvatarId({ commit }, avatarId: number): void {\n commit(\"UPDATE_AVATAR_ID\", avatarId);\n },\n\n updateAvatarList({ commit }, avatarList: IAvatar[]): void {\n commit(\"UPDATE_AVATAR_LIST\", avatarList);\n },\n\n updateQuestions({ commit, state }, questions: IQuestion[]): void {\n commit(\"UPDATE_QUESTIONS\", questions);\n if (state.deck.length <= 0) {\n if (CONFIG.SHUFFLE_DECK) {\n this.dispatch(\"shuffleDeck\");\n } else {\n this.dispatch(\"populateDeck\");\n }\n }\n }\n },\n\n getters: {\n CONFIG: (state): IConfig => state.CONFIG,\n avatar: (state): IAvatar | undefined => {\n return state.avatarList.find((avatar: IAvatar) => {\n return avatar.id === state.avatarId;\n });\n },\n avatarId: (state): number | null => state.avatarId,\n avatarList: (state): IAvatar[] => state.avatarList,\n currentQuestionIndex: (state): number => state.responses.length,\n deck: (state): IQuestion[] => state.deck,\n progress: (state): number => state.progress,\n questions: (state): IQuestion[] => state.questions,\n responses: (state): IResponse[] => state.responses\n },\n\n mutations: {\n ADD_RESPONSE(state, response: IResponse): void {\n state.responses.push(response);\n },\n\n DECREMENT_PROGRESS(state): void {\n state.progress -= state.unitProgress;\n },\n\n INCREMENT_PROGRESS(state): void {\n state.progress += state.unitProgress;\n },\n\n RESET_STATE(state): void {\n state.avatarId = null;\n state.progress = 0;\n state.responses = [];\n },\n\n UNDO_RESPONSE(state): void {\n state.responses.pop();\n },\n\n UPDATE_AVATAR_ID(state, avatarId): void {\n state.avatarId = avatarId;\n },\n\n UPDATE_AVATAR_LIST(state, avatarList: IAvatar[]): void {\n state.avatarList = avatarList;\n },\n\n UPDATE_DECK(state, questions: IQuestion[]): void {\n state.deck = questions;\n },\n\n UPDATE_QUESTIONS(state, questions: IQuestion[]): void {\n state.questions = questions;\n },\n\n UPDATE_UNIT_PROGRESS(state): void {\n // question length + avatar selection step\n state.unitProgress = 100 / (state.deck.length + 1);\n }\n },\n\n state: {\n CONFIG,\n avatarId: null as number | null,\n avatarList: [] as IAvatar[],\n deck: [] as IQuestion[],\n progress: 0,\n questions: [] as IQuestion[],\n responses: [] as IResponse[],\n unitProgress: 0\n }\n});\n","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { Component, Prop, Vue } from \"vue-property-decorator\";\n\nexport enum colors {\n Red,\n White,\n Grey20\n}\n\n@Component\nexport default class IconArrow extends Vue {\n @Prop({ default: colors.White }) private color!: colors;\n @Prop({ default: 5 }) private strokeWidth!: number;\n @Prop({ default: 32 }) private width!: number;\n @Prop({ default: 32 }) private height!: number;\n\n private get strokeColor(): string {\n if (this.color === colors.Red) {\n return \"#c7272d\";\n } else if (this.color === colors.Grey20) {\n return \"#58585a33\";\n }\n return \"#fff\";\n }\n}\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('section',{staticClass:\"flex flex-col flex-grow justify-between mw-640 mx-auto px-4 shadow-2xl w-full\"},[_c('progress-bar',{attrs:{\"title\":\"Getting Started\"}}),_vm._m(0),_c('ul',{staticClass:\"circle-container flex flex-wrap items-center justify-center mx-auto pb-4 w-full\"},_vm._l((_vm.avatarList),function(avatarPreview,i){return _c('li',{key:(\"avatarPreview-\" + i),staticClass:\"mb-2 px-4 transition-trans w-1/2\",class:{\n 'is-inactive': avatarPreview.id !== _vm.avatarId,\n 'is-initial': !_vm.avatar,\n 'is-selected': avatarPreview.id === _vm.avatarId\n },on:{\"click\":function($event){return _vm.handleSelectAvatar(avatarPreview.id)}}},[_c('div',{staticClass:\"intrinsic-wrapper intrinsic-wrapper--1x1\"},[_c('img',{staticClass:\"border-red intrinsic-item lazyload object-center object-cover pointer-events-none\",class:{\n 'border-2': avatarPreview.id !== _vm.avatarId,\n 'border-4': avatarPreview === _vm.avatarId\n },attrs:{\"src\":\"data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==\",\"data-src\":(\"\" + _vm.apiUri + (avatarPreview.image.url)),\"alt\":\"avatar\"}})])])}),0)],1)}\nvar staticRenderFns = [function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('h1',{staticClass:\"font-medium leading-none my-4 text-3xl text-center text-grey\"},[_c('strong',[_vm._v(\"Select an image\")]),_c('br'),_vm._v(\"to represent you \")])}]\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('section',{staticClass:\"progress\"},[_c('div',{staticClass:\"flex items-center justify-between my-4\"},[_c('button',{staticClass:\"flex font-medium h-16 items-center w-16\",class:!_vm.canGoBack ? 'opacity-0' : 'opacity-100',on:{\"click\":_vm.handleBack}},[_c('icon-arrow',{staticClass:\"rotate-180\",attrs:{\"color\":_vm.iconColors.Red,\"width\":32,\"height\":32}})],1),_c('h2',{staticClass:\"font-bold leading-tight text-center text-grey uppercase\"},[_vm._v(_vm._s(_vm.title))]),_c('button',{staticClass:\"border-2 border-red font-medium h-16 leading-none rounded-full text-grey text-sm w-16\",class:!_vm.canReset ? 'opacity-0' : 'opacity-100',attrs:{\"disabled\":!_vm.canReset},on:{\"click\":_vm.handleReset}},[_vm._v(\" Start Over \")])]),_c('div',{staticClass:\"bg-grey progress-container\"},[_c('div',{staticClass:\"bg-red progress-container__bar\",style:((\"width: \" + _vm.progress + \"%;\"))})])])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('svg',{attrs:{\"version\":\"1.2\",\"baseProfile\":\"tiny\",\"id\":\"Layer_1\",\"xmlns\":\"http://www.w3.org/2000/svg\",\"xmlns:xlink\":\"http://www.w3.org/1999/xlink\",\"x\":\"0px\",\"y\":\"0px\",\"viewBox\":\"0 0 74.4 72.2\",\"xml:space\":\"preserve\",\"width\":((_vm.width.toString()) + \"px\"),\"height\":((_vm.height.toString()) + \"px\")}},[_c('g',[_c('polyline',{attrs:{\"fill\":\"none\",\"stroke\":_vm.strokeColor,\"stroke-width\":(\"\" + (_vm.strokeWidth.toString())),\"stroke-miterlimit\":\"10\",\"points\":\"36.5,1.8 70.9,36.1 36.5,70.5 \\t\"}}),_c('line',{attrs:{\"fill\":\"none\",\"stroke\":_vm.strokeColor,\"stroke-width\":(\"\" + (_vm.strokeWidth.toString())),\"stroke-miterlimit\":\"10\",\"x1\":\"70.9\",\"y1\":\"36.1\",\"x2\":\"0\",\"y2\":\"36.1\"}})])])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--13-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./IconArrow.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--13-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./IconArrow.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./IconArrow.vue?vue&type=template&id=24c6d7ea&\"\nimport script from \"./IconArrow.vue?vue&type=script&lang=ts&\"\nexport * from \"./IconArrow.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/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","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport IconArrow, { colors } from \"@/components/icons/IconArrow.vue\";\nimport { eventBus, IModalPayload } from \"@/lib/event-bus\";\nimport anime from \"animejs\";\nimport { Component, Prop, Vue } from \"vue-property-decorator\";\nimport IQuestion from \"../typings/IQuestion\";\n\n/**\n * Top-level navigation component used to indicate progress and allow visitors\n * to backtrack, advance, and reset the application.\n */\n@Component({\n components: { IconArrow }\n})\nexport default class ProgressBar extends Vue {\n @Prop({ default: \"\" }) private title!: string;\n\n private iconColors = colors;\n\n /**\n * Returns true if visitor can go to previous response.\n */\n private get canGoBack(): boolean {\n return this.currentQuestionIndex > 0 && this.canReset;\n }\n\n /**\n * Returns true if visitor can reset the application.\n */\n private get canReset(): boolean {\n return (\n this.$route.name === \"capture\" ||\n this.$route.name === \"intro\" ||\n this.$route.name === \"survey\" ||\n this.$route.name === \"avatar\"\n );\n }\n\n private get currentQuestionIndex(): number {\n return this.$store.getters.currentQuestionIndex;\n }\n\n /**\n * The progress bar's current progress level.\n */\n private get progress(): number {\n return this.$store.getters.progress;\n }\n\n private get questions(): IQuestion[] {\n return this.$store.getters.questions;\n }\n\n /**\n * Get the current question's format.\n */\n private get questionFormat(): string {\n if (\n this.questions.length <= 0 ||\n this.currentQuestionIndex > this.questions.length - 1\n )\n return \"\";\n return this.questions[this.currentQuestionIndex].format;\n }\n\n /**\n * Handles the request to go to the previous step.\n */\n private handleBack(): void {\n if (!this.canGoBack || anime.running.length > 0) return;\n this.$store.dispatch(\"undoResponse\");\n this.$store.dispatch(\"decrementProgress\");\n }\n\n /**\n * Handles the request to reset the application.\n */\n private handleReset(): void {\n const payload: IModalPayload = { component: \"ModalReset\" };\n eventBus.$emit(\"modal:open\", payload);\n }\n}\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--13-3!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ProgressBar.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--13-3!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ProgressBar.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./ProgressBar.vue?vue&type=template&id=423bee1a&scoped=true&\"\nimport script from \"./ProgressBar.vue?vue&type=script&lang=ts&\"\nexport * from \"./ProgressBar.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./ProgressBar.vue?vue&type=style&index=0&id=423bee1a&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"423bee1a\",\n null\n \n)\n\nexport default component.exports","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport ProgressBar from \"@/components/ProgressBar.vue\";\nimport IAvatar from \"@/typings/IAvatar\";\nimport \"lazysizes\";\nimport { Component, Vue } from \"vue-property-decorator\";\n\n/**\n * The view used to select an avatar instead of taking a photo.\n */\n@Component({\n components: { ProgressBar }\n})\nexport default class Avatar extends Vue {\n /**\n * The base app URI configured in env.\n */\n private get apiUri(): string | undefined {\n return process.env.VUE_APP_API_URI;\n }\n\n /**\n * The currently selected avatar.\n */\n private get avatar(): IAvatar | undefined {\n return this.$store.getters.avatar;\n }\n\n /**\n * The ID of the currently selected avatar.\n */\n private get avatarId(): number | null {\n return this.$store.getters.avatarId;\n }\n\n /**\n * The list of available avatars.\n */\n private get avatarList(): IAvatar[] {\n return this.$store.getters.avatarList;\n }\n\n /**\n * The progress bar's current progress level.\n */\n private get progress(): number {\n return this.$store.getters.progress;\n }\n\n /**\n * Handles the selection of an avatar.\n */\n private handleSelectAvatar(avatarId: number): void {\n if (!this.avatar) {\n this.$store.dispatch(\"incrementProgress\");\n }\n this.$store.dispatch(\"updateAvatarId\", avatarId);\n setTimeout(() => {\n this.$router.push(\"/survey\");\n }, 200);\n }\n}\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--13-3!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Avatar.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--13-3!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Avatar.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./Avatar.vue?vue&type=template&id=a4e99022&scoped=true&\"\nimport script from \"./Avatar.vue?vue&type=script&lang=ts&\"\nexport * from \"./Avatar.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./Avatar.vue?vue&type=style&index=0&id=a4e99022&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"a4e99022\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('section',{staticClass:\"flex flex-col flex-grow mw-640 mx-auto px-4 shadow-2xl w-full\"},[_c('progress-bar',{attrs:{\"title\":\"Thanks for sharing your thoughts!\"}}),_c('div',{staticClass:\"flex flex-col flex-grow items-center\"},[_vm._m(0),_c('div',{staticClass:\"mb-12 mx-auto w-4/5\"},[_c('chosen-image')],1)])],1)}\nvar staticRenderFns = [function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('h1',{staticClass:\"font-medium leading-tight my-12 text-2xl text-center text-grey w-full\"},[_c('strong',[_vm._v(\"Take a look at the projection\")]),_c('br'),_vm._v(\"to see how other museum guests have answered. \")])}]\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"border-4 border-red chosen-image rounded-full\"},[_c('div',{staticClass:\"intrinsic-wrapper intrinsic-wrapper--1x1 mx-auto overflow-auto rounded-full\"},[_c('img',{staticClass:\"h-full intrinsic-item lazyload object-center object-cover w-full\",attrs:{\"if\":\"avatar\",\"src\":\"data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==\",\"data-src\":(\"\" + _vm.apiUri + (_vm.avatar.image.url)),\"alt\":\"Visitor photo or avatar\"}})])])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport \"lazysizes\";\nimport { Component, Vue } from \"vue-property-decorator\";\nimport IAvatar from \"../typings/IAvatar\";\n\n/**\n * Displays either the captured webcam photo or selected avatar.\n */\n@Component\nexport default class Complete extends Vue {\n /**\n * The base app URI configured in env.\n */\n private get apiUri(): string | undefined {\n return process.env.VUE_APP_API_URI;\n }\n\n /**\n * The selected avatar.\n */\n private get avatar(): IAvatar | undefined {\n return this.$store.getters.avatar;\n }\n}\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--13-3!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ChosenImage.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--13-3!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ChosenImage.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./ChosenImage.vue?vue&type=template&id=0be7a332&\"\nimport script from \"./ChosenImage.vue?vue&type=script&lang=ts&\"\nexport * from \"./ChosenImage.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/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","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport ChosenImage from \"@/components/ChosenImage.vue\";\nimport ProgressBar from \"@/components/ProgressBar.vue\";\nimport { Component, Vue } from \"vue-property-decorator\";\nimport IAvatar from \"../typings/IAvatar\";\n\n/**\n * The last view, displayed after submitting a completed survey.\n */\n@Component({\n components: { ChosenImage, ProgressBar }\n})\nexport default class Complete extends Vue {\n /**\n * The progress bar's current progress level.\n */\n private get progress(): number {\n return this.$store.getters.progress;\n }\n\n private mounted(): void {\n // navigate back to attract after completion\n setTimeout(() => {\n this.$router.push(\"/\");\n }, 6000);\n }\n}\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--13-3!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Complete.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--13-3!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Complete.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./Complete.vue?vue&type=template&id=12dbf598&\"\nimport script from \"./Complete.vue?vue&type=script&lang=ts&\"\nexport * from \"./Complete.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/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","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('section',{staticClass:\"flex flex-col flex-grow home justify-center px-2 shadow-2xl relative\"},[_c('div',{staticClass:\"bg-white fixed h-full left-0 opacity-0 top-0 w-full z-50\",attrs:{\"id\":\"tap-controller\"}}),_c('div',{staticClass:\"bg-red circle circle-bg\"}),_vm._m(0),_c('div',{staticClass:\"mt-16 z-10\"},[_c('div',{staticClass:\"circle circle-touch circle-touch-pulse\"}),_c('div',{staticClass:\"circle circle-touch circle-touch-pulse\"}),_c('div',{staticClass:\"circle circle-touch flex items-center justify-center\"},[_c('img',{staticClass:\"h-10 w-10\",attrs:{\"src\":require('@/assets/images/icon_hand.svg'),\"alt\":\"touch-to-begin icon\"}})])]),_c('button',{staticClass:\"bg-white font-medium mt-12 mx-auto py-4 px-16 rounded-full text-red text-xl z-10\"},[_vm._v(\" Next \")])])}\nvar staticRenderFns = [function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"text-center text-white z-10\"},[_c('h1',{staticClass:\"benton-condensed font-bold leading-none text-7xl uppercase\"},[_vm._v(\" Be\"),_c('br'),_vm._v(\"Counted \")]),_c('p',{staticClass:\"mt-8 text-xl\"},[_vm._v(\" Share your opinions and see how they compare with those of other CMC guests. \")])])}]\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport anime, { AnimeInstance } from \"animejs\";\nimport { Component, Vue } from \"vue-property-decorator\";\nimport IConfig from \"../typings/IConfig\";\n\n/**\n * The attract/home view.\n */\n@Component\nexport default class Home extends Vue {\n private breathAnimation?: AnimeInstance;\n private explodeAnimation?: AnimeInstance;\n\n private get CONFIG(): IConfig {\n return this.$store.getters.CONFIG;\n }\n\n /**\n * Handles attract-state touch event.\n */\n private tapHandler() {\n if (!this.breathAnimation) return;\n this.breathAnimation.pause();\n if (this.explodeAnimation) this.explodeAnimation.play();\n anime({\n duration: 5000,\n easing: \"easeInOutCubic\",\n opacity: 100,\n targets: \"#tap-controller\"\n });\n }\n\n private created(): void {\n this.$store.dispatch(\"resetState\");\n }\n\n private mounted(): void {\n const tapController = document.getElementById(\n \"tap-controller\"\n ) as HTMLElement;\n tapController.addEventListener(\"click\", this.tapHandler);\n this.breathAnimation = anime({\n direction: \"alternate\",\n duration: 3000,\n easing: \"easeInOutCubic\",\n loop: true,\n scale: 1.15,\n targets: \".circle-bg\"\n });\n this.explodeAnimation = anime({\n autoplay: false,\n complete: () => {\n if (this.$route.name === \"avatar\") return;\n this.$router.push(\"avatar\");\n },\n easing: \"easeInCubic\",\n scale: {\n duration: 1000,\n value: \"*=4\"\n },\n targets: \".circle-bg\"\n });\n const touchPulseAnimation = anime({\n borderWidth: 0,\n delay: anime.stagger(1000),\n duration: 3000,\n easing: \"easeInOutCubic\",\n loop: true,\n opacity: 0,\n scale: 3,\n targets: \".circle-touch-pulse\"\n });\n }\n\n private beforeDestroy(): void {\n anime.remove(\"#tap-controller\");\n anime.remove(\".circle-bg\");\n anime.remove(\".circle-touch-pulse\");\n }\n}\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--13-3!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Home.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--13-3!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Home.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./Home.vue?vue&type=template&id=78611052&scoped=true&\"\nimport script from \"./Home.vue?vue&type=script&lang=ts&\"\nexport * from \"./Home.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./Home.vue?vue&type=style&index=0&id=78611052&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"78611052\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('section',{staticClass:\"flex flex-col flex-grow justify-between mw-640 mx-auto px-4 shadow-2xl w-full\"},[_c('progress-bar',{attrs:{\"title\":\"Survey\"}}),_vm._m(0),_vm._m(1),_c('div',{staticClass:\"mx-auto w-4/5\"},[_c('chosen-image',{staticClass:\"mb-4 mx-auto w-full\"})],1),(_vm.deck.length > 0)?_c(_vm.questionComponent,{tag:\"component\",class:{\n 'opacity-0': _vm.controlledQuestionIndex === 0,\n 'pointer-events-none': _vm.isComplete\n },attrs:{\"question\":_vm.deck[_vm.controlledQuestionIndex],\"index\":_vm.controlledQuestionIndex},on:{\"next\":_vm.handleNext}}):_vm._e(),_c('transition',{attrs:{\"name\":\"fade\",\"mode\":\"out-in\"}},[(_vm.isReadyForReview)?_c('button',{staticClass:\"bg-red font-medium mb-12 mx-auto py-4 rounded-full text-white text-xl w-full\",on:{\"click\":_vm.handleSubmit}},[_vm._v(\" Submit \")]):_vm._e()])],1)}\nvar staticRenderFns = [function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('h1',{staticClass:\"font-medium interstitial-title leading-none text-3xl text-center text-grey\"},[_vm._v(\" Let's see how you\"),_c('br'),_c('strong',[_vm._v(\"feel about Cincinnati\")])])},function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('h3',{staticClass:\"font-medium h-0 leading-none mt-0 opacity-0 review-title text-3xl text-center text-grey\"},[_vm._v(\" Are you ready to\"),_c('br'),_c('strong',[_vm._v(\"submit your answers?\")])])}]\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return (_vm.question)?_c('section',{staticClass:\"flex flex-col flex-grow justify-between question\"},[_c('div',[_c('h3',{staticClass:\"font-bold leading-tight mb-8 text-xl text-center text-grey\"},[_vm._v(\" \"+_vm._s(_vm.question.prompt)+\" \")]),(_vm.question.format === 'choice')?_c('ul',{staticClass:\"w-full\"},_vm._l((_vm.question.answers),function(answer,i){return _c('li',{key:(\"answer-text-\" + i),staticClass:\"mb-6\"},[_c('button',{staticClass:\"border-2 border-red h-full py-5 px-6 rounded-full transition-bg w-full\",class:answer.id === _vm.answerId ? 'bg-red text-white' : 'text-grey',on:{\"click\":function($event){return _vm.handleAnswerSelect(answer.id)}}},[_vm._v(\" \"+_vm._s(answer.text)+\" \")])])}),0):_c('ul',{staticClass:\"flex flex-wrap justify-around w-full\"},_vm._l((_vm.question.answers),function(answer){return _c('li',{key:(\"answer-image-\" + (answer.id)),staticClass:\"cursor-pointer mb-4 px-2 question-image text-center transition-all w-2/5\",on:{\"click\":function($event){return _vm.handleAnswerSelect(answer.id)}}},[_c('div',{staticClass:\"border-2 border-red intrinsic-wrapper intrinsic-wrapper--1x1 mb-2 overflow-hidden rounded-full transition-all\",class:{\n grow: answer.id === _vm.answerId,\n shrink: answer.id !== _vm.answerId && _vm.answerId\n },staticStyle:{\"box-sizing\":\"content-box\"}},[_c('img',{staticClass:\"h-100 intrinsic-item lazyload object-center object-cover pointer-events-none w-100\",attrs:{\"src\":\"data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==\",\"data-src\":answer.image ? (\"\" + _vm.apiUri + (answer.image.url)) : '',\"alt\":\"survey question image\"}})]),_c('p',{staticClass:\"text-grey\"},[_vm._v(_vm._s(answer.text))])])}),0)])]):_vm._e()}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport IQuestion from \"@/typings/IQuestion\";\nimport IResponse from \"@/typings/IResponse\";\nimport anime, { AnimeInstance } from \"animejs\";\nimport \"lazysizes\";\nimport { Component, Prop, Vue } from \"vue-property-decorator\";\n\n/**\n * Survey question format with multiple text choices.\n */\n@Component\nexport default class QuestionChoice extends Vue {\n @Prop() private question!: IQuestion;\n @Prop() private index!: number;\n\n private readonly DURATION = 600;\n private readonly EASING = \"easeInOutCubic\";\n\n private answerId: number | null = null;\n private questionFadeOut!: AnimeInstance;\n private questionFadeIn!: AnimeInstance;\n\n /**\n * The base app URI configured in env.\n */\n private get apiUri(): string | undefined {\n return process.env.VUE_APP_API_URI;\n }\n\n private get deck(): IQuestion[] {\n return this.$store.getters.deck;\n }\n\n /**\n * Returns true if all survey questions have been answered.\n */\n private get isLastQuestion(): boolean {\n return this.index === this.deck.length - 1;\n }\n\n private get response(): IResponse {\n return {\n answer_id: this.answerId || null,\n answer_value: null,\n question_id: this.question.id || null\n };\n }\n\n /**\n * Reset to initial state.\n */\n private clear(): void {\n this.answerId = null;\n }\n\n /**\n * Handle an answer selection.\n */\n private handleAnswerSelect(answerId: number): void {\n if (anime.running.length > 0) return;\n this.answerId = answerId;\n if (this.isLastQuestion) {\n this.handleNext();\n } else {\n this.questionFadeOut.play();\n }\n }\n\n /**\n * Add the response to store and reset.\n */\n private handleNext(): void {\n if (!this.answerId) return;\n this.$store.dispatch(\"addResponse\", this.response);\n this.$store.dispatch(\"incrementProgress\");\n this.$emit(\"next\");\n this.clear();\n }\n\n private mounted(): void {\n this.questionFadeOut = anime({\n autoplay: false,\n complete: () => {\n this.handleNext();\n },\n duration: this.DURATION,\n easing: this.EASING,\n loop: false,\n opacity: [1, 0],\n targets: \".question\"\n });\n this.questionFadeIn = anime({\n autoplay: false,\n duration: this.DURATION,\n easing: this.EASING,\n opacity: [0, 1],\n targets: \".question\"\n });\n if (this.index <= 0) return;\n this.questionFadeIn.play();\n }\n}\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--13-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./QuestionChoice.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--13-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./QuestionChoice.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./QuestionChoice.vue?vue&type=template&id=b9a154c2&scoped=true&\"\nimport script from \"./QuestionChoice.vue?vue&type=script&lang=ts&\"\nexport * from \"./QuestionChoice.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./QuestionChoice.vue?vue&type=style&index=0&id=b9a154c2&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"b9a154c2\",\n null\n \n)\n\nexport default component.exports","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport ChosenImage from \"@/components/ChosenImage.vue\";\nimport ProgressBar from \"@/components/ProgressBar.vue\";\nimport QuestionChoice from \"@/components/questions/QuestionChoice.vue\";\nimport IAvatar from \"@/typings/IAvatar\";\nimport IConfig from \"@/typings/IConfig\";\nimport IQuestion from \"@/typings/IQuestion\";\nimport anime, { AnimeInstance } from \"animejs\";\nimport { Component, Inject, Vue, Watch } from \"vue-property-decorator\";\n\n/**\n * The survey question view.\n */\n@Component({\n components: {\n ChosenImage,\n ProgressBar,\n QuestionChoice\n }\n})\nexport default class Survey extends Vue {\n @Inject(\"queryWorker\") private queryWorker!: Worker;\n\n private chosenImageAnimation!: AnimeInstance;\n private questionAnimation!: AnimeInstance;\n private reviewTitleAnimation!: AnimeInstance;\n private titleAnimation!: AnimeInstance;\n\n private readonly duration = 2000;\n private readonly easing = \"easeInOutCubic\";\n\n // using a separate index to control when survey question components gets updated.\n private controlledQuestionIndex: number = 0;\n private hasSuccess: boolean = false;\n private isPending: boolean = false;\n private isReadyForReview: boolean = false;\n\n @Watch(\"isComplete\")\n private onIsCompleteChanged(value: boolean, oldValue: boolean) {\n let questionAnimation: AnimeInstance;\n questionAnimation = anime({\n autoplay: false,\n complete: () => {\n this.isReadyForReview = !this.isReadyForReview;\n },\n duration: 600,\n easing: this.easing,\n height: [100, 0],\n opacity: [100, 0],\n targets: \".question\"\n });\n if (value) {\n questionAnimation.play();\n if (!this.chosenImageAnimation.reversed) {\n this.chosenImageAnimation.reverse();\n }\n if (this.reviewTitleAnimation.reversed) {\n this.reviewTitleAnimation.direction = \"normal\";\n }\n this.reviewTitleAnimation.play();\n this.chosenImageAnimation.play();\n } else {\n questionAnimation.reverse();\n if (this.chosenImageAnimation.reversed) {\n this.chosenImageAnimation.direction = \"normal\";\n }\n if (!this.reviewTitleAnimation.reversed) {\n this.reviewTitleAnimation.reverse();\n }\n questionAnimation.play();\n this.chosenImageAnimation.play();\n this.reviewTitleAnimation.play();\n }\n }\n\n @Watch(\"currentQuestionIndex\")\n private onCurrentQuestionIndexChanged(value: number, oldValue: number) {\n if (this.currentQuestionIndex >= this.deck.length) return;\n this.controlledQuestionIndex = value;\n }\n\n /**\n * The base app URI configured in env.\n */\n private get apiUri(): string | undefined {\n return process.env.VUE_APP_API_URI;\n }\n\n /**\n * The currently selected avatar.\n */\n private get avatar(): IAvatar | undefined {\n return this.$store.getters.avatar;\n }\n\n /**\n * The app configuration object.\n */\n private get CONFIG(): IConfig {\n return this.$store.getters.CONFIG;\n }\n\n private get currentQuestionIndex(): number {\n return this.$store.getters.currentQuestionIndex;\n }\n\n private get deck(): IQuestion[] {\n return this.$store.getters.deck;\n }\n\n /**\n * Returns true if all survey questions have been answered.\n */\n private get isComplete(): boolean {\n return this.currentQuestionIndex >= this.deck.length;\n }\n\n /**\n * The progress bar's current progress level.\n */\n private get progress(): number {\n return this.$store.getters.progress;\n }\n\n /**\n * The component that should be used for the current question based on its\n * format.\n */\n private get questionComponent(): string {\n if (!this.deck) return \"\";\n const question = this.deck[this.controlledQuestionIndex];\n if (!question) return \"\";\n return \"QuestionChoice\";\n }\n\n private handleBack(): void {\n this.$store.dispatch(\"undoResponse\");\n this.$store.dispatch(\"decrementProgress\");\n }\n\n /**\n * Handles the next event emitted by the Question component.\n */\n private handleNext(): void {\n window.scrollTo(0, 0);\n anime({\n autoplay: true,\n duration: 600,\n easing: \"easeInOutCubic\",\n opacity: [0, 1],\n targets: \".question\"\n });\n }\n\n /**\n * Handles the survey submission.\n */\n private handleSubmit(): void {\n if (this.isPending) return;\n this.isPending = true;\n this.queryWorker.postMessage({\n avatarId: this.$store.getters.avatarId,\n image: this.$store.getters.image,\n responses: this.$store.getters.responses,\n type: \"responses\"\n });\n this.queryWorker.addEventListener(\"message\", (event: MessageEvent) => {\n if (event.data.type !== \"response\") return;\n this.isPending = false;\n this.hasSuccess = true;\n });\n this.$router.push(\"complete\");\n }\n\n /**\n * Start the interstitial exit animation sequence after a specified duration.\n */\n private interstitialTimeout(duration: number): void {\n setTimeout(() => {\n this.leaveInsterstitial();\n }, duration);\n }\n\n private leaveInsterstitial(): void {\n if (\n !this.chosenImageAnimation ||\n !this.questionAnimation ||\n !this.titleAnimation\n )\n return;\n this.chosenImageAnimation.play();\n this.questionAnimation.play();\n this.titleAnimation.play();\n }\n\n /**\n * Register various animations.\n */\n private registerAnimations(): void {\n this.chosenImageAnimation = anime({\n autoplay: false,\n duration: this.duration,\n easing: this.easing,\n targets: \".chosen-image\",\n width: 80\n });\n this.questionAnimation = anime({\n autoplay: false,\n delay: this.duration,\n duration: this.duration,\n easing: this.easing,\n opacity: [0, 1],\n targets: [\".progress\", \".question\"]\n });\n this.reviewTitleAnimation = anime({\n autoplay: false,\n duration: this.duration,\n easing: this.easing,\n height: [0, 100],\n marginTop: 16,\n opacity: 100,\n targets: \".review-title\"\n });\n this.titleAnimation = anime({\n autoplay: false,\n duration: this.duration,\n easing: this.easing,\n height: 0,\n marginBottom: [\"64\", \"16\"],\n marginTop: [40, 0],\n opacity: 0,\n targets: \".interstitial-title\"\n });\n }\n\n private beforeMount(): void {\n if (!this.CONFIG.SHUFFLE_DECK) return;\n this.$store.dispatch(\"shuffleDeck\");\n }\n\n private mounted(): void {\n window.scrollTo(0, 0);\n this.registerAnimations();\n this.interstitialTimeout(2000);\n }\n}\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--13-3!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Survey.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--13-3!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Survey.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./Survey.vue?vue&type=template&id=2822f2db&\"\nimport script from \"./Survey.vue?vue&type=script&lang=ts&\"\nexport * from \"./Survey.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/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","import Vue from \"vue\";\nimport Router from \"vue-router\";\nimport store from \"./store\";\nimport Avatar from \"./views/Avatar.vue\";\nimport Complete from \"./views/Complete.vue\";\nimport Home from \"./views/Home.vue\";\nimport Survey from \"./views/Survey.vue\";\n\nVue.use(Router);\n\nexport default new Router({\n routes: [\n {\n component: Avatar,\n name: \"avatar\",\n path: \"/avatar\"\n },\n {\n beforeEnter: (to, from, next) => {\n if (isIncompleteGuard()) return next(\"/\");\n next();\n },\n component: Complete,\n name: \"complete\",\n path: \"/complete\"\n },\n {\n component: Home,\n name: \"home\",\n path: \"/\"\n },\n {\n beforeEnter: (to, from, next) => {\n if (isIncompleteGuard()) return next(\"/\");\n next();\n },\n component: Survey,\n name: \"survey\",\n path: \"/survey\"\n },\n ]\n});\n\n/**\n * Returns true if there is neither an image nor avatar ID set in state.\n */\nfunction isIncompleteGuard(): boolean {\n return !store.getters.image && !store.getters.avatar;\n}\n","import Vue from \"vue\";\nimport App from \"./App.vue\";\nimport router from \"./router\";\nimport store from \"./store\";\n\nimport \"@/assets/stylesheets/main.scss\";\n\nVue.config.productionTip = false;\n\nnew Vue({\n render: h => h(App),\n router,\n store\n}).$mount(\"#app\");\n","module.exports = __webpack_public_path__ + \"img/icon_hand.752def6c.svg\";"],"sourceRoot":""}