chore(form-error-remover): implemented destroy
This commit is contained in:
parent
03ac80342e
commit
edc998288a
@ -1,4 +1,5 @@
|
||||
import { Utility } from '../../core/utility';
|
||||
import { EventManager, EventWrapper, EVENT_TYPE } from '../../lib/event-manager/event-manager';
|
||||
|
||||
const FORM_ERROR_REMOVER_INITIALIZED_CLASS = 'form-error-remover--initialized';
|
||||
const FORM_ERROR_REMOVER_INPUTS_SELECTOR = 'input:not([type="hidden"]), textarea, select';
|
||||
@ -13,6 +14,8 @@ export class FormErrorRemover {
|
||||
|
||||
_element;
|
||||
|
||||
_eventManager;
|
||||
|
||||
constructor(element) {
|
||||
if (!element)
|
||||
throw new Error('Form Error Remover utility needs to be passed an element!');
|
||||
@ -24,6 +27,7 @@ export class FormErrorRemover {
|
||||
return;
|
||||
|
||||
this._element = element;
|
||||
this._eventManager = new EventManager();
|
||||
|
||||
this._element.classList.add(FORM_ERROR_REMOVER_INITIALIZED_CLASS);
|
||||
}
|
||||
@ -35,11 +39,18 @@ export class FormErrorRemover {
|
||||
const inputElements = Array.from(this._element.querySelectorAll(FORM_ERROR_REMOVER_INPUTS_SELECTOR));
|
||||
|
||||
inputElements.forEach((inputElement) => {
|
||||
inputElement.addEventListener('input', () => {
|
||||
const inputEvent = new EventWrapper(EVENT_TYPE.INPUT, (() => {
|
||||
if (!inputElement.willValidate || inputElement.validity.vaild) {
|
||||
FORM_GROUP_WITH_ERRORS_CLASSES.forEach(c => { this._element.classList.remove(c); });
|
||||
}
|
||||
});
|
||||
}).bind(this), inputElement);
|
||||
this._eventManager.registerNewListener(inputEvent);
|
||||
});
|
||||
}
|
||||
|
||||
destroy() {
|
||||
this._eventManager.removeAllEventListenersFromUtil();
|
||||
this._element.classList.remove(FORM_ERROR_REMOVER_INITIALIZED_CLASS);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user