@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
@@ -36,9 +36,9 @@ var dooboostoreSimpleBootHttpServerSsr = (() => {
36
36
  ));
37
37
  var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
38
38
 
39
- // ../../node_modules/.pnpm/node-gzip@1.1.2/node_modules/node-gzip/dist/index.js
39
+ // ../../../node_modules/.pnpm/node-gzip@1.1.2/node_modules/node-gzip/dist/index.js
40
40
  var require_dist = __commonJS({
41
- "../../node_modules/.pnpm/node-gzip@1.1.2/node_modules/node-gzip/dist/index.js"(exports, module) {
41
+ "../../../node_modules/.pnpm/node-gzip@1.1.2/node_modules/node-gzip/dist/index.js"(exports, module) {
42
42
  "use strict";
43
43
  var zlib = __require("zlib");
44
44
  module.exports = {
@@ -973,7 +973,7 @@ var dooboostoreSimpleBootHttpServerSsr = (() => {
973
973
  const func = new Function("window", "document", "console", `"use strict"; ${script}; `);
974
974
  func.call(destUser, globalContext.window, globalContext.document, globalContext.console);
975
975
  } catch (e) {
976
- console.error("detectPathFromScript error:", e);
976
+ console.error("detectPathFromScript error:", script, e);
977
977
  }
978
978
  if (options?.excludeThis) {
979
979
  const filteredVars = /* @__PURE__ */ new Set();
@@ -1105,117 +1105,6 @@ var dooboostoreSimpleBootHttpServerSsr = (() => {
1105
1105
  return window2.aroundStorage;
1106
1106
  };
1107
1107
 
1108
- // ../core/dist/esm/string/StringUtils.js
1109
- var StringUtils;
1110
- ((StringUtils2) => {
1111
- StringUtils2.deleteEnter = (data) => {
1112
- return data.replace(/\r?\n/g, "");
1113
- };
1114
- StringUtils2.pickEmoji = (data) => {
1115
- return data.match(/[\p{Emoji}]/gu) ?? [];
1116
- };
1117
- StringUtils2.regexExec = (regex, text) => {
1118
- let varExec = regex.exec(text);
1119
- const usingVars = [];
1120
- while (varExec) {
1121
- usingVars.push(varExec);
1122
- varExec = regex.exec(varExec.input);
1123
- }
1124
- return usingVars;
1125
- };
1126
- StringUtils2.regexExecArrayReplace = (origin, regexpExecArrayOrRegex, replace) => {
1127
- const regexpExecArrays = Array.isArray(regexpExecArrayOrRegex) ? regexpExecArrayOrRegex : StringUtils2.regexExec(regexpExecArrayOrRegex, origin);
1128
- regexpExecArrays.reverse().forEach((it) => {
1129
- const r = typeof replace === "string" ? replace : replace(it);
1130
- origin = origin.substr(0, it.index) + origin.substr(it.index).replace(it[0], r);
1131
- });
1132
- return origin;
1133
- };
1134
- StringUtils2.escapeSpecialCharacterRegExp = (data) => {
1135
- return data.replace(/[.*+?^${}()|[\]\\]/g, "\\$&");
1136
- };
1137
- StringUtils2.trim = (data) => data.trim();
1138
- StringUtils2.rsubString = (data_s, blen_n) => data_s.substring(data_s.length - blen_n, data_s.length);
1139
- StringUtils2.lsubString = (data_s, alen_n) => data_s.substring(0, alen_n);
1140
- StringUtils2.lpad = (fill_s, len_n, full_s) => {
1141
- while (len_n > full_s.length) {
1142
- full_s = fill_s + full_s;
1143
- }
1144
- return StringUtils2.rsubString(full_s, len_n);
1145
- };
1146
- StringUtils2.rpad = (fill_s, len_n, full_s) => {
1147
- while (len_n > full_s.length) {
1148
- full_s += fill_s;
1149
- }
1150
- return StringUtils2.lsubString(full_s, len_n);
1151
- };
1152
- StringUtils2.lappend = (count_n, input_s) => {
1153
- let s = "";
1154
- let i = 0;
1155
- while (i++ < count_n) {
1156
- s += input_s;
1157
- }
1158
- return s;
1159
- };
1160
- StringUtils2.unescape = (html) => {
1161
- if (!html) return "";
1162
- const htmlEntity = {
1163
- quot: '"',
1164
- amp: "&",
1165
- apos: "'",
1166
- lt: "<",
1167
- gt: ">",
1168
- nbsp: "\xA0",
1169
- iexcl: "\xA1",
1170
- cent: "\xA2",
1171
- pound: "\xA3",
1172
- curren: "\xA4",
1173
- yen: "\xA5",
1174
- brvbar: "\xA6",
1175
- sect: "\xA7",
1176
- uml: "\xA8",
1177
- copy: "\xA9",
1178
- ordf: "\xAA",
1179
- laquo: "\xAB",
1180
- not: "\xAC",
1181
- shy: "\xAD",
1182
- reg: "\xAE",
1183
- macr: "\xAF",
1184
- deg: "\xB0",
1185
- plusmn: "\xB1",
1186
- sup2: "\xB2",
1187
- sup3: "\xB3",
1188
- acute: "\xB4",
1189
- micro: "\xB5",
1190
- para: "\xB6",
1191
- middot: "\xB7",
1192
- cedil: "\xB8",
1193
- sup1: "\xB9",
1194
- ordm: "\xBA",
1195
- raquo: "\xBB",
1196
- frac14: "\xBC",
1197
- frac12: "\xBD",
1198
- frac34: "\xBE",
1199
- iquest: "\xBF",
1200
- "#x27": "'"
1201
- };
1202
- return html.replace(/&((?:(?:[a-z0-9]+|#[0-9]{1,6}|#x[0-9a-fA-F]{1,6});?)+);/gi, (match, entity) => {
1203
- const entities = entity.toLowerCase().split(";");
1204
- return entities.map((it) => it in htmlEntity ? htmlEntity[it] : match).join("");
1205
- });
1206
- };
1207
- StringUtils2.executeExpression = (formatString, object) => {
1208
- return formatString.replace(/\${([^{}]*)}/g, (matched, piece) => String(object[piece] ?? matched));
1209
- };
1210
- StringUtils2.ellipsis = (text, length) => {
1211
- if (text.length > length) return `${text.slice(0, length)}...`;
1212
- return text;
1213
- };
1214
- StringUtils2.appendPostposition = (text, { vowel, consonant }) => {
1215
- return `${text}${ValidUtils.lastConsonantLetter(text) ? consonant : vowel}`;
1216
- };
1217
- })(StringUtils || (StringUtils = {}));
1218
-
1219
1108
  // ../core/dist/esm/expression/Expression.js
1220
1109
  var Expression;
1221
1110
  ((Expression2) => {
@@ -1230,17 +1119,6 @@ var dooboostoreSimpleBootHttpServerSsr = (() => {
1230
1119
  return binder;
1231
1120
  });
1232
1121
  };
1233
- let Group;
1234
- ((Group2) => {
1235
- Group2.isExpression = (data) => {
1236
- const reg = /[$#]\{([\s\S.]*?)\}[$#]/g;
1237
- return reg.test(data ?? "");
1238
- };
1239
- Group2.expressionGroups = (data) => {
1240
- const reg = /[$#]\{([\s\S.]*?)\}[$#]/g;
1241
- return StringUtils.regexExec(reg, data ?? "");
1242
- };
1243
- })(Group = Expression2.Group || (Expression2.Group = {}));
1244
1122
  let Path;
1245
1123
  ((Path2) => {
1246
1124
  Path2.pathNameData = (pathName, urlExpression) => {
@@ -2869,6 +2747,74 @@ var dooboostoreSimpleBootHttpServerSsr = (() => {
2869
2747
  ConvertUtils22.decodeHTMLEscape = (data) => {
2870
2748
  return data.replace(/&amp;/g, "&").replace(/&lt;/g, "<").replace(/&gt;/g, ">").replace(/&quot;/g, '"').replace(/&#39;/g, "'").replace(/&#x2F;/g, "/");
2871
2749
  };
2750
+ function escapeHTML(htmlString, option) {
2751
+ if (!htmlString) return "";
2752
+ const escapeMap = {
2753
+ "&": "&amp;",
2754
+ // 반드시 먼저 처리
2755
+ "<": "&lt;",
2756
+ ">": "&gt;",
2757
+ '"': "&quot;",
2758
+ "'": "&#39;",
2759
+ // or &apos; (하지만 HTML4에서는 &#39; 권장)
2760
+ "/": "&#x2F;",
2761
+ "`": "&#x60;",
2762
+ "=": "&#x3D;",
2763
+ "{": "&#123;",
2764
+ "}": "&#125;",
2765
+ "#": "&#35;",
2766
+ "$": "&#36;",
2767
+ "\n": "&#10;",
2768
+ // newline
2769
+ "\r": "&#13;",
2770
+ // carriage return
2771
+ " ": "&#9;",
2772
+ // tab
2773
+ "\xA0": "&nbsp;",
2774
+ // non-breaking space
2775
+ "\xA2": "&cent;",
2776
+ "\xA3": "&pound;",
2777
+ "\xA5": "&yen;",
2778
+ "\u20AC": "&euro;",
2779
+ "\xA9": "&copy;",
2780
+ "\xAE": "&reg;",
2781
+ "\u2122": "&trade;",
2782
+ "\xB0": "&deg;",
2783
+ "\xB1": "&plusmn;",
2784
+ "\xD7": "&times;",
2785
+ "\xF7": "&divide;",
2786
+ "\u2212": "&minus;",
2787
+ "\u2022": "&bull;",
2788
+ "\u2026": "&hellip;",
2789
+ "\u2190": "&larr;",
2790
+ "\u2192": "&rarr;",
2791
+ "\u2191": "&uarr;",
2792
+ "\u2193": "&darr;",
2793
+ "\u2194": "&harr;"
2794
+ };
2795
+ const targetsSet = option?.targets ? new Set(option.targets) : null;
2796
+ const filteredEscapeMap = targetsSet ? Object.fromEntries(Object.entries(escapeMap).filter(([key]) => targetsSet.has(key))) : escapeMap;
2797
+ const shouldEscapeAmpersand = !targetsSet || targetsSet.has("&");
2798
+ const charsToEscape = Object.keys(filteredEscapeMap).filter((char) => char !== "&");
2799
+ if (charsToEscape.length === 0 && !shouldEscapeAmpersand) {
2800
+ return htmlString;
2801
+ }
2802
+ const escapedChars = charsToEscape.map((char) => {
2803
+ return char.replace(/[.*+?^${}()|[\]\\]/g, "\\$&");
2804
+ }).join("");
2805
+ let result = htmlString;
2806
+ if (shouldEscapeAmpersand) {
2807
+ result = result.replace(/&/g, "&amp;");
2808
+ }
2809
+ if (escapedChars.length > 0) {
2810
+ const regex = new RegExp(`[${escapedChars}]`, "g");
2811
+ result = result.replace(regex, (match) => {
2812
+ return filteredEscapeMap[match] || match;
2813
+ });
2814
+ }
2815
+ return result;
2816
+ }
2817
+ ConvertUtils22.escapeHTML = escapeHTML;
2872
2818
  ConvertUtils22.copyObject = (obj, update = {}) => {
2873
2819
  return { ...obj, ...update };
2874
2820
  };
@@ -4578,6 +4524,138 @@ var dooboostoreSimpleBootHttpServerSsr = (() => {
4578
4524
  }
4579
4525
  };
4580
4526
 
4527
+ // ../core/dist/esm/string/StringUtils.js
4528
+ var StringUtils;
4529
+ (function(StringUtils2) {
4530
+ StringUtils2.deleteEnter = (data) => {
4531
+ return data.replace(/\r?\n/g, "");
4532
+ };
4533
+ StringUtils2.pickEmoji = (data) => {
4534
+ return data.match(/[\p{Emoji}]/gu) ?? [];
4535
+ };
4536
+ StringUtils2.regexExec = (regex, text) => {
4537
+ let varExec = regex.exec(text);
4538
+ const usingVars = [];
4539
+ while (varExec) {
4540
+ usingVars.push(varExec);
4541
+ varExec = regex.exec(varExec.input);
4542
+ }
4543
+ return usingVars;
4544
+ };
4545
+ StringUtils2.escapeSpecialCharacterRegExp = (data) => {
4546
+ return data.replace(/[.*+?^${}()|[\]\\]/g, "\\$&");
4547
+ };
4548
+ StringUtils2.trim = (data) => data.trim();
4549
+ StringUtils2.rsubString = (data_s, blen_n) => data_s.substring(data_s.length - blen_n, data_s.length);
4550
+ StringUtils2.lsubString = (data_s, alen_n) => data_s.substring(0, alen_n);
4551
+ StringUtils2.lpad = (fill_s, len_n, full_s) => {
4552
+ while (len_n > full_s.length) {
4553
+ full_s = fill_s + full_s;
4554
+ }
4555
+ return StringUtils2.rsubString(full_s, len_n);
4556
+ };
4557
+ StringUtils2.rpad = (fill_s, len_n, full_s) => {
4558
+ while (len_n > full_s.length) {
4559
+ full_s += fill_s;
4560
+ }
4561
+ return StringUtils2.lsubString(full_s, len_n);
4562
+ };
4563
+ StringUtils2.lappend = (count_n, input_s) => {
4564
+ let s = "";
4565
+ let i = 0;
4566
+ while (i++ < count_n) {
4567
+ s += input_s;
4568
+ }
4569
+ return s;
4570
+ };
4571
+ StringUtils2.unescape = (html) => {
4572
+ if (!html)
4573
+ return "";
4574
+ const htmlEntity = {
4575
+ quot: '"',
4576
+ amp: "&",
4577
+ apos: "'",
4578
+ lt: "<",
4579
+ gt: ">",
4580
+ nbsp: "\xA0",
4581
+ iexcl: "\xA1",
4582
+ cent: "\xA2",
4583
+ pound: "\xA3",
4584
+ curren: "\xA4",
4585
+ yen: "\xA5",
4586
+ brvbar: "\xA6",
4587
+ sect: "\xA7",
4588
+ uml: "\xA8",
4589
+ copy: "\xA9",
4590
+ ordf: "\xAA",
4591
+ laquo: "\xAB",
4592
+ not: "\xAC",
4593
+ shy: "\xAD",
4594
+ reg: "\xAE",
4595
+ macr: "\xAF",
4596
+ deg: "\xB0",
4597
+ plusmn: "\xB1",
4598
+ sup2: "\xB2",
4599
+ sup3: "\xB3",
4600
+ acute: "\xB4",
4601
+ micro: "\xB5",
4602
+ para: "\xB6",
4603
+ middot: "\xB7",
4604
+ cedil: "\xB8",
4605
+ sup1: "\xB9",
4606
+ ordm: "\xBA",
4607
+ raquo: "\xBB",
4608
+ frac14: "\xBC",
4609
+ frac12: "\xBD",
4610
+ frac34: "\xBE",
4611
+ iquest: "\xBF",
4612
+ "#x27": "'"
4613
+ };
4614
+ return html.replace(/&((?:(?:[a-z0-9]+|#[0-9]{1,6}|#x[0-9a-fA-F]{1,6});?)+);/gi, (match, entity) => {
4615
+ const entities = entity.toLowerCase().split(";");
4616
+ return entities.map((it) => it in htmlEntity ? htmlEntity[it] : match).join("");
4617
+ });
4618
+ };
4619
+ StringUtils2.executeExpression = (formatString, object) => {
4620
+ return formatString.replace(/\${([^{}]*)}/g, (matched, piece) => String(object[piece] ?? matched));
4621
+ };
4622
+ StringUtils2.ellipsis = (text, length) => {
4623
+ if (text.length > length)
4624
+ return `${text.slice(0, length)}...`;
4625
+ return text;
4626
+ };
4627
+ StringUtils2.appendPostposition = (text, { vowel, consonant }) => {
4628
+ return `${text}${ValidUtils.lastConsonantLetter(text) ? consonant : vowel}`;
4629
+ };
4630
+ StringUtils2.replaceSequentially = (text, replacements) => {
4631
+ let remainingText = text;
4632
+ let result = "";
4633
+ while (remainingText.length > 0) {
4634
+ let bestMatch = null;
4635
+ for (const replacement of replacements) {
4636
+ const newRegex = new RegExp(replacement.regex);
4637
+ const match = newRegex.exec(remainingText);
4638
+ if (match) {
4639
+ if (bestMatch === null || match.index < bestMatch.index) {
4640
+ bestMatch = { index: match.index, match, replacement };
4641
+ }
4642
+ }
4643
+ }
4644
+ if (bestMatch) {
4645
+ const { index, match, replacement } = bestMatch;
4646
+ const matchedString = match[0];
4647
+ result += remainingText.substring(0, index);
4648
+ result += replacement.callback(matchedString);
4649
+ remainingText = remainingText.substring(index + matchedString.length);
4650
+ } else {
4651
+ result += remainingText;
4652
+ break;
4653
+ }
4654
+ }
4655
+ return result;
4656
+ };
4657
+ })(StringUtils || (StringUtils = {}));
4658
+
4581
4659
  // ../core-web/dist/esm/script/ScriptUtils.js
4582
4660
  var ScriptUtils = class _ScriptUtils {
4583
4661
  /**
@@ -4794,6 +4872,48 @@ var dooboostoreSimpleBootHttpServerSsr = (() => {
4794
4872
  });
4795
4873
  return { promise, resolve, reject };
4796
4874
  };
4875
+ Promises2.executeInChunks = async (promiseFactories, chunkSize = 10) => {
4876
+ const results = [];
4877
+ for (let i = 0; i < promiseFactories.length; i += chunkSize) {
4878
+ const chunk = promiseFactories.slice(i, i + chunkSize);
4879
+ const chunkResults = await Promise.all(chunk.map((factory) => factory()));
4880
+ results.push(...chunkResults);
4881
+ if (i + chunkSize < promiseFactories.length) {
4882
+ await (0, Promises2.sleep)(100);
4883
+ }
4884
+ }
4885
+ return results;
4886
+ };
4887
+ Promises2.executeWithConcurrency = async (promiseFactories, concurrency = 10) => {
4888
+ const results = new Array(promiseFactories.length);
4889
+ let currentIndex = 0;
4890
+ const executeNext = async (index) => {
4891
+ while (currentIndex < promiseFactories.length) {
4892
+ const factoryIndex = currentIndex++;
4893
+ results[factoryIndex] = await promiseFactories[factoryIndex]();
4894
+ }
4895
+ };
4896
+ const workers = Array(Math.min(concurrency, promiseFactories.length)).fill(0).map((_, i) => executeNext(i));
4897
+ await Promise.all(workers);
4898
+ return results;
4899
+ };
4900
+ Promises2.executeWithLimit = async (promiseFactories, limit = 5) => {
4901
+ const results = new Array(promiseFactories.length);
4902
+ const executing = [];
4903
+ for (const [index, factory] of promiseFactories.entries()) {
4904
+ const promise = factory().then((result) => {
4905
+ results[index] = result;
4906
+ }).finally(() => {
4907
+ executing.splice(executing.indexOf(promise), 1);
4908
+ });
4909
+ executing.push(promise);
4910
+ if (executing.length >= limit) {
4911
+ await Promise.race(executing);
4912
+ }
4913
+ }
4914
+ await Promise.all(executing);
4915
+ return results;
4916
+ };
4797
4917
  let Result;
4798
4918
  ((Result2) => {
4799
4919
  async function awaitWrap(promise) {
@@ -5399,7 +5519,13 @@ var dooboostoreSimpleBootHttpServerSsr = (() => {
5399
5519
  this.procAttr(childNodes, _EventManager2.normalAttrMapAttrName, (it, attribute) => {
5400
5520
  const map = new Map(JSON.parse(attribute));
5401
5521
  map.forEach((v, k) => {
5402
- const data = ScriptUtils.evaluate(`const $element = this.element; return ${v} `, Object.assign(obj, {
5522
+ const variablePaths = v.variablePaths;
5523
+ let targetScript = v.originalAttrValue;
5524
+ variablePaths.forEach((it2) => {
5525
+ let r = ObjectUtils.Path.toOptionalChainPath(it2.inner);
5526
+ targetScript = targetScript.replaceAll(it2.origin, `\${${r}}`);
5527
+ });
5528
+ const data = ObjectUtils.Script.evaluate(`const $element = this.element; return ${"`" + targetScript + "`"} `, Object.assign(obj, {
5403
5529
  __render: Object.freeze({
5404
5530
  element: it,
5405
5531
  attribute: ElementUtils.getAttributeToObject(it)
@@ -5589,7 +5715,7 @@ var dooboostoreSimpleBootHttpServerSsr = (() => {
5589
5715
  });
5590
5716
  }
5591
5717
  getValue(obj, name, bindObj) {
5592
- let r = ScriptUtils.evaluateReturn(name, obj);
5718
+ let r = ObjectUtils.Script.evaluateReturn(name, obj);
5593
5719
  if (typeof r === "function") {
5594
5720
  r = r.bind(bindObj ?? obj);
5595
5721
  }
@@ -5689,6 +5815,7 @@ var dooboostoreSimpleBootHttpServerSsr = (() => {
5689
5815
  _EventManager.WINDOW_EVENT_POPSTATE = "popstate";
5690
5816
  _EventManager.WINDOW_EVENT_RESIZE = "resize";
5691
5817
  _EventManager.WINDOW_EVENTS = [_EventManager.WINDOW_EVENT_POPSTATE, _EventManager.WINDOW_EVENT_RESIZE];
5818
+ _EventManager.noDetectAttr = [_EventManager.normalAttrMapAttrName];
5692
5819
  _EventManager.attrNames = [
5693
5820
  _EventManager.valueAttrName,
5694
5821
  _EventManager.checkedAttrName,
@@ -5822,7 +5949,7 @@ var dooboostoreSimpleBootHttpServerSsr = (() => {
5822
5949
  const itRandom = RawSet.drItOtherEncoding(this.elementSource.element, "DrIf");
5823
5950
  const vars = RawSet.drVarEncoding(this.elementSource.element, this.elementSource.attrs.drVarOption ?? "");
5824
5951
  const newTemp = this.source.config.window.document.createElement("temp");
5825
- const keepgoing = ScriptUtils.evaluate(`
5952
+ const keepgoing = ObjectUtils.Script.evaluate(`
5826
5953
  ${this.render.bindScript}
5827
5954
  ${this.elementSource.attrs.drBeforeOption ?? ""}
5828
5955
  if ($rawSet.data === (${ObjectUtils.Path.toOptionalChainPath(attr)})) {
@@ -6335,7 +6462,7 @@ var dooboostoreSimpleBootHttpServerSsr = (() => {
6335
6462
  }
6336
6463
  async executeAttrRequire(attr) {
6337
6464
  const newTemp = this.source.config.window.document.createElement("temp");
6338
- ScriptUtils.evaluate(`
6465
+ ObjectUtils.Script.evaluate(`
6339
6466
  ${this.render.bindScript}
6340
6467
  const n = $element.cloneNode(true);
6341
6468
  ${this.elementSource.attrs.drBeforeOption ?? ""}
@@ -6455,7 +6582,10 @@ var dooboostoreSimpleBootHttpServerSsr = (() => {
6455
6582
  const itRandom = RawSet.drItOtherEncoding(this.elementSource.element, "DrForOf");
6456
6583
  const vars = RawSet.drVarEncoding(this.elementSource.element, this.elementSource.attrs.drVarOption ?? "");
6457
6584
  const newTemp = this.source.config.window.document.createElement("temp");
6458
- ScriptUtils.evaluate(`
6585
+ const variableName = this.elementSource.element.getAttribute(RawSet.DR_VARIABLE_NAME_OPTIONNAME);
6586
+ const itemVariableName = this.elementSource.element.getAttribute(RawSet.DR_ITEM_VARIABLE_NAME_OPTIONNAME);
6587
+ const itemIndexVariableName = this.elementSource.element.getAttribute(RawSet.DR_ITEM_INDEX_VARIABLE_NAME_OPTIONNAME);
6588
+ ObjectUtils.Script.evaluate(`
6459
6589
  ${this.render.bindScript}
6460
6590
  ${this.elementSource.attrs.drBeforeOption ?? ""}
6461
6591
  var i = -1;
@@ -6478,11 +6608,18 @@ var dooboostoreSimpleBootHttpServerSsr = (() => {
6478
6608
  destIt = forOfStr + '[' + i +']'
6479
6609
  }
6480
6610
  const n = this.__render.element.cloneNode(true);
6481
- // console.log('zzzzzzzzzzz', n.getAttribute('${RawSet.DR_DETECT_ATTR_OPTIONNAME}'));
6482
6611
  Object.entries(this.__render.drAttr).filter(([k,v]) => k !== 'drForOf' && k !== 'drNextOption' && v).forEach(([k, v]) => n.setAttribute(this.__render.drAttrsOriginName[k], v));
6483
- // console.log('---------'+destIt,n, Array.from(n.getAttributeNames()).map(it=>({name:it,attr: n.getAttribute(it)})));
6484
- // console.log('---------destItdestIt',destIt);
6485
6612
  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)))
6613
+ if ('${variableName}') {
6614
+ n.getAttributeNames().forEach(it => n.setAttribute(it, n.getAttribute(it).replaceAll('#${variableName}#', forOfStr)));
6615
+ }
6616
+ if ('${itemVariableName}') {
6617
+ n.getAttributeNames().forEach(it => n.setAttribute(it, n.getAttribute(it).replaceAll('#${itemVariableName}#', destIt)));
6618
+ }
6619
+ if ('${itemIndexVariableName}') {
6620
+ n.getAttributeNames().forEach(it => n.setAttribute(it, n.getAttribute(it).replaceAll('#${itemIndexVariableName}#', i)));
6621
+ }
6622
+
6486
6623
  const drOptionAttr = n.getAttribute('${RawSet.DR_DETECT_ATTR_OPTIONNAME}');
6487
6624
  if (drOptionAttr) {
6488
6625
  const drOptionAttrResult = $scriptUtils.evaluateReturn(drOptionAttr, this);
@@ -6505,12 +6642,16 @@ var dooboostoreSimpleBootHttpServerSsr = (() => {
6505
6642
  }
6506
6643
 
6507
6644
  n.innerHTML = n.innerHTML.replace(/\\#it\\#/g, destIt).replace(/\\#index\\#/g, i);
6508
- // console.log('!@@@@', n.innerHTML);
6509
- // DR_THIS_OPTIONNAME \uB294 \uC81C\uAC70\uD55C\uB2E4 \uAF2C\uC778\uB2E4. strip \uD560\uB54C \uB9C9 \uAF2C\uC5EC\uBC84\uB9B0\uB2E4.
6510
- // const drOptionThis = n.getAttribute('${RawSet.DR_THIS_OPTIONNAME}');
6511
- // if (drOptionThis) {
6512
- // n.setAttribute('${RawSet.DR_THIS_NAME}', drOptionThis)
6513
- // }
6645
+ if ('${variableName}') {
6646
+ n.innerHTML = n.innerHTML.replaceAll('#${variableName}#', forOfStr);
6647
+ }
6648
+ if ('${itemVariableName}') {
6649
+ n.innerHTML = n.innerHTML.replaceAll('#${itemVariableName}#', destIt);
6650
+ }
6651
+ if ('${itemIndexVariableName}') {
6652
+ n.innerHTML = n.innerHTML.replaceAll('#${itemIndexVariableName}#', i);
6653
+ }
6654
+
6514
6655
  if (this.__render.drStripOption === 'true') {
6515
6656
  Array.from(n.childNodes).forEach(it => this.__render.fag.append(it));
6516
6657
  } else {
@@ -7503,7 +7644,8 @@ ${indentStr}}`;
7503
7644
  const targetAttrMap = element.getAttribute(EventManager.normalAttrMapAttrName);
7504
7645
  if (targetAttrMap) {
7505
7646
  new Map(JSON.parse(targetAttrMap)).forEach((v, k) => {
7506
- targetScripts.push(`(${v})`);
7647
+ const variablePaths = v.variablePaths;
7648
+ variablePaths.forEach((it) => targetScripts.push(`(${it.inner})`));
7507
7649
  });
7508
7650
  }
7509
7651
  script = targetScripts.join(";");
@@ -7564,12 +7706,18 @@ ${indentStr}}`;
7564
7706
  const runText = _RawSet2.expressionGroups(textContent)[0][1];
7565
7707
  let newNode;
7566
7708
  if (textContent?.startsWith("#")) {
7567
- const r = ObjectUtils.Script.evaluate(`${__render.bindScript} return ${runText}`, Object.assign(obj, { __render }));
7709
+ const r = ObjectUtils.Script.evaluate(
7710
+ `${__render.bindScript} return ${runText}`,
7711
+ Object.assign(obj, { __render })
7712
+ );
7568
7713
  const template = config.window.document.createElement("template");
7569
7714
  template.innerHTML = r;
7570
7715
  newNode = template.content;
7571
7716
  } else {
7572
- const r = ObjectUtils.Script.evaluate(`${__render.bindScript} return ${runText}`, Object.assign(obj, { __render }));
7717
+ const r = ObjectUtils.Script.evaluate(
7718
+ `${__render.bindScript} return ${runText}`,
7719
+ Object.assign(obj, { __render })
7720
+ );
7573
7721
  newNode = config.window.document.createTextNode(r);
7574
7722
  }
7575
7723
  cNode.parentNode?.replaceChild(newNode, cNode);
@@ -7608,23 +7756,140 @@ ${indentStr}}`;
7608
7756
  };
7609
7757
  drAttrs.push(drAttr);
7610
7758
  const operators = [
7611
- 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 }),
7612
- 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 }),
7759
+ new DrPre(
7760
+ this,
7761
+ __render,
7762
+ { raws, fag },
7763
+ { element, attrName: _RawSet2.DR_PRE_NAME, attr: drAttr.drPre, attrs: drAttr },
7764
+ { config, obj, operatorAround: config.operatorAround?.drPre },
7765
+ { onAttrInitCallBacks, onElementInitCallBacks, onThisComponentSetCallBacks }
7766
+ ),
7767
+ new Dr(
7768
+ this,
7769
+ __render,
7770
+ { raws, fag },
7771
+ { element, attrName: _RawSet2.DR_NAME, attr: drAttr.dr, attrs: drAttr },
7772
+ { config, obj, operatorAround: config.operatorAround?.dr },
7773
+ { onAttrInitCallBacks, onElementInitCallBacks, onThisComponentSetCallBacks }
7774
+ ),
7613
7775
  // new Dr(this, __render, {raws, fag}, {element, attrName: EventManager.onRenderedInitAttrName, attr: drAttr.dr, attrs: drAttr}, {config, obj, operatorAround: config.operatorAround?.dr}, {onAttrInitCallBacks, onElementInitCallBacks, onThisComponentSetCallBacks}),
7614
- 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 }),
7615
- 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 }),
7616
- 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 }),
7617
- 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 }),
7618
- 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 }),
7619
- 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 }),
7620
- 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 }),
7621
- 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 }),
7622
- 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 }),
7623
- 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 }),
7624
- 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 }),
7625
- 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 }),
7626
- new DrTargetElement(this, __render, { raws, fag }, { element, attrs: drAttr }, { config, obj }, { onAttrInitCallBacks, onElementInitCallBacks, onThisComponentSetCallBacks }),
7627
- new DrTargetAttr(this, __render, { raws, fag }, { element, attrs: drAttr }, { config, obj }, { onAttrInitCallBacks, onElementInitCallBacks, onThisComponentSetCallBacks })
7776
+ new DrIf(
7777
+ this,
7778
+ __render,
7779
+ { raws, fag },
7780
+ { element, attrName: _RawSet2.DR_IF_NAME, attr: drAttr.drIf, attrs: drAttr },
7781
+ { config, obj, operatorAround: config.operatorAround?.drIf },
7782
+ { onAttrInitCallBacks, onElementInitCallBacks, onThisComponentSetCallBacks }
7783
+ ),
7784
+ new DrStripElement(
7785
+ this,
7786
+ __render,
7787
+ { raws, fag },
7788
+ { element, attrName: _RawSet2.DR_STRIP_NAME, attr: drAttr.drStripElement, attrs: drAttr },
7789
+ { config, obj, operatorAround: config.operatorAround?.drThis },
7790
+ { onAttrInitCallBacks, onElementInitCallBacks, onThisComponentSetCallBacks }
7791
+ ),
7792
+ new DrThis(
7793
+ this,
7794
+ __render,
7795
+ { raws, fag },
7796
+ { element, attrName: _RawSet2.DR_THIS_NAME, attr: drAttr.drThis, attrs: drAttr },
7797
+ { config, obj, operatorAround: config.operatorAround?.drThis },
7798
+ { onAttrInitCallBacks, onElementInitCallBacks, onThisComponentSetCallBacks }
7799
+ ),
7800
+ new DrForm(
7801
+ this,
7802
+ __render,
7803
+ { raws, fag },
7804
+ { element, attrName: _RawSet2.DR_FOR_NAME, attr: drAttr.drForm, attrs: drAttr },
7805
+ { config, obj, operatorAround: config.operatorAround?.drForm },
7806
+ { onAttrInitCallBacks, onElementInitCallBacks, onThisComponentSetCallBacks }
7807
+ ),
7808
+ new DrInnerText(
7809
+ this,
7810
+ __render,
7811
+ { raws, fag },
7812
+ { element, attrName: _RawSet2.DR_INNERTEXT_NAME, attr: drAttr.drInnerText, attrs: drAttr },
7813
+ { config, obj, operatorAround: config.operatorAround?.drInnerText },
7814
+ { onAttrInitCallBacks, onElementInitCallBacks, onThisComponentSetCallBacks }
7815
+ ),
7816
+ new DrInnerHTML(
7817
+ this,
7818
+ __render,
7819
+ { raws, fag },
7820
+ { element, attrName: _RawSet2.DR_INNERHTML_NAME, attr: drAttr.drInnerHTML, attrs: drAttr },
7821
+ { config, obj, operatorAround: config.operatorAround?.drInnerHTML },
7822
+ { onAttrInitCallBacks, onElementInitCallBacks, onThisComponentSetCallBacks }
7823
+ ),
7824
+ new DrFor(
7825
+ this,
7826
+ __render,
7827
+ { raws, fag },
7828
+ { element, attrName: _RawSet2.DR_FOR_NAME, attr: drAttr.drFor, attrs: drAttr },
7829
+ { config, obj, operatorAround: config.operatorAround?.drFor },
7830
+ { onAttrInitCallBacks, onElementInitCallBacks, onThisComponentSetCallBacks }
7831
+ ),
7832
+ new DrForOf(
7833
+ this,
7834
+ __render,
7835
+ { raws, fag },
7836
+ { element, attrName: _RawSet2.DR_FOR_OF_NAME, attr: drAttr.drForOf, attrs: drAttr },
7837
+ { config, obj, operatorAround: config.operatorAround?.drForOf },
7838
+ { onAttrInitCallBacks, onElementInitCallBacks, onThisComponentSetCallBacks }
7839
+ ),
7840
+ new DrThisProperty(
7841
+ this,
7842
+ __render,
7843
+ { raws, fag },
7844
+ { element, attrName: _RawSet2.DR_THIS_PROPERTY_NAME, attr: drAttr.drThisProperty, attrs: drAttr },
7845
+ { config, obj, operatorAround: config.operatorAround?.drThisProperty },
7846
+ { onAttrInitCallBacks, onElementInitCallBacks, onThisComponentSetCallBacks }
7847
+ ),
7848
+ new DrAppender(
7849
+ this,
7850
+ __render,
7851
+ { raws, fag },
7852
+ { element, attrName: _RawSet2.DR_APPENDER_NAME, attr: drAttr.drAppender, attrs: drAttr },
7853
+ { config, obj, operatorAround: config.operatorAround?.drAppender },
7854
+ { onAttrInitCallBacks, onElementInitCallBacks, onThisComponentSetCallBacks }
7855
+ ),
7856
+ new DrRepeat(
7857
+ this,
7858
+ __render,
7859
+ { raws, fag },
7860
+ { element, attrName: _RawSet2.DR_REPEAT_NAME, attr: drAttr.drRepeat, attrs: drAttr },
7861
+ { config, obj, operatorAround: config.operatorAround?.drRepeat },
7862
+ { onAttrInitCallBacks, onElementInitCallBacks, onThisComponentSetCallBacks }
7863
+ ),
7864
+ new DrTargetElementIsElement(
7865
+ this,
7866
+ __render,
7867
+ { raws, fag },
7868
+ {
7869
+ element,
7870
+ attrName: _RawSet2.DR_REPLACE_TARGET_ELEMENT_IS_NAME,
7871
+ attr: drAttr.drReplaceTargetElementIs,
7872
+ attrs: drAttr
7873
+ },
7874
+ { config, obj },
7875
+ { onAttrInitCallBacks, onElementInitCallBacks, onThisComponentSetCallBacks }
7876
+ ),
7877
+ new DrTargetElement(
7878
+ this,
7879
+ __render,
7880
+ { raws, fag },
7881
+ { element, attrs: drAttr },
7882
+ { config, obj },
7883
+ { onAttrInitCallBacks, onElementInitCallBacks, onThisComponentSetCallBacks }
7884
+ ),
7885
+ new DrTargetAttr(
7886
+ this,
7887
+ __render,
7888
+ { raws, fag },
7889
+ { element, attrs: drAttr },
7890
+ { config, obj },
7891
+ { onAttrInitCallBacks, onElementInitCallBacks, onThisComponentSetCallBacks }
7892
+ )
7628
7893
  ];
7629
7894
  for (const operator of operators) {
7630
7895
  const state = await operator.start();
@@ -7664,12 +7929,12 @@ ${indentStr}}`;
7664
7929
  });
7665
7930
  for (const it of onThisComponentSetCallBacks) {
7666
7931
  if (isOnInitRender(it.obj)) {
7667
- it.obj?.onInitRender?.({}, this);
7932
+ await it.obj?.onInitRender?.({}, this);
7668
7933
  }
7669
7934
  }
7670
7935
  for (const it of onElementInitCallBacks) {
7671
7936
  if (isOnInitRender(this.dataSet.render?.currentThis)) {
7672
- this.dataSet.render.currentThis.onInitRender({}, this);
7937
+ await this.dataSet.render.currentThis.onInitRender({}, this);
7673
7938
  }
7674
7939
  config?.onElementInit?.(it.name, obj, this, it.targetElement);
7675
7940
  }
@@ -7771,7 +8036,10 @@ ${indentStr}}`;
7771
8036
  getDrAppendAttributeAndDelete(element, obj) {
7772
8037
  let data = element.getAttribute(_RawSet2.DR_APPENDER_NAME);
7773
8038
  if (data && !/\[.+\]/g.test(data)) {
7774
- const currentIndex = ObjectUtils.Script.evaluateReturn(`${ObjectUtils.Path.toOptionalChainPath(data)}?.length -1`, obj);
8039
+ const currentIndex = ObjectUtils.Script.evaluateReturn(
8040
+ `${ObjectUtils.Path.toOptionalChainPath(data)}?.length -1`,
8041
+ obj
8042
+ );
7775
8043
  data = `${data}[${currentIndex}]`;
7776
8044
  element.setAttribute(_RawSet2.DR_APPENDER_NAME, data);
7777
8045
  }
@@ -7817,22 +8085,28 @@ ${indentStr}}`;
7817
8085
  const normalAttrs = /* @__PURE__ */ new Map();
7818
8086
  const linkVariables = /* @__PURE__ */ new Map();
7819
8087
  const linkNames = EventManager.linkAttrs.map((it) => it.name);
7820
- const isAttr = element2.getAttributeNames().filter((it) => {
8088
+ const isAttr = element2.getAttributeNames().filter((it) => !EventManager.noDetectAttr.includes(it)).filter((it) => {
7821
8089
  const value = element2.getAttribute(it);
7822
8090
  if (value && linkNames.includes(it)) {
7823
8091
  linkVariables.set(it, value);
7824
8092
  } else if (value && _RawSet2.isExpression(value)) {
7825
- let variablePath = _RawSet2.expressionGroups(value)[0][1];
7826
- const originVariable = variablePath;
7827
- variablePath = variablePath.replace(/#[^#]*#/g, "({})");
7828
- const optionalChainPath = ObjectUtils.Path.toOptionalChainPath(variablePath);
7829
- const cval = ObjectUtils.Script.evaluateReturn(optionalChainPath, Object.assign(obj));
8093
+ const variablePaths = _RawSet2.expressionGroups(value).map((it2) => ({
8094
+ origin: it2[0],
8095
+ inner: it2[1]
8096
+ }));
8097
+ let targetScript = value;
8098
+ variablePaths.forEach((it2) => {
8099
+ let r3 = it2.inner.replace(/#[^#]*#/g, "({})");
8100
+ r3 = ObjectUtils.Path.toOptionalChainPath(r3);
8101
+ targetScript = targetScript.replaceAll(it2.origin, `\${${r3}}`);
8102
+ });
8103
+ const cval = ObjectUtils.Script.evaluateReturn("`" + targetScript + "`", Object.assign(obj));
7830
8104
  if (cval === null) {
7831
8105
  element2.removeAttribute(it);
7832
8106
  } else {
7833
8107
  element2.setAttribute(it, cval);
7834
8108
  }
7835
- normalAttrs.set(it, originVariable);
8109
+ normalAttrs.set(it, { originalAttrValue: value, variablePaths });
7836
8110
  }
7837
8111
  const isTargetAttr = targetAttrNames.includes(it.toLowerCase());
7838
8112
  return isTargetAttr;
@@ -8246,11 +8520,33 @@ ${indentStr}}`;
8246
8520
  targetElement.querySelectorAll(EventManager.attrNames.map((it) => `[${it}]`).join(",")).forEach((it) => {
8247
8521
  it.setAttribute(EventManager.ownerVariablePathAttrName, "this");
8248
8522
  });
8249
- const componentNameReplaceKey = RandomUtils.uuid();
8250
8523
  rawSet.point.innerHTML = element.innerHTML;
8251
- const innerHTMLName = targetElement.getAttribute(_RawSet2.DR_COMPONENT_INNER_HTML_NAME_OPTIONNAME) ?? "innerHTML";
8524
+ const innerText = element.textContent?.trim() ?? "";
8525
+ const escapedInnerHTML = ConvertUtils.escapeHTML(element.innerHTML);
8526
+ const innerHTMLName = targetElement.getAttribute(_RawSet2.DR_INNER_HTML_NAME_OPTIONNAME) ?? "innerHTML";
8527
+ const innerTEXTName = targetElement.getAttribute(_RawSet2.DR_INNER_TEXT_NAME_OPTIONNAME) ?? "innerTEXT";
8528
+ const innerHTMLEscapedName = targetElement.getAttribute(_RawSet2.DR_INNER_HTML_ESCAPED_NAME_OPTIONNAME) ?? "innerHTMLEscaped";
8529
+ const templateReplacements = [];
8252
8530
  if (innerHTMLName) {
8253
- _RawSet2.replaceInnerHTML(targetElement, { asIs: `#${innerHTMLName}#`, toBe: element.innerHTML });
8531
+ templateReplacements.push({
8532
+ regex: new RegExp(`#${innerHTMLName}#`, "g"),
8533
+ callback: () => element.innerHTML
8534
+ });
8535
+ }
8536
+ if (innerTEXTName) {
8537
+ templateReplacements.push({
8538
+ regex: new RegExp(`#${innerTEXTName}#`, "g"),
8539
+ callback: () => innerText
8540
+ });
8541
+ }
8542
+ if (innerHTMLEscapedName) {
8543
+ templateReplacements.push({
8544
+ regex: new RegExp(`#${innerHTMLEscapedName}#`, "g"),
8545
+ callback: () => escapedInnerHTML
8546
+ });
8547
+ }
8548
+ if (templateReplacements.length > 0) {
8549
+ targetElement.innerHTML = StringUtils.replaceSequentially(targetElement.innerHTML, templateReplacements);
8254
8550
  }
8255
8551
  const optionThisName = targetElement.getAttribute(_RawSet2.DR_THIS_NAME_OPTIONNAME);
8256
8552
  targetElement.getAttributeNames().forEach((it) => targetElement.setAttribute(it, targetElement.getAttribute(it).replace(/#this#/g, drThis)));
@@ -8327,7 +8623,6 @@ ${indentStr}}`;
8327
8623
  obj.__domrender_components ?? (obj.__domrender_components = {});
8328
8624
  const domrenderComponents = obj.__domrender_components;
8329
8625
  const renderScript = ` /*createComponentTargetElement*/
8330
- // console.log('-------------------',this.__render);
8331
8626
  var ${EventManager.RAWSET_VARNAME} = this.__render.rawSet;
8332
8627
  var ${EventManager.COMPONENT_VARNAME} = this.__render.component;
8333
8628
  var ${EventManager.ELEMENT_VARNAME} = this.__render.element;
@@ -8382,15 +8677,40 @@ ${indentStr}}`;
8382
8677
  rawSet.dataSet.render = render;
8383
8678
  instance.__rawSet = rawSet;
8384
8679
  let applayTemplate = element.innerHTML;
8680
+ let applayTemplateText = element.textContent?.trim() ?? "";
8681
+ let applayTemplateEscape = ConvertUtils.escapeHTML(element.innerHTML);
8385
8682
  let innerHTMLThisRandom;
8386
- const componentName = element.getAttribute(_RawSet2.DR_COMPONENT_NAME_OPTIONNAME) ?? "component";
8387
- const innerHTMLName = element.getAttribute(_RawSet2.DR_COMPONENT_INNER_HTML_NAME_OPTIONNAME) ?? "innerHTML";
8683
+ const componentName = element.getAttribute(_RawSet2.DR_VARIABLE_NAME_OPTIONNAME) ?? "component";
8684
+ const innerHTMLName = element.getAttribute(_RawSet2.DR_INNER_HTML_NAME_OPTIONNAME) ?? "innerHTML";
8685
+ const innerTEXTName = element.getAttribute(_RawSet2.DR_INNER_TEXT_NAME_OPTIONNAME) ?? "innerTEXT";
8686
+ const innerHTMLEscapedName = element.getAttribute(_RawSet2.DR_INNER_HTML_ESCAPED_NAME_OPTIONNAME) ?? "innerHTMLEscaped";
8388
8687
  if (applayTemplate) {
8389
8688
  innerHTMLThisRandom = RandomUtils.uuid();
8390
- applayTemplate = applayTemplate.replace(/this\./g, innerHTMLThisRandom);
8391
- applayTemplate = applayTemplate.replace(RegExp(`#${componentName}#`, "g"), "this");
8689
+ applayTemplate = StringUtils.replaceSequentially(applayTemplate, [
8690
+ {
8691
+ regex: /this\./g,
8692
+ callback: () => innerHTMLThisRandom
8693
+ },
8694
+ {
8695
+ regex: new RegExp(`#${componentName}#`, "g"),
8696
+ callback: () => nearThisPath
8697
+ }
8698
+ ]);
8392
8699
  }
8393
- applayTemplate = (this.template ?? "").replace(RegExp(`#${innerHTMLName}#`, "g"), applayTemplate);
8700
+ applayTemplate = StringUtils.replaceSequentially(this.template ?? "", [
8701
+ {
8702
+ regex: new RegExp(`#${innerHTMLName}#`, "g"),
8703
+ callback: () => applayTemplate
8704
+ },
8705
+ {
8706
+ regex: new RegExp(`#${innerTEXTName}#`, "g"),
8707
+ callback: () => applayTemplateText
8708
+ },
8709
+ {
8710
+ regex: new RegExp(`#${innerHTMLEscapedName}#`, "g"),
8711
+ callback: () => applayTemplateEscape
8712
+ }
8713
+ ]);
8394
8714
  const style = _RawSet2.generateStyleTransform(this.styles, rawSet.uuid, true);
8395
8715
  element.innerHTML = style + (applayTemplate ?? "");
8396
8716
  let data = await _RawSet2.drThisCreate(
@@ -8404,8 +8724,8 @@ ${indentStr}}`;
8404
8724
  );
8405
8725
  if (data && innerHTMLThisRandom) {
8406
8726
  const template2 = config.window.document.createElement("template");
8407
- template2.content.append(data);
8408
- template2.innerHTML = template2.innerHTML.replace(RegExp(innerHTMLThisRandom, "g"), "this.");
8727
+ template2.innerHTML = ElementUtils.toInnerHTML(data, { document: config.window.document }).replace(RegExp(innerHTMLThisRandom, "g"), "this.");
8728
+ ;
8409
8729
  data = template2.content;
8410
8730
  }
8411
8731
  return data;
@@ -8442,8 +8762,24 @@ ${indentStr}}`;
8442
8762
  const normalAttribute = attribute[EventManager.normalAttrMapAttrName];
8443
8763
  if (normalAttribute) {
8444
8764
  new Map(JSON.parse(normalAttribute)).forEach((v, k) => {
8765
+ const variablePaths = v.variablePaths;
8766
+ let targetScript = v.originalAttrValue.trim();
8767
+ let checktargetScript = v.originalAttrValue.trim();
8768
+ variablePaths.forEach((it) => {
8769
+ checktargetScript = targetScript.replaceAll(it.origin, "");
8770
+ });
8771
+ let isScriptValue = checktargetScript.length === 0 && variablePaths.length === 1;
8772
+ if (isScriptValue) {
8773
+ let r = ObjectUtils.Path.toOptionalChainPath(variablePaths[0].inner);
8774
+ targetScript = targetScript.replaceAll(variablePaths[0].origin, r);
8775
+ } else {
8776
+ variablePaths.forEach((it) => {
8777
+ let r = ObjectUtils.Path.toOptionalChainPath(it.inner);
8778
+ targetScript = targetScript.replaceAll(it.origin, `\${${r}}`);
8779
+ });
8780
+ }
8445
8781
  const cval = ObjectUtils.Script.evaluateReturn(
8446
- { bodyScript: config.script, returnScript: v },
8782
+ { bodyScript: config.script, returnScript: isScriptValue ? targetScript : "`" + targetScript + "`" },
8447
8783
  Object.assign(config.obj, config.renderData ? { __render: config.renderData } : void 0)
8448
8784
  );
8449
8785
  attribute[k] = cval;
@@ -8482,8 +8818,12 @@ ${indentStr}}`;
8482
8818
  _RawSet.DR_STRIP_OPTIONNAME = "dr-option-strip";
8483
8819
  _RawSet.DR_DESTROY_OPTIONNAME = "dr-option-destroy";
8484
8820
  _RawSet.DR_THIS_NAME_OPTIONNAME = "dr-option-this-name";
8485
- _RawSet.DR_COMPONENT_NAME_OPTIONNAME = "dr-option-component-name";
8486
- _RawSet.DR_COMPONENT_INNER_HTML_NAME_OPTIONNAME = "dr-option-component-inner-html-name";
8821
+ _RawSet.DR_VARIABLE_NAME_OPTIONNAME = "dr-option-variable-name";
8822
+ _RawSet.DR_ITEM_VARIABLE_NAME_OPTIONNAME = "dr-option-item-variable-name";
8823
+ _RawSet.DR_ITEM_INDEX_VARIABLE_NAME_OPTIONNAME = "dr-option-item-index-variable-name";
8824
+ _RawSet.DR_INNER_HTML_NAME_OPTIONNAME = "dr-option-inner-html-name";
8825
+ _RawSet.DR_INNER_TEXT_NAME_OPTIONNAME = "dr-option-inner-text-name";
8826
+ _RawSet.DR_INNER_HTML_ESCAPED_NAME_OPTIONNAME = "dr-option-inner-html-escaped-name";
8487
8827
  _RawSet.DR_KEY_OPTIONNAME = "dr-option-key";
8488
8828
  _RawSet.DR_HAS_KEYS_OPTIONNAME = "dr-option-has-keys";
8489
8829
  _RawSet.DR_ON_CREATE_ARGUMENTS_OPTIONNAME = "dr-on-create:arguments";
@@ -8589,7 +8929,20 @@ ${indentStr}}`;
8589
8929
  };
8590
8930
 
8591
8931
  // ../dom-render/dist/esm/DomRenderProxy.js
8592
- var excludeGetSetPropertys = ["onBeforeReturnGet", "onBeforeReturnSet", "__domrender_components", "__render", "_DomRender_isFinal", "_domRender_ref", "_rawSets", "_domRender_proxy", "_targets", "_DomRender_origin", "_DomRender_ref", "_DomRender_proxy"];
8932
+ var excludeGetSetPropertys = [
8933
+ "onBeforeReturnGet",
8934
+ "onBeforeReturnSet",
8935
+ "__domrender_components",
8936
+ "__render",
8937
+ "_DomRender_isFinal",
8938
+ "_domRender_ref",
8939
+ "_rawSets",
8940
+ "_domRender_proxy",
8941
+ "_targets",
8942
+ "_DomRender_origin",
8943
+ "_DomRender_ref",
8944
+ "_DomRender_proxy"
8945
+ ];
8593
8946
  var isWrapProxyDomRenderProxy = (obj) => {
8594
8947
  return obj && typeof obj === "object" && "_DomRender_isProxy" in obj;
8595
8948
  };
@@ -8625,7 +8978,7 @@ ${indentStr}}`;
8625
8978
  static isFinal(obj) {
8626
8979
  return ValidUtils.isNull(obj) || DomRenderFinalProxy.isFinal(obj);
8627
8980
  }
8628
- run(objProxy) {
8981
+ async run(objProxy) {
8629
8982
  this._domRender_proxy = objProxy;
8630
8983
  if (isOnProxyDomRender(objProxy)) {
8631
8984
  objProxy.onProxyDomRender(this._domRender_config);
@@ -8650,18 +9003,18 @@ ${indentStr}}`;
8650
9003
  }
8651
9004
  });
8652
9005
  }
8653
- this._targets.forEach((target) => {
8654
- this.initRender(target);
8655
- });
9006
+ for (let target of this._targets) {
9007
+ await this.initRender(target);
9008
+ }
8656
9009
  }
8657
- initRender(target, rawSet) {
9010
+ async initRender(target, rawSet) {
8658
9011
  if (target instanceof Element) {
8659
9012
  target.innerHTML = target.innerHTML.replace(/@this@/g, "this");
8660
9013
  }
8661
9014
  const onCreate = target.getAttribute?.(RawSet.DR_ON_CREATE_ARGUMENTS_OPTIONNAME);
8662
9015
  let createParam = [];
8663
9016
  if (onCreate) {
8664
- createParam = ScriptUtils.evaluateReturn(onCreate, this._domRender_proxy);
9017
+ createParam = ObjectUtils.Script.evaluateReturn(onCreate, this._domRender_proxy);
8665
9018
  if (!Array.isArray(createParam)) {
8666
9019
  createParam = [createParam];
8667
9020
  }
@@ -8674,7 +9027,11 @@ ${indentStr}}`;
8674
9027
  }
8675
9028
  this._targets.add(target);
8676
9029
  const rawSets = RawSet.checkPointCreates(target, this._domRender_proxy, this._domRender_config);
8677
- this._domRender_config.eventManager.applyEvent(this._domRender_proxy, this._domRender_config.eventManager.findAttrElements(target, this._domRender_config), this._domRender_config);
9030
+ this._domRender_config.eventManager.applyEvent(
9031
+ this._domRender_proxy,
9032
+ this._domRender_config.eventManager.findAttrElements(target, this._domRender_config),
9033
+ this._domRender_config
9034
+ );
8678
9035
  rawSets.forEach((it) => {
8679
9036
  const variables = it.getUsingTriggerVariables(this._domRender_config);
8680
9037
  if (variables.size <= 0) {
@@ -8685,16 +9042,20 @@ ${indentStr}}`;
8685
9042
  });
8686
9043
  }
8687
9044
  });
8688
- this.render(this.getRawSets()).then((it) => {
9045
+ const targetRawSets = await this.render(this.getRawSets());
9046
+ for (let targetRawSet of targetRawSets) {
8689
9047
  const onInit = target.getAttribute?.(RawSet.DR_ON_INIT_ARGUMENTS_OPTIONNAME);
8690
9048
  let initParam;
8691
9049
  if (onCreate) {
8692
9050
  initParam = ScriptUtils.evaluateReturn(onCreate, this._domRender_proxy);
8693
9051
  }
8694
9052
  if (isOnInitRender(this._domRender_proxy)) {
8695
- this._domRender_proxy.onInitRender(initParam, rawSet ?? { dataSet: { config: this._domRender_config } });
9053
+ await this._domRender_proxy.onInitRender(
9054
+ initParam,
9055
+ rawSet ?? { dataSet: { config: this._domRender_config } }
9056
+ );
8696
9057
  }
8697
- });
9058
+ }
8698
9059
  }
8699
9060
  getRawSets() {
8700
9061
  const set = /* @__PURE__ */ new Set();
@@ -8727,9 +9088,12 @@ ${indentStr}}`;
8727
9088
  } else if (it.type === RawSetType.TARGET_ELEMENT && it.dataSet?.render?.currentThis && fullPathStr && targetAttrMap) {
8728
9089
  new Map(JSON.parse(targetAttrMap)).forEach((v, k) => {
8729
9090
  var _a7;
8730
- const isUsing = EventManager.isUsingThisVar(v, `this.${fullPathStr}`);
9091
+ const isUsing = v.variablePaths.some((it2) => EventManager.isUsingThisVar(it2.inner, `this.${fullPathStr}`));
8731
9092
  if (isUsing) {
8732
- const targetAttrObject = RawSet.getAttributeObject(it.point.node, { script: it.dataSet?.render?.renderScript ?? "", obj: Object.assign(this._domRender_proxy ?? {}, { __render: it.dataSet?.render }) });
9093
+ const targetAttrObject = RawSet.getAttributeObject(it.point.node, {
9094
+ script: it.dataSet?.render?.renderScript ?? "",
9095
+ obj: Object.assign(this._domRender_proxy ?? {}, { __render: it.dataSet?.render })
9096
+ });
8733
9097
  (_a7 = it.dataSet).render ?? (_a7.render = {});
8734
9098
  it.dataSet.render.attribute = targetAttrObject;
8735
9099
  if (isOnChangeAttrRender(it.dataSet?.render?.currentThis)) {
@@ -8773,7 +9137,11 @@ ${indentStr}}`;
8773
9137
  it.forEach((sit) => {
8774
9138
  try {
8775
9139
  const concat = pathInfos.concat([[{ path: sit, obj: key }]]);
8776
- const items = key._DomRender_proxy?.root(concat, value, lastDoneExecute);
9140
+ const items = key._DomRender_proxy?.root(
9141
+ concat,
9142
+ value,
9143
+ lastDoneExecute
9144
+ );
8777
9145
  fullPaths.push(items.flat());
8778
9146
  } catch (e) {
8779
9147
  }
@@ -8809,10 +9177,19 @@ ${indentStr}}`;
8809
9177
  if (value === void 0) {
8810
9178
  const rawSet = it.getHasRawSet(lastPropertyName);
8811
9179
  rawSet?.remove();
8812
- startElement.setAttribute(RawSet.DR_HAS_KEYS_OPTIONNAME, keys.filter((it2) => it2 !== lastPropertyName).join(","));
9180
+ startElement.setAttribute(
9181
+ RawSet.DR_HAS_KEYS_OPTIONNAME,
9182
+ keys.filter((it2) => it2 !== lastPropertyName).join(",")
9183
+ );
8813
9184
  }
8814
9185
  if (!keys.includes(lastPropertyName)) {
8815
- const raws = DrThisProperty.append(this._domRender_proxy, fullPathStr, lastPropertyName, it, this._domRender_config);
9186
+ const raws = DrThisProperty.append(
9187
+ this._domRender_proxy,
9188
+ fullPathStr,
9189
+ lastPropertyName,
9190
+ it,
9191
+ this._domRender_config
9192
+ );
8816
9193
  if (raws) {
8817
9194
  rawSets.push(...raws);
8818
9195
  }
@@ -8832,10 +9209,19 @@ ${indentStr}}`;
8832
9209
  } else if (iterable) {
8833
9210
  rData = await this.render(Array.from(iterable), fullPathStr);
8834
9211
  }
9212
+ const Node2 = this._domRender_config.window.Node;
8835
9213
  this._targets.forEach((it) => {
8836
- if (it.nodeType === Node.DOCUMENT_FRAGMENT_NODE || it.nodeType === Node.ELEMENT_NODE) {
8837
- const targets = this._domRender_config.eventManager.findAttrElements(it, this._domRender_config);
8838
- this._domRender_config.eventManager.changeVar(this._domRender_proxy, targets, `this.${fullPathStr}`, this._domRender_config);
9214
+ if (it.nodeType === Node2.DOCUMENT_FRAGMENT_NODE || it.nodeType === Node2.ELEMENT_NODE) {
9215
+ const targets = this._domRender_config.eventManager.findAttrElements(
9216
+ it,
9217
+ this._domRender_config
9218
+ );
9219
+ this._domRender_config.eventManager.changeVar(
9220
+ this._domRender_proxy,
9221
+ targets,
9222
+ `this.${fullPathStr}`,
9223
+ this._domRender_config
9224
+ );
8839
9225
  }
8840
9226
  });
8841
9227
  if (rData?.length > 0 && isOnChildRenderedByProperty(data)) {
@@ -8867,49 +9253,64 @@ ${indentStr}}`;
8867
9253
  fullPathInfo = this.root([[{ path: p, obj: this._domRender_proxy }]], value);
8868
9254
  }
8869
9255
  const rootElement = this._domRender_config.rootElement ?? this._domRender_config.window.document;
8870
- DocumentUtils.querySelectorAllByAttributeName(rootElement, EventManager.normalAttrMapAttrName)?.forEach((elementInfo) => {
8871
- const targets = new Map(ScriptUtils.evaluateReturn(elementInfo.value));
8872
- Array.from(targets.entries()).filter(([key, value2]) => value2.trim()).filter(isDefined).flatMap(([key, valueScript]) => {
8873
- return fullPathInfo.flat().filter((it) => valueScript.includes(`this.${it.path}`)).flatMap((it) => ({ key, valueScript, pathInfo: it }));
8874
- }).forEach((it) => {
8875
- const optionalPath = ObjectUtils.Path.toOptionalChainPath(it.valueScript);
8876
- const value1 = ScriptUtils.evaluateReturn(optionalPath, it.pathInfo.obj);
8877
- if (value1 === null) {
8878
- elementInfo.element.removeAttribute(it.key);
8879
- elementInfo.element[it.key] = null;
8880
- } else {
8881
- elementInfo.element.setAttribute(it.key, value1);
8882
- elementInfo.element[it.key] = value1;
8883
- }
8884
- });
8885
- });
8886
- DocumentUtils.querySelectorAllByAttributeName(rootElement, EventManager.linkTargetMapAttrName)?.forEach((elementInfo) => {
8887
- const targets = new Map(ScriptUtils.evaluateReturn(elementInfo.value));
8888
- Array.from(targets.entries()).filter(([key, value2]) => value2.trim()).filter(isDefined).flatMap(([key, valueScript]) => {
8889
- return fullPathInfo.flat().filter((it) => valueScript.includes(`this.${it.path}`)).flatMap((it) => ({ key, valueScript, pathInfo: it }));
8890
- }).forEach((info) => {
8891
- const value1 = ScriptUtils.evaluateReturn(info.valueScript, info.pathInfo.obj);
8892
- const applyAttributeName = EventManager.linkAttrs.find((it) => it.name === info.key);
8893
- if (applyAttributeName) {
9256
+ DocumentUtils.querySelectorAllByAttributeName(rootElement, EventManager.normalAttrMapAttrName)?.forEach(
9257
+ (elementInfo) => {
9258
+ const targets = new Map(
9259
+ ObjectUtils.Script.evaluateReturn(elementInfo.value)
9260
+ );
9261
+ Array.from(targets.entries()).filter(isDefined).flatMap(([key, valueScript]) => {
9262
+ return fullPathInfo.flat().filter((it) => valueScript.variablePaths?.some((vit) => vit.inner.includes(`this.${it.path}`))).flatMap((it) => ({ key, valueScript, pathInfo: it }));
9263
+ }).forEach((it) => {
9264
+ const variablePaths = it.valueScript.variablePaths;
9265
+ let targetScript = it.valueScript.originalAttrValue;
9266
+ variablePaths.forEach((it2) => {
9267
+ let r = ObjectUtils.Path.toOptionalChainPath(it2.inner);
9268
+ targetScript = targetScript.replaceAll(it2.origin, `\${${r}}`);
9269
+ });
9270
+ const value1 = ObjectUtils.Script.evaluateReturn("`" + targetScript + "`", it.pathInfo.obj);
8894
9271
  if (value1 === null) {
8895
- elementInfo.element.removeAttribute(applyAttributeName.property);
9272
+ elementInfo.element.removeAttribute(it.key);
9273
+ elementInfo.element[it.key] = null;
8896
9274
  } else {
8897
- elementInfo.element.setAttribute(applyAttributeName.property, value1);
9275
+ elementInfo.element.setAttribute(it.key, value1);
9276
+ elementInfo.element[it.key] = value1;
8898
9277
  }
8899
- }
8900
- });
8901
- Array.from(targets.entries()).filter(([key, value2]) => value2.trim()).filter(isDefined).flatMap(([key, valueScript]) => {
8902
- return fullPathInfo.flat().filter((it) => valueScript.includes(`this.${it.path}`)).flatMap((it) => ({ key, valueScript, pathInfo: it }));
8903
- }).forEach((info) => {
8904
- const linkInfo = EventManager.linkAttrs.find((it) => it.name === info.key);
8905
- if (linkInfo) {
8906
- elementInfo.element[linkInfo.property] = value;
8907
- }
8908
- });
8909
- });
9278
+ });
9279
+ }
9280
+ );
9281
+ DocumentUtils.querySelectorAllByAttributeName(rootElement, EventManager.linkTargetMapAttrName)?.forEach(
9282
+ (elementInfo) => {
9283
+ const targets = new Map(ScriptUtils.evaluateReturn(elementInfo.value));
9284
+ Array.from(targets.entries()).filter(([key, value2]) => value2.trim()).filter(isDefined).flatMap(([key, valueScript]) => {
9285
+ return fullPathInfo.flat().filter((it) => valueScript.includes(`this.${it.path}`)).flatMap((it) => ({ key, valueScript, pathInfo: it }));
9286
+ }).forEach((info) => {
9287
+ const value1 = ScriptUtils.evaluateReturn(info.valueScript, info.pathInfo.obj);
9288
+ const applyAttributeName = EventManager.linkAttrs.find((it) => it.name === info.key);
9289
+ if (applyAttributeName) {
9290
+ if (value1 === null) {
9291
+ elementInfo.element.removeAttribute(applyAttributeName.property);
9292
+ } else {
9293
+ elementInfo.element.setAttribute(applyAttributeName.property, value1);
9294
+ }
9295
+ }
9296
+ });
9297
+ Array.from(targets.entries()).filter(([key, value2]) => value2.trim()).filter(isDefined).flatMap(([key, valueScript]) => {
9298
+ return fullPathInfo.flat().filter((it) => valueScript.includes(`this.${it.path}`)).flatMap((it) => ({ key, valueScript, pathInfo: it }));
9299
+ }).forEach((info) => {
9300
+ const linkInfo = EventManager.linkAttrs.find((it) => it.name === info.key);
9301
+ if (linkInfo) {
9302
+ elementInfo.element[linkInfo.property] = value;
9303
+ }
9304
+ });
9305
+ }
9306
+ );
8910
9307
  if ("onBeforeReturnSet" in receiver && typeof p === "string" && !(this._domRender_config.proxyExcludeOnBeforeReturnSets ?? []).concat(excludeGetSetPropertys).includes(p)) {
8911
9308
  if (isOnBeforeReturnSet(receiver)) {
8912
- receiver.onBeforeReturnSet?.(p, value, fullPathInfo.map((it) => it.map((it2) => it2.path).join()));
9309
+ receiver.onBeforeReturnSet?.(
9310
+ p,
9311
+ value,
9312
+ fullPathInfo.map((it) => it.map((it2) => it2.path).join())
9313
+ );
8913
9314
  }
8914
9315
  }
8915
9316
  return true;
@@ -8929,7 +9330,11 @@ ${indentStr}}`;
8929
9330
  it = it._DomRender_origin;
8930
9331
  }
8931
9332
  if ("onBeforeReturnGet" in receiver && typeof p === "string" && !(this._domRender_config.proxyExcludeOnBeforeReturnGets ?? []).concat(excludeGetSetPropertys).includes(p)) {
8932
- receiver?.onBeforeReturnGet?.(p, it, this.root([[{ path: p, obj: this._domRender_proxy }]], it, false));
9333
+ receiver?.onBeforeReturnGet?.(
9334
+ p,
9335
+ it,
9336
+ this.root([[{ path: p, obj: this._domRender_proxy }]], it, false)
9337
+ );
8933
9338
  }
8934
9339
  return it;
8935
9340
  }
@@ -9221,7 +9626,7 @@ ${indentStr}}`;
9221
9626
  simpleBootFront.routingSubjectObservable.pipe(
9222
9627
  // @ts-ignore
9223
9628
  filter(
9224
- (it) => it.state === "end" && typeof it.routerModule.intent.uri === "string" && targetUrl.endsWith(it.routerModule.intent.uri)
9629
+ (it) => it.triggerPoint === "end" && typeof it.routerModule.intent.uri === "string" && targetUrl.endsWith(it.routerModule.intent.uri)
9225
9630
  ),
9226
9631
  // delay(1000),
9227
9632
  first()
@@ -10316,6 +10721,7 @@ ${indentStr}}`;
10316
10721
 
10317
10722
  // ../simple-boot-http-server/dist/esm/models/RequestResponse.js
10318
10723
  var import_node_gzip = __toESM(require_dist(), 1);
10724
+ var import_node_buffer = __require("node:buffer");
10319
10725
 
10320
10726
  // ../core-node/dist/esm/file/FileUtils.js
10321
10727
  var node_os = __toESM(__require("node:os"), 1);
@@ -10425,6 +10831,18 @@ ${indentStr}}`;
10425
10831
  const buffer = config?.option ? node_fs.readFileSync(p, config.option) : node_fs.readFileSync(p);
10426
10832
  return buffer;
10427
10833
  };
10834
+ FileUtils2.readAsync = async (path2, config) => {
10835
+ const p = FileUtils2.path(path2);
10836
+ return node_fs.promises.readFile(p, config?.option);
10837
+ };
10838
+ FileUtils2.readStringSync = (path2) => {
10839
+ const p = FileUtils2.path(path2);
10840
+ return node_fs.readFileSync(p, "utf-8");
10841
+ };
10842
+ FileUtils2.readStringAsync = async (path2) => {
10843
+ const p = FileUtils2.path(path2);
10844
+ return node_fs.promises.readFile(p, "utf-8");
10845
+ };
10428
10846
  FileUtils2.read = async (path2, config) => {
10429
10847
  const p = FileUtils2.path(path2);
10430
10848
  return node_fs.readFile(p, config.option);
@@ -10883,7 +11301,28 @@ ${indentStr}}`;
10883
11301
  this.res.end(data);
10884
11302
  }
10885
11303
  async resEnd(chunk) {
10886
- this.resWriteChunk = chunk ?? this.resWriteChunk;
11304
+ if (chunk instanceof Response) {
11305
+ chunk.headers.forEach((value, key) => {
11306
+ this.res.setHeader(`ORIGIN-${key}`, value);
11307
+ });
11308
+ if (!this.resHeader(HttpHeaders.ContentType)) {
11309
+ const contentType = chunk.headers.get(HttpHeaders.ContentType);
11310
+ if (contentType) {
11311
+ this.res.setHeader(HttpHeaders.ContentType, contentType);
11312
+ }
11313
+ }
11314
+ this.res.statusCode = chunk.status;
11315
+ this.resWriteChunk = import_buffer.Buffer.from(await chunk.arrayBuffer());
11316
+ } else if (chunk instanceof import_node_buffer.Blob) {
11317
+ this.resWriteChunk = import_buffer.Buffer.from(await chunk.arrayBuffer());
11318
+ if (!this.resHeader(HttpHeaders.ContentType)) {
11319
+ this.res.setHeader(HttpHeaders.ContentType, chunk.type);
11320
+ }
11321
+ } else if (chunk instanceof ArrayBuffer) {
11322
+ this.resWriteChunk = import_buffer.Buffer.from(chunk);
11323
+ } else {
11324
+ this.resWriteChunk = chunk ?? this.resWriteChunk;
11325
+ }
10887
11326
  if (this.req.readable) {
10888
11327
  await this.reqBodyData();
10889
11328
  await this.resEndChunk();