{"version":3,"file":"customer/register.6a281e38.js","mappings":"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","sources":["webpack://polyestershoppen.nl/external var \"jQuery\"","webpack://polyestershoppen.nl/./assets/js/utilities/functions/debounce.js","webpack://polyestershoppen.nl/./assets/js/utilities/inputmask/tax.js","webpack://polyestershoppen.nl/./assets/js/utilities/inputmask/phone.js","webpack://polyestershoppen.nl/./assets/js/website/customer/register.js"],"sourcesContent":["module.exports = jQuery;","const debounce = (callback, wait = 1000) => {\n let timeoutId\n\n return (...args) => {\n clearTimeout(timeoutId)\n\n timeoutId = setTimeout(() => callback(...args), wait)\n }\n}\n\nconst debouncePromise = (callback, wait = 1000) => {\n let timeoutId\n\n return (...args) => {\n if (timeoutId) {\n clearTimeout(timeoutId)\n }\n\n return new Promise((resolve) => {\n timeoutId = setTimeout(() => resolve(callback(...args)), wait)\n })\n }\n}\n\nexport { debounce, debouncePromise }\n","import { default as Inputmask } from 'inputmask/dist/inputmask.es6.js'\n\nconst lookupTable = {\n AT: 'ATU9{8}',\n BE: 'BE9{10}',\n BG: 'BG9{9,10}',\n CH: 'CHE9{3}.9{3}.9{3} A{3,4}', // ends with: German MWST, French TVA, Italian IVA\n CY: 'CY9{8}L',\n CZ: 'CZ9{8,10}',\n DE: 'DE9{9}',\n DK: 'DK9{8}',\n EE: 'EE9{9}',\n ES: 'ES*9{7}*',\n FI: 'FI9{8}',\n FR: 'FR**9{9}',\n GB: 'GB9{9}',\n GR: 'EL9{9}',\n HR: 'HR9{11}',\n HU: 'HU9{8}',\n IE: 'IE9*9{5,6}**',\n IS: 'IS9{6}',\n IT: 'IT9{11}',\n LI: 'LI9{5}', // not available on VIES\n LT: 'LT9{9,12}', // should be (LT9{9})|(LT9{12}) but this does not behave user-friendly\n LU: 'LU9{8}',\n LV: 'LV9{11}',\n MC: 'FR**9{9}',\n MT: 'MT9{8}',\n NL: 'NL9{9}B9{2}',\n NO: 'NO9{9}MVA',\n PL: 'PL9{10}',\n PT: 'PT9{9}',\n RO: 'RO9{2,10}',\n SE: 'SE9{12}',\n SI: 'SI9{8}',\n SK: 'SK9{10}',\n UK: 'GB9{9}',\n XI: 'XI9{9}',\n}\n\nconst removeTaxInputMask = (element) => {\n if (element.inputmask) {\n element.inputmask.remove()\n }\n}\n\nfunction applyTaxInputMask(element, country) {\n if (!Object.prototype.hasOwnProperty.call(lookupTable, country)) {\n removeTaxInputMask(element)\n\n return\n }\n\n const mask = lookupTable[country]\n const options = {\n casing: 'upper',\n clearMaskOnLostFocus: true,\n clearIncomplete: true,\n onhover: false,\n placeholder: '_',\n onincomplete: () => removeTaxInputMask(element),\n }\n\n Inputmask(mask, options).mask(element)\n}\n\nexport { applyTaxInputMask }\n","import { default as Inputmask } from 'inputmask/dist/inputmask.es6.js'\n\nconst lookupTable = {\n AT: '+439{4,13}',\n BE: '+329{8,10}',\n BG: '+35\\\\99{7,9}',\n CH: '+419{9}',\n CY: '+3579{8}',\n CZ: '+4209{9}',\n DE: '+4\\\\99{3,12}',\n DK: '+459{8}',\n EE: '+3729{7,8}',\n ES: '+349{9}',\n FI: '+3589{5,12}',\n FR: '+339{9}',\n GB: '+449{7,10}',\n GR: '+309{4,10}',\n HR: '+3859{8,9}',\n HU: '+369{8,9}',\n IE: '+3539{7,10}',\n IS: '+3549{7}',\n IT: '+3\\\\99{6,12}',\n LI: '+4239{7,12}',\n LT: '+3709{8}',\n LU: '+3529{8,12}',\n LV: '+3719{8}',\n MC: '+3779{8,9}',\n MT: '+3569{8}',\n NL: '+319{9}',\n NO: '+479{4,12}',\n PL: '+489{9}',\n PT: '+3519{9}',\n RO: '+409{9}',\n SE: '+469{6,9}',\n SI: '+3869{8}',\n SK: '+4219{9}',\n UK: '+449{7,10}',\n XI: '+449{7,10}',\n}\n\nconst removePhoneInputMask = (element) => {\n if (element.inputmask) {\n element.inputmask.remove()\n }\n}\n\nconst applyPhoneInputMask = (element, country) => {\n if (!Object.prototype.hasOwnProperty.call(lookupTable, country)) {\n removePhoneInputMask(element)\n\n return\n }\n\n const mask = lookupTable[country]\n const options = {\n clearMaskOnLostFocus: true,\n clearIncomplete: true,\n onhover: false,\n placeholder: '_',\n onincomplete: () => removePhoneInputMask(element),\n }\n\n Inputmask(mask, options).mask(element)\n}\n\nexport { applyPhoneInputMask }\n","import $ from 'jquery'\n\nimport { applyPhoneInputMask } from '../../utilities/inputmask/phone.js'\nimport { applyTaxInputMask } from '../../utilities/inputmask/tax.js'\nimport { debouncePromise } from '../../utilities/functions.js'\n\n// enable jQuery country selector modal plugin\n$('.country-selector-billing').countrySwitcher({\n modal: document.querySelector('#country-choice-modal'),\n})\n\n// show or hide b2b customer fields\nconst toggleBusinessFields = ({ target }) => {\n const $fields = $('#businessFields')\n\n if ('business' === target.value) {\n $fields.slideDown('fast')\n } else {\n $fields.slideUp('fast')\n }\n}\n\n// lookup address by zipcode and housenr\nconst lookupAddress = debouncePromise(async (form) => {\n const $spinner = $('.spinner')\n\n $spinner.fadeIn()\n\n const url = new URL(form.dataset.postalcodeapi, window.location.origin)\n const zipcode = String(form.querySelector('input[data-autocomplete=\"zipcode\"]').value).replace(/\\s/g, '')\n const housenr = Number(form.querySelector('input[data-autocomplete=\"address-number\"]').value)\n const query = new URLSearchParams({\n zipcode,\n 'address-number': housenr,\n }).toString()\n\n form.querySelector('input[data-autocomplete=\"street\"]').readOnly = true\n form.querySelector('input[data-autocomplete=\"city\"]').readOnly = true\n\n return fetch(`${url}?${query}`)\n .then((response) => {\n if (!response.ok) {\n return Promise.reject(response)\n }\n\n return response.json()\n })\n .finally(() => {\n form.querySelector('input[data-autocomplete=\"street\"]').readOnly = false\n form.querySelector('input[data-autocomplete=\"city\"]').readOnly = false\n $spinner.fadeOut()\n })\n})\n\nconst autocompleteAddress = (form) => {\n if ('NL' !== form.querySelector('input[name$=\"[country]\"]:checked').value) {\n return\n }\n\n if (form.querySelector('input[data-autocomplete=\"zipcode\"]').value <= 5) {\n return\n }\n\n if (form.querySelector('input[data-autocomplete=\"address-number\"]').value < 1) {\n return\n }\n\n lookupAddress(form).then(\n ({ street, city }) => {\n form.querySelector('input[data-autocomplete=\"street\"]').value = street\n form.querySelector('input[data-autocomplete=\"city\"]').value = city\n },\n () => {\n /* ignore errors */\n },\n )\n}\n\nconst eventHandlers = {\n change: (event) => {\n const { target } = event\n\n if (target.matches('input[name$=\"[orderType]\"]')) {\n void toggleBusinessFields(event)\n }\n },\n submit: (event) => {\n const { target } = event\n\n if (!target.reportValidity()) {\n event.preventDefault()\n }\n },\n keyup: (event) => {\n const { target, currentTarget: form } = event\n\n if (target.matches('input[data-autocomplete=\"zipcode\"], input[data-autocomplete=\"address-number\"]')) {\n void autocompleteAddress(form)\n }\n },\n focusin: (event) => {\n const { target, currentTarget: form } = event\n\n if (target.matches('input[name*=\"tax\"]')) {\n applyTaxInputMask(target, form.querySelector('select[name*=\"country\"] option:checked').value)\n }\n\n if (target.matches('input[name*=\"phone\"]')) {\n applyPhoneInputMask(target, form.querySelector('select[name*=\"country\"] option:checked').value)\n }\n },\n}\n\nconst form = document.querySelector('form[name^=\"register\"]')\n\nfor (const [event, handler] of Object.entries(eventHandlers)) {\n form?.addEventListener(event, handler)\n}\n"],"names":["module","exports","jQuery","debounce","callback","timeoutId","wait","arguments","length","undefined","_len","args","Array","_key","clearTimeout","setTimeout","debouncePromise","_len2","_key2","Promise","resolve","lookupTable","AT","BE","BG","CH","CY","CZ","DE","DK","EE","ES","FI","FR","GB","GR","HR","HU","IE","IS","IT","LI","LT","LU","LV","MC","MT","NL","NO","PL","PT","RO","SE","SI","SK","UK","XI","removeTaxInputMask","element","inputmask","remove","applyTaxInputMask","country","Object","prototype","hasOwnProperty","call","mask","options","casing","clearMaskOnLostFocus","clearIncomplete","onhover","placeholder","onincomplete","Inputmask","removePhoneInputMask","applyPhoneInputMask","$","countrySwitcher","modal","document","querySelector","lookupAddress","async","$spinner","fadeIn","url","URL","form","dataset","postalcodeapi","window","location","origin","zipcode","String","value","replace","housenr","Number","query","URLSearchParams","toString","readOnly","fetch","then","response","ok","json","reject","finally","fadeOut","eventHandlers","change","event","target","matches","_ref","$fields","slideDown","slideUp","toggleBusinessFields","submit","reportValidity","preventDefault","keyup","currentTarget","_ref2","street","city","autocompleteAddress","focusin","handler","entries","addEventListener"],"sourceRoot":""}