@dooboostore/dom-render 1.0.110 → 1.0.112

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 (234) hide show
  1. package/README.MD +1 -2
  2. package/dist/cjs/DomRenderProxy.js +89 -48
  3. package/dist/cjs/DomRenderProxy.js.map +2 -2
  4. package/dist/cjs/components/ComponentBase.js +47 -1
  5. package/dist/cjs/components/ComponentBase.js.map +2 -2
  6. package/dist/cjs/components/a/A.js +22 -0
  7. package/dist/cjs/components/a/A.js.map +2 -2
  8. package/dist/cjs/components/appender/Appender.js +21 -4
  9. package/dist/cjs/components/appender/Appender.js.map +2 -2
  10. package/dist/cjs/components/details/Details.js +5 -0
  11. package/dist/cjs/components/details/Details.js.map +2 -2
  12. package/dist/cjs/components/forOf/ForOf.js +2 -2
  13. package/dist/cjs/components/forOf/ForOf.js.map +1 -1
  14. package/dist/cjs/components/if/If.js +1 -1
  15. package/dist/cjs/components/if/If.js.map +2 -2
  16. package/dist/cjs/components/index.js +3 -1
  17. package/dist/cjs/components/index.js.map +3 -3
  18. package/dist/cjs/components/router/RouterOutlet.js +41 -10
  19. package/dist/cjs/components/router/RouterOutlet.js.map +2 -2
  20. package/dist/cjs/components/select/Select.js +39 -1
  21. package/dist/cjs/components/select/Select.js.map +2 -2
  22. package/dist/cjs/components/this/This.js +33 -5
  23. package/dist/cjs/components/this/This.js.map +2 -2
  24. package/dist/cjs/decorators/DomRenderNoProxy.js +3 -9
  25. package/dist/cjs/decorators/DomRenderNoProxy.js.map +2 -2
  26. package/dist/cjs/events/EventManager.js +103 -37
  27. package/dist/cjs/events/EventManager.js.map +2 -2
  28. package/dist/cjs/lifecycle/OnChangeAttrRender.js.map +1 -1
  29. package/dist/cjs/lifecycle/OnChildRawSetRendered.js +26 -0
  30. package/dist/cjs/lifecycle/OnChildRawSetRendered.js.map +7 -0
  31. package/dist/cjs/lifecycle/OnRawSetRendered.js.map +2 -2
  32. package/dist/cjs/operators/Appender.js +8 -1
  33. package/dist/cjs/operators/Appender.js.map +2 -2
  34. package/dist/cjs/operators/Dr.js +2 -2
  35. package/dist/cjs/operators/Dr.js.map +2 -2
  36. package/dist/cjs/operators/DrAppender.js +2 -2
  37. package/dist/cjs/operators/DrAppender.js.map +2 -2
  38. package/dist/cjs/operators/DrFor.js +2 -2
  39. package/dist/cjs/operators/DrFor.js.map +2 -2
  40. package/dist/cjs/operators/DrForOf.js +34 -6
  41. package/dist/cjs/operators/DrForOf.js.map +2 -2
  42. package/dist/cjs/operators/DrForm.js +6 -6
  43. package/dist/cjs/operators/DrForm.js.map +2 -2
  44. package/dist/cjs/operators/DrInnerHTML.js +2 -2
  45. package/dist/cjs/operators/DrInnerHTML.js.map +2 -2
  46. package/dist/cjs/operators/DrRepeat.js +2 -2
  47. package/dist/cjs/operators/DrRepeat.js.map +2 -2
  48. package/dist/cjs/operators/DrStripElement.js +2 -2
  49. package/dist/cjs/operators/DrStripElement.js.map +2 -2
  50. package/dist/cjs/operators/DrTargetElement.js +14 -5
  51. package/dist/cjs/operators/DrTargetElement.js.map +2 -2
  52. package/dist/cjs/operators/DrTargetElementIsElement.js +2 -2
  53. package/dist/cjs/operators/DrTargetElementIsElement.js.map +2 -2
  54. package/dist/cjs/operators/DrThis.js +2 -2
  55. package/dist/cjs/operators/DrThis.js.map +2 -2
  56. package/dist/cjs/operators/DrThisProperty.js +2 -1
  57. package/dist/cjs/operators/DrThisProperty.js.map +2 -2
  58. package/dist/cjs/rawsets/RawSet.js +87 -160
  59. package/dist/cjs/rawsets/RawSet.js.map +2 -2
  60. package/dist/cjs/routers/HashRouter.js +3 -0
  61. package/dist/cjs/routers/HashRouter.js.map +2 -2
  62. package/dist/cjs/routers/PathRouter.js +3 -0
  63. package/dist/cjs/routers/PathRouter.js.map +2 -2
  64. package/dist/cjs/routers/Router.js +25 -21
  65. package/dist/cjs/routers/Router.js.map +2 -2
  66. package/dist/esm/DomRenderProxy.js +89 -48
  67. package/dist/esm/DomRenderProxy.js.map +2 -2
  68. package/dist/esm/components/ComponentBase.js +47 -1
  69. package/dist/esm/components/ComponentBase.js.map +2 -2
  70. package/dist/esm/components/a/A.js +22 -0
  71. package/dist/esm/components/a/A.js.map +2 -2
  72. package/dist/esm/components/appender/Appender.js +22 -5
  73. package/dist/esm/components/appender/Appender.js.map +2 -2
  74. package/dist/esm/components/details/Details.js +5 -0
  75. package/dist/esm/components/details/Details.js.map +2 -2
  76. package/dist/esm/components/forOf/ForOf.js +2 -2
  77. package/dist/esm/components/forOf/ForOf.js.map +1 -1
  78. package/dist/esm/components/if/If.js +1 -1
  79. package/dist/esm/components/if/If.js.map +2 -2
  80. package/dist/esm/components/index.js +3 -1
  81. package/dist/esm/components/index.js.map +2 -2
  82. package/dist/esm/components/router/RouterOutlet.js +41 -10
  83. package/dist/esm/components/router/RouterOutlet.js.map +2 -2
  84. package/dist/esm/components/select/Select.js +39 -1
  85. package/dist/esm/components/select/Select.js.map +2 -2
  86. package/dist/esm/components/this/This.js +33 -5
  87. package/dist/esm/components/this/This.js.map +2 -2
  88. package/dist/esm/decorators/DomRenderNoProxy.js +3 -9
  89. package/dist/esm/decorators/DomRenderNoProxy.js.map +2 -2
  90. package/dist/esm/events/EventManager.js +103 -37
  91. package/dist/esm/events/EventManager.js.map +2 -2
  92. package/dist/esm/lifecycle/OnChangeAttrRender.js.map +1 -1
  93. package/dist/esm/lifecycle/OnChildRawSetRendered.js +7 -0
  94. package/dist/esm/lifecycle/OnChildRawSetRendered.js.map +7 -0
  95. package/dist/esm/lifecycle/OnRawSetRendered.js.map +2 -2
  96. package/dist/esm/operators/Appender.js +8 -1
  97. package/dist/esm/operators/Appender.js.map +2 -2
  98. package/dist/esm/operators/Dr.js +2 -2
  99. package/dist/esm/operators/Dr.js.map +2 -2
  100. package/dist/esm/operators/DrAppender.js +2 -2
  101. package/dist/esm/operators/DrAppender.js.map +2 -2
  102. package/dist/esm/operators/DrFor.js +2 -2
  103. package/dist/esm/operators/DrFor.js.map +2 -2
  104. package/dist/esm/operators/DrForOf.js +34 -6
  105. package/dist/esm/operators/DrForOf.js.map +2 -2
  106. package/dist/esm/operators/DrForm.js +6 -6
  107. package/dist/esm/operators/DrForm.js.map +2 -2
  108. package/dist/esm/operators/DrInnerHTML.js +2 -2
  109. package/dist/esm/operators/DrInnerHTML.js.map +2 -2
  110. package/dist/esm/operators/DrRepeat.js +2 -2
  111. package/dist/esm/operators/DrRepeat.js.map +2 -2
  112. package/dist/esm/operators/DrStripElement.js +2 -2
  113. package/dist/esm/operators/DrStripElement.js.map +2 -2
  114. package/dist/esm/operators/DrTargetElement.js +14 -5
  115. package/dist/esm/operators/DrTargetElement.js.map +2 -2
  116. package/dist/esm/operators/DrTargetElementIsElement.js +2 -2
  117. package/dist/esm/operators/DrTargetElementIsElement.js.map +2 -2
  118. package/dist/esm/operators/DrThis.js +2 -2
  119. package/dist/esm/operators/DrThis.js.map +2 -2
  120. package/dist/esm/operators/DrThisProperty.js +2 -1
  121. package/dist/esm/operators/DrThisProperty.js.map +2 -2
  122. package/dist/esm/rawsets/RawSet.js +87 -160
  123. package/dist/esm/rawsets/RawSet.js.map +2 -2
  124. package/dist/esm/routers/HashRouter.js +3 -0
  125. package/dist/esm/routers/HashRouter.js.map +2 -2
  126. package/dist/esm/routers/PathRouter.js +3 -0
  127. package/dist/esm/routers/PathRouter.js.map +2 -2
  128. package/dist/esm/routers/Router.js +25 -21
  129. package/dist/esm/routers/Router.js.map +2 -2
  130. package/dist/esm-bundle/dooboostore-dom-render.esm.js +830 -1533
  131. package/dist/esm-bundle/dooboostore-dom-render.esm.js.map +4 -4
  132. package/dist/types/DomRenderProxy.d.ts.map +1 -1
  133. package/dist/types/components/ComponentBase.d.ts +12 -1
  134. package/dist/types/components/ComponentBase.d.ts.map +1 -1
  135. package/dist/types/components/a/A.d.ts +6 -0
  136. package/dist/types/components/a/A.d.ts.map +1 -1
  137. package/dist/types/components/appender/Appender.d.ts +1 -0
  138. package/dist/types/components/appender/Appender.d.ts.map +1 -1
  139. package/dist/types/components/details/Details.d.ts +2 -0
  140. package/dist/types/components/details/Details.d.ts.map +1 -1
  141. package/dist/types/components/forOf/ForOf.d.ts +1 -1
  142. package/dist/types/components/forOf/ForOf.d.ts.map +1 -1
  143. package/dist/types/components/if/If.d.ts.map +1 -1
  144. package/dist/types/components/index.d.ts +1 -0
  145. package/dist/types/components/index.d.ts.map +1 -1
  146. package/dist/types/components/router/RouterOutlet.d.ts +6 -3
  147. package/dist/types/components/router/RouterOutlet.d.ts.map +1 -1
  148. package/dist/types/components/select/Select.d.ts +5 -3
  149. package/dist/types/components/select/Select.d.ts.map +1 -1
  150. package/dist/types/components/this/This.d.ts +5 -1
  151. package/dist/types/components/this/This.d.ts.map +1 -1
  152. package/dist/types/decorators/DomRenderNoProxy.d.ts.map +1 -1
  153. package/dist/types/events/EventManager.d.ts +1 -0
  154. package/dist/types/events/EventManager.d.ts.map +1 -1
  155. package/dist/types/lifecycle/OnChangeAttrRender.d.ts +1 -1
  156. package/dist/types/lifecycle/OnChangeAttrRender.d.ts.map +1 -1
  157. package/dist/types/lifecycle/OnChildRawSetRendered.d.ts +9 -0
  158. package/dist/types/lifecycle/OnChildRawSetRendered.d.ts.map +1 -0
  159. package/dist/types/lifecycle/OnRawSetRendered.d.ts +2 -0
  160. package/dist/types/lifecycle/OnRawSetRendered.d.ts.map +1 -1
  161. package/dist/types/operators/Appender.d.ts +1 -0
  162. package/dist/types/operators/Appender.d.ts.map +1 -1
  163. package/dist/types/operators/Dr.d.ts.map +1 -1
  164. package/dist/types/operators/DrAppender.d.ts.map +1 -1
  165. package/dist/types/operators/DrFor.d.ts.map +1 -1
  166. package/dist/types/operators/DrForOf.d.ts.map +1 -1
  167. package/dist/types/operators/DrForm.d.ts.map +1 -1
  168. package/dist/types/operators/DrInnerHTML.d.ts.map +1 -1
  169. package/dist/types/operators/DrRepeat.d.ts.map +1 -1
  170. package/dist/types/operators/DrStripElement.d.ts.map +1 -1
  171. package/dist/types/operators/DrTargetElement.d.ts.map +1 -1
  172. package/dist/types/operators/DrThisProperty.d.ts.map +1 -1
  173. package/dist/types/rawsets/RawSet.d.ts +4 -1
  174. package/dist/types/rawsets/RawSet.d.ts.map +1 -1
  175. package/dist/types/routers/HashRouter.d.ts +1 -0
  176. package/dist/types/routers/HashRouter.d.ts.map +1 -1
  177. package/dist/types/routers/PathRouter.d.ts +1 -0
  178. package/dist/types/routers/PathRouter.d.ts.map +1 -1
  179. package/dist/types/routers/Router.d.ts +3 -0
  180. package/dist/types/routers/Router.d.ts.map +1 -1
  181. package/dist/umd-bundle/dooboostore-dom-render.umd.js +830 -1533
  182. package/dist/umd-bundle/dooboostore-dom-render.umd.js.map +4 -4
  183. package/package.json +4 -4
  184. package/src/DomRenderProxy.ts +169 -75
  185. package/src/DomRenderProxy.ts_cache_back +1031 -0
  186. package/src/components/ComponentBase.ts +61 -5
  187. package/src/components/a/A.ts +25 -0
  188. package/src/components/appender/Appender.ts +3 -3
  189. package/src/components/details/Details.ts +7 -0
  190. package/src/components/forOf/ForOf.ts +2 -2
  191. package/src/components/if/If.ts +3 -2
  192. package/src/components/index.ts +3 -0
  193. package/src/components/router/RouterOutlet.ts +60 -22
  194. package/src/components/select/Select.ts +69 -30
  195. package/src/components/this/This.ts +41 -6
  196. package/src/decorators/DomRenderNoProxy.ts +17 -14
  197. package/src/events/EventManager.ts +180 -77
  198. package/src/lifecycle/OnChangeAttrRender.ts +1 -1
  199. package/src/lifecycle/OnChildRawSetRendered.ts +13 -0
  200. package/src/lifecycle/OnRawSetRendered.ts +3 -1
  201. package/src/operators/Appender.ts +8 -1
  202. package/src/operators/Dr.ts +2 -1
  203. package/src/operators/DrAppender.ts +2 -1
  204. package/src/operators/DrFor.ts +2 -1
  205. package/src/operators/DrForOf.ts +36 -6
  206. package/src/operators/DrForm.ts +6 -5
  207. package/src/operators/DrInnerHTML.ts +2 -1
  208. package/src/operators/DrRepeat.ts +2 -1
  209. package/src/operators/DrStripElement.ts +2 -1
  210. package/src/operators/DrTargetElement.ts +17 -5
  211. package/src/operators/DrTargetElementIsElement.ts +2 -2
  212. package/src/operators/DrThis.ts +2 -2
  213. package/src/operators/DrThisProperty.ts +2 -1
  214. package/src/rawsets/RawSet.ts +161 -237
  215. package/src/routers/HashRouter.ts +4 -0
  216. package/src/routers/PathRouter.ts +5 -0
  217. package/src/routers/Router.ts +64 -47
  218. package/src/node_modules/.bin/acorn +0 -17
  219. package/src/node_modules/.bin/browserslist +0 -17
  220. package/src/node_modules/.bin/eslint +0 -17
  221. package/src/node_modules/.bin/sbf +0 -17
  222. package/src/node_modules/.bin/ts-node +0 -17
  223. package/src/node_modules/.bin/ts-node-cwd +0 -17
  224. package/src/node_modules/.bin/ts-node-dev +0 -17
  225. package/src/node_modules/.bin/ts-node-esm +0 -17
  226. package/src/node_modules/.bin/ts-node-script +0 -17
  227. package/src/node_modules/.bin/ts-node-transpile-only +0 -17
  228. package/src/node_modules/.bin/ts-script +0 -17
  229. package/src/node_modules/.bin/tsc +0 -17
  230. package/src/node_modules/.bin/tsnd +0 -17
  231. package/src/node_modules/.bin/tsserver +0 -17
  232. package/src/node_modules/.bin/webpack +0 -17
  233. package/src/node_modules/.bin/webpack-cli +0 -17
  234. package/src/node_modules/.bin/webpack-dev-server +0 -17
@@ -0,0 +1,13 @@
1
+ import { RawSet, RenderResult } from '../rawsets/RawSet';
2
+
3
+ export type OnRawSetRenderedOtherData = {
4
+ renderResult?: RenderResult
5
+ // rawSet?: RawSet
6
+ }
7
+ export interface OnChildRawSetRendered {
8
+ onChildRawSetRendered (): Promise<void>;
9
+ }
10
+
11
+ export const isOnChildRawSetRendered= (obj: any): obj is OnChildRawSetRendered => {
12
+ return typeof obj?.onChildRawSetRendered === 'function';
13
+ }
@@ -1,7 +1,9 @@
1
1
  import { RawSet, RenderResult } from '../rawsets/RawSet';
2
2
 
3
3
  export type OnRawSetRenderedOtherData = {
4
- path?: string
4
+ path?: string;
5
+ value?: any;
6
+ root: any;
5
7
  renderResult?: RenderResult
6
8
  // rawSet?: RawSet
7
9
  }
@@ -28,6 +28,13 @@ export class Appender<T = any> implements Iterable<T> {
28
28
  }
29
29
  }
30
30
 
31
+ get(key: string): T[] | undefined {
32
+ const o = this.keyMap.get(key);
33
+ if (o !== undefined) {
34
+ return this[o];
35
+ }
36
+ return undefined;
37
+ }
31
38
  set(key: string, ...v:T[]) {
32
39
  const o = this.keyMap.get(key);
33
40
  // console.log('set!!', o);
@@ -43,7 +50,7 @@ export class Appender<T = any> implements Iterable<T> {
43
50
  delete(key: string) {
44
51
  const o = this.keyMap.get(key);
45
52
  if (o !== undefined) {
46
- this[o] = [];
53
+ this[o] = this[o].map(it=> undefined);
47
54
  this.keyMap.delete(key);
48
55
  // this.length--;
49
56
  }
@@ -3,6 +3,7 @@ import {ScriptUtils} from '@dooboostore/core-web/script/ScriptUtils';
3
3
  import {RawSet} from '../rawsets/RawSet';
4
4
  import {Render} from '../rawsets/Render';
5
5
  import {AfterCallBack, ElementSource, ExecuteState, ReturnContainer, Source} from './OperatorExecuter';
6
+ import {ObjectUtils} from "@dooboostore/core/object/ObjectUtils";
6
7
 
7
8
  export class Dr extends OperatorExecuterAttrRequire<null> {
8
9
  constructor(rawSet: RawSet, render: Render, returnContainer: ReturnContainer, elementSource: ElementSource, source: Source, afterCallBack: AfterCallBack) {
@@ -13,7 +14,7 @@ export class Dr extends OperatorExecuterAttrRequire<null> {
13
14
  const itRandom = RawSet.drItOtherEncoding(this.elementSource.element);
14
15
  const vars = RawSet.drVarEncoding(this.elementSource.element, this.elementSource.attrs.drVarOption ?? '');
15
16
  const newTemp = this.source.config.window.document.createElement('temp');
16
- ScriptUtils.evaluate(`
17
+ ObjectUtils.Script.evaluate(`
17
18
  ${this.render.bindScript}
18
19
  const n = $element.cloneNode(true);
19
20
  var destIt = ${this.elementSource.attrs.drItOption};
@@ -3,6 +3,7 @@ import {ScriptUtils} from '@dooboostore/core-web/script/ScriptUtils';
3
3
  import {RawSet} from '../rawsets/RawSet';
4
4
  import {Render} from '../rawsets/Render';
5
5
  import {AfterCallBack, ElementSource, ExecuteState, ReturnContainer, Source} from './OperatorExecuter';
6
+ import {ObjectUtils} from "@dooboostore/core/object/ObjectUtils";
6
7
 
7
8
  export class DrAppender extends OperatorExecuterAttrRequire<string> {
8
9
  constructor(rawSet: RawSet, render: Render, returnContainer: ReturnContainer, elementSource: ElementSource, source: Source, afterCallBack: AfterCallBack) {
@@ -14,7 +15,7 @@ export class DrAppender extends OperatorExecuterAttrRequire<string> {
14
15
  const itRandom = RawSet.drItOtherEncoding(this.elementSource.element);
15
16
  const vars = RawSet.drVarEncoding(this.elementSource.element, this.elementSource.attrs.drVarOption ?? '');
16
17
  const newTemp = this.source.config.window.document.createElement('temp');
17
- ScriptUtils.evaluate(`
18
+ ObjectUtils.Script.evaluate(`
18
19
  try{
19
20
  ${this.render.bindScript}
20
21
  ${this.elementSource.attrs.drBeforeOption ?? ''}
@@ -3,6 +3,7 @@ import {ScriptUtils} from '@dooboostore/core-web/script/ScriptUtils';
3
3
  import {RawSet} from '../rawsets/RawSet';
4
4
  import {Render} from '../rawsets/Render';
5
5
  import {AfterCallBack, ElementSource, ExecuteState, ReturnContainer, Source} from './OperatorExecuter';
6
+ import {ObjectUtils} from "@dooboostore/core/object/ObjectUtils";
6
7
 
7
8
  export class DrFor extends OperatorExecuterAttrRequire<string> {
8
9
  constructor(rawSet: RawSet, render: Render, returnContainer: ReturnContainer, elementSource: ElementSource, source: Source, afterCallBack: AfterCallBack) {
@@ -15,7 +16,7 @@ export class DrFor extends OperatorExecuterAttrRequire<string> {
15
16
  const vars = RawSet.drVarEncoding(this.elementSource.element, this.elementSource.attrs.drVarOption ?? '');
16
17
  const newTemp = this.source.config.window.document.createElement('temp');
17
18
  // console.log('-----asdad',attr , this.elementSource.attrs.drItOption);
18
- ScriptUtils.evaluate(`
19
+ ObjectUtils.Script.evaluate(`
19
20
  ${this.render.bindScript}
20
21
  ${this.elementSource.attrs.drBeforeOption ?? ''}
21
22
  for(${attr}) {
@@ -19,9 +19,14 @@ export class DrForOf extends OperatorExecuterAttrRequire<string> {
19
19
 
20
20
  const variableName = this.elementSource.element.getAttribute(RawSet.DR_VARIABLE_NAME_OPTIONNAME);
21
21
  const itemVariableName = this.elementSource.element.getAttribute(RawSet.DR_ITEM_VARIABLE_NAME_OPTIONNAME);
22
+ // const drAttrOption = this.elementSource.element.getAttribute(RawSet.DR_ATTR_OPTIONNAME);
22
23
  const itemIndexVariableName = this.elementSource.element.getAttribute(RawSet.DR_ITEM_INDEX_VARIABLE_NAME_OPTIONNAME);
24
+ const hasVariableName = this.elementSource.element.hasAttribute(RawSet.DR_VARIABLE_NAME_OPTIONNAME);
25
+ const hasItemVariableName = this.elementSource.element.hasAttribute(RawSet.DR_ITEM_VARIABLE_NAME_OPTIONNAME);
26
+ const hasItemIndexVariableName = this.elementSource.element.hasAttribute(RawSet.DR_ITEM_INDEX_VARIABLE_NAME_OPTIONNAME);
23
27
  // console.log('----!', this.elementSource.attrs)
24
28
  // ScriptUtils.evalReturn()
29
+ const t0 = performance.now();
25
30
  ObjectUtils.Script.evaluate(`
26
31
  ${this.render.bindScript}
27
32
  ${this.elementSource.attrs.drBeforeOption ?? ''}
@@ -29,6 +34,7 @@ export class DrForOf extends OperatorExecuterAttrRequire<string> {
29
34
  const forOf = ${ObjectUtils.Path.toOptionalChainPath(attr)};
30
35
  const forOfStr = \`${attr}\`.trim();
31
36
  // console.log('forOf---',forOf);
37
+ // debugger;
32
38
  if (forOf) {
33
39
  for(const it of forOf) {
34
40
  i++;
@@ -47,16 +53,39 @@ export class DrForOf extends OperatorExecuterAttrRequire<string> {
47
53
  const n = this.__render.element.cloneNode(true);
48
54
  Object.entries(this.__render.drAttr).filter(([k,v]) => k !== 'drForOf' && k !== 'drNextOption' && v).forEach(([k, v]) => n.setAttribute(this.__render.drAttrsOriginName[k], v));
49
55
  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)))
50
- if ('${variableName}') {
56
+ if (${hasVariableName} && '${variableName}') {
51
57
  n.getAttributeNames().forEach(it => n.setAttribute(it, n.getAttribute(it).replaceAll('#${variableName}#', forOfStr)));
52
58
  }
53
- if ('${itemVariableName}') {
59
+ if (${hasItemVariableName} && '${itemVariableName}') {
54
60
  n.getAttributeNames().forEach(it => n.setAttribute(it, n.getAttribute(it).replaceAll('#${itemVariableName}#', destIt)));
55
61
  }
56
- if ('${itemIndexVariableName}') {
62
+ if (${hasItemIndexVariableName} && '${itemIndexVariableName}') {
57
63
  n.getAttributeNames().forEach(it => n.setAttribute(it, n.getAttribute(it).replaceAll('#${itemIndexVariableName}#', i)));
58
64
  }
59
65
 
66
+ const hasDrOptionAttr = n.hasAttribute('${RawSet.DR_ATTR_OPTIONNAME}');
67
+ if (hasDrOptionAttr) {
68
+ const drOptionAttr = n.getAttribute('${RawSet.DR_ATTR_OPTIONNAME}');
69
+ const drOptionAttrResult = $scriptUtils.evaluateReturn(drOptionAttr, this);
70
+ Array.from(Object.entries(drOptionAttrResult??{})).forEach(([k,v])=>{
71
+ if (v === null) {
72
+ n.removeAttribute(k);
73
+ } else {
74
+ n.setAttribute(k,v);
75
+ }
76
+ })
77
+
78
+ }
79
+ const hasDrOptionIf = n.hasAttribute('${RawSet.DR_IF_OPTIONNAME}');
80
+ if (hasDrOptionIf) {
81
+ const drOptionIf = n.getAttribute('${RawSet.DR_IF_OPTIONNAME}');
82
+ const e = $scriptUtils.evaluateReturn(drOptionIf, this);
83
+ if(!e) {
84
+ continue;
85
+ }
86
+
87
+ }
88
+
60
89
  const drOptionAttr = n.getAttribute('${RawSet.DR_DETECT_ATTR_OPTIONNAME}');
61
90
  if (drOptionAttr) {
62
91
  const drOptionAttrResult = $scriptUtils.evaluateReturn(drOptionAttr, this);
@@ -79,13 +108,13 @@ export class DrForOf extends OperatorExecuterAttrRequire<string> {
79
108
  }
80
109
 
81
110
  n.innerHTML = n.innerHTML.replace(/\\#it\\#/g, destIt).replace(/\\#index\\#/g, i);
82
- if ('${variableName}') {
111
+ if (${hasVariableName} && '${variableName}') {
83
112
  n.innerHTML = n.innerHTML.replaceAll('#${variableName}#', forOfStr);
84
113
  }
85
- if ('${itemVariableName}') {
114
+ if (${hasItemVariableName} && '${itemVariableName}') {
86
115
  n.innerHTML = n.innerHTML.replaceAll('#${itemVariableName}#', destIt);
87
116
  }
88
- if ('${itemIndexVariableName}') {
117
+ if (${hasItemIndexVariableName} && '${itemIndexVariableName}') {
89
118
  n.innerHTML = n.innerHTML.replaceAll('#${itemIndexVariableName}#', i);
90
119
  }
91
120
 
@@ -126,6 +155,7 @@ export class DrForOf extends OperatorExecuterAttrRequire<string> {
126
155
  this.elementSource.element.parentNode?.replaceChild(this.returnContainer.fag, this.elementSource.element);
127
156
  // const rrr = rr.flatMap(it => it.render(obj, config));// .flat();
128
157
  this.returnContainer.raws.push(...rr)
158
+ // console.log(`drForOf 호출에 걸린 시간은 ${performance.now() - t0} 밀리초.`);
129
159
  return ExecuteState.EXECUTE;
130
160
  }
131
161
  }
@@ -6,6 +6,7 @@ import {ValidatorArray} from '../validators/ValidatorArray';
6
6
  import {Render} from '../rawsets/Render';
7
7
  import {OperatorExecuterAttrRequire} from './OperatorExecuterAttrRequire';
8
8
  import {AfterCallBack, ElementSource, ExecuteState, ReturnContainer, Source} from './OperatorExecuter';
9
+ import {ObjectUtils} from "@dooboostore/core/object/ObjectUtils";
9
10
 
10
11
  export class DrForm extends OperatorExecuterAttrRequire<string> {
11
12
  constructor(rawSet: RawSet, render: Render, returnContainer: ReturnContainer, elementSource: ElementSource, source: Source, afterCallBack: AfterCallBack) {
@@ -14,11 +15,11 @@ export class DrForm extends OperatorExecuterAttrRequire<string> {
14
15
 
15
16
  async executeAttrRequire(attr: string): Promise<ExecuteState> {
16
17
  RawSet.drFormOtherMoveAttr(this.elementSource.element, 'name', 'temp-name', this.source.config);
17
- const data = ScriptUtils.evaluateReturn(`${attr}`, this.source.obj);
18
+ const data = ObjectUtils.Script.evaluateReturn(`${attr}`, this.source.obj);
18
19
 
19
20
  const childs = Array.from(this.elementSource.element.querySelectorAll('[name]'));
20
21
 
21
- const fromName = ScriptUtils.evaluateReturn(this.elementSource.element.getAttribute(`${RawSet.DR_FORM_NAME}:name`) ?? '', this.source.obj);
22
+ const fromName = ObjectUtils.Script.evaluateReturn(this.elementSource.element.getAttribute(`${RawSet.DR_FORM_NAME}:name`) ?? '', this.source.obj);
22
23
  const thisName = fromName ?? this.elementSource.element.getAttribute('name');
23
24
  // // 자기자신이 Input 대상일때
24
25
  if (childs.length <= 0 && thisName) {
@@ -32,10 +33,10 @@ export class DrForm extends OperatorExecuterAttrRequire<string> {
32
33
  const eventName = it.getAttribute(`${RawSet.DR_FORM_NAME}:event`) ?? 'change'
33
34
  const validatorName = it.getAttribute(`${RawSet.DR_FORM_NAME}:validator`);
34
35
  const attrEventName = EventManager.attrPrefix + 'event-' + eventName;
35
- let varpath = ScriptUtils.evaluateReturn(this.elementSource.element.getAttribute(`${RawSet.DR_FORM_NAME}:name`) ?? '', this.source.obj) ?? it.getAttribute('name');
36
+ let varpath = ObjectUtils.Script.evaluateReturn(this.elementSource.element.getAttribute(`${RawSet.DR_FORM_NAME}:name`) ?? '', this.source.obj) ?? it.getAttribute('name');
36
37
  if (varpath != null) {
37
38
  if (validatorName) {
38
- ScriptUtils.evaluate(`
39
+ ObjectUtils.Script.evaluate(`
39
40
  ${this.render.bindScript}
40
41
  const validator = typeof ${validatorName} ==='function' ? new ${validatorName}() : ${validatorName};
41
42
  ${attr}['${varpath}'] = validator;
@@ -49,7 +50,7 @@ export class DrForm extends OperatorExecuterAttrRequire<string> {
49
50
  ));
50
51
  }
51
52
  varpath = `${attr}['${varpath}']`;
52
- const data = ScriptUtils.evaluateReturn(`${varpath}`, this.source.obj);
53
+ const data = ObjectUtils.Script.evaluateReturn(`${varpath}`, this.source.obj);
53
54
  if (data instanceof ValidatorArray) {
54
55
  it.setAttribute(attrEventName, `${varpath}.setArrayValue($target, $target.value, $event); ${it.getAttribute(attrEventName) ?? ''};`);
55
56
  data.addValidator((it as any).value, it);
@@ -3,6 +3,7 @@ import {ScriptUtils} from '@dooboostore/core-web/script/ScriptUtils';
3
3
  import {RawSet} from '../rawsets/RawSet';
4
4
  import {Render} from '../rawsets/Render';
5
5
  import {AfterCallBack, ElementSource, ExecuteState, ReturnContainer, Source} from './OperatorExecuter';
6
+ import {ObjectUtils} from "@dooboostore/core/object/ObjectUtils";
6
7
 
7
8
  export class DrInnerHTML extends OperatorExecuterAttrRequire<string> {
8
9
  constructor(rawSet: RawSet, render: Render, returnContainer: ReturnContainer, elementSource: ElementSource, source: Source, afterCallBack: AfterCallBack) {
@@ -11,7 +12,7 @@ export class DrInnerHTML extends OperatorExecuterAttrRequire<string> {
11
12
 
12
13
  async executeAttrRequire(attr: string): Promise<ExecuteState> {
13
14
  const newTemp = this.source.config.window.document.createElement('temp');
14
- ScriptUtils.evaluate(`
15
+ ObjectUtils.Script.evaluate(`
15
16
  ${this.render.bindScript}
16
17
  const n = $element.cloneNode(true);
17
18
  ${this.elementSource.attrs.drBeforeOption ?? ''}
@@ -4,6 +4,7 @@ import {RawSet} from '../rawsets/RawSet';
4
4
  import {EventManager} from '../events/EventManager';
5
5
  import {Render} from '../rawsets/Render';
6
6
  import {AfterCallBack, ElementSource, ExecuteState, ReturnContainer, Source} from './OperatorExecuter';
7
+ import {ObjectUtils} from "@dooboostore/core/object/ObjectUtils";
7
8
 
8
9
  export class DrRepeat extends OperatorExecuterAttrRequire<string> {
9
10
  constructor(rawSet: RawSet, render: Render, returnContainer: ReturnContainer, elementSource: ElementSource, source: Source, afterCallBack: AfterCallBack) {
@@ -15,7 +16,7 @@ export class DrRepeat extends OperatorExecuterAttrRequire<string> {
15
16
  const itRandom = RawSet.drItOtherEncoding(this.elementSource.element);
16
17
  const vars = RawSet.drVarEncoding(this.elementSource.element, this.elementSource.attrs.drVarOption ?? '');
17
18
  const newTemp = this.source.config.window.document.createElement('temp');
18
- ScriptUtils.evaluate(`
19
+ ObjectUtils.Script.evaluate(`
19
20
  ${this.render.bindScript}
20
21
  ${this.elementSource.attrs.drBeforeOption ?? ''}
21
22
  var i = 0;
@@ -3,6 +3,7 @@ import { ScriptUtils } from '@dooboostore/core-web/script/ScriptUtils';
3
3
  import { RawSet } from '../rawsets/RawSet';
4
4
  import { Render } from '../rawsets/Render';
5
5
  import { AfterCallBack, ElementSource, ExecuteState, ReturnContainer, Source } from './OperatorExecuter';
6
+ import {ObjectUtils} from "@dooboostore/core/object/ObjectUtils";
6
7
 
7
8
  export class DrStripElement extends OperatorExecuterAttrRequire<string> {
8
9
  constructor(rawSet: RawSet, render: Render, returnContainer: ReturnContainer, elementSource: ElementSource, source: Source, afterCallBack: AfterCallBack) {
@@ -15,7 +16,7 @@ export class DrStripElement extends OperatorExecuterAttrRequire<string> {
15
16
  // const vars = RawSet.drVarEncoding(this.elementSource.element, this.elementSource.attrs.drVarOption ?? '');
16
17
  const newTemp = this.source.config.window.document.createElement('temp');
17
18
  // Object.entries(this.__render.drAttr).filter(([k,v]) => k !== 'drIf' && v).forEach(([k, v]) => n.setAttribute(this.__render.drAttrsOriginName[k], v)); <-- 이부분은 다른 attr에도 적용을 할지말지 생각해야됨 엘리먼트 존재유무에 따라서 적용을 할지말지 결정해야됨
18
- ScriptUtils.evaluate(`
19
+ ObjectUtils.Script.evaluate(`
19
20
  ${this.render.bindScript}
20
21
  ${this.elementSource.attrs.drBeforeOption ?? ''}
21
22
  const n = $element.cloneNode(true);
@@ -1,4 +1,4 @@
1
- import { ScriptUtils } from '@dooboostore/core-web/script/ScriptUtils';
1
+ import { ObjectUtils } from '@dooboostore/core/object/ObjectUtils';
2
2
  import { RawSet } from '../rawsets/RawSet';
3
3
  import { CreatorMetaData } from '../rawsets/CreatorMetaData';
4
4
  import {
@@ -11,6 +11,7 @@ import {
11
11
  } from './OperatorExecuter';
12
12
  import { Render } from '../rawsets/Render';
13
13
  import { ElementUtils } from '@dooboostore/core-web/element/ElementUtils';
14
+ import { TargetElement } from '../configs';
14
15
 
15
16
  declare global {
16
17
  interface Window {
@@ -33,9 +34,20 @@ export class DrTargetElement extends OperatorExecuter<void> {
33
34
  }
34
35
 
35
36
  async execute(): Promise<ExecuteState> {
36
- const targetElement = this.source.config?.targetElements?.find(
37
- it => it.name.toLowerCase() === this.elementSource.element.tagName.toLowerCase()
38
- );
37
+ let targetElement: TargetElement | undefined = undefined;
38
+ let isTargetElementElement = this.elementSource.element.tagName.toLowerCase() === RawSet.DR_TARGET_ELEMENT_ELEMENTNAME.toLowerCase();
39
+ if (isTargetElementElement){
40
+ const targetElementTagName = this.elementSource.element.getAttribute(`${RawSet.DR_TARGET_ELEMENT_ELEMENTNAME}:is`)?.toLowerCase();
41
+ targetElement = this.source.config?.targetElements?.find(
42
+ it => it.name.toLowerCase() === targetElementTagName
43
+ );
44
+ } else {
45
+ targetElement = this.source.config?.targetElements?.find(
46
+ it => it.name.toLowerCase() === this.elementSource.element.tagName.toLowerCase()
47
+ );
48
+ }
49
+ // console.log('--------------tar', isTargetElementElement, targetElement, this.elementSource.element.tagName);
50
+
39
51
  if (targetElement) {
40
52
  if (
41
53
  this.rawSet.point.start instanceof this.source.config.window.HTMLMetaElement &&
@@ -71,7 +83,7 @@ export class DrTargetElement extends OperatorExecuter<void> {
71
83
  this.rawSet.detect = {
72
84
  action: () => {
73
85
  const script = `var $component = this.__render.component; var $element = this.__render.element; var $innerHTML = this.__render.innerHTML; var $attribute = this.__render.attribute; ${detectAction} `;
74
- ScriptUtils.evaluate(
86
+ ObjectUtils.Script.evaluate(
75
87
  script,
76
88
  Object.assign(this.source.obj, {
77
89
  __render: this.rawSet.dataSet.render
@@ -2,7 +2,7 @@ import { RawSet } from '../rawsets/RawSet';
2
2
  import { CreatorMetaData } from '../rawsets/CreatorMetaData';
3
3
  import { AfterCallBack, ElementSource, ExecuteState, OperatorExecuter, ReturnContainer, Source } from './OperatorExecuter';
4
4
  import { Render } from '../rawsets/Render';
5
- import { ScriptUtils } from '@dooboostore/core-web/script/ScriptUtils';
5
+ import { ObjectUtils } from '@dooboostore/core/object/ObjectUtils';
6
6
 
7
7
 
8
8
  // 여기서 사용자가 등록한 TargetElement가 들어간다.
@@ -34,7 +34,7 @@ export class DrTargetElementIsElement extends OperatorExecuter<string | null> {
34
34
  this.rawSet.detect = {
35
35
  action: () => {
36
36
  const script = `var $component = this.__render.component; var $element = this.__render.element; var $innerHTML = this.__render.innerHTML; var $attribute = this.__render.attribute; ${detectAction} `;
37
- ScriptUtils.evaluate(script, Object.assign(this.source.obj, {
37
+ ObjectUtils.Script.evaluate(script, Object.assign(this.source.obj, {
38
38
  __render: this.rawSet.dataSet.render
39
39
  }))
40
40
  }
@@ -4,7 +4,7 @@ import { ComponentSet } from '../components/ComponentSet';
4
4
  import { ExecuteState } from './OperatorExecuter';
5
5
  import { isOnDrThisUnBind } from '../lifecycle/dr-this/OnDrThisUnBind';
6
6
  import { isOnDrThisBind } from '../lifecycle/dr-this/OnDrThisBind';
7
- import { ScriptUtils } from '@dooboostore/core-web/script/ScriptUtils';
7
+ import { ObjectUtils } from '@dooboostore/core/object/ObjectUtils';
8
8
  import { Render } from '../rawsets/Render';
9
9
 
10
10
  export class DrThis extends OperatorExecuterAttrRequire<string> {
@@ -12,7 +12,7 @@ export class DrThis extends OperatorExecuterAttrRequire<string> {
12
12
  // const e = this.elementSource;
13
13
  // console.log('drThis!!!!!!!!!!!!!', this.elementSource.attrs.drDetectIfOption, this.elementSource.attrs.drIfOption);
14
14
  const optionIf = this.elementSource.attrs.drDetectIfOption ?? this.elementSource.attrs.drIfOption;
15
- const ok = ScriptUtils.evaluate(`
15
+ const ok = ObjectUtils.Script.evaluate(`
16
16
  ${this.render.bindScript}
17
17
  try {
18
18
  const ok = ${this.elementSource.attrs.drThis};
@@ -4,6 +4,7 @@ import {RawSet} from '../rawsets/RawSet';
4
4
  import {Render} from '../rawsets/Render';
5
5
  import {AfterCallBack, ElementSource, ExecuteState, ReturnContainer, Source} from './OperatorExecuter';
6
6
  import {DomRenderConfig} from '../configs/DomRenderConfig';
7
+ import {ObjectUtils} from "@dooboostore/core/object/ObjectUtils";
7
8
 
8
9
  export class DrThisProperty extends OperatorExecuterAttrRequire<string> {
9
10
  constructor(rawSet: RawSet, render: Render, returnContainer: ReturnContainer, elementSource: ElementSource, source: Source, afterCallBack: AfterCallBack) {
@@ -23,7 +24,7 @@ export class DrThisProperty extends OperatorExecuterAttrRequire<string> {
23
24
  // }
24
25
  // await new Promise(resolve => setTimeout(resolve, 1000));
25
26
  // console.log('!!!!!!!!!!!!!!', this.rawSet);
26
- ScriptUtils.evaluate(`
27
+ ObjectUtils.Script.evaluate(`
27
28
  ${this.render.bindScript}
28
29
  ${this.elementSource.attrs.drBeforeOption ?? ''}
29
30
  var i = 0;