{"version":3,"sources":["webpack:///./app/javascript/packs/payment.js"],"names":["document","addEventListener","confirmButtons","querySelectorAll","modals","getElementsByClassName","closeButtons","checkoutButtons","entries","index","event","classList","add","Array","prototype","forEach","call","closeButton","remove","checkoutButton","url","csrf","querySelector","getAttribute","formData","FormData","item","saveCardCheck","checked","append","planId","itemId","fetch","method","headers","body","then","response","status","window","location","href","get","reload","json","session","Stripe","key","redirectToCheckout","sessionId","id"],"mappings":"2lDAqEAA,SAASC,iBAAiB,oBArE1B,WACE,IADmB,EACbC,EAAiBF,SAASG,iBAAiB,kCAC3CC,EAASJ,SAASK,uBAAuB,kBACzCC,EAAeN,SAASK,uBAAuB,wBAC/CE,EAAkBP,SAASK,uBAAuB,mBAJrC,IAOgBH,EAAeM,WAP/B,mCAOTC,GAPS,kBAQHR,iBAAiB,SAAS,SAACS,GACvCN,EAAOK,GAAOE,UAAUC,IAAI,iBAFhC,2BAA6D,CAAC,IAAD,OAP1C,8BAcnBC,MAAMC,UAAUC,QAAQC,KAAKV,GAAc,SAACW,EAAaR,GACvDQ,EAAYhB,iBAAiB,SAAS,SAACS,GACrCN,EAAOK,GAAOE,UAAUO,OAAO,mBAhBhB,UAmBQX,GAnBR,yBAmBVY,EAnBU,QAoBjBA,EAAelB,iBAAiB,SAAS,WACvC,IASImB,EATEC,EAAOrB,SAASsB,cAAc,2BAA2BC,aAAa,WACtEC,EAAW,IAAIC,SACfC,EAAOP,EAAeI,aAAa,aACnCI,EAAgB3B,SAASsB,cAAc,cAO7C,OANIK,GACEA,EAAcC,SAChBJ,EAASK,OAAO,YAAaF,EAAcC,SAIvCF,GACN,IAAK,OACH,IAAMI,EAASX,EAAeI,aAAf,eAAoCG,IACnDF,EAASK,OAAOH,EAAMI,GACtBV,EAAG,iBAAaU,EAAb,YACH,MACF,IAAK,UACHN,EAASK,OAAO,OAAQH,GACxBN,EAAM,oBACN,MACF,QACE,IAAMW,EAASZ,EAAeI,aAAf,eAAoCG,IACnDF,EAASK,OAAOH,EAAMK,GACtBX,EAAG,mBAAeM,EAAf,YAAuBK,GAE9BC,MAAMZ,EAAK,CACTa,OAAQ,OACRC,QAAS,CACP,eAAgBb,GAElBc,KAAMX,IAEPY,MAAK,SAASC,GAOb,OANuB,KAAnBA,EAASC,SACXC,OAAOC,SAASC,KAAOJ,EAASH,QAAQQ,IAAI,aAEvB,KAAnBL,EAASC,QACXC,OAAOC,SAASG,SAEXN,EAASO,UAEjBR,MAAK,SAASS,GAEb,OADeC,OAAOD,EAAQE,KAChBC,mBAAmB,CAACC,UAAWJ,EAAQK,YA7C3D,2BAA6C,IAnB1B,oC","file":"js/payment-2366b7410cc1b7abda85.chunk.js","sourcesContent":["function checkout () {\n const confirmButtons = document.querySelectorAll(\"[data-action='confirm-button']\")\n const modals = document.getElementsByClassName('checkout-modal')\n const closeButtons = document.getElementsByClassName('close-checkout-modal')\n const checkoutButtons = document.getElementsByClassName('checkout-button')\n\n // NodeList 用の配列のループ\n for (let [index, confirmButton] of confirmButtons.entries()) {\n confirmButton.addEventListener('click', (event) => {\n modals[index].classList.add('is-active');\n });\n }\n\n // HTMLCollection 用の配列のループ\n Array.prototype.forEach.call(closeButtons, (closeButton, index) => {\n closeButton.addEventListener('click', (event) => {\n modals[index].classList.remove('is-active');\n })\n })\n for (let checkoutButton of checkoutButtons) {\n checkoutButton.addEventListener('click', () => {\n const csrf = document.querySelector(\"meta[name='csrf-token']\").getAttribute(\"content\")\n const formData = new FormData()\n const item = checkoutButton.getAttribute('data-type')\n const saveCardCheck = document.querySelector('#card-save')\n if (saveCardCheck) {\n if (saveCardCheck.checked) {\n formData.append('save_card', saveCardCheck.checked)\n }\n }\n let url\n switch (item) {\n case 'plan':\n const planId = checkoutButton.getAttribute(`data-${item}`)\n formData.append(item, planId)\n url = `/plans/${planId}/confirm`\n break;\n case 'product':\n formData.append('type', item)\n url = '/charges/products'\n break;\n default:\n const itemId = checkoutButton.getAttribute(`data-${item}`)\n formData.append(item, itemId)\n url = `/charges/${item}/${itemId}`\n }\n fetch(url, {\n method: 'POST',\n headers: {\n 'X-CSRF-Token': csrf\n },\n body: formData\n })\n .then(function(response) {\n if (response.status == 403) {\n window.location.href = response.headers.get('location')\n }\n if (response.status == 302) {\n window.location.reload()\n }\n return response.json()\n })\n .then(function(session) {\n const stripe = Stripe(session.key)\n return stripe.redirectToCheckout({sessionId: session.id})\n })\n })\n }\n}\ndocument.addEventListener('DOMContentLoaded', checkout);\n"],"sourceRoot":""}