{ "version": 3, "sources": ["../../../node_modules/.pnpm/@rails+ujs@7.1.3-4/node_modules/@rails/ujs/app/assets/javascripts/rails-ujs.esm.js", "../../javascript/lib/navToggle.ts", "../../javascript/lib/responsiveEmbeds.ts", "../../javascript/lib/gridOverlay.ts", "../../javascript/application.ts"], "sourcesContent": ["/*\nUnobtrusive JavaScript\nhttps://github.com/rails/rails/blob/main/actionview/app/javascript\nReleased under the MIT license\n */\nconst linkClickSelector = \"a[data-confirm], a[data-method], a[data-remote]:not([disabled]), a[data-disable-with], a[data-disable]\";\n\nconst buttonClickSelector = {\n selector: \"button[data-remote]:not([form]), button[data-confirm]:not([form])\",\n exclude: \"form button\"\n};\n\nconst inputChangeSelector = \"select[data-remote], input[data-remote], textarea[data-remote]\";\n\nconst formSubmitSelector = \"form:not([data-turbo=true])\";\n\nconst 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\nconst 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\nconst 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\nconst fileInputSelector = \"input[name][type=file]:not([disabled])\";\n\nconst linkDisableSelector = \"a[data-disable-with], a[data-disable]\";\n\nconst buttonDisableSelector = \"button[data-remote][data-disable-with], button[data-remote][data-disable]\";\n\nlet nonce = null;\n\nconst loadCSPNonce = () => {\n const metaTag = document.querySelector(\"meta[name=csp-nonce]\");\n return nonce = metaTag && metaTag.content;\n};\n\nconst cspNonce = () => nonce || loadCSPNonce();\n\nconst m = Element.prototype.matches || Element.prototype.matchesSelector || Element.prototype.mozMatchesSelector || Element.prototype.msMatchesSelector || Element.prototype.oMatchesSelector || Element.prototype.webkitMatchesSelector;\n\nconst matches = function(element, selector) {\n if (selector.exclude) {\n return m.call(element, selector.selector) && !m.call(element, selector.exclude);\n } else {\n return m.call(element, selector);\n }\n};\n\nconst EXPANDO = \"_ujsData\";\n\nconst getData = (element, key) => element[EXPANDO] ? element[EXPANDO][key] : undefined;\n\nconst setData = function(element, key, value) {\n if (!element[EXPANDO]) {\n element[EXPANDO] = {};\n }\n return element[EXPANDO][key] = value;\n};\n\nconst $ = selector => Array.prototype.slice.call(document.querySelectorAll(selector));\n\nconst isContentEditable = function(element) {\n var isEditable = false;\n do {\n if (element.isContentEditable) {\n isEditable = true;\n break;\n }\n element = element.parentElement;\n } while (element);\n return isEditable;\n};\n\nconst csrfToken = () => {\n const meta = document.querySelector(\"meta[name=csrf-token]\");\n return meta && meta.content;\n};\n\nconst csrfParam = () => {\n const meta = document.querySelector(\"meta[name=csrf-param]\");\n return meta && meta.content;\n};\n\nconst CSRFProtection = xhr => {\n const token = csrfToken();\n if (token) {\n return xhr.setRequestHeader(\"X-CSRF-Token\", token);\n }\n};\n\nconst refreshCSRFTokens = () => {\n const token = csrfToken();\n const param = csrfParam();\n if (token && param) {\n return $('form input[name=\"' + param + '\"]').forEach((input => input.value = token));\n }\n};\n\nconst 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\nconst ajax = options => {\n options = prepareOptions(options);\n var xhr = createXHR(options, (function() {\n const response = processResponse(xhr.response != null ? xhr.response : 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) : undefined;\n }));\n if (options.beforeSend && !options.beforeSend(xhr, options)) {\n return false;\n }\n if (xhr.readyState === XMLHttpRequest.OPENED) {\n return xhr.send(options.data);\n }\n};\n\nvar 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 (!(options.dataType in AcceptHeaders)) {\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\nvar createXHR = function(options, done) {\n const 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\nvar processResponse = function(response, type) {\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 const 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 const parser = new DOMParser;\n type = type.replace(/;.+/, \"\");\n try {\n response = parser.parseFromString(response, type);\n } catch (error1) {}\n }\n }\n return response;\n};\n\nconst href = element => element.href;\n\nconst isCrossDomain = function(url) {\n const originAnchor = document.createElement(\"a\");\n originAnchor.href = location.href;\n const 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 (e) {\n return true;\n }\n};\n\nlet preventDefault;\n\nlet {CustomEvent: CustomEvent} = window;\n\nif (typeof CustomEvent !== \"function\") {\n CustomEvent = function(event, params) {\n const 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: preventDefault} = CustomEvent.prototype);\n CustomEvent.prototype.preventDefault = function() {\n const result = preventDefault.call(this);\n if (this.cancelable && !this.defaultPrevented) {\n Object.defineProperty(this, \"defaultPrevented\", {\n get() {\n return true;\n }\n });\n }\n return result;\n };\n}\n\nconst fire = (obj, name, data) => {\n const event = new CustomEvent(name, {\n bubbles: true,\n cancelable: true,\n detail: data\n });\n obj.dispatchEvent(event);\n return !event.defaultPrevented;\n};\n\nconst stopEverything = e => {\n fire(e.target, \"ujs:everythingStopped\");\n e.preventDefault();\n e.stopPropagation();\n e.stopImmediatePropagation();\n};\n\nconst delegate = (element, selector, eventType, handler) => element.addEventListener(eventType, (function(e) {\n let {target: target} = e;\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 e.stopPropagation();\n }\n}));\n\nconst toArray = e => Array.prototype.slice.call(e);\n\nconst serializeElement = (element, additionalParam) => {\n let inputs = [ element ];\n if (matches(element, \"form\")) {\n inputs = toArray(element.elements);\n }\n const 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 toArray(input.options).forEach((function(option) {\n if (option.selected) {\n 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 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) {\n return `${encodeURIComponent(param.name)}=${encodeURIComponent(param.value)}`;\n } else {\n return param;\n }\n })).join(\"&\");\n};\n\nconst formElements = (form, selector) => {\n if (matches(form, \"form\")) {\n return toArray(form.elements).filter((el => matches(el, selector)));\n } else {\n return toArray(form.querySelectorAll(selector));\n }\n};\n\nconst handleConfirmWithRails = rails => function(e) {\n if (!allowAction(this, rails)) {\n stopEverything(e);\n }\n};\n\nconst confirm = (message, element) => window.confirm(message);\n\nvar allowAction = function(element, rails) {\n let callback;\n const message = element.getAttribute(\"data-confirm\");\n if (!message) {\n return true;\n }\n let 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\nconst handleDisabledElement = function(e) {\n const element = this;\n if (element.disabled) {\n stopEverything(e);\n }\n};\n\nconst enableElement = e => {\n let 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 (isContentEditable(element)) {\n return;\n }\n if (matches(element, linkDisableSelector)) {\n return enableLinkElement(element);\n } else if (matches(element, buttonDisableSelector) || matches(element, formEnableSelector)) {\n return enableFormElement(element);\n } else if (matches(element, formSubmitSelector)) {\n return enableFormElements(element);\n }\n};\n\nconst disableElement = e => {\n const element = e instanceof Event ? e.target : e;\n if (isContentEditable(element)) {\n return;\n }\n if (matches(element, linkDisableSelector)) {\n return disableLinkElement(element);\n } else if (matches(element, buttonDisableSelector) || matches(element, formDisableSelector)) {\n return disableFormElement(element);\n } else if (matches(element, formSubmitSelector)) {\n return disableFormElements(element);\n }\n};\n\nvar disableLinkElement = function(element) {\n if (getData(element, \"ujs:disabled\")) {\n return;\n }\n const 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\nvar enableLinkElement = function(element) {\n const 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\nvar disableFormElements = form => formElements(form, formDisableSelector).forEach(disableFormElement);\n\nvar disableFormElement = function(element) {\n if (getData(element, \"ujs:disabled\")) {\n return;\n }\n const 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\nvar enableFormElements = form => formElements(form, formEnableSelector).forEach((element => enableFormElement(element)));\n\nvar enableFormElement = function(element) {\n const 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\nvar isXhrRedirect = function(event) {\n const xhr = event.detail ? event.detail[0] : undefined;\n return xhr && xhr.getResponseHeader(\"X-Xhr-Redirect\");\n};\n\nconst handleMethodWithRails = rails => function(e) {\n const link = this;\n const method = link.getAttribute(\"data-method\");\n if (!method) {\n return;\n }\n if (isContentEditable(this)) {\n return;\n }\n const href = rails.href(link);\n const csrfToken$1 = csrfToken();\n const csrfParam$1 = csrfParam();\n const form = document.createElement(\"form\");\n let formContent = ``;\n if (csrfParam$1 && csrfToken$1 && !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 stopEverything(e);\n};\n\nconst isRemote = function(element) {\n const value = element.getAttribute(\"data-remote\");\n return value != null && value !== \"false\";\n};\n\nconst handleRemoteWithRails = rails => function(e) {\n let data, method, url;\n const 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 if (isContentEditable(element)) {\n fire(element, \"ajax:stopped\");\n return false;\n }\n const withCredentials = element.getAttribute(\"data-with-credentials\");\n const dataType = element.getAttribute(\"data-type\") || \"script\";\n if (matches(element, formSubmitSelector)) {\n const button = getData(element, \"ujs:submit-button\");\n method = getData(element, \"ujs:submit-button-formmethod\") || element.getAttribute(\"method\") || \"get\";\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, buttonClickSelector) || matches(element, 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(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(...args) {\n return fire(element, \"ajax:success\", args);\n },\n error(...args) {\n return fire(element, \"ajax:error\", args);\n },\n complete(...args) {\n return fire(element, \"ajax:complete\", args);\n },\n crossDomain: isCrossDomain(url),\n withCredentials: withCredentials != null && withCredentials !== \"false\"\n });\n stopEverything(e);\n};\n\nconst formSubmitButtonClick = function(e) {\n const button = this;\n const {form: form} = button;\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\nconst preventInsignificantClick = function(e) {\n const link = this;\n const method = (link.getAttribute(\"data-method\") || \"GET\").toUpperCase();\n const data = link.getAttribute(\"data-params\");\n const metaClick = e.metaKey || e.ctrlKey;\n const insignificantMetaClick = metaClick && method === \"GET\" && !data;\n const nonPrimaryMouseClick = e.button != null && e.button !== 0;\n if (nonPrimaryMouseClick || insignificantMetaClick) {\n e.stopImmediatePropagation();\n }\n};\n\nconst Rails = {\n $: $,\n ajax: ajax,\n buttonClickSelector: buttonClickSelector,\n buttonDisableSelector: buttonDisableSelector,\n confirm: confirm,\n cspNonce: cspNonce,\n csrfToken: csrfToken,\n csrfParam: csrfParam,\n CSRFProtection: CSRFProtection,\n delegate: delegate,\n disableElement: disableElement,\n enableElement: enableElement,\n fileInputSelector: fileInputSelector,\n fire: fire,\n formElements: formElements,\n formEnableSelector: formEnableSelector,\n formDisableSelector: formDisableSelector,\n formInputClickSelector: formInputClickSelector,\n formSubmitButtonClick: formSubmitButtonClick,\n formSubmitSelector: formSubmitSelector,\n getData: getData,\n handleDisabledElement: handleDisabledElement,\n href: href,\n inputChangeSelector: inputChangeSelector,\n isCrossDomain: isCrossDomain,\n linkClickSelector: linkClickSelector,\n linkDisableSelector: linkDisableSelector,\n loadCSPNonce: loadCSPNonce,\n matches: matches,\n preventInsignificantClick: preventInsignificantClick,\n refreshCSRFTokens: refreshCSRFTokens,\n serializeElement: serializeElement,\n setData: setData,\n stopEverything: stopEverything\n};\n\nconst handleConfirm = handleConfirmWithRails(Rails);\n\nRails.handleConfirm = handleConfirm;\n\nconst handleMethod = handleMethodWithRails(Rails);\n\nRails.handleMethod = handleMethod;\n\nconst handleRemote = handleRemoteWithRails(Rails);\n\nRails.handleRemote = handleRemote;\n\nconst start = function() {\n if (window._rails_loaded) {\n throw new Error(\"rails-ujs has already been loaded!\");\n }\n window.addEventListener(\"pageshow\", (function() {\n $(formEnableSelector).forEach((function(el) {\n if (getData(el, \"ujs:disabled\")) {\n enableElement(el);\n }\n }));\n $(linkDisableSelector).forEach((function(el) {\n if (getData(el, \"ujs:disabled\")) {\n enableElement(el);\n }\n }));\n }));\n delegate(document, linkDisableSelector, \"ajax:complete\", enableElement);\n delegate(document, linkDisableSelector, \"ajax:stopped\", enableElement);\n delegate(document, buttonDisableSelector, \"ajax:complete\", enableElement);\n delegate(document, buttonDisableSelector, \"ajax:stopped\", enableElement);\n delegate(document, linkClickSelector, \"click\", preventInsignificantClick);\n delegate(document, linkClickSelector, \"click\", handleDisabledElement);\n delegate(document, linkClickSelector, \"click\", handleConfirm);\n delegate(document, linkClickSelector, \"click\", disableElement);\n delegate(document, linkClickSelector, \"click\", handleRemote);\n delegate(document, linkClickSelector, \"click\", handleMethod);\n delegate(document, buttonClickSelector, \"click\", preventInsignificantClick);\n delegate(document, buttonClickSelector, \"click\", handleDisabledElement);\n delegate(document, buttonClickSelector, \"click\", handleConfirm);\n delegate(document, buttonClickSelector, \"click\", disableElement);\n delegate(document, buttonClickSelector, \"click\", handleRemote);\n delegate(document, inputChangeSelector, \"change\", handleDisabledElement);\n delegate(document, inputChangeSelector, \"change\", handleConfirm);\n delegate(document, inputChangeSelector, \"change\", handleRemote);\n delegate(document, formSubmitSelector, \"submit\", handleDisabledElement);\n delegate(document, formSubmitSelector, \"submit\", handleConfirm);\n delegate(document, formSubmitSelector, \"submit\", handleRemote);\n delegate(document, formSubmitSelector, \"submit\", (e => setTimeout((() => disableElement(e)), 13)));\n delegate(document, formSubmitSelector, \"ajax:send\", disableElement);\n delegate(document, formSubmitSelector, \"ajax:complete\", enableElement);\n delegate(document, formInputClickSelector, \"click\", preventInsignificantClick);\n delegate(document, formInputClickSelector, \"click\", handleDisabledElement);\n delegate(document, formInputClickSelector, \"click\", handleConfirm);\n delegate(document, formInputClickSelector, \"click\", formSubmitButtonClick);\n document.addEventListener(\"DOMContentLoaded\", refreshCSRFTokens);\n document.addEventListener(\"DOMContentLoaded\", loadCSPNonce);\n return window._rails_loaded = true;\n};\n\nRails.start = start;\n\nif (typeof jQuery !== \"undefined\" && jQuery && jQuery.ajax) {\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\nexport { Rails as default };\n", "function ready(callback: () => void) {\n if (document.readyState !== \"loading\") {\n callback();\n } else {\n document.addEventListener(\"DOMContentLoaded\", callback);\n }\n}\n\nexport default function navToggle() {\n ready(() => {\n const header = document.querySelector(\"header\");\n const button = header.querySelector(\".nav-toggle\");\n\n if (button) {\n button.addEventListener(\"click\", (evt: Event) => {\n evt.preventDefault();\n header.classList.toggle(\"show-nav\");\n });\n }\n });\n}\n", "const selectors = [\n 'iframe[src*=\"bandcamp.com\"]',\n 'iframe[src*=\"player.vimeo.com\"]',\n 'iframe[src*=\"youtube.com\"]',\n 'iframe[src*=\"youtube-nocookie.com\"]',\n 'iframe[src*=\"spotify.com\"]',\n 'iframe[src*=\"kickstarter.com\"][src*=\"video.html\"]'\n];\n\nfunction readyHandler(fn: () => void) {\n if (\n document.readyState === \"complete\" ||\n document.readyState === \"interactive\"\n ) {\n setTimeout(fn, 1);\n } else {\n document.addEventListener(\"DOMContentLoaded\", fn);\n }\n}\n\nfunction wrapEmbed(embed: HTMLElement): HTMLElement {\n const parent = embed.parentNode as HTMLElement;\n\n // Recycle the existing container if the embed is already responsive.\n if (\n parent &&\n parent.tagName === \"DIV\" &&\n parent.childNodes.length === 1 &&\n parent.style.position === \"relative\"\n ) {\n return parent;\n }\n\n const wrapper = document.createElement(\"div\");\n if (parent.tagName === \"P\") {\n parent.parentNode.replaceChild(wrapper, parent);\n } else {\n parent.replaceChild(wrapper, embed);\n }\n wrapper.appendChild(embed);\n return wrapper;\n}\n\nfunction applyEmbed(embed: HTMLElement) {\n const parent = embed.parentNode as HTMLElement;\n\n if (parent && parent.classList.contains(\"responsive-embed\")) {\n return;\n }\n\n const width = embed.offsetWidth;\n const height = embed.offsetHeight;\n const ratio = height / width;\n const wrapper = wrapEmbed(embed);\n\n wrapper.classList.add(\"responsive-embed\");\n wrapper.style.position = \"relative\";\n wrapper.style.width = \"100%\";\n wrapper.style.paddingTop = \"0\";\n wrapper.style.paddingBottom = `${ratio * 100}%`;\n\n embed.style.position = \"absolute\";\n embed.style.width = \"100%\";\n embed.style.height = \"100%\";\n embed.style.top = \"0\";\n embed.style.left = \"0\";\n}\n\nexport default function responsiveEmbeds() {\n readyHandler(() => {\n document.querySelectorAll(selectors.join(\",\")).forEach(applyEmbed);\n });\n}\n", "function ready(callback: () => void) {\n if (document.readyState !== \"loading\") {\n callback();\n } else {\n document.addEventListener(\"DOMContentLoaded\", callback);\n }\n}\n\nfunction applyGrid() {\n let showGrid = false;\n const gridOverlay = document.querySelector(\".grid-overlay\");\n\n const setState = (newState: boolean) => {\n showGrid = newState;\n\n if (newState) {\n window.localStorage.setItem(\"showGrid\", \"true\");\n gridOverlay.classList.add(\"grid-overlay--active\");\n } else {\n window.localStorage.removeItem(\"showGrid\");\n gridOverlay.classList.remove(\"grid-overlay--active\");\n }\n };\n\n if (gridOverlay) {\n setState(window.localStorage.getItem(\"showGrid\") == \"true\");\n\n // Keyboard toggle\n document.addEventListener(\"keyup\", (evt: KeyboardEvent) => {\n if (evt.ctrlKey && evt.which == 71) {\n setState(!showGrid);\n }\n });\n }\n}\n\nexport default function gridOverlay() {\n ready(applyGrid);\n}\n", "// Entry point for the build script in your package.json\n\n// Rails\nimport Rails from \"@rails/ujs\";\nRails.start();\n\n// Nav toggle\nimport navToggle from \"./lib/navToggle\";\nnavToggle();\n\n// Responsive embeds\nimport responsiveEmbeds from \"./lib/responsiveEmbeds\";\nresponsiveEmbeds();\n\n// Grid overlay\nimport gridOverlay from \"./lib/gridOverlay\";\ngridOverlay();\n"], "mappings": "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", "names": ["linkClickSelector", "buttonClickSelector", "inputChangeSelector", "formSubmitSelector", "formInputClickSelector", "formDisableSelector", "formEnableSelector", "fileInputSelector", "linkDisableSelector", "buttonDisableSelector", "nonce", "loadCSPNonce", "metaTag", "cspNonce", "m", "matches", "element", "selector", "EXPANDO", "getData", "key", "setData", "value", "$", "isContentEditable", "isEditable", "csrfToken", "meta", "csrfParam", "CSRFProtection", "xhr", "token", "refreshCSRFTokens", "param", "input", "AcceptHeaders", "ajax", "options", "prepareOptions", "createXHR", "response", "processResponse", "done", "type", "error", "script", "parser", "error1", "href", "isCrossDomain", "url", "originAnchor", "urlAnchor", "e", "preventDefault", "CustomEvent", "event", "params", "evt", "result", "fire", "obj", "name", "data", "stopEverything", "delegate", "eventType", "handler", "target", "toArray", "serializeElement", "additionalParam", "inputs", "option", "formElements", "form", "el", "handleConfirmWithRails", "rails", "allowAction", "confirm", "message", "callback", "answer", "handleDisabledElement", "enableElement", "isXhrRedirect", "enableLinkElement", "enableFormElement", "enableFormElements", "disableElement", "disableLinkElement", "disableFormElement", "disableFormElements", "replacement", "originalText", "handleMethodWithRails", "link", "method", "csrfToken$1", "csrfParam$1", "formContent", "isRemote", "handleRemoteWithRails", "withCredentials", "dataType", "button", "args", "formSubmitButtonClick", "preventInsignificantClick", "insignificantMetaClick", "Rails", "handleConfirm", "handleMethod", "handleRemote", "start", "originalOptions", "ready", "callback", "navToggle", "header", "button", "evt", "selectors", "readyHandler", "fn", "wrapEmbed", "embed", "parent", "wrapper", "applyEmbed", "width", "ratio", "responsiveEmbeds", "ready", "callback", "applyGrid", "showGrid", "gridOverlay", "setState", "newState", "evt", "Rails", "navToggle", "responsiveEmbeds", "gridOverlay"] }