{"version":3,"file":"610.09ed71bee3b3fbc15b62.js","mappings":"4JAEA,MAAMA,EAEFC,YAAYC,GACRC,KAAKD,GAAKA,EACVC,KAAKC,OAAS,GACd,IAAIC,EAAOH,EAAGI,iBAAiB,yBAC3BC,EAASL,EAAGM,QAAQC,YACpBC,EAAeR,EAAGM,QAAQG,eAC9B,GAAW,MAARN,EAAc,CAEbA,EAAKO,SAAQC,IACTV,KAAKC,OAAOU,KAAK,CACbZ,GAAIW,EACJJ,YAAaF,EACbI,eAAgBD,EAChBK,mBAAoBF,EAAEP,iBAAiB,gCACvCU,kBAAmBH,EAAEI,cAAc,2CACnCC,uBAAwBL,EAAEI,cAAc,iDACxCE,aAAcC,EAAAA,GAAAA,oBAA6BP,EAAEI,cAAc,yCAA0C,CACjGI,QAAQ,IAEZC,eAAgBT,EAAEI,cAAc,gCAIxC,IAAIM,EAAQpB,KACZ,IAAK,IAAIqB,EAAI,EAAGC,EAAItB,KAAKC,OAAOsB,OAAQF,EAAIC,EAAGD,IAAK,CAChD,IAAIG,EAAIxB,KAAKC,OAAOoB,GAEhBI,EAAYD,EAAET,uBAAuBV,QAAQoB,UACjDD,EAAEC,eAAiC,IAAdA,EAA4BC,SAASD,GAAa,EAEvEzB,KAAK2B,aAAaN,GAElBG,EAAET,uBAAuBa,iBAAiB,UAAWC,IACjDC,YAAW,KACPV,EAAMO,aAAaN,KACrB,QACH,GACHG,EAAEZ,mBAAmBH,SAAQsB,IACzBA,EAAEH,iBAAiB,SAAUC,IACzB,IAAIG,EAAc,IAAIC,IAAIT,EAAEL,eAAee,KAAMC,OAAOC,SAASC,QACjEL,EAAYM,aAAaC,IAAIf,EAAEhB,eAAgBqB,EAAEW,cAAcC,OAC/DjB,EAAEL,eAAee,KAAOF,EAAYE,aAOxDP,aAAae,GACT,IAAIlB,EAAIxB,KAAKC,OAAOyC,GACpB,GAAGhB,SAASF,EAAET,uBAAuB0B,QAAUjB,EAAEC,UAAW,CAExDD,EAAER,aAAa2B,OACfnB,EAAEL,eAAeyB,gBAAgB,YAEjC,IAAIZ,EAAc,IAAIC,IAAIT,EAAEL,eAAee,KAAMC,OAAOC,SAASC,QACjEL,EAAYM,aAAaC,IAAIf,EAAElB,YAAakB,EAAET,uBAAuB0B,OACrEjB,EAAEL,eAAee,KAAOF,EAAYE,KAGpC,IAAK,IAAIb,EAAI,EAAGC,EAAItB,KAAKC,OAAOsB,OAAQF,EAAIC,EAAGD,IACxCA,GAAKqB,IACJ1C,KAAKC,OAAOoB,GAAGtB,GAAG8C,UAAUC,IAAI,QAChC9C,KAAKC,OAAOoB,GAAGR,kBAAkBV,iBAAiB,iBAAiBM,SAAQsC,IACvEA,EAAEC,aAAa,YAAY,WAIpC,CAEHxB,EAAER,aAAaiC,OACfzB,EAAEL,eAAe6B,aAAa,YAAY,GAE1C,IAAK,IAAI3B,EAAI,EAAGC,EAAItB,KAAKC,OAAOsB,OAAQF,EAAIC,EAAGD,IAC3CrB,KAAKC,OAAOoB,GAAGtB,GAAG8C,UAAUK,OAAO,QACnClD,KAAKC,OAAOoB,GAAGR,kBAAkBV,iBAAiB,iBAAiBM,SAAQsC,IACvEA,EAAEH,gBAAgB,iBAS/B,SAASO,EAAWC,GACvBA,EAAS3C,SAAS4C,IAEQ,IAAlBA,EAAKC,UACL,IAAIzD,EAAgBwD","sources":["webpack://iflyworld.web/./wwwroot/app/src/js/packages-listing.js"],"sourcesContent":["import { Collapse } from 'bootstrap';\r\n\r\nclass PackagesListing {\r\n\r\n constructor(el) {\r\n this.el = el;\r\n this.panels = [];\r\n let find = el.querySelectorAll('.panel.package--panel');\r\n let qtyKey = el.dataset.quantityKey;\r\n let priceTypeKey = el.dataset.pricingTypeKey;\r\n if(find != null) {\r\n // store them\r\n find.forEach(f => {\r\n this.panels.push({\r\n el: f,\r\n quantityKey: qtyKey,\r\n pricingTypeKey: priceTypeKey,\r\n formOptionControls: f.querySelectorAll(\".voucher-types--option input\"),\r\n formNumberControl: f.querySelector('.package--controls .form-number-control'),\r\n formNumberControlInput: f.querySelector('.package--controls .form-number-control input'),\r\n collapseArea: Collapse.getOrCreateInstance(f.querySelector('.package--controls .package--continue'), {\r\n toggle: false\r\n }),\r\n continueButton: f.querySelector('.package--continue .btn')\r\n });\r\n });\r\n // loop through\r\n let _this = this;\r\n for (let x = 0, l = this.panels.length; x < l; x++) {\r\n let t = this.panels[x];\r\n // is there a threshold setting (for packages)\r\n let threshold = t.formNumberControlInput.dataset.threshold;\r\n t.threshold = typeof(threshold) != 'undefined' ? parseInt(threshold) : 1;\r\n // set open/closed state\r\n this.checkControl(x);\r\n // add listeners\r\n t.formNumberControlInput.addEventListener('change', (e) => {\r\n setTimeout(() => {\r\n _this.checkControl(x);\r\n },200);\r\n }, false);\r\n t.formOptionControls.forEach(o => {\r\n o.addEventListener('click', (e) => {\r\n let continueUri = new URL(t.continueButton.href, window.location.origin);\r\n continueUri.searchParams.set(t.pricingTypeKey, e.currentTarget.value);\r\n t.continueButton.href = continueUri.href;\r\n });\r\n });\r\n }\r\n }\r\n }\r\n\r\n checkControl(getIndex) {\r\n let t = this.panels[getIndex];\r\n if(parseInt(t.formNumberControlInput.value) >= t.threshold) {\r\n // open\r\n t.collapseArea.show();\r\n t.continueButton.removeAttribute('disabled');\r\n\r\n let continueUri = new URL(t.continueButton.href, window.location.origin);\r\n continueUri.searchParams.set(t.quantityKey, t.formNumberControlInput.value);\r\n t.continueButton.href = continueUri.href;\r\n\r\n // disable other panels\r\n for (let x = 0, l = this.panels.length; x < l; x++) {\r\n if(x != getIndex) {\r\n this.panels[x].el.classList.add('fade');\r\n this.panels[x].formNumberControl.querySelectorAll('input, button').forEach(i => {\r\n i.setAttribute('disabled', true);\r\n });\r\n }\r\n }\r\n } else {\r\n // close\r\n t.collapseArea.hide();\r\n t.continueButton.setAttribute('disabled', true);\r\n // enable other panels\r\n for (let x = 0, l = this.panels.length; x < l; x++) {\r\n this.panels[x].el.classList.remove('fade');\r\n this.panels[x].formNumberControl.querySelectorAll('input, button').forEach(i => {\r\n i.removeAttribute('disabled');\r\n });\r\n }\r\n }\r\n }\r\n\r\n}\r\n\r\n// export the default function to create\r\nexport function createFrom(wrappers) {\r\n wrappers.forEach((node) => {\r\n // if node is an element\r\n if (node.nodeType === 1) {\r\n new PackagesListing(node);\r\n }\r\n });\r\n}"],"names":["PackagesListing","constructor","el","this","panels","find","querySelectorAll","qtyKey","dataset","quantityKey","priceTypeKey","pricingTypeKey","forEach","f","push","formOptionControls","formNumberControl","querySelector","formNumberControlInput","collapseArea","Collapse","toggle","continueButton","_this","x","l","length","t","threshold","parseInt","checkControl","addEventListener","e","setTimeout","o","continueUri","URL","href","window","location","origin","searchParams","set","currentTarget","value","getIndex","show","removeAttribute","classList","add","i","setAttribute","hide","remove","createFrom","wrappers","node","nodeType"],"sourceRoot":""}