UNPKG

ucbuilder

Version:

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

35 lines (34 loc) 1.5 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.loopRegs = void 0; const common_1 = require("ucbuilder/build/common"); const loopEachItemCallback = (obj = {}, content, nameSpace, loopCode) => { return content; }; class loopRegs { constructor() { this.loopPattern = new RegExp(/`\s*{(loop\w*)=([\.\w]+?)}\s*`([^]*?)`\s*{\/\1}\s*`/g); } parse(content, nodes, eachItemcallback = loopEachItemCallback) { let _this = this; return content.replace(this.loopPattern, function (match, loopCode, valtoFind, subcontent, offset, input_string) { let result = ""; let arlist = common_1.objectOpt.getValByNameSpace(nodes, valtoFind); arlist.forEach(arVal => { result += eachItemcallback(arVal, subcontent, valtoFind, loopCode); }); return result; }); } parseDirect(node, loopCode, valtoFind, subcontent, eachItemcallback = loopEachItemCallback) { let result = ""; let arlist = common_1.objectOpt.getValByNameSpace(node, valtoFind); //if (Array.isArray(arlist)) { arlist.forEach(arVal => { result += eachItemcallback(arVal, subcontent, valtoFind, loopCode); }); // } else if (Object.getPrototypeOf(arlist).constructor.name == "Object") { //console.log('OBJECT IS here'); // } return result; } } exports.loopRegs = loopRegs;