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.
Files changed (62) hide show
  1. package/DomRender.d.ts +1 -1
  2. package/DomRender.js +3 -3
  3. package/DomRenderProxy.js +12 -14
  4. package/README.MD +41 -0
  5. package/components/ComponentSet.d.ts +1 -1
  6. package/configs/Config.d.ts +1 -1
  7. package/configs/TargetAttr.d.ts +1 -1
  8. package/configs/TargetElement.d.ts +1 -1
  9. package/css/parse/index.d.ts +1 -0
  10. package/css/parse/index.js +512 -0
  11. package/css/stringify/compiler.d.ts +32 -0
  12. package/css/stringify/compiler.js +40 -0
  13. package/css/stringify/compress.d.ts +75 -0
  14. package/css/stringify/compress.js +156 -0
  15. package/css/stringify/identity.d.ts +85 -0
  16. package/css/stringify/identity.js +194 -0
  17. package/css/stringify/index.d.ts +14 -0
  18. package/css/stringify/index.js +44 -0
  19. package/dist/bundle.js +1075 -328
  20. package/events/EventManager.js +27 -27
  21. package/iterators/Range.d.ts +1 -0
  22. package/iterators/Range.js +15 -0
  23. package/messenger/Messenger.d.ts +4 -4
  24. package/operators/Dr.js +2 -2
  25. package/operators/DrAppender.js +5 -3
  26. package/operators/DrFor.js +5 -3
  27. package/operators/DrForOf.js +5 -3
  28. package/operators/DrForm.js +12 -12
  29. package/operators/DrIf.js +5 -3
  30. package/operators/DrInnerHTML.js +2 -2
  31. package/operators/DrInnerText.js +2 -2
  32. package/operators/DrPre.js +4 -2
  33. package/operators/DrRepeat.js +5 -3
  34. package/operators/DrTargetAttr.js +4 -2
  35. package/operators/DrTargetElement.js +5 -3
  36. package/operators/DrThis.js +2 -2
  37. package/operators/DrThisProperty.js +6 -4
  38. package/operators/OperatorExecuter.d.ts +5 -5
  39. package/operators/OperatorExecuter.js +2 -2
  40. package/operators/OperatorExecuterAttrRequire.js +1 -1
  41. package/package.json +3 -3
  42. package/rawsets/AttrInitCallBack.d.ts +1 -1
  43. package/rawsets/Attrs.d.ts +1 -1
  44. package/rawsets/CreatorMetaData.d.ts +1 -1
  45. package/rawsets/ElementInitCallBack.d.ts +1 -1
  46. package/rawsets/RawSet.d.ts +6 -2
  47. package/rawsets/RawSet.js +93 -54
  48. package/rawsets/Render.d.ts +1 -1
  49. package/routers/Router.d.ts +1 -1
  50. package/routers/Router.js +1 -1
  51. package/utils/dom/DomUtils.d.ts +1 -1
  52. package/utils/node/NodeUtils.d.ts +1 -1
  53. package/utils/script/ScriptUtils.js +2 -2
  54. package/utils/storage/StorageUtils.d.ts +7 -0
  55. package/utils/storage/StorageUtils.js +39 -0
  56. package/utils/string/StringUtils.d.ts +1 -0
  57. package/utils/string/StringUtils.js +17 -0
  58. package/validators/EmptyValidator.js +2 -2
  59. package/validators/NotEmptyValidator.js +2 -2
  60. package/validators/ValidMultipleValidator.d.ts +1 -1
  61. package/validators/Validator.d.ts +2 -2
  62. 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 (g && (g = 0, op[0] && (_ = 0)), _) try {
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 = "`".concat((_a = cNode.textContent) !== null && _a !== void 0 ? _a : '', "`");
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.___".concat(it));
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("___".concat(EventManager_1.EventManager.SCRIPTS_VARNAME)); }).forEach(function (it) { return usingTriggerVariables.add(it); });
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 ".concat(EventManager_1.EventManager.SCRIPTS_VARNAME, " = this.__render.scripts;\n const ").concat(EventManager_1.EventManager.RAWSET_VARNAME, " = this.__render.rawset;\n const ").concat(EventManager_1.EventManager.ELEMENT_VARNAME, " = this.__render.element;\n const ").concat(EventManager_1.EventManager.ATTRIBUTE_VARNAME, " = this.__render.attribute;\n const ").concat(EventManager_1.EventManager.RANGE_VARNAME, " = this.__render.range;\n const ").concat(EventManager_1.EventManager.ROUTER_VARNAME, " = this.__render.router;\n ")
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("".concat(__render.bindScript, " return ").concat(runText), Object.assign(obj, { __render: __render }));
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("".concat(__render.bindScript, " return ").concat(runText), Object.assign(obj, { __render: __render }));
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 ".concat(EventManager_1.EventManager.FAG_VARNAME, " = this.__render.fag;\n const ").concat(EventManager_1.EventManager.SCRIPTS_VARNAME, " = this.__render.scripts;\n const ").concat(EventManager_1.EventManager.RAWSET_VARNAME, " = this.__render.rawset;\n ").concat(it.drCompleteOption), Object.assign(obj, { __render: render }));
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
- RawSet.generateStyleSheetsLocal();
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 = "".concat(it_2.targetElement.__render.renderScript, " return ").concat(oninit, " ");
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
- RawSet.generateStyleSheetsLocal = function () {
335
- Array.from(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) {
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 = "#".concat(id, "-start");
353
- var end = "#".concat(id, "-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(".concat(start, " ~ *:not(").concat(start, " ~ ").concat(end, " ~ *))");
373
+ var selectorText = ":is(" + start + " ~ *:not(" + start + " ~ " + end + " ~ *))";
363
374
  if (rule.selectorText.startsWith('.')) {
364
- rule.selectorText = "".concat(selectorText).concat(rule.selectorText, ", ").concat(selectorText, " ").concat(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 = "".concat(start, " ~ ").concat(rule.selectorText, ":not(").concat(start, " ~ ").concat(end, " ~ *)");
369
- rule.selectorText = "".concat(selectorText, " ").concat(rule.selectorText, ", ").concat(divText);
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, id, styleTagWrap) {
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='".concat(id, "-style' domstyle>").concat(styleBody, "</style>");
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("".concat(data, "?.length -1"), obj);
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 = "".concat(data, "[").concat(currentIndex, "]");
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
- // console.log('start==========')
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', "".concat(id, "-start"));
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', "".concat(id, "-end"));
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 ".concat(id, "*/")),
578
- end: config.window.document.createTextNode("/*end text ".concat(id, "*/"))
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 ".concat(id)),
584
- end: config.window.document.createComment("end text ".concat(id))
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("[".concat(RawSet.DR_IT_OPTIONNAME, "], [").concat(RawSet.DR_FOR_OF_NAME, "], [").concat(RawSet.DR_REPEAT_NAME, "]")).forEach(function (it) {
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("[".concat(RawSet.DR_IT_OPTIONNAME, "], [").concat(RawSet.DR_FOR_OF_NAME, "], [").concat(RawSet.DR_REPEAT_NAME, "]")).forEach(function (it) {
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("[".concat(RawSet.DR_PRE_NAME, "]")).forEach(function (it) {
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("[".concat(RawSet.DR_THIS_NAME, "]")).forEach(function (it) {
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], "".concat((_a = it[1]) !== null && _a !== void 0 ? _a : '').concat(drThis));
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], "".concat((_a = it[1]) !== null && _a !== void 0 ? _a : '').concat(drThis));
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("[".concat(RawSet.DR_PRE_NAME, "]")).forEach(function (it) {
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("[".concat(RawSet.DR_THIS_NAME, "]")).forEach(function (it) {
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("[".concat(RawSet.DR_FORM_NAME, "]")).forEach(function (subElement) {
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("[".concat(RawSet.DR_VAR_OPTIONNAME, "]")).forEach(function (it) {
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("[".concat(RawSet.DR_THIS_NAME, "]")).forEach(function (it) {
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 = "".concat(renderScript, " return ").concat(onCreate, " ");
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 = "".concat(renderScript, " ").concat(oninit, " ");
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 "[".concat(it, "]"); }).join(',')).forEach(function (it) {
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, componentKey, attribute, renderScript, render, constructor, constructorParam, script, param, instance, i, normalAttrMap, onCreate, createParam, script, applayTemplate, innerHTMLThisRandom, componentName, innerHTMLName, oninit, script, style, data, template_1;
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 = "".concat(renderScript, " return ").concat(constructor, " ");
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.".concat(componentKey);
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 = "".concat(renderScript, " return ").concat(value, " ");
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 = "".concat(renderScript, " return ").concat(onCreate, " ");
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("#".concat(componentName, "#"), 'g'), 'this');
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("#".concat(innerHTMLName, "#"), 'g'), applayTemplate);
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 = "".concat(renderScript, " ").concat(oninit, " ");
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.".concat(componentKey), '', true, obj, config)];
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가 있는걸 다시 복호화해서 제대로 작동하도록한다.
@@ -1,7 +1,7 @@
1
1
  import { CreatorMetaData } from './CreatorMetaData';
2
2
  import { Router } from '../routers/Router';
3
3
  import { RawSet } from './RawSet';
4
- export type Render = {
4
+ export declare type Render = {
5
5
  rawset?: RawSet;
6
6
  scripts?: {
7
7
  [n: string]: any;
@@ -1,4 +1,4 @@
1
- export type RouteData = {
1
+ export declare type RouteData = {
2
2
  path: string;
3
3
  url: string;
4
4
  data?: any;
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 = "___".concat(EventManager_1.EventManager.ROUTER_VARNAME);
30
+ var key = "___" + EventManager_1.EventManager.ROUTER_VARNAME;
31
31
  proxy.render(key);
32
32
  }
33
33
  this.attachCallbacks.forEach(function (it) {
@@ -1,4 +1,4 @@
1
- export type Attr = {
1
+ export declare type Attr = {
2
2
  name: string;
3
3
  value: any;
4
4
  };
@@ -1,4 +1,4 @@
1
- export type Attr = {
1
+ export declare type Attr = {
2
2
  name: string;
3
3
  value: any;
4
4
  };
@@ -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\"; ".concat(script, "; ")).bind(destUser)();
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\"; ".concat(script, " ")).bind(thisTarget)();
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);