@dooboostore/dom-render 1.0.108 → 1.0.109

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 (122) hide show
  1. package/README.MD +27 -1451
  2. package/dist/cjs/DomRender.js +41 -26
  3. package/dist/cjs/DomRender.js.map +2 -2
  4. package/dist/cjs/DomRenderProxy.js +12 -5
  5. package/dist/cjs/DomRenderProxy.js.map +2 -2
  6. package/dist/cjs/bundle-entry.js +32 -21
  7. package/dist/cjs/bundle-entry.js.map +2 -2
  8. package/dist/cjs/components/ComponentBase.js +20 -2
  9. package/dist/cjs/components/ComponentBase.js.map +2 -2
  10. package/dist/cjs/components/ComponentRouterBase.js +11 -1
  11. package/dist/cjs/components/ComponentRouterBase.js.map +2 -2
  12. package/dist/cjs/components/choose/Choose.js +4 -0
  13. package/dist/cjs/components/choose/Choose.js.map +2 -2
  14. package/dist/cjs/components/router/RouterOutlet.js +15 -1
  15. package/dist/cjs/components/router/RouterOutlet.js.map +2 -2
  16. package/dist/cjs/components/select/Select.js +20 -6
  17. package/dist/cjs/components/select/Select.js.map +2 -2
  18. package/dist/cjs/components/timer/Timer.js +14 -11
  19. package/dist/cjs/components/timer/Timer.js.map +2 -2
  20. package/dist/cjs/decorators/DomRenderNoProxy.js +2 -1
  21. package/dist/cjs/decorators/DomRenderNoProxy.js.map +2 -2
  22. package/dist/cjs/lifecycle/OnRawSetRendered.js +26 -0
  23. package/dist/cjs/lifecycle/OnRawSetRendered.js.map +7 -0
  24. package/dist/cjs/lifecycle/index.js +1 -0
  25. package/dist/cjs/lifecycle/index.js.map +2 -2
  26. package/dist/cjs/operators/DrTargetElement.js +2 -0
  27. package/dist/cjs/operators/DrTargetElement.js.map +2 -2
  28. package/dist/cjs/operators/OperatorExecuter.js +1 -2
  29. package/dist/cjs/operators/OperatorExecuter.js.map +2 -2
  30. package/dist/cjs/package.json +5 -0
  31. package/dist/cjs/rawsets/RawSet.js +154 -74
  32. package/dist/cjs/rawsets/RawSet.js.map +3 -3
  33. package/dist/cjs/rawsets/Render.js.map +1 -1
  34. package/dist/cjs/routers/Router.js +31 -15
  35. package/dist/cjs/routers/Router.js.map +3 -3
  36. package/dist/esm/DomRender.js +41 -26
  37. package/dist/esm/DomRender.js.map +2 -2
  38. package/dist/esm/DomRenderProxy.js +12 -5
  39. package/dist/esm/DomRenderProxy.js.map +2 -2
  40. package/dist/esm/bundle-entry.js +22 -21
  41. package/dist/esm/bundle-entry.js.map +2 -2
  42. package/dist/esm/components/ComponentBase.js +20 -2
  43. package/dist/esm/components/ComponentBase.js.map +2 -2
  44. package/dist/esm/components/ComponentRouterBase.js +11 -1
  45. package/dist/esm/components/ComponentRouterBase.js.map +2 -2
  46. package/dist/esm/components/choose/Choose.js +4 -0
  47. package/dist/esm/components/choose/Choose.js.map +2 -2
  48. package/dist/esm/components/router/RouterOutlet.js +16 -2
  49. package/dist/esm/components/router/RouterOutlet.js.map +2 -2
  50. package/dist/esm/components/select/Select.js +20 -6
  51. package/dist/esm/components/select/Select.js.map +2 -2
  52. package/dist/esm/components/timer/Timer.js +14 -11
  53. package/dist/esm/components/timer/Timer.js.map +2 -2
  54. package/dist/esm/decorators/DomRenderNoProxy.js +2 -1
  55. package/dist/esm/decorators/DomRenderNoProxy.js.map +2 -2
  56. package/dist/esm/lifecycle/OnRawSetRendered.js +7 -0
  57. package/dist/esm/lifecycle/OnRawSetRendered.js.map +7 -0
  58. package/dist/esm/lifecycle/index.js +1 -0
  59. package/dist/esm/lifecycle/index.js.map +2 -2
  60. package/dist/esm/operators/DrTargetElement.js +2 -0
  61. package/dist/esm/operators/DrTargetElement.js.map +2 -2
  62. package/dist/esm/operators/OperatorExecuter.js +1 -2
  63. package/dist/esm/operators/OperatorExecuter.js.map +2 -2
  64. package/dist/esm/rawsets/RawSet.js +154 -74
  65. package/dist/esm/rawsets/RawSet.js.map +3 -3
  66. package/dist/esm/routers/Router.js +31 -15
  67. package/dist/esm/routers/Router.js.map +3 -3
  68. package/dist/esm-bundle/dooboostore-dom-render.esm.js +12586 -6496
  69. package/dist/esm-bundle/dooboostore-dom-render.esm.js.map +4 -4
  70. package/dist/types/DomRender.d.ts +11 -5
  71. package/dist/types/DomRender.d.ts.map +1 -1
  72. package/dist/types/DomRenderProxy.d.ts.map +1 -1
  73. package/dist/types/bundle-entry.d.ts +5 -2
  74. package/dist/types/bundle-entry.d.ts.map +1 -1
  75. package/dist/types/components/ComponentBase.d.ts +7 -1
  76. package/dist/types/components/ComponentBase.d.ts.map +1 -1
  77. package/dist/types/components/ComponentRouterBase.d.ts +8 -0
  78. package/dist/types/components/ComponentRouterBase.d.ts.map +1 -1
  79. package/dist/types/components/choose/Choose.d.ts.map +1 -1
  80. package/dist/types/components/index.d.ts +2 -1
  81. package/dist/types/components/index.d.ts.map +1 -1
  82. package/dist/types/components/router/RouterOutlet.d.ts +5 -1
  83. package/dist/types/components/router/RouterOutlet.d.ts.map +1 -1
  84. package/dist/types/components/select/Select.d.ts +2 -2
  85. package/dist/types/components/select/Select.d.ts.map +1 -1
  86. package/dist/types/components/timer/Timer.d.ts +5 -3
  87. package/dist/types/components/timer/Timer.d.ts.map +1 -1
  88. package/dist/types/decorators/DomRenderNoProxy.d.ts.map +1 -1
  89. package/dist/types/index.d.ts +1 -0
  90. package/dist/types/lifecycle/OnRawSetRendered.d.ts +10 -0
  91. package/dist/types/lifecycle/OnRawSetRendered.d.ts.map +1 -0
  92. package/dist/types/lifecycle/index.d.ts +1 -0
  93. package/dist/types/lifecycle/index.d.ts.map +1 -1
  94. package/dist/types/operators/DrTargetElement.d.ts.map +1 -1
  95. package/dist/types/operators/OperatorExecuter.d.ts.map +1 -1
  96. package/dist/types/rawsets/RawSet.d.ts +11 -4
  97. package/dist/types/rawsets/RawSet.d.ts.map +1 -1
  98. package/dist/types/rawsets/Render.d.ts +1 -0
  99. package/dist/types/rawsets/Render.d.ts.map +1 -1
  100. package/dist/types/routers/Router.d.ts +2 -3
  101. package/dist/types/routers/Router.d.ts.map +1 -1
  102. package/dist/umd-bundle/dooboostore-dom-render.umd.js +12600 -6529
  103. package/dist/umd-bundle/dooboostore-dom-render.umd.js.map +4 -4
  104. package/package.json +6 -5
  105. package/src/DomRender.ts +62 -34
  106. package/src/DomRenderProxy.ts +20 -8
  107. package/src/bundle-entry.ts +5 -3
  108. package/src/components/ComponentBase.ts +29 -7
  109. package/src/components/ComponentRouterBase.ts +17 -2
  110. package/src/components/choose/Choose.ts +4 -0
  111. package/src/components/router/RouterOutlet.ts +25 -5
  112. package/src/components/select/Select.ts +40 -26
  113. package/src/components/timer/Timer.ts +19 -51
  114. package/src/decorators/DomRenderNoProxy.ts +3 -1
  115. package/src/lifecycle/OnRawSetRendered.ts +15 -0
  116. package/src/lifecycle/index.ts +1 -0
  117. package/src/operators/DrTargetElement.ts +14 -0
  118. package/src/operators/OperatorExecuter.ts +1 -2
  119. package/src/rawsets/RawSet.ts +572 -257
  120. package/src/rawsets/Render.ts +1 -0
  121. package/src/routers/Router.ts +40 -23
  122. package/types.d.ts +68 -20
@@ -1,4 +1,3 @@
1
- import { ScriptUtils } from "@dooboostore/core-web/script/ScriptUtils";
2
1
  import { ObjectUtils } from "@dooboostore/core/object/ObjectUtils";
3
2
  var ExecuteState = /* @__PURE__ */ ((ExecuteState2) => {
4
3
  ExecuteState2[ExecuteState2["EXECUTE"] = 0] = "EXECUTE";
@@ -24,7 +23,7 @@ class OperatorExecuter {
24
23
  let r = attrValue;
25
24
  if (r && this.startingExecute) {
26
25
  const optionalPath = ObjectUtils.Path.toOptionalChainPath(attrValue);
27
- r = ScriptUtils.evaluate(` ${this.render.bindScript}; return ${optionalPath}`, Object.assign(this.source.obj, { __render: this.render }));
26
+ r = ObjectUtils.Script.evaluate(` ${this.render.bindScript}; return ${optionalPath}`, Object.assign(this.source.obj, { __render: this.render }));
28
27
  }
29
28
  if (this.source.operatorAround?.before) {
30
29
  r = this.source.operatorAround?.before(r, this);
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../src/operators/OperatorExecuter.ts"],
4
- "sourcesContent": ["import { AttrInitCallBack } from '../rawsets/AttrInitCallBack';\nimport { ElementInitCallBack } from '../rawsets/ElementInitCallBack';\nimport { ComponentSet } from '../components/ComponentSet';\nimport { RawSet } from '../rawsets/RawSet';\nimport { Render } from '../rawsets/Render';\nimport { Attrs } from '../rawsets/Attrs';\nimport { DomRenderConfig } from '../configs/DomRenderConfig';\nimport { ScriptUtils } from '@dooboostore/core-web/script/ScriptUtils';\nimport { ObjectUtils } from '@dooboostore/core/object/ObjectUtils';\n\nexport interface OperatorAround {\n beforeAttr?: (value: string | null | undefined, opratorExecutor: OperatorExecuter) => string | null | undefined,\n before?: (data: any, opratorExecutor: OperatorExecuter) => any,\n after?: (data: any, opratorExecutor: OperatorExecuter) => void,\n}\n\nexport enum ExecuteState {\n EXECUTE,\n NO_EXECUTE,\n STOP\n}\n\nexport type AfterCallBack = {\n onAttrInitCallBacks: AttrInitCallBack[],\n onElementInitCallBacks: ElementInitCallBack[],\n onThisComponentSetCallBacks: ComponentSet[]\n}\nexport type ReturnContainer = { raws: RawSet[], fag: DocumentFragment };\n\nexport type ElementSource = { element: Element, attrs: Attrs, attr?: string | null, attrName?: string | undefined };\n\nexport type Source = { config: DomRenderConfig, operatorAround?: OperatorAround, obj: any };\n\nexport abstract class OperatorExecuter<T = any> {\n constructor(public rawSet: RawSet,\n public render: Render,\n public returnContainer: ReturnContainer,\n public elementSource: ElementSource,\n public source: Source,\n public afterCallBack: AfterCallBack,\n public startingExecute = true) {\n };\n\n async start(): Promise<ExecuteState> {\n let attrValue = this.elementSource.attr;\n // console.log('OperatorExecuter ', attrValue, this);\n if (this.source.operatorAround?.beforeAttr) {\n attrValue = this.source.operatorAround.beforeAttr(attrValue, this) ?? '';\n }\n\n let r = attrValue;\n if (r && this.startingExecute) {\n const optionalPath = ObjectUtils.Path.toOptionalChainPath(attrValue);\n r = ScriptUtils.evaluate(` ${this.render.bindScript}; return ${optionalPath}`, Object.assign(this.source.obj, {__render: this.render}));\n }\n if (this.source.operatorAround?.before) {\n r = this.source.operatorAround?.before(r, this);\n }\n\n const state = await this.execute(r as unknown as T)\n\n this.source.operatorAround?.after?.(r, this);\n return state;\n };\n\n abstract execute(value: T): Promise<ExecuteState>;\n}\n"],
5
- "mappings": "AAOA,SAAS,mBAAmB;AAC5B,SAAS,mBAAmB;AAQrB,IAAK,eAAL,kBAAKA,kBAAL;AACL,EAAAA,4BAAA;AACA,EAAAA,4BAAA;AACA,EAAAA,4BAAA;AAHU,SAAAA;AAAA,GAAA;AAiBL,MAAe,iBAA0B;AAAA,EAC9C,YAAmB,QACA,QACA,iBACA,eACA,QACA,eACA,kBAAkB,MAAM;AANxB;AACA;AACA;AACA;AACA;AACA;AACA;AAAA,EACnB;AAAA,EAEA,MAAM,QAA+B;AACnC,QAAI,YAAY,KAAK,cAAc;AAEnC,QAAI,KAAK,OAAO,gBAAgB,YAAY;AAC1C,kBAAY,KAAK,OAAO,eAAe,WAAW,WAAW,IAAI,KAAK;AAAA,IACxE;AAEA,QAAI,IAAI;AACR,QAAI,KAAK,KAAK,iBAAiB;AAC7B,YAAM,eAAe,YAAY,KAAK,oBAAoB,SAAS;AACnE,UAAI,YAAY,SAAS,IAAI,KAAK,OAAO,UAAU,YAAY,YAAY,IAAI,OAAO,OAAO,KAAK,OAAO,KAAK,EAAC,UAAU,KAAK,OAAM,CAAC,CAAC;AAAA,IACxI;AACA,QAAI,KAAK,OAAO,gBAAgB,QAAQ;AACtC,UAAI,KAAK,OAAO,gBAAgB,OAAO,GAAG,IAAI;AAAA,IAChD;AAEA,UAAM,QAAQ,MAAM,KAAK,QAAQ,CAAiB;AAElD,SAAK,OAAO,gBAAgB,QAAQ,GAAG,IAAI;AAC3C,WAAO;AAAA,EACT;AAGF;",
4
+ "sourcesContent": ["import { AttrInitCallBack } from '../rawsets/AttrInitCallBack';\nimport { ElementInitCallBack } from '../rawsets/ElementInitCallBack';\nimport { ComponentSet } from '../components/ComponentSet';\nimport { RawSet } from '../rawsets/RawSet';\nimport { Render } from '../rawsets/Render';\nimport { Attrs } from '../rawsets/Attrs';\nimport { DomRenderConfig } from '../configs/DomRenderConfig';\nimport { ObjectUtils } from '@dooboostore/core/object/ObjectUtils';\n\nexport interface OperatorAround {\n beforeAttr?: (value: string | null | undefined, opratorExecutor: OperatorExecuter) => string | null | undefined,\n before?: (data: any, opratorExecutor: OperatorExecuter) => any,\n after?: (data: any, opratorExecutor: OperatorExecuter) => void,\n}\n\nexport enum ExecuteState {\n EXECUTE,\n NO_EXECUTE,\n STOP\n}\n\nexport type AfterCallBack = {\n onAttrInitCallBacks: AttrInitCallBack[],\n onElementInitCallBacks: ElementInitCallBack[],\n onThisComponentSetCallBacks: ComponentSet[]\n}\nexport type ReturnContainer = { raws: RawSet[], fag: DocumentFragment };\n\nexport type ElementSource = { element: Element, attrs: Attrs, attr?: string | null, attrName?: string | undefined };\n\nexport type Source = { config: DomRenderConfig, operatorAround?: OperatorAround, obj: any };\n\nexport abstract class OperatorExecuter<T = any> {\n constructor(public rawSet: RawSet,\n public render: Render,\n public returnContainer: ReturnContainer,\n public elementSource: ElementSource,\n public source: Source,\n public afterCallBack: AfterCallBack,\n public startingExecute = true) {\n };\n\n async start(): Promise<ExecuteState> {\n let attrValue = this.elementSource.attr;\n // console.log('OperatorExecuter ', attrValue, this);\n if (this.source.operatorAround?.beforeAttr) {\n attrValue = this.source.operatorAround.beforeAttr(attrValue, this) ?? '';\n }\n\n let r = attrValue;\n if (r && this.startingExecute) {\n const optionalPath = ObjectUtils.Path.toOptionalChainPath(attrValue);\n r = ObjectUtils.Script.evaluate(` ${this.render.bindScript}; return ${optionalPath}`, Object.assign(this.source.obj, {__render: this.render}));\n }\n if (this.source.operatorAround?.before) {\n r = this.source.operatorAround?.before(r, this);\n }\n\n const state = await this.execute(r as unknown as T)\n\n this.source.operatorAround?.after?.(r, this);\n return state;\n };\n\n abstract execute(value: T): Promise<ExecuteState>;\n}\n"],
5
+ "mappings": "AAOA,SAAS,mBAAmB;AAQrB,IAAK,eAAL,kBAAKA,kBAAL;AACL,EAAAA,4BAAA;AACA,EAAAA,4BAAA;AACA,EAAAA,4BAAA;AAHU,SAAAA;AAAA,GAAA;AAiBL,MAAe,iBAA0B;AAAA,EAC9C,YAAmB,QACA,QACA,iBACA,eACA,QACA,eACA,kBAAkB,MAAM;AANxB;AACA;AACA;AACA;AACA;AACA;AACA;AAAA,EACnB;AAAA,EAEA,MAAM,QAA+B;AACnC,QAAI,YAAY,KAAK,cAAc;AAEnC,QAAI,KAAK,OAAO,gBAAgB,YAAY;AAC1C,kBAAY,KAAK,OAAO,eAAe,WAAW,WAAW,IAAI,KAAK;AAAA,IACxE;AAEA,QAAI,IAAI;AACR,QAAI,KAAK,KAAK,iBAAiB;AAC7B,YAAM,eAAe,YAAY,KAAK,oBAAoB,SAAS;AACnE,UAAI,YAAY,OAAO,SAAS,IAAI,KAAK,OAAO,UAAU,YAAY,YAAY,IAAI,OAAO,OAAO,KAAK,OAAO,KAAK,EAAC,UAAU,KAAK,OAAM,CAAC,CAAC;AAAA,IAC/I;AACA,QAAI,KAAK,OAAO,gBAAgB,QAAQ;AACtC,UAAI,KAAK,OAAO,gBAAgB,OAAO,GAAG,IAAI;AAAA,IAChD;AAEA,UAAM,QAAQ,MAAM,KAAK,QAAQ,CAAiB;AAElD,SAAK,OAAO,gBAAgB,QAAQ,GAAG,IAAI;AAC3C,WAAO;AAAA,EACT;AAGF;",
6
6
  "names": ["ExecuteState"]
7
7
  }
@@ -1,6 +1,5 @@
1
1
  import { RandomUtils } from "@dooboostore/core/random/RandomUtils";
2
2
  import { StringUtils } from "@dooboostore/core/string/StringUtils";
3
- import { ScriptUtils } from "@dooboostore/core-web/script/ScriptUtils";
4
3
  import { EventManager } from "../events/EventManager.js";
5
4
  import { Range } from "../iterators/Range.js";
6
5
  import { ElementUtils } from "@dooboostore/core-web/element/ElementUtils";
@@ -32,6 +31,7 @@ import { isOnCreatedThisChild } from "../lifecycle/OnCreatedThisChild.js";
32
31
  import { isOnDestroyRender } from "../lifecycle/OnDestroyRender.js";
33
32
  import { DrTargetElementIsElement } from "../operators/DrTargetElementIsElement.js";
34
33
  import { ObjectUtils } from "@dooboostore/core/object/ObjectUtils";
34
+ import { NodeUtils } from "@dooboostore/core-web/node/NodeUtils";
35
35
  const _RawSet = class _RawSet {
36
36
  constructor(uuid, type, point, dataSet, detect) {
37
37
  this.uuid = uuid;
@@ -43,14 +43,14 @@ const _RawSet = class _RawSet {
43
43
  const path = this.findNearThisPath(rawSet);
44
44
  if (path) {
45
45
  const optionalPath = ObjectUtils.Path.toOptionalChainPath(path);
46
- return ScriptUtils.evaluateReturn(optionalPath, obj);
46
+ return ObjectUtils.Script.evaluateReturn(optionalPath, obj);
47
47
  }
48
48
  };
49
49
  this.findParentThis = (obj, rawSet = this) => {
50
50
  const path = this.findParentThisPath(rawSet);
51
51
  if (path) {
52
52
  const optionalPath = ObjectUtils.Path.toOptionalChainPath(path);
53
- return ScriptUtils.evaluateReturn(optionalPath, obj);
53
+ return ObjectUtils.Script.evaluateReturn(optionalPath, obj);
54
54
  }
55
55
  };
56
56
  this.findNearThisPath = (rawSet = this) => {
@@ -65,11 +65,10 @@ const _RawSet = class _RawSet {
65
65
  const paths = [];
66
66
  const findPath = (rawSet2) => {
67
67
  if (rawSet2 && rawSet2.point) {
68
- if ("getAttribute" in rawSet2.point.start && rawSet2.point.start.getAttribute("this-path")) {
68
+ if (rawSet2.point?.start && "getAttribute" in rawSet2.point.start && rawSet2.point.start.getAttribute("this-path")) {
69
69
  paths.push(rawSet2.point.start.getAttribute("this-path"));
70
70
  }
71
- if (rawSet2.point.parentRawSet)
72
- findPath(rawSet2.point.parentRawSet);
71
+ if (rawSet2.point.parentRawSet) findPath(rawSet2.point.parentRawSet);
73
72
  }
74
73
  };
75
74
  findPath(rawSet);
@@ -78,7 +77,7 @@ const _RawSet = class _RawSet {
78
77
  };
79
78
  }
80
79
  get isConnected() {
81
- return this.point.start.isConnected && this.point.end.isConnected;
80
+ return this.point && this.point.start && this.point.end && this.point.start.isConnected && this.point.end.isConnected;
82
81
  }
83
82
  // 중요
84
83
  getUsingTriggerVariables(config) {
@@ -93,7 +92,12 @@ const _RawSet = class _RawSet {
93
92
  }
94
93
  } else if (cNode.nodeType === Node.ELEMENT_NODE) {
95
94
  const element = cNode;
96
- const targetAttrNames = (config?.targetAttrs?.map((it) => it.name) ?? []).concat(_RawSet.DR_ATTRIBUTES, _RawSet.DR_DETECT_FILTER_OPTIONNAME, _RawSet.DR_DETECT_IF_OPTIONNAME, _RawSet.DR_DETECT_ATTR_OPTIONNAME);
95
+ const targetAttrNames = (config?.targetAttrs?.map((it) => it.name) ?? []).concat(
96
+ _RawSet.DR_ATTRIBUTES,
97
+ _RawSet.DR_DETECT_FILTER_OPTIONNAME,
98
+ _RawSet.DR_DETECT_IF_OPTIONNAME,
99
+ _RawSet.DR_DETECT_ATTR_OPTIONNAME
100
+ );
97
101
  const targetScripts = targetAttrNames.map((it) => element.getAttribute(it)).filter((it) => it).map((it) => `(${it})`);
98
102
  const targetAttrMap = element.getAttribute(EventManager.normalAttrMapAttrName);
99
103
  if (targetAttrMap) {
@@ -114,6 +118,8 @@ const _RawSet = class _RawSet {
114
118
  return usingTriggerVariables;
115
119
  }
116
120
  // 중요 render 처리 부분
121
+ // public async render(obj: any, config: DomRenderConfig): Promise<RawSet[]> {
122
+ // }
117
123
  async render(obj, config) {
118
124
  const genNode = config.window.document.importNode(this.dataSet.fragment, true);
119
125
  const raws = [];
@@ -121,6 +127,7 @@ const _RawSet = class _RawSet {
121
127
  const onElementInitCallBacks = [];
122
128
  const onThisComponentSetCallBacks = [];
123
129
  const drAttrs = [];
130
+ const executedOperators = [];
124
131
  for (const cNode of Array.from(genNode.childNodes.values())) {
125
132
  let attribute = {};
126
133
  if (cNode.nodeType === Node.ELEMENT_NODE) {
@@ -134,7 +141,7 @@ const _RawSet = class _RawSet {
134
141
  element: cNode,
135
142
  attribute,
136
143
  rootObject: obj,
137
- scriptUtils: ScriptUtils,
144
+ scriptUtils: ObjectUtils.Script,
138
145
  nearThis: this.findNearThis(obj),
139
146
  parentThis: this.findParentThis(obj),
140
147
  bindScript: ` /** render **/
@@ -156,12 +163,12 @@ const _RawSet = class _RawSet {
156
163
  const runText = _RawSet.expressionGroups(textContent)[0][1];
157
164
  let newNode;
158
165
  if (textContent?.startsWith("#")) {
159
- const r = ScriptUtils.evaluate(`${__render.bindScript} return ${runText}`, Object.assign(obj, { __render }));
166
+ const r = ObjectUtils.Script.evaluate(`${__render.bindScript} return ${runText}`, Object.assign(obj, { __render }));
160
167
  const template = config.window.document.createElement("template");
161
168
  template.innerHTML = r;
162
169
  newNode = template.content;
163
170
  } else {
164
- const r = ScriptUtils.evaluate(`${__render.bindScript} return ${runText}`, Object.assign(obj, { __render }));
171
+ const r = ObjectUtils.Script.evaluate(`${__render.bindScript} return ${runText}`, Object.assign(obj, { __render }));
165
172
  newNode = config.window.document.createTextNode(r);
166
173
  }
167
174
  cNode.parentNode?.replaceChild(newNode, cNode);
@@ -221,9 +228,10 @@ const _RawSet = class _RawSet {
221
228
  for (const operator of operators) {
222
229
  const state = await operator.start();
223
230
  if (state === ExecuteState.EXECUTE) {
231
+ executedOperators.push(operator);
224
232
  break;
225
233
  } else if (state === ExecuteState.STOP) {
226
- return raws;
234
+ return { raws, executedOperators };
227
235
  }
228
236
  }
229
237
  }
@@ -243,11 +251,14 @@ const _RawSet = class _RawSet {
243
251
  fag: genNode,
244
252
  scripts: EventManager.setBindProperty(config?.scripts, obj)
245
253
  });
246
- ScriptUtils.evaluate(`
254
+ ObjectUtils.Script.evaluate(
255
+ `
247
256
  const ${EventManager.FAG_VARNAME} = this.__render.fag;
248
257
  const ${EventManager.SCRIPTS_VARNAME} = this.__render.scripts;
249
258
  const ${EventManager.RAWSET_VARNAME} = this.__render.rawSet;
250
- ${it.drCompleteOption}`, Object.assign(obj, { __render: render }));
259
+ ${it.drCompleteOption}`,
260
+ Object.assign(obj, { __render: render })
261
+ );
251
262
  }
252
263
  });
253
264
  for (const it of onThisComponentSetCallBacks) {
@@ -275,7 +286,7 @@ const _RawSet = class _RawSet {
275
286
  }
276
287
  });
277
288
  }
278
- return raws;
289
+ return { raws, executedOperators };
279
290
  }
280
291
  // 중요 스타일 적용 부분
281
292
  static generateRuleSelector(start, end, sit) {
@@ -308,9 +319,7 @@ const _RawSet = class _RawSet {
308
319
  const isRoot = rule.selector.includes(":root");
309
320
  if (!isRoot) {
310
321
  const selectors = rule.selector.split(",").map((s) => s.trim());
311
- const transformedSelectors = selectors.map(
312
- (selector) => this.generateRuleSelector(start, end, selector)
313
- );
322
+ const transformedSelectors = selectors.map((selector) => this.generateRuleSelector(start, end, selector));
314
323
  rule.selector = transformedSelectors.join(", ");
315
324
  }
316
325
  } else if (isAtRule(rule)) {
@@ -322,9 +331,7 @@ const _RawSet = class _RawSet {
322
331
  rule.children.forEach((childRule) => {
323
332
  if (isStyleRule(childRule)) {
324
333
  const selectors = childRule.selector.split(",").map((s) => s.trim());
325
- const transformedSelectors = selectors.map(
326
- (selector) => this.generateRuleSelector(start, end, selector)
327
- );
334
+ const transformedSelectors = selectors.map((selector) => this.generateRuleSelector(start, end, selector));
328
335
  childRule.selector = transformedSelectors.join(", ");
329
336
  }
330
337
  });
@@ -342,7 +349,11 @@ const _RawSet = class _RawSet {
342
349
  return styleBody;
343
350
  }
344
351
  applyEvent(obj, fragment = this.dataSet.fragment, config) {
345
- this.dataSet.config.eventManager.applyEvent(obj, this.dataSet.config.eventManager.findAttrElements(fragment, config), config);
352
+ this.dataSet.config.eventManager.applyEvent(
353
+ obj,
354
+ this.dataSet.config.eventManager.findAttrElements(fragment, config),
355
+ config
356
+ );
346
357
  }
347
358
  onRenderedEvent(obj, nodes, config) {
348
359
  this.dataSet.config.eventManager.onRenderedEvent(obj, nodes, config);
@@ -359,7 +370,7 @@ const _RawSet = class _RawSet {
359
370
  getDrAppendAttributeAndDelete(element, obj) {
360
371
  let data = element.getAttribute(_RawSet.DR_APPENDER_NAME);
361
372
  if (data && !/\[.+\]/g.test(data)) {
362
- const currentIndex = ScriptUtils.evaluateReturn(`${ObjectUtils.Path.toOptionalChainPath(data)}?.length -1`, obj);
373
+ const currentIndex = ObjectUtils.Script.evaluateReturn(`${ObjectUtils.Path.toOptionalChainPath(data)}?.length -1`, obj);
363
374
  data = `${data}[${currentIndex}]`;
364
375
  element.setAttribute(_RawSet.DR_APPENDER_NAME, data);
365
376
  }
@@ -372,19 +383,28 @@ const _RawSet = class _RawSet {
372
383
  }
373
384
  // 중요 important
374
385
  static checkPointCreates(element, obj, config) {
375
- const nodeIterator = config.window.document?.createNodeIterator(element, NodeFilter.SHOW_ALL, {
376
- acceptNode(node) {
377
- if (node.nodeType === Node.TEXT_NODE) {
386
+ const NodeFilter2 = config.window.NodeFilter;
387
+ const Node2 = config.window.Node;
388
+ const processedNodes = /* @__PURE__ */ new Set();
389
+ const findNodes = NodeUtils.findNodes(
390
+ element,
391
+ (node) => {
392
+ if (node.nodeType === Node2.TEXT_NODE) {
378
393
  const between = _RawSet.expressionGroups(StringUtils.deleteEnter(node.data ?? ""));
379
- return between?.length > 0 ? NodeFilter.FILTER_ACCEPT : NodeFilter.FILTER_REJECT;
380
- } else if (node.nodeType === Node.ELEMENT_NODE) {
394
+ const r2 = between?.length > 0 ? NodeUtils.FindNodesFilterResult.MATCH_AND_SKIP_CHILDREN : NodeUtils.FindNodesFilterResult.NO_MATCH_AND_SKIP_CHILDREN;
395
+ return r2;
396
+ } else if (node.nodeType === Node2.ELEMENT_NODE) {
381
397
  const element2 = node;
382
398
  if (element2.hasAttribute(_RawSet.DR_PRE_NAME)) {
383
- return NodeFilter.FILTER_REJECT;
399
+ let r3 = NodeUtils.FindNodesFilterResult.NO_MATCH_AND_SKIP_CHILDREN;
400
+ return r3;
384
401
  }
385
402
  if (element2.hasAttribute(EventManager.attrAttrName)) {
386
403
  const script = element2.getAttribute(EventManager.attrAttrName) ?? "";
387
- const keyValuePairs = Array.from(script.matchAll(/(\w+):\s*([^,}]+)/g)).map((match) => ({ key: match[1], value: match[2] }));
404
+ const keyValuePairs = Array.from(script.matchAll(/(\w+):\s*([^,}]+)/g)).map((match) => ({
405
+ key: match[1],
406
+ value: match[2]
407
+ }));
388
408
  (keyValuePairs ?? []).forEach((it) => {
389
409
  element2.setAttribute(it.key, "${" + it.value + "}$");
390
410
  });
@@ -405,7 +425,7 @@ const _RawSet = class _RawSet {
405
425
  const originVariable = variablePath;
406
426
  variablePath = variablePath.replace(/#[^#]*#/g, "({})");
407
427
  const optionalChainPath = ObjectUtils.Path.toOptionalChainPath(variablePath);
408
- const cval = ScriptUtils.evaluateReturn(optionalChainPath, Object.assign(obj));
428
+ const cval = ObjectUtils.Script.evaluateReturn(optionalChainPath, Object.assign(obj));
409
429
  if (cval === null) {
410
430
  element2.removeAttribute(it);
411
431
  } else {
@@ -417,58 +437,75 @@ const _RawSet = class _RawSet {
417
437
  return isTargetAttr;
418
438
  }).length > 0;
419
439
  if (linkVariables.size) {
420
- element2.setAttribute(EventManager.linkTargetMapAttrName, JSON.stringify(Array.from(linkVariables.entries())));
440
+ element2.setAttribute(
441
+ EventManager.linkTargetMapAttrName,
442
+ JSON.stringify(Array.from(linkVariables.entries()))
443
+ );
421
444
  }
422
445
  if (normalAttrs.size) {
423
446
  element2.setAttribute(EventManager.normalAttrMapAttrName, JSON.stringify(Array.from(normalAttrs.entries())));
424
447
  }
425
- const r = isAttr || isElement ? NodeFilter.FILTER_ACCEPT : NodeFilter.FILTER_REJECT;
426
- return r;
448
+ const r2 = isAttr || isElement ? NodeUtils.FindNodesFilterResult.MATCH_AND_SKIP_CHILDREN : NodeUtils.FindNodesFilterResult.NO_MATCH_AND_CONTINUE;
449
+ return r2;
427
450
  }
428
- return NodeFilter.FILTER_REJECT;
451
+ const r = NodeUtils.FindNodesFilterResult.NO_MATCH_AND_CONTINUE;
452
+ return r;
429
453
  }
430
- });
454
+ );
431
455
  const pars = [];
432
456
  let currentNode;
433
- while (currentNode = nodeIterator?.nextNode()) {
434
- if (currentNode.nodeType === Node.TEXT_NODE) {
435
- const text = currentNode.textContent ?? "";
457
+ const name = RandomUtils.uuid();
458
+ for (const currentNode2 of findNodes) {
459
+ processedNodes.add(currentNode2);
460
+ if (currentNode2.nodeType === Node2.TEXT_NODE) {
461
+ const text = currentNode2.textContent ?? "";
436
462
  const template = config.window.document?.createElement("template");
437
463
  if (!template) break;
438
464
  const groups = _RawSet.expressionGroups(text);
439
- const map = groups.map((it) => ({ uuid: `${RandomUtils.alphabet(40)}_${obj?.constructor?.name}`, content: it[0], regexArr: it }));
465
+ const map = groups.map((it) => ({
466
+ uuid: `${RandomUtils.alphabet(40)}_${obj?.constructor?.name}`,
467
+ content: it[0],
468
+ regexArr: it
469
+ }));
440
470
  let lasterIndex = 0;
441
471
  for (let i = 0; i < map.length; i++) {
442
472
  const it = map[i];
443
473
  const regexArr = it.regexArr;
444
474
  const preparedText = regexArr.input.substring(lasterIndex, regexArr.index);
445
475
  let type;
446
- if (currentNode.parentNode && currentNode.parentNode.nodeName.toUpperCase() === "STYLE") {
476
+ if (currentNode2.parentNode && currentNode2.parentNode.nodeName.toUpperCase() === "STYLE") {
447
477
  type = RawSetType.STYLE_TEXT;
448
478
  } else {
449
479
  type = RawSetType.TEXT;
450
480
  }
451
- const node = document.createTextNode(preparedText);
481
+ const node = config.window.document.createTextNode(preparedText);
452
482
  const startEndPoint = _RawSet.createStartEndPoint({ id: it.uuid, type }, config);
453
483
  template.content.append(node);
454
484
  template.content.append(startEndPoint.start);
455
485
  template.content.append(startEndPoint.end);
456
486
  const fragment = config.window.document.createDocumentFragment();
457
487
  fragment.append(config.window.document.createTextNode(it.content));
458
- pars.push(new _RawSet(it.uuid, type, {
459
- start: startEndPoint.start,
460
- node: currentNode,
461
- end: startEndPoint.end,
462
- parent: currentNode.parentNode
463
- // thisVariableName: thisVariableName
464
- }, { fragment, config }));
488
+ pars.push(
489
+ new _RawSet(
490
+ it.uuid,
491
+ type,
492
+ {
493
+ start: startEndPoint.start,
494
+ node: currentNode2,
495
+ end: startEndPoint.end,
496
+ parent: currentNode2.parentNode
497
+ // thisVariableName: thisVariableName
498
+ },
499
+ { fragment, config }
500
+ )
501
+ );
465
502
  lasterIndex = regexArr.index + it.content.length;
466
503
  }
467
504
  template.content.append(config.window.document.createTextNode(text.substring(lasterIndex, text.length)));
468
- currentNode?.parentNode?.replaceChild(template.content, currentNode);
469
- } else if (currentNode.nodeType === Node.ELEMENT_NODE) {
505
+ currentNode2?.parentNode?.replaceChild(template.content, currentNode2);
506
+ } else if (currentNode2.nodeType === Node2.ELEMENT_NODE) {
470
507
  const uuid = `${RandomUtils.alphabet(40)}`;
471
- const element2 = currentNode;
508
+ const element2 = currentNode2;
472
509
  const fragment = config.window.document.createDocumentFragment();
473
510
  const elementType = RawSetType.TARGET_ELEMENT;
474
511
  const startEndPoint = _RawSet.createStartEndPoint({ node: element2, id: uuid, type: elementType }, config);
@@ -477,19 +514,25 @@ const _RawSet = class _RawSet {
477
514
  const isElement = targetElementNames.includes(element2.tagName.toLowerCase()) || targetElementNames.includes(targetElementIs?.toLowerCase());
478
515
  const targetAttrNames = (config.targetAttrs?.map((it) => it.name) ?? []).concat(_RawSet.DR_ATTRIBUTES);
479
516
  const isAttr = element2.getAttributeNames().filter((it) => targetAttrNames.includes(it.toLowerCase())).length > 0;
480
- currentNode?.parentNode?.insertBefore(startEndPoint.start, currentNode);
481
- currentNode?.parentNode?.insertBefore(startEndPoint.end, currentNode.nextSibling);
482
- fragment.append(currentNode);
483
- const rawSet = new _RawSet(uuid, isElement ? elementType : isAttr ? RawSetType.TARGET_ATTR : RawSetType.UNKOWN, {
484
- start: startEndPoint.start,
485
- node: currentNode,
486
- end: startEndPoint.end,
487
- parent: currentNode.parentNode
488
- // thisVariableName: thisVariableName
489
- }, { config, fragment });
517
+ currentNode2?.parentNode?.insertBefore(startEndPoint.start, currentNode2);
518
+ currentNode2?.parentNode?.insertBefore(startEndPoint.end, currentNode2.nextSibling);
519
+ fragment.append(currentNode2);
520
+ const rawSet = new _RawSet(
521
+ uuid,
522
+ isElement ? elementType : isAttr ? RawSetType.TARGET_ATTR : RawSetType.UNKOWN,
523
+ {
524
+ start: startEndPoint.start,
525
+ node: currentNode2,
526
+ end: startEndPoint.end,
527
+ parent: currentNode2.parentNode
528
+ // thisVariableName: thisVariableName
529
+ },
530
+ { config, fragment }
531
+ );
490
532
  pars.push(rawSet);
491
533
  }
492
534
  }
535
+ const util = ElementUtils;
493
536
  return pars;
494
537
  }
495
538
  static createStartEndPoint(data, config) {
@@ -565,13 +608,17 @@ const _RawSet = class _RawSet {
565
608
  static drItOtherEncoding(element, postFix) {
566
609
  const random = RandomUtils.uuid() + postFix;
567
610
  const regex = /#it#/g;
568
- element.querySelectorAll(`[${_RawSet.DR_IT_OPTIONNAME}], [${_RawSet.DR_FOR_OF_NAME}], [${_RawSet.DR_REPEAT_NAME}], [${_RawSet.DR_APPENDER_NAME}]`).forEach((it) => {
611
+ element.querySelectorAll(
612
+ `[${_RawSet.DR_IT_OPTIONNAME}], [${_RawSet.DR_FOR_OF_NAME}], [${_RawSet.DR_REPEAT_NAME}], [${_RawSet.DR_APPENDER_NAME}]`
613
+ ).forEach((it) => {
569
614
  it.innerHTML = it.innerHTML.replace(regex, random);
570
615
  });
571
616
  return random;
572
617
  }
573
618
  static drItOtherDecoding(element, random) {
574
- element.querySelectorAll(`[${_RawSet.DR_IT_OPTIONNAME}], [${_RawSet.DR_FOR_OF_NAME}], [${_RawSet.DR_REPEAT_NAME}], [${_RawSet.DR_APPENDER_NAME}]`).forEach((it) => {
619
+ element.querySelectorAll(
620
+ `[${_RawSet.DR_IT_OPTIONNAME}], [${_RawSet.DR_FOR_OF_NAME}], [${_RawSet.DR_REPEAT_NAME}], [${_RawSet.DR_APPENDER_NAME}]`
621
+ ).forEach((it) => {
575
622
  it.innerHTML = it.innerHTML.replace(RegExp(random, "g"), "#it#");
576
623
  });
577
624
  }
@@ -712,7 +759,7 @@ const _RawSet = class _RawSet {
712
759
  const style = _RawSet.generateStyleTransform(set.styles ?? [], rawSet.uuid, true);
713
760
  targetElement.innerHTML = style + (set.template ?? "");
714
761
  } else {
715
- targetObj = ScriptUtils.evaluateReturn(ObjectUtils.Path.toOptionalChainPath(drThis), obj);
762
+ targetObj = ObjectUtils.Script.evaluateReturn(ObjectUtils.Path.toOptionalChainPath(drThis), obj);
716
763
  }
717
764
  const componentKey = rawSet.uuid;
718
765
  const renderScript = ` /*drThisCreate*/
@@ -756,7 +803,10 @@ const _RawSet = class _RawSet {
756
803
  render.attribute = _RawSet.getAttributeObject(element, { script: renderScript, obj, renderData: render });
757
804
  render = Object.freeze(render);
758
805
  const onCreateDataScript = `return {rootParent: this, render: this.__render}`;
759
- const onCreateDataParam = ScriptUtils.evaluate(onCreateDataScript, Object.assign(obj, { __render: render }));
806
+ const onCreateDataParam = ObjectUtils.Script.evaluate(
807
+ onCreateDataScript,
808
+ Object.assign(obj, { __render: render })
809
+ );
760
810
  if (isOnCreateRenderData(targetObj)) {
761
811
  targetObj?.onCreateRenderData(onCreateDataParam);
762
812
  }
@@ -766,7 +816,10 @@ const _RawSet = class _RawSet {
766
816
  const onCreate = element.getAttribute(_RawSet.DR_ON_CREATE_ARGUMENTS_OPTIONNAME);
767
817
  let createParam = [];
768
818
  if (onCreate) {
769
- createParam = ScriptUtils.evaluateReturn({ bodyScript: renderScript, returnScript: ObjectUtils.Path.toOptionalChainPath(onCreate) }, obj);
819
+ createParam = ObjectUtils.Script.evaluateReturn(
820
+ { bodyScript: renderScript, returnScript: ObjectUtils.Path.toOptionalChainPath(onCreate) },
821
+ obj
822
+ );
770
823
  if (!Array.isArray(createParam)) {
771
824
  createParam = [createParam];
772
825
  }
@@ -787,12 +840,13 @@ const _RawSet = class _RawSet {
787
840
  const oninit = element.getAttribute(_RawSet.DR_ON_CREATED_CALLBACK_OPTIONNAME);
788
841
  if (oninit) {
789
842
  const script = `${renderScript} ${oninit} `;
790
- ScriptUtils.evaluate(script, Object.assign(obj, { __render: render }));
843
+ ObjectUtils.Script.evaluate(script, Object.assign(obj, { __render: render }));
791
844
  }
792
845
  targetElement.querySelectorAll(EventManager.attrNames.map((it) => `[${it}]`).join(",")).forEach((it) => {
793
846
  it.setAttribute(EventManager.ownerVariablePathAttrName, "this");
794
847
  });
795
848
  const componentNameReplaceKey = RandomUtils.uuid();
849
+ rawSet.point.innerHTML = element.innerHTML;
796
850
  const innerHTMLName = targetElement.getAttribute(_RawSet.DR_COMPONENT_INNER_HTML_NAME_OPTIONNAME) ?? "innerHTML";
797
851
  if (innerHTMLName) {
798
852
  _RawSet.replaceInnerHTML(targetElement, { asIs: `#${innerHTMLName}#`, toBe: element.innerHTML });
@@ -803,8 +857,14 @@ const _RawSet = class _RawSet {
803
857
  if (optionThisName) {
804
858
  targetElement.innerHTML = targetElement.innerHTML.replaceAll(`@${optionThisName}@`, drThis);
805
859
  }
806
- const nearThisRandom = this.drThisBindEncoding(targetElement, /@nearThis@/g, { config, otherReplaceVariablePath: rawSet.findNearThisPath() });
807
- const parentThisRandom = this.drThisBindEncoding(targetElement, /@parentThis@/g, { config, otherReplaceVariablePath: rawSet.findParentThisPath() });
860
+ const nearThisRandom = this.drThisBindEncoding(targetElement, /@nearThis@/g, {
861
+ config,
862
+ otherReplaceVariablePath: rawSet.findNearThisPath()
863
+ });
864
+ const parentThisRandom = this.drThisBindEncoding(targetElement, /@parentThis@/g, {
865
+ config,
866
+ otherReplaceVariablePath: rawSet.findParentThisPath()
867
+ });
808
868
  const vars = this.drVarEncoding(targetElement, drVarOption);
809
869
  this.drVarDecoding(targetElement, vars);
810
870
  this.drThisDecoding(targetElement, { asIs: thisRandom, toBe: "@this@" });
@@ -847,7 +907,13 @@ const _RawSet = class _RawSet {
847
907
  };
848
908
  return targetAttribute;
849
909
  }
850
- static createComponentTargetElement({ name, objFactory, template = "", styles = [], noStrip }) {
910
+ static createComponentTargetElement({
911
+ name,
912
+ objFactory,
913
+ template = "",
914
+ styles = [],
915
+ noStrip
916
+ }) {
851
917
  const targetElement = {
852
918
  name,
853
919
  styles,
@@ -897,7 +963,10 @@ const _RawSet = class _RawSet {
897
963
  render.attribute = _RawSet.getAttributeObject(element, { script: renderScript, obj, renderData: render });
898
964
  render = Object.freeze(render);
899
965
  if (constructor) {
900
- let param = ScriptUtils.evaluateReturn({ bodyScript: renderScript, returnScript: ObjectUtils.Path.toOptionalChainPath(constructor) }, Object.assign(obj, { __render: render })) ?? [];
966
+ let param = ObjectUtils.Script.evaluateReturn(
967
+ { bodyScript: renderScript, returnScript: ObjectUtils.Path.toOptionalChainPath(constructor) },
968
+ Object.assign(obj, { __render: render })
969
+ ) ?? [];
901
970
  if (!Array.isArray(param)) {
902
971
  param = [param];
903
972
  }
@@ -923,7 +992,15 @@ const _RawSet = class _RawSet {
923
992
  applayTemplate = (this.template ?? "").replace(RegExp(`#${innerHTMLName}#`, "g"), applayTemplate);
924
993
  const style = _RawSet.generateStyleTransform(this.styles, rawSet.uuid, true);
925
994
  element.innerHTML = style + (applayTemplate ?? "");
926
- let data = await _RawSet.drThisCreate(rawSet, element, `this.__domrender_components.${rawSet.uuid}`, "", !noStrip, obj, config);
995
+ let data = await _RawSet.drThisCreate(
996
+ rawSet,
997
+ element,
998
+ `this.__domrender_components.${rawSet.uuid}`,
999
+ "",
1000
+ !noStrip,
1001
+ obj,
1002
+ config
1003
+ );
927
1004
  if (data && innerHTMLThisRandom) {
928
1005
  const template2 = config.window.document.createElement("template");
929
1006
  template2.content.append(data);
@@ -964,7 +1041,10 @@ const _RawSet = class _RawSet {
964
1041
  const normalAttribute = attribute[EventManager.normalAttrMapAttrName];
965
1042
  if (normalAttribute) {
966
1043
  new Map(JSON.parse(normalAttribute)).forEach((v, k) => {
967
- const cval = ScriptUtils.evaluateReturn({ bodyScript: config.script, returnScript: v }, Object.assign(config.obj, config.renderData ? { __render: config.renderData } : void 0));
1044
+ const cval = ObjectUtils.Script.evaluateReturn(
1045
+ { bodyScript: config.script, returnScript: v },
1046
+ Object.assign(config.obj, config.renderData ? { __render: config.renderData } : void 0)
1047
+ );
968
1048
  attribute[k] = cval;
969
1049
  });
970
1050
  }