{ "version": 3, "sources": ["../../../Vettvangur.Frontend/src/scripts/utility/recaptcha.ts", "../../../Vettvangur.Frontend/src/scripts/utility/message.ts", "../../../Vettvangur.Frontend/src/scripts/utility/validation/validation-utility.ts", "../../../Vettvangur.Frontend/src/scripts/utility/validation/validation-plugin.ts", "../../../Vettvangur.Frontend/src/scripts/components/form.ts"], "sourcesContent": ["/**\r\n * @type interface\r\n * @description Here we are extending the Window interface with the grecaptcha property.\r\n */\r\ndeclare let grecaptcha: any\r\n\r\n/**\r\n * @type Function\r\n * @description This is a companion function that is used in \"handleRecaptcha\", can also be used as a standalone.\r\n * @returns A boolean value that indicates if the recaptcha is valid or not.\r\n * @example if (validateRecaptcha()) { // Do something }\r\n */\r\nexport function validateRecaptcha(): boolean {\r\n const v = grecaptcha.getResponse()\r\n\r\n if (v.length === 0) {\r\n return false\r\n }\r\n\r\n return true\r\n}\r\n\r\n/**\r\n * @type Function\r\n * @param {Event} event\r\n * @param {HTMLElement} element\r\n * @description This is the function that is used to validate the recaptcha and handles the error message as well.\r\n * @return void. It will prevent the default event if the recaptcha is not valid.\r\n * @example handleRecaptcha(event, element)\r\n */\r\n\r\nexport function handleRecaptcha(event: Event, element: HTMLElement): void {\r\n if (element) {\r\n if (!element.classList.contains('hide')) {\r\n element.classList.add('hide')\r\n }\r\n\r\n if (!validateRecaptcha()) {\r\n event.preventDefault()\r\n element.classList.remove('hide')\r\n }\r\n }\r\n}\r\n", "/** IMessageHelper Interface */\r\nexport interface IMessageHelper {\r\n /**\r\n * @param {HTMLElement} element\r\n * @param {string} text?\r\n * @param {string} type?\r\n * @param {number} timer?\r\n * @example Success: messageHelper.show(element, 'This is a message', 'success', 5000)\r\n * @example Error: messageHelper.show(element, 'This is a message')\r\n */\r\n show: (element: HTMLElement, text?: string, type?: string, timer?: number) => void\r\n /**\r\n * @param {HTMLElement} element\r\n * @param {boolean} clearText?\r\n * @param {string} type?\r\n * @example reset(element, true, 'success')\r\n * @example reset(element, true)\r\n */\r\n reset: (element: HTMLElement, clearText?: boolean, type?: string) => void\r\n}\r\n\r\n/**\r\n * @description This is a helper used to show/hide messages. E.g. in forms.\r\n * @requires {string} a base class name of .message\r\n */\r\nexport const message: IMessageHelper = {\r\n show(element: HTMLElement, text = '', type = 'error', timer = 10000): void {\r\n element.style.display = 'block'\r\n\r\n if (text) {\r\n element.innerHTML = text\r\n }\r\n\r\n element.classList.add(`message--${type}`)\r\n\r\n if (timer > 0) {\r\n setTimeout(() => {\r\n this.reset(element)\r\n }, timer)\r\n }\r\n },\r\n\r\n reset(element: HTMLElement, clearText = false, type = 'error'): void {\r\n element.style.display = 'none'\r\n\r\n if (clearText) {\r\n element.innerHTML = ''\r\n }\r\n\r\n element.classList.remove(`message--${type}`)\r\n },\r\n}\r\n", "import { IValidationType } from 'utility/validation/validation-interfaces'\r\n// import { dictionary } from 'utility/dictionary'\r\n\r\n// Messages Enums\r\nexport const validationMessage = {\r\n // TODO: not working right now - dno why:\r\n // default: dictionary('valFieldIsRequired'),\r\n // email: dictionary('valEmailIsNotValid'),\r\n default: 'Please fill out this field.',\r\n email: 'This email is not valid. Please try again.',\r\n}\r\n\r\nexport enum validationType {\r\n default = 'default',\r\n // ssn = 'ssn',\r\n email = 'email',\r\n // zip = 'zip',\r\n // telephone = 'telephone',\r\n // address = 'address',\r\n // select = 'select',\r\n // selection = 'selection',\r\n}\r\n\r\n// Validation Types\r\nexport const validationTypes: IValidationType[] = [\r\n {\r\n id: validationType.default,\r\n min: 2,\r\n max: 0,\r\n pattern: null,\r\n overwrites: [],\r\n validate: [validationType.default],\r\n isValid: false,\r\n messages: [validationMessage.default],\r\n },\r\n {\r\n id: validationType.email,\r\n min: 1,\r\n max: 0,\r\n /* eslint-disable */\r\n // @ts-ignore\r\n pattern:\r\n /^(([^<>()[\\]\\\\.,;:\\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,}))$/,\r\n /* eslint-disable */\r\n overwrites: [],\r\n validate: [validationType.default, validationType.email],\r\n isValid: false,\r\n messages: [validationMessage.default, validationMessage.email],\r\n },\r\n]\r\n\r\nexport const testRegex = (value: string, pattern: RegExp): boolean => {\r\n return pattern.test(value)\r\n}\r\n", "import { IValidationType, IValidationPlugin } from 'utility/validation/validation-interfaces'\r\n\r\nimport { validationTypes, validationType, testRegex } from 'helpers/validation/validation-utility'\r\n\r\nconst validation: IValidationPlugin = {\r\n init({ items }): void {\r\n if (items) {\r\n Array.prototype.forEach.call(items, (item: HTMLInputElement) => {\r\n item.addEventListener('keyup', (e: Event & { target: HTMLInputElement }) => {\r\n this.validate(e.target, item, false)\r\n })\r\n })\r\n }\r\n },\r\n\r\n validateForm(items: NodeListOf) {\r\n let isValid = true\r\n\r\n Array.prototype.forEach.call(items, (item: HTMLInputElement) => {\r\n const validateValue = this.validate(item, item, true)\r\n\r\n if (!validateValue) {\r\n isValid = false\r\n }\r\n })\r\n\r\n return isValid\r\n },\r\n\r\n validate(target: HTMLInputElement, item: HTMLInputElement, isReturn = false) {\r\n const validation = validationTypes.find((o) => o.id === item.dataset.validate)\r\n\r\n const isValid = true\r\n\r\n if (target.value.length > 0 || !target.checked || target.value !== '') {\r\n switch (validation.id) {\r\n case validationType.default:\r\n if (isReturn) {\r\n return this.validateDefault(target, validation, isValid, isReturn)\r\n } else {\r\n this.validateDefault(target, validation, isValid, isReturn)\r\n }\r\n break\r\n case validationType.ssn:\r\n this.replacer(target)\r\n\r\n if (isReturn) {\r\n return this.validateSsn(target, validation, isValid, isReturn)\r\n } else {\r\n this.validateSsn(target, validation, isValid, isReturn)\r\n }\r\n break\r\n case validationType.email:\r\n this.replaceSpace(target)\r\n\r\n if (isReturn) {\r\n return this.validateEmail(target, validation, isValid, isReturn)\r\n } else {\r\n this.validateEmail(target, validation, isValid, isReturn)\r\n }\r\n\r\n break\r\n case validationType.zip:\r\n this.replacer(target)\r\n\r\n if (isReturn) {\r\n return this.validateZip(target, validation, isValid, isReturn)\r\n } else {\r\n this.validateZip(target, validation, isValid, isReturn)\r\n }\r\n break\r\n case validationType.telephone:\r\n this.replacer(target)\r\n\r\n if (isReturn) {\r\n return this.validateTelephone(target, validation, isValid, isReturn)\r\n } else {\r\n this.validateTelephone(target, validation, isValid, isReturn)\r\n }\r\n break\r\n case validationType.address:\r\n if (isReturn) {\r\n return this.validateAddress(target, validation, isValid, isReturn)\r\n } else {\r\n this.validateAddress(target, validation, isValid, isReturn)\r\n }\r\n break\r\n case validationType.select:\r\n if (isReturn) {\r\n return this.validateSelect(target, validation, isValid, isReturn)\r\n } else {\r\n this.validateSelect(target, validation, isValid, isReturn)\r\n }\r\n break\r\n case validationType.selection:\r\n if (isReturn) {\r\n return this.validateSelection(target, isValid, isReturn)\r\n } else {\r\n this.validateSelection(target, isValid, isReturn)\r\n }\r\n break\r\n }\r\n } else {\r\n this.set(target, validation.messages[0])\r\n }\r\n },\r\n\r\n // Validations\r\n validateDefault(target: HTMLInputElement, validation: IValidationType, isValid: boolean, isReturn = false) {\r\n if (target.value.length >= validation.min) {\r\n this.reset(target)\r\n } else {\r\n isValid = false\r\n this.set(target, validation.messages[0])\r\n }\r\n\r\n if (isReturn) {\r\n return isValid\r\n }\r\n },\r\n validateSsn(target: HTMLInputElement, validation: IValidationType, isValid: boolean, isReturn = false) {\r\n // TODO: Add kennitala package validation and use this one as fallback\r\n\r\n if (!testRegex(target.value, validation.pattern)) {\r\n this.set(target, validation.messages[1])\r\n isValid = false\r\n } else {\r\n this.reset(target)\r\n }\r\n\r\n if (isReturn) {\r\n return isValid\r\n }\r\n },\r\n validateEmail(target: HTMLInputElement, validation: IValidationType, isValid: boolean, isReturn = false) {\r\n if (!testRegex(target.value, validation.pattern)) {\r\n this.set(target, validation.messages[1])\r\n isValid = false\r\n } else {\r\n this.reset(target)\r\n }\r\n\r\n if (isReturn) {\r\n return isValid\r\n }\r\n },\r\n validateZip(target: HTMLInputElement, validation: IValidationType, isValid: boolean, isReturn = false) {\r\n if (!testRegex(target.value, validation.pattern)) {\r\n this.set(target, validation.messages[1])\r\n isValid = false\r\n } else {\r\n this.reset(target)\r\n }\r\n\r\n if (isReturn) {\r\n return isValid\r\n }\r\n },\r\n validateTelephone(target: HTMLInputElement, validation: IValidationType, isValid: boolean, isReturn = false) {\r\n if (!testRegex(target.value, validation.pattern)) {\r\n this.set(target, validation.messages[1])\r\n isValid = false\r\n } else {\r\n this.reset(target)\r\n }\r\n\r\n if (isReturn) {\r\n return isValid\r\n }\r\n },\r\n validateAddress(target: HTMLInputElement, validation: IValidationType, isValid: boolean, isReturn = false) {\r\n // TODO: Figure out a better way to validate addressess\r\n if (target.value.length >= validation.min) {\r\n this.reset(target)\r\n } else {\r\n isValid = false\r\n this.set(target, validation.messages[1])\r\n }\r\n\r\n if (isReturn) {\r\n return isValid\r\n }\r\n },\r\n validateSelect(target: HTMLInputElement, validation: IValidationType, isValid: boolean, isReturn = false) {\r\n if (target.value !== '') {\r\n this.reset(target)\r\n } else {\r\n isValid = false\r\n this.set(target, validation.messages[0])\r\n }\r\n\r\n if (isReturn) {\r\n return isValid\r\n }\r\n },\r\n validateSelection(target: HTMLInputElement, isValid: boolean, isReturn = false) {\r\n const parent = target.parentNode\r\n\r\n if (target.checked) {\r\n parent.classList.remove('input-group--error')\r\n } else {\r\n isValid = false\r\n parent.classList.add('input-group--error')\r\n }\r\n\r\n if (isReturn) {\r\n return isValid\r\n }\r\n },\r\n\r\n // Replacers\r\n replacer(target: HTMLInputElement): void {\r\n this.replaceDash(target)\r\n this.replaceSpace(target)\r\n },\r\n replaceDash(target: HTMLInputElement): void {\r\n if (target.value.includes('-')) {\r\n target.value = target.value.replace('-', '')\r\n }\r\n },\r\n replaceSpace(target: HTMLInputElement): void {\r\n if (target.value.includes(' ')) {\r\n target.value = target.value.replace(' ', '')\r\n }\r\n },\r\n\r\n // Setters\r\n set(target: HTMLInputElement, message: string): void {\r\n let parent = target.parentNode\r\n\r\n if (parent.classList.contains('input-group__wrap')) {\r\n parent = target.parentNode.parentNode\r\n }\r\n\r\n const error = parent.querySelector('.input-group__error')\r\n\r\n parent.classList.add('input-group--error')\r\n error.classList.remove('hide')\r\n error.innerHTML = message\r\n },\r\n reset(target: HTMLInputElement): void {\r\n let parent = target.parentNode\r\n\r\n if (parent.classList.contains('input-group__wrap')) {\r\n parent = target.parentNode.parentNode\r\n }\r\n\r\n const error = parent.querySelector('.input-group__error')\r\n\r\n parent.classList.remove('input-group--error')\r\n error.classList.add('hide')\r\n error.innerHTML = ''\r\n },\r\n}\r\n\r\nexport default validation\r\n", "import { handleRecaptcha } from 'helpers/recaptcha'\r\nimport { message } from 'utility/message'\r\nimport validation from 'utility/validation/validation-plugin'\r\n\r\nconst form = {\r\n el: {\r\n root: document.querySelectorAll('.form'),\r\n inputs: document.querySelectorAll('.form [required]'),\r\n recaptchaError: document.querySelector('.form .recaptcha-error'),\r\n message: document.querySelector('.message'),\r\n },\r\n init() {\r\n if (this.el.root) {\r\n this.validations()\r\n this.submit()\r\n this.shouldResetError()\r\n }\r\n },\r\n shouldResetError() {\r\n this.el.inputs.forEach((item) => {\r\n // input + select\r\n item.addEventListener('blur', (e: Event & { target: HTMLInputElement }) => {\r\n validation.validate(e.target, e.target, false)\r\n })\r\n\r\n // Checkbox + radio\r\n item.addEventListener('change', (e: Event & { target: HTMLInputElement }) => {\r\n if (e.target.type === 'checkbox' || e.target.type === 'radio') {\r\n validation.validate(e.target, e.target, false)\r\n }\r\n })\r\n })\r\n },\r\n validations() {\r\n validation.init({ items: this.el.inputs })\r\n },\r\n submit() {\r\n this.el.root.forEach((item) => {\r\n item.addEventListener('submit', (e) => {\r\n if (validation.validateForm(this.el.inputs)) {\r\n handleRecaptcha(e, this.el.recaptchaError)\r\n message.reset(this.el.message)\r\n } else {\r\n e.preventDefault()\r\n message.show(this.el.message)\r\n }\r\n })\r\n })\r\n },\r\n}\r\n\r\nexport default form\r\n"], "mappings": "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", "names": ["validateRecaptcha", "handleRecaptcha", "event", "element", "message", "element", "text", "type", "timer", "clearText", "validationMessage", "validationType", "validationTypes", "testRegex", "value", "pattern", "validation", "items", "item", "e", "isValid", "target", "isReturn", "validationTypes", "o", "validationType", "testRegex", "parent", "message", "error", "validation_plugin_default", "form", "item", "e", "validation_plugin_default", "handleRecaptcha", "message", "form_default"] }