{"version":3,"file":"js/8452.2f13ddab.js","mappings":"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","sources":["webpack://main/./src/components/banners/Form.vue","webpack://main/./src/components/banners/Form.vue?db54","webpack://main/./src/components/banners/FormModal.vue","webpack://main/./src/components/banners/FormModal.vue?ab26","webpack://main/./src/components/banners/BannerMain.vue","webpack://main/./src/components/banners/BannerMain.vue?1272"],"sourcesContent":["<template>\r\n <form class=\"form-banner w-100 h-100\">\r\n <div class=\"thanks h-100 d-flex align-items-center justify-content-center\" v-if=\"state.showThanksMessage\">\r\n <div>\r\n <h2 class=\"text-secondary mb-5 text-center\">{{successFormMessage?.title}}</h2>\r\n <div v-html=\"successFormMessage?.description\" class=\"text-center\"/>\r\n </div>\r\n </div>\r\n <div v-if=\"!state.showThanksMessage\" class=\"row\">\r\n <div class=\"col-12 col-md-6\">\r\n <label for=\"firstName\">{{form.firstName.label}}</label>\r\n <Input\r\n v-model=\"state.firstName\"\r\n :warning=\"v$.firstName.$error\"\r\n :placeholder=\"form.firstName.placeholder\"\r\n name=\"firstName\"\r\n id=\"firstName\"\r\n />\r\n <span v-if=\"v$.firstName.$error\" class=\"d-inline-block mt-1 text-secondary\">{{ v$.firstName.$errors[0].$message }}</span>\r\n </div>\r\n <div class=\"col-12 col-md-6\">\r\n <label>{{form.lastName.label}}</label>\r\n <Input\r\n v-model=\"state.lastName\"\r\n :placeholder=\"form.lastName.placeholder\"\r\n :warning=\"v$.lastName.$error\"\r\n />\r\n <span v-if=\"v$.lastName.$error\" class=\"d-inline-block mt-1 text-secondary\">{{ v$.lastName.$errors[0].$message }}</span>\r\n </div>\r\n <div class=\"col-12 col-md-6\">\r\n <label>{{form.email.label}}</label>\r\n <Input\r\n v-model=\"state.email\"\r\n :placeholder=\"form.email.placeholder\"\r\n :warning=\"v$.email.$error\"\r\n />\r\n <span v-if=\"v$.email.$error\" class=\"d-inline-block mt-1 text-secondary\">{{ v$.email.$errors[0].$message }}</span>\r\n </div>\r\n <div class=\"col-12 col-md-6\">\r\n <label>{{form.phoneNumber.label}}</label>\r\n <Input\r\n v-model=\"state.phone\"\r\n :placeholder=\"form.phoneNumber.placeholder\"\r\n :warning=\"v$.phone.$error\"\r\n />\r\n <span v-if=\"v$.phone.$error\" class=\"d-inline-block mt-1 text-secondary\">{{ v$.phone.$errors[0].$message }}</span>\r\n </div>\r\n <div class=\"col-12 d-flex flex-column\">\r\n <label>{{form.company.label}}</label>\r\n <Input\r\n v-model=\"state.company\"\r\n :placeholder=\"form.company.placeholder\"\r\n :warning=\"v$.company.$error\"\r\n />\r\n <span v-if=\"v$.company.$error\" class=\"d-inline-block mt-1 text-secondary\">{{ v$.company.$errors[0].$message }}</span>\r\n </div>\r\n <div class=\"col-12 col-md-6\">\r\n <label>{{form.city.label}}</label>\r\n <GMapAutocomplete\r\n :placeholder=\"form.city.placeholder\"\r\n @place_changed=\"(location) => handleLocation(state, location, false, false, usaStates,canadaStates, false)\"\r\n :class=\"{\r\n 'item-danger': v$.city.$error,\r\n 'active': state.isActive && !v$.city.$error\r\n }\"\r\n class=\"input autocomplete-input\"\r\n :options=\"state.autocompleteOptions\"\r\n :value=\"state.city\"\r\n @input=\"(e) => handleAutocomplete(state, e)\"\r\n @focus=\"() => changeInputStatus(state)\"\r\n @blur=\"() => changeInputStatus(state)\"\r\n >\r\n </GMapAutocomplete>\r\n <span v-if=\"v$.city.$error\" class=\"d-inline-block mt-1 text-secondary\">{{ v$.city.$errors[0].$message }}</span>\r\n </div>\r\n <div class=\"col-12 col-md-6\">\r\n <label>{{form.state.label}}</label>\r\n <v-select\r\n :options=\"state.stateOptions\"\r\n :selectable=\"o => !o.heading\"\r\n class=\"select-standard\"\r\n :searchable=\"false\"\r\n :placeholder=\"form.state.placeholder\"\r\n v-model=\"state.state\">\r\n <template v-slot:option=\"option\">\r\n <span v-if=\"option.heading\" class=\"fw-bold\">{{ option.heading }}</span>\r\n <span v-else class=\"ms-3\">{{ option.label }}</span>\r\n </template>\r\n </v-select>\r\n </div>\r\n <div class=\"col-12\">\r\n <label>{{form.inquiry.label}}</label>\r\n <v-select\r\n :options=\"state.inquiry\"\r\n class=\"select-standard\"\r\n :searchable=\"false\"\r\n :placeholder=\"form.inquiry.placeholder\"\r\n v-model=\"state.selectedInquiry\"\r\n />\r\n </div>\r\n <div class=\"col-12 d-flex align-items-center my-3\">\r\n <Checkbox v-model:checked=\"state.subscribeEmail\" :id=\"getCheckboxId()\" class=\"me-2 bg-white\"/>\r\n <label :for=\"getCheckboxId()\" class=\"user-select-none fw-normal form-label-mailing\">{{form.checkbox}}</label>\r\n </div>\r\n <div class=\"col-12 mb-0\">\r\n <ButtonRed\r\n :loading=\"isLoading\"\r\n :disabled=\"isLoading\"\r\n :text=\"form.button.text\"\r\n class=\"w-100\"\r\n @click=\"submitForm\"\r\n />\r\n </div>\r\n </div>\r\n </form>\r\n</template>\r\n\r\n<script>\r\nimport Input from '@/components/common/Input'\r\nimport Select from \"@/components/common/Select\";\r\nimport Checkbox from \"@/components/common/Checkbox\";\r\nimport ButtonRed from \"@/components/common/ButtonRed\";\r\nimport {computed, reactive, watch} from \"vue\";\r\nimport { useVuelidate } from '@vuelidate/core'\r\nimport {bannerValidationOptions, formatPhoneNumber} from \"@/utils/validators\";\r\nimport {useReCaptcha} from \"vue-recaptcha-v3\";\r\nimport useLoadData from \"@/composables/useLoadData\";\r\nimport {\r\n handleLocation,\r\n handleSelected,\r\n changeInputStatus,\r\n handleAutocomplete\r\n} from \"@/utils/utils\";\r\nimport {autocompleteOptions} from \"@/config/config\";\r\nimport submitFormToGa from \"@/utils/submitFormToGa\";\r\n\r\nexport default {\r\n components: {ButtonRed, Checkbox, Select, Input},\r\n props: {\r\n successFormMessage: {\r\n title: String,\r\n description: String\r\n },\r\n isModal: Boolean,\r\n form: {\r\n firstName: {\r\n label: String,\r\n placeholder: String\r\n },\r\n lastName: {\r\n label: String,\r\n placeholder: String\r\n },\r\n email: {\r\n label: String,\r\n placeholder: String\r\n },\r\n phoneNumber: {\r\n label: String,\r\n placeholder: String\r\n },\r\n company: {\r\n label: String,\r\n placeholder: String\r\n },\r\n city: {\r\n label: String,\r\n placeholder: String\r\n },\r\n state: {\r\n label: String,\r\n placeholder: String\r\n },\r\n inquiry: {\r\n label: String,\r\n placeholder: String,\r\n options: [String]\r\n },\r\n checkbox: String,\r\n button: {\r\n text: String\r\n },\r\n countries: [\r\n {\r\n name: String,\r\n states: [String]\r\n }\r\n ]\r\n },\r\n },\r\n data(){\r\n return {\r\n handleLocation,\r\n handleSelected,\r\n changeInputStatus,\r\n handleAutocomplete\r\n }\r\n },\r\n setup(props, {emit}){\r\n const { data: formSubmitResponse, fetchData: sendForm, error: submitError, isLoading } = useLoadData()\r\n const { executeRecaptcha, recaptchaLoaded } = useReCaptcha()\r\n const formName = props.form.name\r\n\r\n const source = props.form\r\n\r\n const usa = source.countries.filter(countryObject => countryObject.name === 'USA')[0];\r\n const usaStates = usa.states.map(elem => elem.name)\r\n const canada = source.countries.filter(countryObject => countryObject.name !== 'USA')[0];\r\n const canadaStates = canada.states.map(elem => elem.name)\r\n\r\n const state = reactive({\r\n firstName: '',\r\n lastName: '',\r\n email: '',\r\n phone: '',\r\n testModel: '',\r\n company: '',\r\n state: '',\r\n stateOptions: [{ heading: usa.name },...usaStates, { heading: canada.name },...canadaStates],\r\n city: '',\r\n selectedInquiry: '',\r\n inquiry: props.form.inquiry.options,\r\n subscribeEmail: false,\r\n autocompleteOptions,\r\n showThanksMessage: false,\r\n isActive: false\r\n })\r\n\r\n const recaptcha = async (callback) => {\r\n isLoading.value = true;\r\n const data = {\r\n formName: formName,\r\n fields: [\r\n {name: 'firstName', value: state.firstName},\r\n {name: 'lastName', value: state.lastName},\r\n {name: 'email', value: state.email},\r\n {name: 'phone', value: state.phone},\r\n {name: 'company', value: state.company},\r\n {name: 'city', value: state.city},\r\n {name: 'state', value: state.state},\r\n {name: 'inquiry', value: state.selectedInquiry},\r\n {name: 'subscribeEmail', value: state.subscribeEmail},\r\n ],\r\n }\r\n\r\n // (optional) Wait until recaptcha has been loaded.\r\n await recaptchaLoaded()\r\n\r\n // Execute reCAPTCHA with action \"login\".\r\n const token = await executeRecaptcha('login')\r\n\r\n await sendForm({\r\n url: '/form-submit',\r\n method: 'post',\r\n data: {\r\n ...data,\r\n recaptchaToken: token\r\n }\r\n })\r\n\r\n submitFormToGa(formName);\r\n\r\n if(submitError.value === null) {\r\n state.showThanksMessage = true\r\n }\r\n\r\n }\r\n\r\n let rules = computed(() => bannerValidationOptions);\r\n\r\n const v$ = useVuelidate(rules, state)\r\n\r\n watch(() => state.phone, (newValue) => {\r\n console.log(newValue)\r\n state.phone = formatPhoneNumber(newValue)\r\n })\r\n\r\n return {\r\n v$,\r\n recaptcha,\r\n state,\r\n usaStates,\r\n canadaStates,\r\n isLoading\r\n }\r\n },\r\n methods:{\r\n getCheckboxId(){\r\n return this.$props.isModal ? 'formBannerModalCheckbox': 'formBannerCheckbox'\r\n },\r\n async submitForm(){\r\n await this.v$.$validate()\r\n\r\n if(!this.v$.$error && !this.isLoading) {\r\n this.recaptcha(() => {\r\n this.state.firstName = ''\r\n this.state.lastName = ''\r\n this.state.email = ''\r\n this.state.phone = ''\r\n this.state.company = ''\r\n this.state.city = ''\r\n this.state.state = ''\r\n this.state.selectedInquiry = ''\r\n this.state.subscribeEmail = false\r\n\r\n this.v$.firstName.$reset()\r\n this.v$.lastName.$reset()\r\n this.v$.email.$reset()\r\n this.v$.phone.$reset()\r\n this.v$.company.$reset()\r\n this.v$.city.$reset()\r\n });\r\n }\r\n }\r\n },\r\n}\r\n</script>\r\n","import { render } from \"./Form.vue?vue&type=template&id=a63b1c20\"\nimport script from \"./Form.vue?vue&type=script&lang=js\"\nexport * from \"./Form.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"D:\\\\a\\\\1\\\\s\\\\Host\\\\front-end\\\\node_modules\\\\vue-loader\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","<template>\r\n <div class=\"modal fade form-modal\"\r\n id=\"bannerFormModal\"\r\n data-bs-backdrop=\"static\"\r\n data-bs-keyboard=\"false\"\r\n tabindex=\"-1\"\r\n aria-labelledby=\"bannerFormModalLabel\"\r\n aria-hidden=\"true\">\r\n <div class=\"modal-dialog modal-dialog-centered\">\r\n <div class=\"modal-content\">\r\n <button type=\"button\"\r\n class=\"btn-close position-absolute\"\r\n data-bs-dismiss=\"modal\"\r\n aria-label=\"Close\">\r\n </button>\r\n <div class=\"modal-body py-0\">\r\n <Form :isModal=\"true\"\r\n :form=\"form\"\r\n :successFormMessage=\"successFormMessage\"\r\n @openModal=\"handleSuccessModal\"\r\n :modalClosed=\"modalClosed\"/>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n</template>\r\n\r\n<script>\r\nimport Form from \"@/components/banners/Form\";\r\n\r\nexport default {\r\n components: {Form},\r\n props: {\r\n form: {\r\n firstName: {\r\n label: String,\r\n placeholder: String\r\n },\r\n lastName: {\r\n label: String,\r\n placeholder: String\r\n },\r\n email: {\r\n label: String,\r\n placeholder: String\r\n },\r\n phoneNumber: {\r\n label: String,\r\n placeholder: String\r\n },\r\n company: {\r\n label: String,\r\n placeholder: String\r\n },\r\n city: {\r\n label: String,\r\n placeholder: String\r\n },\r\n state: {\r\n label: String,\r\n placeholder: String\r\n },\r\n inquiry: {\r\n label: String,\r\n placeholder: String,\r\n options: [String]\r\n },\r\n checkbox: String,\r\n button: {\r\n text: String\r\n },\r\n countries: [\r\n {\r\n name: String,\r\n states: [String]\r\n }\r\n ]\r\n },\r\n successFormMessage: Object\r\n },\r\n data() {\r\n return {\r\n successModal: false,\r\n modalClosed: true\r\n }\r\n },\r\n methods: {\r\n handleSuccessModal(close) {\r\n this.$data.successModal = !this.$data.successModal\r\n close && (this.$data.modalClosed = true)\r\n }\r\n }\r\n}\r\n</script>\r\n","import { render } from \"./FormModal.vue?vue&type=template&id=3acd2299\"\nimport script from \"./FormModal.vue?vue&type=script&lang=js\"\nexport * from \"./FormModal.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"D:\\\\a\\\\1\\\\s\\\\Host\\\\front-end\\\\node_modules\\\\vue-loader\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","<template>\r\n <section\r\n class=\"banner-main\"\r\n :class=\"{\r\n 'banner-with-form': banner.shouldHaveForm,\r\n 'banner-with-btn': !banner.shouldHaveForm && banner.button.text\r\n }\"\r\n :style=\"[{ 'background-image': `url(${banner.image.link})`}, data.showModalForm && {'z-index': '1000'}]\"\r\n >\r\n <FormModal\r\n v-if=\"banner.shouldHaveForm\"\r\n :form=\"form\"\r\n :successFormMessage=\"successFormMessage\"\r\n />\r\n <div class=\"content container\">\r\n <div class=\"row\">\r\n <div\r\n class=\"col-12 headers d-flex flex-column justify-content-center\"\r\n :class=\"{'col-lg-6': banner.shouldHaveForm,\r\n 'col-md-8': !banner.shouldHaveForm}\"\r\n >\r\n <div>\r\n <h1 class=\"h1-light\">{{ banner.title }}</h1>\r\n <p class=\"h2\">{{ banner.description }}</p>\r\n <ButtonRed\r\n v-if=\"!banner.shouldHaveForm && banner.button.text\"\r\n :text=\"banner.button.text\"\r\n :href=\"banner.button.link\"\r\n hyperlink\r\n />\r\n <ButtonRed\r\n v-if=\"data.shouldHaveModalButton && banner.shouldHaveForm\"\r\n :text=\"banner.contactUsButton.text\"\r\n class=\"w-100\"\r\n type=\"button\"\r\n data-bs-toggle=\"modal\"\r\n data-bs-target=\"#bannerFormModal\"\r\n />\r\n </div>\r\n </div>\r\n <div\r\n class=\"d-lg-flex flex-column\"\r\n :class=\"{'d-none col-lg-6 align-items-end': banner.shouldHaveForm,\r\n 'd-flex flex-sm-row flex-md-column col-md-4 align-items-start': !banner.shouldHaveForm}\"\r\n >\r\n <Form v-if=\"banner.shouldHaveForm\" :form=\"form\" :successFormMessage=\"successFormMessage\"/>\r\n </div>\r\n </div>\r\n </div>\r\n </section>\r\n</template>\r\n\r\n<script setup>\r\nimport Form from \"@/components/banners/Form\";\r\nimport FormModal from \"@/components/banners/FormModal\";\r\nimport ButtonRed from '@/components/common/ButtonRed';\r\nimport {handleListeners} from \"@/utils/utils\";\r\nimport {onMounted, onUnmounted, reactive} from \"vue\";\r\n\r\ndefineProps({\r\n banner: {\r\n title: String,\r\n description: String,\r\n button: {\r\n link: String,\r\n text: String\r\n },\r\n contactUsButton: {\r\n text: String,\r\n },\r\n image: {\r\n link: String,\r\n alt: String\r\n },\r\n shouldHaveForm: Boolean,\r\n },\r\n form: {\r\n firstName: {\r\n label: String,\r\n placeholder: String\r\n },\r\n lastName: {\r\n label: String,\r\n placeholder: String\r\n },\r\n email: {\r\n label: String,\r\n placeholder: String\r\n },\r\n phoneNumber: {\r\n label: String,\r\n placeholder: String\r\n },\r\n company: {\r\n label: String,\r\n placeholder: String\r\n },\r\n city: {\r\n label: String,\r\n placeholder: String\r\n },\r\n state: {\r\n label: String,\r\n placeholder: String\r\n },\r\n inquiry: {\r\n label: String,\r\n placeholder: String,\r\n options: [String]\r\n },\r\n checkbox: String,\r\n button: {\r\n text: String\r\n },\r\n countries: [\r\n {\r\n name: String,\r\n states: [String]\r\n }\r\n ]\r\n },\r\n successFormMessage: {\r\n title: String,\r\n description: String,\r\n }\r\n});\r\n\r\nconst data = reactive({\r\n shouldHaveModalButton: false,\r\n showModalForm: false\r\n});\r\n\r\nconst handleScreenWidth = () =>\r\n data.shouldHaveModalButton = window.matchMedia('(max-width: 992px)').matches;\r\n\r\nhandleScreenWidth();\r\nonMounted(() => handleListeners(['resize'], handleScreenWidth));\r\nonUnmounted(() => handleListeners(['resize'], handleScreenWidth, true));\r\n</script>\r\n","import script from \"./BannerMain.vue?vue&type=script&setup=true&lang=js\"\nexport * from \"./BannerMain.vue?vue&type=script&setup=true&lang=js\"\n\nconst __exports__ = script;\n\nexport default __exports__"],"names":["class","for","state","successFormMessage","title","description","showThanksMessage","form","firstName","label","warning","v$","$error","placeholder","name","id","$errors","$message","lastName","email","phoneNumber","phone","company","city","location","handleLocation","usaStates","canadaStates","options","autocompleteOptions","value","e","handleAutocomplete","changeInputStatus","stateOptions","selectable","o","heading","searchable","option","inquiry","selectedInquiry","checked","subscribeEmail","getCheckboxId","checkbox","loading","isLoading","disabled","text","button","submitForm","components","ButtonRed","Checkbox","Select","Input","props","String","isModal","Boolean","countries","states","data","handleSelected","setup","emit","formSubmitResponse","fetchData","sendForm","error","submitError","useLoadData","executeRecaptcha","recaptchaLoaded","useReCaptcha","formName","source","usa","filter","countryObject","map","elem","canada","testModel","isActive","recaptcha","async","callback","fields","token","url","method","recaptchaToken","submitFormToGa","rules","newValue","console","log","methods","this","$props","$validate","$reset","__exports__","render","tabindex","type","handleSuccessModal","modalClosed","Form","Object","successModal","close","$data","shouldHaveModalButton","showModalForm","handleScreenWidth","window","matchMedia","matches"],"sourceRoot":""}