{"version":3,"file":"f6ba02c563f09bc451f5.js","mappings":"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","sources":["webpack://goshop/./src/js/modules/front-validation.js"],"sourcesContent":["import MoveTo from 'moveto';\n\nimport { isVisible, showLoader, hideLoader } from './utils/utils';\nimport { commentFormSubmit } from './general/comments';\nimport { sendQuestion } from './question-form';\n\nconst findFirstVisible = (toValidate) => {\n const invalids = Array.prototype.slice.call(toValidate.querySelectorAll('.invalid'));\n return invalids.find((item) => isVisible(item));\n}\n\nvar match = window.navigator.userAgent.match(/Firefox\\/([0-9]+)\\./);\n\nif (match) {\n var ver = match ? parseInt(match[1]) : 0;\n\n if (ver < 85) {\n document.body.classList.add('older-browser');\n }\n}\n\nexport default function (toValidateList) {\n\n class Validator {\n constructor(toValidate) {\n this.toValidate = toValidate;\n\n this.init();\n this.applyEvents();\n\n //IMask\n const maskedFields = this.toValidate.querySelectorAll('[data-masked-field]');\n\n if (maskedFields.length > 0) {\n function checkRealValue(mF) {\n const realValue = mF._unmaskedValue;\n const realNeeded = mF.masked._blocks.filter(charObj => charObj.isOptional === false);\n\n if (realValue.length !== realNeeded.length) {\n return false;\n } else {\n return true;\n }\n }\n\n import('imask').then((module) => {\n maskedFields.forEach(field => {\n const maskOptions = {\n mask: field.getAttribute('data-masked-field'),\n lazy: false\n };\n const maskedField = module.default(field, maskOptions);\n\n maskedField.on('complete', () => {\n this.markAsValid(field);\n });\n\n maskedField.on('accept', () => {\n if (field.parentElement.classList.contains('valid')) {\n this.markAsInvalid(field);\n }\n });\n\n field.addEventListener('focusout', () => {\n if (!checkRealValue(maskedField)) {\n this.markAsInvalid(field);\n }\n if (maskedField._unmaskedValue === \"\") {\n field.parentElement.classList.remove('invalid');\n }\n });\n\n field.addEventListener('mask-submit', () => {\n if (!field.parentElement.classList.contains('valid')) {\n this.markAsInvalid(field);\n }\n });\n\n this.checkFilled(field);\n if (field.parentElement.classList.contains('filled') && checkRealValue(maskedField)) {\n this.markAsValid(field);\n }\n });\n });\n }\n }\n\n init() {\n this.allFields = [...this.toValidate.querySelectorAll('.field-wrapper')].map(fieldWrapper => fieldWrapper.firstElementChild);\n\n // Wymagane do walidacji\n this.required = [...this.toValidate.querySelectorAll('[data-validator*=\"required\"]')];\n\n // Pola typu tekstowego\n this.inputFields = this.allFields.filter(field => {\n return field.type === 'text' ||\n field.type === 'textarea' ||\n field.type === 'password' ||\n field.type === 'email';\n });\n\n // Checkbox\n this.checkboxes = this.required.filter(required => required.type === 'checkbox');\n\n // Select\n this.selects = this.allFields.filter(field => field.type === 'select-one');\n\n // Nadanie klasy 'filled' wypełnionym początkowo polom\n [...this.inputFields, ...this.selects].forEach(field => {\n this.checkFilled(field);\n if (field.parentElement.classList.contains('filled')) {\n this.processField(field);\n }\n });\n }\n\n applyEvents() {\n this.inputFields.forEach(inputField => {\n inputField.addEventListener('input', (e) => {\n if (e.target.hasAttribute('data-masked-field')) return;\n this.processField(e.target);\n });\n\n inputField.addEventListener('focusin', (e) => {\n if (e.target.hasAttribute('data-masked-field')) return;\n this.checkFilled(e.target);\n this.processField(e.target);\n });\n\n inputField.addEventListener('focusout', (e) => {\n this.checkFilled(e.target);\n });\n });\n\n [...this.checkboxes, ...this.selects].forEach(checkbox => {\n checkbox.addEventListener('change', (e) => {\n this.processField(e.target);\n });\n });\n\n // Form\n if (this.toValidate.tagName === 'FORM') {\n this.toValidate.addEventListener('submit', (e) => this.submitForm(e));\n }\n }\n\n processField(field) {\n if (field.hasAttribute('data-validator')) {\n const validations = field.getAttribute('data-validator').split(', ');\n const numberOfValidations = validations.length;\n let passedObj;\n let message;\n\n if (field.hasAttribute('data-sanitize')) {\n const sanitizationsArr = field.getAttribute('data-sanitize').split(', ');\n const numberOfSanitizations = sanitizationsArr.length;\n\n for (let i = 0; i < numberOfSanitizations; i++) {\n if (this.sanitizations[sanitizationsArr[i]] === undefined) continue;\n const fieldTemp = field;\n fieldTemp.value = this.sanitizations[sanitizationsArr[i]](field.value);\n }\n }\n\n if (!field.hasAttribute('data-masked-field')) {\n for (let i = 0; i < numberOfValidations; i++) {\n if (validations[i] === 'required') continue;\n\n if (validations[i].startsWith('text')) {\n const values = validations[i].split('-');\n passedObj = this.rules['text'](field, values[1], values[2]);\n } else {\n passedObj = this.rules[validations[i]](field);\n }\n\n if (!passedObj.passed) {\n message = passedObj.message;\n this.markAsInvalid(field, message);\n break;\n }\n }\n\n if (!message) {\n this.markAsValid(field);\n } else {\n this.updateMessageText(field, message);\n }\n } else {\n field.dispatchEvent(new CustomEvent('mask-submit'));\n }\n } else if (field.type === 'select-one') {\n let passedObj = this.rules['select'](field);\n let message;\n\n if (!passedObj.passed) {\n message = passedObj.message;\n this.markAsInvalid(field, message);\n } else {\n this.markAsValid(field);\n }\n }\n }\n\n markAsInvalid(field, message) {\n const parent = field.parentNode;\n\n if (!parent.classList.contains('invalid')) {\n if (message) {\n const hint = document.createElement('div');\n hint.className = 'form-hint';\n hint.innerText = message;\n parent.appendChild(hint);\n }\n\n parent.classList.remove('valid');\n parent.classList.add('invalid');\n }\n };\n\n updateMessageText(field, message) {\n field.parentNode.querySelector('.form-hint').innerText = message;\n };\n\n markAsValid(field) {\n const parent = field.parentNode;\n const elem = parent.querySelector('.form-hint');\n\n parent.classList.remove('invalid');\n parent.classList.add('valid');\n\n if (elem) {\n parent.removeChild(elem);\n }\n\n this.checkFilled(field);\n };\n\n checkFilled(field) {\n if (field.type === 'select-one') {\n\n if (field.value !== '') {\n field.parentElement.classList.add('filled');\n }\n\n return;\n }\n\n if (field.value !== '') {\n field.parentElement.classList.add('filled');\n } else {\n field.parentElement.classList.remove('filled');\n }\n }\n\n submitForm(e) {\n const isModal = window.currentModalInstance;\n const fields = this.required;\n const visibleFields = fields.filter((field) => isVisible(field.parentNode));\n\n if (!visibleFields.every((field) => field.parentNode.classList.contains('valid'))) {\n e.preventDefault();\n\n const isCartPage = document.body.getAttribute('data-type') === 'cart';\n\n fields.forEach((field) => {\n this.processField(field);\n\n if (field.type === 'select-one') return;\n field.parentNode.classList.add('filled');\n });\n\n if (!isModal) {\n const moveTo = new MoveTo({ tolerance: (isCartPage ? 30 : window.scrollOffset) });\n const target = findFirstVisible(this.toValidate);\n\n moveTo.move(target);\n }\n return;\n }\n\n if (document.querySelector('.cart-side-summary')) {\n const submitSideButton = document.querySelector('.cart-side-summary .confirm-button');\n if (submitSideButton) {\n submitSideButton.classList.add('button-disabled');\n }\n }\n\n const formSubmitType = this.toValidate.getAttribute('data-run-validator');\n\n switch (formSubmitType) {\n case 'comment-product-form':\n e.preventDefault();\n commentFormSubmit(this.toValidate);\n break;\n case 'ask-question-form':\n e.preventDefault();\n sendQuestion(this.toValidate);\n break;\n }\n\n if (this.toValidate.getAttribute('data-submitting') === '1') {\n e.preventDefault();\n }\n\n this.toValidate.setAttribute('data-submitting', '1');\n showLoader();\n }\n\n // Formatowanie przed walidacją\n sanitizations = {\n trim: (field) => {\n return field.trim();\n },\n toUpperCase: (field) => {\n return field.toUpperCase();\n }\n }\n\n // Walidacje\n rules = {\n text: (field, minValue, maxValue) => {\n const tempString = field.value.replace(/ /g, \"\");\n\n const currentLength = tempString.length;\n const minMax = !!maxValue;\n\n return {\n passed: minMax ? (currentLength >= minValue && currentLength <= maxValue) : (currentLength >= minValue),\n message: field.dataset.validatorMessage || (minMax ? `Min. znaków: ${minValue}, maks. znaków: ${maxValue}` : `Min. znaków: ${minValue}`)\n };\n },\n email: (field) => {\n return {\n passed: /^(([^<>()\\[\\]\\\\.,;:\\s@\"]+(\\.[^<>()\\[\\]\\\\.,;:\\s@\"]+)*)|(\".+\"))@((\\[[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}])|(([a-zA-Z\\-0-9]+\\.)+[a-zA-Z]{2,}))$/i.test(field.value),\n message: field.dataset.validatorMessage || 'Podaj prawidłowy email'\n };\n },\n phone: (field) => {\n let passed = false;\n let message = false;\n const str = field.value || '0';\n const test = str.match(/(\\d){1}/g);\n\n if (test && test.length >= 9) {\n passed = true;\n } else {\n message = field.dataset.validatorMessage || 'Podaj numer telefonu';\n }\n\n return {\n passed: passed,\n message: message\n };\n },\n zip: (field) => {\n let passed = false;\n let message = false;\n const str = field.value || \"0\";\n const test = str.match(/(\\d){1}/g);\n\n if (test && test.length === 5) {\n passed = true;\n } else {\n message = field.dataset.validatorMessage || 'Podaj kod pocztowy';\n }\n\n return {\n passed: passed,\n message: message\n };\n },\n nip: (field) => {\n let passed = false;\n let message = false;\n const nip = field.value;\n\n const validateNIP = (nip) => {\n if (nip === null)\n return false;\n nip = nip.replace(/\\-/g, '');\n if (nip.length !== 10)\n return false;\n\n for (var i = 0; i < 10; i++)\n if (isNaN(nip[i]))\n return false;\n\n let sum = 6 * nip[0] +\n 5 * nip[1] +\n 7 * nip[2] +\n 2 * nip[3] +\n 3 * nip[4] +\n 4 * nip[5] +\n 5 * nip[6] +\n 6 * nip[7] +\n 7 * nip[8];\n sum %= 11;\n if (parseInt(nip[9]) !== sum)\n return false;\n\n return true;\n }\n\n if (validateNIP(nip)) {\n passed = true;\n } else {\n message = field.dataset.validatorMessage || 'Podaj prawidłowy NIP';\n }\n\n return {\n passed: passed,\n message: message\n };\n },\n checkbox: (field) => {\n return {\n passed: field.checked,\n message: field.dataset.validatorMessage || 'Akceptacja jest wymagana, aby przejść dalej'\n };\n },\n select: (field) => {\n return {\n passed: field.value !== '',\n message: 'Wybierz jedną z opcji'\n };\n },\n password(field) {\n this.comparison(field);\n\n return {\n passed: /^([^\\s]){5,}$/i.test(field.value),\n message: field.dataset.validatorMessage || 'Co najmniej 5 znaków (bez spacji)'\n };\n },\n comparison: (field) => {\n let passed = false;\n let message = false;\n\n if (field.dataset.comparison) {\n const fieldToCompare = this.toValidate.querySelector('input[name=\"' + field.dataset.comparison + '\"]');\n\n if (fieldToCompare) {\n if (field.value === fieldToCompare.value) {\n passed = true;\n } else {\n message = field.dataset.validatorMessage || 'Hasła są różne';\n }\n }\n } else {\n const otherField = this.toValidate.querySelector('input[data-comparison]');\n\n if (otherField) {\n this.processField(otherField);\n }\n }\n\n return {\n passed: passed,\n message: message\n };\n }\n }\n }\n\n toValidateList.forEach(toValidate => new Validator(toValidate));\n}"],"names":["findFirstVisible","toValidate","Array","prototype","slice","call","querySelectorAll","find","item","isVisible","match","window","navigator","userAgent","parseInt","document","body","classList","add","toValidateList","Validator","constructor","_defineProperty","trim","field","toUpperCase","text","minValue","maxValue","currentLength","value","replace","length","minMax","passed","message","dataset","validatorMessage","email","test","phone","zip","nip","i","isNaN","sum","validateNIP","checkbox","checked","select","password","this","comparison","fieldToCompare","querySelector","otherField","processField","init","applyEvents","maskedFields","checkRealValue","mF","realValue","_unmaskedValue","realNeeded","masked","_blocks","filter","charObj","isOptional","then","module","forEach","maskOptions","mask","getAttribute","lazy","maskedField","default","on","markAsValid","parentElement","contains","markAsInvalid","addEventListener","remove","checkFilled","allFields","map","fieldWrapper","firstElementChild","required","inputFields","type","checkboxes","selects","inputField","e","target","hasAttribute","tagName","submitForm","validations","split","numberOfValidations","passedObj","sanitizationsArr","numberOfSanitizations","undefined","sanitizations","dispatchEvent","CustomEvent","startsWith","values","rules","updateMessageText","parent","parentNode","hint","createElement","className","innerText","appendChild","elem","removeChild","isModal","currentModalInstance","fields","every","preventDefault","isCartPage","moveTo","MoveTo","tolerance","scrollOffset","move","submitSideButton","commentFormSubmit","sendQuestion","setAttribute","showLoader"],"sourceRoot":""}