{"version":3,"file":"js/application-1b7c1746658ba4102b5a.js","sources":["webpack:///webpack/bootstrap","webpack:///./app/javascript/channels sync _channel\\.js$","webpack:///./app/javascript/channels/consumer.js","webpack:///./app/javascript/channels/index.js","webpack:///./app/javascript/channels/support_channel.js","webpack:///./app/javascript/channels/typing_channel.js","webpack:///./app/javascript/controllers/admin-controller.js","webpack:///./app/javascript/controllers/app-controller.js","webpack:///./app/javascript/controllers/boat-client.js","webpack:///./app/javascript/controllers/boats-controller.js","webpack:///./app/javascript/controllers/bookings-controller.js","webpack:///./app/javascript/controllers/coupons-controller.js","webpack:///./app/javascript/controllers/index.js","webpack:///./app/javascript/controllers/support-controller.js","webpack:///./app/javascript/controllers/user_widgets-controller.js","webpack:///./app/javascript/controllers/users-controller.js","webpack:///./app/javascript/custom/index.js","webpack:///./app/javascript/custom/qr-scanner-worker.min.js","webpack:///./app/javascript/packs/application.js","webpack:///./node_modules/@rails/actioncable/app/assets/javascripts/action_cable.js","webpack:///./node_modules/@rails/actiontext/app/javascript/actiontext/attachment_upload.js","webpack:///./node_modules/@rails/actiontext/app/javascript/actiontext/index.js","webpack:///./node_modules/@rails/activestorage/app/assets/javascripts/activestorage.js","webpack:///./node_modules/@rails/ujs/lib/assets/compiled/rails-ujs.js","webpack:///./node_modules/dijkstrajs/dijkstra.js","webpack:///./node_modules/encode-utf8/index.js","webpack:///./node_modules/jquery/dist/jquery.js","webpack:///./node_modules/process/browser.js","webpack:///./node_modules/qr-scanner/qr-scanner.min.js","webpack:///./node_modules/qrcode/lib/browser.js","webpack:///./node_modules/qrcode/lib/can-promise.js","webpack:///./node_modules/qrcode/lib/core/alignment-pattern.js","webpack:///./node_modules/qrcode/lib/core/alphanumeric-data.js","webpack:///./node_modules/qrcode/lib/core/bit-buffer.js","webpack:///./node_modules/qrcode/lib/core/bit-matrix.js","webpack:///./node_modules/qrcode/lib/core/byte-data.js","webpack:///./node_modules/qrcode/lib/core/error-correction-code.js","webpack:///./node_modules/qrcode/lib/core/error-correction-level.js","webpack:///./node_modules/qrcode/lib/core/finder-pattern.js","webpack:///./node_modules/qrcode/lib/core/format-info.js","webpack:///./node_modules/qrcode/lib/core/galois-field.js","webpack:///./node_modules/qrcode/lib/core/kanji-data.js","webpack:///./node_modules/qrcode/lib/core/mask-pattern.js","webpack:///./node_modules/qrcode/lib/core/mode.js","webpack:///./node_modules/qrcode/lib/core/numeric-data.js","webpack:///./node_modules/qrcode/lib/core/polynomial.js","webpack:///./node_modules/qrcode/lib/core/qrcode.js","webpack:///./node_modules/qrcode/lib/core/reed-solomon-encoder.js","webpack:///./node_modules/qrcode/lib/core/regex.js","webpack:///./node_modules/qrcode/lib/core/segments.js","webpack:///./node_modules/qrcode/lib/core/utils.js","webpack:///./node_modules/qrcode/lib/core/version-check.js","webpack:///./node_modules/qrcode/lib/core/version.js","webpack:///./node_modules/qrcode/lib/renderer/canvas.js","webpack:///./node_modules/qrcode/lib/renderer/svg-tag.js","webpack:///./node_modules/qrcode/lib/renderer/utils.js","webpack:///./node_modules/setimmediate/setImmediate.js","webpack:///./node_modules/timers-browserify/main.js","webpack:///./node_modules/trix/dist/trix.js","webpack:///./node_modules/turbolinks/dist/turbolinks.js","webpack:///(webpack)/buildin/global.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\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};\n\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\"application\": 0\n \t};\n\n\n\n \t// script path function\n \tfunction jsonpScriptSrc(chunkId) {\n \t\treturn __webpack_require__.p + \"js/\" + ({}[chunkId]||chunkId) + \"-\" + {\"0\":\"15243a5371ccb63cfb5c\"}[chunkId] + \".chunk.js\"\n \t}\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 \t// This file contains only the entry chunk.\n \t// The chunk loading function for additional chunks\n \t__webpack_require__.e = function requireEnsure(chunkId) {\n \t\tvar promises = [];\n\n\n \t\t// JSONP chunk loading for javascript\n\n \t\tvar installedChunkData = installedChunks[chunkId];\n \t\tif(installedChunkData !== 0) { // 0 means \"already installed\".\n\n \t\t\t// a Promise means \"currently loading\".\n \t\t\tif(installedChunkData) {\n \t\t\t\tpromises.push(installedChunkData[2]);\n \t\t\t} else {\n \t\t\t\t// setup Promise in chunk cache\n \t\t\t\tvar promise = new Promise(function(resolve, reject) {\n \t\t\t\t\tinstalledChunkData = installedChunks[chunkId] = [resolve, reject];\n \t\t\t\t});\n \t\t\t\tpromises.push(installedChunkData[2] = promise);\n\n \t\t\t\t// start chunk loading\n \t\t\t\tvar script = document.createElement('script');\n \t\t\t\tvar onScriptComplete;\n\n \t\t\t\tscript.charset = 'utf-8';\n \t\t\t\tscript.timeout = 120;\n \t\t\t\tif (__webpack_require__.nc) {\n \t\t\t\t\tscript.setAttribute(\"nonce\", __webpack_require__.nc);\n \t\t\t\t}\n \t\t\t\tscript.src = jsonpScriptSrc(chunkId);\n\n \t\t\t\t// create error before stack unwound to get useful stacktrace later\n \t\t\t\tvar error = new Error();\n \t\t\t\tonScriptComplete = function (event) {\n \t\t\t\t\t// avoid mem leaks in IE.\n \t\t\t\t\tscript.onerror = script.onload = null;\n \t\t\t\t\tclearTimeout(timeout);\n \t\t\t\t\tvar chunk = installedChunks[chunkId];\n \t\t\t\t\tif(chunk !== 0) {\n \t\t\t\t\t\tif(chunk) {\n \t\t\t\t\t\t\tvar errorType = event && (event.type === 'load' ? 'missing' : event.type);\n \t\t\t\t\t\t\tvar realSrc = event && event.target && event.target.src;\n \t\t\t\t\t\t\terror.message = 'Loading chunk ' + chunkId + ' failed.\\n(' + errorType + ': ' + realSrc + ')';\n \t\t\t\t\t\t\terror.name = 'ChunkLoadError';\n \t\t\t\t\t\t\terror.type = errorType;\n \t\t\t\t\t\t\terror.request = realSrc;\n \t\t\t\t\t\t\tchunk[1](error);\n \t\t\t\t\t\t}\n \t\t\t\t\t\tinstalledChunks[chunkId] = undefined;\n \t\t\t\t\t}\n \t\t\t\t};\n \t\t\t\tvar timeout = setTimeout(function(){\n \t\t\t\t\tonScriptComplete({ type: 'timeout', target: script });\n \t\t\t\t}, 120000);\n \t\t\t\tscript.onerror = script.onload = onScriptComplete;\n \t\t\t\tdocument.head.appendChild(script);\n \t\t\t}\n \t\t}\n \t\treturn Promise.all(promises);\n \t};\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 = \"/packs/\";\n\n \t// on error function for async loading\n \t__webpack_require__.oe = function(err) { console.error(err); throw err; };\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// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = \"./app/javascript/packs/application.js\");\n","var map = {\n\t\"./support_channel.js\": \"./app/javascript/channels/support_channel.js\",\n\t\"./typing_channel.js\": \"./app/javascript/channels/typing_channel.js\"\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 = \"./app/javascript/channels sync recursive _channel\\\\.js$\";","// Action Cable provides the framework to deal with WebSockets in Rails.\n// You can generate new channels where WebSocket features live using the `rails generate channel` command.\n\nimport { createConsumer } from \"@rails/actioncable\"\n\nexport default createConsumer()\n","// Load all the channels within this directory and all subdirectories.\n// Channel files must be named *_channel.js.\n\nconst channels = require.context('.', true, /_channel\\.js$/)\nchannels.keys().forEach(channels)\n","import consumer from \"./consumer\"\n\nconsumer.subscriptions.create(\"SupportChannel\", {\n connected() {\n console.log('support är uppkopplad')\n // Called when the subscription is ready for use on the server\n },\n\n disconnected() {\n // Called when the subscription has been terminated by the server\n },\n\n received(data) {\n const writer = document.getElementById('writer');\n if(writer.dataset.agent === \"false\") {\n document.getElementById(data.content.support_id).insertAdjacentHTML(\"afterbegin\", \"
\"); \n } else {\n document.getElementById(data.content.support_id).insertAdjacentHTML(\"afterbegin\", \" \"); \n } \n document.getElementById('chat_message').value = '';\n // Called when there's incoming data on the websocket for this channel\n },\n speak(message) {\n console.log('speaking');\n this.perform('speak', { message: message });\n }\n});\n","import consumer from \"./consumer\"\n\nconsumer.subscriptions.create(\"TypingChannel\", {\n connected() {\n console.log('typing är uppkopplad')\n },\n\n disconnected() {\n // Called when the subscription has been terminated by the server\n },\n\n received(data) {\n const writer = document.getElementById('writer');\n if(writer.dataset.user != data.content.user_id) {\n document.querySelector('.writer_' + data.content.id).style.display = 'block'\n document.getElementById('name').innerHTML = data.content.agent_name\n setTimeout(()=> {\n document.querySelector('.writer_' + data.content.id).style.display = 'none'\n },4000) \n }\n }\n});\n","document.addEventListener(\"turbolinks:load\", function() {\n if (document.querySelector('.admin')) {\n if (document.getElementById('index')) {\n console.log('laddar js för admin -> index');\n }\n }\n});","import QrScanner from 'qr-scanner'; \ndocument.addEventListener(\"turbolinks:load\", function() {\n if(document.querySelector('.app')) {\n if(document.querySelector('#scan_code')) {\n let videoElem = document.getElementById('video');\n console.log('hej' + videoElem);\n //QrScanner.WORKER_PATH = '/qr-scanner-worker.min.js';\n\n const qrScanner = new QrScanner(videoElem, result => window.location.href = result);\n qrScanner.start();\n }\n if(document.querySelector('#in_session')) {\n console.log('hej');\n $('.logbook').click(function() {\n $('#logbook-modal').show();\n });\n $('.close').click(function(){\n $('.modal').hide();\n });\n $('.rescue').click(function() {\n $('#rescue-modal').show();\n });\n\n var countdown = document.getElementById(\"countdown\").dataset.expire\n var js_time = (countdown * 1000)\n var countDownDate = new Date(countdown).getTime();\n // Update the count down every 1 second\n var x = setInterval(function() {\n // Get today's date and time\n var now = new Date().getTime();\n console.log(now);\n console.log(js_time)\n // Find the distance between now and the count down date\n var distance = js_time - now;\n\n // Time calculations for days, hours, minutes and seconds\n var days = Math.floor(distance / (1000 * 60 * 60 * 24));\n var hours = Math.floor((distance % (1000 * 60 * 60 * 24)) / (1000 * 60 * 60));\n var minutes = Math.floor((distance % (1000 * 60 * 60)) / (1000 * 60));\n var seconds = Math.floor((distance % (1000 * 60)) / 1000);\n\n // Display the result in the element with id=\"demo\"\n document.getElementById(\"countdown\").innerHTML = hours.toString() + \"h \"\n + minutes.toString() + \"m \" + seconds.toString() + \"s \";\n\n // If the count down is finished, write some text\n if (distance < 0) {\n clearInterval(x);\n document.getElementById(\"countdown\").innerHTML = \"TIDEN UTGÅTT\";\n }\n if (distance < 20000) {\n $('#end-of-time').show();\n }\n\n }, 1000);\n }\n };\n})\n\n\n\n","document.addEventListener(\"turbolinks:load\", function() {\n if (document.querySelector('.boat_client_test')) {\n if (document.querySelector('#rent')) {\n alert('hej');\n let wind = window;\n console.log(window.location);\n // Create a client instance\n client = new Paho.MQTT.Client(\"driver.cloudmqtt.com\", 38732, \"1\");\n //Example client = new Paho.MQTT.Client(\"m11.cloudmqtt.com\", 32903, \"web_\" + parseInt(Math.random() * 100, 10));\n\n // set callback handlers\n client.onConnectionLost = onConnectionLost;\n client.onMessageArrived = onMessageArrived;\n var options = {\n useSSL: true,\n userName: \"zywlswsi\",\n password: \"UbAqNkCZilpt\",\n onSuccess: onConnect,\n onFailure: doFail\n }\n\n // connect the client\n client.connect(options);\n\n // called when the client connects\n function onConnect() {\n // Once a connection has been made, make a subscription and send a message.\n console.log(\"connected\");\n client.subscribe(\"1\");\n message = new Paho.MQTT.Message(\"Hello CloudMQTT\");\n message.destinationName = \"/cloudmqtt\";\n client.send(message);\n }\n\n function doFail(e) {\n console.log(e);\n }\n\n // called when the client loses its connection\n function onConnectionLost(responseObject) {\n if (responseObject.errorCode !== 0) {\n console.log(\"onConnectionLost:\" + responseObject.errorMessage);\n console.log('re-establishing');\n client.connect(options);\n }\n }\n\n // called when a message arrives\n function onMessageArrived(message) {\n console.log(\"onMessageArrived:\" + message.payloadString);\n console.log(wind);\n if (message.payloadString == 'Started') {\n wind.location = \"/client/1/running\";\n }\n }\n }\n }\n})","import QrScanner from 'qr-scanner'; \n\ndocument.addEventListener(\"turbolinks:load\", function() {\n if(document.querySelector('.boats')) {\n if(document.querySelector('#scan')) {\n let videoElem = document.getElementById('video');\n console.log(videoElem);\n QrScanner.WORKER_PATH = '/qr-scanner-worker.min.js';\n\n const qrScanner = new QrScanner(videoElem, result => window.location.href = result);\n qrScanner.start();\n }\n if(document.querySelector('#in_session')) {\n console.log('hej');\n $('.logbook').click(function() {\n $('#logbook-modal').show();\n });\n $('.close').click(function(){\n $('.modal').hide();\n });\n $('.rescue').click(function() {\n $('#rescue-modal').show();\n });\n\n var countdown = document.getElementById(\"countdown\").dataset.expire\n var js_time = (countdown * 1000)\n var countDownDate = new Date(countdown).getTime();\n // Update the count down every 1 second\n var x = setInterval(function() {\n // Get today's date and time\n var now = new Date().getTime();\n console.log(now);\n console.log(js_time)\n // Find the distance between now and the count down date\n var distance = js_time - now;\n\n // Time calculations for days, hours, minutes and seconds\n var days = Math.floor(distance / (1000 * 60 * 60 * 24));\n var hours = Math.floor((distance % (1000 * 60 * 60 * 24)) / (1000 * 60 * 60));\n var minutes = Math.floor((distance % (1000 * 60 * 60)) / (1000 * 60));\n var seconds = Math.floor((distance % (1000 * 60)) / 1000);\n\n // Display the result in the element with id=\"demo\"\n document.getElementById(\"countdown\").innerHTML = hours.toString() + \"h \"\n + minutes.toString() + \"m \" + seconds.toString() + \"s \";\n\n // If the count down is finished, write some text\n if (distance < 0) {\n clearInterval(x);\n document.getElementById(\"countdown\").innerHTML = \"TIDEN UTGÅTT\";\n }\n if (distance < 20000) {\n $('#end-of-time').show();\n }\n\n }, 1000);\n }\n };\n})\n\n","document.addEventListener(\"turbolinks:load\", function() {\n if (document.querySelector('.bookings')) {\n if (document.getElementById('index')) {\n let caret = document.querySelector('.dropdown');\n let menu = document.querySelector('.menu');\n let dropdownList = document.querySelector('.dropdown-list');\n caret.addEventListener('click', function() {\n toggleMenu(dropdownList);\n });\n\n function toggleMenu(x) {\n if (x.offsetParent === null) {\n x.classList.add(\"show\");\n } else {\n x.classList.remove(\"show\");\n }\n }\n }\n\n if (document.getElementById('flow')) {\n // index.js -> bundle.js\n var QRCode = require('qrcode');\n const elements = document.querySelectorAll('.qr-code');\n console.log(elements);\n for (const element of elements) {\n url = element.dataset.url;\n QRCode.toCanvas(element, url)\n }\n }\n }\n});","// index.js -> bundle.js\nvar QRCode = require('qrcode');\n\ndocument.addEventListener(\"turbolinks:load\", function() {\n if(document.querySelector('.coupons')) {\n const elements = document.querySelectorAll('.qr-code');\n console.log(elements);\n for (const element of elements) {\n url = element.dataset.url;\n QRCode.toCanvas(element, url)\n }\n };\n});","require('./boats-controller');\nrequire('./payments-controller');\nrequire('./layout');\nrequire('./bookings-controller');\nrequire('./coupons-controller');\nrequire('./admin-controller');\nrequire('./companies-controller');\nrequire('./products-controller');\nrequire('./boat-client');\nrequire('./support-controller');\nrequire('./users-controller');\nrequire('./app-controller');\nrequire('./user_widgets-controller');\n\ndocument.addEventListener(\"turbolinks:load\", function() {\n\n //Index action\n if (document.querySelector('.index') && document.querySelector('#index')) {\n \n }\n});","document.addEventListener(\"turbolinks:load\", function() {\n if (document.querySelector('.supports')) {\n if (document.getElementById('show')) {\n console.log('woho');\n }\n if (document.getElementById('chat')) {\n //check if someone is writing\n document.onkeypress = function (e) {\n const writer = document.getElementById('writer');\n const http = new XMLHttpRequest();\n http.open(\"GET\", \"/chats/show-typing?support_id=\" + writer.dataset.supportid + \"&userid=\" + writer.dataset.user);\n http.send();\n };\n\n function postForm() {\n document.forms[0].submit();\n }\n function clearMessage() {\n document.getElementById('chat_message').value = '';\n }\n agentDropdown = document.getElementById('agent');\n agentDropdown.addEventListener('change', updateAgent);\n function updateAgent() {\n const supportId = agentDropdown.dataset.support_id\n const http = new XMLHttpRequest()\n http.open(\"GET\", \"/supports/\" + supportId + \"/set-agent/\" + agentDropdown.value)\n http.send();\n }\n }\n }\n})","import QrScanner from 'qr-scanner'; \ndocument.addEventListener(\"turbolinks:load\", function() {\n if(document.querySelector('.user_widgets')) {\n if(document.querySelector('#add')) {\n let videoElem = document.getElementById('video');\n console.log('hej' + videoElem);\n //QrScanner.WORKER_PATH = '/qr-scanner-worker.min.js';\n\n const qrScanner = new QrScanner(videoElem, result => window.location.href = result);\n qrScanner.start();\n }s \n };\n})","// index.js -> bundle.js\nvar QRCode = require('qrcode');\n\ndocument.addEventListener(\"turbolinks:load\", function() {\n if(document.querySelector('.users')) {\n const elements = document.querySelectorAll('.qr-code');\n console.log(elements);\n for (const element of elements) {\n url = element.dataset.url;\n QRCode.toCanvas(element, url)\n }\n };\n});","require(\"custom/qr-scanner-worker.min.js\");","'use strict';(function(){function T(a,b){let c=[],d=\"\";b=a.readBits([8,16,16][b]);for(let d=0;d`%${(\"0\"+a.toString(16)).substr(-2)}`).join(\"\"))}catch(e){}return{bytes:c,text:d}}function U(a,b){a=new V(a);b=9>=b?0:26>=b?1:2;let c={text:\"\",bytes:[],chunks:[]};for(;4<=a.available();){var d=a.readBits(4);if(d===y.Terminator)return c;if(d===y.ECI)0===a.readBits(1)?c.chunks.push({type:t.ECI,assignmentNumber:a.readBits(7)}):0===a.readBits(1)?\nc.chunks.push({type:t.ECI,assignmentNumber:a.readBits(14)}):0===a.readBits(1)?c.chunks.push({type:t.ECI,assignmentNumber:a.readBits(21)}):c.chunks.push({type:t.ECI,assignmentNumber:-1});else if(d===y.Numeric){var e=a;d=[];for(var f=\"\",g=e.readBits([10,12,14][b]);3<=g;){var h=e.readBits(10);if(1E3<=h)throw Error(\"Invalid numeric value above 999\");var k=Math.floor(h/100),l=Math.floor(h/10)%10;h%=10;d.push(48+k,48+l,48+h);f+=k.toString()+l.toString()+h.toString();g-=3}if(2===g){g=e.readBits(7);if(100<=\ng)throw Error(\"Invalid numeric value above 99\");e=Math.floor(g/10);g%=10;d.push(48+e,48+g);f+=e.toString()+g.toString()}else if(1===g){e=e.readBits(4);if(10<=e)throw Error(\"Invalid numeric value above 9\");d.push(48+e);f+=e.toString()}d={bytes:d,text:f};c.text+=d.text;c.bytes.push(...d.bytes);c.chunks.push({type:t.Numeric,text:d.text})}else if(d===y.Alphanumeric){e=a;d=[];f=\"\";for(g=e.readBits([9,11,13][b]);2<=g;)l=e.readBits(11),k=Math.floor(l/45),l%=45,d.push(B[k].charCodeAt(0),B[l].charCodeAt(0)),\nf+=B[k]+B[l],g-=2;1===g&&(e=e.readBits(6),d.push(B[e].charCodeAt(0)),f+=B[e]);d={bytes:d,text:f};c.text+=d.text;c.bytes.push(...d.bytes);c.chunks.push({type:t.Alphanumeric,text:d.text})}else if(d===y.Byte)d=T(a,b),c.text+=d.text,c.bytes.push(...d.bytes),c.chunks.push({type:t.Byte,bytes:d.bytes,text:d.text});else if(d===y.Kanji){f=a;d=[];e=f.readBits([8,10,12][b]);for(g=0;g