{"version":3,"file":"assets/scripts/signin.bundle.js","mappings":"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","sources":["webpack://togg-onboarding-fe/./app/assets/scripts/helpers/Validation.ts","webpack://togg-onboarding-fe/./app/assets/scripts/components/InputPassword.ts","webpack://togg-onboarding-fe/./app/assets/scripts/pages/SignIn.ts"],"sourcesContent":["export default class Validation {\r\n constructor() {\r\n console.log('Validation');\r\n }\r\n\r\n /**\r\n * @define showError\r\n * @description Show error message\r\n * @param input\r\n * @param message\r\n * @return void\r\n */\r\n showError(input: HTMLInputElement, message: string) {\r\n let formGroup: HTMLElement | null = input.parentElement;\r\n\r\n if (input?.parentElement?.classList.contains('iti')) {\r\n formGroup = input.parentElement.parentElement;\r\n }\r\n\r\n if (formGroup) {\r\n if (formGroup.classList.contains('o-validation--success')) {\r\n formGroup.classList.remove('o-validation', 'o-validation--success');\r\n }\r\n formGroup.classList.add('o-validation', 'o-validation--error');\r\n const errorMessage = formGroup.querySelector(\r\n '.o-validation__message-text'\r\n ) as HTMLElement;\r\n errorMessage.innerText = message;\r\n }\r\n }\r\n\r\n /**\r\n * @define showSuccess\r\n * @description Show success message\r\n * @param input\r\n * @return void\r\n */\r\n showSuccess(input: HTMLInputElement) {\r\n let formGroup: HTMLElement | null = input.parentElement;\r\n\r\n if (input?.parentElement?.classList.contains('iti')) {\r\n formGroup = input.parentElement.parentElement;\r\n }\r\n\r\n if (formGroup) {\r\n if (formGroup.classList.contains('o-validation--error')) {\r\n formGroup.classList.remove('o-validation', 'o-validation--error');\r\n }\r\n formGroup.classList.add('o-validation', 'o-validation--success');\r\n const errorMessage = formGroup.querySelector(\r\n '.o-validation__message-text'\r\n ) as HTMLElement;\r\n errorMessage.innerText = '';\r\n }\r\n }\r\n\r\n /**\r\n * @define validatePassword\r\n * @description Validate password field\r\n * @param formElementInfo\r\n * @return void\r\n */\r\n validatePassword(formElementInfo: any) {\r\n const self = this;\r\n\r\n const formElement = document.getElementById(\r\n formElementInfo.id\r\n ) as HTMLInputElement;\r\n const formElementValue = formElement.value.trim();\r\n\r\n if (formElementValue === '') {\r\n self.showError(formElement, formElementInfo.errorMessage.empty);\r\n return false;\r\n } else if (formElementValue.length < formElementInfo.minChar) {\r\n self.showError(formElement, formElementInfo.errorMessage.invalid);\r\n return false;\r\n } else if (formElementValue.length > formElementInfo.maxChar) {\r\n self.showError(formElement, formElementInfo.errorMessage.invalid);\r\n return false;\r\n } else if (\r\n formElementInfo.regex !== '' &&\r\n !formElementValue.match(formElementInfo.regex)\r\n ) {\r\n self.showError(formElement, formElementInfo.errorMessage.invalid);\r\n return false;\r\n } else {\r\n self.showSuccess(formElement);\r\n return true;\r\n }\r\n }\r\n\r\n /**\r\n * @define validateConfirmPassword\r\n * @description Validate confirm password field\r\n * @param formElementInfo - confirm form element info\r\n * @param passwordElementInfo - main password element info\r\n * @return void\r\n */\r\n validateConfirmPassword(formElementInfo: any, passwordElementInfo: any) {\r\n const self = this;\r\n\r\n const formElement = document.getElementById(\r\n formElementInfo.id\r\n ) as HTMLInputElement;\r\n const formElementValue = formElement.value.trim();\r\n\r\n // first password element\r\n const passwordElement = document.getElementById(\r\n passwordElementInfo.id\r\n ) as HTMLInputElement;\r\n const passwordElementValue = passwordElement.value.trim();\r\n\r\n if (formElementValue !== passwordElementValue) {\r\n self.showError(formElement, formElementInfo.errorMessage.mismatch);\r\n return false;\r\n } else {\r\n self.showSuccess(formElement);\r\n return true;\r\n }\r\n }\r\n\r\n /**\r\n * @define validateEmail\r\n * @description Validate email field\r\n * @param formElementInfo\r\n * @return void\r\n */\r\n validateEmail(formElementInfo: any) {\r\n const self = this;\r\n\r\n const formElement = document.getElementById(\r\n formElementInfo.id\r\n ) as HTMLInputElement;\r\n const formElementValue = formElement.value.trim();\r\n\r\n if (formElementValue === '') {\r\n self.showError(formElement, formElementInfo.errorMessage.empty);\r\n return false;\r\n } else if (formElementValue.length < formElementInfo.minChar) {\r\n self.showError(formElement, formElementInfo.errorMessage.invalid);\r\n return false;\r\n } else if (formElementValue.length > formElementInfo.maxChar) {\r\n self.showError(formElement, formElementInfo.errorMessage.invalid);\r\n return false;\r\n } else if (!formElementValue.match(formElementInfo.regex)) {\r\n self.showError(formElement, formElementInfo.errorMessage.invalid);\r\n return false;\r\n } else {\r\n self.showSuccess(formElement);\r\n return true;\r\n }\r\n }\r\n\r\n /**\r\n * @define validateCode\r\n * @description Validate code field\r\n * @param formElementInfo\r\n * @return void\r\n */\r\n validateCode(formElementInfo: any) {\r\n const self = this;\r\n\r\n const formElement = document.getElementById(\r\n formElementInfo.id\r\n ) as HTMLInputElement;\r\n const formElementValue = formElement.value.trim();\r\n\r\n if (formElementValue === '') {\r\n self.showError(formElement, formElementInfo.errorMessage.empty);\r\n return false;\r\n } else if (formElementValue.length < formElementInfo.minChar) {\r\n self.showError(formElement, formElementInfo.errorMessage.invalid);\r\n return false;\r\n } else if (formElementValue.length > formElementInfo.maxChar) {\r\n self.showError(formElement, formElementInfo.errorMessage.invalid);\r\n return false;\r\n } else if (!formElementValue.match(formElementInfo.regex)) {\r\n self.showError(formElement, formElementInfo.errorMessage.invalid);\r\n return false;\r\n } else {\r\n self.showSuccess(formElement);\r\n return true;\r\n }\r\n }\r\n\r\n /**\r\n * @define validateText\r\n * @description Validate text field\r\n * @param formElementInfo\r\n * @return void\r\n */\r\n validateText(formElementInfo: any) {\r\n const self = this;\r\n\r\n const formElement = document.getElementById(\r\n formElementInfo.id\r\n ) as HTMLInputElement;\r\n\r\n let formElementValue = formElement.value.trim();\r\n\r\n if (formElement?.parentElement?.classList.contains('iti')) {\r\n // get hidden input value sibling of form element\r\n formElementValue = (\r\n formElement?.parentElement?.querySelector(\r\n 'input[type=\"hidden\"]'\r\n ) as HTMLInputElement\r\n ).value.trim();\r\n }\r\n\r\n if (formElementInfo.required) {\r\n if (formElementValue === '') {\r\n self.showError(formElement, formElementInfo.errorMessage.empty);\r\n return false;\r\n } else if (\r\n formElementInfo.minChar &&\r\n formElementValue.length < formElementInfo.minChar\r\n ) {\r\n self.showError(formElement, formElementInfo.errorMessage.invalid);\r\n return false;\r\n } else if (\r\n formElementInfo.maxChar &&\r\n formElementValue.length > formElementInfo.maxChar\r\n ) {\r\n self.showError(formElement, formElementInfo.errorMessage.invalid);\r\n return false;\r\n } else if (\r\n formElementInfo.regex !== '' &&\r\n !formElementValue.match(formElementInfo.regex)\r\n ) {\r\n self.showError(formElement, formElementInfo.errorMessage.invalid);\r\n return false;\r\n } else {\r\n self.showSuccess(formElement);\r\n return true;\r\n }\r\n } else {\r\n return true;\r\n }\r\n }\r\n\r\n /**\r\n * @define validateNumber\r\n * @description Validate number field\r\n * @param formElementInfo\r\n * @return void\r\n */\r\n validateNumber(formElementInfo: any) {\r\n const self = this;\r\n\r\n const formElement = document.getElementById(\r\n formElementInfo.id\r\n ) as HTMLInputElement;\r\n const formElementValue = formElement.value.trim();\r\n if (formElementInfo.required) {\r\n if (formElementValue === '') {\r\n self.showError(formElement, formElementInfo.errorMessage.empty);\r\n return false;\r\n } else if (\r\n formElementInfo.min &&\r\n parseInt(formElementValue, 10) < formElementInfo.min\r\n ) {\r\n self.showError(formElement, formElementInfo.errorMessage.invalid);\r\n return false;\r\n } else if (\r\n formElementInfo.max &&\r\n parseInt(formElementValue, 10) > formElementInfo.max\r\n ) {\r\n self.showError(formElement, formElementInfo.errorMessage.invalid);\r\n return false;\r\n } else if (\r\n formElementInfo.regex !== '' &&\r\n !formElementValue.match(formElementInfo.regex)\r\n ) {\r\n self.showError(formElement, formElementInfo.errorMessage.invalid);\r\n return false;\r\n } else {\r\n self.showSuccess(formElement);\r\n return true;\r\n }\r\n } else {\r\n return true;\r\n }\r\n }\r\n\r\n /**\r\n * @define validateDate\r\n * @description Validate date field\r\n * @param formElementInfo\r\n * @return void\r\n */\r\n validateDate(formElementInfo: any) {\r\n const self = this;\r\n\r\n const formElement = document.getElementById(\r\n formElementInfo.id\r\n ) as HTMLInputElement;\r\n const formElementValue = formElement.value.trim();\r\n\r\n if (formElementInfo.required) {\r\n if (formElementValue === '') {\r\n self.showError(formElement, formElementInfo.errorMessage.empty);\r\n return false;\r\n } else if (\r\n formElementInfo.minChar &&\r\n formElementValue.length < formElementInfo.minChar\r\n ) {\r\n self.showError(formElement, formElementInfo.errorMessage.invalid);\r\n return false;\r\n } else if (\r\n formElementInfo.maxChar &&\r\n formElementValue.length > formElementInfo.maxChar\r\n ) {\r\n self.showError(formElement, formElementInfo.errorMessage.invalid);\r\n return false;\r\n } else if (\r\n formElementInfo.regex !== '' &&\r\n !formElementValue.match(formElementInfo.regex)\r\n ) {\r\n self.showError(formElement, formElementInfo.errorMessage.invalid);\r\n return false;\r\n } else {\r\n self.showSuccess(formElement);\r\n return true;\r\n }\r\n } else {\r\n return true;\r\n }\r\n }\r\n\r\n /**\r\n * @define validateSelect\r\n * @description Validate select field\r\n * @param formElementInfo\r\n * @return void\r\n */\r\n validateSelect(formElementInfo: any) {\r\n const self = this;\r\n\r\n const formElement = document.getElementById(\r\n formElementInfo.id\r\n ) as HTMLInputElement;\r\n const formElementValue = formElement.value.trim();\r\n\r\n if (formElementInfo.required) {\r\n if (formElementValue === '' || formElementValue === '0') {\r\n self.showError(formElement, formElementInfo.errorMessage.empty);\r\n return false;\r\n } else {\r\n self.showSuccess(formElement);\r\n return true;\r\n }\r\n } else {\r\n self.showSuccess(formElement);\r\n return true;\r\n }\r\n }\r\n\r\n isEmpty(str: any) {\r\n return !str || str.length === 0;\r\n }\r\n}\r\n","export default class InputPassword {\r\n private passwordInputs: NodeListOf;\r\n\r\n constructor() {\r\n // Get all password inputs\r\n this.passwordInputs = document.querySelectorAll('input[type=\"password\"]');\r\n\r\n // default events\r\n this.events();\r\n }\r\n\r\n /**\r\n * @define events\r\n * @description default events when page loaded\r\n */\r\n events() {\r\n this.passwordInputs.forEach((input) => {\r\n const formInput: HTMLInputElement = input;\r\n const formGroup = formInput?.parentElement;\r\n const showHideBtn = formGroup?.querySelector('.o-form-group__icon');\r\n const btnIcon = showHideBtn?.querySelector('.o-icon');\r\n\r\n if (showHideBtn) {\r\n showHideBtn.addEventListener('click', (e) => {\r\n e.preventDefault();\r\n if (formGroup && btnIcon) {\r\n if (formGroup.classList.contains('o-form-group--password-hide')) {\r\n // show password\r\n formGroup.classList.remove('o-form-group--password-hide');\r\n formGroup.classList.add('o-form-group--password-show');\r\n formInput.setAttribute('type', 'text');\r\n btnIcon.classList.remove('o-icon--eye');\r\n btnIcon.classList.add('o-icon--eye-off');\r\n } else if (\r\n formGroup.classList.contains('o-form-group--password-show')\r\n ) {\r\n // hide password\r\n formGroup.classList.remove('o-form-group--password-show');\r\n formGroup.classList.add('o-form-group--password-hide');\r\n formInput.setAttribute('type', 'password');\r\n btnIcon.classList.remove('o-icon--eye-off');\r\n btnIcon.classList.add('o-icon--eye');\r\n }\r\n }\r\n });\r\n }\r\n });\r\n }\r\n}\r\n","import Validation from '../helpers/Validation';\r\nimport InputPassword from '../components/InputPassword';\r\n\r\nclass SignIn {\r\n private readonly signInForm: HTMLFormElement | null;\r\n private readonly formElements: any;\r\n private errorCount: number;\r\n private submitCount: number;\r\n private validationMessages: any;\r\n\r\n constructor() {\r\n // Get the sign in form\r\n this.signInForm = document.querySelector('#frmSignIn');\r\n\r\n // validation messages\r\n this.validationMessages = (window as any).validationMessages.signIn;\r\n\r\n this.formElements = {\r\n email: {\r\n id: 'Email',\r\n type: 'email',\r\n required: true,\r\n regex:\r\n '^[a-zA-Z0-9.!#$%&’*+/=?^_`{|}~-]+@[a-zA-Z0-9-]+(?:\\\\.[a-zA-Z0-9-]+)*$',\r\n errorMessage: {\r\n empty: this.validationMessages.emailRequired,\r\n invalid: this.validationMessages.emailInvalid\r\n },\r\n minChar: 3,\r\n maxChar: 150\r\n },\r\n password: {\r\n id: 'Password',\r\n type: 'password',\r\n required: true,\r\n regex: '^(?=.*[\\\\W_])(?=.*[A-Za-z])(?=.*\\\\d).{8,}$',\r\n errorMessage: {\r\n empty: this.validationMessages.passwordRequired,\r\n invalid: this.validationMessages.passwordInvalid\r\n },\r\n minChar: 3,\r\n maxChar: 50\r\n }\r\n };\r\n\r\n // error count for validation\r\n this.errorCount = 0;\r\n this.submitCount = 0;\r\n\r\n // default events\r\n this.events();\r\n }\r\n\r\n /**\r\n * @define events\r\n * @description default events when page loaded\r\n */\r\n events() {\r\n const self = this;\r\n\r\n // Validate on submit\r\n self.signInForm?.addEventListener('submit', (e) => {\r\n e.preventDefault();\r\n self.errorCount = 0;\r\n self.validateOnSubmit();\r\n self.submitCount++;\r\n if (self.errorCount === 0) {\r\n self.submitForm();\r\n }\r\n });\r\n\r\n // Validate on entry\r\n self.validateOnEntry();\r\n }\r\n\r\n /**\r\n * @define validateOnSubmit\r\n * @description validate on submit\r\n */\r\n validateOnSubmit() {\r\n const self = this;\r\n\r\n // for loop to get all form elements\r\n for (const key in self.formElements) {\r\n if (self.formElements.hasOwnProperty(key)) {\r\n // Get the form element\r\n const formElementInfo = self.formElements[key];\r\n\r\n if (formElementInfo.type === 'password') {\r\n if (!Validation.prototype.validatePassword(formElementInfo)) {\r\n self.errorCount++;\r\n }\r\n } else if (formElementInfo.type === 'email') {\r\n if (!Validation.prototype.validateEmail(formElementInfo)) {\r\n self.errorCount++;\r\n }\r\n }\r\n }\r\n }\r\n }\r\n\r\n /**\r\n * @define validateOnEntry\r\n * @description validate on entry and if try submit least one time\r\n */\r\n validateOnEntry() {\r\n const self = this;\r\n\r\n // for loop to get all form elements\r\n for (const key in self.formElements) {\r\n if (self.formElements.hasOwnProperty(key)) {\r\n // Get the form element\r\n const formElementInfo = self.formElements[key];\r\n const input = document.getElementById(formElementInfo.id);\r\n\r\n input?.addEventListener('input', () => {\r\n if (self.submitCount > 0) {\r\n if (formElementInfo.type === 'password') {\r\n if (!Validation.prototype.validatePassword(formElementInfo)) {\r\n self.errorCount++;\r\n }\r\n } else if (formElementInfo.type === 'email') {\r\n if (!Validation.prototype.validateEmail(formElementInfo)) {\r\n self.errorCount++;\r\n }\r\n }\r\n }\r\n });\r\n }\r\n }\r\n }\r\n\r\n /**\r\n * @define submitForm\r\n * @description trigger submit again\r\n */\r\n submitForm() {\r\n this.signInForm?.submit();\r\n this.submitCount = 0;\r\n (window as any).OGOO.layoutLoader.showLoader();\r\n }\r\n}\r\n\r\nnew InputPassword();\r\nnew SignIn();\r\n"],"names":["Validation","console","log","input","message","formGroup","parentElement","classList","contains","remove","add","querySelector","innerText","formElementInfo","self","this","formElement","document","getElementById","id","formElementValue","value","trim","showError","errorMessage","empty","length","minChar","maxChar","invalid","regex","match","showSuccess","passwordElementInfo","mismatch","required","min","parseInt","max","str","InputPassword","passwordInputs","querySelectorAll","events","forEach","formInput","showHideBtn","btnIcon","addEventListener","e","preventDefault","setAttribute","SignIn","signInForm","validationMessages","window","signIn","formElements","email","type","emailRequired","emailInvalid","password","passwordRequired","passwordInvalid","errorCount","submitCount","validateOnSubmit","submitForm","validateOnEntry","key","hasOwnProperty","prototype","validatePassword","validateEmail","submit","OGOO","layoutLoader","showLoader"],"sourceRoot":""}