{"version":3,"file":"421.min.js?t=1743173738202","mappings":"oLAKe,MAAMA,EACnBC,iBAAmB,CACjBC,KAAM,yBACNC,MAAO,8BAGTF,eAAiB,CACfG,WAAY,mBACZC,YAAa,6BACbC,eAAgB,yCAGlBC,WAAAA,CAAYC,GACVC,KAAKD,QAAUA,EACfC,KAAKC,GAAKF,GAASE,IAAM,GAEzBD,KAAKE,WACLF,KAAKG,gBACLH,KAAKI,cACP,CAKAF,QAAAA,GACEF,KAAKK,KAAOL,KAAKD,QAAQO,cAAcf,EAAegB,UAAUd,MAChEO,KAAKQ,UAAYR,KAAKD,QAAQO,cAAcf,EAAegB,UAAUb,MACvE,CAKAe,OAAAA,GACET,KAAKU,eACLV,KAAKW,SAASF,SAChB,CAKAN,cAAgBA,KACdH,KAAKW,SAAW,IAAIC,IAAJ,CACdZ,KAAKK,KACL,CACEQ,QAAStB,EAAeuB,QAAQjB,eAChCkB,gBAAiBxB,EAAeuB,QAAQjB,eACxCmB,WAAYzB,EAAeuB,QAAQnB,WACnCsB,eAAgB1B,EAAeuB,QAAQlB,YACvCsB,aAAc,QAEhB,EACD,EAMHC,cAAiBC,IACfA,EAAMC,iBACN,MACMC,EADW,IAAIC,SAASvB,KAAKK,MACPmB,IAAI,UAC1BC,EAAQzB,KAAKW,SAASe,YACtB,cAAEC,EAAa,IAAEC,GAAQ5B,KAAKK,KAAKwB,QACnCC,EAA4B,IAArBF,EAAIG,QAAQ,KAAaC,OAAOC,SAASC,YAASC,EACzDC,EAAO,IAAIC,IAAIT,EAAKE,GAC1BM,EAAKE,aAAaC,IAAIZ,EAAeL,GAEjCG,GACFO,OAAOC,SAASO,OAAOJ,EACzB,EAGFhC,YAAAA,GACEJ,KAAKK,KAAKoC,iBAAiB,SAAUzC,KAAKmB,cAC5C,CAEAT,YAAAA,GACEV,KAAKK,KAAKqC,oBAAoB,SAAU1C,KAAKmB,cAC/C,ECjFF,S","sources":["webpack://@hero-digital/masonite/./src/components/modules/HeroBannerForm/HeroBannerForm.js","webpack://@hero-digital/masonite/./src/components/modules/HeroBannerForm/index.js"],"sourcesContent":["import Pristine from 'pristinejs'\n\n/**\n * Module that displays a Hero Banner with a form\n */\nexport default class HeroBannerForm {\n static SELECTORS = {\n FORM: '.mod-hero-banner__form',\n INPUT: '[data-hero-banner=\"input\"]'\n }\n\n static CLASSES = {\n FORM_ERROR: 'fdn-input__error',\n INPUT_ERROR: 'fdn-input__error-container',\n FORM_CONTAINER: 'mod-hero-banner__form-input-container'\n }\n\n constructor(element) {\n this.element = element // ref to component element\n this.id = element?.id || '' // ref to component id\n\n this.cacheDom()\n this.addValidation()\n this.attachEvents()\n }\n\n /**\n * Cache the dom refs needed for the component\n */\n cacheDom() {\n this.form = this.element.querySelector(HeroBannerForm.SELECTORS.FORM)\n this.formInput = this.element.querySelector(HeroBannerForm.SELECTORS.INPUT)\n }\n\n /**\n * Destroy the component and clean up event listeners\n */\n destroy() {\n this.detachEvents()\n this.pristine.destroy()\n }\n\n /**\n * Add input validation to the form\n */\n addValidation = () => {\n this.pristine = new Pristine(\n this.form,\n {\n classTo: HeroBannerForm.CLASSES.FORM_CONTAINER,\n errorTextParent: HeroBannerForm.CLASSES.FORM_CONTAINER,\n errorClass: HeroBannerForm.CLASSES.FORM_ERROR,\n errorTextClass: HeroBannerForm.CLASSES.INPUT_ERROR,\n errorTextTag: 'div'\n },\n false\n )\n }\n\n /**\n * Validate form input\n */\n validateInput = (event) => {\n event.preventDefault()\n const formData = new FormData(this.form)\n const searchTerm = formData.get('search')\n const valid = this.pristine.validate()\n const { locationParam, url } = this.form.dataset\n const base = url.indexOf('/') === 0 ? window.location.origin : undefined\n const path = new URL(url, base)\n path.searchParams.set(locationParam, searchTerm)\n\n if (valid) {\n window.location.assign(path)\n }\n }\n\n attachEvents() {\n this.form.addEventListener('submit', this.validateInput)\n }\n\n detachEvents() {\n this.form.removeEventListener('submit', this.validateInput)\n }\n}\n","import HeroBannerForm from './HeroBannerForm'\n\nexport default HeroBannerForm\n"],"names":["HeroBannerForm","static","FORM","INPUT","FORM_ERROR","INPUT_ERROR","FORM_CONTAINER","constructor","element","this","id","cacheDom","addValidation","attachEvents","form","querySelector","SELECTORS","formInput","destroy","detachEvents","pristine","Pristine","classTo","CLASSES","errorTextParent","errorClass","errorTextClass","errorTextTag","validateInput","event","preventDefault","searchTerm","FormData","get","valid","validate","locationParam","url","dataset","base","indexOf","window","location","origin","undefined","path","URL","searchParams","set","assign","addEventListener","removeEventListener"],"sourceRoot":""}