ucbuilder
Version:
For Developing Applications with multiple form/usercontrols etc.. In Single BrowserWindow...
35 lines (34 loc) • 1.5 kB
JavaScript
;
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;