{"version":3,"sources":["webpack:///webpack/bootstrap","webpack:///./src/client/assets/control-left_old.svg","webpack:///./src/client/html/card-12.html","webpack:///./src/client/html/card-5.html","webpack:///./src/client/assets/control-left.svg","webpack:///./src/client/html/card-9.html","webpack:///./src/client/assets/breeio-logo-animated.svg","webpack:///./src/client/html/card-10.html","webpack:///./src/client/assets/control-right.svg","webpack:///./src/App.vue?763a","webpack:///./src/client/html/begin.html","webpack:///./src/client/assets/Lightbulb-Moment_wide_light.png","webpack:///./src/client/assets sync ^\\.\\/.*$","webpack:///./src/client/assets/Lightbulb-Moment_dark.png","webpack:///./src/client/assets/icons/swipe-up.svg","webpack:///./src/client/html/card-3.html","webpack:///./src/client/html/card-6.html","webpack:///./src/client/html/card-4.html","webpack:///./src/client/html/card-7.html","webpack:///./src/client/assets/heart-pink.svg","webpack:///./src/client/html/card-11.html","webpack:///./src/client/html/card-8.html","webpack:///./src/client/assets/Lightbulb-Moment_light.png","webpack:///./src/client/assets/Lightbulb-Moment_wide_dark.png","webpack:///./src/client/assets/heart-blue.svg","webpack:///./src/client/html/card-2.html","webpack:///./src/client/html sync ^\\.\\/.*$","webpack:///./src/settings/DOMElements.ts","webpack:///./src/App.vue?08ad","webpack:///./src/settings/config.ts","webpack:///./src/ts/content/presetContent.ts","webpack:///./src/ts/log.ts","webpack:///./src/client/js/custom.ts","webpack:///./src/ts/content/contentLoader.ts","webpack:///./src/ts/stamps.ts","webpack:///./src/ts/draggable.ts","webpack:///./src/ts/clickable.ts","webpack:///./src/ts/main.ts","webpack:///./src/App.vue?ec60","webpack:///./src/App.vue?bfbe","webpack:///./src/App.vue","webpack:///./src/ts/ie.ts","webpack:///./src/main.ts","webpack:///./src/client/assets/control-right_old.svg","webpack:///./src/client/html/card-1.html","webpack:///./src/client/assets/icons/arrow.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","map","webpackContext","req","id","webpackContextResolve","e","Error","code","keys","resolve","Indicators","Stamps","render","_vm","this","_h","$createElement","_self","_c","_m","staticRenderFns","attrs","staticClass","currentCardID","leftCardID","rightCardID","upCardID","downCardID","container","area","left","right","up","down","options","init","validInputSettings","formatInputSettings","forEach","card","content","cont","type","toLowerCase","invalidCards","usesCustomCard","cardErrors","some","pageID","errors","console","log","getCard","cardFound","renderParagraph","text","containerDiv","para","document","createElement","node","createTextNode","appendChild","append","renderImage","file","description","image","alt","undefined","src","entries","addEntry","cardInfo","direction","nextCard","rightCard","leftCard","bottomCard","topCard","newChoice","set","setGroup","clear","email","uuidv4","runCondition","params","setEntries","filter","entry","resetSession","thankyouTemplate","submitEmail","querySelector","emailInput","emailErrorMessage","validateEmail","submitLog","error","classList","add","textContent","innerHTML","re","test","String","trim","callback","path","XMLHttpRequest","open","setRequestHeader","onreadystatechange","readyState","status","send","JSON","stringify","replace","Math","random","v","toString","loadPreset","currentCardDOM","contentArray","contentBox","imageDesc","outerHTML","loadCustom","customHTMLPage","clickables","querySelectorAll","clickable","event","getAttribute","addEventListener","leftStamp","rightStamp","upStamp","downStamp","cardWidth","cardHeight","ready","glInverse","cardDOM","inverse","stamp","style","transition","fade","x","y","verticalThreshold","horizontalThreshold","percentageX","opacity","percentageY","hDropArea","vDropArea","swipeLeftBtn","swipeRightBtn","swipeUpBtn","swipeDownBtn","isDown","touchStartPos","leftHover","rightHover","topHover","bottomHover","setGlobals","getBoundingClientRect","width","height","touchDown","evt","touch","touches","clientX","clientY","stamps","default","touchMove","drag","now","offsetX","offsetY","preventDefault","rate","expo","pow","rotation","transform","contains","touchEnd","setTimeout","remove","onResize","stopDraggable","addDraggable","el","cardDetails","handler","removeEventListener","topCardDOM","bottomCardDOM","leftCardDOM","rightCardDOM","click","dir","addClickable","btn","initCard","loadContent","loadCards","events","dataset","cardId","isCustom","first","preloadCards","decisionGroupDOM","swiperEnd","cards","cardData","DOM","clearCardDOM","cardItem","removeAttribute","currentCardInfo","tagElement","domID","cardLanded","fnName","isValid","errorMessage","extend","dataValidation","mounted","component","ieVersion","ie","undef","div","all","getElementsByTagName","checkIEVersion","iev","navigator","appVersion","indexOf","location","href","config","productionTip","h","App","$mount"],"mappings":"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","file":"js/app.e0601555.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","module.exports = __webpack_public_path__ + \"img/control-left_old.e70ecb24.svg\";","module.exports = \"
\\r\\n
\\r\\n

Tool translation

\\r\\n \\r\\n
\\r\\n
\\r\\n Classroom tool\\r\\n
\\r\\n
\\r\\n Virtual tool\\r\\n
\\r\\n\\r\\n
Flip Chart
\\r\\n
Whiteboard
\\r\\n\\r\\n
Handout
\\r\\n
File link
\\r\\n\\r\\n
Worksheet/quiz
\\r\\n
Online quiz
\\r\\n\\r\\n
Hands up
\\r\\n
Poll
\\r\\n\\r\\n
Speak to neighbour
\\r\\n
Private chat
\\r\\n\\r\\n
Small group
\\r\\n
Breakout room
\\r\\n\\r\\n
Group discussion
\\r\\n
Whiteboard, chat or audio
\\r\\n\\r\\n
Question and comments
\\r\\n
Chat or audio
\\r\\n\\r\\n
Post-course feedback
\\r\\n
Online survey
\\r\\n
\\r\\n\\r\\n Swipe up to restart\\r\\n Click here or drag up to restart\\r\\n
\\r\\n
\";","module.exports = \"
\\r\\n
\\r\\n\\r\\n

Have you used the same tool the same way twice in a row?

\\r\\n
\\r\\n
No
\\r\\n
Yes
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n\";","module.exports = __webpack_public_path__ + \"img/control-left.b7d3c5c6.svg\";","module.exports = \"
\\r\\n
\\r\\n \\r\\n \\r\\n\\r\\n

You might want to consider a different tool so you don’t wear out a good thing!

\\r\\n\\r\\n

Tool translation ideas

\\r\\n

Breeio

\\r\\n

Lightbulb Moment

\\r\\n\\r\\n Swipe up to restart\\r\\n Click here or drag up to restart\\r\\n
\\r\\n
\";","module.exports = __webpack_public_path__ + \"img/breeio-logo-animated.0a63a4ce.svg\";","module.exports = \"
\\r\\n
\\r\\n \\r\\n \\r\\n\\r\\n

It might be better to stick with a tool you’re comfortable with. This will increase your confidence with live online delivery.

\\r\\n\\r\\n

Tool translation ideas

\\r\\n

Breeio

\\r\\n

Lightbulb Moment

\\r\\n\\r\\n Swipe up to restart\\r\\n Click here or drag up to restart\\r\\n
\\r\\n
\";","module.exports = __webpack_public_path__ + \"img/control-right.b72951cb.svg\";","import mod from \"-!../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../node_modules/css-loader/index.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!./App.vue?vue&type=style&index=0&lang=scss&\"; export default mod; export * from \"-!../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../node_modules/css-loader/index.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!./App.vue?vue&type=style&index=0&lang=scss&\"","module.exports = \"
\\r\\n
\\r\\n\\r\\n \\r\\n \\r\\n\\r\\n

Is the virtual tool you have in mind a good match?

\\r\\n\\r\\n Swipe up to start\\r\\n Click here or drag up to start\\r\\n\\r\\n
\\r\\n
\\r\\n\";","module.exports = __webpack_public_path__ + \"img/Lightbulb-Moment_wide_light.ad5b72ca.png\";","var map = {\n\t\"./Lightbulb-Moment_dark.png\": \"8526\",\n\t\"./Lightbulb-Moment_light.png\": \"beab\",\n\t\"./Lightbulb-Moment_wide_dark.png\": \"c314\",\n\t\"./Lightbulb-Moment_wide_light.png\": \"6216\",\n\t\"./breeio-logo-animated.svg\": \"4197\",\n\t\"./control-left.svg\": \"317f\",\n\t\"./control-left_old.svg\": \"053f\",\n\t\"./control-right.svg\": \"5257\",\n\t\"./control-right_old.svg\": \"d1e4\",\n\t\"./heart-blue.svg\": \"c349\",\n\t\"./heart-pink.svg\": \"b2c0\",\n\t\"./icons/arrow.svg\": \"ff6e\",\n\t\"./icons/swipe-up.svg\": \"8da0\"\n};\n\n\nfunction webpackContext(req) {\n\tvar id = webpackContextResolve(req);\n\treturn __webpack_require__(id);\n}\nfunction webpackContextResolve(req) {\n\tif(!__webpack_require__.o(map, req)) {\n\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\te.code = 'MODULE_NOT_FOUND';\n\t\tthrow e;\n\t}\n\treturn map[req];\n}\nwebpackContext.keys = function webpackContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackContext.resolve = webpackContextResolve;\nmodule.exports = webpackContext;\nwebpackContext.id = \"71da\";","module.exports = __webpack_public_path__ + \"img/Lightbulb-Moment_dark.b8832a6b.png\";","module.exports = __webpack_public_path__ + \"img/swipe-up.89243dab.svg\";","module.exports = \"
\\r\\n
\\r\\n\\r\\n

Do you have to consider low bandwidth for you or participants?

\\r\\n
\\r\\n
No
\\r\\n
Yes
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n\";","module.exports = \"
\\r\\n
\\r\\n\\r\\n

Are you confident with the tool and can you deal with issues in the moment?

\\r\\n
\\r\\n
No
\\r\\n
Yes
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n\";","module.exports = \"
\\r\\n
\\r\\n\\r\\n

Consider a specific tool… have you used the tool with this group before?

\\r\\n
\\r\\n
No
\\r\\n
Yes
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n\";","module.exports = \"
\\r\\n
\\r\\n\\r\\n

Do you have time to practice before the session?

\\r\\n
\\r\\n
No
\\r\\n
Yes
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n\";","module.exports = __webpack_public_path__ + \"img/heart-pink.24bdf3da.svg\";","module.exports = \"
\\r\\n
\\r\\n \\r\\n \\r\\n\\r\\n

The tool you have in mind sounds like a good match and increases the toolkit you can use in the future.

\\r\\n\\r\\n

Tool translation ideas

\\r\\n

Breeio

\\r\\n

Lightbulb Moment

\\r\\n\\r\\n Swipe up to restart\\r\\n Click here or drag up to restart\\r\\n
\\r\\n
\";","module.exports = \"
\\r\\n
\\r\\n\\r\\n \\r\\n \\r\\n \\r\\n

The tool you have in mind sounds like a good match!

\\r\\n\\r\\n

Tool translation ideas

\\r\\n

Breeio

\\r\\n

Lightbulb Moment

\\r\\n\\r\\n Swipe up to restart\\r\\n Click here or drag up to restart\\r\\n
\\r\\n
\";","module.exports = __webpack_public_path__ + \"img/Lightbulb-Moment_light.25890f52.png\";","module.exports = __webpack_public_path__ + \"img/Lightbulb-Moment_wide_dark.271d26dc.png\";","module.exports = __webpack_public_path__ + \"img/heart-blue.0df14e34.svg\";","module.exports = \"
\\r\\n
\\r\\n\\r\\n \\r\\n \\r\\n \\r\\n

Make sure the tool is familiar and one you don’t need to teach.

\\r\\n\\r\\n

Tool translation ideas

\\r\\n

Breeio

\\r\\n

Lightbulb Moment

\\r\\n\\r\\n Swipe up to restart\\r\\n Click here or drag up to restart\\r\\n
\\r\\n
\";","var map = {\n\t\"./begin.html\": \"5f0c\",\n\t\"./card-1.html\": \"dc96\",\n\t\"./card-10.html\": \"4bb6\",\n\t\"./card-11.html\": \"b7ae\",\n\t\"./card-12.html\": \"187e\",\n\t\"./card-2.html\": \"c727\",\n\t\"./card-3.html\": \"912c\",\n\t\"./card-4.html\": \"9fa2\",\n\t\"./card-5.html\": \"2568\",\n\t\"./card-6.html\": \"9b24\",\n\t\"./card-7.html\": \"ab0b\",\n\t\"./card-8.html\": \"b7de\",\n\t\"./card-9.html\": \"37b1\"\n};\n\n\nfunction webpackContext(req) {\n\tvar id = webpackContextResolve(req);\n\treturn __webpack_require__(id);\n}\nfunction webpackContextResolve(req) {\n\tif(!__webpack_require__.o(map, req)) {\n\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\te.code = 'MODULE_NOT_FOUND';\n\t\tthrow e;\n\t}\n\treturn map[req];\n}\nwebpackContext.keys = function webpackContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackContext.resolve = webpackContextResolve;\nmodule.exports = webpackContext;\nwebpackContext.id = \"c82d\";","export const currentCardID: string = \"current-card\";\r\nexport const leftCardID: string = \"left-card\";\r\nexport const rightCardID: string = \"right-card\";\r\nexport const upCardID: string = \"top-card\";\r\nexport const downCardID: string = \"bottom-card\";\r\n\r\nexport const leftArrow: string = \"left-arrow\";\r\nexport const rightArrow: string = \"right-arrow\";\r\nexport const upArrow: string = \"up-arrow\";\r\nexport const downArrow: string = \"down-arrow\";\r\n\r\nexport const instructionOverlay: string = \"#instruction\";\r\n\r\nexport namespace Indicators {\r\n\r\n export const container: string = \"#indicators\";\r\n export const area: string = \"#indicator-toucharea\";\r\n export const left: string = \"#leftindicator\";\r\n export const right: string = \"#rightindicator\";\r\n export const up: string = \"#upindicator\";\r\n export const down: string = \"#downindicator\";\r\n\r\n}\r\n\r\nexport namespace Stamps {\r\n\r\n export const left: string = \"#leftstamp\";\r\n export const right: string = \"#rightstamp\";\r\n export const up: string = \"#upstamp\";\r\n export const down: string = \"#downstamp\";\r\n\r\n}","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _vm._m(0)}\nvar staticRenderFns = [function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{attrs:{\"id\":\"app\"}},[_c('div',{attrs:{\"id\":\"container\"}},[_c('main',[_c('div',{staticClass:\"card\",attrs:{\"id\":\"current-card\"}}),_c('div',{staticClass:\"card\",attrs:{\"id\":\"left-card\"}}),_c('div',{staticClass:\"card\",attrs:{\"id\":\"right-card\"}}),_c('div',{staticClass:\"card\",attrs:{\"id\":\"top-card\"}}),_c('div',{staticClass:\"card\",attrs:{\"id\":\"bottom-card\"}})]),_c('div',{attrs:{\"id\":\"logger\"}})])])}]\n\nexport { render, staticRenderFns }","import optionsJSON from \"../client/data/options.json\";\r\nimport cardsJSON from \"../client/data/cards.json\";\r\nimport { Path, Options } from \"./interfaces\";\r\n\r\nexport const options: Options.IOptions = optionsJSON;\r\n\r\nexport const cards: Path.ICard[] = cardsJSON;\r\n\r\n/** Initializes the configuration and user setting json file.\r\n * @returns true if successful (json file validation was A-OK)\r\n */\r\nexport function init(): boolean {\r\n\r\n if (validInputSettings()) {\r\n\r\n formatInputSettings();\r\n\r\n return true;\r\n\r\n } else {\r\n\r\n return false;\r\n\r\n }\r\n\r\n}\r\n\r\n\r\n/** Formats the input setting data. */\r\nfunction formatInputSettings(): void {\r\n cards.forEach((card: Path.ICard) => {\r\n card.content.forEach((cont: Path.IContent) => cont.type = cont.type.toLowerCase());\r\n });\r\n}\r\n\r\n/** Validates the input setting data.\r\n * @returns whether the input setting data is valid or not\r\n */\r\nfunction validInputSettings(): boolean {\r\n const invalidCards: Array<{ pageID: string, errors: string[] }> = [];\r\n\r\n cards.forEach((card: Path.ICard) => {\r\n let usesCustomCard: boolean = false;\r\n const cardErrors: string[] = [];\r\n\r\n // if the card content is a custom HTML page, flag it\r\n card.content.some((content: Path.IContent) => {\r\n if (content.type === \"custom_template\") {\r\n usesCustomCard = true;\r\n return true as any;\r\n }\r\n });\r\n\r\n // page can only have one custom content on page\r\n if (usesCustomCard && card.content.length > 1) {\r\n cardErrors.push(\"Page can only have one custom content piece.\");\r\n }\r\n\r\n // if there are errors with this page > log it to pages error array\r\n if (cardErrors.length > 0) {\r\n invalidCards.push({ pageID: card.id, errors: cardErrors });\r\n }\r\n });\r\n\r\n if (invalidCards.length > 0) {\r\n // settings are invalid\r\n console.log(\"Errors with input settings on pages: \", invalidCards);\r\n return false;\r\n } else {\r\n // setting are valid\r\n return true;\r\n }\r\n}\r\n\r\n\r\n/** Gets the card info based on its ID (filename) */\r\nexport function getCard(id: string): Path.ICard | null {\r\n let cardFound: Path.ICard | null = null;\r\n // cards.find((card: Path.ICard) => id === card.id);\r\n cards.forEach((card) => {\r\n if (id === card.id) {\r\n cardFound = card;\r\n return;\r\n }\r\n });\r\n return cardFound;\r\n}","export function renderParagraph(text: string, containerDiv: HTMLDivElement): HTMLDivElement {\r\n const para: HTMLElement = document.createElement(\"p\");\r\n const node: Node = document.createTextNode(text);\r\n para.appendChild(node);\r\n containerDiv.append(para);\r\n\r\n return containerDiv;\r\n}\r\n\r\nexport function renderImage(file: string, description: string, containerDiv: HTMLDivElement): HTMLDivElement {\r\n const image = document.createElement(\"img\");\r\n image.alt = (description !== undefined ? description : \"\");\r\n image.src = require(\"@/client/assets/\" + file);\r\n containerDiv.appendChild(image);\r\n\r\n return containerDiv;\r\n}","import * as _Int from \"../settings/interfaces\";\r\n\r\nexport let entries: _Int.Store.ISelection[] = [];\r\n\r\n/**\r\n * Adds and records a new page entry.\r\n * @param cardInfo Card info.\r\n * @param direction Direction swiped.\r\n */\r\nexport function addEntry(cardInfo: _Int.Path.ICard, direction: string): void {\r\n\r\n let nextCard: string = \"\";\r\n\r\n switch (direction) {\r\n case \"left\":\r\n nextCard = cardInfo.rightCard as string;\r\n break;\r\n case \"right\":\r\n nextCard = cardInfo.leftCard as string;\r\n break;\r\n case \"top\":\r\n nextCard = cardInfo.bottomCard as string;\r\n break;\r\n case \"bottom\":\r\n nextCard = cardInfo.topCard as string;\r\n break;\r\n }\r\n\r\n // log user entry\r\n const newChoice: _Int.Store.ISelection = {\r\n id: cardInfo.id,\r\n direction,\r\n nextCard\r\n };\r\n\r\n if (cardInfo.set as number >= 0) {\r\n newChoice.setGroup = cardInfo.set;\r\n }\r\n\r\n entries.push(newChoice);\r\n\r\n}\r\n\r\n/**\r\n * Clears the current log entries.\r\n */\r\nexport function clear(): void {\r\n\r\n entries = [];\r\n\r\n}","import * as log from \"../../ts/log\";\r\nimport { Path } from \"../../settings/interfaces\";\r\n\r\nlet id: string = \"\";\r\nlet email: string = \"\";\r\n\r\nexport function init(): void {\r\n\r\n id = uuidv4();\r\n\r\n}\r\n\r\nexport function runCondition(card: Path.ICard, params: any[]): void {\r\n\r\n const set = params[0];\r\n\r\n const setEntries = log.entries.filter(entry => {\r\n return entry.setGroup === set && entry.direction === \"left\";\r\n });\r\n\r\n if (setEntries.length === 0) {\r\n card.leftCard = `set${set + 1}-result1`;\r\n card.rightCard = `set${set + 1}-result1`;\r\n }\r\n\r\n if (setEntries.length === 1) {\r\n card.leftCard = `set${set + 1}-result1`;\r\n card.rightCard = `set${set + 1}-result2`;\r\n }\r\n if (setEntries.length === 2) {\r\n card.leftCard = `set${set + 1}-result2`;\r\n card.rightCard = `set${set + 1}-result2`;\r\n }\r\n if (setEntries.length === 3) {\r\n card.leftCard = `set${set + 1}-result2`;\r\n card.rightCard = `set${set + 1}-result3`;\r\n }\r\n if (setEntries.length >= 4) {\r\n card.leftCard = `set${set + 1}-result3`;\r\n card.rightCard = `set${set + 1}-result3`;\r\n }\r\n\r\n}\r\n\r\nexport function resetSession(): void {\r\n\r\n id = uuidv4();\r\n email = \"\";\r\n log.clear();\r\n\r\n}\r\n\r\nconst thankyouTemplate: string = `\r\n
\r\n
\r\n
\r\n
\r\n\r\n\r\n

Thank you!

\r\n

We will be in touch.





\r\n\r\n Swipe up to restart\r\n Click here or drag up to restart\r\n\r\n\r\n
\r\n\r\n \r\n\r\n
`;\r\n\r\nexport function submitEmail(): void {\r\n\r\n const card = document.querySelector(\"#current-card\") as HTMLDivElement;\r\n const emailInput = card.querySelector(\"input\") as HTMLInputElement;\r\n const emailErrorMessage = card.querySelector(\"#error-message\");\r\n\r\n console.log(card);\r\n\r\n if (validateEmail(emailInput.value)) {\r\n\r\n email = emailInput.value;\r\n\r\n submitLog(null, [(error: boolean = false) => {\r\n\r\n\r\n if (error) {\r\n\r\n emailInput.classList.add(\"invalid\");\r\n (emailErrorMessage as HTMLParagraphElement).textContent = \"There has been an issus. Please try again.\";\r\n emailErrorMessage?.classList.add(\"show\");\r\n\r\n } else {\r\n\r\n // go to THANK YOU page\r\n card.innerHTML = thankyouTemplate;\r\n\r\n }\r\n\r\n }]);\r\n\r\n } else {\r\n\r\n emailInput.classList.add(\"invalid\");\r\n (emailErrorMessage as HTMLParagraphElement).textContent = \"Please enter a valid email address.\";\r\n emailErrorMessage?.classList.add(\"show\");\r\n\r\n }\r\n\r\n}\r\n\r\nfunction validateEmail(email: string): boolean {\r\n var re = /[a-zA-Z0-9.\\-&]{1,}@[a-zA-Z.-]{2,}[.]{1}[a-zA-Z]{2,}/;\r\n return re.test(String(email).trim());\r\n}\r\n\r\nexport function submitLog(card: Path.ICard | null, params: any[]): void {\r\n\r\n const callback: (...args: any) => void = params[0];\r\n\r\n const data = {\r\n id,\r\n email,\r\n path: log.entries\r\n };\r\n\r\n const req = new XMLHttpRequest();\r\n req.open(\"POST\", \"https://love-api.breeio.com/api/values\", true);\r\n req.setRequestHeader(\"Content-Type\", \"application/json\");\r\n req.onreadystatechange = function() {\r\n try {\r\n if (this.readyState === 4) {\r\n if (this.status === 200) {\r\n // all good\r\n if (callback) callback();\r\n } else {\r\n // server error\r\n if (callback) callback(true);\r\n console.log(\"Error:\", this.status);\r\n }\r\n }\r\n } catch (e) {\r\n\r\n if (callback) callback(true);\r\n console.log(\"Caught exception: \" + e.description);\r\n\r\n }\r\n }\r\n req.send(JSON.stringify(data));\r\n}\r\n\r\nfunction uuidv4(): string {\r\n return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, function(c) {\r\n var r = Math.random() * 16 | 0, v = c == 'x' ? r : (r & 0x3 | 0x8);\r\n return v.toString(16);\r\n });\r\n}\r\n","import * as _Int from '../../settings/interfaces';\r\nimport * as preset from \"./presetContent\";\r\n\r\nimport * as custom from \"../../client/js/custom\";\r\n\r\n/** Loads pre-defined content (paragraph/statement/image)\r\n * @param card Page info from settings\r\n */\r\nexport function loadPreset(card: _Int.Path.ICard, currentCardDOM: HTMLElement): void {\r\n const contentArray: _Int.Path.IContent[] = card.content;\r\n let contentBox: HTMLDivElement = document.createElement(\"div\");\r\n\r\n contentArray.forEach((content: _Int.Path.IContent) => {\r\n\r\n // render content based on type\r\n if (content.type === \"image\") {\r\n\r\n contentBox = preset.renderImage(content.file as string, content.imageDesc as string, contentBox);\r\n\r\n } else if (content.type === \"parag\" || \"p\" || \"statement\") {\r\n\r\n contentBox = preset.renderParagraph(content.text as string, contentBox);\r\n\r\n }\r\n });\r\n\r\n currentCardDOM.innerHTML = contentBox.outerHTML;\r\n}\r\n\r\n/**Loads a custom HTML template page into the html_panel\r\n */\r\nexport function loadCustom(card: _Int.Path.ICard, currentCardDOM: HTMLElement): void {\r\n\r\n const customHTMLPage = require(\"@/client/html/\" + card.content[0].file);\r\n\r\n // load html into placeholder\r\n currentCardDOM.innerHTML = customHTMLPage;\r\n\r\n // add events to any custom clickables\r\n const clickables = currentCardDOM.querySelectorAll(\"[data-click]\");\r\n\r\n for (const clickable of clickables) {\r\n const event = clickable.getAttribute(\"data-click\");\r\n clickable.addEventListener(\"click\", (custom as any)[event as string]);\r\n }\r\n}","import { Stamps } from \"../settings/DOMElements\";\r\n\r\nlet ready: boolean = false;\r\nlet glInverse: boolean = false;\r\n\r\nlet leftStamp: HTMLSpanElement;\r\nlet rightStamp: HTMLSpanElement;\r\nlet upStamp: HTMLSpanElement;\r\nlet downStamp: HTMLSpanElement;\r\n\r\nexport function init(cardDOM: HTMLDivElement, inverse: boolean = false): void {\r\n\r\n if (!ready) {\r\n leftStamp = cardDOM.querySelector(Stamps.left) as HTMLSpanElement;\r\n rightStamp = cardDOM.querySelector(Stamps.right) as HTMLSpanElement;\r\n upStamp = cardDOM.querySelector(Stamps.up) as HTMLSpanElement;\r\n downStamp = cardDOM.querySelector(Stamps.down) as HTMLSpanElement;\r\n ready = true;\r\n glInverse = inverse;\r\n }\r\n\r\n [leftStamp, rightStamp, upStamp, downStamp].forEach((stamp) => {\r\n if (stamp) {\r\n stamp.style.transition = \"none\";\r\n }\r\n });\r\n\r\n}\r\n\r\nexport function fade(x: number, y: number, verticalThreshold: number, horizontalThreshold: number): void {\r\n\r\n if (glInverse) {\r\n\r\n const percentageX = ((horizontalThreshold - x) / horizontalThreshold) * 100;\r\n\r\n if (rightStamp) { rightStamp.style.opacity = `${((200 - percentageX) / 100)}`; }\r\n if (leftStamp) { leftStamp.style.opacity = `${(percentageX / 100)}`; }\r\n\r\n } else {\r\n\r\n const percentageX = (x / horizontalThreshold) * 100;\r\n const percentageY = (y / verticalThreshold) * 100;\r\n\r\n if (rightStamp) { rightStamp.style.opacity = `${(percentageX / 100)}`; }\r\n if (leftStamp) { leftStamp.style.opacity = `${-(percentageX / 100)}`; }\r\n if (upStamp) { upStamp.style.opacity = `${-(percentageY / 100)}`; }\r\n if (downStamp) { downStamp.style.opacity = `${(percentageY / 100)}`; }\r\n\r\n }\r\n\r\n}\r\n\r\nexport function reset(): void {\r\n\r\n ready = false;\r\n\r\n [leftStamp, rightStamp, upStamp, downStamp].forEach((stamp) => {\r\n if (stamp) {\r\n stamp.style.transition = \"opacity .2s ease-out\";\r\n if (glInverse) {\r\n stamp.style.opacity = \"1\";\r\n } else {\r\n stamp.style.opacity = \"0\";\r\n }\r\n }\r\n });\r\n\r\n}","import * as _Int from \"../settings/interfaces\";\r\nimport { hideInstructionPanel } from \"./instructions\";\r\nimport * as stamps from './stamps';\r\n\r\nimport { options } from \"../settings/config\";\r\n\r\nimport { drag } from \"./main\";\r\n\r\nlet card: HTMLDivElement;\r\nlet cardInfo: _Int.Path.ICard;\r\n\r\nlet cardWidth: number;\r\nlet cardHeight: number;\r\nlet isDown: boolean = false;\r\nconst touchStartPos: any = { x: 0, y: 0 };\r\nlet hDropArea: number;\r\nlet vDropArea: number;\r\n\r\nlet leftHover: boolean = false;\r\nlet rightHover: boolean = false;\r\nlet topHover: boolean = false;\r\nlet bottomHover: boolean = false;\r\n\r\nlet callback: (...args: any) => void;\r\n\r\nlet decisionGroupDOM: HTMLDivElement;\r\n\r\nfunction setGlobals(): void {\r\n\r\n cardWidth = card.getBoundingClientRect().width;\r\n cardHeight = card.getBoundingClientRect().height;\r\n hDropArea = (cardWidth / 100) * 80;\r\n vDropArea = (cardHeight / 100) * 80;\r\n\r\n}\r\n\r\nfunction touchDown(e: MouseEvent & TouchEvent): void {\r\n\r\n let evt: any;\r\n isDown = true;\r\n card.style.transition = `none`;\r\n if (e.type === \"mousedown\") {\r\n evt = e;\r\n } else {\r\n const touch: Touch = e.touches[0];\r\n evt = touch;\r\n }\r\n touchStartPos.x = evt.clientX;\r\n touchStartPos.y = evt.clientY;\r\n\r\n // hideInstructionPanel();\r\n if (options.stamps.default) {\r\n stamps.init(card, options.stamps.inverse);\r\n }\r\n}\r\n\r\nfunction touchMove(e: MouseEvent & TouchEvent): void {\r\n if (isDown) {\r\n drag.now = true;\r\n let offsetX: number, offsetY: number, evt: any;\r\n if (e.type === \"mousemove\") {\r\n evt = e;\r\n e.preventDefault();\r\n } else {\r\n evt = e.touches[0] as Touch;\r\n }\r\n const rate: number = 3;\r\n offsetX = (evt.clientX - touchStartPos.x) / rate;\r\n offsetY = (evt.clientY - touchStartPos.y) / rate;\r\n\r\n if (cardInfo.topCard && cardInfo.bottomCard) {\r\n offsetY = evt.clientY - touchStartPos.y;\r\n } else {\r\n if (cardInfo.topCard) {\r\n if (evt.clientY - touchStartPos.y >= 0) {\r\n offsetY = evt.clientY - touchStartPos.y;\r\n }\r\n }\r\n if (cardInfo.bottomCard) {\r\n if (evt.clientY - touchStartPos.y < 0) {\r\n offsetY = evt.clientY - touchStartPos.y;\r\n }\r\n }\r\n }\r\n\r\n if (cardInfo.leftCard && cardInfo.rightCard) {\r\n offsetX = evt.clientX - touchStartPos.x;\r\n } else {\r\n if (cardInfo.leftCard) {\r\n if (evt.clientX - touchStartPos.x >= 0) {\r\n offsetX = evt.clientX - touchStartPos.x;\r\n }\r\n }\r\n if (cardInfo.rightCard) {\r\n if (evt.clientX - touchStartPos.x < 0) {\r\n offsetX = evt.clientX - touchStartPos.x;\r\n }\r\n }\r\n }\r\n\r\n const expo: number = (offsetX < 0 ? -Math.pow(offsetX, 2) : Math.pow(offsetX, 2));\r\n const rotation: number = (25 / (Math.pow(cardWidth, 2))) * expo;\r\n card.style.transform = `translate(${offsetX}px, ${offsetY}px) rotate(${rotation}deg)`;\r\n\r\n if (offsetY < (-cardHeight) + vDropArea) {\r\n if (!topHover) { // swipe up\r\n topHover = true;\r\n bottomHover = false;\r\n }\r\n } else if (offsetY > cardHeight - vDropArea) {\r\n if (!bottomHover) { // swipe down\r\n topHover = false;\r\n bottomHover = true;\r\n }\r\n } else {\r\n if (topHover || bottomHover) {\r\n topHover = false;\r\n bottomHover = false;\r\n }\r\n if (offsetX < (-cardWidth) + hDropArea) {\r\n if (!leftHover) { // swipe left\r\n rightHover = false;\r\n leftHover = true;\r\n }\r\n } else if (offsetX > cardWidth - hDropArea) {\r\n if (!rightHover) { // swipe right\r\n leftHover = false;\r\n rightHover = true;\r\n }\r\n } else {\r\n if (leftHover || rightHover) {\r\n leftHover = false;\r\n rightHover = false;\r\n }\r\n }\r\n }\r\n\r\n if (options.stamps.default) {\r\n stamps.fade(offsetX, offsetY, cardHeight - vDropArea, cardWidth - hDropArea);\r\n }\r\n\r\n decisionGroupDOM = card.querySelector(\"#decision-group\") as HTMLDivElement;\r\n if (decisionGroupDOM && !decisionGroupDOM.classList.contains(\"hide\")) {\r\n decisionGroupDOM.classList.add(\"hide\");\r\n }\r\n\r\n }\r\n}\r\n\r\nfunction touchEnd(e: MouseEvent & TouchEvent): void {\r\n // e.preventDefault();\r\n if (topHover && cardInfo.bottomCard) {\r\n topHover = false;\r\n callback(\"top\");\r\n } else if (bottomHover && cardInfo.topCard) {\r\n bottomHover = false;\r\n callback(\"bottom\");\r\n } else {\r\n topHover = false;\r\n bottomHover = false;\r\n if (leftHover && cardInfo.rightCard) {\r\n leftHover = false;\r\n callback(\"left\");\r\n } else if (rightHover && cardInfo.leftCard) {\r\n rightHover = false;\r\n callback(\"right\");\r\n } else {\r\n leftHover = false;\r\n rightHover = false;\r\n bottomHover = false;\r\n topHover = false;\r\n card.style.transform = `translate(0px, 0px) rotate(0deg)`;\r\n }\r\n }\r\n card.style.transition = `transform .2s ease-out`;\r\n isDown = false;\r\n\r\n setTimeout(() => {\r\n drag.now = false;\r\n }, 500);\r\n\r\n touchStartPos.x = 0;\r\n touchStartPos.y = 0;\r\n\r\n if (options.stamps.default) {\r\n stamps.reset();\r\n }\r\n\r\n if (decisionGroupDOM) {\r\n decisionGroupDOM.classList.remove(\"hide\");\r\n }\r\n}\r\n\r\nfunction onResize(e: Event): void {\r\n stopDraggable();\r\n addDraggable(card, cardInfo, callback);\r\n}\r\n\r\nexport function addDraggable(el: HTMLDivElement, cardDetails: _Int.Path.ICard, handler: (...args: any) => void): void {\r\n\r\n card = el;\r\n cardInfo = cardDetails;\r\n callback = handler;\r\n\r\n setGlobals();\r\n\r\n [\"mousedown\", \"touchstart\"].forEach((e) => {\r\n document.addEventListener(e, touchDown);\r\n });\r\n\r\n [\"mousemove\", \"touchmove\"].forEach((e) => {\r\n document.addEventListener(e, touchMove);\r\n });\r\n\r\n [\"mouseup\", \"touchend\"].forEach((e) => {\r\n document.addEventListener(e, touchEnd);\r\n });\r\n\r\n window.addEventListener(\"resize\", onResize);\r\n\r\n}\r\n\r\nexport function stopDraggable(): void {\r\n\r\n [\"mousedown\", \"touchstart\"].forEach((e) => {\r\n document.removeEventListener(e, touchDown);\r\n });\r\n\r\n [\"mousemove\", \"touchmove\"].forEach((e) => {\r\n document.removeEventListener(e, touchMove);\r\n });\r\n\r\n [\"mouseup\", \"touchend\"].forEach((e) => {\r\n document.removeEventListener(e, touchEnd);\r\n });\r\n\r\n window.removeEventListener(\"resize\", onResize);\r\n\r\n}","import * as _Int from \"../settings/interfaces\";\r\nimport { drag } from \"./main\";\r\n\r\nlet card: HTMLDivElement;\r\n\r\nlet swipeLeftBtn: HTMLElement;\r\nlet swipeRightBtn: HTMLElement;\r\nlet swipeUpBtn: HTMLElement;\r\nlet swipeDownBtn: HTMLElement;\r\n\r\nconst test = false;\r\n\r\nlet callback: (...args: any) => void;\r\n\r\nfunction click(dir: string): () => void {\r\n return () => {\r\n if (!drag.now) {\r\n callback(dir);\r\n }\r\n };\r\n}\r\n\r\nexport function addClickable(el: HTMLDivElement, handler: (...args: any) => void): void {\r\n\r\n card = el;\r\n callback = handler;\r\n\r\n swipeLeftBtn = card.querySelector(`[data-swipe=\"left\"]`) as HTMLElement;\r\n swipeRightBtn = card.querySelector(`[data-swipe=\"right\"]`) as HTMLElement;\r\n swipeUpBtn = card.querySelector(`[data-swipe=\"top\"]`) as HTMLElement;\r\n swipeDownBtn = card.querySelector(`[data-swipe=\"bottom\"]`) as HTMLElement;\r\n\r\n [swipeLeftBtn, swipeRightBtn, swipeDownBtn, swipeUpBtn].forEach((btn) => {\r\n\r\n if (btn) {\r\n const dir = btn.getAttribute(\"data-swipe\") as string;\r\n btn.addEventListener(\"click\", click(dir));\r\n }\r\n\r\n });\r\n\r\n}","import * as DOMElements from \"../settings/DOMElements\";\r\nimport * as Config from \"../settings/config\";\r\nimport * as _Int from \"../settings/interfaces\";\r\n\r\nimport * as contentLoader from \"./content/contentLoader\";\r\nimport * as draggable from \"./draggable\";\r\nimport * as clickable from './clickable';\r\nimport * as log from \"./log\";\r\n\r\n// import * as instruction from './instructions'; // not sure if we need this\r\n\r\nimport * as custom from \"../client/js/custom\";\r\n\r\nlet currentCardDOM: HTMLDivElement;\r\nexport let topCardDOM: HTMLDivElement;\r\nexport let bottomCardDOM: HTMLDivElement;\r\nexport let leftCardDOM: HTMLDivElement;\r\nexport let rightCardDOM: HTMLDivElement;\r\n\r\nexport const drag = { now: false };\r\n\r\n\r\n/** Initialises globals, loads the first set of cards into the container, and sets up the initial event handlers. */\r\nexport function init(): void {\r\n\r\n // set up global variables\r\n // needs to be done as init is called AFTER the DOM has loaded\r\n setGlobals();\r\n\r\n // get the first card details from the JSON\r\n const initCard: _Int.Path.ICard = Config.cards[0];\r\n\r\n // load content into the first card\r\n loadContent(initCard, currentCardDOM);\r\n\r\n // preload the next cards\r\n loadCards(initCard, true);\r\n\r\n // call custom init function\r\n if (Config.options.events && Config.options.events.init) {\r\n (custom as any)[Config.options.events.init]();\r\n }\r\n\r\n}\r\n\r\n/** Assigns global variables. */\r\nfunction setGlobals(): void {\r\n\r\n currentCardDOM = document.querySelector(`#${DOMElements.currentCardID}`) as HTMLDivElement;\r\n\r\n leftCardDOM = document.querySelector(`#${DOMElements.leftCardID}`) as HTMLDivElement;\r\n rightCardDOM = document.querySelector(`#${DOMElements.rightCardID}`) as HTMLDivElement;\r\n topCardDOM = document.querySelector(`#${DOMElements.upCardID}`) as HTMLDivElement;\r\n bottomCardDOM = document.querySelector(`#${DOMElements.downCardID}`) as HTMLDivElement;\r\n\r\n}\r\n\r\n/**\r\n * Loads card content into a given DOM element.\r\n * @param card Card details (interface ICard) to load content.\r\n * @param cardDOM DOM element to load the content into.\r\n */\r\nexport function loadContent(card: _Int.Path.ICard, cardDOM: HTMLDivElement): void {\r\n\r\n // set id on DOM element\r\n cardDOM.dataset.cardId = card.id;\r\n\r\n // checks the current card for custom content\r\n const isCustom: boolean = card.content.some((c) => c.type === \"custom_template\");\r\n\r\n if (isCustom) {\r\n\r\n // load custom content into the DOM\r\n contentLoader.loadCustom(card, cardDOM);\r\n\r\n } else {\r\n\r\n // load predefined content into the DOM\r\n contentLoader.loadPreset(card, cardDOM);\r\n\r\n }\r\n\r\n}\r\n\r\n/**\r\n * Performs tasks after preloading card content, and handles first and last card cases.\r\n * @param card Current card data.\r\n * @param first True if this is the first card.\r\n */\r\nfunction loadCards(card: _Int.Path.ICard, first: boolean = false) {\r\n\r\n // [explicit] if the current card has following cards\r\n if (preloadCards(card)) {\r\n // if it's not the last card (there are cards that have been preloaded)\r\n\r\n // if the card is a decision card\r\n const decisionGroupDOM = currentCardDOM.querySelector(\"#decision-group\");\r\n if (decisionGroupDOM) { decisionGroupDOM.classList.add(\"show\"); }\r\n\r\n } else { // last card\r\n\r\n // end the swiper\r\n swiperEnd();\r\n\r\n }\r\n\r\n // if the current card is the very first card\r\n if (first) {\r\n\r\n // begin the intruction animation\r\n // instruction.beginAnimate(currentCardDOM, 1.5, () => {\r\n\r\n // apply touch events once the animation is over\r\n draggable.addDraggable(currentCardDOM, card, (dir: string) => {\r\n nextCard(dir);\r\n });\r\n\r\n clickable.addClickable(currentCardDOM, (dir: string) => {\r\n nextCard(dir);\r\n });\r\n\r\n // });\r\n\r\n } else { // every other card\r\n\r\n // apply touch events\r\n draggable.addDraggable(currentCardDOM, card, (dir: string) => {\r\n nextCard(dir);\r\n });\r\n\r\n clickable.addClickable(currentCardDOM, (dir: string) => {\r\n nextCard(dir);\r\n });\r\n\r\n }\r\n\r\n}\r\n\r\n/**\r\n * Preloads next cards into the DOM.\r\n * @param card Current card data.\r\n */\r\nfunction preloadCards(card: _Int.Path.ICard): boolean {\r\n\r\n // get the next cards' data\r\n const leftCard = Config.getCard(card.leftCard as string);\r\n const rightCard = Config.getCard(card.rightCard as string);\r\n const topCard = Config.getCard(card.topCard as string);\r\n const bottomCard = Config.getCard(card.bottomCard as string);\r\n\r\n // this array is to allow for looping though each card to load the content in\r\n const cards: Array<{ cardData: _Int.Path.ICard, DOM: HTMLDivElement }> = [];\r\n\r\n // if the current card has next card data, push it to the cards array,\r\n // otherwise clear the DOM\r\n if (leftCard) { cards.push({ cardData: leftCard, DOM: leftCardDOM }); }\r\n else { clearCardDOM(leftCardDOM); }\r\n\r\n if (rightCard) { cards.push({ cardData: rightCard, DOM: rightCardDOM }); }\r\n else { clearCardDOM(rightCardDOM); }\r\n\r\n if (topCard) { cards.push({ cardData: topCard, DOM: topCardDOM }); }\r\n else { clearCardDOM(topCardDOM); }\r\n\r\n if (bottomCard) { cards.push({ cardData: bottomCard, DOM: bottomCardDOM }); }\r\n else { clearCardDOM(bottomCardDOM); }\r\n\r\n // if there are no card references at all, assume that this is the last card\r\n if (!leftCard && !rightCard && !topCard && !bottomCard) {\r\n\r\n return false;\r\n\r\n } else { // otherwise, load in the content for each card\r\n\r\n for (const cardItem of cards) {\r\n loadContent(cardItem.cardData, cardItem.DOM);\r\n }\r\n\r\n return true;\r\n\r\n }\r\n\r\n /**\r\n * Perform necessary tasks for clearing a DOM element.\r\n * @param cardDOM The card DOM element to clear.\r\n */\r\n function clearCardDOM(cardDOM: HTMLDivElement): void {\r\n cardDOM.innerHTML = \"\";\r\n cardDOM.removeAttribute(\"data-card-id\");\r\n }\r\n\r\n}\r\n\r\n/**\r\n * Transitions the next card in and performs tasks once the transition has ended.\r\n * @param direction Direction of the swipe.\r\n */\r\nfunction nextCard(direction: string): void {\r\n\r\n // get the current card data from an attribute set on the current card DOM element\r\n let currentCardInfo = Config.getCard(currentCardDOM.dataset.cardId as string);\r\n\r\n // add an entry to the log\r\n log.addEntry(currentCardInfo as _Int.Path.ICard, direction);\r\n\r\n // set variables\r\n let DOM: HTMLDivElement = currentCardDOM; // had to assign to avoid errors\r\n let domID: string = \"\"; // had to assign to avoid errors\r\n let tagElement: string;\r\n\r\n // depending on the direction, assign variables above and transform the current card DOM to the swiped direction\r\n switch (direction) {\r\n case \"left\":\r\n DOM = rightCardDOM;\r\n domID = DOMElements.rightCardID;\r\n currentCardDOM.style.transform = `translate(-250%, 0px) rotate(-70deg)`;\r\n break;\r\n case \"right\":\r\n DOM = leftCardDOM;\r\n domID = DOMElements.leftCardID;\r\n currentCardDOM.style.transform = `translate(250%, 0px) rotate(70deg)`;\r\n break;\r\n case \"top\":\r\n DOM = bottomCardDOM;\r\n domID = DOMElements.downCardID;\r\n currentCardDOM.style.transform = `translateY(-250%)`;\r\n break;\r\n case \"bottom\":\r\n DOM = topCardDOM;\r\n domID = DOMElements.upCardID;\r\n currentCardDOM.style.transform = `translateY(250%)`;\r\n break;\r\n }\r\n\r\n tagElement = \"#\" + domID;\r\n\r\n // apply transitioning for the next card to become the current card, and transform it to bring it to the display\r\n DOM.style.transition = `transform .2s ease-out`;\r\n DOM.style.transform = `translate(0, 0) rotate(0deg)`;\r\n\r\n // add an event listener for once the transition is over and the next card has landed\r\n DOM.addEventListener(\"transitionend\", cardLanded);\r\n\r\n /**\r\n * Performs resetting tasks for when the swipe transition ends.\r\n */\r\n function cardLanded(): void {\r\n\r\n // remove the end transition event listener from the next card DOM element as at the point it will become the current card\r\n DOM.removeEventListener(\"transitionend\", cardLanded);\r\n\r\n // change the next card to the current card\r\n DOM.id = DOMElements.currentCardID;\r\n // change the now old current card to the next card\r\n currentCardDOM.id = domID;\r\n\r\n // reassign DOM to target the now old current card\r\n DOM = document.querySelector(tagElement) as HTMLDivElement;\r\n // reassign currentCardDOM to the new current card\r\n currentCardDOM = document.querySelector(\"#\" + DOMElements.currentCardID) as HTMLDivElement;\r\n\r\n // remove the transition from the old current card to instantly position it\r\n DOM.style.transition = `none`;\r\n\r\n // instantly position the old current card to where the new current card used to be, effectively switching places\r\n switch (direction) {\r\n case \"left\":\r\n DOM.style.transform = `translateX(250%) rotate(70deg)`;\r\n rightCardDOM = DOM;\r\n break;\r\n case \"right\":\r\n DOM.style.transform = `translateX(-250%) rotate(-70deg)`;\r\n leftCardDOM = DOM;\r\n break;\r\n case \"top\":\r\n DOM.style.transform = `translateY(250%)`;\r\n bottomCardDOM = DOM;\r\n break;\r\n case \"bottom\":\r\n DOM.style.transform = `translateY(-250%)`;\r\n topCardDOM = DOM;\r\n break;\r\n }\r\n\r\n // reassign the currentCardInfo to that of the new card\r\n currentCardInfo = Config.getCard(currentCardDOM.dataset.cardId as string) as _Int.Path.ICard;\r\n\r\n // remove touch events from the old current card\r\n draggable.stopDraggable();\r\n\r\n // load a custom action as defined in the json & custom script\r\n if (currentCardInfo.event) {\r\n const [fnName, ...params] = currentCardInfo.event;\r\n (custom as any)[fnName](currentCardInfo, params);\r\n }\r\n\r\n // load in the next cards\r\n loadCards(currentCardInfo);\r\n\r\n }\r\n\r\n}\r\n\r\nfunction swiperEnd(): void {\r\n\r\n // console.log(\"END\");\r\n\r\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 Vue from 'vue';\n\nimport { init } from \"./ts/main\";\n\n// import configuration options\nimport * as Config from \"./settings/config\";\n\n// check to see if the JSON data is valid, and store the result for Vue reactivity\nlet isValid: boolean = false;\nlet errorMessage: string = \"\";\nif (Config.init()) {\n isValid = true;\n} else {\n errorMessage = \"Settings are not valid, man!\";\n}\n\nexport default Vue.extend({\n name: 'app',\n\n data() {\n return {\n dataValidation: { isValid, errorMessage }\n };\n },\n\n mounted() {\n if (this.dataValidation.isValid) {\n init();\n } else {\n console.log(this.dataValidation.errorMessage);\n }\n }\n});\n","import mod from \"-!../node_modules/cache-loader/dist/cjs.js??ref--12-0!../node_modules/thread-loader/dist/cjs.js!../node_modules/ts-loader/index.js??ref--12-2!../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--12-0!../node_modules/thread-loader/dist/cjs.js!../node_modules/ts-loader/index.js??ref--12-2!../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=9f7eaa12&\"\nimport script from \"./App.vue?vue&type=script&lang=ts&\"\nexport * from \"./App.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./App.vue?vue&type=style&index=0&lang=scss&\"\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","function ieVersion(): number | undefined {\r\n\r\n const ie = (function () {\r\n\r\n let undef, v = 3;\r\n const div = document.createElement('div'), all = div.getElementsByTagName('i');\r\n\r\n while (\r\n div.innerHTML = '',\r\n all[0]\r\n );\r\n return v > 4 ? v : undef;\r\n\r\n }());\r\n\r\n return ie;\r\n}\r\n\r\nexport function checkIEVersion(): void {\r\n const iev = ieVersion();\r\n\r\n if ((typeof iev != 'undefined' && iev <= 9) || navigator.appVersion.indexOf(\"MSIE 10\") !== -1) {\r\n window.location.href = 'https://www.breeio.com/incompatible/';\r\n }\r\n}","import Vue from 'vue';\nimport App from './App.vue';\n\nimport { checkIEVersion } from \"./ts/ie\";\n\ncheckIEVersion();\n\nVue.config.productionTip = false;\n\nnew Vue({\n render: (h) => h(App),\n}).$mount('#app');\n","module.exports = __webpack_public_path__ + \"img/control-right_old.75621ecd.svg\";","module.exports = \"
\\r\\n
\\r\\n\\r\\n

Is your session short on time and heavy on content?

\\r\\n
\\r\\n
No
\\r\\n
Yes
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n\";","module.exports = __webpack_public_path__ + \"img/arrow.0cd4bb02.svg\";"],"sourceRoot":""}