{"version":3,"sources":["webpack:///./app/javascript/CustomRemote.js","webpack:///./app/javascript/fetchHelpers.js"],"names":["CustomRemote","node","addEventListener","e","a","preventDefault","href","getAttribute","startPreloading","method","fetchXhr","error","data","stopPreloading","showStatusmessage","translations","getLanguage","errors","eval","toUpperCase","window","_gaq","push","fetchJson","fetch","response","ok","Error","status","statusText","json","url","options","meta","document","querySelector","headers","accept","undefined","text","loadScript","Promise","resolve","reject","script","createElement","onload","onerror","type","src","body","appendChild"],"mappings":"2qCAMe,SAASA,aAAaC,MACnCA,KAAKC,iBAAiB,QAAtB,8GAA+B,iBAAOC,GAAP,+HAAAC,EAAA,uFAC7BD,EAAEE,iBAEIC,KAAOL,KAAKM,aAAa,aAC1BD,KAJwB,sEAM7BE,qDAEMC,OAASR,KAAKM,aAAa,gBAAkB,MARtB,gBAUCG,qDAASJ,KAAM,CAAEG,gBAVlB,wCAUrBE,MAVqB,gBAUrBA,MAAOC,KAVc,gBAUdA,KAEfC,sDAEIF,MAdyB,+BAe3BG,sDAAkBC,6CAAaC,gDAAeC,OAA5B,QAA4C,SAfnC,kCAmB7BC,KAAKN,MACwB,QAAzBH,OAAOU,gBAAyB,qBAAAC,OAAOC,YAAP,+BAAaC,KAAK,CAAC,iBAAkBhB,QApB5C,yDAA/B,4D,6oCCPK,SAAeiB,IAAtB,+B,kCAAO,wCAAAnB,EAAA,+EAEoBoB,MAAK,WAAL,KAFpB,WAEGC,EAFH,QAIWC,GAJX,yCAIsB,CAAEf,MAAO,IAAIgB,MAAJ,UAAaF,EAASG,OAAtB,YAAgCH,EAASI,aAAeJ,aAJvF,mBAMMA,EANN,SAM4BA,EAASK,OANrC,6CAMML,SANN,KAMgBb,KANhB,kEAQI,CAAED,MAAK,OARX,0D,wBAYA,SAAeD,EAAtB,kC,kCAAO,WAAwBqB,GAAxB,+BAAA3B,EAAA,6DAA6B4B,EAA7B,+BAAuC,GAAvC,SAEGC,EAAOC,SAASC,cAAc,yBAFjC,SAIoBX,MAAMO,EAAD,OACvBC,GADuB,IAE1BI,QAAQ,EAAD,CACLC,OAAQ,yBACR,eAAgBJ,EAAOA,EAAK1B,aAAa,gBAAa+B,EACtD,mBAAoB,kBAChBN,EAAQI,SAAW,OAVxB,WAIGX,EAJH,QAcWC,GAdX,yCAcsB,CAAEf,MAAO,IAAIgB,MAAJ,UAAaF,EAASG,OAAtB,YAAgCH,EAASI,aAAeJ,aAdvF,mBAgBMA,EAhBN,UAgB4BA,EAASc,OAhBrC,8CAgBMd,SAhBN,KAgBgBb,KAhBhB,kEAkBI,CAAED,MAAK,OAlBX,0D,wBAsBA,SAAS6B,EAAWT,GACzB,OAAO,IAAIU,SAAQ,SAACC,EAASC,GAC3B,IAAMC,EAASV,SAASW,cAAc,UACtCD,EAAOE,OAASJ,EAChBE,EAAOG,QAAUJ,EACjBC,EAAOI,KAAO,kBACdJ,EAAOK,IAAMlB,EACbG,SAASgB,KAAKC,YAAYP","file":"js/CustomRemote-e9e5d3a73e9af2989f7c.chunk.js","sourcesContent":["import { startPreloading, stopPreloading } from \"./Preloading\"\nimport { showStatusmessage } from \"./Statusmessage\"\nimport translations from \"./translations\"\nimport { fetchXhr } from \"./fetchHelpers\"\nimport { getLanguage } from \"./i18n\"\n\nexport default function CustomRemote(node) {\n node.addEventListener(\"click\", async (e) => {\n e.preventDefault()\n\n const href = node.getAttribute(\"data-href\")\n if (!href) return\n\n startPreloading()\n\n const method = node.getAttribute(\"data-method\") || \"GET\"\n\n const { error, data } = await fetchXhr(href, { method })\n\n stopPreloading()\n\n if (error) {\n showStatusmessage(translations[getLanguage()].errors.default, \"error\")\n return\n }\n\n eval(data)\n if (method.toUpperCase() === \"GET\") window._gaq?.push([\"_trackPageview\", href])\n })\n}\n","export async function fetchJson(...params) {\n try {\n const response = await fetch(...params)\n\n if (!response.ok) return { error: new Error(`${response.status} ${response.statusText}`), response }\n\n return { response, data: await response.json() }\n } catch (error) {\n return { error }\n }\n}\n\nexport async function fetchXhr(url, options = {}) {\n try {\n const meta = document.querySelector(\"meta[name=csrf-token]\")\n\n const response = await fetch(url, {\n ...options,\n headers: {\n accept: \"application/javascript\",\n \"x-csrf-token\": meta ? meta.getAttribute(\"content\") : undefined,\n \"x-requested-with\": \"XMLHttpRequest\",\n ...(options.headers || {}),\n }\n })\n\n if (!response.ok) return { error: new Error(`${response.status} ${response.statusText}`), response }\n\n return { response, data: await response.text() }\n } catch (error) {\n return { error }\n }\n}\n\nexport function loadScript(url) {\n return new Promise((resolve, reject) => {\n const script = document.createElement(\"script\")\n script.onload = resolve\n script.onerror = reject\n script.type = \"text/javascript\"\n script.src = url\n document.body.appendChild(script)\n })\n}\n\n"],"sourceRoot":""}