UNPKG

@dzeio/form-manager

Version:

A powerfull Form Manager

82 lines (81 loc) 3.39 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); var AttributeListeners_1 = __importDefault(require("./attributes/AttributeListeners")); var AttributesManager = (function () { function AttributesManager(form) { this.attributesArray = []; this.eventsListenersItems = {}; this.form = form; AttributesManager.instance = this; } AttributesManager.prototype.register = function () { var attribute = []; for (var _i = 0; _i < arguments.length; _i++) { attribute[_i] = arguments[_i]; } for (var _a = 0, attribute_1 = attribute; _a < attribute_1.length; _a++) { var attr = attribute_1[_a]; this.attributesArray.push(attr.identity); } }; AttributesManager.prototype.trigger = function (event, data) { if (!this.eventsListenersItems[event]) return true; for (var _i = 0, _a = this.eventsListenersItems[event]; _i < _a.length; _i++) { var el = _a[_i]; var res = el.trigger(event, data); if (typeof res !== "undefined") return res; } return true; }; AttributesManager.prototype.triggerElement = function (event, input, data) { if (!this.eventsListenersItems[event]) return true; for (var _i = 0, _a = this.eventsListenersItems[event]; _i < _a.length; _i++) { var el = _a[_i]; if (el.input === input) { var res = el.trigger(event, data); if (typeof res !== "undefined") return res; } } return true; }; AttributesManager.prototype.onChange = function () { var self = AttributesManager.instance; self.trigger(AttributeListeners_1.default.CHANGE, self.form.inputs[this.name]); }; AttributesManager.prototype.setup = function () { for (var name_1 in this.form.inputs) { if (!this.form.inputs.hasOwnProperty(name_1)) { continue; } var el = this.form.inputs[name_1]; el.element.removeEventListener("keyup", this.onChange); el.element.addEventListener("keyup", this.onChange); el.element.removeEventListener("change", this.onChange); el.element.addEventListener("change", this.onChange); for (var key in this.attributesArray) { if (!this.attributesArray.hasOwnProperty(key)) { continue; } var element = this.attributesArray[key]; if (el.element.hasAttribute(element.dataElement)) { var list = new element.attribute(el); for (var _i = 0, _a = element.attribute.listeners; _i < _a.length; _i++) { var listener = _a[_i]; if (this.eventsListenersItems[listener] == undefined) this.eventsListenersItems[listener] = []; this.eventsListenersItems[listener].push(list); } } } } }; return AttributesManager; }()); exports.default = AttributesManager;