dom-render 1.0.96 → 1.0.97
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/DomRender.d.ts +1 -1
- package/DomRender.js +3 -3
- package/DomRenderProxy.js +12 -14
- package/README.MD +41 -0
- package/components/ComponentSet.d.ts +1 -1
- package/configs/Config.d.ts +1 -1
- package/configs/TargetAttr.d.ts +1 -1
- package/configs/TargetElement.d.ts +1 -1
- package/css/parse/index.d.ts +1 -0
- package/css/parse/index.js +512 -0
- package/css/stringify/compiler.d.ts +32 -0
- package/css/stringify/compiler.js +40 -0
- package/css/stringify/compress.d.ts +75 -0
- package/css/stringify/compress.js +156 -0
- package/css/stringify/identity.d.ts +85 -0
- package/css/stringify/identity.js +194 -0
- package/css/stringify/index.d.ts +14 -0
- package/css/stringify/index.js +44 -0
- package/dist/bundle.js +1075 -328
- package/events/EventManager.js +27 -27
- package/iterators/Range.d.ts +1 -0
- package/iterators/Range.js +15 -0
- package/messenger/Messenger.d.ts +4 -4
- package/operators/Dr.js +2 -2
- package/operators/DrAppender.js +5 -3
- package/operators/DrFor.js +5 -3
- package/operators/DrForOf.js +5 -3
- package/operators/DrForm.js +12 -12
- package/operators/DrIf.js +5 -3
- package/operators/DrInnerHTML.js +2 -2
- package/operators/DrInnerText.js +2 -2
- package/operators/DrPre.js +4 -2
- package/operators/DrRepeat.js +5 -3
- package/operators/DrTargetAttr.js +4 -2
- package/operators/DrTargetElement.js +5 -3
- package/operators/DrThis.js +2 -2
- package/operators/DrThisProperty.js +6 -4
- package/operators/OperatorExecuter.d.ts +5 -5
- package/operators/OperatorExecuter.js +2 -2
- package/operators/OperatorExecuterAttrRequire.js +1 -1
- package/package.json +3 -3
- package/rawsets/AttrInitCallBack.d.ts +1 -1
- package/rawsets/Attrs.d.ts +1 -1
- package/rawsets/CreatorMetaData.d.ts +1 -1
- package/rawsets/ElementInitCallBack.d.ts +1 -1
- package/rawsets/RawSet.d.ts +6 -2
- package/rawsets/RawSet.js +93 -54
- package/rawsets/Render.d.ts +1 -1
- package/routers/Router.d.ts +1 -1
- package/routers/Router.js +1 -1
- package/utils/dom/DomUtils.d.ts +1 -1
- package/utils/node/NodeUtils.d.ts +1 -1
- package/utils/script/ScriptUtils.js +2 -2
- package/utils/storage/StorageUtils.d.ts +7 -0
- package/utils/storage/StorageUtils.js +39 -0
- package/utils/string/StringUtils.d.ts +1 -0
- package/utils/string/StringUtils.js +17 -0
- package/validators/EmptyValidator.js +2 -2
- package/validators/NotEmptyValidator.js +2 -2
- package/validators/ValidMultipleValidator.d.ts +1 -1
- package/validators/Validator.d.ts +2 -2
- package/validators/ValidatorArray.d.ts +1 -1
package/rawsets/RawSet.js
CHANGED
@@ -25,7 +25,7 @@ var __generator = (this && this.__generator) || function (thisArg, body) {
|
|
25
25
|
function verb(n) { return function (v) { return step([n, v]); }; }
|
26
26
|
function step(op) {
|
27
27
|
if (f) throw new TypeError("Generator is already executing.");
|
28
|
-
while (
|
28
|
+
while (_) try {
|
29
29
|
if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
|
30
30
|
if (y = 0, t) op = [op[0] & 2, t.value];
|
31
31
|
switch (op[0]) {
|
@@ -55,6 +55,9 @@ var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {
|
|
55
55
|
}
|
56
56
|
return to.concat(ar || Array.prototype.slice.call(from));
|
57
57
|
};
|
58
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
59
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
60
|
+
};
|
58
61
|
Object.defineProperty(exports, "__esModule", { value: true });
|
59
62
|
exports.RawSet = void 0;
|
60
63
|
var RandomUtils_1 = require("../utils/random/RandomUtils");
|
@@ -82,6 +85,8 @@ var DestroyOptionType_1 = require("./DestroyOptionType");
|
|
82
85
|
var RawSetType_1 = require("./RawSetType");
|
83
86
|
var DrThisProperty_1 = require("../operators/DrThisProperty");
|
84
87
|
var RawSetOperatorType_1 = require("./RawSetOperatorType");
|
88
|
+
var parse_1 = __importDefault(require("../css/parse"));
|
89
|
+
var stringify_1 = __importDefault(require("../css/stringify"));
|
85
90
|
var RawSet = /** @class */ (function () {
|
86
91
|
function RawSet(uuid, type, point, fragment, detect, data) {
|
87
92
|
this.uuid = uuid;
|
@@ -107,7 +112,7 @@ var RawSet = /** @class */ (function () {
|
|
107
112
|
var _a, _b, _c;
|
108
113
|
var script = '';
|
109
114
|
if (cNode.nodeType === Node.TEXT_NODE) {
|
110
|
-
script = "`"
|
115
|
+
script = "`" + ((_a = cNode.textContent) !== null && _a !== void 0 ? _a : '') + "`";
|
111
116
|
// console.log('???????', script)
|
112
117
|
}
|
113
118
|
else if (cNode.nodeType === Node.ELEMENT_NODE) {
|
@@ -136,11 +141,11 @@ var RawSet = /** @class */ (function () {
|
|
136
141
|
EventManager_1.EventManager.VARNAMES.forEach(function (it) {
|
137
142
|
// script = script.replace(RegExp(it.replace('$', '\\$'), 'g'), `this?.___${it}`);
|
138
143
|
// script = script.replace(RegExp(it.replace('$', '\\$'), 'g'), `this.___${it}`);
|
139
|
-
script = script.replace(RegExp(it.replace('$', '\\$'), 'g'), "this.___"
|
144
|
+
script = script.replace(RegExp(it.replace('$', '\\$'), 'g'), "this.___" + it);
|
140
145
|
// console.log('scripts-->', script)
|
141
146
|
});
|
142
147
|
// console.log('----------', script);
|
143
|
-
Array.from(ScriptUtils_1.ScriptUtils.getVariablePaths(script)).filter(function (it) { return !it.startsWith("___"
|
148
|
+
Array.from(ScriptUtils_1.ScriptUtils.getVariablePaths(script)).filter(function (it) { return !it.startsWith("___" + EventManager_1.EventManager.SCRIPTS_VARNAME); }).forEach(function (it) { return usingTriggerVariables.add(it); });
|
144
149
|
}
|
145
150
|
});
|
146
151
|
// console.log('usingTriggerVariable----------->', usingTriggerVariables)
|
@@ -177,7 +182,7 @@ var RawSet = /** @class */ (function () {
|
|
177
182
|
range: Range_1.Range.range,
|
178
183
|
element: cNode,
|
179
184
|
attribute: attribute,
|
180
|
-
bindScript: "\n const "
|
185
|
+
bindScript: "\n const " + EventManager_1.EventManager.SCRIPTS_VARNAME + " = this.__render.scripts;\n const " + EventManager_1.EventManager.RAWSET_VARNAME + " = this.__render.rawset;\n const " + EventManager_1.EventManager.ELEMENT_VARNAME + " = this.__render.element;\n const " + EventManager_1.EventManager.ATTRIBUTE_VARNAME + " = this.__render.attribute;\n const " + EventManager_1.EventManager.RANGE_VARNAME + " = this.__render.range;\n const " + EventManager_1.EventManager.ROUTER_VARNAME + " = this.__render.router;\n "
|
181
186
|
// eslint-disable-next-line no-use-before-define
|
182
187
|
});
|
183
188
|
fag = config.window.document.createDocumentFragment();
|
@@ -186,13 +191,13 @@ var RawSet = /** @class */ (function () {
|
|
186
191
|
runText = RawSet.exporesionGrouops(textContent)[0][1];
|
187
192
|
newNode = void 0;
|
188
193
|
if (textContent === null || textContent === void 0 ? void 0 : textContent.startsWith('#')) {
|
189
|
-
r = ScriptUtils_1.ScriptUtils.eval(
|
194
|
+
r = ScriptUtils_1.ScriptUtils.eval(__render.bindScript + " return " + runText, Object.assign(obj, { __render: __render }));
|
190
195
|
template = config.window.document.createElement('template');
|
191
196
|
template.innerHTML = r;
|
192
197
|
newNode = template.content;
|
193
198
|
}
|
194
199
|
else {
|
195
|
-
r = ScriptUtils_1.ScriptUtils.eval(
|
200
|
+
r = ScriptUtils_1.ScriptUtils.eval(__render.bindScript + " return " + runText, Object.assign(obj, { __render: __render }));
|
196
201
|
newNode = config.window.document.createTextNode(r);
|
197
202
|
}
|
198
203
|
(_a = cNode.parentNode) === null || _a === void 0 ? void 0 : _a.replaceChild(newNode, cNode);
|
@@ -277,11 +282,12 @@ var RawSet = /** @class */ (function () {
|
|
277
282
|
fag: genNode,
|
278
283
|
scripts: EventManager_1.EventManager.setBindProperty(config === null || config === void 0 ? void 0 : config.scripts, obj)
|
279
284
|
});
|
280
|
-
ScriptUtils_1.ScriptUtils.eval("\n const "
|
285
|
+
ScriptUtils_1.ScriptUtils.eval("\n const " + EventManager_1.EventManager.FAG_VARNAME + " = this.__render.fag;\n const " + EventManager_1.EventManager.SCRIPTS_VARNAME + " = this.__render.scripts;\n const " + EventManager_1.EventManager.RAWSET_VARNAME + " = this.__render.rawset;\n " + it.drCompleteOption, Object.assign(obj, { __render: render }));
|
281
286
|
}
|
282
287
|
});
|
283
288
|
// 중요 style isolation 나중에 :scope로 대체 가능할듯.
|
284
|
-
|
289
|
+
// 2023.9.4일 없앰 style 처음들어올때 처리하는걸로 바꿈
|
290
|
+
// RawSet.generateStyleSheetsLocal(config);
|
285
291
|
for (_1 = 0, onThisComponentSetCallBacks_1 = onThisComponentSetCallBacks; _1 < onThisComponentSetCallBacks_1.length; _1++) {
|
286
292
|
it_1 = onThisComponentSetCallBacks_1[_1];
|
287
293
|
(_q = (_p = it_1.obj) === null || _p === void 0 ? void 0 : _p.onInitRender) === null || _q === void 0 ? void 0 : _q.call(_p);
|
@@ -292,7 +298,7 @@ var RawSet = /** @class */ (function () {
|
|
292
298
|
oninit = it_2.targetElement.__render.element.getAttribute(RawSet.DR_ON_INIT_ARGUMENTS_OPTIONNAME);
|
293
299
|
param = [];
|
294
300
|
if (oninit) {
|
295
|
-
script =
|
301
|
+
script = it_2.targetElement.__render.renderScript + " return " + oninit + " ";
|
296
302
|
param = ScriptUtils_1.ScriptUtils.eval(script, Object.assign(obj, {
|
297
303
|
__render: it_2.targetElement.__render
|
298
304
|
}));
|
@@ -331,8 +337,13 @@ var RawSet = /** @class */ (function () {
|
|
331
337
|
});
|
332
338
|
});
|
333
339
|
};
|
334
|
-
|
335
|
-
|
340
|
+
/**
|
341
|
+
* @deprecated
|
342
|
+
* @param config
|
343
|
+
*/
|
344
|
+
RawSet.generateStyleSheetsLocal = function (config) {
|
345
|
+
// console.log('config.window.document.styleSheets---------', config.window.document.styleSheets);
|
346
|
+
Array.from(config.window.document.styleSheets).filter(function (it) { return it.ownerNode && it.ownerNode instanceof Element && it.ownerNode.hasAttribute('domstyle') && it.ownerNode.getAttribute('id') && !it.ownerNode.getAttribute('completed'); }).forEach(function (it) {
|
336
347
|
var _a;
|
337
348
|
var styleElement = it.ownerNode;
|
338
349
|
var split = (_a = styleElement.getAttribute('id')) === null || _a === void 0 ? void 0 : _a.split('-');
|
@@ -349,8 +360,8 @@ var RawSet = /** @class */ (function () {
|
|
349
360
|
};
|
350
361
|
RawSet.generateCSS = function (id, cssRule) {
|
351
362
|
var _this = this;
|
352
|
-
var start = "#"
|
353
|
-
var end = "#"
|
363
|
+
var start = "#" + id + "-start";
|
364
|
+
var end = "#" + id + "-end";
|
354
365
|
if (cssRule.constructor.name === 'CSSStyleRule') {
|
355
366
|
var rule = cssRule;
|
356
367
|
// rule.selectorText = `${start} ~ *:not(${start} ~ ${end} ~ *) ${rule.selectorText}`;
|
@@ -359,14 +370,14 @@ var RawSet = /** @class */ (function () {
|
|
359
370
|
if (!rule.selectorText.startsWith(':root')) {
|
360
371
|
// rule.selectorText = `${start} ~ ${rule.selectorText}:not(${start} ~ ${end} ~ *)`;
|
361
372
|
// rule.selectorText = `${start} ~ ${rule.selectorText}:not(${start} ~ ${end} ~ *)`;
|
362
|
-
var selectorText = ":is("
|
373
|
+
var selectorText = ":is(" + start + " ~ *:not(" + start + " ~ " + end + " ~ *))";
|
363
374
|
if (rule.selectorText.startsWith('.')) {
|
364
|
-
rule.selectorText = ""
|
375
|
+
rule.selectorText = "" + selectorText + rule.selectorText + ", " + selectorText + " " + rule.selectorText;
|
365
376
|
// rule.selectorText = `${start} ~ *:not(${start} ~ ${end} ~ *)${rule.selectorText}`;
|
366
377
|
}
|
367
378
|
else {
|
368
|
-
var divText =
|
369
|
-
rule.selectorText =
|
379
|
+
var divText = start + " ~ " + rule.selectorText + ":not(" + start + " ~ " + end + " ~ *)";
|
380
|
+
rule.selectorText = selectorText + " " + rule.selectorText + ", " + divText;
|
370
381
|
// rule.selectorText = `${selectorText} ${rule.selectorText}`;
|
371
382
|
// rule.selectorText = `${rule.selectorText} ~ ${start} ~ *:not(${start} ~ ${end} ~ *)`;
|
372
383
|
}
|
@@ -381,13 +392,40 @@ var RawSet = /** @class */ (function () {
|
|
381
392
|
}
|
382
393
|
};
|
383
394
|
// 중요 스타일 적용 부분
|
384
|
-
RawSet.generateStyleTransform = function (styleBody,
|
395
|
+
RawSet.generateStyleTransform = function (styleBody, componentKey, styleTagWrap) {
|
396
|
+
var _a;
|
385
397
|
if (styleTagWrap === void 0) { styleTagWrap = true; }
|
386
398
|
if (Array.isArray(styleBody)) {
|
387
399
|
styleBody = styleBody.join('\n');
|
388
400
|
}
|
401
|
+
var start = "#" + componentKey + "-start";
|
402
|
+
var end = "#" + componentKey + "-end";
|
403
|
+
var before = StringUtils_1.StringUtils.regexExecArrayReplace(styleBody, /(\$\{.*?\}\$)/g, function (data) {
|
404
|
+
return "var(--domrender-" + data[0] + ")";
|
405
|
+
});
|
406
|
+
var cssobject = (0, parse_1.default)(before);
|
407
|
+
(_a = cssobject.stylesheet) === null || _a === void 0 ? void 0 : _a.rules.forEach(function (rule) {
|
408
|
+
var _a, _b;
|
409
|
+
var isRoot = (_a = rule.selectors) === null || _a === void 0 ? void 0 : _a.find(function (it) { return it.startsWith(':root'); });
|
410
|
+
if (rule.type === 'rule' && !isRoot) { // && !!isRoot
|
411
|
+
rule.selectors = (_b = rule.selectors) === null || _b === void 0 ? void 0 : _b.map(function (sit) {
|
412
|
+
var selectorText = ":is(" + start + " ~ *:not(" + start + " ~ " + end + " ~ *))";
|
413
|
+
if (sit.startsWith('.')) {
|
414
|
+
return "" + selectorText + sit + ", " + selectorText + " " + sit;
|
415
|
+
}
|
416
|
+
else {
|
417
|
+
var divText = start + " ~ " + sit + ":not(" + start + " ~ " + end + " ~ *)";
|
418
|
+
return selectorText + " " + sit + ", " + divText;
|
419
|
+
}
|
420
|
+
});
|
421
|
+
}
|
422
|
+
});
|
423
|
+
var stringify = (0, stringify_1.default)(cssobject);
|
424
|
+
var after = StringUtils_1.StringUtils.regexExecArrayReplace(stringify, /(var\(--domrender-(\$\{.*?\}\$)?\))/g, function (data) {
|
425
|
+
return data[2];
|
426
|
+
});
|
389
427
|
if (styleTagWrap) {
|
390
|
-
styleBody = "<style id='"
|
428
|
+
styleBody = "<style id='" + componentKey + "-style' domstyle>" + after + "</style>";
|
391
429
|
}
|
392
430
|
return styleBody;
|
393
431
|
};
|
@@ -408,13 +446,13 @@ var RawSet = /** @class */ (function () {
|
|
408
446
|
var data = element.getAttribute(RawSet.DR_APPENDER_NAME);
|
409
447
|
// if (data && !/\[[0-9]+\]/g.test(data)) {
|
410
448
|
if (data && !/\[.+\]/g.test(data)) {
|
411
|
-
var currentIndex = ScriptUtils_1.ScriptUtils.evalReturn(
|
449
|
+
var currentIndex = ScriptUtils_1.ScriptUtils.evalReturn(data + "?.length -1", obj);
|
412
450
|
// console.log('------?', currentIndex)
|
413
451
|
// if (currentIndex === undefined || isNaN(currentIndex)) {
|
414
452
|
// return undefined;
|
415
453
|
// }
|
416
454
|
// const currentIndex = ScriptUtils.evalReturn(`${data}.length`, obj);
|
417
|
-
data =
|
455
|
+
data = data + "[" + currentIndex + "]";
|
418
456
|
element.setAttribute(RawSet.DR_APPENDER_NAME, data);
|
419
457
|
// element.setAttribute(RawSet.DR_IF_NAME, data);
|
420
458
|
// element.setAttribute('dr-id', data);
|
@@ -436,9 +474,8 @@ var RawSet = /** @class */ (function () {
|
|
436
474
|
// 중요 important
|
437
475
|
RawSet.checkPointCreates = function (element, obj, config) {
|
438
476
|
var _a, _b, _c, _d, _e, _f, _g, _h;
|
439
|
-
//
|
477
|
+
// const NodeFilter = (config.window as any).NodeFilter;
|
440
478
|
var thisVariableName = element.__domrender_this_variable_name;
|
441
|
-
// console.log('checkPointCreates thisVariableName', thisVariableName);
|
442
479
|
var nodeIterator = config.window.document.createNodeIterator(element, NodeFilter.SHOW_ALL, {
|
443
480
|
acceptNode: function (node) {
|
444
481
|
var _a, _b, _c, _d, _e;
|
@@ -559,7 +596,7 @@ var RawSet = /** @class */ (function () {
|
|
559
596
|
var element = node;
|
560
597
|
var start = config.window.document.createElement('meta');
|
561
598
|
var end = config.window.document.createElement('meta');
|
562
|
-
start.setAttribute('id',
|
599
|
+
start.setAttribute('id', id + "-start");
|
563
600
|
var keys = element.getAttribute(RawSet.DR_KEY_OPTIONNAME);
|
564
601
|
var thisPropertyType = element.getAttribute(RawSet.DR_THIS_PROPERTY_NAME);
|
565
602
|
if (thisPropertyType) {
|
@@ -569,19 +606,19 @@ var RawSet = /** @class */ (function () {
|
|
569
606
|
element.removeAttribute(RawSet.DR_KEY_OPTIONNAME);
|
570
607
|
start.setAttribute(RawSet.DR_KEY_OPTIONNAME, keys);
|
571
608
|
}
|
572
|
-
end.setAttribute('id',
|
609
|
+
end.setAttribute('id', id + "-end");
|
573
610
|
return { start: start, end: end };
|
574
611
|
}
|
575
612
|
else if (type === RawSetType_1.RawSetType.STYLE_TEXT) {
|
576
613
|
return {
|
577
|
-
start: config.window.document.createTextNode("/*start text "
|
578
|
-
end: config.window.document.createTextNode("/*end text "
|
614
|
+
start: config.window.document.createTextNode("/*start text " + id + "*/"),
|
615
|
+
end: config.window.document.createTextNode("/*end text " + id + "*/")
|
579
616
|
};
|
580
617
|
}
|
581
618
|
else { // text
|
582
619
|
return {
|
583
|
-
start: config.window.document.createComment("start text "
|
584
|
-
end: config.window.document.createComment("end text "
|
620
|
+
start: config.window.document.createComment("start text " + id),
|
621
|
+
end: config.window.document.createComment("end text " + id)
|
585
622
|
};
|
586
623
|
}
|
587
624
|
};
|
@@ -628,13 +665,13 @@ var RawSet = /** @class */ (function () {
|
|
628
665
|
RawSet.drItOtherEncoding = function (element) {
|
629
666
|
var random = RandomUtils_1.RandomUtils.uuid();
|
630
667
|
var regex = /#it#/g;
|
631
|
-
element.querySelectorAll("["
|
668
|
+
element.querySelectorAll("[" + RawSet.DR_IT_OPTIONNAME + "], [" + RawSet.DR_FOR_OF_NAME + "], [" + RawSet.DR_REPEAT_NAME + "]").forEach(function (it) {
|
632
669
|
it.innerHTML = it.innerHTML.replace(regex, random);
|
633
670
|
});
|
634
671
|
return random;
|
635
672
|
};
|
636
673
|
RawSet.drItOtherDecoding = function (element, random) {
|
637
|
-
element.querySelectorAll("["
|
674
|
+
element.querySelectorAll("[" + RawSet.DR_IT_OPTIONNAME + "], [" + RawSet.DR_FOR_OF_NAME + "], [" + RawSet.DR_REPEAT_NAME + "]").forEach(function (it) {
|
638
675
|
it.innerHTML = it.innerHTML.replace(RegExp(random, 'g'), '#it#');
|
639
676
|
});
|
640
677
|
};
|
@@ -647,35 +684,35 @@ var RawSet = /** @class */ (function () {
|
|
647
684
|
// element.querySelectorAll(`[${RawSet.DR_PRE_NAME}]`).forEach(it => {
|
648
685
|
// let message = it.innerHTML;
|
649
686
|
// })
|
650
|
-
element.querySelectorAll("["
|
687
|
+
element.querySelectorAll("[" + RawSet.DR_PRE_NAME + "]").forEach(function (it) {
|
651
688
|
it.innerHTML = it.innerHTML.replace(/this/g, thisRandom);
|
652
689
|
});
|
653
|
-
element.querySelectorAll("["
|
690
|
+
element.querySelectorAll("[" + RawSet.DR_THIS_NAME + "]").forEach(function (it) {
|
654
691
|
var message = it.innerHTML;
|
655
692
|
StringUtils_1.StringUtils.regexExec(/([^(dr\-)])?this(?=.?)/g, message).reverse().forEach(function (it) {
|
656
693
|
var _a;
|
657
|
-
message = message.substr(0, it.index) + message.substr(it.index).replace(it[0], ""
|
694
|
+
message = message.substr(0, it.index) + message.substr(it.index).replace(it[0], "" + ((_a = it[1]) !== null && _a !== void 0 ? _a : '') + drThis);
|
658
695
|
});
|
659
696
|
it.innerHTML = message;
|
660
697
|
});
|
661
698
|
var message = element.innerHTML;
|
662
699
|
StringUtils_1.StringUtils.regexExec(/([^(dr\-)])?this(?=.?)/g, message).reverse().forEach(function (it) {
|
663
700
|
var _a;
|
664
|
-
message = message.substr(0, it.index) + message.substr(it.index).replace(it[0], ""
|
701
|
+
message = message.substr(0, it.index) + message.substr(it.index).replace(it[0], "" + ((_a = it[1]) !== null && _a !== void 0 ? _a : '') + drThis);
|
665
702
|
});
|
666
703
|
element.innerHTML = message;
|
667
704
|
return thisRandom;
|
668
705
|
};
|
669
706
|
RawSet.drThisDecoding = function (element, thisRandom) {
|
670
|
-
element.querySelectorAll("["
|
707
|
+
element.querySelectorAll("[" + RawSet.DR_PRE_NAME + "]").forEach(function (it) {
|
671
708
|
it.innerHTML = it.innerHTML.replace(RegExp(thisRandom, 'g'), 'this');
|
672
709
|
});
|
673
|
-
element.querySelectorAll("["
|
710
|
+
element.querySelectorAll("[" + RawSet.DR_THIS_NAME + "]").forEach(function (it) {
|
674
711
|
it.innerHTML = it.innerHTML.replace(RegExp(thisRandom, 'g'), 'this');
|
675
712
|
});
|
676
713
|
};
|
677
714
|
RawSet.drFormOtherMoveAttr = function (element, as, to, config) {
|
678
|
-
element.querySelectorAll("["
|
715
|
+
element.querySelectorAll("[" + RawSet.DR_FORM_NAME + "]").forEach(function (subElement) {
|
679
716
|
var _a;
|
680
717
|
var nodeIterator = config.window.document.createNodeIterator(subElement, NodeFilter.SHOW_ELEMENT, {
|
681
718
|
acceptNode: function (node) {
|
@@ -713,7 +750,7 @@ var RawSet = /** @class */ (function () {
|
|
713
750
|
};
|
714
751
|
});
|
715
752
|
// element.querySelectorAll(`[${RawSet.DR_THIS_NAME}]`).forEach(it => {
|
716
|
-
element.querySelectorAll("["
|
753
|
+
element.querySelectorAll("[" + RawSet.DR_VAR_OPTIONNAME + "]").forEach(function (it) {
|
717
754
|
vars.filter(function (vit) { return vit.value && vit.name; }).forEach(function (vit) {
|
718
755
|
it.innerHTML = it.innerHTML.replace(vit.regex, vit.random);
|
719
756
|
});
|
@@ -724,7 +761,7 @@ var RawSet = /** @class */ (function () {
|
|
724
761
|
return vars;
|
725
762
|
};
|
726
763
|
RawSet.drVarDecoding = function (element, vars) {
|
727
|
-
element.querySelectorAll("["
|
764
|
+
element.querySelectorAll("[" + RawSet.DR_THIS_NAME + "]").forEach(function (it) {
|
728
765
|
vars.filter(function (vit) { return vit.value && vit.name; }).forEach(function (vit) {
|
729
766
|
it.innerHTML = it.innerHTML.replace(RegExp(vit.random, 'g'), vit.value);
|
730
767
|
});
|
@@ -786,7 +823,7 @@ var RawSet = /** @class */ (function () {
|
|
786
823
|
renderScript = '';
|
787
824
|
createParam = [];
|
788
825
|
if (onCreate) {
|
789
|
-
script =
|
826
|
+
script = renderScript + " return " + onCreate + " ";
|
790
827
|
createParam = ScriptUtils_1.ScriptUtils.eval(script, obj);
|
791
828
|
if (!Array.isArray(createParam)) {
|
792
829
|
createParam = [createParam];
|
@@ -795,14 +832,16 @@ var RawSet = /** @class */ (function () {
|
|
795
832
|
(_e = (_d = set.obj) === null || _d === void 0 ? void 0 : _d.onCreateRender) === null || _e === void 0 ? void 0 : _e.call.apply(_e, __spreadArray([_d], createParam, false));
|
796
833
|
oninit = element.getAttribute(RawSet.DR_ON_CREATED_CALLBACK_OPTIONNAME);
|
797
834
|
if (oninit) {
|
798
|
-
script =
|
835
|
+
script = renderScript + " " + oninit + " ";
|
799
836
|
ScriptUtils_1.ScriptUtils.eval(script, obj);
|
800
837
|
}
|
801
838
|
_m.label = 12;
|
802
839
|
case 12:
|
803
|
-
n.querySelectorAll(EventManager_1.eventManager.attrNames.map(function (it) { return "["
|
840
|
+
n.querySelectorAll(EventManager_1.eventManager.attrNames.map(function (it) { return "[" + it + "]"; }).join(',')).forEach(function (it) {
|
804
841
|
it.setAttribute(EventManager_1.EventManager.ownerVariablePathAttrName, 'this');
|
805
842
|
});
|
843
|
+
// attribute
|
844
|
+
n.getAttributeNames().forEach(function (it) { return n.setAttribute(it, n.getAttribute(it).replace(/#this#/g, drThis)); });
|
806
845
|
thisRandom = this.drThisEncoding(n, drThis);
|
807
846
|
vars = this.drVarEncoding(n, drVarOption);
|
808
847
|
this.drVarDecoding(n, vars);
|
@@ -852,10 +891,11 @@ var RawSet = /** @class */ (function () {
|
|
852
891
|
callBack: function (element, obj, rawSet, attrs, config) {
|
853
892
|
var _a, _b, _c, _d, _e, _f, _g;
|
854
893
|
return __awaiter(this, void 0, void 0, function () {
|
855
|
-
var stylePromises, templatePromise, _h, i_1, it_6, _j, _k, _l, _m, _o, domrenderComponents,
|
894
|
+
var componentKey, stylePromises, templatePromise, _h, i_1, it_6, _j, _k, _l, _m, _o, domrenderComponents, attribute, renderScript, render, constructor, constructorParam, script, param, instance, i, normalAttrMap, onCreate, createParam, script, applayTemplate, innerHTMLThisRandom, componentName, innerHTMLName, oninit, script, style, data, template_1;
|
856
895
|
return __generator(this, function (_p) {
|
857
896
|
switch (_p.label) {
|
858
897
|
case 0:
|
898
|
+
componentKey = rawSet.uuid;
|
859
899
|
stylePromises = [];
|
860
900
|
if (!(this.template && this.template.startsWith('lazy://'))) return [3 /*break*/, 2];
|
861
901
|
return [4 /*yield*/, fetch(this.template.substring(6))];
|
@@ -908,7 +948,6 @@ var RawSet = /** @class */ (function () {
|
|
908
948
|
obj.__domrender_components = {};
|
909
949
|
}
|
910
950
|
domrenderComponents = obj.__domrender_components;
|
911
|
-
componentKey = rawSet.uuid;
|
912
951
|
attribute = DomUtils_1.DomUtils.getAttributeToObject(element);
|
913
952
|
renderScript = 'var $component = this.__render.component; var $element = this.__render.element; var $router = this.__render.router; var $innerHTML = this.__render.innerHTML; var $attribute = this.__render.attribute; var $creatorMetaData = this.__render.creatorMetaData;';
|
914
953
|
render = Object.freeze({
|
@@ -926,7 +965,7 @@ var RawSet = /** @class */ (function () {
|
|
926
965
|
constructorParam = [];
|
927
966
|
// dr-constructor
|
928
967
|
if (constructor) {
|
929
|
-
script =
|
968
|
+
script = renderScript + " return " + constructor + " ";
|
930
969
|
param = (_b = ScriptUtils_1.ScriptUtils.eval(script, Object.assign(obj, { __render: render }))) !== null && _b !== void 0 ? _b : [];
|
931
970
|
if (!Array.isArray(param)) {
|
932
971
|
param = [param];
|
@@ -938,7 +977,7 @@ var RawSet = /** @class */ (function () {
|
|
938
977
|
instance = domrenderComponents[componentKey];
|
939
978
|
i = instance.__domrender_component_new = ((_c = instance.__domrender_component_new) !== null && _c !== void 0 ? _c : new Proxy({}, new Types_1.DomRenderFinalProxy()));
|
940
979
|
i.thisVariableName = rawSet.point.thisVariableName;
|
941
|
-
i.thisFullVariableName = "this.__domrender_components."
|
980
|
+
i.thisFullVariableName = "this.__domrender_components." + componentKey;
|
942
981
|
i.componentKey = componentKey;
|
943
982
|
i.rawSet = rawSet;
|
944
983
|
i.attribute = attribute;
|
@@ -953,7 +992,7 @@ var RawSet = /** @class */ (function () {
|
|
953
992
|
normalAttrMap = element.getAttribute(EventManager_1.EventManager.normalAttrMapAttrName);
|
954
993
|
if (instance.onChangeAttrRender && normalAttrMap) {
|
955
994
|
new Map(JSON.parse(normalAttrMap)).forEach(function (value, key) {
|
956
|
-
var script =
|
995
|
+
var script = renderScript + " return " + value + " ";
|
957
996
|
var cval = ScriptUtils_1.ScriptUtils.eval(script, Object.assign(obj, { __render: render }));
|
958
997
|
// element.setAttribute(key, cval);
|
959
998
|
instance.onChangeAttrRender(key, cval);
|
@@ -963,7 +1002,7 @@ var RawSet = /** @class */ (function () {
|
|
963
1002
|
this.__render = render;
|
964
1003
|
createParam = [];
|
965
1004
|
if (onCreate) {
|
966
|
-
script =
|
1005
|
+
script = renderScript + " return " + onCreate + " ";
|
967
1006
|
createParam = ScriptUtils_1.ScriptUtils.eval(script, Object.assign(obj, { __render: render }));
|
968
1007
|
if (!Array.isArray(createParam)) {
|
969
1008
|
createParam = [createParam];
|
@@ -979,20 +1018,20 @@ var RawSet = /** @class */ (function () {
|
|
979
1018
|
innerHTMLThisRandom = RandomUtils_1.RandomUtils.uuid();
|
980
1019
|
applayTemplate = applayTemplate.replace(/this\./g, innerHTMLThisRandom);
|
981
1020
|
// }
|
982
|
-
applayTemplate = applayTemplate.replace(RegExp("#"
|
1021
|
+
applayTemplate = applayTemplate.replace(RegExp("#" + componentName + "#", 'g'), 'this');
|
983
1022
|
}
|
984
1023
|
// applayTemplate = template.replace(RegExp(`#${innerHTMLName}#`, 'g'), applayTemplate);
|
985
|
-
applayTemplate = ((_g = this.template) !== null && _g !== void 0 ? _g : '').replace(RegExp("#"
|
1024
|
+
applayTemplate = ((_g = this.template) !== null && _g !== void 0 ? _g : '').replace(RegExp("#" + innerHTMLName + "#", 'g'), applayTemplate);
|
986
1025
|
oninit = element.getAttribute(RawSet.DR_ON_CREATED_CALLBACK_OPTIONNAME);
|
987
1026
|
if (oninit) {
|
988
|
-
script =
|
1027
|
+
script = renderScript + " " + oninit + " ";
|
989
1028
|
ScriptUtils_1.ScriptUtils.eval(script, Object.assign(obj, {
|
990
1029
|
__render: render
|
991
1030
|
}));
|
992
1031
|
}
|
993
1032
|
style = RawSet.generateStyleTransform(this.styles, componentKey, true);
|
994
1033
|
element.innerHTML = style + (applayTemplate !== null && applayTemplate !== void 0 ? applayTemplate : '');
|
995
|
-
return [4 /*yield*/, RawSet.drThisCreate(rawSet, element, "this.__domrender_components."
|
1034
|
+
return [4 /*yield*/, RawSet.drThisCreate(rawSet, element, "this.__domrender_components." + componentKey, '', true, obj, config)];
|
996
1035
|
case 12:
|
997
1036
|
data = _p.sent();
|
998
1037
|
// 넘어온 innerHTML에 this가 있는걸 다시 복호화해서 제대로 작동하도록한다.
|
package/rawsets/Render.d.ts
CHANGED
package/routers/Router.d.ts
CHANGED
package/routers/Router.js
CHANGED
@@ -27,7 +27,7 @@ var Router = /** @class */ (function () {
|
|
27
27
|
var _this = this;
|
28
28
|
var proxy = this.rootObj._DomRender_proxy;
|
29
29
|
if (proxy) {
|
30
|
-
var key = "___"
|
30
|
+
var key = "___" + EventManager_1.EventManager.ROUTER_VARNAME;
|
31
31
|
proxy.render(key);
|
32
32
|
}
|
33
33
|
this.attachCallbacks.forEach(function (it) {
|
package/utils/dom/DomUtils.d.ts
CHANGED
@@ -33,7 +33,7 @@ var ScriptUtils = /** @class */ (function () {
|
|
33
33
|
}, new GetDetectProxy());
|
34
34
|
try {
|
35
35
|
// eslint-disable-next-line no-new-func,no-unused-expressions
|
36
|
-
Function("\"use strict\"; "
|
36
|
+
Function("\"use strict\"; " + script + "; ").bind(destUser)();
|
37
37
|
}
|
38
38
|
catch (e) {
|
39
39
|
console.error(e);
|
@@ -49,7 +49,7 @@ var ScriptUtils = /** @class */ (function () {
|
|
49
49
|
};
|
50
50
|
ScriptUtils.eval = function (script, thisTarget) {
|
51
51
|
// eslint-disable-next-line no-new-func,no-unused-expressions
|
52
|
-
return Function("\"use strict\"; "
|
52
|
+
return Function("\"use strict\"; " + script + " ").bind(thisTarget)();
|
53
53
|
};
|
54
54
|
ScriptUtils.loadElement = function (name, attribute, document) {
|
55
55
|
return new Promise(function (resolve, reject) {
|
@@ -1,9 +1,16 @@
|
|
1
1
|
export declare class StorageUtils {
|
2
2
|
static setLocalStorageItem(k: string, v: string | any, window: Window): void;
|
3
|
+
static setSessionStorageItem(k: string, v: string | any, window: Window): void;
|
3
4
|
static getLocalStorageItem(k: string, window: Window): string | null;
|
5
|
+
static getSessionStorageItem(k: string, window: Window): string | null;
|
4
6
|
static cutLocalStorageItem(k: string, window: Window): string | null;
|
7
|
+
static cutSessionStorageItem(k: string, window: Window): string | null;
|
5
8
|
static removeLocalStorageItem(k: string, window: Window): void;
|
9
|
+
static removeSessionStorageItem(k: string, window: Window): void;
|
6
10
|
static getLocalStorageJsonItem<T>(k: string, window: Window): T | undefined;
|
11
|
+
static getSessionStorageJsonItem<T>(k: string, window: Window): T | undefined;
|
7
12
|
static cutLocalStorageJsonItem<T>(k: string, window: Window): T | undefined;
|
13
|
+
static cutSessionStorageJsonItem<T>(k: string, window: Window): T | undefined;
|
8
14
|
static clearLocalStorage(window: Window): void;
|
15
|
+
static clearSessionStorage(window: Window): void;
|
9
16
|
}
|
@@ -10,17 +10,34 @@ var StorageUtils = /** @class */ (function () {
|
|
10
10
|
}
|
11
11
|
window.localStorage.setItem(k, v);
|
12
12
|
};
|
13
|
+
StorageUtils.setSessionStorageItem = function (k, v, window) {
|
14
|
+
if (typeof v === 'object') {
|
15
|
+
v = JSON.stringify(v);
|
16
|
+
}
|
17
|
+
window.sessionStorage.setItem(k, v);
|
18
|
+
};
|
13
19
|
StorageUtils.getLocalStorageItem = function (k, window) {
|
14
20
|
return window.localStorage.getItem(k);
|
15
21
|
};
|
22
|
+
StorageUtils.getSessionStorageItem = function (k, window) {
|
23
|
+
return window.sessionStorage.getItem(k);
|
24
|
+
};
|
16
25
|
StorageUtils.cutLocalStorageItem = function (k, window) {
|
17
26
|
var data = StorageUtils.getLocalStorageItem(k, window);
|
18
27
|
StorageUtils.removeLocalStorageItem(k, window);
|
19
28
|
return data;
|
20
29
|
};
|
30
|
+
StorageUtils.cutSessionStorageItem = function (k, window) {
|
31
|
+
var data = StorageUtils.getSessionStorageItem(k, window);
|
32
|
+
StorageUtils.removeSessionStorageItem(k, window);
|
33
|
+
return data;
|
34
|
+
};
|
21
35
|
StorageUtils.removeLocalStorageItem = function (k, window) {
|
22
36
|
return window.localStorage.removeItem(k);
|
23
37
|
};
|
38
|
+
StorageUtils.removeSessionStorageItem = function (k, window) {
|
39
|
+
return window.sessionStorage.removeItem(k);
|
40
|
+
};
|
24
41
|
StorageUtils.getLocalStorageJsonItem = function (k, window) {
|
25
42
|
var item = window.localStorage.getItem(k);
|
26
43
|
if (item) {
|
@@ -35,14 +52,36 @@ var StorageUtils = /** @class */ (function () {
|
|
35
52
|
return undefined;
|
36
53
|
}
|
37
54
|
};
|
55
|
+
StorageUtils.getSessionStorageJsonItem = function (k, window) {
|
56
|
+
var item = window.sessionStorage.getItem(k);
|
57
|
+
if (item) {
|
58
|
+
try {
|
59
|
+
return JSON.parse(item);
|
60
|
+
}
|
61
|
+
catch (e) {
|
62
|
+
return undefined;
|
63
|
+
}
|
64
|
+
}
|
65
|
+
else {
|
66
|
+
return undefined;
|
67
|
+
}
|
68
|
+
};
|
38
69
|
StorageUtils.cutLocalStorageJsonItem = function (k, window) {
|
39
70
|
var item = StorageUtils.getLocalStorageJsonItem(k, window);
|
40
71
|
StorageUtils.removeLocalStorageItem(k, window);
|
41
72
|
return item;
|
42
73
|
};
|
74
|
+
StorageUtils.cutSessionStorageJsonItem = function (k, window) {
|
75
|
+
var item = StorageUtils.getSessionStorageJsonItem(k, window);
|
76
|
+
StorageUtils.removeSessionStorageItem(k, window);
|
77
|
+
return item;
|
78
|
+
};
|
43
79
|
StorageUtils.clearLocalStorage = function (window) {
|
44
80
|
window.localStorage.clear();
|
45
81
|
};
|
82
|
+
StorageUtils.clearSessionStorage = function (window) {
|
83
|
+
window.sessionStorage.clear();
|
84
|
+
};
|
46
85
|
return StorageUtils;
|
47
86
|
}());
|
48
87
|
exports.StorageUtils = StorageUtils;
|
@@ -1,5 +1,6 @@
|
|
1
1
|
export declare class StringUtils {
|
2
2
|
static deleteEnter(data: string): string;
|
3
3
|
static regexExec(regex: RegExp, text: string): RegExpExecArray[];
|
4
|
+
static regexExecArrayReplace(origin: string, regexpExecArrayOrRegex: RegExpExecArray[] | RegExp, replace: string | ((data: RegExpExecArray) => string)): string;
|
4
5
|
static escapeSpecialCharacterRegExp(data: string): string;
|
5
6
|
}
|
@@ -16,6 +16,23 @@ var StringUtils = /** @class */ (function () {
|
|
16
16
|
}
|
17
17
|
return usingVars;
|
18
18
|
};
|
19
|
+
StringUtils.regexExecArrayReplace = function (origin, regexpExecArrayOrRegex, replace) {
|
20
|
+
var regexpExecArrays = Array.isArray(regexpExecArrayOrRegex) ? regexpExecArrayOrRegex : StringUtils.regexExec(regexpExecArrayOrRegex, origin);
|
21
|
+
regexpExecArrays.reverse().forEach(function (it) {
|
22
|
+
var r = typeof replace === 'string' ? replace : replace(it);
|
23
|
+
origin = origin.substr(0, it.index) + origin.substr(it.index).replace(it[0], r);
|
24
|
+
});
|
25
|
+
return origin;
|
26
|
+
};
|
27
|
+
// public static regexGroups(regex: RegExp, text: string) {
|
28
|
+
// const usingVars = [];
|
29
|
+
// let varExec = regex.exec(text)
|
30
|
+
// while (varExec) {
|
31
|
+
// usingVars.push(varExec)
|
32
|
+
// varExec = regex.exec(varExec.input)
|
33
|
+
// }
|
34
|
+
// return usingVars;
|
35
|
+
// }
|
19
36
|
// public static betweenRegexpStr(start: string, end: string, data: string, flag = 'gm') {
|
20
37
|
// const startEspace = StringUtils.escapeSpecialCharacterRegExp(start);
|
21
38
|
// const reg = RegExp(`(${start}(?:(${start})??[^${startEspace}]*?${end}))`,flag);
|