@dooboostore/simple-boot-http-server-ssr 1.0.12 → 1.0.13

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 (38) hide show
  1. package/dist/cjs/filters/SSRFilter.js +1 -1
  2. package/dist/cjs/filters/SSRFilter.js.map +2 -2
  3. package/dist/cjs/filters/SSRLinkDomDomFilter.js +183 -0
  4. package/dist/cjs/filters/SSRLinkDomDomFilter.js.map +7 -0
  5. package/dist/cjs/initializers/LinkedomInitializer.js +81 -0
  6. package/dist/cjs/initializers/LinkedomInitializer.js.map +7 -0
  7. package/dist/esm/filters/SSRFilter.js +1 -1
  8. package/dist/esm/filters/SSRFilter.js.map +2 -2
  9. package/dist/esm/filters/SSRLinkDomDomFilter.js +160 -0
  10. package/dist/esm/filters/SSRLinkDomDomFilter.js.map +7 -0
  11. package/dist/esm/initializers/LinkedomInitializer.js +48 -0
  12. package/dist/esm/initializers/LinkedomInitializer.js.map +7 -0
  13. package/dist/esm-bundle/dooboostore-simple-boot-http-server-ssr.esm.js +681 -242
  14. package/dist/esm-bundle/dooboostore-simple-boot-http-server-ssr.esm.js.map +4 -4
  15. package/dist/types/filters/SSRLinkDomDomFilter.d.ts +57 -0
  16. package/dist/types/filters/SSRLinkDomDomFilter.d.ts.map +1 -0
  17. package/dist/types/index.d.ts +0 -19
  18. package/dist/types/initializers/LinkedomInitializer.d.ts +11 -0
  19. package/dist/types/initializers/LinkedomInitializer.d.ts.map +1 -0
  20. package/dist/umd-bundle/dooboostore-simple-boot-http-server-ssr.umd.js +681 -242
  21. package/dist/umd-bundle/dooboostore-simple-boot-http-server-ssr.umd.js.map +4 -4
  22. package/package.json +15 -14
  23. package/src/filters/SSRFilter.ts +2 -2
  24. package/src/filters/SSRLinkDomDomFilter.ts +227 -0
  25. package/src/initializers/LinkedomInitializer.ts +69 -0
  26. package/src/node_modules/.bin/acorn +17 -0
  27. package/src/node_modules/.bin/browserslist +17 -0
  28. package/src/node_modules/.bin/eslint +17 -0
  29. package/src/node_modules/.bin/jest +17 -0
  30. package/src/node_modules/.bin/ts-jest +17 -0
  31. package/src/node_modules/.bin/ts-node +17 -0
  32. package/src/node_modules/.bin/ts-node-cwd +17 -0
  33. package/src/node_modules/.bin/ts-node-esm +17 -0
  34. package/src/node_modules/.bin/ts-node-script +17 -0
  35. package/src/node_modules/.bin/ts-node-transpile-only +17 -0
  36. package/src/node_modules/.bin/ts-script +17 -0
  37. package/src/node_modules/.bin/tsc +17 -0
  38. package/src/node_modules/.bin/tsserver +17 -0
@@ -30,9 +30,9 @@ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__ge
30
30
  mod
31
31
  ));
32
32
 
33
- // ../../node_modules/.pnpm/node-gzip@1.1.2/node_modules/node-gzip/dist/index.js
33
+ // ../../../node_modules/.pnpm/node-gzip@1.1.2/node_modules/node-gzip/dist/index.js
34
34
  var require_dist = __commonJS({
35
- "../../node_modules/.pnpm/node-gzip@1.1.2/node_modules/node-gzip/dist/index.js"(exports, module) {
35
+ "../../../node_modules/.pnpm/node-gzip@1.1.2/node_modules/node-gzip/dist/index.js"(exports, module) {
36
36
  "use strict";
37
37
  var zlib = __require("zlib");
38
38
  module.exports = {
@@ -945,7 +945,7 @@ var ObjectUtils;
945
945
  const func = new Function("window", "document", "console", `"use strict"; ${script}; `);
946
946
  func.call(destUser, globalContext.window, globalContext.document, globalContext.console);
947
947
  } catch (e) {
948
- console.error("detectPathFromScript error:", e);
948
+ console.error("detectPathFromScript error:", script, e);
949
949
  }
950
950
  if (options?.excludeThis) {
951
951
  const filteredVars = /* @__PURE__ */ new Set();
@@ -1077,117 +1077,6 @@ var getStorage = (window2) => {
1077
1077
  return window2.aroundStorage;
1078
1078
  };
1079
1079
 
1080
- // ../core/dist/esm/string/StringUtils.js
1081
- var StringUtils;
1082
- ((StringUtils2) => {
1083
- StringUtils2.deleteEnter = (data) => {
1084
- return data.replace(/\r?\n/g, "");
1085
- };
1086
- StringUtils2.pickEmoji = (data) => {
1087
- return data.match(/[\p{Emoji}]/gu) ?? [];
1088
- };
1089
- StringUtils2.regexExec = (regex, text) => {
1090
- let varExec = regex.exec(text);
1091
- const usingVars = [];
1092
- while (varExec) {
1093
- usingVars.push(varExec);
1094
- varExec = regex.exec(varExec.input);
1095
- }
1096
- return usingVars;
1097
- };
1098
- StringUtils2.regexExecArrayReplace = (origin, regexpExecArrayOrRegex, replace) => {
1099
- const regexpExecArrays = Array.isArray(regexpExecArrayOrRegex) ? regexpExecArrayOrRegex : StringUtils2.regexExec(regexpExecArrayOrRegex, origin);
1100
- regexpExecArrays.reverse().forEach((it) => {
1101
- const r = typeof replace === "string" ? replace : replace(it);
1102
- origin = origin.substr(0, it.index) + origin.substr(it.index).replace(it[0], r);
1103
- });
1104
- return origin;
1105
- };
1106
- StringUtils2.escapeSpecialCharacterRegExp = (data) => {
1107
- return data.replace(/[.*+?^${}()|[\]\\]/g, "\\$&");
1108
- };
1109
- StringUtils2.trim = (data) => data.trim();
1110
- StringUtils2.rsubString = (data_s, blen_n) => data_s.substring(data_s.length - blen_n, data_s.length);
1111
- StringUtils2.lsubString = (data_s, alen_n) => data_s.substring(0, alen_n);
1112
- StringUtils2.lpad = (fill_s, len_n, full_s) => {
1113
- while (len_n > full_s.length) {
1114
- full_s = fill_s + full_s;
1115
- }
1116
- return StringUtils2.rsubString(full_s, len_n);
1117
- };
1118
- StringUtils2.rpad = (fill_s, len_n, full_s) => {
1119
- while (len_n > full_s.length) {
1120
- full_s += fill_s;
1121
- }
1122
- return StringUtils2.lsubString(full_s, len_n);
1123
- };
1124
- StringUtils2.lappend = (count_n, input_s) => {
1125
- let s = "";
1126
- let i = 0;
1127
- while (i++ < count_n) {
1128
- s += input_s;
1129
- }
1130
- return s;
1131
- };
1132
- StringUtils2.unescape = (html) => {
1133
- if (!html) return "";
1134
- const htmlEntity = {
1135
- quot: '"',
1136
- amp: "&",
1137
- apos: "'",
1138
- lt: "<",
1139
- gt: ">",
1140
- nbsp: "\xA0",
1141
- iexcl: "\xA1",
1142
- cent: "\xA2",
1143
- pound: "\xA3",
1144
- curren: "\xA4",
1145
- yen: "\xA5",
1146
- brvbar: "\xA6",
1147
- sect: "\xA7",
1148
- uml: "\xA8",
1149
- copy: "\xA9",
1150
- ordf: "\xAA",
1151
- laquo: "\xAB",
1152
- not: "\xAC",
1153
- shy: "\xAD",
1154
- reg: "\xAE",
1155
- macr: "\xAF",
1156
- deg: "\xB0",
1157
- plusmn: "\xB1",
1158
- sup2: "\xB2",
1159
- sup3: "\xB3",
1160
- acute: "\xB4",
1161
- micro: "\xB5",
1162
- para: "\xB6",
1163
- middot: "\xB7",
1164
- cedil: "\xB8",
1165
- sup1: "\xB9",
1166
- ordm: "\xBA",
1167
- raquo: "\xBB",
1168
- frac14: "\xBC",
1169
- frac12: "\xBD",
1170
- frac34: "\xBE",
1171
- iquest: "\xBF",
1172
- "#x27": "'"
1173
- };
1174
- return html.replace(/&((?:(?:[a-z0-9]+|#[0-9]{1,6}|#x[0-9a-fA-F]{1,6});?)+);/gi, (match, entity) => {
1175
- const entities = entity.toLowerCase().split(";");
1176
- return entities.map((it) => it in htmlEntity ? htmlEntity[it] : match).join("");
1177
- });
1178
- };
1179
- StringUtils2.executeExpression = (formatString, object) => {
1180
- return formatString.replace(/\${([^{}]*)}/g, (matched, piece) => String(object[piece] ?? matched));
1181
- };
1182
- StringUtils2.ellipsis = (text, length) => {
1183
- if (text.length > length) return `${text.slice(0, length)}...`;
1184
- return text;
1185
- };
1186
- StringUtils2.appendPostposition = (text, { vowel, consonant }) => {
1187
- return `${text}${ValidUtils.lastConsonantLetter(text) ? consonant : vowel}`;
1188
- };
1189
- })(StringUtils || (StringUtils = {}));
1190
-
1191
1080
  // ../core/dist/esm/expression/Expression.js
1192
1081
  var Expression;
1193
1082
  ((Expression2) => {
@@ -1202,17 +1091,6 @@ var Expression;
1202
1091
  return binder;
1203
1092
  });
1204
1093
  };
1205
- let Group;
1206
- ((Group2) => {
1207
- Group2.isExpression = (data) => {
1208
- const reg = /[$#]\{([\s\S.]*?)\}[$#]/g;
1209
- return reg.test(data ?? "");
1210
- };
1211
- Group2.expressionGroups = (data) => {
1212
- const reg = /[$#]\{([\s\S.]*?)\}[$#]/g;
1213
- return StringUtils.regexExec(reg, data ?? "");
1214
- };
1215
- })(Group = Expression2.Group || (Expression2.Group = {}));
1216
1094
  let Path;
1217
1095
  ((Path2) => {
1218
1096
  Path2.pathNameData = (pathName, urlExpression) => {
@@ -2841,6 +2719,74 @@ var ConvertUtils;
2841
2719
  ConvertUtils22.decodeHTMLEscape = (data) => {
2842
2720
  return data.replace(/&amp;/g, "&").replace(/&lt;/g, "<").replace(/&gt;/g, ">").replace(/&quot;/g, '"').replace(/&#39;/g, "'").replace(/&#x2F;/g, "/");
2843
2721
  };
2722
+ function escapeHTML(htmlString, option) {
2723
+ if (!htmlString) return "";
2724
+ const escapeMap = {
2725
+ "&": "&amp;",
2726
+ // 반드시 먼저 처리
2727
+ "<": "&lt;",
2728
+ ">": "&gt;",
2729
+ '"': "&quot;",
2730
+ "'": "&#39;",
2731
+ // or &apos; (하지만 HTML4에서는 &#39; 권장)
2732
+ "/": "&#x2F;",
2733
+ "`": "&#x60;",
2734
+ "=": "&#x3D;",
2735
+ "{": "&#123;",
2736
+ "}": "&#125;",
2737
+ "#": "&#35;",
2738
+ "$": "&#36;",
2739
+ "\n": "&#10;",
2740
+ // newline
2741
+ "\r": "&#13;",
2742
+ // carriage return
2743
+ " ": "&#9;",
2744
+ // tab
2745
+ "\xA0": "&nbsp;",
2746
+ // non-breaking space
2747
+ "\xA2": "&cent;",
2748
+ "\xA3": "&pound;",
2749
+ "\xA5": "&yen;",
2750
+ "\u20AC": "&euro;",
2751
+ "\xA9": "&copy;",
2752
+ "\xAE": "&reg;",
2753
+ "\u2122": "&trade;",
2754
+ "\xB0": "&deg;",
2755
+ "\xB1": "&plusmn;",
2756
+ "\xD7": "&times;",
2757
+ "\xF7": "&divide;",
2758
+ "\u2212": "&minus;",
2759
+ "\u2022": "&bull;",
2760
+ "\u2026": "&hellip;",
2761
+ "\u2190": "&larr;",
2762
+ "\u2192": "&rarr;",
2763
+ "\u2191": "&uarr;",
2764
+ "\u2193": "&darr;",
2765
+ "\u2194": "&harr;"
2766
+ };
2767
+ const targetsSet = option?.targets ? new Set(option.targets) : null;
2768
+ const filteredEscapeMap = targetsSet ? Object.fromEntries(Object.entries(escapeMap).filter(([key]) => targetsSet.has(key))) : escapeMap;
2769
+ const shouldEscapeAmpersand = !targetsSet || targetsSet.has("&");
2770
+ const charsToEscape = Object.keys(filteredEscapeMap).filter((char) => char !== "&");
2771
+ if (charsToEscape.length === 0 && !shouldEscapeAmpersand) {
2772
+ return htmlString;
2773
+ }
2774
+ const escapedChars = charsToEscape.map((char) => {
2775
+ return char.replace(/[.*+?^${}()|[\]\\]/g, "\\$&");
2776
+ }).join("");
2777
+ let result = htmlString;
2778
+ if (shouldEscapeAmpersand) {
2779
+ result = result.replace(/&/g, "&amp;");
2780
+ }
2781
+ if (escapedChars.length > 0) {
2782
+ const regex = new RegExp(`[${escapedChars}]`, "g");
2783
+ result = result.replace(regex, (match) => {
2784
+ return filteredEscapeMap[match] || match;
2785
+ });
2786
+ }
2787
+ return result;
2788
+ }
2789
+ ConvertUtils22.escapeHTML = escapeHTML;
2844
2790
  ConvertUtils22.copyObject = (obj, update = {}) => {
2845
2791
  return { ...obj, ...update };
2846
2792
  };
@@ -4550,6 +4496,138 @@ var NotFoundError = class extends HttpError {
4550
4496
  }
4551
4497
  };
4552
4498
 
4499
+ // ../core/dist/esm/string/StringUtils.js
4500
+ var StringUtils;
4501
+ (function(StringUtils2) {
4502
+ StringUtils2.deleteEnter = (data) => {
4503
+ return data.replace(/\r?\n/g, "");
4504
+ };
4505
+ StringUtils2.pickEmoji = (data) => {
4506
+ return data.match(/[\p{Emoji}]/gu) ?? [];
4507
+ };
4508
+ StringUtils2.regexExec = (regex, text) => {
4509
+ let varExec = regex.exec(text);
4510
+ const usingVars = [];
4511
+ while (varExec) {
4512
+ usingVars.push(varExec);
4513
+ varExec = regex.exec(varExec.input);
4514
+ }
4515
+ return usingVars;
4516
+ };
4517
+ StringUtils2.escapeSpecialCharacterRegExp = (data) => {
4518
+ return data.replace(/[.*+?^${}()|[\]\\]/g, "\\$&");
4519
+ };
4520
+ StringUtils2.trim = (data) => data.trim();
4521
+ StringUtils2.rsubString = (data_s, blen_n) => data_s.substring(data_s.length - blen_n, data_s.length);
4522
+ StringUtils2.lsubString = (data_s, alen_n) => data_s.substring(0, alen_n);
4523
+ StringUtils2.lpad = (fill_s, len_n, full_s) => {
4524
+ while (len_n > full_s.length) {
4525
+ full_s = fill_s + full_s;
4526
+ }
4527
+ return StringUtils2.rsubString(full_s, len_n);
4528
+ };
4529
+ StringUtils2.rpad = (fill_s, len_n, full_s) => {
4530
+ while (len_n > full_s.length) {
4531
+ full_s += fill_s;
4532
+ }
4533
+ return StringUtils2.lsubString(full_s, len_n);
4534
+ };
4535
+ StringUtils2.lappend = (count_n, input_s) => {
4536
+ let s = "";
4537
+ let i = 0;
4538
+ while (i++ < count_n) {
4539
+ s += input_s;
4540
+ }
4541
+ return s;
4542
+ };
4543
+ StringUtils2.unescape = (html) => {
4544
+ if (!html)
4545
+ return "";
4546
+ const htmlEntity = {
4547
+ quot: '"',
4548
+ amp: "&",
4549
+ apos: "'",
4550
+ lt: "<",
4551
+ gt: ">",
4552
+ nbsp: "\xA0",
4553
+ iexcl: "\xA1",
4554
+ cent: "\xA2",
4555
+ pound: "\xA3",
4556
+ curren: "\xA4",
4557
+ yen: "\xA5",
4558
+ brvbar: "\xA6",
4559
+ sect: "\xA7",
4560
+ uml: "\xA8",
4561
+ copy: "\xA9",
4562
+ ordf: "\xAA",
4563
+ laquo: "\xAB",
4564
+ not: "\xAC",
4565
+ shy: "\xAD",
4566
+ reg: "\xAE",
4567
+ macr: "\xAF",
4568
+ deg: "\xB0",
4569
+ plusmn: "\xB1",
4570
+ sup2: "\xB2",
4571
+ sup3: "\xB3",
4572
+ acute: "\xB4",
4573
+ micro: "\xB5",
4574
+ para: "\xB6",
4575
+ middot: "\xB7",
4576
+ cedil: "\xB8",
4577
+ sup1: "\xB9",
4578
+ ordm: "\xBA",
4579
+ raquo: "\xBB",
4580
+ frac14: "\xBC",
4581
+ frac12: "\xBD",
4582
+ frac34: "\xBE",
4583
+ iquest: "\xBF",
4584
+ "#x27": "'"
4585
+ };
4586
+ return html.replace(/&((?:(?:[a-z0-9]+|#[0-9]{1,6}|#x[0-9a-fA-F]{1,6});?)+);/gi, (match, entity) => {
4587
+ const entities = entity.toLowerCase().split(";");
4588
+ return entities.map((it) => it in htmlEntity ? htmlEntity[it] : match).join("");
4589
+ });
4590
+ };
4591
+ StringUtils2.executeExpression = (formatString, object) => {
4592
+ return formatString.replace(/\${([^{}]*)}/g, (matched, piece) => String(object[piece] ?? matched));
4593
+ };
4594
+ StringUtils2.ellipsis = (text, length) => {
4595
+ if (text.length > length)
4596
+ return `${text.slice(0, length)}...`;
4597
+ return text;
4598
+ };
4599
+ StringUtils2.appendPostposition = (text, { vowel, consonant }) => {
4600
+ return `${text}${ValidUtils.lastConsonantLetter(text) ? consonant : vowel}`;
4601
+ };
4602
+ StringUtils2.replaceSequentially = (text, replacements) => {
4603
+ let remainingText = text;
4604
+ let result = "";
4605
+ while (remainingText.length > 0) {
4606
+ let bestMatch = null;
4607
+ for (const replacement of replacements) {
4608
+ const newRegex = new RegExp(replacement.regex);
4609
+ const match = newRegex.exec(remainingText);
4610
+ if (match) {
4611
+ if (bestMatch === null || match.index < bestMatch.index) {
4612
+ bestMatch = { index: match.index, match, replacement };
4613
+ }
4614
+ }
4615
+ }
4616
+ if (bestMatch) {
4617
+ const { index, match, replacement } = bestMatch;
4618
+ const matchedString = match[0];
4619
+ result += remainingText.substring(0, index);
4620
+ result += replacement.callback(matchedString);
4621
+ remainingText = remainingText.substring(index + matchedString.length);
4622
+ } else {
4623
+ result += remainingText;
4624
+ break;
4625
+ }
4626
+ }
4627
+ return result;
4628
+ };
4629
+ })(StringUtils || (StringUtils = {}));
4630
+
4553
4631
  // ../core-web/dist/esm/script/ScriptUtils.js
4554
4632
  var ScriptUtils = class _ScriptUtils {
4555
4633
  /**
@@ -4766,6 +4844,48 @@ var Promises;
4766
4844
  });
4767
4845
  return { promise, resolve, reject };
4768
4846
  };
4847
+ Promises2.executeInChunks = async (promiseFactories, chunkSize = 10) => {
4848
+ const results = [];
4849
+ for (let i = 0; i < promiseFactories.length; i += chunkSize) {
4850
+ const chunk = promiseFactories.slice(i, i + chunkSize);
4851
+ const chunkResults = await Promise.all(chunk.map((factory) => factory()));
4852
+ results.push(...chunkResults);
4853
+ if (i + chunkSize < promiseFactories.length) {
4854
+ await (0, Promises2.sleep)(100);
4855
+ }
4856
+ }
4857
+ return results;
4858
+ };
4859
+ Promises2.executeWithConcurrency = async (promiseFactories, concurrency = 10) => {
4860
+ const results = new Array(promiseFactories.length);
4861
+ let currentIndex = 0;
4862
+ const executeNext = async (index) => {
4863
+ while (currentIndex < promiseFactories.length) {
4864
+ const factoryIndex = currentIndex++;
4865
+ results[factoryIndex] = await promiseFactories[factoryIndex]();
4866
+ }
4867
+ };
4868
+ const workers = Array(Math.min(concurrency, promiseFactories.length)).fill(0).map((_, i) => executeNext(i));
4869
+ await Promise.all(workers);
4870
+ return results;
4871
+ };
4872
+ Promises2.executeWithLimit = async (promiseFactories, limit = 5) => {
4873
+ const results = new Array(promiseFactories.length);
4874
+ const executing = [];
4875
+ for (const [index, factory] of promiseFactories.entries()) {
4876
+ const promise = factory().then((result) => {
4877
+ results[index] = result;
4878
+ }).finally(() => {
4879
+ executing.splice(executing.indexOf(promise), 1);
4880
+ });
4881
+ executing.push(promise);
4882
+ if (executing.length >= limit) {
4883
+ await Promise.race(executing);
4884
+ }
4885
+ }
4886
+ await Promise.all(executing);
4887
+ return results;
4888
+ };
4769
4889
  let Result;
4770
4890
  ((Result2) => {
4771
4891
  async function awaitWrap(promise) {
@@ -5371,7 +5491,13 @@ var _EventManager = class _EventManager2 {
5371
5491
  this.procAttr(childNodes, _EventManager2.normalAttrMapAttrName, (it, attribute) => {
5372
5492
  const map = new Map(JSON.parse(attribute));
5373
5493
  map.forEach((v, k) => {
5374
- const data = ScriptUtils.evaluate(`const $element = this.element; return ${v} `, Object.assign(obj, {
5494
+ const variablePaths = v.variablePaths;
5495
+ let targetScript = v.originalAttrValue;
5496
+ variablePaths.forEach((it2) => {
5497
+ let r = ObjectUtils.Path.toOptionalChainPath(it2.inner);
5498
+ targetScript = targetScript.replaceAll(it2.origin, `\${${r}}`);
5499
+ });
5500
+ const data = ObjectUtils.Script.evaluate(`const $element = this.element; return ${"`" + targetScript + "`"} `, Object.assign(obj, {
5375
5501
  __render: Object.freeze({
5376
5502
  element: it,
5377
5503
  attribute: ElementUtils.getAttributeToObject(it)
@@ -5561,7 +5687,7 @@ var _EventManager = class _EventManager2 {
5561
5687
  });
5562
5688
  }
5563
5689
  getValue(obj, name, bindObj) {
5564
- let r = ScriptUtils.evaluateReturn(name, obj);
5690
+ let r = ObjectUtils.Script.evaluateReturn(name, obj);
5565
5691
  if (typeof r === "function") {
5566
5692
  r = r.bind(bindObj ?? obj);
5567
5693
  }
@@ -5661,6 +5787,7 @@ _EventManager.VARNAMES = [_EventManager.SCRIPTS_VARNAME, _EventManager.FAG_VARNA
5661
5787
  _EventManager.WINDOW_EVENT_POPSTATE = "popstate";
5662
5788
  _EventManager.WINDOW_EVENT_RESIZE = "resize";
5663
5789
  _EventManager.WINDOW_EVENTS = [_EventManager.WINDOW_EVENT_POPSTATE, _EventManager.WINDOW_EVENT_RESIZE];
5790
+ _EventManager.noDetectAttr = [_EventManager.normalAttrMapAttrName];
5664
5791
  _EventManager.attrNames = [
5665
5792
  _EventManager.valueAttrName,
5666
5793
  _EventManager.checkedAttrName,
@@ -5794,7 +5921,7 @@ var DrIf = class extends OperatorExecuterAttrRequire {
5794
5921
  const itRandom = RawSet.drItOtherEncoding(this.elementSource.element, "DrIf");
5795
5922
  const vars = RawSet.drVarEncoding(this.elementSource.element, this.elementSource.attrs.drVarOption ?? "");
5796
5923
  const newTemp = this.source.config.window.document.createElement("temp");
5797
- const keepgoing = ScriptUtils.evaluate(`
5924
+ const keepgoing = ObjectUtils.Script.evaluate(`
5798
5925
  ${this.render.bindScript}
5799
5926
  ${this.elementSource.attrs.drBeforeOption ?? ""}
5800
5927
  if ($rawSet.data === (${ObjectUtils.Path.toOptionalChainPath(attr)})) {
@@ -6307,7 +6434,7 @@ var DrInnerText = class extends OperatorExecuterAttrRequire {
6307
6434
  }
6308
6435
  async executeAttrRequire(attr) {
6309
6436
  const newTemp = this.source.config.window.document.createElement("temp");
6310
- ScriptUtils.evaluate(`
6437
+ ObjectUtils.Script.evaluate(`
6311
6438
  ${this.render.bindScript}
6312
6439
  const n = $element.cloneNode(true);
6313
6440
  ${this.elementSource.attrs.drBeforeOption ?? ""}
@@ -6427,7 +6554,10 @@ var DrForOf = class extends OperatorExecuterAttrRequire {
6427
6554
  const itRandom = RawSet.drItOtherEncoding(this.elementSource.element, "DrForOf");
6428
6555
  const vars = RawSet.drVarEncoding(this.elementSource.element, this.elementSource.attrs.drVarOption ?? "");
6429
6556
  const newTemp = this.source.config.window.document.createElement("temp");
6430
- ScriptUtils.evaluate(`
6557
+ const variableName = this.elementSource.element.getAttribute(RawSet.DR_VARIABLE_NAME_OPTIONNAME);
6558
+ const itemVariableName = this.elementSource.element.getAttribute(RawSet.DR_ITEM_VARIABLE_NAME_OPTIONNAME);
6559
+ const itemIndexVariableName = this.elementSource.element.getAttribute(RawSet.DR_ITEM_INDEX_VARIABLE_NAME_OPTIONNAME);
6560
+ ObjectUtils.Script.evaluate(`
6431
6561
  ${this.render.bindScript}
6432
6562
  ${this.elementSource.attrs.drBeforeOption ?? ""}
6433
6563
  var i = -1;
@@ -6450,11 +6580,18 @@ var DrForOf = class extends OperatorExecuterAttrRequire {
6450
6580
  destIt = forOfStr + '[' + i +']'
6451
6581
  }
6452
6582
  const n = this.__render.element.cloneNode(true);
6453
- // console.log('zzzzzzzzzzz', n.getAttribute('${RawSet.DR_DETECT_ATTR_OPTIONNAME}'));
6454
6583
  Object.entries(this.__render.drAttr).filter(([k,v]) => k !== 'drForOf' && k !== 'drNextOption' && v).forEach(([k, v]) => n.setAttribute(this.__render.drAttrsOriginName[k], v));
6455
- // console.log('---------'+destIt,n, Array.from(n.getAttributeNames()).map(it=>({name:it,attr: n.getAttribute(it)})));
6456
- // console.log('---------destItdestIt',destIt);
6457
6584
  n.getAttributeNames().forEach(it => n.setAttribute(it, n.getAttribute(it).replace(/\\#it\\#/g, destIt).replace(/\\#nearForOfIt\\#/g, destIt).replace(/\\#it\\#/g, destIt).replace(/\\#nearForOfIndex\\#/g, i)))
6585
+ if ('${variableName}') {
6586
+ n.getAttributeNames().forEach(it => n.setAttribute(it, n.getAttribute(it).replaceAll('#${variableName}#', forOfStr)));
6587
+ }
6588
+ if ('${itemVariableName}') {
6589
+ n.getAttributeNames().forEach(it => n.setAttribute(it, n.getAttribute(it).replaceAll('#${itemVariableName}#', destIt)));
6590
+ }
6591
+ if ('${itemIndexVariableName}') {
6592
+ n.getAttributeNames().forEach(it => n.setAttribute(it, n.getAttribute(it).replaceAll('#${itemIndexVariableName}#', i)));
6593
+ }
6594
+
6458
6595
  const drOptionAttr = n.getAttribute('${RawSet.DR_DETECT_ATTR_OPTIONNAME}');
6459
6596
  if (drOptionAttr) {
6460
6597
  const drOptionAttrResult = $scriptUtils.evaluateReturn(drOptionAttr, this);
@@ -6477,12 +6614,16 @@ var DrForOf = class extends OperatorExecuterAttrRequire {
6477
6614
  }
6478
6615
 
6479
6616
  n.innerHTML = n.innerHTML.replace(/\\#it\\#/g, destIt).replace(/\\#index\\#/g, i);
6480
- // console.log('!@@@@', n.innerHTML);
6481
- // DR_THIS_OPTIONNAME \uB294 \uC81C\uAC70\uD55C\uB2E4 \uAF2C\uC778\uB2E4. strip \uD560\uB54C \uB9C9 \uAF2C\uC5EC\uBC84\uB9B0\uB2E4.
6482
- // const drOptionThis = n.getAttribute('${RawSet.DR_THIS_OPTIONNAME}');
6483
- // if (drOptionThis) {
6484
- // n.setAttribute('${RawSet.DR_THIS_NAME}', drOptionThis)
6485
- // }
6617
+ if ('${variableName}') {
6618
+ n.innerHTML = n.innerHTML.replaceAll('#${variableName}#', forOfStr);
6619
+ }
6620
+ if ('${itemVariableName}') {
6621
+ n.innerHTML = n.innerHTML.replaceAll('#${itemVariableName}#', destIt);
6622
+ }
6623
+ if ('${itemIndexVariableName}') {
6624
+ n.innerHTML = n.innerHTML.replaceAll('#${itemIndexVariableName}#', i);
6625
+ }
6626
+
6486
6627
  if (this.__render.drStripOption === 'true') {
6487
6628
  Array.from(n.childNodes).forEach(it => this.__render.fag.append(it));
6488
6629
  } else {
@@ -7475,7 +7616,8 @@ var _RawSet = class _RawSet2 {
7475
7616
  const targetAttrMap = element.getAttribute(EventManager.normalAttrMapAttrName);
7476
7617
  if (targetAttrMap) {
7477
7618
  new Map(JSON.parse(targetAttrMap)).forEach((v, k) => {
7478
- targetScripts.push(`(${v})`);
7619
+ const variablePaths = v.variablePaths;
7620
+ variablePaths.forEach((it) => targetScripts.push(`(${it.inner})`));
7479
7621
  });
7480
7622
  }
7481
7623
  script = targetScripts.join(";");
@@ -7536,12 +7678,18 @@ var _RawSet = class _RawSet2 {
7536
7678
  const runText = _RawSet2.expressionGroups(textContent)[0][1];
7537
7679
  let newNode;
7538
7680
  if (textContent?.startsWith("#")) {
7539
- const r = ObjectUtils.Script.evaluate(`${__render.bindScript} return ${runText}`, Object.assign(obj, { __render }));
7681
+ const r = ObjectUtils.Script.evaluate(
7682
+ `${__render.bindScript} return ${runText}`,
7683
+ Object.assign(obj, { __render })
7684
+ );
7540
7685
  const template = config.window.document.createElement("template");
7541
7686
  template.innerHTML = r;
7542
7687
  newNode = template.content;
7543
7688
  } else {
7544
- const r = ObjectUtils.Script.evaluate(`${__render.bindScript} return ${runText}`, Object.assign(obj, { __render }));
7689
+ const r = ObjectUtils.Script.evaluate(
7690
+ `${__render.bindScript} return ${runText}`,
7691
+ Object.assign(obj, { __render })
7692
+ );
7545
7693
  newNode = config.window.document.createTextNode(r);
7546
7694
  }
7547
7695
  cNode.parentNode?.replaceChild(newNode, cNode);
@@ -7580,23 +7728,140 @@ var _RawSet = class _RawSet2 {
7580
7728
  };
7581
7729
  drAttrs.push(drAttr);
7582
7730
  const operators = [
7583
- new DrPre(this, __render, { raws, fag }, { element, attrName: _RawSet2.DR_PRE_NAME, attr: drAttr.drPre, attrs: drAttr }, { config, obj, operatorAround: config.operatorAround?.drPre }, { onAttrInitCallBacks, onElementInitCallBacks, onThisComponentSetCallBacks }),
7584
- new Dr(this, __render, { raws, fag }, { element, attrName: _RawSet2.DR_NAME, attr: drAttr.dr, attrs: drAttr }, { config, obj, operatorAround: config.operatorAround?.dr }, { onAttrInitCallBacks, onElementInitCallBacks, onThisComponentSetCallBacks }),
7731
+ new DrPre(
7732
+ this,
7733
+ __render,
7734
+ { raws, fag },
7735
+ { element, attrName: _RawSet2.DR_PRE_NAME, attr: drAttr.drPre, attrs: drAttr },
7736
+ { config, obj, operatorAround: config.operatorAround?.drPre },
7737
+ { onAttrInitCallBacks, onElementInitCallBacks, onThisComponentSetCallBacks }
7738
+ ),
7739
+ new Dr(
7740
+ this,
7741
+ __render,
7742
+ { raws, fag },
7743
+ { element, attrName: _RawSet2.DR_NAME, attr: drAttr.dr, attrs: drAttr },
7744
+ { config, obj, operatorAround: config.operatorAround?.dr },
7745
+ { onAttrInitCallBacks, onElementInitCallBacks, onThisComponentSetCallBacks }
7746
+ ),
7585
7747
  // new Dr(this, __render, {raws, fag}, {element, attrName: EventManager.onRenderedInitAttrName, attr: drAttr.dr, attrs: drAttr}, {config, obj, operatorAround: config.operatorAround?.dr}, {onAttrInitCallBacks, onElementInitCallBacks, onThisComponentSetCallBacks}),
7586
- new DrIf(this, __render, { raws, fag }, { element, attrName: _RawSet2.DR_IF_NAME, attr: drAttr.drIf, attrs: drAttr }, { config, obj, operatorAround: config.operatorAround?.drIf }, { onAttrInitCallBacks, onElementInitCallBacks, onThisComponentSetCallBacks }),
7587
- new DrStripElement(this, __render, { raws, fag }, { element, attrName: _RawSet2.DR_STRIP_NAME, attr: drAttr.drStripElement, attrs: drAttr }, { config, obj, operatorAround: config.operatorAround?.drThis }, { onAttrInitCallBacks, onElementInitCallBacks, onThisComponentSetCallBacks }),
7588
- new DrThis(this, __render, { raws, fag }, { element, attrName: _RawSet2.DR_THIS_NAME, attr: drAttr.drThis, attrs: drAttr }, { config, obj, operatorAround: config.operatorAround?.drThis }, { onAttrInitCallBacks, onElementInitCallBacks, onThisComponentSetCallBacks }),
7589
- new DrForm(this, __render, { raws, fag }, { element, attrName: _RawSet2.DR_FOR_NAME, attr: drAttr.drForm, attrs: drAttr }, { config, obj, operatorAround: config.operatorAround?.drForm }, { onAttrInitCallBacks, onElementInitCallBacks, onThisComponentSetCallBacks }),
7590
- new DrInnerText(this, __render, { raws, fag }, { element, attrName: _RawSet2.DR_INNERTEXT_NAME, attr: drAttr.drInnerText, attrs: drAttr }, { config, obj, operatorAround: config.operatorAround?.drInnerText }, { onAttrInitCallBacks, onElementInitCallBacks, onThisComponentSetCallBacks }),
7591
- new DrInnerHTML(this, __render, { raws, fag }, { element, attrName: _RawSet2.DR_INNERHTML_NAME, attr: drAttr.drInnerHTML, attrs: drAttr }, { config, obj, operatorAround: config.operatorAround?.drInnerHTML }, { onAttrInitCallBacks, onElementInitCallBacks, onThisComponentSetCallBacks }),
7592
- new DrFor(this, __render, { raws, fag }, { element, attrName: _RawSet2.DR_FOR_NAME, attr: drAttr.drFor, attrs: drAttr }, { config, obj, operatorAround: config.operatorAround?.drFor }, { onAttrInitCallBacks, onElementInitCallBacks, onThisComponentSetCallBacks }),
7593
- new DrForOf(this, __render, { raws, fag }, { element, attrName: _RawSet2.DR_FOR_OF_NAME, attr: drAttr.drForOf, attrs: drAttr }, { config, obj, operatorAround: config.operatorAround?.drForOf }, { onAttrInitCallBacks, onElementInitCallBacks, onThisComponentSetCallBacks }),
7594
- new DrThisProperty(this, __render, { raws, fag }, { element, attrName: _RawSet2.DR_THIS_PROPERTY_NAME, attr: drAttr.drThisProperty, attrs: drAttr }, { config, obj, operatorAround: config.operatorAround?.drThisProperty }, { onAttrInitCallBacks, onElementInitCallBacks, onThisComponentSetCallBacks }),
7595
- new DrAppender(this, __render, { raws, fag }, { element, attrName: _RawSet2.DR_APPENDER_NAME, attr: drAttr.drAppender, attrs: drAttr }, { config, obj, operatorAround: config.operatorAround?.drAppender }, { onAttrInitCallBacks, onElementInitCallBacks, onThisComponentSetCallBacks }),
7596
- new DrRepeat(this, __render, { raws, fag }, { element, attrName: _RawSet2.DR_REPEAT_NAME, attr: drAttr.drRepeat, attrs: drAttr }, { config, obj, operatorAround: config.operatorAround?.drRepeat }, { onAttrInitCallBacks, onElementInitCallBacks, onThisComponentSetCallBacks }),
7597
- new DrTargetElementIsElement(this, __render, { raws, fag }, { element, attrName: _RawSet2.DR_REPLACE_TARGET_ELEMENT_IS_NAME, attr: drAttr.drReplaceTargetElementIs, attrs: drAttr }, { config, obj }, { onAttrInitCallBacks, onElementInitCallBacks, onThisComponentSetCallBacks }),
7598
- new DrTargetElement(this, __render, { raws, fag }, { element, attrs: drAttr }, { config, obj }, { onAttrInitCallBacks, onElementInitCallBacks, onThisComponentSetCallBacks }),
7599
- new DrTargetAttr(this, __render, { raws, fag }, { element, attrs: drAttr }, { config, obj }, { onAttrInitCallBacks, onElementInitCallBacks, onThisComponentSetCallBacks })
7748
+ new DrIf(
7749
+ this,
7750
+ __render,
7751
+ { raws, fag },
7752
+ { element, attrName: _RawSet2.DR_IF_NAME, attr: drAttr.drIf, attrs: drAttr },
7753
+ { config, obj, operatorAround: config.operatorAround?.drIf },
7754
+ { onAttrInitCallBacks, onElementInitCallBacks, onThisComponentSetCallBacks }
7755
+ ),
7756
+ new DrStripElement(
7757
+ this,
7758
+ __render,
7759
+ { raws, fag },
7760
+ { element, attrName: _RawSet2.DR_STRIP_NAME, attr: drAttr.drStripElement, attrs: drAttr },
7761
+ { config, obj, operatorAround: config.operatorAround?.drThis },
7762
+ { onAttrInitCallBacks, onElementInitCallBacks, onThisComponentSetCallBacks }
7763
+ ),
7764
+ new DrThis(
7765
+ this,
7766
+ __render,
7767
+ { raws, fag },
7768
+ { element, attrName: _RawSet2.DR_THIS_NAME, attr: drAttr.drThis, attrs: drAttr },
7769
+ { config, obj, operatorAround: config.operatorAround?.drThis },
7770
+ { onAttrInitCallBacks, onElementInitCallBacks, onThisComponentSetCallBacks }
7771
+ ),
7772
+ new DrForm(
7773
+ this,
7774
+ __render,
7775
+ { raws, fag },
7776
+ { element, attrName: _RawSet2.DR_FOR_NAME, attr: drAttr.drForm, attrs: drAttr },
7777
+ { config, obj, operatorAround: config.operatorAround?.drForm },
7778
+ { onAttrInitCallBacks, onElementInitCallBacks, onThisComponentSetCallBacks }
7779
+ ),
7780
+ new DrInnerText(
7781
+ this,
7782
+ __render,
7783
+ { raws, fag },
7784
+ { element, attrName: _RawSet2.DR_INNERTEXT_NAME, attr: drAttr.drInnerText, attrs: drAttr },
7785
+ { config, obj, operatorAround: config.operatorAround?.drInnerText },
7786
+ { onAttrInitCallBacks, onElementInitCallBacks, onThisComponentSetCallBacks }
7787
+ ),
7788
+ new DrInnerHTML(
7789
+ this,
7790
+ __render,
7791
+ { raws, fag },
7792
+ { element, attrName: _RawSet2.DR_INNERHTML_NAME, attr: drAttr.drInnerHTML, attrs: drAttr },
7793
+ { config, obj, operatorAround: config.operatorAround?.drInnerHTML },
7794
+ { onAttrInitCallBacks, onElementInitCallBacks, onThisComponentSetCallBacks }
7795
+ ),
7796
+ new DrFor(
7797
+ this,
7798
+ __render,
7799
+ { raws, fag },
7800
+ { element, attrName: _RawSet2.DR_FOR_NAME, attr: drAttr.drFor, attrs: drAttr },
7801
+ { config, obj, operatorAround: config.operatorAround?.drFor },
7802
+ { onAttrInitCallBacks, onElementInitCallBacks, onThisComponentSetCallBacks }
7803
+ ),
7804
+ new DrForOf(
7805
+ this,
7806
+ __render,
7807
+ { raws, fag },
7808
+ { element, attrName: _RawSet2.DR_FOR_OF_NAME, attr: drAttr.drForOf, attrs: drAttr },
7809
+ { config, obj, operatorAround: config.operatorAround?.drForOf },
7810
+ { onAttrInitCallBacks, onElementInitCallBacks, onThisComponentSetCallBacks }
7811
+ ),
7812
+ new DrThisProperty(
7813
+ this,
7814
+ __render,
7815
+ { raws, fag },
7816
+ { element, attrName: _RawSet2.DR_THIS_PROPERTY_NAME, attr: drAttr.drThisProperty, attrs: drAttr },
7817
+ { config, obj, operatorAround: config.operatorAround?.drThisProperty },
7818
+ { onAttrInitCallBacks, onElementInitCallBacks, onThisComponentSetCallBacks }
7819
+ ),
7820
+ new DrAppender(
7821
+ this,
7822
+ __render,
7823
+ { raws, fag },
7824
+ { element, attrName: _RawSet2.DR_APPENDER_NAME, attr: drAttr.drAppender, attrs: drAttr },
7825
+ { config, obj, operatorAround: config.operatorAround?.drAppender },
7826
+ { onAttrInitCallBacks, onElementInitCallBacks, onThisComponentSetCallBacks }
7827
+ ),
7828
+ new DrRepeat(
7829
+ this,
7830
+ __render,
7831
+ { raws, fag },
7832
+ { element, attrName: _RawSet2.DR_REPEAT_NAME, attr: drAttr.drRepeat, attrs: drAttr },
7833
+ { config, obj, operatorAround: config.operatorAround?.drRepeat },
7834
+ { onAttrInitCallBacks, onElementInitCallBacks, onThisComponentSetCallBacks }
7835
+ ),
7836
+ new DrTargetElementIsElement(
7837
+ this,
7838
+ __render,
7839
+ { raws, fag },
7840
+ {
7841
+ element,
7842
+ attrName: _RawSet2.DR_REPLACE_TARGET_ELEMENT_IS_NAME,
7843
+ attr: drAttr.drReplaceTargetElementIs,
7844
+ attrs: drAttr
7845
+ },
7846
+ { config, obj },
7847
+ { onAttrInitCallBacks, onElementInitCallBacks, onThisComponentSetCallBacks }
7848
+ ),
7849
+ new DrTargetElement(
7850
+ this,
7851
+ __render,
7852
+ { raws, fag },
7853
+ { element, attrs: drAttr },
7854
+ { config, obj },
7855
+ { onAttrInitCallBacks, onElementInitCallBacks, onThisComponentSetCallBacks }
7856
+ ),
7857
+ new DrTargetAttr(
7858
+ this,
7859
+ __render,
7860
+ { raws, fag },
7861
+ { element, attrs: drAttr },
7862
+ { config, obj },
7863
+ { onAttrInitCallBacks, onElementInitCallBacks, onThisComponentSetCallBacks }
7864
+ )
7600
7865
  ];
7601
7866
  for (const operator of operators) {
7602
7867
  const state = await operator.start();
@@ -7636,12 +7901,12 @@ var _RawSet = class _RawSet2 {
7636
7901
  });
7637
7902
  for (const it of onThisComponentSetCallBacks) {
7638
7903
  if (isOnInitRender(it.obj)) {
7639
- it.obj?.onInitRender?.({}, this);
7904
+ await it.obj?.onInitRender?.({}, this);
7640
7905
  }
7641
7906
  }
7642
7907
  for (const it of onElementInitCallBacks) {
7643
7908
  if (isOnInitRender(this.dataSet.render?.currentThis)) {
7644
- this.dataSet.render.currentThis.onInitRender({}, this);
7909
+ await this.dataSet.render.currentThis.onInitRender({}, this);
7645
7910
  }
7646
7911
  config?.onElementInit?.(it.name, obj, this, it.targetElement);
7647
7912
  }
@@ -7743,7 +8008,10 @@ var _RawSet = class _RawSet2 {
7743
8008
  getDrAppendAttributeAndDelete(element, obj) {
7744
8009
  let data = element.getAttribute(_RawSet2.DR_APPENDER_NAME);
7745
8010
  if (data && !/\[.+\]/g.test(data)) {
7746
- const currentIndex = ObjectUtils.Script.evaluateReturn(`${ObjectUtils.Path.toOptionalChainPath(data)}?.length -1`, obj);
8011
+ const currentIndex = ObjectUtils.Script.evaluateReturn(
8012
+ `${ObjectUtils.Path.toOptionalChainPath(data)}?.length -1`,
8013
+ obj
8014
+ );
7747
8015
  data = `${data}[${currentIndex}]`;
7748
8016
  element.setAttribute(_RawSet2.DR_APPENDER_NAME, data);
7749
8017
  }
@@ -7789,22 +8057,28 @@ var _RawSet = class _RawSet2 {
7789
8057
  const normalAttrs = /* @__PURE__ */ new Map();
7790
8058
  const linkVariables = /* @__PURE__ */ new Map();
7791
8059
  const linkNames = EventManager.linkAttrs.map((it) => it.name);
7792
- const isAttr = element2.getAttributeNames().filter((it) => {
8060
+ const isAttr = element2.getAttributeNames().filter((it) => !EventManager.noDetectAttr.includes(it)).filter((it) => {
7793
8061
  const value = element2.getAttribute(it);
7794
8062
  if (value && linkNames.includes(it)) {
7795
8063
  linkVariables.set(it, value);
7796
8064
  } else if (value && _RawSet2.isExpression(value)) {
7797
- let variablePath = _RawSet2.expressionGroups(value)[0][1];
7798
- const originVariable = variablePath;
7799
- variablePath = variablePath.replace(/#[^#]*#/g, "({})");
7800
- const optionalChainPath = ObjectUtils.Path.toOptionalChainPath(variablePath);
7801
- const cval = ObjectUtils.Script.evaluateReturn(optionalChainPath, Object.assign(obj));
8065
+ const variablePaths = _RawSet2.expressionGroups(value).map((it2) => ({
8066
+ origin: it2[0],
8067
+ inner: it2[1]
8068
+ }));
8069
+ let targetScript = value;
8070
+ variablePaths.forEach((it2) => {
8071
+ let r3 = it2.inner.replace(/#[^#]*#/g, "({})");
8072
+ r3 = ObjectUtils.Path.toOptionalChainPath(r3);
8073
+ targetScript = targetScript.replaceAll(it2.origin, `\${${r3}}`);
8074
+ });
8075
+ const cval = ObjectUtils.Script.evaluateReturn("`" + targetScript + "`", Object.assign(obj));
7802
8076
  if (cval === null) {
7803
8077
  element2.removeAttribute(it);
7804
8078
  } else {
7805
8079
  element2.setAttribute(it, cval);
7806
8080
  }
7807
- normalAttrs.set(it, originVariable);
8081
+ normalAttrs.set(it, { originalAttrValue: value, variablePaths });
7808
8082
  }
7809
8083
  const isTargetAttr = targetAttrNames.includes(it.toLowerCase());
7810
8084
  return isTargetAttr;
@@ -8218,11 +8492,33 @@ var _RawSet = class _RawSet2 {
8218
8492
  targetElement.querySelectorAll(EventManager.attrNames.map((it) => `[${it}]`).join(",")).forEach((it) => {
8219
8493
  it.setAttribute(EventManager.ownerVariablePathAttrName, "this");
8220
8494
  });
8221
- const componentNameReplaceKey = RandomUtils.uuid();
8222
8495
  rawSet.point.innerHTML = element.innerHTML;
8223
- const innerHTMLName = targetElement.getAttribute(_RawSet2.DR_COMPONENT_INNER_HTML_NAME_OPTIONNAME) ?? "innerHTML";
8496
+ const innerText = element.textContent?.trim() ?? "";
8497
+ const escapedInnerHTML = ConvertUtils.escapeHTML(element.innerHTML);
8498
+ const innerHTMLName = targetElement.getAttribute(_RawSet2.DR_INNER_HTML_NAME_OPTIONNAME) ?? "innerHTML";
8499
+ const innerTEXTName = targetElement.getAttribute(_RawSet2.DR_INNER_TEXT_NAME_OPTIONNAME) ?? "innerTEXT";
8500
+ const innerHTMLEscapedName = targetElement.getAttribute(_RawSet2.DR_INNER_HTML_ESCAPED_NAME_OPTIONNAME) ?? "innerHTMLEscaped";
8501
+ const templateReplacements = [];
8224
8502
  if (innerHTMLName) {
8225
- _RawSet2.replaceInnerHTML(targetElement, { asIs: `#${innerHTMLName}#`, toBe: element.innerHTML });
8503
+ templateReplacements.push({
8504
+ regex: new RegExp(`#${innerHTMLName}#`, "g"),
8505
+ callback: () => element.innerHTML
8506
+ });
8507
+ }
8508
+ if (innerTEXTName) {
8509
+ templateReplacements.push({
8510
+ regex: new RegExp(`#${innerTEXTName}#`, "g"),
8511
+ callback: () => innerText
8512
+ });
8513
+ }
8514
+ if (innerHTMLEscapedName) {
8515
+ templateReplacements.push({
8516
+ regex: new RegExp(`#${innerHTMLEscapedName}#`, "g"),
8517
+ callback: () => escapedInnerHTML
8518
+ });
8519
+ }
8520
+ if (templateReplacements.length > 0) {
8521
+ targetElement.innerHTML = StringUtils.replaceSequentially(targetElement.innerHTML, templateReplacements);
8226
8522
  }
8227
8523
  const optionThisName = targetElement.getAttribute(_RawSet2.DR_THIS_NAME_OPTIONNAME);
8228
8524
  targetElement.getAttributeNames().forEach((it) => targetElement.setAttribute(it, targetElement.getAttribute(it).replace(/#this#/g, drThis)));
@@ -8299,7 +8595,6 @@ var _RawSet = class _RawSet2 {
8299
8595
  obj.__domrender_components ?? (obj.__domrender_components = {});
8300
8596
  const domrenderComponents = obj.__domrender_components;
8301
8597
  const renderScript = ` /*createComponentTargetElement*/
8302
- // console.log('-------------------',this.__render);
8303
8598
  var ${EventManager.RAWSET_VARNAME} = this.__render.rawSet;
8304
8599
  var ${EventManager.COMPONENT_VARNAME} = this.__render.component;
8305
8600
  var ${EventManager.ELEMENT_VARNAME} = this.__render.element;
@@ -8354,15 +8649,40 @@ var _RawSet = class _RawSet2 {
8354
8649
  rawSet.dataSet.render = render;
8355
8650
  instance.__rawSet = rawSet;
8356
8651
  let applayTemplate = element.innerHTML;
8652
+ let applayTemplateText = element.textContent?.trim() ?? "";
8653
+ let applayTemplateEscape = ConvertUtils.escapeHTML(element.innerHTML);
8357
8654
  let innerHTMLThisRandom;
8358
- const componentName = element.getAttribute(_RawSet2.DR_COMPONENT_NAME_OPTIONNAME) ?? "component";
8359
- const innerHTMLName = element.getAttribute(_RawSet2.DR_COMPONENT_INNER_HTML_NAME_OPTIONNAME) ?? "innerHTML";
8655
+ const componentName = element.getAttribute(_RawSet2.DR_VARIABLE_NAME_OPTIONNAME) ?? "component";
8656
+ const innerHTMLName = element.getAttribute(_RawSet2.DR_INNER_HTML_NAME_OPTIONNAME) ?? "innerHTML";
8657
+ const innerTEXTName = element.getAttribute(_RawSet2.DR_INNER_TEXT_NAME_OPTIONNAME) ?? "innerTEXT";
8658
+ const innerHTMLEscapedName = element.getAttribute(_RawSet2.DR_INNER_HTML_ESCAPED_NAME_OPTIONNAME) ?? "innerHTMLEscaped";
8360
8659
  if (applayTemplate) {
8361
8660
  innerHTMLThisRandom = RandomUtils.uuid();
8362
- applayTemplate = applayTemplate.replace(/this\./g, innerHTMLThisRandom);
8363
- applayTemplate = applayTemplate.replace(RegExp(`#${componentName}#`, "g"), "this");
8661
+ applayTemplate = StringUtils.replaceSequentially(applayTemplate, [
8662
+ {
8663
+ regex: /this\./g,
8664
+ callback: () => innerHTMLThisRandom
8665
+ },
8666
+ {
8667
+ regex: new RegExp(`#${componentName}#`, "g"),
8668
+ callback: () => nearThisPath
8669
+ }
8670
+ ]);
8364
8671
  }
8365
- applayTemplate = (this.template ?? "").replace(RegExp(`#${innerHTMLName}#`, "g"), applayTemplate);
8672
+ applayTemplate = StringUtils.replaceSequentially(this.template ?? "", [
8673
+ {
8674
+ regex: new RegExp(`#${innerHTMLName}#`, "g"),
8675
+ callback: () => applayTemplate
8676
+ },
8677
+ {
8678
+ regex: new RegExp(`#${innerTEXTName}#`, "g"),
8679
+ callback: () => applayTemplateText
8680
+ },
8681
+ {
8682
+ regex: new RegExp(`#${innerHTMLEscapedName}#`, "g"),
8683
+ callback: () => applayTemplateEscape
8684
+ }
8685
+ ]);
8366
8686
  const style = _RawSet2.generateStyleTransform(this.styles, rawSet.uuid, true);
8367
8687
  element.innerHTML = style + (applayTemplate ?? "");
8368
8688
  let data = await _RawSet2.drThisCreate(
@@ -8376,8 +8696,8 @@ var _RawSet = class _RawSet2 {
8376
8696
  );
8377
8697
  if (data && innerHTMLThisRandom) {
8378
8698
  const template2 = config.window.document.createElement("template");
8379
- template2.content.append(data);
8380
- template2.innerHTML = template2.innerHTML.replace(RegExp(innerHTMLThisRandom, "g"), "this.");
8699
+ template2.innerHTML = ElementUtils.toInnerHTML(data, { document: config.window.document }).replace(RegExp(innerHTMLThisRandom, "g"), "this.");
8700
+ ;
8381
8701
  data = template2.content;
8382
8702
  }
8383
8703
  return data;
@@ -8414,8 +8734,24 @@ var _RawSet = class _RawSet2 {
8414
8734
  const normalAttribute = attribute[EventManager.normalAttrMapAttrName];
8415
8735
  if (normalAttribute) {
8416
8736
  new Map(JSON.parse(normalAttribute)).forEach((v, k) => {
8737
+ const variablePaths = v.variablePaths;
8738
+ let targetScript = v.originalAttrValue.trim();
8739
+ let checktargetScript = v.originalAttrValue.trim();
8740
+ variablePaths.forEach((it) => {
8741
+ checktargetScript = targetScript.replaceAll(it.origin, "");
8742
+ });
8743
+ let isScriptValue = checktargetScript.length === 0 && variablePaths.length === 1;
8744
+ if (isScriptValue) {
8745
+ let r = ObjectUtils.Path.toOptionalChainPath(variablePaths[0].inner);
8746
+ targetScript = targetScript.replaceAll(variablePaths[0].origin, r);
8747
+ } else {
8748
+ variablePaths.forEach((it) => {
8749
+ let r = ObjectUtils.Path.toOptionalChainPath(it.inner);
8750
+ targetScript = targetScript.replaceAll(it.origin, `\${${r}}`);
8751
+ });
8752
+ }
8417
8753
  const cval = ObjectUtils.Script.evaluateReturn(
8418
- { bodyScript: config.script, returnScript: v },
8754
+ { bodyScript: config.script, returnScript: isScriptValue ? targetScript : "`" + targetScript + "`" },
8419
8755
  Object.assign(config.obj, config.renderData ? { __render: config.renderData } : void 0)
8420
8756
  );
8421
8757
  attribute[k] = cval;
@@ -8454,8 +8790,12 @@ _RawSet.DR_COMPLETE_OPTIONNAME = "dr-option-complete";
8454
8790
  _RawSet.DR_STRIP_OPTIONNAME = "dr-option-strip";
8455
8791
  _RawSet.DR_DESTROY_OPTIONNAME = "dr-option-destroy";
8456
8792
  _RawSet.DR_THIS_NAME_OPTIONNAME = "dr-option-this-name";
8457
- _RawSet.DR_COMPONENT_NAME_OPTIONNAME = "dr-option-component-name";
8458
- _RawSet.DR_COMPONENT_INNER_HTML_NAME_OPTIONNAME = "dr-option-component-inner-html-name";
8793
+ _RawSet.DR_VARIABLE_NAME_OPTIONNAME = "dr-option-variable-name";
8794
+ _RawSet.DR_ITEM_VARIABLE_NAME_OPTIONNAME = "dr-option-item-variable-name";
8795
+ _RawSet.DR_ITEM_INDEX_VARIABLE_NAME_OPTIONNAME = "dr-option-item-index-variable-name";
8796
+ _RawSet.DR_INNER_HTML_NAME_OPTIONNAME = "dr-option-inner-html-name";
8797
+ _RawSet.DR_INNER_TEXT_NAME_OPTIONNAME = "dr-option-inner-text-name";
8798
+ _RawSet.DR_INNER_HTML_ESCAPED_NAME_OPTIONNAME = "dr-option-inner-html-escaped-name";
8459
8799
  _RawSet.DR_KEY_OPTIONNAME = "dr-option-key";
8460
8800
  _RawSet.DR_HAS_KEYS_OPTIONNAME = "dr-option-has-keys";
8461
8801
  _RawSet.DR_ON_CREATE_ARGUMENTS_OPTIONNAME = "dr-on-create:arguments";
@@ -8561,7 +8901,20 @@ var isOnRawSetRendered = (obj) => {
8561
8901
  };
8562
8902
 
8563
8903
  // ../dom-render/dist/esm/DomRenderProxy.js
8564
- var excludeGetSetPropertys = ["onBeforeReturnGet", "onBeforeReturnSet", "__domrender_components", "__render", "_DomRender_isFinal", "_domRender_ref", "_rawSets", "_domRender_proxy", "_targets", "_DomRender_origin", "_DomRender_ref", "_DomRender_proxy"];
8904
+ var excludeGetSetPropertys = [
8905
+ "onBeforeReturnGet",
8906
+ "onBeforeReturnSet",
8907
+ "__domrender_components",
8908
+ "__render",
8909
+ "_DomRender_isFinal",
8910
+ "_domRender_ref",
8911
+ "_rawSets",
8912
+ "_domRender_proxy",
8913
+ "_targets",
8914
+ "_DomRender_origin",
8915
+ "_DomRender_ref",
8916
+ "_DomRender_proxy"
8917
+ ];
8565
8918
  var isWrapProxyDomRenderProxy = (obj) => {
8566
8919
  return obj && typeof obj === "object" && "_DomRender_isProxy" in obj;
8567
8920
  };
@@ -8597,7 +8950,7 @@ var DomRenderProxy = class _DomRenderProxy {
8597
8950
  static isFinal(obj) {
8598
8951
  return ValidUtils.isNull(obj) || DomRenderFinalProxy.isFinal(obj);
8599
8952
  }
8600
- run(objProxy) {
8953
+ async run(objProxy) {
8601
8954
  this._domRender_proxy = objProxy;
8602
8955
  if (isOnProxyDomRender(objProxy)) {
8603
8956
  objProxy.onProxyDomRender(this._domRender_config);
@@ -8622,18 +8975,18 @@ var DomRenderProxy = class _DomRenderProxy {
8622
8975
  }
8623
8976
  });
8624
8977
  }
8625
- this._targets.forEach((target) => {
8626
- this.initRender(target);
8627
- });
8978
+ for (let target of this._targets) {
8979
+ await this.initRender(target);
8980
+ }
8628
8981
  }
8629
- initRender(target, rawSet) {
8982
+ async initRender(target, rawSet) {
8630
8983
  if (target instanceof Element) {
8631
8984
  target.innerHTML = target.innerHTML.replace(/@this@/g, "this");
8632
8985
  }
8633
8986
  const onCreate = target.getAttribute?.(RawSet.DR_ON_CREATE_ARGUMENTS_OPTIONNAME);
8634
8987
  let createParam = [];
8635
8988
  if (onCreate) {
8636
- createParam = ScriptUtils.evaluateReturn(onCreate, this._domRender_proxy);
8989
+ createParam = ObjectUtils.Script.evaluateReturn(onCreate, this._domRender_proxy);
8637
8990
  if (!Array.isArray(createParam)) {
8638
8991
  createParam = [createParam];
8639
8992
  }
@@ -8646,7 +8999,11 @@ var DomRenderProxy = class _DomRenderProxy {
8646
8999
  }
8647
9000
  this._targets.add(target);
8648
9001
  const rawSets = RawSet.checkPointCreates(target, this._domRender_proxy, this._domRender_config);
8649
- this._domRender_config.eventManager.applyEvent(this._domRender_proxy, this._domRender_config.eventManager.findAttrElements(target, this._domRender_config), this._domRender_config);
9002
+ this._domRender_config.eventManager.applyEvent(
9003
+ this._domRender_proxy,
9004
+ this._domRender_config.eventManager.findAttrElements(target, this._domRender_config),
9005
+ this._domRender_config
9006
+ );
8650
9007
  rawSets.forEach((it) => {
8651
9008
  const variables = it.getUsingTriggerVariables(this._domRender_config);
8652
9009
  if (variables.size <= 0) {
@@ -8657,16 +9014,20 @@ var DomRenderProxy = class _DomRenderProxy {
8657
9014
  });
8658
9015
  }
8659
9016
  });
8660
- this.render(this.getRawSets()).then((it) => {
9017
+ const targetRawSets = await this.render(this.getRawSets());
9018
+ for (let targetRawSet of targetRawSets) {
8661
9019
  const onInit = target.getAttribute?.(RawSet.DR_ON_INIT_ARGUMENTS_OPTIONNAME);
8662
9020
  let initParam;
8663
9021
  if (onCreate) {
8664
9022
  initParam = ScriptUtils.evaluateReturn(onCreate, this._domRender_proxy);
8665
9023
  }
8666
9024
  if (isOnInitRender(this._domRender_proxy)) {
8667
- this._domRender_proxy.onInitRender(initParam, rawSet ?? { dataSet: { config: this._domRender_config } });
9025
+ await this._domRender_proxy.onInitRender(
9026
+ initParam,
9027
+ rawSet ?? { dataSet: { config: this._domRender_config } }
9028
+ );
8668
9029
  }
8669
- });
9030
+ }
8670
9031
  }
8671
9032
  getRawSets() {
8672
9033
  const set = /* @__PURE__ */ new Set();
@@ -8699,9 +9060,12 @@ var DomRenderProxy = class _DomRenderProxy {
8699
9060
  } else if (it.type === RawSetType.TARGET_ELEMENT && it.dataSet?.render?.currentThis && fullPathStr && targetAttrMap) {
8700
9061
  new Map(JSON.parse(targetAttrMap)).forEach((v, k) => {
8701
9062
  var _a7;
8702
- const isUsing = EventManager.isUsingThisVar(v, `this.${fullPathStr}`);
9063
+ const isUsing = v.variablePaths.some((it2) => EventManager.isUsingThisVar(it2.inner, `this.${fullPathStr}`));
8703
9064
  if (isUsing) {
8704
- const targetAttrObject = RawSet.getAttributeObject(it.point.node, { script: it.dataSet?.render?.renderScript ?? "", obj: Object.assign(this._domRender_proxy ?? {}, { __render: it.dataSet?.render }) });
9065
+ const targetAttrObject = RawSet.getAttributeObject(it.point.node, {
9066
+ script: it.dataSet?.render?.renderScript ?? "",
9067
+ obj: Object.assign(this._domRender_proxy ?? {}, { __render: it.dataSet?.render })
9068
+ });
8705
9069
  (_a7 = it.dataSet).render ?? (_a7.render = {});
8706
9070
  it.dataSet.render.attribute = targetAttrObject;
8707
9071
  if (isOnChangeAttrRender(it.dataSet?.render?.currentThis)) {
@@ -8745,7 +9109,11 @@ var DomRenderProxy = class _DomRenderProxy {
8745
9109
  it.forEach((sit) => {
8746
9110
  try {
8747
9111
  const concat = pathInfos.concat([[{ path: sit, obj: key }]]);
8748
- const items = key._DomRender_proxy?.root(concat, value, lastDoneExecute);
9112
+ const items = key._DomRender_proxy?.root(
9113
+ concat,
9114
+ value,
9115
+ lastDoneExecute
9116
+ );
8749
9117
  fullPaths.push(items.flat());
8750
9118
  } catch (e) {
8751
9119
  }
@@ -8781,10 +9149,19 @@ var DomRenderProxy = class _DomRenderProxy {
8781
9149
  if (value === void 0) {
8782
9150
  const rawSet = it.getHasRawSet(lastPropertyName);
8783
9151
  rawSet?.remove();
8784
- startElement.setAttribute(RawSet.DR_HAS_KEYS_OPTIONNAME, keys.filter((it2) => it2 !== lastPropertyName).join(","));
9152
+ startElement.setAttribute(
9153
+ RawSet.DR_HAS_KEYS_OPTIONNAME,
9154
+ keys.filter((it2) => it2 !== lastPropertyName).join(",")
9155
+ );
8785
9156
  }
8786
9157
  if (!keys.includes(lastPropertyName)) {
8787
- const raws = DrThisProperty.append(this._domRender_proxy, fullPathStr, lastPropertyName, it, this._domRender_config);
9158
+ const raws = DrThisProperty.append(
9159
+ this._domRender_proxy,
9160
+ fullPathStr,
9161
+ lastPropertyName,
9162
+ it,
9163
+ this._domRender_config
9164
+ );
8788
9165
  if (raws) {
8789
9166
  rawSets.push(...raws);
8790
9167
  }
@@ -8804,10 +9181,19 @@ var DomRenderProxy = class _DomRenderProxy {
8804
9181
  } else if (iterable) {
8805
9182
  rData = await this.render(Array.from(iterable), fullPathStr);
8806
9183
  }
9184
+ const Node2 = this._domRender_config.window.Node;
8807
9185
  this._targets.forEach((it) => {
8808
- if (it.nodeType === Node.DOCUMENT_FRAGMENT_NODE || it.nodeType === Node.ELEMENT_NODE) {
8809
- const targets = this._domRender_config.eventManager.findAttrElements(it, this._domRender_config);
8810
- this._domRender_config.eventManager.changeVar(this._domRender_proxy, targets, `this.${fullPathStr}`, this._domRender_config);
9186
+ if (it.nodeType === Node2.DOCUMENT_FRAGMENT_NODE || it.nodeType === Node2.ELEMENT_NODE) {
9187
+ const targets = this._domRender_config.eventManager.findAttrElements(
9188
+ it,
9189
+ this._domRender_config
9190
+ );
9191
+ this._domRender_config.eventManager.changeVar(
9192
+ this._domRender_proxy,
9193
+ targets,
9194
+ `this.${fullPathStr}`,
9195
+ this._domRender_config
9196
+ );
8811
9197
  }
8812
9198
  });
8813
9199
  if (rData?.length > 0 && isOnChildRenderedByProperty(data)) {
@@ -8839,49 +9225,64 @@ var DomRenderProxy = class _DomRenderProxy {
8839
9225
  fullPathInfo = this.root([[{ path: p, obj: this._domRender_proxy }]], value);
8840
9226
  }
8841
9227
  const rootElement = this._domRender_config.rootElement ?? this._domRender_config.window.document;
8842
- DocumentUtils.querySelectorAllByAttributeName(rootElement, EventManager.normalAttrMapAttrName)?.forEach((elementInfo) => {
8843
- const targets = new Map(ScriptUtils.evaluateReturn(elementInfo.value));
8844
- Array.from(targets.entries()).filter(([key, value2]) => value2.trim()).filter(isDefined).flatMap(([key, valueScript]) => {
8845
- return fullPathInfo.flat().filter((it) => valueScript.includes(`this.${it.path}`)).flatMap((it) => ({ key, valueScript, pathInfo: it }));
8846
- }).forEach((it) => {
8847
- const optionalPath = ObjectUtils.Path.toOptionalChainPath(it.valueScript);
8848
- const value1 = ScriptUtils.evaluateReturn(optionalPath, it.pathInfo.obj);
8849
- if (value1 === null) {
8850
- elementInfo.element.removeAttribute(it.key);
8851
- elementInfo.element[it.key] = null;
8852
- } else {
8853
- elementInfo.element.setAttribute(it.key, value1);
8854
- elementInfo.element[it.key] = value1;
8855
- }
8856
- });
8857
- });
8858
- DocumentUtils.querySelectorAllByAttributeName(rootElement, EventManager.linkTargetMapAttrName)?.forEach((elementInfo) => {
8859
- const targets = new Map(ScriptUtils.evaluateReturn(elementInfo.value));
8860
- Array.from(targets.entries()).filter(([key, value2]) => value2.trim()).filter(isDefined).flatMap(([key, valueScript]) => {
8861
- return fullPathInfo.flat().filter((it) => valueScript.includes(`this.${it.path}`)).flatMap((it) => ({ key, valueScript, pathInfo: it }));
8862
- }).forEach((info) => {
8863
- const value1 = ScriptUtils.evaluateReturn(info.valueScript, info.pathInfo.obj);
8864
- const applyAttributeName = EventManager.linkAttrs.find((it) => it.name === info.key);
8865
- if (applyAttributeName) {
9228
+ DocumentUtils.querySelectorAllByAttributeName(rootElement, EventManager.normalAttrMapAttrName)?.forEach(
9229
+ (elementInfo) => {
9230
+ const targets = new Map(
9231
+ ObjectUtils.Script.evaluateReturn(elementInfo.value)
9232
+ );
9233
+ Array.from(targets.entries()).filter(isDefined).flatMap(([key, valueScript]) => {
9234
+ return fullPathInfo.flat().filter((it) => valueScript.variablePaths?.some((vit) => vit.inner.includes(`this.${it.path}`))).flatMap((it) => ({ key, valueScript, pathInfo: it }));
9235
+ }).forEach((it) => {
9236
+ const variablePaths = it.valueScript.variablePaths;
9237
+ let targetScript = it.valueScript.originalAttrValue;
9238
+ variablePaths.forEach((it2) => {
9239
+ let r = ObjectUtils.Path.toOptionalChainPath(it2.inner);
9240
+ targetScript = targetScript.replaceAll(it2.origin, `\${${r}}`);
9241
+ });
9242
+ const value1 = ObjectUtils.Script.evaluateReturn("`" + targetScript + "`", it.pathInfo.obj);
8866
9243
  if (value1 === null) {
8867
- elementInfo.element.removeAttribute(applyAttributeName.property);
9244
+ elementInfo.element.removeAttribute(it.key);
9245
+ elementInfo.element[it.key] = null;
8868
9246
  } else {
8869
- elementInfo.element.setAttribute(applyAttributeName.property, value1);
9247
+ elementInfo.element.setAttribute(it.key, value1);
9248
+ elementInfo.element[it.key] = value1;
8870
9249
  }
8871
- }
8872
- });
8873
- Array.from(targets.entries()).filter(([key, value2]) => value2.trim()).filter(isDefined).flatMap(([key, valueScript]) => {
8874
- return fullPathInfo.flat().filter((it) => valueScript.includes(`this.${it.path}`)).flatMap((it) => ({ key, valueScript, pathInfo: it }));
8875
- }).forEach((info) => {
8876
- const linkInfo = EventManager.linkAttrs.find((it) => it.name === info.key);
8877
- if (linkInfo) {
8878
- elementInfo.element[linkInfo.property] = value;
8879
- }
8880
- });
8881
- });
9250
+ });
9251
+ }
9252
+ );
9253
+ DocumentUtils.querySelectorAllByAttributeName(rootElement, EventManager.linkTargetMapAttrName)?.forEach(
9254
+ (elementInfo) => {
9255
+ const targets = new Map(ScriptUtils.evaluateReturn(elementInfo.value));
9256
+ Array.from(targets.entries()).filter(([key, value2]) => value2.trim()).filter(isDefined).flatMap(([key, valueScript]) => {
9257
+ return fullPathInfo.flat().filter((it) => valueScript.includes(`this.${it.path}`)).flatMap((it) => ({ key, valueScript, pathInfo: it }));
9258
+ }).forEach((info) => {
9259
+ const value1 = ScriptUtils.evaluateReturn(info.valueScript, info.pathInfo.obj);
9260
+ const applyAttributeName = EventManager.linkAttrs.find((it) => it.name === info.key);
9261
+ if (applyAttributeName) {
9262
+ if (value1 === null) {
9263
+ elementInfo.element.removeAttribute(applyAttributeName.property);
9264
+ } else {
9265
+ elementInfo.element.setAttribute(applyAttributeName.property, value1);
9266
+ }
9267
+ }
9268
+ });
9269
+ Array.from(targets.entries()).filter(([key, value2]) => value2.trim()).filter(isDefined).flatMap(([key, valueScript]) => {
9270
+ return fullPathInfo.flat().filter((it) => valueScript.includes(`this.${it.path}`)).flatMap((it) => ({ key, valueScript, pathInfo: it }));
9271
+ }).forEach((info) => {
9272
+ const linkInfo = EventManager.linkAttrs.find((it) => it.name === info.key);
9273
+ if (linkInfo) {
9274
+ elementInfo.element[linkInfo.property] = value;
9275
+ }
9276
+ });
9277
+ }
9278
+ );
8882
9279
  if ("onBeforeReturnSet" in receiver && typeof p === "string" && !(this._domRender_config.proxyExcludeOnBeforeReturnSets ?? []).concat(excludeGetSetPropertys).includes(p)) {
8883
9280
  if (isOnBeforeReturnSet(receiver)) {
8884
- receiver.onBeforeReturnSet?.(p, value, fullPathInfo.map((it) => it.map((it2) => it2.path).join()));
9281
+ receiver.onBeforeReturnSet?.(
9282
+ p,
9283
+ value,
9284
+ fullPathInfo.map((it) => it.map((it2) => it2.path).join())
9285
+ );
8885
9286
  }
8886
9287
  }
8887
9288
  return true;
@@ -8901,7 +9302,11 @@ var DomRenderProxy = class _DomRenderProxy {
8901
9302
  it = it._DomRender_origin;
8902
9303
  }
8903
9304
  if ("onBeforeReturnGet" in receiver && typeof p === "string" && !(this._domRender_config.proxyExcludeOnBeforeReturnGets ?? []).concat(excludeGetSetPropertys).includes(p)) {
8904
- receiver?.onBeforeReturnGet?.(p, it, this.root([[{ path: p, obj: this._domRender_proxy }]], it, false));
9305
+ receiver?.onBeforeReturnGet?.(
9306
+ p,
9307
+ it,
9308
+ this.root([[{ path: p, obj: this._domRender_proxy }]], it, false)
9309
+ );
8905
9310
  }
8906
9311
  return it;
8907
9312
  }
@@ -9193,7 +9598,7 @@ var SSRFilter = class {
9193
9598
  simpleBootFront.routingSubjectObservable.pipe(
9194
9599
  // @ts-ignore
9195
9600
  filter(
9196
- (it) => it.state === "end" && typeof it.routerModule.intent.uri === "string" && targetUrl.endsWith(it.routerModule.intent.uri)
9601
+ (it) => it.triggerPoint === "end" && typeof it.routerModule.intent.uri === "string" && targetUrl.endsWith(it.routerModule.intent.uri)
9197
9602
  ),
9198
9603
  // delay(1000),
9199
9604
  first()
@@ -10288,6 +10693,7 @@ var ReqHeader = class {
10288
10693
 
10289
10694
  // ../simple-boot-http-server/dist/esm/models/RequestResponse.js
10290
10695
  var import_node_gzip = __toESM(require_dist(), 1);
10696
+ import { Blob } from "node:buffer";
10291
10697
 
10292
10698
  // ../core-node/dist/esm/file/FileUtils.js
10293
10699
  import * as node_os from "node:os";
@@ -10397,6 +10803,18 @@ var FileUtils;
10397
10803
  const buffer = config?.option ? node_fs.readFileSync(p, config.option) : node_fs.readFileSync(p);
10398
10804
  return buffer;
10399
10805
  };
10806
+ FileUtils2.readAsync = async (path2, config) => {
10807
+ const p = FileUtils2.path(path2);
10808
+ return node_fs.promises.readFile(p, config?.option);
10809
+ };
10810
+ FileUtils2.readStringSync = (path2) => {
10811
+ const p = FileUtils2.path(path2);
10812
+ return node_fs.readFileSync(p, "utf-8");
10813
+ };
10814
+ FileUtils2.readStringAsync = async (path2) => {
10815
+ const p = FileUtils2.path(path2);
10816
+ return node_fs.promises.readFile(p, "utf-8");
10817
+ };
10400
10818
  FileUtils2.read = async (path2, config) => {
10401
10819
  const p = FileUtils2.path(path2);
10402
10820
  return node_fs.readFile(p, config.option);
@@ -10855,7 +11273,28 @@ var RequestResponse = class _RequestResponse {
10855
11273
  this.res.end(data);
10856
11274
  }
10857
11275
  async resEnd(chunk) {
10858
- this.resWriteChunk = chunk ?? this.resWriteChunk;
11276
+ if (chunk instanceof Response) {
11277
+ chunk.headers.forEach((value, key) => {
11278
+ this.res.setHeader(`ORIGIN-${key}`, value);
11279
+ });
11280
+ if (!this.resHeader(HttpHeaders.ContentType)) {
11281
+ const contentType = chunk.headers.get(HttpHeaders.ContentType);
11282
+ if (contentType) {
11283
+ this.res.setHeader(HttpHeaders.ContentType, contentType);
11284
+ }
11285
+ }
11286
+ this.res.statusCode = chunk.status;
11287
+ this.resWriteChunk = Buffer2.from(await chunk.arrayBuffer());
11288
+ } else if (chunk instanceof Blob) {
11289
+ this.resWriteChunk = Buffer2.from(await chunk.arrayBuffer());
11290
+ if (!this.resHeader(HttpHeaders.ContentType)) {
11291
+ this.res.setHeader(HttpHeaders.ContentType, chunk.type);
11292
+ }
11293
+ } else if (chunk instanceof ArrayBuffer) {
11294
+ this.resWriteChunk = Buffer2.from(chunk);
11295
+ } else {
11296
+ this.resWriteChunk = chunk ?? this.resWriteChunk;
11297
+ }
10859
11298
  if (this.req.readable) {
10860
11299
  await this.reqBodyData();
10861
11300
  await this.resEndChunk();