{"version":3,"file":"safe_iframe.4ec430dc.js","sources":["../../../node_modules/@rails/ujs/lib/assets/compiled/rails-ujs.js","../../../app/javascript/forms/mask.js","../../../app/javascript/forms/validate.js","../../../app/javascript/forms/ujs.js","../../../app/javascript/utils/copy.js","../../../app/javascript/forms/stripe.js","../../../app/javascript/entrypoints/safe_iframe.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',\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\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","/** Copied from https://raw.githubusercontent.com/lagden/mask/master/src/index.js **/\n\nlet _cc = 0;\nconst _id = () =>\n `c_${Number(_cc++).toString(26)}_${Math.trunc(Date.now() / 1000)}`;\n\nconst map = new Map();\nmap.set('9', /\\d/);\nmap.set('A', /[\\da-zA-Z]/);\nmap.set('S', /[a-zA-Z]/);\n\nconst instances = new Map();\n\nconst GUID = Symbol('GUID');\n\nclass Mask {\n static data(input) {\n return instances.has(input[GUID]) && instances.get(input[GUID]);\n }\n\n static masking(_value, _mask) {\n const mask = String(_mask);\n const value = String(_value).replace(/[^\\da-zA-Z]/g, '');\n\n const res = [];\n let cc = 0;\n\n for (let i = 0; i < mask.length; i++) {\n const char = mask.charAt(i);\n if (value.length > cc) {\n if (map.has(char)) {\n if (map.get(char).test(value.charAt(cc))) {\n res.push(value.charAt(cc++));\n } else {\n break;\n }\n } else {\n res.push(char);\n }\n }\n }\n\n return res.join('');\n }\n\n constructor(input, opts = {}) {\n this.opts = {\n keyEvent: 'input',\n triggerOnBlur: false,\n init: false,\n mask: '',\n ...opts,\n };\n\n if (input instanceof HTMLInputElement === false) {\n throw new TypeError('The input should be a HTMLInputElement');\n }\n\n // Check if element has an instance\n const instance = Mask.data(input);\n if (instance instanceof Mask) {\n throw new TypeError(\n 'The input has already been instanced. Use the static method `Mask.data(input)` to get the instance.'\n );\n }\n\n this.events = new Set();\n this.input = input;\n this.mask = input.dataset.mask || this.opts.mask;\n\n // Check if has mask\n if (!this.mask || this.mask.length === 0) {\n throw new Error('The mask can not be empty');\n }\n\n // Initialize\n if (this.opts.init) {\n this.input.value = Mask.masking(this.input.value, this.mask);\n }\n\n // Listener\n this.input.addEventListener(this.opts.keyEvent, this);\n this.events.add(this.opts.keyEvent);\n\n if (this.opts.triggerOnBlur) {\n this.input.addEventListener('blur', this);\n this.events.add('blur');\n }\n\n // Storage instance\n this.input[GUID] = _id();\n instances.set(this.input[GUID], this);\n }\n\n masking(event) {\n /* istanbul ignore next */\n if (event && event.inputType === 'deleteContentBackward') {\n return false;\n }\n\n this.input.value = Mask.masking(this.input.value, this.mask);\n }\n\n destroy() {\n for (const _event of this.events) {\n this.input.removeEventListener(_event, this);\n }\n\n if (instances.has(this.input[GUID])) {\n instances.delete(this.input[GUID]);\n }\n }\n\n handleEvent(event) {\n this.masking(event);\n }\n}\n\nexport default Mask;\n","import Mask from './mask';\n\nconst errorHtml = (message) => `
${message}
`;\n\nfunction camelToKebab(input) {\n return input.replace(/([a-z])([A-Z])/g, '$1-$2').toLowerCase();\n}\n\nconst isNull = (val) => !val || val === '';\n\nconst EMAIL_REGEX =\n /^(([^<>()\\[\\]\\\\.,;:\\s@\"]+(\\.[^<>()\\[\\]\\\\.,;:\\s@\"]+)*)|(\".+\"))@((\\[[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}])|(([a-zA-Z\\-0-9]+\\.)+[a-zA-Z]{2,}))$/;\n\nconst VALIDATIONS = {\n required: (val) => !!val && val !== '',\n email: (val) => isNull(val) || val.match(EMAIL_REGEX),\n minLength: (val, attr) => val && val.length >= Number(attr),\n phone(val) {\n const len = val && val.replace(/\\D/g, '').length;\n return !len || len === 10;\n },\n};\n\nconst VALIDATION_MESSAGES = {\n required: () => 'This field is required',\n email: () => 'That is not a valid email',\n phone: () => 'That is not a valid phone number',\n minLength: (val) => `This field must contain at least ${val} characters`,\n};\n\nconst INPUT_SELECTORS = 'input, select, textarea';\n\nfunction clearErrors(container) {\n const input = container.querySelector(INPUT_SELECTORS);\n if (input) input.classList.remove('input--error');\n\n const errors = container.querySelectorAll('p.error');\n for (var i = 0; i < errors.length; i++) {\n errors[i].parentNode.removeChild(errors[i]);\n }\n}\n\nfunction setGlobalError(message) {\n const container = document.querySelector('.global-errors');\n setError(container, message);\n}\n\nfunction clearGlobalErrors() {\n const container = document.querySelector('.global-errors');\n clearErrors(container);\n}\n\nfunction setError(container, message) {\n const div = document.createElement('div');\n\n const input = container.querySelector(INPUT_SELECTORS);\n if (input) input.classList.add('input--error');\n\n div.innerHTML = errorHtml(message);\n container.appendChild(div.firstChild);\n}\n\nfunction validate(container) {\n clearErrors(container);\n const input = container.querySelector(INPUT_SELECTORS);\n if (!input) return;\n\n // Get the list of validations to apply for this input\n const validations = Object.keys(VALIDATIONS)\n .map((type) => [type, input.getAttribute(`data-${camelToKebab(type)}`)])\n .filter((el) => !!el[1]);\n\n const failed = validations.find(([key, arg]) => !VALIDATIONS[key](input.value, arg));\n\n if (failed) {\n setError(container, VALIDATION_MESSAGES[failed[0]](failed[1]));\n }\n}\n\nwindow.addEventListener('DOMContentLoaded', (event) => {\n const containers = document.querySelectorAll('.input-container');\n for (var i = 0; i < containers.length; i++) {\n const container = containers[i];\n\n const label = container.querySelector('.input-label');\n const input = container.querySelector(INPUT_SELECTORS);\n if (!input) continue;\n\n if (input.getAttribute('data-phone')) {\n try {\n new Mask(input, { init: true, mask: '999-999-9999' });\n } catch (e) {}\n }\n\n input.addEventListener('focus', (evt) => {\n label.classList.add('input-label--focused');\n });\n\n input.addEventListener('input', (evt) => {\n if (evt.target.getAttribute('data-touched')) {\n validate(container);\n }\n });\n\n input.addEventListener('blur', (evt) => {\n if (!evt.target.value) {\n label.classList.remove('input-label--focused');\n }\n evt.target.setAttribute('data-touched', true);\n validate(container);\n });\n }\n});\n\nexport { clearErrors, setError, validate, setGlobalError, clearGlobalErrors };\n","import Rails from \"@rails/ujs\";\nimport {\n setError,\n clearErrors,\n setGlobalError,\n validate,\n clearGlobalErrors\n} from \"./validate\";\n\nwindow.Rails = Rails;\n\nwindow.addEventListener(\"DOMContentLoaded\", event => {\n if (!window._rails_loaded) Rails.start();\n const forms = document.querySelectorAll(\"form[data-remote]\");\n for (var i = 0; i < forms.length; i++) {\n const form = forms[i];\n\n form.setAttribute(\"novalidate\", true);\n\n form.addEventListener(\"ajax:before\", event => {\n clearGlobalErrors();\n const form = event.target;\n const containers = form.querySelectorAll(\".input-container\");\n for (var c = 0; c < containers.length; c++) {\n validate(containers[c]);\n }\n\n if (form.querySelector(\".error\")) {\n event.preventDefault();\n }\n });\n\n form.addEventListener(\"ajax:send\", event => {\n const form = event.target;\n const btn = form.querySelector(\"button\");\n btn.disabled = true;\n });\n\n form.addEventListener(\"ajax:complete\", event => {\n const form = event.target;\n const btn = form.querySelector(\"button\");\n btn.disabled = false;\n });\n\n form.addEventListener(\"ajax:error\", ({ detail }) => {\n if (!detail) return;\n\n try {\n const parsed = JSON.parse(detail[2].responseText);\n const errorsObj = parsed.errors || parsed.field_errors;\n\n if (errorsObj) {\n const errors = Object.entries(errorsObj);\n for (var e = 0; e < errors.length; e++) {\n const [field, messages] = errors[e];\n\n const container = form.querySelector(\n `.input-container[data-field=\"${field}\"]`\n );\n\n if (!container) {\n const message = messages\n ? messages[0]\n : \"An unknown error occurred.\";\n setGlobalError(message);\n return;\n }\n\n clearErrors(container);\n for (var m = 0; m < messages.length; m++) {\n setError(container, messages[m]);\n }\n }\n } else {\n setGlobalError(error.message);\n }\n } catch {}\n });\n\n form.addEventListener(\"ajax:success\", () => {\n window.top.postMessage(\"success\", window.PERMITTED_HOST);\n });\n }\n});\n","export async function copyButton() {\n await navigator.clipboard.writeText(this.getAttribute(\"data-copy-text\"));\n}\n\nexport function assignCopyButtons() {\n const buttons = document.querySelectorAll(\"[data-copy-text]\");\n [...buttons].forEach(el => el.addEventListener(\"click\", copyButton));\n}\n","import { clearGlobalErrors, setGlobalError } from \"./validate\";\n\nexport function initStripeForm(stripe) {\n const forms = document.querySelectorAll(\"form[data-remote]\");\n for (var i = 0; i < forms.length; i++) {\n const form = forms[i];\n\n form.setAttribute(\"novalidate\", true);\n\n const getValue = field =>\n document.getElementById(`bank_account_${field}`).value;\n\n // Setting this in a timeout so we can be sure it is the 2nd item to bind\n setTimeout(\n () =>\n form.addEventListener(\"ajax:before\", async (evt, xhr, settings) => {\n evt.preventDefault();\n\n if (form.querySelector(\"p.error\")) return;\n\n const btn = form.querySelector(\"button\");\n btn.disabled = true;\n\n const result = await stripe.createToken(\"bank_account\", {\n country: \"US\",\n currency: \"usd\",\n routing_number: getValue(\"routing_number\"),\n account_number: getValue(\"account_number\"),\n account_holder_name: getValue(\"account_holder_name\"),\n account_holder_type: getValue(\"account_holder_type\")\n });\n btn.disabled = false;\n\n const { error, token } = result;\n\n if (token) {\n window.top.postMessage(\n `success,${token.id}`,\n window.PERMITTED_HOST\n );\n } else if (error) {\n clearGlobalErrors();\n setGlobalError(error.message);\n } else {\n clearGlobalErrors();\n }\n }),\n 1500\n );\n }\n}\n","// NO 3RD PARTY SOFTWARE IN THIS PACK\n// It is intended to be used for \"safe iframes\" which may contain sensitive form elements.\n\nimport \"~/forms/ujs\";\nimport \"~/forms/validate\";\nimport { assignCopyButtons } from \"~/utils/copy\";\nimport { initStripeForm } from \"~/forms/stripe\";\n\nimport axios from \"axios\";\n\n// Observes changes to iframe height and emits to parent\nfunction sendHeightMessage() {\n window.top.postMessage(\n `setHeight,${document.body.offsetHeight}`,\n window.PERMITTED_HOST\n );\n}\nfunction monitorHeight() {\n document.getElementById(\"document-height-listener\").contentWindow.onresize =\n sendHeightMessage;\n}\n\nwindow.axios = axios;\nwindow.initStripeForm = initStripeForm;\nwindow.addEventListener(\"DOMContentLoaded\", sendHeightMessage);\nwindow.addEventListener(\"DOMContentLoaded\", monitorHeight);\nwindow.addEventListener(\"DOMContentLoaded\", assignCopyButtons);\n"],"names":["this"],"mappings":"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"}