{"version":3,"file":"js/923-7f361b55158e096aa1f0.js","mappings":"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","sources":["webpack://app/./node_modules/@rails/ujs/lib/assets/compiled/rails-ujs.js","webpack://app/./node_modules/ahoy.js/dist/ahoy.esm.js"],"sourcesContent":["/*\nUnobtrusive JavaScript\nhttps://github.com/rails/rails/blob/main/actionview/app/assets/javascripts\nReleased under the MIT license\n */;\n\n(function() {\n var context = this;\n\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:not([data-turbo=true])',\n formInputClickSelector: 'form:not([data-turbo=true]) input[type=submit], form:not([data-turbo=true]) input[type=image], form:not([data-turbo=true]) button[type=submit], form:not([data-turbo=true]) 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\n }).call(this);\n }).call(context);\n\n var Rails = context.Rails;\n\n (function() {\n (function() {\n var nonce;\n\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\n }).call(this);\n (function() {\n var expando, m;\n\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 return element[expando][key] = value;\n };\n\n Rails.$ = function(selector) {\n return Array.prototype.slice.call(document.querySelectorAll(selector));\n };\n\n }).call(this);\n (function() {\n var $, csrfParam, csrfToken;\n\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 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 if ((token != null) && (param != null)) {\n return $('form input[name=\"' + param + '\"]').forEach(function(input) {\n return input.value = token;\n });\n }\n };\n\n }).call(this);\n (function() {\n var CustomEvent, fire, matches, preventDefault;\n\n matches = Rails.matches;\n\n CustomEvent = window.CustomEvent;\n\n if (typeof CustomEvent !== 'function') {\n CustomEvent = function(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 CustomEvent.prototype = window.Event.prototype;\n preventDefault = CustomEvent.prototype.preventDefault;\n CustomEvent.prototype.preventDefault = function() {\n var result;\n result = preventDefault.call(this);\n if (this.cancelable && !this.defaultPrevented) {\n Object.defineProperty(this, 'defaultPrevented', {\n get: function() {\n return true;\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 while (!(!(target instanceof Element) || matches(target, selector))) {\n target = target.parentNode;\n }\n if (target instanceof Element && handler.call(target, e) === false) {\n e.preventDefault();\n return e.stopPropagation();\n }\n });\n };\n\n }).call(this);\n (function() {\n var AcceptHeaders, CSRFProtection, createXHR, cspNonce, fire, prepareOptions, processResponse;\n\n cspNonce = Rails.cspNonce, CSRFProtection = Rails.CSRFProtection, fire = Rails.fire;\n\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 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 return typeof options.complete === \"function\" ? options.complete(xhr, xhr.statusText) : void 0;\n });\n if ((options.beforeSend != null) && !options.beforeSend(xhr, options)) {\n return false;\n }\n if (xhr.readyState === XMLHttpRequest.OPENED) {\n return xhr.send(options.data);\n }\n };\n\n prepareOptions = function(options) {\n options.url = options.url || location.href;\n options.type = options.type.toUpperCase();\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 if (AcceptHeaders[options.dataType] == null) {\n options.dataType = '*';\n }\n options.accept = AcceptHeaders[options.dataType];\n if (options.dataType !== '*') {\n options.accept += ', */*; q=0.01';\n }\n return options;\n };\n\n createXHR = function(options, done) {\n var xhr;\n xhr = new XMLHttpRequest();\n xhr.open(options.type, options.url, true);\n xhr.setRequestHeader('Accept', options.accept);\n if (typeof options.data === 'string') {\n xhr.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded; charset=UTF-8');\n }\n if (!options.crossDomain) {\n xhr.setRequestHeader('X-Requested-With', 'XMLHttpRequest');\n CSRFProtection(xhr);\n }\n xhr.withCredentials = !!options.withCredentials;\n xhr.onreadystatechange = function() {\n if (xhr.readyState === XMLHttpRequest.DONE) {\n return done(xhr);\n }\n };\n return xhr;\n };\n\n processResponse = function(response, type) {\n var parser, script;\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 try {\n response = parser.parseFromString(response, type);\n } catch (error) {}\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 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\n }).call(this);\n (function() {\n var matches, toArray;\n\n matches = Rails.matches;\n\n toArray = function(e) {\n return Array.prototype.slice.call(e);\n };\n\n Rails.serializeElement = function(element, additionalParam) {\n var inputs, params;\n inputs = [element];\n if (matches(element, 'form')) {\n inputs = toArray(element.elements);\n }\n params = [];\n inputs.forEach(function(input) {\n if (!input.name || input.disabled) {\n return;\n }\n if (matches(input, 'fieldset[disabled] *')) {\n return;\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 if (additionalParam) {\n params.push(additionalParam);\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\n }).call(this);\n (function() {\n var allowAction, fire, stopEverything;\n\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(element) {\n var answer, callback, message;\n message = element.getAttribute('data-confirm');\n if (!message) {\n return true;\n }\n answer = false;\n if (fire(element, 'confirm')) {\n try {\n answer = Rails.confirm(message, element);\n } catch (error) {}\n callback = fire(element, 'confirm:complete', [answer]);\n }\n return answer && callback;\n };\n\n }).call(this);\n (function() {\n var disableFormElement, disableFormElements, disableLinkElement, enableFormElement, enableFormElements, enableLinkElement, formElements, getData, isXhrRedirect, matches, setData, stopEverything;\n\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 if (element.disabled) {\n return stopEverything(e);\n }\n };\n\n Rails.enableElement = function(e) {\n var element;\n if (e instanceof Event) {\n if (isXhrRedirect(e)) {\n return;\n }\n element = e.target;\n } else {\n element = e;\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 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(element) {\n var replacement;\n if (getData(element, 'ujs:disabled')) {\n return;\n }\n replacement = element.getAttribute('data-disable-with');\n if (replacement != null) {\n setData(element, 'ujs:enable-with', element.innerHTML);\n element.innerHTML = replacement;\n }\n element.addEventListener('click', stopEverything);\n return setData(element, 'ujs:disabled', true);\n };\n\n enableLinkElement = function(element) {\n var originalText;\n originalText = getData(element, 'ujs:enable-with');\n if (originalText != null) {\n element.innerHTML = originalText;\n setData(element, 'ujs:enable-with', null);\n }\n element.removeEventListener('click', stopEverything);\n return setData(element, 'ujs:disabled', null);\n };\n\n disableFormElements = function(form) {\n return formElements(form, Rails.formDisableSelector).forEach(disableFormElement);\n };\n\n disableFormElement = function(element) {\n var replacement;\n if (getData(element, 'ujs:disabled')) {\n return;\n }\n replacement = element.getAttribute('data-disable-with');\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 element.disabled = true;\n return setData(element, 'ujs:disabled', true);\n };\n\n enableFormElements = function(form) {\n return formElements(form, Rails.formEnableSelector).forEach(enableFormElement);\n };\n\n enableFormElement = function(element) {\n var originalText;\n originalText = getData(element, 'ujs:enable-with');\n if (originalText != null) {\n if (matches(element, 'button')) {\n element.innerHTML = originalText;\n } else {\n element.value = originalText;\n }\n setData(element, 'ujs:enable-with', null);\n }\n element.disabled = false;\n return setData(element, 'ujs:disabled', null);\n };\n\n isXhrRedirect = function(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\n }).call(this);\n (function() {\n var stopEverything;\n\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 if (!method) {\n return;\n }\n href = Rails.href(link);\n csrfToken = Rails.csrfToken();\n csrfParam = Rails.csrfParam();\n form = document.createElement('form');\n formContent = \"\";\n if ((csrfParam != null) && (csrfToken != null) && !Rails.isCrossDomain(href)) {\n formContent += \"\";\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\n }).call(this);\n (function() {\n var ajax, fire, getData, isCrossDomain, isRemote, matches, serializeElement, setData, stopEverything,\n slice = [].slice;\n\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(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 if (!isRemote(element)) {\n return true;\n }\n if (!fire(element, 'ajax:before')) {\n fire(element, 'ajax:stopped');\n return false;\n }\n withCredentials = element.getAttribute('data-with-credentials');\n dataType = element.getAttribute('data-type') || 'script';\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 if (method.toUpperCase() === 'GET') {\n url = url.replace(/\\?.*$/, '');\n }\n if (element.enctype === 'multipart/form-data') {\n data = new FormData(element);\n if (button != null) {\n data.append(button.name, button.value);\n }\n } else {\n data = serializeElement(element, button);\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 ajax({\n type: method || 'GET',\n url: url,\n data: data,\n dataType: dataType,\n beforeSend: function(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() {\n var args;\n args = 1 <= arguments.length ? slice.call(arguments, 0) : [];\n return fire(element, 'ajax:success', args);\n },\n error: function() {\n var args;\n args = 1 <= arguments.length ? slice.call(arguments, 0) : [];\n return fire(element, 'ajax:error', args);\n },\n complete: function() {\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 if (!form) {\n return;\n }\n if (button.name) {\n setData(form, 'ujs:submit-button', {\n name: button.name,\n value: button.value\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 if (nonPrimaryMouseClick || insignificantMetaClick) {\n return e.stopImmediatePropagation();\n }\n };\n\n }).call(this);\n (function() {\n var $, CSRFProtection, delegate, disableElement, enableElement, fire, formSubmitButtonClick, getData, handleConfirm, handleDisabledElement, handleMethod, handleRemote, loadCSPNonce, preventInsignificantClick, refreshCSRFTokens;\n\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 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 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\n }).call(this);\n }).call(this);\n\n if (typeof module === \"object\" && module.exports) {\n module.exports = Rails;\n } else if (typeof define === \"function\" && define.amd) {\n define(Rails);\n }\n}).call(this);\n","/*!\n * Ahoy.js v0.4.4\n * Simple, powerful JavaScript analytics\n * https://github.com/ankane/ahoy.js\n * MIT License\n */\n\n// https://www.quirksmode.org/js/cookies.html\n\nvar Cookies = {\n set: function (name, value, ttl, domain) {\n var expires = \"\";\n var cookieDomain = \"\";\n if (ttl) {\n var date = new Date();\n date.setTime(date.getTime() + (ttl * 60 * 1000));\n expires = \"; expires=\" + date.toGMTString();\n }\n if (domain) {\n cookieDomain = \"; domain=\" + domain;\n }\n document.cookie = name + \"=\" + escape(value) + expires + cookieDomain + \"; path=/; samesite=lax\";\n },\n get: function (name) {\n var i, c;\n var nameEQ = name + \"=\";\n var ca = document.cookie.split(';');\n for (i = 0; i < ca.length; i++) {\n c = ca[i];\n while (c.charAt(0) === ' ') {\n c = c.substring(1, c.length);\n }\n if (c.indexOf(nameEQ) === 0) {\n return unescape(c.substring(nameEQ.length, c.length));\n }\n }\n return null;\n }\n};\n\nvar config = {\n urlPrefix: \"\",\n visitsUrl: \"/ahoy/visits\",\n eventsUrl: \"/ahoy/events\",\n page: null,\n platform: \"Web\",\n useBeacon: true,\n startOnReady: true,\n trackVisits: true,\n cookies: true,\n cookieDomain: null,\n headers: {},\n visitParams: {},\n withCredentials: false,\n visitDuration: 4 * 60, // default 4 hours\n visitorDuration: 2 * 365 * 24 * 60 // default 2 years\n};\n\nvar ahoy = window.ahoy || window.Ahoy || {};\n\nahoy.configure = function (options) {\n for (var key in options) {\n if (Object.prototype.hasOwnProperty.call(options, key)) {\n config[key] = options[key];\n }\n }\n};\n\n// legacy\nahoy.configure(ahoy);\n\nvar $ = window.jQuery || window.Zepto || window.$;\nvar visitId, visitorId, track;\nvar isReady = false;\nvar queue = [];\nvar canStringify = typeof(JSON) !== \"undefined\" && typeof(JSON.stringify) !== \"undefined\";\nvar eventQueue = [];\n\nfunction visitsUrl() {\n return config.urlPrefix + config.visitsUrl;\n}\n\nfunction eventsUrl() {\n return config.urlPrefix + config.eventsUrl;\n}\n\nfunction isEmpty(obj) {\n return Object.keys(obj).length === 0;\n}\n\nfunction canTrackNow() {\n return (config.useBeacon || config.trackNow) && isEmpty(config.headers) && canStringify && typeof(window.navigator.sendBeacon) !== \"undefined\" && !config.withCredentials;\n}\n\nfunction serialize(object) {\n var data = new FormData();\n for (var key in object) {\n if (Object.prototype.hasOwnProperty.call(object, key)) {\n data.append(key, object[key]);\n }\n }\n return data;\n}\n\n// cookies\n\nfunction setCookie(name, value, ttl) {\n Cookies.set(name, value, ttl, config.cookieDomain || config.domain);\n}\n\nfunction getCookie(name) {\n return Cookies.get(name);\n}\n\nfunction destroyCookie(name) {\n Cookies.set(name, \"\", -1);\n}\n\nfunction log(message) {\n if (getCookie(\"ahoy_debug\")) {\n window.console.log(message);\n }\n}\n\nfunction setReady() {\n var callback;\n while ((callback = queue.shift())) {\n callback();\n }\n isReady = true;\n}\n\nahoy.ready = function (callback) {\n if (isReady) {\n callback();\n } else {\n queue.push(callback);\n }\n};\n\nfunction matchesSelector(element, selector) {\n var matches = element.matches ||\n element.matchesSelector ||\n element.mozMatchesSelector ||\n element.msMatchesSelector ||\n element.oMatchesSelector ||\n element.webkitMatchesSelector;\n\n if (matches) {\n if (matches.apply(element, [selector])) {\n return element;\n } else if (element.parentElement) {\n return matchesSelector(element.parentElement, selector);\n }\n return null;\n } else {\n log(\"Unable to match\");\n return null;\n }\n}\n\nfunction onEvent(eventName, selector, callback) {\n document.addEventListener(eventName, function (e) {\n var matchedElement = matchesSelector(e.target, selector);\n if (matchedElement) {\n var skip = getClosest(matchedElement, \"data-ahoy-skip\");\n if (skip !== null && skip !== \"false\") { return; }\n\n callback.call(matchedElement, e);\n }\n });\n}\n\n// http://beeker.io/jquery-document-ready-equivalent-vanilla-javascript\nfunction documentReady(callback) {\n if (document.readyState === \"interactive\" || document.readyState === \"complete\") {\n setTimeout(callback, 0);\n } else {\n document.addEventListener(\"DOMContentLoaded\", callback);\n }\n}\n\n// https://stackoverflow.com/a/2117523/1177228\nfunction generateId() {\n if (window.crypto && window.crypto.randomUUID) {\n return window.crypto.randomUUID();\n }\n\n return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, function (c) {\n var r = Math.random() * 16 | 0;\n var v = c === 'x' ? r : (r & 0x3 | 0x8);\n return v.toString(16);\n });\n}\n\nfunction saveEventQueue() {\n if (config.cookies && canStringify) {\n setCookie(\"ahoy_events\", JSON.stringify(eventQueue), 1);\n }\n}\n\n// from rails-ujs\n\nfunction csrfToken() {\n var meta = document.querySelector(\"meta[name=csrf-token]\");\n return meta && meta.content;\n}\n\nfunction csrfParam() {\n var meta = document.querySelector(\"meta[name=csrf-param]\");\n return meta && meta.content;\n}\n\nfunction CSRFProtection(xhr) {\n var token = csrfToken();\n if (token) { xhr.setRequestHeader(\"X-CSRF-Token\", token); }\n}\n\nfunction sendRequest(url, data, success) {\n if (canStringify) {\n if ($ && $.ajax) {\n $.ajax({\n type: \"POST\",\n url: url,\n data: JSON.stringify(data),\n contentType: \"application/json; charset=utf-8\",\n dataType: \"json\",\n beforeSend: CSRFProtection,\n success: success,\n headers: config.headers,\n xhrFields: {\n withCredentials: config.withCredentials\n }\n });\n } else {\n var xhr = new XMLHttpRequest();\n xhr.open(\"POST\", url, true);\n xhr.withCredentials = config.withCredentials;\n xhr.setRequestHeader(\"Content-Type\", \"application/json\");\n for (var header in config.headers) {\n if (Object.prototype.hasOwnProperty.call(config.headers, header)) {\n xhr.setRequestHeader(header, config.headers[header]);\n }\n }\n xhr.onload = function () {\n if (xhr.status === 200) {\n success();\n }\n };\n CSRFProtection(xhr);\n xhr.send(JSON.stringify(data));\n }\n }\n}\n\nfunction eventData(event) {\n var data = {\n events: [event]\n };\n if (config.cookies) {\n data.visit_token = event.visit_token;\n data.visitor_token = event.visitor_token;\n }\n delete event.visit_token;\n delete event.visitor_token;\n return data;\n}\n\nfunction trackEvent(event) {\n ahoy.ready(function () {\n sendRequest(eventsUrl(), eventData(event), function () {\n // remove from queue\n for (var i = 0; i < eventQueue.length; i++) {\n if (eventQueue[i].id === event.id) {\n eventQueue.splice(i, 1);\n break;\n }\n }\n saveEventQueue();\n });\n });\n}\n\nfunction trackEventNow(event) {\n ahoy.ready(function () {\n var data = eventData(event);\n var param = csrfParam();\n var token = csrfToken();\n if (param && token) { data[param] = token; }\n // stringify so we keep the type\n data.events_json = JSON.stringify(data.events);\n delete data.events;\n window.navigator.sendBeacon(eventsUrl(), serialize(data));\n });\n}\n\nfunction page() {\n return config.page || window.location.pathname;\n}\n\nfunction presence(str) {\n return (str && str.length > 0) ? str : null;\n}\n\nfunction cleanObject(obj) {\n for (var key in obj) {\n if (Object.prototype.hasOwnProperty.call(obj, key)) {\n if (obj[key] === null) {\n delete obj[key];\n }\n }\n }\n return obj;\n}\n\nfunction eventProperties() {\n return cleanObject({\n tag: this.tagName.toLowerCase(),\n id: presence(this.id),\n \"class\": presence(this.className),\n page: page(),\n section: getClosest(this, \"data-section\")\n });\n}\n\nfunction getClosest(element, attribute) {\n for (; element && element !== document; element = element.parentNode) {\n if (element.hasAttribute(attribute)) {\n return element.getAttribute(attribute);\n }\n }\n\n return null;\n}\n\nfunction createVisit() {\n isReady = false;\n\n visitId = ahoy.getVisitId();\n visitorId = ahoy.getVisitorId();\n track = getCookie(\"ahoy_track\");\n\n if (config.cookies === false || config.trackVisits === false) {\n log(\"Visit tracking disabled\");\n setReady();\n } else if (visitId && visitorId && !track) {\n // TODO keep visit alive?\n log(\"Active visit\");\n setReady();\n } else {\n if (!visitId) {\n visitId = generateId();\n setCookie(\"ahoy_visit\", visitId, config.visitDuration);\n }\n\n // make sure cookies are enabled\n if (getCookie(\"ahoy_visit\")) {\n log(\"Visit started\");\n\n if (!visitorId) {\n visitorId = generateId();\n setCookie(\"ahoy_visitor\", visitorId, config.visitorDuration);\n }\n\n var data = {\n visit_token: visitId,\n visitor_token: visitorId,\n platform: config.platform,\n landing_page: window.location.href,\n screen_width: window.screen.width,\n screen_height: window.screen.height,\n js: true\n };\n\n // referrer\n if (document.referrer.length > 0) {\n data.referrer = document.referrer;\n }\n\n for (var key in config.visitParams) {\n if (Object.prototype.hasOwnProperty.call(config.visitParams, key)) {\n data[key] = config.visitParams[key];\n }\n }\n\n log(data);\n\n sendRequest(visitsUrl(), data, function () {\n // wait until successful to destroy\n destroyCookie(\"ahoy_track\");\n setReady();\n });\n } else {\n log(\"Cookies disabled\");\n setReady();\n }\n }\n}\n\nahoy.getVisitId = ahoy.getVisitToken = function () {\n return getCookie(\"ahoy_visit\");\n};\n\nahoy.getVisitorId = ahoy.getVisitorToken = function () {\n return getCookie(\"ahoy_visitor\");\n};\n\nahoy.reset = function () {\n destroyCookie(\"ahoy_visit\");\n destroyCookie(\"ahoy_visitor\");\n destroyCookie(\"ahoy_events\");\n destroyCookie(\"ahoy_track\");\n return true;\n};\n\nahoy.debug = function (enabled) {\n if (enabled === false) {\n destroyCookie(\"ahoy_debug\");\n } else {\n setCookie(\"ahoy_debug\", \"t\", 365 * 24 * 60); // 1 year\n }\n return true;\n};\n\nahoy.track = function (name, properties) {\n // generate unique id\n var event = {\n name: name,\n properties: properties || {},\n time: (new Date()).getTime() / 1000.0,\n id: generateId(),\n js: true\n };\n\n ahoy.ready(function () {\n if (config.cookies && !ahoy.getVisitId()) {\n createVisit();\n }\n\n ahoy.ready(function () {\n log(event);\n\n event.visit_token = ahoy.getVisitId();\n event.visitor_token = ahoy.getVisitorId();\n\n if (canTrackNow()) {\n trackEventNow(event);\n } else {\n eventQueue.push(event);\n saveEventQueue();\n\n // wait in case navigating to reduce duplicate events\n setTimeout(function () {\n trackEvent(event);\n }, 1000);\n }\n });\n });\n\n return true;\n};\n\nahoy.trackView = function (additionalProperties) {\n var properties = {\n url: window.location.href,\n title: document.title,\n page: page()\n };\n\n if (additionalProperties) {\n for (var propName in additionalProperties) {\n if (Object.prototype.hasOwnProperty.call(additionalProperties, propName)) {\n properties[propName] = additionalProperties[propName];\n }\n }\n }\n ahoy.track(\"$view\", properties);\n};\n\nahoy.trackClicks = function (selector) {\n if (selector === undefined) {\n throw new Error(\"Missing selector\");\n }\n onEvent(\"click\", selector, function (e) {\n var properties = eventProperties.call(this, e);\n properties.text = properties.tag === \"input\" ? this.value : (this.textContent || this.innerText || this.innerHTML).replace(/[\\s\\r\\n]+/g, \" \").trim();\n properties.href = this.href;\n ahoy.track(\"$click\", properties);\n });\n};\n\nahoy.trackSubmits = function (selector) {\n if (selector === undefined) {\n throw new Error(\"Missing selector\");\n }\n onEvent(\"submit\", selector, function (e) {\n var properties = eventProperties.call(this, e);\n ahoy.track(\"$submit\", properties);\n });\n};\n\nahoy.trackChanges = function (selector) {\n log(\"trackChanges is deprecated and will be removed in 0.5.0\");\n if (selector === undefined) {\n throw new Error(\"Missing selector\");\n }\n onEvent(\"change\", selector, function (e) {\n var properties = eventProperties.call(this, e);\n ahoy.track(\"$change\", properties);\n });\n};\n\n// push events from queue\ntry {\n eventQueue = JSON.parse(getCookie(\"ahoy_events\") || \"[]\");\n} catch (e) {\n // do nothing\n}\n\nfor (var i = 0; i < eventQueue.length; i++) {\n trackEvent(eventQueue[i]);\n}\n\nahoy.start = function () {\n createVisit();\n\n ahoy.start = function () {};\n};\n\ndocumentReady(function () {\n if (config.startOnReady) {\n ahoy.start();\n }\n});\n\nexport { ahoy as default };\n"],"names":["this","Rails","linkClickSelector","buttonClickSelector","selector","exclude","inputChangeSelector","formSubmitSelector","formInputClickSelector","formDisableSelector","formEnableSelector","fileInputSelector","linkDisableSelector","buttonDisableSelector","call","nonce","loadCSPNonce","ref","document","querySelector","content","cspNonce","expando","m","Element","prototype","matches","matchesSelector","mozMatchesSelector","msMatchesSelector","oMatchesSelector","webkitMatchesSelector","element","getData","key","setData","value","$","Array","slice","querySelectorAll","csrfParam","csrfToken","meta","CSRFProtection","xhr","token","setRequestHeader","refreshCSRFTokens","param","forEach","input","CustomEvent","fire","preventDefault","window","event","params","evt","createEvent","initCustomEvent","bubbles","cancelable","detail","Event","result","defaultPrevented","Object","defineProperty","get","obj","name","data","dispatchEvent","stopEverything","e","target","stopPropagation","stopImmediatePropagation","delegate","eventType","handler","addEventListener","parentNode","AcceptHeaders","createXHR","prepareOptions","processResponse","text","html","xml","json","script","ajax","options","response","responseText","getResponseHeader","Math","floor","status","success","statusText","error","complete","beforeSend","readyState","XMLHttpRequest","OPENED","send","url","location","href","type","toUpperCase","indexOf","dataType","accept","done","open","crossDomain","withCredentials","onreadystatechange","DONE","parser","match","JSON","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","encodeURIComponent","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","link","method","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","module","exports","Cookies","set","ttl","domain","expires","cookieDomain","date","Date","setTime","getTime","toGMTString","cookie","escape","i","c","nameEQ","ca","split","charAt","substring","unescape","config","urlPrefix","visitsUrl","eventsUrl","page","platform","useBeacon","startOnReady","trackVisits","cookies","headers","visitParams","visitDuration","visitorDuration","ahoy","Ahoy","configure","hasOwnProperty","visitId","visitorId","track","Zepto","isReady","queue","canStringify","eventQueue","canTrackNow","trackNow","keys","navigator","setCookie","getCookie","destroyCookie","log","console","setReady","shift","apply","parentElement","onEvent","eventName","matchedElement","skip","getClosest","generateId","crypto","randomUUID","r","random","toString","saveEventQueue","stringify","sendRequest","contentType","xhrFields","header","onload","eventData","events","visit_token","visitor_token","trackEvent","ready","id","splice","trackEventNow","events_json","sendBeacon","object","serialize","pathname","presence","str","eventProperties","cleanObject","tag","tagName","toLowerCase","className","section","attribute","hasAttribute","createVisit","getVisitId","getVisitorId","landing_page","screen_width","screen","width","screen_height","height","js","referrer","getVisitToken","getVisitorToken","reset","debug","enabled","properties","time","trackView","additionalProperties","title","propName","trackClicks","undefined","textContent","innerText","trim","trackSubmits","trackChanges"],"sourceRoot":""}