{"version":3,"sources":["webpack:///webpack/bootstrap","webpack:///./node_modules/@babel/runtime/regenerator/index.js","webpack:///./app/javascript/ajax.js","webpack:///./app/javascript/desktop.js","webpack:///./app/javascript/packs/include_desktop.js","webpack:///./node_modules/@rails/ujs/lib/assets/compiled/rails-ujs.js","webpack:///(webpack)/buildin/module.js","webpack:///./node_modules/regenerator-runtime/runtime.js","webpack:///./app/javascript/hit.js"],"names":["installedModules","__webpack_require__","moduleId","exports","module","i","l","modules","call","m","c","d","name","getter","o","Object","defineProperty","enumerable","get","r","Symbol","toStringTag","value","t","mode","__esModule","ns","create","key","bind","n","object","property","prototype","hasOwnProperty","p","s","send","method","path","data","Promise","resolve","reject","request","type","url","console","log","JSON","stringify","success","response","error","Rails","ajax","err","window","clearUser","then","getUser","a","user_email","setUser","encodeURIComponent","location","pathname","includes","document","getElementById","adjust_for_desktop","is_desktop","id","classList","fromDesktop","offsetWidth","innerWidth","addEventListener","_typeof","iterator","obj","constructor","this","linkClickSelector","buttonClickSelector","selector","exclude","inputChangeSelector","formSubmitSelector","formInputClickSelector","formDisableSelector","formEnableSelector","fileInputSelector","linkDisableSelector","buttonDisableSelector","nonce","loadCSPNonce","ref","querySelector","content","cspNonce","Element","matches","matchesSelector","mozMatchesSelector","msMatchesSelector","oMatchesSelector","webkitMatchesSelector","element","getData","setData","$","Array","slice","querySelectorAll","csrfParam","csrfToken","meta","CSRFProtection","xhr","token","setRequestHeader","refreshCSRFTokens","param","forEach","input","CustomEvent","fire","preventDefault","event","params","evt","createEvent","initCustomEvent","bubbles","cancelable","detail","Event","result","defaultPrevented","dispatchEvent","stopEverything","e","target","stopPropagation","stopImmediatePropagation","delegate","eventType","handler","parentNode","AcceptHeaders","createXHR","prepareOptions","processResponse","text","html","xml","json","script","options","responseText","getResponseHeader","Math","floor","status","statusText","complete","beforeSend","readyState","XMLHttpRequest","OPENED","href","toUpperCase","indexOf","dataType","accept","done","open","crossDomain","withCredentials","onreadystatechange","DONE","parser","match","parse","createElement","setAttribute","head","appendChild","removeChild","DOMParser","replace","parseFromString","isCrossDomain","originAnchor","urlAnchor","protocol","host","toArray","serializeElement","additionalParam","inputs","elements","disabled","option","selected","push","checked","map","join","formElements","form","filter","el","allowAction","handleConfirm","confirm","message","answer","callback","getAttribute","disableFormElement","disableFormElements","disableLinkElement","enableFormElement","enableFormElements","enableLinkElement","isXhrRedirect","handleDisabledElement","enableElement","disableElement","replacement","innerHTML","originalText","removeEventListener","handleMethod","formContent","action","style","display","body","click","isRemote","handleRemote","button","enctype","FormData","append","args","arguments","length","formSubmitButtonClick","formNoValidate","preventInsignificantClick","insignificantMetaClick","metaKey","ctrlKey","jQuery","rails","Error","ajaxPrefilter","originalOptions","start","_rails_loaded","setTimeout","webpackPolyfill","deprecate","paths","children","runtime","Op","hasOwn","$Symbol","iteratorSymbol","asyncIteratorSymbol","asyncIterator","toStringTagSymbol","wrap","innerFn","outerFn","self","tryLocsList","protoGenerator","Generator","generator","context","Context","_invoke","state","arg","doneResult","delegateResult","maybeInvokeDelegate","ContinueSentinel","sent","_sent","dispatchException","abrupt","record","tryCatch","makeInvokeMethod","fn","GeneratorFunction","GeneratorFunctionPrototype","IteratorPrototype","getProto","getPrototypeOf","NativeIteratorPrototype","values","Gp","defineIteratorMethods","AsyncIterator","PromiseImpl","previousPromise","callInvokeWithMethodAndArg","invoke","__await","unwrapped","undefined","TypeError","info","resultName","next","nextLoc","pushTryEntry","locs","entry","tryLoc","catchLoc","finallyLoc","afterLoc","tryEntries","resetTryEntry","completion","reset","iterable","iteratorMethod","isNaN","displayName","isGeneratorFunction","genFun","ctor","mark","setPrototypeOf","__proto__","awrap","async","iter","toString","keys","reverse","pop","skipTempReset","prev","charAt","stop","rootRecord","rval","exception","handle","loc","caught","hasCatch","hasFinally","finallyEntry","finish","thrown","delegateYield","regeneratorRuntime","accidentalStrictMode","Function","queryString","search","urlParams","URLSearchParams","detectMob","ab_queryString","ab_urlParams","homeRedirect"],"mappings":"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","file":"js/include_desktop-ae894911ded17309f7a4.js","sourcesContent":[" \t// The module cache\n \tvar installedModules = {};\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 = \"/packs/\";\n\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 35);\n","module.exports = require(\"regenerator-runtime\");\n","import Rails from '@rails/ujs';\n\nexport function send(method, path, data = null) {\n return new Promise((resolve, reject) => {\n try {\n const request = {\n type: method,\n url: path,\n data: data\n };\n console.log(`sending request: ${JSON.stringify(request)}`);\n request.success = (response) => {\n console.log(`received response to ${method} ${path}: ${JSON.stringify(response)}`);\n resolve(response);\n };\n request.error = (response) => {\n console.log(`received error response to ${method} ${path}: ${JSON.stringify(response)}`);\n reject(response);\n };\n Rails.ajax(request);\n }\n catch (err) {\n console.log(`client-side error for ${method} ${path}: ${err}`);\n reject(err);\n }\n });\n}\n\n// For test/debug:\nwindow.clearUser = () => send(\"POST\", \"/santa/clear_user\").then(() => { console.log('OK'); }).catch(err => { console.log(err); });\nwindow.getUser = async () => { try { const {user_email} = await send(\"GET\", \"/santa/get_user\"); console.log(`logged in: ${user_email}`); } catch(err) {console.log(err); } };\nwindow.setUser = (user_email) => send(\"POST\", \"/santa/set_user\", `user_email=${encodeURIComponent(user_email)}`).then(() => { console.log('OK'); }).catch(err => { console.log(err); });\n","var is_signup = window.location.pathname.includes('signup') || document.getElementById('homepage');\n\nimport {fromDesktop} from \"hit\";\n\n adjust_for_desktop();\n\nif (!detectMob()) {\n window.addEventListener('resize', adjust_for_desktop, true);\n}\n\nfunction adjust_for_desktop() {\n\n\n // ORDER PAGE \n if (document.getElementById('elf_version_1')) {\n if (is_desktop()) {\n if(document.getElementById('mobile')) {\n document.getElementById('mobile').id = 'desktop';\n }\n }\n else {\n if(document.getElementById('desktop')) {\n document.getElementById('desktop').id = 'mobile';\n }\n }\n }\n // END ORDER PAGE \n\n // HOMEPAGE\n if (document.getElementById('homepage')) {\n if (is_desktop()) {\n document.getElementById('static_sign_up_div').classList = 'static_sign_up_div hidden';\n document.getElementById('desktop').classList = '';\n document.getElementById('mobile').classList = 'hidden';\n }\n else {\n if (document.getElementById('static_sign_up_div') && document.getElementById('desktop') && document.getElementById('mobile')) {\n document.getElementById('static_sign_up_div').classList = 'static_sign_up_div';\n document.getElementById('desktop').classList = 'hidden';\n document.getElementById('mobile').classList = '';\n }\n }\n }\n\n // END OF HOMEPAGE\n\n // FEATURES PAGE\n if (document.getElementById('features_page')) {\n if (is_desktop()) {\n document.getElementById('desktop_features').classList = '';\n document.getElementById('mobile_features').classList = 'hidden';\n }\n else {\n document.getElementById('desktop_features').classList = 'hidden';\n document.getElementById('mobile_features').classList = '';\n }\n }\n // END OF FEATURES PAGE\n\n // ABOUT PAGE\n if (document.getElementById('notes_page')) {\n if (is_desktop()) {\n document.getElementById('desktop_notes').classList = '';\n document.getElementById('mobile_notes').classList = 'hidden';\n }\n else {\n document.getElementById('desktop_notes').classList = 'hidden';\n document.getElementById('mobile_notes').classList = '';\n }\n }\n // END OF ABOUT PAGE\n\n // FAQS PAGE\n if (document.getElementById('desktop_faqs')) {\n if (is_desktop()) {\n document.getElementById('desktop_faqs').classList = '';\n document.getElementById('mobile_faqs').classList = 'hidden';\n }\n else {\n document.getElementById('desktop_faqs').classList = 'hidden';\n document.getElementById('mobile_faqs').classList = '';\n }\n }\n // END OF FAQS PAGE\n\n // VIDEO PAGE\n if (document.getElementById('video_page')) {\n if (is_desktop()) {\n document.getElementById('desktop_video').classList = '';\n document.getElementById('mobile_video').classList = 'hidden';\n }\n else {\n document.getElementById('desktop_video').classList = 'hidden';\n document.getElementById('mobile_video').classList = '';\n }\n }\n // END OF VIDEO PAGE\n\n // Footer \n if (is_desktop()) {\n if(document.getElementById('desktop_footer')) {\n document.getElementById('desktop_footer').classList = '';\n }\n if(document.getElementById('mobile_footer')) {\n document.getElementById('mobile_footer').classList = 'hidden';\n }\n }\n else {\n if(document.getElementById('desktop_footer')) {\n document.getElementById('desktop_footer').classList = 'hidden';\n }\n if(document.getElementById('mobile_footer')) {\n document.getElementById('mobile_footer').classList = '';\n }\n }\n // END Footer\n}\n\nexport function is_desktop() {\n if (document.getElementById('whole_page') && !fromDesktop) {\n let body_size = document.getElementById('whole_page').offsetWidth;\n if (body_size > 1080) {\n return true;\n }\n else {\n return false;\n }\n }\n else {\n return false;\n }\n}\n\nfunction detectMob() {\n //console.log('returning detectMob:', window.innerWidth <= 900, window.innerWidth);\n return ( window.innerWidth <= 900 ) ;\n}\n","import '../desktop'\n","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\n/*\nUnobtrusive JavaScript\nhttps://github.com/rails/rails/blob/master/actionview/app/assets/javascripts\nReleased under the MIT license\n */\n;\n(function () {\n var context = this;\n (function () {\n (function () {\n this.Rails = {\n linkClickSelector: 'a[data-confirm], a[data-method], a[data-remote]:not([disabled]), a[data-disable-with], a[data-disable]',\n buttonClickSelector: {\n selector: 'button[data-remote]:not([form]), button[data-confirm]:not([form])',\n exclude: 'form button'\n },\n inputChangeSelector: 'select[data-remote], input[data-remote], textarea[data-remote]',\n formSubmitSelector: 'form',\n formInputClickSelector: 'form input[type=submit], form input[type=image], form button[type=submit], form button:not([type]), input[type=submit][form], input[type=image][form], button[type=submit][form], button[form]:not([type])',\n formDisableSelector: 'input[data-disable-with]:enabled, button[data-disable-with]:enabled, textarea[data-disable-with]:enabled, input[data-disable]:enabled, button[data-disable]:enabled, textarea[data-disable]:enabled',\n formEnableSelector: 'input[data-disable-with]:disabled, button[data-disable-with]:disabled, textarea[data-disable-with]:disabled, input[data-disable]:disabled, button[data-disable]:disabled, textarea[data-disable]:disabled',\n fileInputSelector: 'input[name][type=file]:not([disabled])',\n linkDisableSelector: 'a[data-disable-with], a[data-disable]',\n buttonDisableSelector: 'button[data-remote][data-disable-with], button[data-remote][data-disable]'\n };\n }).call(this);\n }).call(context);\n var Rails = context.Rails;\n (function () {\n (function () {\n var nonce;\n nonce = null;\n\n Rails.loadCSPNonce = function () {\n var ref;\n return nonce = (ref = document.querySelector(\"meta[name=csp-nonce]\")) != null ? ref.content : void 0;\n };\n\n Rails.cspNonce = function () {\n return nonce != null ? nonce : Rails.loadCSPNonce();\n };\n }).call(this);\n (function () {\n var expando, m;\n m = Element.prototype.matches || Element.prototype.matchesSelector || Element.prototype.mozMatchesSelector || Element.prototype.msMatchesSelector || Element.prototype.oMatchesSelector || Element.prototype.webkitMatchesSelector;\n\n Rails.matches = function (element, selector) {\n if (selector.exclude != null) {\n return m.call(element, selector.selector) && !m.call(element, selector.exclude);\n } else {\n return m.call(element, selector);\n }\n };\n\n expando = '_ujsData';\n\n Rails.getData = function (element, key) {\n var ref;\n return (ref = element[expando]) != null ? ref[key] : void 0;\n };\n\n Rails.setData = function (element, key, value) {\n if (element[expando] == null) {\n element[expando] = {};\n }\n\n return element[expando][key] = value;\n };\n\n Rails.$ = function (selector) {\n return Array.prototype.slice.call(document.querySelectorAll(selector));\n };\n }).call(this);\n (function () {\n var $, csrfParam, csrfToken;\n $ = Rails.$;\n\n csrfToken = Rails.csrfToken = function () {\n var meta;\n meta = document.querySelector('meta[name=csrf-token]');\n return meta && meta.content;\n };\n\n csrfParam = Rails.csrfParam = function () {\n var meta;\n meta = document.querySelector('meta[name=csrf-param]');\n return meta && meta.content;\n };\n\n Rails.CSRFProtection = function (xhr) {\n var token;\n token = csrfToken();\n\n if (token != null) {\n return xhr.setRequestHeader('X-CSRF-Token', token);\n }\n };\n\n Rails.refreshCSRFTokens = function () {\n var param, token;\n token = csrfToken();\n param = csrfParam();\n\n if (token != null && param != null) {\n return $('form input[name=\"' + param + '\"]').forEach(function (input) {\n return input.value = token;\n });\n }\n };\n }).call(this);\n (function () {\n var CustomEvent, fire, matches, preventDefault;\n matches = Rails.matches;\n CustomEvent = window.CustomEvent;\n\n if (typeof CustomEvent !== 'function') {\n CustomEvent = function CustomEvent(event, params) {\n var evt;\n evt = document.createEvent('CustomEvent');\n evt.initCustomEvent(event, params.bubbles, params.cancelable, params.detail);\n return evt;\n };\n\n CustomEvent.prototype = window.Event.prototype;\n preventDefault = CustomEvent.prototype.preventDefault;\n\n CustomEvent.prototype.preventDefault = function () {\n var result;\n result = preventDefault.call(this);\n\n if (this.cancelable && !this.defaultPrevented) {\n Object.defineProperty(this, 'defaultPrevented', {\n get: function get() {\n return true;\n }\n });\n }\n\n return result;\n };\n }\n\n fire = Rails.fire = function (obj, name, data) {\n var event;\n event = new CustomEvent(name, {\n bubbles: true,\n cancelable: true,\n detail: data\n });\n obj.dispatchEvent(event);\n return !event.defaultPrevented;\n };\n\n Rails.stopEverything = function (e) {\n fire(e.target, 'ujs:everythingStopped');\n e.preventDefault();\n e.stopPropagation();\n return e.stopImmediatePropagation();\n };\n\n Rails.delegate = function (element, selector, eventType, handler) {\n return element.addEventListener(eventType, function (e) {\n var target;\n target = e.target;\n\n while (!(!(target instanceof Element) || matches(target, selector))) {\n target = target.parentNode;\n }\n\n if (target instanceof Element && handler.call(target, e) === false) {\n e.preventDefault();\n return e.stopPropagation();\n }\n });\n };\n }).call(this);\n (function () {\n var AcceptHeaders, CSRFProtection, createXHR, cspNonce, fire, prepareOptions, processResponse;\n cspNonce = Rails.cspNonce, CSRFProtection = Rails.CSRFProtection, fire = Rails.fire;\n AcceptHeaders = {\n '*': '*/*',\n text: 'text/plain',\n html: 'text/html',\n xml: 'application/xml, text/xml',\n json: 'application/json, text/javascript',\n script: 'text/javascript, application/javascript, application/ecmascript, application/x-ecmascript'\n };\n\n Rails.ajax = function (options) {\n var xhr;\n options = prepareOptions(options);\n xhr = createXHR(options, function () {\n var ref, response;\n response = processResponse((ref = xhr.response) != null ? ref : xhr.responseText, xhr.getResponseHeader('Content-Type'));\n\n if (Math.floor(xhr.status / 100) === 2) {\n if (typeof options.success === \"function\") {\n options.success(response, xhr.statusText, xhr);\n }\n } else {\n if (typeof options.error === \"function\") {\n options.error(response, xhr.statusText, xhr);\n }\n }\n\n return typeof options.complete === \"function\" ? options.complete(xhr, xhr.statusText) : void 0;\n });\n\n if (options.beforeSend != null && !options.beforeSend(xhr, options)) {\n return false;\n }\n\n if (xhr.readyState === XMLHttpRequest.OPENED) {\n return xhr.send(options.data);\n }\n };\n\n prepareOptions = function prepareOptions(options) {\n options.url = options.url || location.href;\n options.type = options.type.toUpperCase();\n\n if (options.type === 'GET' && options.data) {\n if (options.url.indexOf('?') < 0) {\n options.url += '?' + options.data;\n } else {\n options.url += '&' + options.data;\n }\n }\n\n if (AcceptHeaders[options.dataType] == null) {\n options.dataType = '*';\n }\n\n options.accept = AcceptHeaders[options.dataType];\n\n if (options.dataType !== '*') {\n options.accept += ', */*; q=0.01';\n }\n\n return options;\n };\n\n createXHR = function createXHR(options, done) {\n var xhr;\n xhr = new XMLHttpRequest();\n xhr.open(options.type, options.url, true);\n xhr.setRequestHeader('Accept', options.accept);\n\n if (typeof options.data === 'string') {\n xhr.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded; charset=UTF-8');\n }\n\n if (!options.crossDomain) {\n xhr.setRequestHeader('X-Requested-With', 'XMLHttpRequest');\n }\n\n CSRFProtection(xhr);\n xhr.withCredentials = !!options.withCredentials;\n\n xhr.onreadystatechange = function () {\n if (xhr.readyState === XMLHttpRequest.DONE) {\n return done(xhr);\n }\n };\n\n return xhr;\n };\n\n processResponse = function processResponse(response, type) {\n var parser, script;\n\n if (typeof response === 'string' && typeof type === 'string') {\n if (type.match(/\\bjson\\b/)) {\n try {\n response = JSON.parse(response);\n } catch (error) {}\n } else if (type.match(/\\b(?:java|ecma)script\\b/)) {\n script = document.createElement('script');\n script.setAttribute('nonce', cspNonce());\n script.text = response;\n document.head.appendChild(script).parentNode.removeChild(script);\n } else if (type.match(/\\b(xml|html|svg)\\b/)) {\n parser = new DOMParser();\n type = type.replace(/;.+/, '');\n\n try {\n response = parser.parseFromString(response, type);\n } catch (error) {}\n }\n }\n\n return response;\n };\n\n Rails.href = function (element) {\n return element.href;\n };\n\n Rails.isCrossDomain = function (url) {\n var e, originAnchor, urlAnchor;\n originAnchor = document.createElement('a');\n originAnchor.href = location.href;\n urlAnchor = document.createElement('a');\n\n try {\n urlAnchor.href = url;\n return !((!urlAnchor.protocol || urlAnchor.protocol === ':') && !urlAnchor.host || originAnchor.protocol + '//' + originAnchor.host === urlAnchor.protocol + '//' + urlAnchor.host);\n } catch (error) {\n e = error;\n return true;\n }\n };\n }).call(this);\n (function () {\n var matches, toArray;\n matches = Rails.matches;\n\n toArray = function toArray(e) {\n return Array.prototype.slice.call(e);\n };\n\n Rails.serializeElement = function (element, additionalParam) {\n var inputs, params;\n inputs = [element];\n\n if (matches(element, 'form')) {\n inputs = toArray(element.elements);\n }\n\n params = [];\n inputs.forEach(function (input) {\n if (!input.name || input.disabled) {\n return;\n }\n\n if (matches(input, 'fieldset[disabled] *')) {\n return;\n }\n\n if (matches(input, 'select')) {\n return toArray(input.options).forEach(function (option) {\n if (option.selected) {\n return params.push({\n name: input.name,\n value: option.value\n });\n }\n });\n } else if (input.checked || ['radio', 'checkbox', 'submit'].indexOf(input.type) === -1) {\n return params.push({\n name: input.name,\n value: input.value\n });\n }\n });\n\n if (additionalParam) {\n params.push(additionalParam);\n }\n\n return params.map(function (param) {\n if (param.name != null) {\n return encodeURIComponent(param.name) + \"=\" + encodeURIComponent(param.value);\n } else {\n return param;\n }\n }).join('&');\n };\n\n Rails.formElements = function (form, selector) {\n if (matches(form, 'form')) {\n return toArray(form.elements).filter(function (el) {\n return matches(el, selector);\n });\n } else {\n return toArray(form.querySelectorAll(selector));\n }\n };\n }).call(this);\n (function () {\n var allowAction, fire, stopEverything;\n fire = Rails.fire, stopEverything = Rails.stopEverything;\n\n Rails.handleConfirm = function (e) {\n if (!allowAction(this)) {\n return stopEverything(e);\n }\n };\n\n Rails.confirm = function (message, element) {\n return confirm(message);\n };\n\n allowAction = function allowAction(element) {\n var answer, callback, message;\n message = element.getAttribute('data-confirm');\n\n if (!message) {\n return true;\n }\n\n answer = false;\n\n if (fire(element, 'confirm')) {\n try {\n answer = Rails.confirm(message, element);\n } catch (error) {}\n\n callback = fire(element, 'confirm:complete', [answer]);\n }\n\n return answer && callback;\n };\n }).call(this);\n (function () {\n var disableFormElement, disableFormElements, disableLinkElement, enableFormElement, enableFormElements, enableLinkElement, formElements, getData, isXhrRedirect, matches, setData, stopEverything;\n matches = Rails.matches, getData = Rails.getData, setData = Rails.setData, stopEverything = Rails.stopEverything, formElements = Rails.formElements;\n\n Rails.handleDisabledElement = function (e) {\n var element;\n element = this;\n\n if (element.disabled) {\n return stopEverything(e);\n }\n };\n\n Rails.enableElement = function (e) {\n var element;\n\n if (e instanceof Event) {\n if (isXhrRedirect(e)) {\n return;\n }\n\n element = e.target;\n } else {\n element = e;\n }\n\n if (matches(element, Rails.linkDisableSelector)) {\n return enableLinkElement(element);\n } else if (matches(element, Rails.buttonDisableSelector) || matches(element, Rails.formEnableSelector)) {\n return enableFormElement(element);\n } else if (matches(element, Rails.formSubmitSelector)) {\n return enableFormElements(element);\n }\n };\n\n Rails.disableElement = function (e) {\n var element;\n element = e instanceof Event ? e.target : e;\n\n if (matches(element, Rails.linkDisableSelector)) {\n return disableLinkElement(element);\n } else if (matches(element, Rails.buttonDisableSelector) || matches(element, Rails.formDisableSelector)) {\n return disableFormElement(element);\n } else if (matches(element, Rails.formSubmitSelector)) {\n return disableFormElements(element);\n }\n };\n\n disableLinkElement = function disableLinkElement(element) {\n var replacement;\n\n if (getData(element, 'ujs:disabled')) {\n return;\n }\n\n replacement = element.getAttribute('data-disable-with');\n\n if (replacement != null) {\n setData(element, 'ujs:enable-with', element.innerHTML);\n element.innerHTML = replacement;\n }\n\n element.addEventListener('click', stopEverything);\n return setData(element, 'ujs:disabled', true);\n };\n\n enableLinkElement = function enableLinkElement(element) {\n var originalText;\n originalText = getData(element, 'ujs:enable-with');\n\n if (originalText != null) {\n element.innerHTML = originalText;\n setData(element, 'ujs:enable-with', null);\n }\n\n element.removeEventListener('click', stopEverything);\n return setData(element, 'ujs:disabled', null);\n };\n\n disableFormElements = function disableFormElements(form) {\n return formElements(form, Rails.formDisableSelector).forEach(disableFormElement);\n };\n\n disableFormElement = function disableFormElement(element) {\n var replacement;\n\n if (getData(element, 'ujs:disabled')) {\n return;\n }\n\n replacement = element.getAttribute('data-disable-with');\n\n if (replacement != null) {\n if (matches(element, 'button')) {\n setData(element, 'ujs:enable-with', element.innerHTML);\n element.innerHTML = replacement;\n } else {\n setData(element, 'ujs:enable-with', element.value);\n element.value = replacement;\n }\n }\n\n element.disabled = true;\n return setData(element, 'ujs:disabled', true);\n };\n\n enableFormElements = function enableFormElements(form) {\n return formElements(form, Rails.formEnableSelector).forEach(enableFormElement);\n };\n\n enableFormElement = function enableFormElement(element) {\n var originalText;\n originalText = getData(element, 'ujs:enable-with');\n\n if (originalText != null) {\n if (matches(element, 'button')) {\n element.innerHTML = originalText;\n } else {\n element.value = originalText;\n }\n\n setData(element, 'ujs:enable-with', null);\n }\n\n element.disabled = false;\n return setData(element, 'ujs:disabled', null);\n };\n\n isXhrRedirect = function isXhrRedirect(event) {\n var ref, xhr;\n xhr = (ref = event.detail) != null ? ref[0] : void 0;\n return (xhr != null ? xhr.getResponseHeader(\"X-Xhr-Redirect\") : void 0) != null;\n };\n }).call(this);\n (function () {\n var stopEverything;\n stopEverything = Rails.stopEverything;\n\n Rails.handleMethod = function (e) {\n var csrfParam, csrfToken, form, formContent, href, link, method;\n link = this;\n method = link.getAttribute('data-method');\n\n if (!method) {\n return;\n }\n\n href = Rails.href(link);\n csrfToken = Rails.csrfToken();\n csrfParam = Rails.csrfParam();\n form = document.createElement('form');\n formContent = \"\";\n\n if (csrfParam != null && csrfToken != null && !Rails.isCrossDomain(href)) {\n formContent += \"\";\n }\n\n formContent += '';\n form.method = 'post';\n form.action = href;\n form.target = link.target;\n form.innerHTML = formContent;\n form.style.display = 'none';\n document.body.appendChild(form);\n form.querySelector('[type=\"submit\"]').click();\n return stopEverything(e);\n };\n }).call(this);\n (function () {\n var ajax,\n fire,\n getData,\n isCrossDomain,\n isRemote,\n matches,\n serializeElement,\n setData,\n stopEverything,\n slice = [].slice;\n matches = Rails.matches, getData = Rails.getData, setData = Rails.setData, fire = Rails.fire, stopEverything = Rails.stopEverything, ajax = Rails.ajax, isCrossDomain = Rails.isCrossDomain, serializeElement = Rails.serializeElement;\n\n isRemote = function isRemote(element) {\n var value;\n value = element.getAttribute('data-remote');\n return value != null && value !== 'false';\n };\n\n Rails.handleRemote = function (e) {\n var button, data, dataType, element, method, url, withCredentials;\n element = this;\n\n if (!isRemote(element)) {\n return true;\n }\n\n if (!fire(element, 'ajax:before')) {\n fire(element, 'ajax:stopped');\n return false;\n }\n\n withCredentials = element.getAttribute('data-with-credentials');\n dataType = element.getAttribute('data-type') || 'script';\n\n if (matches(element, Rails.formSubmitSelector)) {\n button = getData(element, 'ujs:submit-button');\n method = getData(element, 'ujs:submit-button-formmethod') || element.method;\n url = getData(element, 'ujs:submit-button-formaction') || element.getAttribute('action') || location.href;\n\n if (method.toUpperCase() === 'GET') {\n url = url.replace(/\\?.*$/, '');\n }\n\n if (element.enctype === 'multipart/form-data') {\n data = new FormData(element);\n\n if (button != null) {\n data.append(button.name, button.value);\n }\n } else {\n data = serializeElement(element, button);\n }\n\n setData(element, 'ujs:submit-button', null);\n setData(element, 'ujs:submit-button-formmethod', null);\n setData(element, 'ujs:submit-button-formaction', null);\n } else if (matches(element, Rails.buttonClickSelector) || matches(element, Rails.inputChangeSelector)) {\n method = element.getAttribute('data-method');\n url = element.getAttribute('data-url');\n data = serializeElement(element, element.getAttribute('data-params'));\n } else {\n method = element.getAttribute('data-method');\n url = Rails.href(element);\n data = element.getAttribute('data-params');\n }\n\n ajax({\n type: method || 'GET',\n url: url,\n data: data,\n dataType: dataType,\n beforeSend: function beforeSend(xhr, options) {\n if (fire(element, 'ajax:beforeSend', [xhr, options])) {\n return fire(element, 'ajax:send', [xhr]);\n } else {\n fire(element, 'ajax:stopped');\n return false;\n }\n },\n success: function success() {\n var args;\n args = 1 <= arguments.length ? slice.call(arguments, 0) : [];\n return fire(element, 'ajax:success', args);\n },\n error: function error() {\n var args;\n args = 1 <= arguments.length ? slice.call(arguments, 0) : [];\n return fire(element, 'ajax:error', args);\n },\n complete: function complete() {\n var args;\n args = 1 <= arguments.length ? slice.call(arguments, 0) : [];\n return fire(element, 'ajax:complete', args);\n },\n crossDomain: isCrossDomain(url),\n withCredentials: withCredentials != null && withCredentials !== 'false'\n });\n return stopEverything(e);\n };\n\n Rails.formSubmitButtonClick = function (e) {\n var button, form;\n button = this;\n form = button.form;\n\n if (!form) {\n return;\n }\n\n if (button.name) {\n setData(form, 'ujs:submit-button', {\n name: button.name,\n value: button.value\n });\n }\n\n setData(form, 'ujs:formnovalidate-button', button.formNoValidate);\n setData(form, 'ujs:submit-button-formaction', button.getAttribute('formaction'));\n return setData(form, 'ujs:submit-button-formmethod', button.getAttribute('formmethod'));\n };\n\n Rails.preventInsignificantClick = function (e) {\n var data, insignificantMetaClick, link, metaClick, method, nonPrimaryMouseClick;\n link = this;\n method = (link.getAttribute('data-method') || 'GET').toUpperCase();\n data = link.getAttribute('data-params');\n metaClick = e.metaKey || e.ctrlKey;\n insignificantMetaClick = metaClick && method === 'GET' && !data;\n nonPrimaryMouseClick = e.button != null && e.button !== 0;\n\n if (nonPrimaryMouseClick || insignificantMetaClick) {\n return e.stopImmediatePropagation();\n }\n };\n }).call(this);\n (function () {\n var $, CSRFProtection, delegate, disableElement, enableElement, fire, formSubmitButtonClick, getData, handleConfirm, handleDisabledElement, handleMethod, handleRemote, loadCSPNonce, preventInsignificantClick, refreshCSRFTokens;\n fire = Rails.fire, delegate = Rails.delegate, getData = Rails.getData, $ = Rails.$, refreshCSRFTokens = Rails.refreshCSRFTokens, CSRFProtection = Rails.CSRFProtection, loadCSPNonce = Rails.loadCSPNonce, enableElement = Rails.enableElement, disableElement = Rails.disableElement, handleDisabledElement = Rails.handleDisabledElement, handleConfirm = Rails.handleConfirm, preventInsignificantClick = Rails.preventInsignificantClick, handleRemote = Rails.handleRemote, formSubmitButtonClick = Rails.formSubmitButtonClick, handleMethod = Rails.handleMethod;\n\n if (typeof jQuery !== \"undefined\" && jQuery !== null && jQuery.ajax != null) {\n if (jQuery.rails) {\n throw new Error('If you load both jquery_ujs and rails-ujs, use rails-ujs only.');\n }\n\n jQuery.rails = Rails;\n jQuery.ajaxPrefilter(function (options, originalOptions, xhr) {\n if (!options.crossDomain) {\n return CSRFProtection(xhr);\n }\n });\n }\n\n Rails.start = function () {\n if (window._rails_loaded) {\n throw new Error('rails-ujs has already been loaded!');\n }\n\n window.addEventListener('pageshow', function () {\n $(Rails.formEnableSelector).forEach(function (el) {\n if (getData(el, 'ujs:disabled')) {\n return enableElement(el);\n }\n });\n return $(Rails.linkDisableSelector).forEach(function (el) {\n if (getData(el, 'ujs:disabled')) {\n return enableElement(el);\n }\n });\n });\n delegate(document, Rails.linkDisableSelector, 'ajax:complete', enableElement);\n delegate(document, Rails.linkDisableSelector, 'ajax:stopped', enableElement);\n delegate(document, Rails.buttonDisableSelector, 'ajax:complete', enableElement);\n delegate(document, Rails.buttonDisableSelector, 'ajax:stopped', enableElement);\n delegate(document, Rails.linkClickSelector, 'click', preventInsignificantClick);\n delegate(document, Rails.linkClickSelector, 'click', handleDisabledElement);\n delegate(document, Rails.linkClickSelector, 'click', handleConfirm);\n delegate(document, Rails.linkClickSelector, 'click', disableElement);\n delegate(document, Rails.linkClickSelector, 'click', handleRemote);\n delegate(document, Rails.linkClickSelector, 'click', handleMethod);\n delegate(document, Rails.buttonClickSelector, 'click', preventInsignificantClick);\n delegate(document, Rails.buttonClickSelector, 'click', handleDisabledElement);\n delegate(document, Rails.buttonClickSelector, 'click', handleConfirm);\n delegate(document, Rails.buttonClickSelector, 'click', disableElement);\n delegate(document, Rails.buttonClickSelector, 'click', handleRemote);\n delegate(document, Rails.inputChangeSelector, 'change', handleDisabledElement);\n delegate(document, Rails.inputChangeSelector, 'change', handleConfirm);\n delegate(document, Rails.inputChangeSelector, 'change', handleRemote);\n delegate(document, Rails.formSubmitSelector, 'submit', handleDisabledElement);\n delegate(document, Rails.formSubmitSelector, 'submit', handleConfirm);\n delegate(document, Rails.formSubmitSelector, 'submit', handleRemote);\n delegate(document, Rails.formSubmitSelector, 'submit', function (e) {\n return setTimeout(function () {\n return disableElement(e);\n }, 13);\n });\n delegate(document, Rails.formSubmitSelector, 'ajax:send', disableElement);\n delegate(document, Rails.formSubmitSelector, 'ajax:complete', enableElement);\n delegate(document, Rails.formInputClickSelector, 'click', preventInsignificantClick);\n delegate(document, Rails.formInputClickSelector, 'click', handleDisabledElement);\n delegate(document, Rails.formInputClickSelector, 'click', handleConfirm);\n delegate(document, Rails.formInputClickSelector, 'click', formSubmitButtonClick);\n document.addEventListener('DOMContentLoaded', refreshCSRFTokens);\n document.addEventListener('DOMContentLoaded', loadCSPNonce);\n return window._rails_loaded = true;\n };\n\n if (window.Rails === Rails && fire(document, 'rails:attachBindings')) {\n Rails.start();\n }\n }).call(this);\n }).call(this);\n\n if ((typeof module === \"undefined\" ? \"undefined\" : _typeof(module)) === \"object\" && module.exports) {\n module.exports = Rails;\n } else if (typeof define === \"function\" && define.amd) {\n define(Rails);\n }\n}).call(this);","module.exports = function (module) {\n if (!module.webpackPolyfill) {\n module.deprecate = function () {};\n\n module.paths = []; // module.parent = undefined by default\n\n if (!module.children) module.children = [];\n Object.defineProperty(module, \"loaded\", {\n enumerable: true,\n get: function get() {\n return module.l;\n }\n });\n Object.defineProperty(module, \"id\", {\n enumerable: true,\n get: function get() {\n return module.i;\n }\n });\n module.webpackPolyfill = 1;\n }\n\n return module;\n};","/**\n * Copyright (c) 2014-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nvar runtime = (function (exports) {\n \"use strict\";\n\n var Op = Object.prototype;\n var hasOwn = Op.hasOwnProperty;\n var undefined; // More compressible than void 0.\n var $Symbol = typeof Symbol === \"function\" ? Symbol : {};\n var iteratorSymbol = $Symbol.iterator || \"@@iterator\";\n var asyncIteratorSymbol = $Symbol.asyncIterator || \"@@asyncIterator\";\n var toStringTagSymbol = $Symbol.toStringTag || \"@@toStringTag\";\n\n function wrap(innerFn, outerFn, self, tryLocsList) {\n // If outerFn provided and outerFn.prototype is a Generator, then outerFn.prototype instanceof Generator.\n var protoGenerator = outerFn && outerFn.prototype instanceof Generator ? outerFn : Generator;\n var generator = Object.create(protoGenerator.prototype);\n var context = new Context(tryLocsList || []);\n\n // The ._invoke method unifies the implementations of the .next,\n // .throw, and .return methods.\n generator._invoke = makeInvokeMethod(innerFn, self, context);\n\n return generator;\n }\n exports.wrap = wrap;\n\n // Try/catch helper to minimize deoptimizations. Returns a completion\n // record like context.tryEntries[i].completion. This interface could\n // have been (and was previously) designed to take a closure to be\n // invoked without arguments, but in all the cases we care about we\n // already have an existing method we want to call, so there's no need\n // to create a new function object. We can even get away with assuming\n // the method takes exactly one argument, since that happens to be true\n // in every case, so we don't have to touch the arguments object. The\n // only additional allocation required is the completion record, which\n // has a stable shape and so hopefully should be cheap to allocate.\n function tryCatch(fn, obj, arg) {\n try {\n return { type: \"normal\", arg: fn.call(obj, arg) };\n } catch (err) {\n return { type: \"throw\", arg: err };\n }\n }\n\n var GenStateSuspendedStart = \"suspendedStart\";\n var GenStateSuspendedYield = \"suspendedYield\";\n var GenStateExecuting = \"executing\";\n var GenStateCompleted = \"completed\";\n\n // Returning this object from the innerFn has the same effect as\n // breaking out of the dispatch switch statement.\n var ContinueSentinel = {};\n\n // Dummy constructor functions that we use as the .constructor and\n // .constructor.prototype properties for functions that return Generator\n // objects. For full spec compliance, you may wish to configure your\n // minifier not to mangle the names of these two functions.\n function Generator() {}\n function GeneratorFunction() {}\n function GeneratorFunctionPrototype() {}\n\n // This is a polyfill for %IteratorPrototype% for environments that\n // don't natively support it.\n var IteratorPrototype = {};\n IteratorPrototype[iteratorSymbol] = function () {\n return this;\n };\n\n var getProto = Object.getPrototypeOf;\n var NativeIteratorPrototype = getProto && getProto(getProto(values([])));\n if (NativeIteratorPrototype &&\n NativeIteratorPrototype !== Op &&\n hasOwn.call(NativeIteratorPrototype, iteratorSymbol)) {\n // This environment has a native %IteratorPrototype%; use it instead\n // of the polyfill.\n IteratorPrototype = NativeIteratorPrototype;\n }\n\n var Gp = GeneratorFunctionPrototype.prototype =\n Generator.prototype = Object.create(IteratorPrototype);\n GeneratorFunction.prototype = Gp.constructor = GeneratorFunctionPrototype;\n GeneratorFunctionPrototype.constructor = GeneratorFunction;\n GeneratorFunctionPrototype[toStringTagSymbol] =\n GeneratorFunction.displayName = \"GeneratorFunction\";\n\n // Helper for defining the .next, .throw, and .return methods of the\n // Iterator interface in terms of a single ._invoke method.\n function defineIteratorMethods(prototype) {\n [\"next\", \"throw\", \"return\"].forEach(function(method) {\n prototype[method] = function(arg) {\n return this._invoke(method, arg);\n };\n });\n }\n\n exports.isGeneratorFunction = function(genFun) {\n var ctor = typeof genFun === \"function\" && genFun.constructor;\n return ctor\n ? ctor === GeneratorFunction ||\n // For the native GeneratorFunction constructor, the best we can\n // do is to check its .name property.\n (ctor.displayName || ctor.name) === \"GeneratorFunction\"\n : false;\n };\n\n exports.mark = function(genFun) {\n if (Object.setPrototypeOf) {\n Object.setPrototypeOf(genFun, GeneratorFunctionPrototype);\n } else {\n genFun.__proto__ = GeneratorFunctionPrototype;\n if (!(toStringTagSymbol in genFun)) {\n genFun[toStringTagSymbol] = \"GeneratorFunction\";\n }\n }\n genFun.prototype = Object.create(Gp);\n return genFun;\n };\n\n // Within the body of any async function, `await x` is transformed to\n // `yield regeneratorRuntime.awrap(x)`, so that the runtime can test\n // `hasOwn.call(value, \"__await\")` to determine if the yielded value is\n // meant to be awaited.\n exports.awrap = function(arg) {\n return { __await: arg };\n };\n\n function AsyncIterator(generator, PromiseImpl) {\n function invoke(method, arg, resolve, reject) {\n var record = tryCatch(generator[method], generator, arg);\n if (record.type === \"throw\") {\n reject(record.arg);\n } else {\n var result = record.arg;\n var value = result.value;\n if (value &&\n typeof value === \"object\" &&\n hasOwn.call(value, \"__await\")) {\n return PromiseImpl.resolve(value.__await).then(function(value) {\n invoke(\"next\", value, resolve, reject);\n }, function(err) {\n invoke(\"throw\", err, resolve, reject);\n });\n }\n\n return PromiseImpl.resolve(value).then(function(unwrapped) {\n // When a yielded Promise is resolved, its final value becomes\n // the .value of the Promise<{value,done}> result for the\n // current iteration.\n result.value = unwrapped;\n resolve(result);\n }, function(error) {\n // If a rejected Promise was yielded, throw the rejection back\n // into the async generator function so it can be handled there.\n return invoke(\"throw\", error, resolve, reject);\n });\n }\n }\n\n var previousPromise;\n\n function enqueue(method, arg) {\n function callInvokeWithMethodAndArg() {\n return new PromiseImpl(function(resolve, reject) {\n invoke(method, arg, resolve, reject);\n });\n }\n\n return previousPromise =\n // If enqueue has been called before, then we want to wait until\n // all previous Promises have been resolved before calling invoke,\n // so that results are always delivered in the correct order. If\n // enqueue has not been called before, then it is important to\n // call invoke immediately, without waiting on a callback to fire,\n // so that the async generator function has the opportunity to do\n // any necessary setup in a predictable way. This predictability\n // is why the Promise constructor synchronously invokes its\n // executor callback, and why async functions synchronously\n // execute code before the first await. Since we implement simple\n // async functions in terms of async generators, it is especially\n // important to get this right, even though it requires care.\n previousPromise ? previousPromise.then(\n callInvokeWithMethodAndArg,\n // Avoid propagating failures to Promises returned by later\n // invocations of the iterator.\n callInvokeWithMethodAndArg\n ) : callInvokeWithMethodAndArg();\n }\n\n // Define the unified helper method that is used to implement .next,\n // .throw, and .return (see defineIteratorMethods).\n this._invoke = enqueue;\n }\n\n defineIteratorMethods(AsyncIterator.prototype);\n AsyncIterator.prototype[asyncIteratorSymbol] = function () {\n return this;\n };\n exports.AsyncIterator = AsyncIterator;\n\n // Note that simple async functions are implemented on top of\n // AsyncIterator objects; they just return a Promise for the value of\n // the final result produced by the iterator.\n exports.async = function(innerFn, outerFn, self, tryLocsList, PromiseImpl) {\n if (PromiseImpl === void 0) PromiseImpl = Promise;\n\n var iter = new AsyncIterator(\n wrap(innerFn, outerFn, self, tryLocsList),\n PromiseImpl\n );\n\n return exports.isGeneratorFunction(outerFn)\n ? iter // If outerFn is a generator, return the full iterator.\n : iter.next().then(function(result) {\n return result.done ? result.value : iter.next();\n });\n };\n\n function makeInvokeMethod(innerFn, self, context) {\n var state = GenStateSuspendedStart;\n\n return function invoke(method, arg) {\n if (state === GenStateExecuting) {\n throw new Error(\"Generator is already running\");\n }\n\n if (state === GenStateCompleted) {\n if (method === \"throw\") {\n throw arg;\n }\n\n // Be forgiving, per 25.3.3.3.3 of the spec:\n // https://people.mozilla.org/~jorendorff/es6-draft.html#sec-generatorresume\n return doneResult();\n }\n\n context.method = method;\n context.arg = arg;\n\n while (true) {\n var delegate = context.delegate;\n if (delegate) {\n var delegateResult = maybeInvokeDelegate(delegate, context);\n if (delegateResult) {\n if (delegateResult === ContinueSentinel) continue;\n return delegateResult;\n }\n }\n\n if (context.method === \"next\") {\n // Setting context._sent for legacy support of Babel's\n // function.sent implementation.\n context.sent = context._sent = context.arg;\n\n } else if (context.method === \"throw\") {\n if (state === GenStateSuspendedStart) {\n state = GenStateCompleted;\n throw context.arg;\n }\n\n context.dispatchException(context.arg);\n\n } else if (context.method === \"return\") {\n context.abrupt(\"return\", context.arg);\n }\n\n state = GenStateExecuting;\n\n var record = tryCatch(innerFn, self, context);\n if (record.type === \"normal\") {\n // If an exception is thrown from innerFn, we leave state ===\n // GenStateExecuting and loop back for another invocation.\n state = context.done\n ? GenStateCompleted\n : GenStateSuspendedYield;\n\n if (record.arg === ContinueSentinel) {\n continue;\n }\n\n return {\n value: record.arg,\n done: context.done\n };\n\n } else if (record.type === \"throw\") {\n state = GenStateCompleted;\n // Dispatch the exception by looping back around to the\n // context.dispatchException(context.arg) call above.\n context.method = \"throw\";\n context.arg = record.arg;\n }\n }\n };\n }\n\n // Call delegate.iterator[context.method](context.arg) and handle the\n // result, either by returning a { value, done } result from the\n // delegate iterator, or by modifying context.method and context.arg,\n // setting context.delegate to null, and returning the ContinueSentinel.\n function maybeInvokeDelegate(delegate, context) {\n var method = delegate.iterator[context.method];\n if (method === undefined) {\n // A .throw or .return when the delegate iterator has no .throw\n // method always terminates the yield* loop.\n context.delegate = null;\n\n if (context.method === \"throw\") {\n // Note: [\"return\"] must be used for ES3 parsing compatibility.\n if (delegate.iterator[\"return\"]) {\n // If the delegate iterator has a return method, give it a\n // chance to clean up.\n context.method = \"return\";\n context.arg = undefined;\n maybeInvokeDelegate(delegate, context);\n\n if (context.method === \"throw\") {\n // If maybeInvokeDelegate(context) changed context.method from\n // \"return\" to \"throw\", let that override the TypeError below.\n return ContinueSentinel;\n }\n }\n\n context.method = \"throw\";\n context.arg = new TypeError(\n \"The iterator does not provide a 'throw' method\");\n }\n\n return ContinueSentinel;\n }\n\n var record = tryCatch(method, delegate.iterator, context.arg);\n\n if (record.type === \"throw\") {\n context.method = \"throw\";\n context.arg = record.arg;\n context.delegate = null;\n return ContinueSentinel;\n }\n\n var info = record.arg;\n\n if (! info) {\n context.method = \"throw\";\n context.arg = new TypeError(\"iterator result is not an object\");\n context.delegate = null;\n return ContinueSentinel;\n }\n\n if (info.done) {\n // Assign the result of the finished delegate to the temporary\n // variable specified by delegate.resultName (see delegateYield).\n context[delegate.resultName] = info.value;\n\n // Resume execution at the desired location (see delegateYield).\n context.next = delegate.nextLoc;\n\n // If context.method was \"throw\" but the delegate handled the\n // exception, let the outer generator proceed normally. If\n // context.method was \"next\", forget context.arg since it has been\n // \"consumed\" by the delegate iterator. If context.method was\n // \"return\", allow the original .return call to continue in the\n // outer generator.\n if (context.method !== \"return\") {\n context.method = \"next\";\n context.arg = undefined;\n }\n\n } else {\n // Re-yield the result returned by the delegate method.\n return info;\n }\n\n // The delegate iterator is finished, so forget it and continue with\n // the outer generator.\n context.delegate = null;\n return ContinueSentinel;\n }\n\n // Define Generator.prototype.{next,throw,return} in terms of the\n // unified ._invoke helper method.\n defineIteratorMethods(Gp);\n\n Gp[toStringTagSymbol] = \"Generator\";\n\n // A Generator should always return itself as the iterator object when the\n // @@iterator function is called on it. Some browsers' implementations of the\n // iterator prototype chain incorrectly implement this, causing the Generator\n // object to not be returned from this call. This ensures that doesn't happen.\n // See https://github.com/facebook/regenerator/issues/274 for more details.\n Gp[iteratorSymbol] = function() {\n return this;\n };\n\n Gp.toString = function() {\n return \"[object Generator]\";\n };\n\n function pushTryEntry(locs) {\n var entry = { tryLoc: locs[0] };\n\n if (1 in locs) {\n entry.catchLoc = locs[1];\n }\n\n if (2 in locs) {\n entry.finallyLoc = locs[2];\n entry.afterLoc = locs[3];\n }\n\n this.tryEntries.push(entry);\n }\n\n function resetTryEntry(entry) {\n var record = entry.completion || {};\n record.type = \"normal\";\n delete record.arg;\n entry.completion = record;\n }\n\n function Context(tryLocsList) {\n // The root entry object (effectively a try statement without a catch\n // or a finally block) gives us a place to store values thrown from\n // locations where there is no enclosing try statement.\n this.tryEntries = [{ tryLoc: \"root\" }];\n tryLocsList.forEach(pushTryEntry, this);\n this.reset(true);\n }\n\n exports.keys = function(object) {\n var keys = [];\n for (var key in object) {\n keys.push(key);\n }\n keys.reverse();\n\n // Rather than returning an object with a next method, we keep\n // things simple and return the next function itself.\n return function next() {\n while (keys.length) {\n var key = keys.pop();\n if (key in object) {\n next.value = key;\n next.done = false;\n return next;\n }\n }\n\n // To avoid creating an additional object, we just hang the .value\n // and .done properties off the next function object itself. This\n // also ensures that the minifier will not anonymize the function.\n next.done = true;\n return next;\n };\n };\n\n function values(iterable) {\n if (iterable) {\n var iteratorMethod = iterable[iteratorSymbol];\n if (iteratorMethod) {\n return iteratorMethod.call(iterable);\n }\n\n if (typeof iterable.next === \"function\") {\n return iterable;\n }\n\n if (!isNaN(iterable.length)) {\n var i = -1, next = function next() {\n while (++i < iterable.length) {\n if (hasOwn.call(iterable, i)) {\n next.value = iterable[i];\n next.done = false;\n return next;\n }\n }\n\n next.value = undefined;\n next.done = true;\n\n return next;\n };\n\n return next.next = next;\n }\n }\n\n // Return an iterator with no values.\n return { next: doneResult };\n }\n exports.values = values;\n\n function doneResult() {\n return { value: undefined, done: true };\n }\n\n Context.prototype = {\n constructor: Context,\n\n reset: function(skipTempReset) {\n this.prev = 0;\n this.next = 0;\n // Resetting context._sent for legacy support of Babel's\n // function.sent implementation.\n this.sent = this._sent = undefined;\n this.done = false;\n this.delegate = null;\n\n this.method = \"next\";\n this.arg = undefined;\n\n this.tryEntries.forEach(resetTryEntry);\n\n if (!skipTempReset) {\n for (var name in this) {\n // Not sure about the optimal order of these conditions:\n if (name.charAt(0) === \"t\" &&\n hasOwn.call(this, name) &&\n !isNaN(+name.slice(1))) {\n this[name] = undefined;\n }\n }\n }\n },\n\n stop: function() {\n this.done = true;\n\n var rootEntry = this.tryEntries[0];\n var rootRecord = rootEntry.completion;\n if (rootRecord.type === \"throw\") {\n throw rootRecord.arg;\n }\n\n return this.rval;\n },\n\n dispatchException: function(exception) {\n if (this.done) {\n throw exception;\n }\n\n var context = this;\n function handle(loc, caught) {\n record.type = \"throw\";\n record.arg = exception;\n context.next = loc;\n\n if (caught) {\n // If the dispatched exception was caught by a catch block,\n // then let that catch block handle the exception normally.\n context.method = \"next\";\n context.arg = undefined;\n }\n\n return !! caught;\n }\n\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n var record = entry.completion;\n\n if (entry.tryLoc === \"root\") {\n // Exception thrown outside of any try block that could handle\n // it, so set the completion value of the entire function to\n // throw the exception.\n return handle(\"end\");\n }\n\n if (entry.tryLoc <= this.prev) {\n var hasCatch = hasOwn.call(entry, \"catchLoc\");\n var hasFinally = hasOwn.call(entry, \"finallyLoc\");\n\n if (hasCatch && hasFinally) {\n if (this.prev < entry.catchLoc) {\n return handle(entry.catchLoc, true);\n } else if (this.prev < entry.finallyLoc) {\n return handle(entry.finallyLoc);\n }\n\n } else if (hasCatch) {\n if (this.prev < entry.catchLoc) {\n return handle(entry.catchLoc, true);\n }\n\n } else if (hasFinally) {\n if (this.prev < entry.finallyLoc) {\n return handle(entry.finallyLoc);\n }\n\n } else {\n throw new Error(\"try statement without catch or finally\");\n }\n }\n }\n },\n\n abrupt: function(type, arg) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.tryLoc <= this.prev &&\n hasOwn.call(entry, \"finallyLoc\") &&\n this.prev < entry.finallyLoc) {\n var finallyEntry = entry;\n break;\n }\n }\n\n if (finallyEntry &&\n (type === \"break\" ||\n type === \"continue\") &&\n finallyEntry.tryLoc <= arg &&\n arg <= finallyEntry.finallyLoc) {\n // Ignore the finally entry if control is not jumping to a\n // location outside the try/catch block.\n finallyEntry = null;\n }\n\n var record = finallyEntry ? finallyEntry.completion : {};\n record.type = type;\n record.arg = arg;\n\n if (finallyEntry) {\n this.method = \"next\";\n this.next = finallyEntry.finallyLoc;\n return ContinueSentinel;\n }\n\n return this.complete(record);\n },\n\n complete: function(record, afterLoc) {\n if (record.type === \"throw\") {\n throw record.arg;\n }\n\n if (record.type === \"break\" ||\n record.type === \"continue\") {\n this.next = record.arg;\n } else if (record.type === \"return\") {\n this.rval = this.arg = record.arg;\n this.method = \"return\";\n this.next = \"end\";\n } else if (record.type === \"normal\" && afterLoc) {\n this.next = afterLoc;\n }\n\n return ContinueSentinel;\n },\n\n finish: function(finallyLoc) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.finallyLoc === finallyLoc) {\n this.complete(entry.completion, entry.afterLoc);\n resetTryEntry(entry);\n return ContinueSentinel;\n }\n }\n },\n\n \"catch\": function(tryLoc) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.tryLoc === tryLoc) {\n var record = entry.completion;\n if (record.type === \"throw\") {\n var thrown = record.arg;\n resetTryEntry(entry);\n }\n return thrown;\n }\n }\n\n // The context.catch method must only be called with a location\n // argument that corresponds to a known catch block.\n throw new Error(\"illegal catch attempt\");\n },\n\n delegateYield: function(iterable, resultName, nextLoc) {\n this.delegate = {\n iterator: values(iterable),\n resultName: resultName,\n nextLoc: nextLoc\n };\n\n if (this.method === \"next\") {\n // Deliberately forget the last sent value so that we don't\n // accidentally pass it on to the delegate.\n this.arg = undefined;\n }\n\n return ContinueSentinel;\n }\n };\n\n // Regardless of whether this script is executing as a CommonJS module\n // or not, return the runtime object so that we can declare the variable\n // regeneratorRuntime in the outer scope, which allows this module to be\n // injected easily by `bin/regenerator --include-runtime script.js`.\n return exports;\n\n}(\n // If this script is executing as a CommonJS module, use module.exports\n // as the regeneratorRuntime namespace. Otherwise create a new empty\n // object. Either way, the resulting object will be used to initialize\n // the regeneratorRuntime variable at the top of this file.\n typeof module === \"object\" ? module.exports : {}\n));\n\ntry {\n regeneratorRuntime = runtime;\n} catch (accidentalStrictMode) {\n // This module should not be running in strict mode, so the above\n // assignment should always work unless something is misconfigured. Just\n // in case runtime.js accidentally runs in strict mode, we can escape\n // strict mode using a global Function call. This could conceivably fail\n // if a Content Security Policy forbids using Function, but in that case\n // the proper solution is to fix the accidental strict mode problem. If\n // you've misconfigured your bundler to force strict mode and applied a\n // CSP to forbid Function, and you're not willing to fix either of those\n // problems, please detail your unique predicament in a GitHub issue.\n Function(\"r\", \"regeneratorRuntime = r\")(runtime);\n}\n","import {send} from 'ajax';\n\nconst queryString = window.location.search;\nconst urlParams = new URLSearchParams(queryString);\nurlParams.append('path', window.location.pathname); // for \"path\" column in \"hits\" table\n\nexport const fromDesktop = urlParams.get('home') === 'yes' ? true : false;\n\n//hitPage();\n\n\n // only redirect from homepage\n if (window.location.pathname == '/' || window.location.pathname == '/santa/signup') {\n //ab_redirect(); - turn off ab test\n homeRedirect();\n }\n\n\nexport async function hitPage(){\n try {\n let link_url = \"/santa/hit?\"+urlParams.toString(); \n const hit = await send(\"GET\", link_url);\n }\n catch (err) {\n console.log('hit page testing err: ' + err);\n }\n}\n\nexport async function homeRedirect() {\nconsole.log('m', fromDesktop, urlParams, urlParams.get('home'));\n if (!detectMob() && !fromDesktop) {\n console.log('desktop redirect');\n var ab_queryString = window.location.search;\n var ab_urlParams = new URLSearchParams(ab_queryString);\n window.location.href ='/santa/desktop?' + ab_urlParams; \n }\n else {\n console.log('mobile view');\n }\n}\n\nexport async function signup_redirect() {\n var ab_queryString = window.location.search;\n var ab_urlParams = new URLSearchParams(ab_queryString);\n if (detectMob()) {\n window.location.href ='/santa/signup?' + ab_urlParams; \n }\n}\n\nexport async function ab_redirect() {\n var ab_queryString = window.location.search;\n var ab_urlParams = new URLSearchParams(ab_queryString);\n const ab_test = await send('GET', '/santa/check_ab_testing?' + ab_urlParams);\n var ab_ = ab_test.result;\n if (ab_ == 'b') {\n window.location.href ='/santa/signup?' + ab_urlParams; \n }\n}\n\nfunction detectMob() {\n return ( window.innerWidth <= 900 ) ;\n}\n"],"sourceRoot":""}