UNPKG

ucbuilder

Version:

For Developing Applications with multiple form/usercontrols etc.. In Single BrowserWindow...

115 lines (114 loc) 5.26 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.userControlStamp = exports.userControlStampRow = void 0; const common_1 = require("ucbuilder/build/common"); const fileDataBank_1 = require("ucbuilder/global/fileDataBank"); const runtimeOpt_1 = require("ucbuilder/global/runtimeOpt"); const stylerRegs_1 = require("ucbuilder/global/stylerRegs"); class userControlStampRow { constructor() { this.content = ""; this.fUniq = ""; this.passElement = (ele, applySubTree = true) => { let stamplist = []; let stmpTxt = this.stamp; let stmpUnq = this.uniqStamp; if (this.cInfo.rootInfo == undefined) console.log(this.cInfo); let stmpRt = '' + this.cInfo.rootInfo.id; //let ar: NodeListOf<HTMLElement> = ele.querySelectorAll("*"); let ar = common_1.controlOpt.getArray(ele); for (let index = 0; index < ar.length; index++) { let element = ar[index]; element.setAttribute(runtimeOpt_1.ATTR_OF.UC.PARENT_STAMP, stmpTxt); element.setAttribute(runtimeOpt_1.ATTR_OF.UC.UNIQUE_STAMP, stmpUnq); element.setAttribute(runtimeOpt_1.ATTR_OF.UC.ROOT_STAMP, stmpRt); if (applySubTree) { element.querySelectorAll("*") .forEach((s) => { s.setAttribute(runtimeOpt_1.ATTR_OF.UC.PARENT_STAMP, stmpTxt); s.setAttribute(runtimeOpt_1.ATTR_OF.UC.UNIQUE_STAMP, stmpUnq); s.setAttribute(runtimeOpt_1.ATTR_OF.UC.ROOT_STAMP, stmpRt); }); } } return stamplist; }; } get stamp() { return this.styler.stamp; } get uniqStamp() { return this.styler.uniqStamp; } isOurElement(ele) { return ele.getAttribute(runtimeOpt_1.ATTR_OF.UC.UNIQUE_STAMP) == this.uniqStamp; } } exports.userControlStampRow = userControlStampRow; class userControlStamp { /*static params:SourceOptions = { fInfo: undefined as codeFileInfo | undefined, reloadDesign: false, reloadKey: "", htmlContents: undefined as | undefined, callmeBeforeContentAssign:StringExchangerCallback, }*/ static getStamp(param0) { this.stampCallTimes++; let rtrn = undefined; let lwrName = param0.cfInfo.html.rootPath.toLowerCase(); if (param0.templateName != "") lwrName += "@" + param0.templateName; let pathtofind = lwrName + "_" + param0.reloadKey; let sindex = this.source.findIndex(s => s.fUniq == pathtofind); if (sindex == -1) { this.stampNo++; rtrn = new userControlStampRow(); rtrn.styler = new stylerRegs_1.stylerRegs(param0.cfInfo.rootInfo, true); rtrn.fUniq = pathtofind; rtrn.cInfo = param0.cfInfo; if (param0.htmlContents != undefined) { rtrn.content = param0.htmlContents; this.reload(rtrn, param0.beforeContentAssign, param0); } else { rtrn.content = fileDataBank_1.FileDataBank.readFile(param0.cfInfo.html.rootPath); this.reload(rtrn, param0.beforeContentAssign, param0); } this.source.push(rtrn); } else { if (param0.reloadDesign) { rtrn = this.source[sindex]; rtrn.content = param0.htmlContents != undefined ? param0.htmlContents : common_1.pathInfo.readFile(rtrn.cInfo.html.fullPath); this.reload(rtrn, param0.beforeContentAssign, param0); } else { rtrn = this.source[sindex]; if (param0.beforeContentAssign != undefined) { rtrn.content = param0.beforeContentAssign(rtrn.content); rtrn.dataHT = rtrn.content.$(); } } } return rtrn; } static reload(rtrn, callback, param0) { rtrn.content = rtrn.content.replace(/^\s*<([\w\.:-]*?)([\S\s]*?)<\/\1>\s*$/g, (match, otag, contents, ctag) => { /*switch (param0.nodeNameAs) { case 'targetElement': rtrn.styler.nodeName = param0.targetElementNodeName; break; case 'wrapper': rtrn.styler.nodeName = otag; break; }*/ rtrn.styler.nodeName = otag; let newNodeName = rtrn.styler.nodeName; return `<${newNodeName} ${runtimeOpt_1.ATTR_OF.UC.UC_STAMP}="${rtrn.stamp}" x-tabindex="-1" ${contents}</${newNodeName}>`; }); rtrn.content = rtrn.styler.parseStyle(rtrn.content); if (callback != undefined) rtrn.content = callback(rtrn.content); rtrn.dataHT = rtrn.content.$(); if (!rtrn.dataHT.hasAttribute('x-allowtabindex')) rtrn.dataHT.setAttribute('x-allowtabindex', '0'); } } exports.userControlStamp = userControlStamp; userControlStamp.stampNo = 0; userControlStamp.source = []; userControlStamp.stampCallTimes = 0;