{"version":3,"file":"./modules/FormAnimations.xxxxxxxx.js","mappings":"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","sources":["webpack:///./modules/FormAnimations.ts"],"sourcesContent":["/// \r\n\r\nimport easydropdown from 'easydropdown/dist/Easydropdown/Easydropdown.js';\r\nexport default class FormAnimations {\r\n input: HTMLInputElement[];\r\n positiveValidation: HTMLElement;\r\n field: HTMLInputElement[];\r\n dropdownWidth: number;\r\n dropDownMaxHeight: number = 440;\r\n\r\n constructor(public element: HTMLElement) {\r\n this.input = Array.from(>element.querySelectorAll('input[type=\"text\"], input[type=\"password\"]'));\r\n\r\n this.setInputEventHandler();\r\n }\r\n\r\n private setInputEventHandler() {\r\n Array.from(this.element.querySelectorAll('select')).forEach((element: HTMLSelectElement) => {\r\n const dropdown = new easydropdown(element, {\r\n behavior: {\r\n useNativeUiOnMobile: false,\r\n maxVisibleItems: 10,\r\n closeOnSelect: false\r\n },\r\n callbacks: {\r\n onOpen: () => {\r\n const onClick = (e: Event) => {\r\n dropdown.actions.close();\r\n document.removeEventListener('click', onClick, true);\r\n }\r\n\r\n document.addEventListener('click', onClick, true);\r\n this.addVisibilityIntoAccordion(dropdown);\r\n },\r\n onClose: () => {\r\n this.removeVisibilityFromAccordion(dropdown);\r\n\r\n },\r\n onSelect: () => {\r\n this.removeVisibilityFromAccordion(dropdown);\r\n }\r\n }\r\n });\r\n });\r\n\r\n Array.from(this.element.querySelectorAll('.text')).reduce((acc, text) => {\r\n const input = (text).querySelector('input');\r\n const textarea = (text).querySelector('textarea');\r\n if (textarea) this.adjustTextAreaTopPadding(textarea.closest('.textarea'), textarea);\r\n if (input && input.value.length || textarea && textarea.value.length) acc.push(text);\r\n return acc;\r\n }, []).forEach((element: HTMLInputElement) => {\r\n this.focusFilledInputs(element);\r\n });\r\n\r\n Array.from(this.element.querySelectorAll('.clear')).forEach((element: HTMLElement) => {\r\n element.addEventListener('click', (event) => this.clearInput(event));\r\n });\r\n\r\n Array.from(this.element.querySelectorAll('.nx-radio__bubble-selector--centered')).forEach((element: HTMLElement) => {\r\n element.querySelectorAll('.radio-group').forEach((radioGroup: HTMLElement) => {\r\n if (radioGroup.querySelectorAll('.nx-radio-option').length < 3) {\r\n radioGroup.classList.add('nx-radio-group--small-group-centered');\r\n }\r\n });\r\n });\r\n\r\n this.element.addEventListener('focusin', (event) => this.focusIn(event));\r\n\r\n this.element.addEventListener('input', (event) => {\r\n var target = event.target,\r\n isCheckbox = target.type === 'checkbox';\r\n\r\n (isCheckbox ? target.checked : target.value) ? this.showValid(event, true) : this.showValid(event, false);\r\n });\r\n\r\n this.element.addEventListener('focusout', (event) => {\r\n setTimeout(() => { this.focusOut(event) }, 200);\r\n });\r\n\r\n this.input.filter(i => i.value).forEach(i => i.closest('.field') && i.closest('.field').classList.add('focused'));\r\n }\r\n\r\n protected removeVisibilityFromAccordion(dropdown) {\r\n const accordionElement: HTMLElement = dropdown.selectElement.closest('.nx-expand-section__container');\r\n if (accordionElement) accordionElement.style.overflow = \"\";\r\n }\r\n\r\n protected addVisibilityIntoAccordion(dropdown) {\r\n const accordionElement: HTMLElement = dropdown.selectElement.closest('.nx-expand-section__container');\r\n if (accordionElement) accordionElement.style.overflow = \"visible\";\r\n }\r\n\r\n\r\n getFormValid() {\r\n let validationSummary = this.element.querySelector('.validation-summary');\r\n if (validationSummary && validationSummary.style.display === \"none\") {\r\n if (this.element.classList.contains('nx-form-error')) {\r\n this.element.classList.remove('nx-form-error');\r\n }\r\n } else {\r\n if (!this.element.classList.contains('nx-form-error')) {\r\n this.element.classList.add('nx-form-error');\r\n }\r\n }\r\n }\r\n\r\n focusFilledInputs(element: HTMLInputElement) {\r\n element.classList.add('focused');\r\n }\r\n\r\n focusIn(event: Event): void {\r\n var target = event.target;\r\n if (!target.closest('.field')) return;\r\n if (target.tagName !== 'BUTTON' && target.tagName !== 'A') {\r\n target.closest('.field').classList.add('focused');\r\n target.closest('.field').classList.add('clear-input');\r\n }\r\n\r\n this.getFormValid();\r\n }\r\n\r\n focusOut(event: Event): void {\r\n var target = event.target;\r\n if (!target.closest('.field')) return;\r\n if (target.tagName !== 'BUTTON' && target.tagName !== 'A') {\r\n (!target.value) ? target.closest('.field').classList.remove('focused') : '';\r\n target.closest('.field').classList.remove('clear-input');\r\n }\r\n\r\n this.getFormValid();\r\n }\r\n\r\n showValid(event: Event, showValid) {\r\n var target = event.target,\r\n parent = target.closest('.field');\r\n\r\n if (!target.closest('.field')) return;\r\n if (showValid) {\r\n parent.classList.add('visible');\r\n if (!(parent.classList.contains('focused'))) {\r\n parent.classList.add('focused');\r\n }\r\n } else {\r\n parent.classList.remove('visible');\r\n }\r\n\r\n this.getFormValid();\r\n }\r\n\r\n clearInput(event: Event) {\r\n var target = event.target;\r\n if (!target.closest('.field')) return;\r\n var inputValue = target.parentElement.children[0];\r\n if (inputValue.tagName == 'LABEL') {\r\n inputValue = target.parentElement.children[1];\r\n }\r\n inputValue.value = '';\r\n target.closest('.field').classList.remove('visible');\r\n target.blur();\r\n }\r\n\r\n adjustTextAreaTopPadding(textareaWrapper: Element, textareaInput: HTMLElement) {\r\n const labelHeight: number = textareaWrapper.querySelector('label').offsetHeight;\r\n textareaInput.style.paddingTop = labelHeight + 'px';\r\n }\r\n\r\n setPosition(target) {\r\n let windowWidth = window.innerWidth,\r\n rectTooltip = target.getBoundingClientRect(),\r\n rectTooltipContent = target.querySelector('.nx-form-validation').getBoundingClientRect(),\r\n validationTooltip = target.querySelector('.nx-form-validation') as HTMLElement;\r\n\r\n validationTooltip.classList.remove('nx-form-validation--centered');\r\n validationTooltip.classList.remove('nx-form-validation--right');\r\n\r\n if (rectTooltip.left < (rectTooltipContent.width - 15)) {\r\n validationTooltip.classList.add('nx-form-validation--centered');\r\n } else if (windowWidth - rectTooltip.left > (rectTooltipContent.width + 50)) {\r\n validationTooltip.classList.add('nx-form-validation--right');\r\n }\r\n }\r\n}"],"names":["FormAnimations","constructor","element","dropDownMaxHeight","this","input","Array","from","querySelectorAll","setInputEventHandler","forEach","dropdown","behavior","useNativeUiOnMobile","maxVisibleItems","closeOnSelect","callbacks","onOpen","onClick","e","actions","close","document","removeEventListener","addEventListener","addVisibilityIntoAccordion","onClose","removeVisibilityFromAccordion","onSelect","reduce","acc","text","querySelector","textarea","adjustTextAreaTopPadding","closest","value","length","push","focusFilledInputs","event","clearInput","radioGroup","classList","add","focusIn","target","type","checked","showValid","setTimeout","focusOut","filter","i","accordionElement","selectElement","style","overflow","getFormValid","validationSummary","display","contains","remove","tagName","parent","inputValue","parentElement","children","blur","textareaWrapper","textareaInput","labelHeight","offsetHeight","paddingTop","setPosition","windowWidth","window","innerWidth","rectTooltip","getBoundingClientRect","rectTooltipContent","validationTooltip","left","width"],"sourceRoot":""}