{"version":3,"sources":["webpack:///./modules/Form.ts"],"names":["__webpack_require__","r","__webpack_exports__","d","prependPriceToGreyedArea","isScriptTagRendered","direction","document","querySelector","getAttribute","Form","element","_this","this","droplistWrapper","onAlpacaReady","e","then","bind","module","default","removeEventListener","addEventListener","event","detail","isValid","classList","remove","addFormLoader","Array","from","querySelectorAll","filter","node","dataset","moduleInitialized","forEach","choicesDropdown","Promise","all","initRatingAndReviewsForm","increaseHeight","setup","selector","prototype","submitBtn","add","target","targetHeight","clientHeight","newHeight","scrollHeight","style","height","toString","confirmOrder","orderTotalPrice","innerHTML","insertAdjacentHTML","script","length"],"mappings":"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","file":"./modules/Form.3cd7fe6a.js","sourcesContent":["\r\nconst moduleSelector = '.cp-alpaca-form[data-module=\"Form\"]';\r\n\r\nconst direction = document.querySelector('html').getAttribute('dir');\r\n\r\nif (direction == 'ltr') {\r\n require('../../less/modules/forms-ltr.less');\r\n\r\n} else {\r\n require('../../less/modules/forms-rtl.less');\r\n}\r\n\r\nexport default class Form {\r\n orderTotalPrice;\r\n confirmOrder: HTMLElement;\r\n submitBtn;\r\n\r\n static setup(selector: string = moduleSelector): void {\r\n Array.from(document.querySelectorAll(selector)).filter((node: HTMLElement) => !node.dataset.moduleInitialized).forEach((element: HTMLElement) => {\r\n new Form(element);\r\n element.dataset.moduleInitialized = 'true';\r\n });\r\n }\r\n\r\n constructor(public element: HTMLElement) {\r\n const droplistWrapper = document.querySelector('.droplist-wrapper');\r\n \r\n const onAlpacaReady = () => {\r\n\r\n if(document.querySelector('.summary-cart')){\r\n const PaymentSummary = () => import ('./PaymentSummary');\r\n PaymentSummary().then((module) => new module.default(this.element))\r\n } \r\n\r\n document.removeEventListener('alpaca:forms:ready', onAlpacaReady, false);\r\n }\r\n\r\n document.addEventListener('alpaca:forms:ready', onAlpacaReady, false);\r\n\r\n document.addEventListener('alpaca:forms:form-validated', (e) => {\r\n const validForm = (event).detail.isValid;\r\n if (validForm == false) {\r\n this.element.classList.remove(\"loader\");\r\n }\r\n })\r\n\r\n document.addEventListener('alpaca:forms:ready', () => {\r\n this.addFormLoader();\r\n if (droplistWrapper || this.element.querySelector('select')) {\r\n const SelectChoices = () => import (\"./SelectChoices\");\r\n SelectChoices().then((module) => new module.default(this.element))\r\n\r\n Array.from(document.querySelectorAll(\".choices__list--dropdown .choices__list\")).filter((node: HTMLElement) => !node.dataset.moduleInitialized).forEach((element: HTMLElement) => {\r\n const choicesDropdown = element;\r\n if (choicesDropdown) {\r\n const ScrollBar = () => import ('../modules/scrollBar');\r\n ScrollBar().then((module) => new module.default(choicesDropdown))\r\n }\r\n });\r\n }\r\n const FormAnimation = () => import ('./FormAnimation');\r\n FormAnimation().then((module) => new module.default(this.element))\r\n prependPriceToGreyedArea();\r\n this.initRatingAndReviewsForm();\r\n });\r\n\r\n this.initRatingAndReviewsForm();\r\n\r\n if (droplistWrapper || this.element.querySelector('select')) {\r\n const SelectChoices = () => import (\"./SelectChoices\");\r\n SelectChoices().then((module) => new module.default(this.element))\r\n Array.from(document.querySelectorAll(\".choices__list--dropdown .choices__list\")).filter((node: HTMLElement) => !node.dataset.moduleInitialized).forEach((element: HTMLElement) => {\r\n const choicesDropdown = element;\r\n if (choicesDropdown) {\r\n const ScrollBar = () => import ('../modules/scrollBar');\r\n ScrollBar().then((module) => new module.default(choicesDropdown))\r\n }\r\n });\r\n }\r\n\r\n const FormAnimation = () => import ('./FormAnimation');\r\n FormAnimation().then((module) => new module.default(this.element))\r\n prependPriceToGreyedArea();\r\n\r\n\r\n if (this.element.querySelector('textarea')) {\r\n this.element.querySelector('textarea').addEventListener('keyup', (e) => {\r\n this.increaseHeight(e);\r\n })\r\n }\r\n\r\n this.addFormLoader();\r\n }\r\n\r\n initRatingAndReviewsForm(){\r\n const ratingAndReviewsForm = this.element.querySelector(\".droplist.ranking\"); // this.element.querySelector(\"form\").getAttribute(\"data-name\") === \"Ratings and Reviews\"; -> Best way is to check if form contains Rating&Review as data-name\r\n if(ratingAndReviewsForm){\r\n const RatingAndReviews = () => import ('./RatingAndReviews');\r\n RatingAndReviews().then((module) => new module.default(this.element))\r\n }\r\n }\r\n\r\n private addFormLoader() {\r\n this.submitBtn = this.element.querySelector(\".btn\");\r\n if (this.submitBtn) {\r\n this.submitBtn.addEventListener('click', () => {\r\n if (!this.element.querySelector(\".validation .error\") && !document.querySelector(\".payment-widget\")) {\r\n this.element.classList.add(\"loader\");\r\n }\r\n })\r\n }\r\n this.element.classList.remove(\"loader\");\r\n }\r\n private increaseHeight(e) {\r\n const target = e.target;\r\n const targetHeight = target.clientHeight;\r\n const newHeight = target.scrollHeight;\r\n\r\n if (targetHeight < newHeight) {\r\n target.style.height = newHeight.toString() + 'px';\r\n }\r\n }\r\n \r\n\r\n}\r\nexport function prependPriceToGreyedArea() {\r\n const confirmOrder = document.querySelector('.confirm-order');\r\n const orderTotalPrice = document.querySelector('.order-total-price') && document.querySelector('.order-total-price').innerHTML\r\n || document.querySelector(\"[data-amount-to-pay]\") && document.querySelector(\"[data-amount-to-pay]\").getAttribute(\"data-amount-to-pay\");\r\n if (confirmOrder && orderTotalPrice) {\r\n if (!(confirmOrder.querySelector(\".order-total-price\"))) {\r\n confirmOrder.insertAdjacentHTML(\"afterbegin\", `
${orderTotalPrice}`);\r\n }\r\n }\r\n}\r\n\r\nexport function isScriptTagRendered(script: string): boolean {\r\n var exist;\r\n\r\n if (script) {\r\n (document.querySelectorAll(`[src=\"${script}\"]`).length > 0) ? exist = true : exist = false;\r\n } else {\r\n return exist = false;\r\n }\r\n\r\n return exist;\r\n}\r\n\r\n\r\nnew Form.setup();\r\n"],"sourceRoot":""}