{"version":3,"file":"DetailsPage_bundle.js","mappings":"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","sources":["webpack://ntcwebsite/./wwwroot/js/utilities/Modal.js","webpack://ntcwebsite/./wwwroot/js/pages/DetailsPage.js","webpack://ntcwebsite/./wwwroot/js/utilities/Cookies.js"],"sourcesContent":["\n\nexport default class Modal {\n constructor({className, header, mainBody , buttons}) {\n \n this.className = className; //put this ad the id for the button to trigger the modal \n this.headerText = header;\n this.body = mainBody;\n this.buttonsList = buttons;\n\n this.render();\n }\n\n template(){\n\n return `
\n
\n
\n
\n \n
\n
\n
${this.headerText}
\n ${this.body}\n
\n ${this.buttonsList && this.buttonsList.length > 0 ? \n `\n `\n : ``}\n
\n
\n
`;\n }; \n\n render() {\n var temp = this.template();\n $(\"body\").append(temp);\n }\n}","import Modal from '../utilities/Modal';\nimport Cookies from '../utilities/Cookies';\n\nvar OptOutCookieName = \"provider-modal-option\";\nvar target;\n\n$(document).ready(() => {\n $(\".cta-btn\").on(\"click\", (e) => {\n e.preventDefault();\n e.stopPropagation();\n target = $(e.currentTarget);\n\n if (!target.hasClass(\"btn-unavailable\")) {\n if (window.ntc.isSignedIn && !window.ntc.isCheckedOut) {\n if (Cookies.get(OptOutCookieName) == null) {\n if ($('#ctaModal').length <= 0) buildCtaModal();\n $('#ctaModal').modal();\n } else {\n checkBudget();\n }\n } else {\n if (!window.ntc.isCheckedOut) {\n window.location.href = window.location.origin + window.ntc.ctaUrl;\n } else {\n continueToProvider();\n }\n }\n }\n });\n});\n\nfunction continueToProvider() {\n addSpinner();\n\n $.get(`/ajax/getData/${window.ntc.libraryKey}/${window.ntc.providerId}/${window.ntc.reserveId}`, function (data) {\n var failed = data.message !== \"Success\";\n\n if (failed) {\n handleError(data.errorCode, data.message);\n } else {\n redirectToProvider(data.lendingPeriod, data.privateAccountId);\n }\n });\n}\n\nfunction checkBudget() {\n var isFakeButton = target.hasClass(\"fake-cta-btn\");\n addSpinner();\n\n // Attempts to make checkout, returns \"Success\" if checkout is successful\n $.get(`/ajax/checkBudget/${window.ntc.libraryKey}/${window.ntc.reserveId}${isFakeButton ? `/mock` : ``}`, function (data) {\n var failed = data.message !== \"Success\";\n\n if (failed) {\n handleError(data.errorCode, data.message);\n } else {\n handleCheckout(data.lendingPeriod, data.privateAccountId);\n }\n });\n}\n\nfunction handleError(errorCode, message) {\n $('#ctaModal').modal('hide');\n removeSpinner();\n target.addClass(\"btn-unavailable\");\n\n switch (errorCode) {\n case \"PatronCardFailedAuthentication\":\n if (message.includes(\"Patron denied by their ILS\")) {\n $(\".error-text\").html(window.ntc.SiteCopy.get(`error.problemWithAccount.${window.ntc.isSchool ? 'school' : 'library'}`));\n } else {\n $(\".error-text\").html(window.ntc.SiteCopy.get(\"error.cardVerification\"));\n }\n break;\n default:\n $(\".error-text\").html(getGenericErrorCopy());\n break;\n }\n\n if (window.dataLayer) {\n window.dataLayer.push({\n \"event\": \"providerUnavailable\",\n \"reason\": `${errorCode}: ${message}`\n });\n }\n\n target.text(window.ntc.SiteCopy.get(\"details.currentlyUnavailable\"));\n\n $(\".cta p\").hide();\n $(\".error-text\").show();\n $(\".error-text\").removeClass(\"d-none\");\n}\n\nfunction getGenericErrorCopy() {\n var line1 = window.ntc.SiteCopy.get(\"error.subHeader\");\n var line2 = window.ntc.SiteCopy.get(\"error.tryAgainLater\");\n var line3 = window.ntc.SiteCopy.get(\"error.issuePersistsLink\");\n\n return `${line1} ${line2} ${line3}`;\n}\n\nfunction handleCheckout(lendingPeriod, privateAccountId) {\n window.ntc.isCheckedOut = true;\n\n if (window.dataLayer) {\n window.dataLayer.push({\n \"event\": \"providerAccess\"\n });\n }\n\n redirectToProvider(lendingPeriod, privateAccountId);\n}\n\nfunction buildCtaModal() {\n var modalParams = {\n className: \"ctaModal\",\n header: `
\n \n \n \n \n
\n
` + window.ntc.SiteCopy.get(\"providerInfoModal.ctaHeader\", { providerName: window.ntc.providerName, dayNum: window.ntc.lendingPeriod }),\n mainBody: `

${window.ntc.SiteCopy.get(\"providerInfoModal.bodyPart1\", { appName: window.ntc.appName, providerName: window.ntc.providerName })}

\n

${window.ntc.SiteCopy.get(\"providerInfoModal.bodyPart2\", { appName: window.ntc.appName, providerName: window.ntc.providerName })}

\n \n `,\n buttons: [``]\n };\n new Modal(modalParams);\n\n $(\"#optOut\").click(function () {\n if (this.checked) {\n Cookies.set(OptOutCookieName, 0, 525960);\n } else {\n Cookies.erase(OptOutCookieName);\n }\n });\n\n $(\"#ctaModal .continue-btn\").on(\"click\", () => {\n checkBudget();\n });\n}\n\nfunction redirectToProvider(lendingPeriod, privateAccountId) {\n window.location.href = window.location.origin + `/ajax/externalAuth/${window.ntc.providerId}/${privateAccountId}?lendingPeriod=${lendingPeriod}&libraryKey=${window.ntc.libraryKey}`;\n}\n\nfunction addSpinner() {\n target.empty();\n target.append(``);\n}\n\nfunction removeSpinner() {\n target.empty(0);\n}\n","export default class Cookies {\n static get(name) {\n let nameEQ = name + \"=\";\n let ca = document.cookie.split(';');\n for (let i = 0; i < ca.length; i++) {\n let c = ca[i];\n while (c.charAt(0) === ' ') c = c.substring(1, c.length);\n if (c.indexOf(nameEQ) === 0) return c.substring(nameEQ.length, c.length);\n }\n return null;\n }\n\n static set(name, value, maxAgeMinutes) {\n if (value === null || typeof (value) === 'undefined') {\n throw Error('No null, undefined, or empty values in cookies please');\n }\n\n document.cookie = `${name}=${value};${maxAgeMinutes ? `Max-Age=${maxAgeMinutes * 1000 * 60};` : ''}path=/`;\n }\n\n static erase(name) {\n Cookies.set(name, '', -1);\n }\n}"],"names":["Modal","_ref","className","header","mainBody","buttons","_classCallCheck","this","headerText","body","buttonsList","render","key","value","concat","window","ntc","SiteCopy","get","length","join","temp","template","$","append","target","Cookies","name","nameEQ","ca","document","cookie","split","i","c","charAt","substring","indexOf","maxAgeMinutes","Error","set","OptOutCookieName","checkBudget","isFakeButton","hasClass","addSpinner","libraryKey","reserveId","data","lendingPeriod","privateAccountId","message","handleError","errorCode","isCheckedOut","dataLayer","push","redirectToProvider","line1","line2","line3","modal","empty","addClass","includes","html","isSchool","text","hide","show","removeClass","location","href","origin","providerId","ready","on","e","modalParams","preventDefault","stopPropagation","currentTarget","isSignedIn","providerName","dayNum","appName","click","checked","erase","ctaUrl"],"sourceRoot":""}