{"version":3,"sources":["webpack://loftware/./src/js/modules/PopUpBanner.js","webpack://loftware/./src/js/helpers/setupPhoneInput.js","webpack://loftware/./src/js/helpers/variables.js","webpack://loftware/./src/js/helpers/addFormLabelsPlaceholder.js","webpack://loftware/./src/js/helpers/countryPhoneCodes.js","webpack://loftware/./src/js/helpers/createScrollShapes.js"],"names":[],"mappings":"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GAAI,MACJ,GAAI,MACJ,GAAI,MACJ,GAAI,KACJ,GAAI,MACJ,GAAI,MACJ,GAAI,MACJ,GAAI,MACJ,GAAI,KACJ,GAAI,MACJ,GAAI,OACJ,GAAI,mBACJ,GAAI,MACJ,GAAI,MACJ,GAAI,KACJ,GAAI,MACJ,GAAI,MACJ,GAAI,MACJ,GAAI,MACJ,GAAI,MACJ,GAAI,MACJ,GAAI,MACJ,GAAI,MACJ,GAAI,MACJ,GAAI,KACJ,GAAI,MACJ,GAAI,MACJ,GAAI,MACJ,GAAI,MACJ,GAAI,KACJ,GAAI,MACJ,GAAI,MACJ,GAAI,KACJ,GAAI,MACJ,GAAI,OACJ,GAAI,OACJ,GAAI,MACJ,GAAI,SACJ,GAAI,MACJ,GAAI,MACJ,GAAI,MACJ,GAAI,MACJ,GAAI,MACJ,GAAI,MACJ,GAAI,KACJ,GAAI,MACJ,GAAI,KACJ,GAAI,KACJ,GAAI,KACJ,GAAI,GACJ,GAAI,MACJ,GAAI,MACJ,GAAI,MACJ,GAAI,MACJ,GAAI,MACJ,GAAI,GACJ,GAAI,MACJ,GAAI,GACJ,GAAI,MACJ,GAAI,MACJ,GAAI,SACJ,GAAI,MACJ,GAAI,KACJ,GAAI,OACJ,GAAI,KACJ,GAAI,SACJ,GAAI,MACJ,GAAI,IACJ,GAAI,MACJ,GAAI,MACJ,GAAI,MACJ,GAAI,MACJ,GAAI,MACJ,GAAI,MACJ,GAAI,MACJ,GAAI,MACJ,GAAI,MACJ,GAAI,MACJ,GAAI,MACJ,GAAI,MACJ,GAAI,MACJ,GAAI,MACJ,GAAI,MACJ,GAAI,MACJ,GAAI,MACJ,GAAI,KACJ,GAAI,MACJ,GAAI,MACJ,GAAI,MACJ,GAAI,MACJ,GAAI,MACJ,GAAI,MACJ,GAAI,MACJ,GAAI,MACJ,GAAI,KACJ,GAAI,MACJ,GAAI,MACJ,GAAI,MACJ,GAAI,MACJ,GAAI,MACJ,GAAI,OACJ,GAAI,MACJ,GAAI,MACJ,GAAI,KACJ,GAAI,MACJ,GAAI,MACJ,GAAI,MACJ,GAAI,KACJ,GAAI,MACJ,GAAI,KACJ,GAAI,MACJ,GAAI,MACJ,GAAI,MACJ,GAAI,MACJ,GAAI,MACJ,GAAI,MACJ,GAAI,MACJ,GAAI,OACJ,GAAI,KACJ,GAAI,MACJ,GAAI,KACJ,GAAI,MACJ,GAAI,MACJ,GAAI,MACJ,GAAI,MACJ,GAAI,MACJ,GAAI,KACJ,GAAI,KACJ,GAAI,MACJ,GAAI,KACJ,GAAI,MACJ,GAAI,OACJ,GAAI,MACJ,GAAI,MACJ,GAAI,KACJ,GAAI,IACJ,GAAI,MACJ,GAAI,MACJ,GAAI,MACJ,GAAI,MACJ,GAAI,MACJ,GAAI,MACJ,GAAI,MACJ,GAAI,MACJ,GAAI,MACJ,GAAI,KACJ,GAAI,OACJ,GAAI,MACJ,GAAI,MACJ,GAAI,MACJ,GAAI,MACJ,GAAI,KACJ,GAAI,MACJ,GAAI,KACJ,GAAI,MACJ,GAAI,KACJ,GAAI,KACJ,GAAI,MACJ,GAAI,MACJ,GAAI,OACJ,GAAI,OACJ,GAAI,MACJ,GAAI,MACJ,GAAI,OACJ,GAAI,MACJ,GAAI,MACJ,GAAI,KACJ,GAAI,KACJ,GAAI,KACJ,GAAI,MACJ,GAAI,MACJ,GAAI,MACJ,GAAI,MACJ,GAAI,KACJ,GAAI,MACJ,GAAI,MACJ,GAAI,MACJ,GAAI,OACJ,GAAI,MACJ,GAAI,KACJ,GAAI,MACJ,GAAI,OACJ,GAAI,MACJ,GAAI,IACJ,GAAI,OACJ,GAAI,MACJ,GAAI,MACJ,GAAI,MACJ,GAAI,KACJ,GAAI,IACJ,GAAI,MACJ,GAAI,MACJ,GAAI,MACJ,GAAI,OACJ,GAAI,KACJ,GAAI,KACJ,GAAI,MACJ,GAAI,MACJ,GAAI,MACJ,GAAI,MACJ,GAAI,OAGN,IAAe,G,mECzPf,KAAM,GAAuB,CAAC,CAC5B,cACA,iBACA,SAAS,EACT,WACI,CAEJ,KAAM,GAAW,IAAM,SAAS,CAC9B,OAAQ,cACR,SAAU,IACV,SAAU,KAGZ,CAAC,GAAG,EAAe,YAAY,QAAQ,CAAC,EAAO,IAAU,CACvD,EAAS,IACP,CACE,QAAS,EACT,WAAY,CAAC,GAAI,GACjB,QAAS,CAAC,EAAG,IAEd,IAAO,EAAS,KAKrB,KAAM,GAAa,GAAI,iBACvB,GAAI,YAAkB,CACpB,eAAgB,EAChB,SAAU,OAAO,YAAc,GAC/B,SACA,YAAa,IAEZ,GAAG,WAAY,GAAS,CACvB,EAAS,KAAK,EAAS,SAAW,EAAM,YAEzC,MAAM,IAGL,EAAiB,CAAC,CAAE,iBAAgB,WAAY,CAEpD,KAAM,GAAW,IAAM,SAAS,CAC9B,OAAQ,cACR,SAAU,MAGZ,CAAC,GAAG,EAAe,YAAY,QAAQ,CAAC,EAAO,IAAU,CACvD,EAAS,IACP,CACE,QAAS,EACT,WAAY,CAAC,GAAI,GACjB,QAAS,CAAC,EAAG,IAEd,IAAM,EAAS,MAKhB,EAAqB,CAAC,CAC1B,cACA,QACA,SAAS,GACT,gBAAgB,GAChB,SAAS,KACL,CACJ,KAAM,GAAa,OAAO,WAAW,eAAe,IAAY,cAC1D,EAAiB,SAAS,cAAc,OAC9C,EAAe,UAAU,IAAI,GAAG,qBAEhC,OAAS,GAAI,EAAG,EAAI,EAAO,IAAK,CAC9B,KAAM,GAAQ,SAAS,cAAc,QACrC,EAAM,UAAU,IAAI,SAAS,EAAI,KACjC,EAAe,OAAO,GAKxB,EAFY,OAAO,GAEf,CAAC,GAAW,SAEZ,GACF,EAAqB,CAAE,cAAa,iBAAgB,SAAQ,UAE5D,EAAe,CAAE,iBAAgB,YAIrC,IAAe","file":"scripts/771.342c6ac58973c11af3ca.js","sourcesContent":["import { Component } from '@verndale/core';\r\nimport Cookies from 'js-cookie';\r\nimport createScrollShapes from '../helpers/createScrollShapes';\r\nimport addFormLabelsPlaceholder from '../helpers/addFormLabelsPlaceholder';\r\nimport setupPhoneInput from '../helpers/setupPhoneInput';\r\n\r\nclass PopUpBanner extends Component {\r\n setupDefaults() {\r\n this.id = this.el.dataset.id;\r\n this.cookieName = `loftware_popup_${this.id}`;\r\n\r\n this.dom = {\r\n image: this.el.querySelector('.pop-up-banner__shape'),\r\n closeButton: this.el.querySelector('.pop-up-banner__close'),\r\n submitBtn: this.el.querySelector('.FormSubmitButton'),\r\n inputUrl: this.el.querySelector('input[name=\"success_url\"]')\r\n };\r\n\r\n this.displayBanner();\r\n if (this.dom.image) this.buildShapes();\r\n addFormLabelsPlaceholder(this.el);\r\n setupPhoneInput(this.el);\r\n }\r\n\r\n addListeners() {\r\n this.dom.closeButton.addEventListener('click', this.handleClose.bind(this));\r\n this.dom.submitBtn.addEventListener('click', this.redirect.bind(this));\r\n }\r\n\r\n redirect(e) {\r\n e.preventDefault();\r\n if (!this.dom.inputUrl && !this.dom.inputUrl?.value) return;\r\n window.open(this.dom.inputUrl.value, '_blank');\r\n }\r\n\r\n open() {\r\n this.el.style.display = 'block';\r\n }\r\n\r\n displayBanner() {\r\n if (Cookies.get(this.cookieName)) {\r\n return this.el.remove();\r\n }\r\n this.open();\r\n }\r\n\r\n buildShapes() {\r\n this.dom.shapes = createScrollShapes({\r\n containerEl: this.dom.image,\r\n count: 6,\r\n prefix: 'pop-up-banner__image-',\r\n scrollAnimate: false\r\n });\r\n }\r\n\r\n handleClose() {\r\n\r\n Cookies.set(this.cookieName, this.id, {\r\n expires: parseInt(this.el.dataset.cookieExpiration, 10) || 1,\r\n path: '/',\r\n sameSite: 'strict'\r\n });\r\n this.el.remove();\r\n }\r\n}\r\n\r\nexport default PopUpBanner;\r\n","import countryCodes from './countryPhoneCodes';\r\n\r\nconst handleCountrySelect = e => {\r\n const form = e.target.closest('.Form__MainBody');\r\n const phonePrefix = form.querySelector('.FormPhoneCode__Code');\r\n\r\n if (phonePrefix) {\r\n const country = e.target.value;\r\n phonePrefix.value = `+${countryCodes[country]}`;\r\n phonePrefix.focus();\r\n }\r\n};\r\n\r\nconst setupPhoneInput = el => {\r\n const form = el.querySelector('.Form__MainBody');\r\n\r\n if (!form) return;\r\n\r\n const countrySelect = form.querySelector('.Form__Country select');\r\n\r\n if (!countrySelect) return;\r\n\r\n countrySelect.addEventListener('change', handleCountrySelect);\r\n};\r\n\r\nexport default setupPhoneInput;\r\n","// /**\r\n// * Key code list object\r\n// */\r\nexport const keyCode = {\r\n TAB: 9,\r\n RETURN: 13,\r\n ESC: 27,\r\n SPACE: 32,\r\n PAGEUP: 33,\r\n PAGEDOWN: 34,\r\n END: 35,\r\n HOME: 36,\r\n LEFT: 37,\r\n UP: 38,\r\n RIGHT: 39,\r\n DOWN: 40\r\n};\r\n\r\n// /**\r\n// * Key code list object\r\n// */\r\nexport const breakpoints = {\r\n mobile: 360,\r\n tablet: 768,\r\n tabletLandscape: 1024,\r\n desktop: 1280,\r\n wide: 1600\r\n};\r\n","const updateLabel = e => {\r\n const input = e.target || e;\r\n const fieldWrap = input.closest('.Form__Element');\r\n const label = fieldWrap?.querySelector('.Form__Element__Caption');\r\n if (label) {\r\n if (input.value || input === document.activeElement) {\r\n label.classList.add('is-active');\r\n } else {\r\n label.classList.remove('is-active');\r\n }\r\n }\r\n};\r\n\r\nconst addFormLabelsPlaceholder = el => {\r\n const form = el.querySelector('.Form__MainBody');\r\n if (!form) return;\r\n const inputs = form.querySelectorAll('input');\r\n const textareas = form.querySelectorAll('textarea');\r\n const labels = form.querySelectorAll('.Form__Element__Caption');\r\n labels?.forEach(label => {\r\n if (label && label.nextElementSibling.tagName.toLowerCase() === 'select') {\r\n label.classList.add('select-label');\r\n }\r\n });\r\n\r\n inputs?.forEach(input => {\r\n input.addEventListener('focus', updateLabel);\r\n input.addEventListener('blur', updateLabel);\r\n input.addEventListener('input', updateLabel);\r\n updateLabel(input);\r\n });\r\n\r\n textareas?.forEach(textarea => {\r\n textarea.addEventListener('focus', updateLabel);\r\n textarea.addEventListener('blur', updateLabel);\r\n textarea.addEventListener('input', updateLabel);\r\n updateLabel(textarea);\r\n });\r\n};\r\n\r\nexport default addFormLabelsPlaceholder;\r\n","const countryCodes = {\r\n AF: '93',\r\n AX: '358',\r\n AL: '355',\r\n DZ: '213',\r\n AS: '1684',\r\n AD: '376',\r\n AO: '244',\r\n AI: '1264',\r\n AQ: '672',\r\n AG: '1268',\r\n AR: '54',\r\n AM: '374',\r\n AW: '297',\r\n AU: '61',\r\n AT: '43',\r\n AZ: '994',\r\n BS: '1242',\r\n BH: '973',\r\n BD: '880',\r\n BB: '1246',\r\n BY: '375',\r\n BE: '32',\r\n BZ: '501',\r\n BJ: '229',\r\n BM: '1441',\r\n BT: '975',\r\n BO: '591',\r\n BA: '387',\r\n BW: '267',\r\n BR: '55',\r\n IO: '246',\r\n VG: '1284',\r\n BN: '673',\r\n BG: '359',\r\n BF: '226',\r\n BI: '257',\r\n KH: '855',\r\n CM: '237',\r\n CA: '1',\r\n CV: '238',\r\n KY: '1345',\r\n CF: '236',\r\n TD: '235',\r\n CL: '56',\r\n CN: '86',\r\n CX: '61',\r\n CC: '61',\r\n CO: '57',\r\n KM: '269',\r\n CK: '682',\r\n CR: '506',\r\n HR: '385',\r\n CU: '53',\r\n CW: '599',\r\n CY: '357',\r\n CZ: '420',\r\n CD: '243',\r\n DK: '45',\r\n DJ: '253',\r\n DM: '1767',\r\n DO: '1809, 1829, 1849',\r\n TL: '670',\r\n EC: '593',\r\n EG: '20',\r\n SV: '503',\r\n GQ: '240',\r\n ER: '291',\r\n EE: '372',\r\n ET: '251',\r\n FK: '500',\r\n FO: '298',\r\n FJ: '679',\r\n FI: '358',\r\n FR: '33',\r\n PF: '689',\r\n GA: '241',\r\n GM: '220',\r\n GE: '995',\r\n DE: '49',\r\n GH: '233',\r\n GI: '350',\r\n GR: '30',\r\n GL: '299',\r\n GD: '1473',\r\n GU: '1671',\r\n GT: '502',\r\n GG: '441481',\r\n GN: '224',\r\n GW: '245',\r\n GY: '592',\r\n HT: '509',\r\n HN: '504',\r\n HK: '852',\r\n HU: '36',\r\n IS: '354',\r\n IN: '91',\r\n ID: '62',\r\n IR: '98',\r\n BV: '',\r\n BQ: '599',\r\n CG: '242',\r\n CI: '225',\r\n SZ: '268',\r\n GF: '594',\r\n TF: '',\r\n GP: '590',\r\n HM: '',\r\n IQ: '964',\r\n IE: '353',\r\n IM: '441624',\r\n IL: '972',\r\n IT: '39',\r\n JM: '1876',\r\n JP: '81',\r\n JE: '441534',\r\n JO: '962',\r\n KZ: '7',\r\n KE: '254',\r\n KI: '686',\r\n XK: '383',\r\n KW: '965',\r\n KG: '996',\r\n LA: '856',\r\n LV: '371',\r\n LB: '961',\r\n LS: '266',\r\n LR: '231',\r\n LY: '218',\r\n LI: '423',\r\n LT: '370',\r\n LU: '352',\r\n MO: '853',\r\n MG: '261',\r\n MW: '265',\r\n MY: '60',\r\n MV: '960',\r\n ML: '223',\r\n MT: '356',\r\n MH: '692',\r\n MQ: '596',\r\n MR: '222',\r\n MU: '230',\r\n YT: '262',\r\n MX: '52',\r\n FM: '691',\r\n MD: '373',\r\n MC: '377',\r\n MN: '976',\r\n ME: '382',\r\n MS: '1664',\r\n MA: '212',\r\n MZ: '258',\r\n MM: '95',\r\n NA: '264',\r\n NR: '674',\r\n NP: '977',\r\n NL: '31',\r\n NC: '687',\r\n NZ: '64',\r\n NI: '505',\r\n NE: '227',\r\n NG: '234',\r\n NU: '683',\r\n NF: '672',\r\n KP: '850',\r\n MK: '389',\r\n MP: '1670',\r\n NO: '47',\r\n OM: '968',\r\n PK: '92',\r\n PW: '680',\r\n PS: '970',\r\n PA: '507',\r\n PG: '675',\r\n PY: '595',\r\n PE: '51',\r\n PH: '63',\r\n PN: '870',\r\n PL: '48',\r\n PT: '351',\r\n PR: '1787',\r\n QA: '974',\r\n RE: '262',\r\n RO: '40',\r\n RU: '7',\r\n RW: '250',\r\n WS: '685',\r\n SM: '378',\r\n ST: '239',\r\n SA: '966',\r\n SN: '221',\r\n RS: '381',\r\n SC: '248',\r\n SL: '232',\r\n SG: '65',\r\n SX: '1721',\r\n SK: '421',\r\n SI: '386',\r\n SB: '677',\r\n SO: '252',\r\n ZA: '27',\r\n GS: '500',\r\n KR: '82',\r\n SS: '211',\r\n ES: '34',\r\n LK: '94',\r\n BL: '590',\r\n SH: '290',\r\n KN: '1869',\r\n LC: '1758',\r\n MF: '590',\r\n PM: '508',\r\n VC: '1784',\r\n SD: '249',\r\n SR: '597',\r\n SJ: '47',\r\n SE: '46',\r\n CH: '41',\r\n SY: '963',\r\n TW: '886',\r\n TJ: '992',\r\n TZ: '255',\r\n TH: '66',\r\n TG: '228',\r\n TK: '690',\r\n TO: '676',\r\n TT: '1868',\r\n TN: '216',\r\n TR: '90',\r\n TM: '993',\r\n TC: '1649',\r\n TV: '688',\r\n UM: '1',\r\n VI: '1340',\r\n UG: '256',\r\n UA: '380',\r\n AE: '971',\r\n GB: '44',\r\n US: '1',\r\n UY: '598',\r\n UZ: '998',\r\n VU: '678',\r\n VA: '3906',\r\n VE: '58',\r\n VN: '84',\r\n WF: '681',\r\n EH: '212',\r\n YE: '967',\r\n ZM: '260',\r\n ZW: '263'\r\n};\r\n\r\nexport default countryCodes;\r\n","import anime from 'animejs/lib/anime.es';\r\nimport ScrollMagic from 'scrollmagic';\r\nimport { breakpoints } from './variables';\r\n\r\nconst _scrollAnimateShapes = ({\r\n containerEl,\r\n shapeContainer,\r\n offset = 0,\r\n count\r\n}) => {\r\n // Create animation timeline\r\n const timeline = anime.timeline({\r\n easing: 'easeOutExpo',\r\n duration: 1000,\r\n autoplay: false\r\n });\r\n\r\n [...shapeContainer.childNodes].forEach((shape, index) => {\r\n timeline.add(\r\n {\r\n targets: shape,\r\n translateY: [80, 0],\r\n opacity: [0, 1]\r\n },\r\n (1000 / count) * index\r\n );\r\n });\r\n\r\n // Add scrollmagic scene\r\n const controller = new ScrollMagic.Controller();\r\n new ScrollMagic.Scene({\r\n triggerElement: containerEl,\r\n duration: window.innerHeight * 0.7,\r\n offset,\r\n triggerHook: 1 // 0 = onLeave, 1 = onEnter\r\n })\r\n .on('progress', event => {\r\n timeline.seek(timeline.duration * event.progress);\r\n })\r\n .addTo(controller);\r\n};\r\n\r\nconst _animateShapes = ({ shapeContainer, count }) => {\r\n // Create animation timeline\r\n const timeline = anime.timeline({\r\n easing: 'easeOutExpo',\r\n duration: 600\r\n });\r\n\r\n [...shapeContainer.childNodes].forEach((shape, index) => {\r\n timeline.add(\r\n {\r\n targets: shape,\r\n translateY: [80, 0],\r\n opacity: [0, 1]\r\n },\r\n (600 / count) * index\r\n );\r\n });\r\n};\r\n\r\nconst createScrollShapes = ({\r\n containerEl,\r\n count,\r\n prefix = '',\r\n scrollAnimate = true,\r\n offset = 0\r\n}) => {\r\n const breakpoint = window.matchMedia(`(min-width: ${breakpoints.desktop}px)`);\r\n const shapeContainer = document.createElement('div');\r\n shapeContainer.classList.add(`${prefix}shapes-container`);\r\n\r\n for (let i = 0; i < count; i++) {\r\n const shape = document.createElement('span');\r\n shape.classList.add(`shape-${i + 1}`);\r\n shapeContainer.append(shape);\r\n }\r\n\r\n containerEl.append(shapeContainer);\r\n\r\n if (!breakpoint.matches) return;\r\n\r\n if (scrollAnimate) {\r\n _scrollAnimateShapes({ containerEl, shapeContainer, offset, count });\r\n } else {\r\n _animateShapes({ shapeContainer, count });\r\n }\r\n};\r\n\r\nexport default createScrollShapes;\r\n"],"sourceRoot":""}