{"version":3,"file":"Page.66863150.js","sources":["../../node_modules/csrf-xhr/csrf-xhr.js","../../app/frontend/javascript/Page.js"],"sourcesContent":["(function(xhr) {\n // h/t http://stackoverflow.com/a/19709846/2334666\n var absoluteUrl = /^(?:[a-z]+:)?\\/\\//i;\n\n // h/t http://tosbourn.com/a-fix-for-window-location-origin-in-internet-explorer/\n //\n // Use this instead of location.origin, which is not supported in\n // older browsers. Always do it this way, even when location.origin is\n // available, to ensure consistency across browsers.\n var origin = location.protocol + \"//\" + location.hostname + (location.port ? ':' + location.port: '');\n\n var csrfTokenNode, csrfToken;\n\n try {\n csrfTokenNode = document.head.querySelector('meta[name=\"csrf-token\"]');\n } catch (e){\n // ignore document-based errors\n csrfTokenNode = null;\n }\n\n if ((csrfTokenNode !== null) && (typeof csrfTokenNode.content === \"string\")) {\n csrfToken = csrfTokenNode.content;\n } else {\n csrfToken = null;\n }\n\n // Patch XMLHttpRequest\n var originalOpen = xhr.open;\n\n xhr.open = function(method, url) {\n // If we're on http://example.com and the URL starts with\n // http://example.com then we're sending to a local origin.\n // Also if we're sending to a relative URL, that's also a local origin.\n var isLocalOrigin = url.indexOf(origin) === 0 || !absoluteUrl.test(url);\n\n // Call open() before attempting to set headers; if we call\n // setRequestHeader() before the xhr is in the OPENED state,\n // it will throw a runtime exception.\n var originalResult = originalOpen.apply(this, arguments);\n\n if (isLocalOrigin) {\n // Set the X-CSRF-Token header, if possible.\n if (csrfToken === null) {\n console.warn(\"csrf-xhr was unable to add a X-CSRF-Token header to a \" + method + \" to \" + url + \" because when csrf-xhr originally loaded, it could not find a element in the with name=\\\"csrf-token\\\" and a Rails CSRF token in a content attribute.\");\n } else {\n this.setRequestHeader(\"X-CSRF-Token\", csrfToken);\n }\n }\n\n return originalResult;\n };\n})(XMLHttpRequest.prototype);\n","import \"csrf-xhr\";\n\nfunction program(elmApp, containerId, callback) {\n document.addEventListener(\"DOMContentLoaded\", () => {\n const target = document.getElementById(containerId);\n const previousUrl = document.referrer\n const initialState = window.__INITIAL_STATE__;\n const appConfig = window.__APP_CONFIG__;\n const initialNotifications = window.__INITIAL_NOTIFICATIONS__;\n const flags = { ...initialState, ...appConfig, initialNotifications, previousUrl };\n\n delete window.__INITIAL_STATE__;\n delete window.__INITIAL_NOTIFICATIONS__;\n delete window.__APP_CONFIG__;\n\n const app = elmApp.init({\n node: target,\n flags,\n });\n\n startPagePorts(app);\n if (typeof callback === \"function\") callback(app);\n });\n}\n\nfunction startPagePorts(app) {\n if (!app.ports.pageOutbound) return;\n\n app.ports.pageOutbound.subscribe((cmd) => {\n switch (cmd.tag) {\n case \"RequestPreventNavigation\": {\n requestPreventNavigation();\n break;\n }\n\n case \"CancelPreventNavigation\": {\n cancelPreventNavigation();\n break;\n }\n\n case \"AddNotification\": {\n app.ports.pageInbound.send({\n tag: \"GotNotification\",\n notification: cmd.notification,\n });\n }\n\n case \"ReplaceRoute\": {\n history.replaceState({}, \"\", cmd.url);\n }\n\n default: {\n }\n }\n });\n}\n\n// HELPERS\n\nconst requestPreventNavigation = () => {\n window.addEventListener(\"beforeunload\", onBeforeUnload);\n};\n\nconst cancelPreventNavigation = () => {\n window.removeEventListener(\"beforeunload\", onBeforeUnload);\n};\n\nconst onBeforeUnload = (event) => {\n event.preventDefault();\n event.returnValue = \"\";\n};\n\n// EXPORT PUBLIC FUNCTIONS\n\nexport default {\n program,\n};\n"],"names":["xhr","absoluteUrl","origin","csrfTokenNode","csrfToken","originalOpen","method","url","isLocalOrigin","originalResult","program","elmApp","containerId","callback","target","previousUrl","initialState","appConfig","initialNotifications","flags","app","startPagePorts","cmd","requestPreventNavigation","cancelPreventNavigation","onBeforeUnload","event","Page"],"mappings":"CAAC,SAASA,EAAK,CAEX,IAAIC,EAAc,qBAOdC,EAAS,SAAS,SAAW,KAAO,SAAS,UAAY,SAAS,KAAO,IAAM,SAAS,KAAM,IAE9FC,EAAeC,EAEnB,GAAI,CACFD,EAAgB,SAAS,KAAK,cAAc,yBAAyB,CACtE,MAAC,CAEAA,EAAgB,IACjB,CAEIA,IAAkB,MAAU,OAAOA,EAAc,SAAY,SAChEC,EAAYD,EAAc,QAE1BC,EAAY,KAId,IAAIC,EAAeL,EAAI,KAEvBA,EAAI,KAAO,SAASM,EAAQC,EAAK,CAI7B,IAAIC,EAAgBD,EAAI,QAAQL,CAAM,IAAM,GAAK,CAACD,EAAY,KAAKM,CAAG,EAKlEE,EAAiBJ,EAAa,MAAM,KAAM,SAAS,EAEvD,OAAIG,IAEIJ,IAAc,KACd,QAAQ,KAAK,yDAA2DE,EAAS,OAASC,EAAM,kKAAoK,EAEpQ,KAAK,iBAAiB,eAAgBH,CAAS,GAIhDK,CACf,CACA,GAAG,eAAe,SAAS,ECjD3B,SAASC,EAAQC,EAAQC,EAAaC,EAAU,CAC9C,SAAS,iBAAiB,mBAAoB,IAAM,CAClD,MAAMC,EAAS,SAAS,eAAeF,CAAW,EAC5CG,EAAc,SAAS,SACvBC,EAAe,OAAO,kBACtBC,EAAY,OAAO,eACnBC,EAAuB,OAAO,0BAC9BC,EAAQ,CAAE,GAAGH,EAAc,GAAGC,EAAW,qBAAAC,EAAsB,YAAAH,GAErE,OAAO,OAAO,kBACd,OAAO,OAAO,0BACd,OAAO,OAAO,eAEd,MAAMK,EAAMT,EAAO,KAAK,CACtB,KAAMG,EACN,MAAAK,CACN,CAAK,EAEDE,EAAeD,CAAG,EACd,OAAOP,GAAa,YAAYA,EAASO,CAAG,CACpD,CAAG,CACH,CAEA,SAASC,EAAeD,EAAK,CACvB,CAACA,EAAI,MAAM,cAEfA,EAAI,MAAM,aAAa,UAAWE,GAAQ,CACxC,OAAQA,EAAI,IAAG,CACb,IAAK,2BAA4B,CAC/BC,IACA,KACD,CAED,IAAK,0BAA2B,CAC9BC,IACA,KACD,CAED,IAAK,kBACHJ,EAAI,MAAM,YAAY,KAAK,CACzB,IAAK,kBACL,aAAcE,EAAI,YAC5B,CAAS,EAGH,IAAK,eACH,QAAQ,aAAa,CAAE,EAAE,GAAIA,EAAI,GAAG,CAKvC,CACL,CAAG,CACH,CAIA,MAAMC,EAA2B,IAAM,CACrC,OAAO,iBAAiB,eAAgBE,CAAc,CACxD,EAEMD,EAA0B,IAAM,CACpC,OAAO,oBAAoB,eAAgBC,CAAc,CAC3D,EAEMA,EAAkBC,GAAU,CAChCA,EAAM,eAAc,EACpBA,EAAM,YAAc,EACtB,EAIeC,EAAA,CACb,QAAAjB,CACF"}