UNPKG

ucbuilder

Version:

:Shree Ganeshay Namah: new way app design

136 lines 4.4 kB
import { GetUniqueId } from "../common/ipc/enumAndMore.js"; export class dataManager { source = {}; map = {}; static ATTR = { DM_DATA: "dm" + GetUniqueId(), }; eventIncrementId = 0; elementIncrementId = 1; getId = (element) => { let row = element[dataManager.ATTR.DM_DATA]; if (row == undefined) { this.elementIncrementId++; let _id = "id_" + this.elementIncrementId; row = new rowInfo(); row.id = _id; //console.log(this.source); // console.log(this.elementIncrementId.toAlphabate()+" ("+this.elementIncrementId+")"); element[dataManager.ATTR.DM_DATA] = row; //this.source[_id] = element; } return row; }; getElement(id) { return this.source[id]; } fillObjectRef(targetObject, arr) { arr.push(this.getId(targetObject).id); for (let i = 0, iObj = targetObject.children, ilen = iObj.length; i < ilen; i++) { const iItem = iObj[i]; this.fillObjectRef(iItem, arr); } //looping.htmlChildren(targetObject, s => this.fillObjectRef(s, arr)); } deleteObjectRef(targetObject) { //console.log('deleting.,'); let keylist = []; this.fillObjectRef(targetObject, keylist); keylist.forEach(e => delete this.source[e]); } getData(targetObject, key) { let row = this.getId(targetObject); switch (arguments.length) { case 2: return row.data[key]; case 1: return row.data; default: return row; } } setData(targetObject, key, value) { let row = this.getId(targetObject); switch (arguments.length) { case 3: row.data[key] = value; break; case 2: row.data = value; break; } } // compareElements(ele1: HTMLElement, ele2: HTMLElement): boolean { // return this.getId(ele1).id === this.getId(ele2).id; // } initElement(target) { if (target.length == undefined) { [target, target.querySelectorAll('*')].forEach((ele) => { this.getId(ele); }); } else { for (let i = 0, iObj = target, ilen = iObj.length; i < ilen; i++) { target = iObj[i]; [target, target.querySelectorAll('*')].forEach((ele) => { this.getId(ele); }); } } } setEvent(element, eventName, key, handler) { let evt = {}; let row = this.getId(element); if (eventName in row.event) { evt = row.event[eventName]; evt[key] = handler; } else { evt[key] = handler; row.event[eventName] = evt; } element.addEventListener(eventName, handler, false); } unSetEvent(element, eventName, key, handler) { let evt = {}; if (handler == undefined) { let row = this.getId(element); if (eventName in row.event) { evt = row.event[eventName]; if (key == undefined) { Object.keys(evt).forEach(s => element.removeEventListener(eventName, evt[s], false)); } else { handler = evt[key]; element.removeEventListener(eventName, handler, false); } } } else element.removeEventListener(eventName, handler, false); } onHandler(element, eventName, handler) { let eType = eventName.split("."); if (eType.length == 0) { this.setEvent(element, eType[0], `dataManager_onHandler_${GetUniqueId()}`, handler); } else { this.setEvent(element, eType[0], eType[1], handler); } } offHandler(element, eventName, handler) { let eType = eventName.split("."); if (eType.length == 0) { this.unSetEvent(element, eType[0], undefined, handler); } else { this.unSetEvent(element, eType[0], eType[1], handler); } } } export class rowInfo { id = ""; data = {}; event = {}; } //# sourceMappingURL=dataManager.js.map