@dooboostore/dom-render 1.0.108 → 1.0.110

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 (236) 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 +134 -62
  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 +24 -6
  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/appender/Appender.js +0 -3
  13. package/dist/cjs/components/appender/Appender.js.map +2 -2
  14. package/dist/cjs/components/checkbox/CheckBox.js.map +2 -2
  15. package/dist/cjs/components/choose/Choose.js +7 -1
  16. package/dist/cjs/components/choose/Choose.js.map +2 -2
  17. package/dist/cjs/components/details/Details.js +2 -2
  18. package/dist/cjs/components/details/Details.js.map +2 -2
  19. package/dist/cjs/components/forOf/ForOf.js.map +2 -2
  20. package/dist/cjs/components/if/If.js +2 -2
  21. package/dist/cjs/components/if/If.js.map +2 -2
  22. package/dist/cjs/components/input/Input.js +2 -2
  23. package/dist/cjs/components/input/Input.js.map +2 -2
  24. package/dist/cjs/components/promise/PromiseSwitch.js +6 -6
  25. package/dist/cjs/components/promise/PromiseSwitch.js.map +2 -2
  26. package/dist/cjs/components/radio/Radio.js.map +2 -2
  27. package/dist/cjs/components/router/Route.js +2 -2
  28. package/dist/cjs/components/router/Route.js.map +2 -2
  29. package/dist/cjs/components/router/RouterOutlet.js +17 -3
  30. package/dist/cjs/components/router/RouterOutlet.js.map +2 -2
  31. package/dist/cjs/components/select/Select.js +26 -12
  32. package/dist/cjs/components/select/Select.js.map +2 -2
  33. package/dist/cjs/components/this/This.js +2 -2
  34. package/dist/cjs/components/this/This.js.map +2 -2
  35. package/dist/cjs/components/timer/Timer.js +15 -13
  36. package/dist/cjs/components/timer/Timer.js.map +2 -2
  37. package/dist/cjs/decorators/DomRenderNoProxy.js +2 -1
  38. package/dist/cjs/decorators/DomRenderNoProxy.js.map +2 -2
  39. package/dist/cjs/events/EventManager.js +9 -2
  40. package/dist/cjs/events/EventManager.js.map +2 -2
  41. package/dist/cjs/lifecycle/OnInitRender.js.map +1 -1
  42. package/dist/cjs/lifecycle/OnRawSetRendered.js +26 -0
  43. package/dist/cjs/lifecycle/OnRawSetRendered.js.map +7 -0
  44. package/dist/cjs/lifecycle/index.js +1 -0
  45. package/dist/cjs/lifecycle/index.js.map +2 -2
  46. package/dist/cjs/operators/DrForOf.js +24 -11
  47. package/dist/cjs/operators/DrForOf.js.map +2 -2
  48. package/dist/cjs/operators/DrIf.js +1 -2
  49. package/dist/cjs/operators/DrIf.js.map +2 -2
  50. package/dist/cjs/operators/DrInnerText.js +2 -2
  51. package/dist/cjs/operators/DrInnerText.js.map +2 -2
  52. package/dist/cjs/operators/DrTargetElement.js +2 -0
  53. package/dist/cjs/operators/DrTargetElement.js.map +2 -2
  54. package/dist/cjs/operators/OperatorExecuter.js +1 -2
  55. package/dist/cjs/operators/OperatorExecuter.js.map +2 -2
  56. package/dist/cjs/package.json +5 -0
  57. package/dist/cjs/rawsets/RawSet.js +392 -115
  58. package/dist/cjs/rawsets/RawSet.js.map +3 -3
  59. package/dist/cjs/rawsets/Render.js.map +1 -1
  60. package/dist/cjs/routers/PathRouter.js +13 -7
  61. package/dist/cjs/routers/PathRouter.js.map +2 -2
  62. package/dist/cjs/routers/Router.js +76 -36
  63. package/dist/cjs/routers/Router.js.map +3 -3
  64. package/dist/esm/DomRender.js +41 -26
  65. package/dist/esm/DomRender.js.map +2 -2
  66. package/dist/esm/DomRenderProxy.js +134 -62
  67. package/dist/esm/DomRenderProxy.js.map +2 -2
  68. package/dist/esm/bundle-entry.js +22 -21
  69. package/dist/esm/bundle-entry.js.map +2 -2
  70. package/dist/esm/components/ComponentBase.js +24 -6
  71. package/dist/esm/components/ComponentBase.js.map +2 -2
  72. package/dist/esm/components/ComponentRouterBase.js +11 -1
  73. package/dist/esm/components/ComponentRouterBase.js.map +2 -2
  74. package/dist/esm/components/appender/Appender.js +0 -3
  75. package/dist/esm/components/appender/Appender.js.map +2 -2
  76. package/dist/esm/components/checkbox/CheckBox.js.map +2 -2
  77. package/dist/esm/components/choose/Choose.js +7 -1
  78. package/dist/esm/components/choose/Choose.js.map +2 -2
  79. package/dist/esm/components/details/Details.js +2 -2
  80. package/dist/esm/components/details/Details.js.map +2 -2
  81. package/dist/esm/components/forOf/ForOf.js.map +2 -2
  82. package/dist/esm/components/if/If.js +2 -2
  83. package/dist/esm/components/if/If.js.map +2 -2
  84. package/dist/esm/components/input/Input.js +2 -2
  85. package/dist/esm/components/input/Input.js.map +2 -2
  86. package/dist/esm/components/promise/PromiseSwitch.js +6 -6
  87. package/dist/esm/components/promise/PromiseSwitch.js.map +2 -2
  88. package/dist/esm/components/radio/Radio.js.map +2 -2
  89. package/dist/esm/components/router/Route.js +2 -2
  90. package/dist/esm/components/router/Route.js.map +2 -2
  91. package/dist/esm/components/router/RouterOutlet.js +18 -4
  92. package/dist/esm/components/router/RouterOutlet.js.map +2 -2
  93. package/dist/esm/components/select/Select.js +26 -12
  94. package/dist/esm/components/select/Select.js.map +2 -2
  95. package/dist/esm/components/this/This.js +2 -2
  96. package/dist/esm/components/this/This.js.map +2 -2
  97. package/dist/esm/components/timer/Timer.js +15 -13
  98. package/dist/esm/components/timer/Timer.js.map +2 -2
  99. package/dist/esm/decorators/DomRenderNoProxy.js +2 -1
  100. package/dist/esm/decorators/DomRenderNoProxy.js.map +2 -2
  101. package/dist/esm/events/EventManager.js +9 -2
  102. package/dist/esm/events/EventManager.js.map +2 -2
  103. package/dist/esm/lifecycle/OnInitRender.js.map +1 -1
  104. package/dist/esm/lifecycle/OnRawSetRendered.js +7 -0
  105. package/dist/esm/lifecycle/OnRawSetRendered.js.map +7 -0
  106. package/dist/esm/lifecycle/index.js +1 -0
  107. package/dist/esm/lifecycle/index.js.map +2 -2
  108. package/dist/esm/operators/DrForOf.js +24 -11
  109. package/dist/esm/operators/DrForOf.js.map +2 -2
  110. package/dist/esm/operators/DrIf.js +1 -2
  111. package/dist/esm/operators/DrIf.js.map +2 -2
  112. package/dist/esm/operators/DrInnerText.js +2 -2
  113. package/dist/esm/operators/DrInnerText.js.map +2 -2
  114. package/dist/esm/operators/DrTargetElement.js +2 -0
  115. package/dist/esm/operators/DrTargetElement.js.map +2 -2
  116. package/dist/esm/operators/OperatorExecuter.js +1 -2
  117. package/dist/esm/operators/OperatorExecuter.js.map +2 -2
  118. package/dist/esm/rawsets/RawSet.js +392 -115
  119. package/dist/esm/rawsets/RawSet.js.map +3 -3
  120. package/dist/esm/routers/PathRouter.js +13 -7
  121. package/dist/esm/routers/PathRouter.js.map +2 -2
  122. package/dist/esm/routers/Router.js +76 -36
  123. package/dist/esm/routers/Router.js.map +3 -3
  124. package/dist/esm-bundle/dooboostore-dom-render.esm.js +14023 -6402
  125. package/dist/esm-bundle/dooboostore-dom-render.esm.js.map +4 -4
  126. package/dist/types/DomRender.d.ts +11 -5
  127. package/dist/types/DomRender.d.ts.map +1 -1
  128. package/dist/types/DomRenderProxy.d.ts +2 -2
  129. package/dist/types/DomRenderProxy.d.ts.map +1 -1
  130. package/dist/types/bundle-entry.d.ts +5 -2
  131. package/dist/types/bundle-entry.d.ts.map +1 -1
  132. package/dist/types/components/ComponentBase.d.ts +8 -2
  133. package/dist/types/components/ComponentBase.d.ts.map +1 -1
  134. package/dist/types/components/ComponentRouterBase.d.ts +8 -0
  135. package/dist/types/components/ComponentRouterBase.d.ts.map +1 -1
  136. package/dist/types/components/appender/Appender.d.ts +0 -2
  137. package/dist/types/components/appender/Appender.d.ts.map +1 -1
  138. package/dist/types/components/checkbox/CheckBox.d.ts.map +1 -1
  139. package/dist/types/components/choose/Choose.d.ts.map +1 -1
  140. package/dist/types/components/details/Details.d.ts +1 -1
  141. package/dist/types/components/details/Details.d.ts.map +1 -1
  142. package/dist/types/components/forOf/ForOf.d.ts.map +1 -1
  143. package/dist/types/components/if/If.d.ts +1 -1
  144. package/dist/types/components/if/If.d.ts.map +1 -1
  145. package/dist/types/components/index.d.ts +2 -1
  146. package/dist/types/components/index.d.ts.map +1 -1
  147. package/dist/types/components/input/Input.d.ts +1 -1
  148. package/dist/types/components/input/Input.d.ts.map +1 -1
  149. package/dist/types/components/promise/PromiseSwitch.d.ts +1 -1
  150. package/dist/types/components/promise/PromiseSwitch.d.ts.map +1 -1
  151. package/dist/types/components/radio/Radio.d.ts.map +1 -1
  152. package/dist/types/components/router/Route.d.ts +1 -1
  153. package/dist/types/components/router/Route.d.ts.map +1 -1
  154. package/dist/types/components/router/RouterOutlet.d.ts +6 -2
  155. package/dist/types/components/router/RouterOutlet.d.ts.map +1 -1
  156. package/dist/types/components/select/Select.d.ts +5 -5
  157. package/dist/types/components/select/Select.d.ts.map +1 -1
  158. package/dist/types/components/this/This.d.ts +1 -1
  159. package/dist/types/components/this/This.d.ts.map +1 -1
  160. package/dist/types/components/timer/Timer.d.ts +6 -4
  161. package/dist/types/components/timer/Timer.d.ts.map +1 -1
  162. package/dist/types/decorators/DomRenderNoProxy.d.ts.map +1 -1
  163. package/dist/types/events/EventManager.d.ts +8 -0
  164. package/dist/types/events/EventManager.d.ts.map +1 -1
  165. package/dist/types/index.d.ts +0 -100
  166. package/dist/types/lifecycle/OnInitRender.d.ts +1 -1
  167. package/dist/types/lifecycle/OnInitRender.d.ts.map +1 -1
  168. package/dist/types/lifecycle/OnRawSetRendered.d.ts +10 -0
  169. package/dist/types/lifecycle/OnRawSetRendered.d.ts.map +1 -0
  170. package/dist/types/lifecycle/index.d.ts +1 -0
  171. package/dist/types/lifecycle/index.d.ts.map +1 -1
  172. package/dist/types/operators/DrForOf.d.ts.map +1 -1
  173. package/dist/types/operators/DrInnerText.d.ts.map +1 -1
  174. package/dist/types/operators/DrTargetElement.d.ts.map +1 -1
  175. package/dist/types/operators/OperatorExecuter.d.ts.map +1 -1
  176. package/dist/types/rawsets/RawSet.d.ts +17 -9
  177. package/dist/types/rawsets/RawSet.d.ts.map +1 -1
  178. package/dist/types/rawsets/Render.d.ts +1 -0
  179. package/dist/types/rawsets/Render.d.ts.map +1 -1
  180. package/dist/types/routers/PathRouter.d.ts.map +1 -1
  181. package/dist/types/routers/Router.d.ts +11 -14
  182. package/dist/types/routers/Router.d.ts.map +1 -1
  183. package/dist/umd-bundle/dooboostore-dom-render.umd.js +14104 -6502
  184. package/dist/umd-bundle/dooboostore-dom-render.umd.js.map +4 -4
  185. package/package.json +9 -8
  186. package/src/DomRender.ts +62 -34
  187. package/src/DomRenderProxy.ts +275 -142
  188. package/src/bundle-entry.ts +5 -3
  189. package/src/components/ComponentBase.ts +33 -11
  190. package/src/components/ComponentRouterBase.ts +17 -2
  191. package/src/components/appender/Appender.ts +0 -5
  192. package/src/components/checkbox/CheckBox.ts +22 -25
  193. package/src/components/choose/Choose.ts +19 -18
  194. package/src/components/details/Details.ts +40 -43
  195. package/src/components/forOf/ForOf.ts +6 -9
  196. package/src/components/if/If.ts +9 -11
  197. package/src/components/input/Input.ts +16 -22
  198. package/src/components/promise/PromiseSwitch.ts +67 -66
  199. package/src/components/radio/Radio.ts +23 -28
  200. package/src/components/router/Route.ts +10 -13
  201. package/src/components/router/RouterOutlet.ts +29 -8
  202. package/src/components/select/Select.ts +47 -33
  203. package/src/components/this/This.ts +13 -12
  204. package/src/components/timer/Timer.ts +29 -65
  205. package/src/decorators/DomRenderNoProxy.ts +3 -1
  206. package/src/events/EventManager.ts +15 -4
  207. package/src/lifecycle/OnInitRender.ts +1 -1
  208. package/src/lifecycle/OnRawSetRendered.ts +15 -0
  209. package/src/lifecycle/index.ts +1 -0
  210. package/src/node_modules/.bin/acorn +17 -0
  211. package/src/node_modules/.bin/browserslist +17 -0
  212. package/src/node_modules/.bin/eslint +17 -0
  213. package/src/node_modules/.bin/sbf +17 -0
  214. package/src/node_modules/.bin/ts-node +17 -0
  215. package/src/node_modules/.bin/ts-node-cwd +17 -0
  216. package/src/node_modules/.bin/ts-node-dev +17 -0
  217. package/src/node_modules/.bin/ts-node-esm +17 -0
  218. package/src/node_modules/.bin/ts-node-script +17 -0
  219. package/src/node_modules/.bin/ts-node-transpile-only +17 -0
  220. package/src/node_modules/.bin/ts-script +17 -0
  221. package/src/node_modules/.bin/tsc +17 -0
  222. package/src/node_modules/.bin/tsnd +17 -0
  223. package/src/node_modules/.bin/tsserver +17 -0
  224. package/src/node_modules/.bin/webpack +17 -0
  225. package/src/node_modules/.bin/webpack-cli +17 -0
  226. package/src/node_modules/.bin/webpack-dev-server +17 -0
  227. package/src/operators/DrForOf.ts +25 -10
  228. package/src/operators/DrIf.ts +1 -1
  229. package/src/operators/DrInnerText.ts +2 -1
  230. package/src/operators/DrTargetElement.ts +14 -0
  231. package/src/operators/OperatorExecuter.ts +1 -2
  232. package/src/rawsets/RawSet.ts +709 -295
  233. package/src/rawsets/Render.ts +1 -0
  234. package/src/routers/PathRouter.ts +14 -7
  235. package/src/routers/Router.ts +107 -61
  236. package/types.d.ts +0 -2825
@@ -2,24 +2,20 @@ import { ComponentBase } from '../ComponentBase';
2
2
  import { DomRender, DomRenderRunConfig } from '../../DomRender';
3
3
  import { RawSet } from '../../rawsets/RawSet';
4
4
  import { OtherData } from '../../lifecycle/OnChangeAttrRender';
5
- import { OnInitRender } from '../../lifecycle/OnInitRender';
6
- import { ComponentSet } from '../../components/ComponentSet';
7
5
  import { OnCreateRenderDataParams } from '../../lifecycle/OnCreateRenderData';
8
6
 
9
-
10
-
11
7
  export namespace Radio {
12
8
  export const selector = 'System:Radio';
13
9
  export type Attribute = {
14
10
  class?: string;
15
- }
11
+ };
16
12
  export type LabelAttribute = {
17
13
  class?: string;
18
14
  name?: string;
19
15
  value?: string;
20
16
  checked?: boolean;
21
- on_change_checked?: (checked: boolean, element: HTMLInputElement) => void
22
- }
17
+ on_change_checked?: (checked: boolean, element: HTMLInputElement) => void;
18
+ };
23
19
 
24
20
  class RadioBase extends ComponentBase<Attribute> {
25
21
  public hidden = true;
@@ -29,7 +25,7 @@ export namespace Radio {
29
25
  public name = 'Checked';
30
26
 
31
27
  constructor() {
32
- super({onlyParentType: Radio});
28
+ super({ onlyParentType: Radio });
33
29
  }
34
30
  }
35
31
 
@@ -37,7 +33,7 @@ export namespace Radio {
37
33
  public name = 'unChecked';
38
34
 
39
35
  constructor() {
40
- super({onlyParentType: Radio});
36
+ super({ onlyParentType: Radio });
41
37
  }
42
38
  }
43
39
 
@@ -45,10 +41,11 @@ export namespace Radio {
45
41
  private checked = false;
46
42
  private inputElement?: HTMLInputElement;
47
43
 
48
- change(checked?: boolean) { checked = checked ?? this.checked;
44
+ change(checked?: boolean) {
45
+ checked = checked ?? this.checked;
49
46
  this.checked = checked;
50
47
  this.setChildrenHidden(checked);
51
- console.log('radio checked!!!!!!!', checked, this.checked, this.inputElement?.checked)
48
+ console.log('radio checked!!!!!!!', checked, this.checked, this.inputElement?.checked);
52
49
  if (this.getAttribute('on_change_checked')) {
53
50
  this.getAttribute('on_change_checked')?.(checked, this.inputElement!);
54
51
  }
@@ -76,39 +73,37 @@ export namespace Radio {
76
73
  super.onChangeAttrRender(name, val, other);
77
74
  if (this.inputElement && this.getAttribute('checked') !== this.checked) {
78
75
  this.inputElement.checked = !!this.getAttribute('checked');
79
- console.log('----changeAttribute', this.getAttribute('checked'))
76
+ console.log('----changeAttribute', this.getAttribute('checked'));
80
77
  this.change(!!this.getAttribute('checked'));
81
78
  }
82
79
  }
83
-
84
80
  }
85
81
  }
86
82
 
87
-
88
-
89
83
  export default {
90
84
  radioChecked: (config?: DomRenderRunConfig) => {
91
85
  return RawSet.createComponentTargetElement({
92
86
  name: `${Radio.selector}-checked`,
93
87
  template: '<div dr-if="!@this@.hidden" dr-option-strip="true" >#innerHTML#</div>',
94
- objFactory: (e,o,r2, counstructorParam) => {
95
- return DomRender.run({rootObject: new Radio.Checked(), config: config});
88
+ objFactory: (e, o, r2, counstructorParam) => {
89
+ return DomRender.run({ rootObject: new Radio.Checked(), config: config });
96
90
  }
97
- })
91
+ });
98
92
  },
99
93
  radioUnChecked: (config?: DomRenderRunConfig) => {
100
94
  return RawSet.createComponentTargetElement({
101
95
  name: `${Radio.selector}-unchecked`,
102
96
  template: '<div dr-if="!@this@.hidden" dr-option-strip="true" >#innerHTML#</div>',
103
- objFactory: (e,o,r2, counstructorParam) => {
104
- return DomRender.run({rootObject: new Radio.UnChecked(), config: config});
97
+ objFactory: (e, o, r2, counstructorParam) => {
98
+ return DomRender.run({ rootObject: new Radio.UnChecked(), config: config });
105
99
  }
106
- })
100
+ });
107
101
  },
108
102
  radio: (config?: DomRenderRunConfig) => {
109
103
  return RawSet.createComponentTargetElement({
110
104
  name: `${Radio.selector}`,
111
- template: '<label class="${@this@.getAttribute(\'class\')}$">\n' +
105
+ template:
106
+ '<label class="${@this@.getAttribute(\'class\')}$">\n' +
112
107
  ' <input\n' +
113
108
  ' name="${@this@.getAttribute(\'name\')}$"\n' +
114
109
  ' checked="${@this@.getAttribute(\'checked\')}$"\n' +
@@ -118,12 +113,12 @@ export default {
118
113
  ' type="radio"\n' +
119
114
  '\n' +
120
115
  ' />\n' +
121
- ' ${@this@.getAttribute(\'checked\')}$\n' +
116
+ " ${@this@.getAttribute('checked')}$\n" +
122
117
  ' #innerHTML#\n' +
123
118
  '</label>',
124
- objFactory: (e,o,r2, counstructorParam) => {
125
- return DomRender.run({rootObject: new Radio.Radio(...counstructorParam), config: config});
119
+ objFactory: (e, o, r2, counstructorParam) => {
120
+ return DomRender.run({ rootObject: new Radio.Radio(...counstructorParam), config: config });
126
121
  }
127
- })
128
- },
129
- }
122
+ });
123
+ }
124
+ };
@@ -1,5 +1,4 @@
1
1
  import { attribute, ComponentBase } from '../ComponentBase';
2
- import { OtherData } from '../../lifecycle/OnChangeAttrRender';
3
2
  import { DomRender } from '../../DomRender';
4
3
  import { OnInitRender } from '../../lifecycle/OnInitRender';
5
4
  import { RawSet } from '../../rawsets/RawSet';
@@ -7,17 +6,16 @@ import type { DomRenderConfig } from '../../configs/DomRenderConfig';
7
6
  import { DomRenderNoProxy } from '../../decorators/DomRenderNoProxy';
8
7
  import { OnDestroyRenderParams } from '../../lifecycle/OnDestroyRender';
9
8
  import { Subscription } from '@dooboostore/core/message/Subscription';
10
- import { If } from '../if/If';
11
9
 
12
10
  export namespace Route {
13
11
  export const selector = 'dr-route';
14
12
  export type Attribute<D> = {
15
13
  value?: null | string;
16
- }
14
+ };
17
15
 
18
16
  abstract class CheckerBase<D> extends ComponentBase<Attribute<D>> implements OnInitRender {
19
17
  protected sw: boolean = false;
20
- @attribute({name: 'value'})
18
+ @attribute({ name: 'value' })
21
19
  value?: string;
22
20
  @DomRenderNoProxy
23
21
  private inputDomRenderConfig?: DomRenderConfig;
@@ -28,8 +26,8 @@ export namespace Route {
28
26
  this.inputDomRenderConfig = domRenderConfig;
29
27
  }
30
28
 
31
- onInitRender(param: any, rawSet: RawSet) {
32
- super.onInitRender(param, rawSet);
29
+ async onInitRender(param: any, rawSet: RawSet) {
30
+ await super.onInitRender(param, rawSet);
33
31
  this.routerSubscription = this.inputDomRenderConfig?.router?.observable.subscribe(it => {
34
32
  if (this.value && this.inputDomRenderConfig) {
35
33
  this.sw = this.check(this.inputDomRenderConfig);
@@ -55,7 +53,6 @@ export namespace Route {
55
53
  abstract check(config?: DomRenderConfig): boolean;
56
54
  }
57
55
 
58
-
59
56
  export class Match<D> extends CheckerBase<D> {
60
57
  check(config?: DomRenderConfig): boolean {
61
58
  return !!config?.router?.test(this.value);
@@ -75,17 +72,17 @@ export default {
75
72
  name: `${Route.selector}-match`,
76
73
  template: '<div dr-if="@this@.sw" dr-option-strip="true">#innerHTML#</div>',
77
74
  objFactory: (e, o, r2, counstructorParam) => {
78
- return DomRender.run({rootObject: new Route.Match(config), config: config});
75
+ return DomRender.run({ rootObject: new Route.Match(config), config: config });
79
76
  }
80
- })
77
+ });
81
78
  },
82
79
  regexp: (config?: DomRenderConfig) => {
83
80
  return RawSet.createComponentTargetElement({
84
81
  name: `${Route.selector}-regexp`,
85
82
  template: '<div dr-if="@this@.sw" dr-option-strip="true">#innerHTML#</div>',
86
83
  objFactory: (e, o, r2, counstructorParam) => {
87
- return DomRender.run({rootObject: new Route.Regexp(config), config: config});
84
+ return DomRender.run({ rootObject: new Route.Regexp(config), config: config });
88
85
  }
89
- })
90
- },
91
- }
86
+ });
87
+ }
88
+ };
@@ -1,11 +1,13 @@
1
- import { ComponentBase } from '../ComponentBase';
2
- import { DomRender, DomRenderRunConfig } from '../../DomRender';
1
+ import { ChildrenSet, ComponentBase } from '../ComponentBase';
2
+ import { DomRenderRunConfig } from '../../DomRender';
3
3
  import { RawSet } from '../../rawsets/RawSet';
4
4
  import { OtherData } from '../../lifecycle/OnChangeAttrRender';
5
5
  import { OnInitRender } from '../../lifecycle/OnInitRender';
6
6
  import { ComponentSet } from '../../components/ComponentSet';
7
7
  import { OnDestroyRenderParams } from '../../lifecycle/OnDestroyRender';
8
- import { ComponentRouterBase } from '../../components/ComponentRouterBase';
8
+ import { ComponentRouterBase, isOnCreatedOutletDebounce } from '../../components/ComponentRouterBase';
9
+ import { OnCreateRenderDataParams } from 'src/lifecycle';
10
+
9
11
  export namespace RouterOutlet {
10
12
  export const selector = 'dr-router-outlet';
11
13
  export type Attribute = {
@@ -13,6 +15,7 @@ export namespace RouterOutlet {
13
15
  if: boolean | null;
14
16
  createArguments: any[];
15
17
  onCreated?: (value: any) => void;
18
+ onCreatedDebounce?: (value: any) => void;
16
19
  onDestroyRender?: () => void;
17
20
  };
18
21
 
@@ -23,13 +26,17 @@ export namespace RouterOutlet {
23
26
 
24
27
  setValue(value: ComponentSet) {
25
28
  this.value = value;
29
+ // console.log('sssssssssss');
26
30
  }
27
31
 
28
- onInitRender(param: any, rawSet: RawSet) {
29
- super.onInitRender(param, rawSet);
32
+ async onInitRender(param: any, rawSet: RawSet) {
33
+ await super.onInitRender(param, rawSet);
30
34
  const c = this.getParentThis();
31
- if (c instanceof ComponentRouterBase){
32
- this.value = c.child
35
+ const userValue = this.getAttribute('value');
36
+ if (userValue) {
37
+ this.value = userValue;
38
+ } else if (c instanceof ComponentRouterBase) {
39
+ this.value = c.child;
33
40
  }
34
41
  // console.log('------',c);
35
42
  }
@@ -51,6 +58,20 @@ export namespace RouterOutlet {
51
58
  }
52
59
  }
53
60
 
61
+ onCreatedThisChild(child: any, data: OnCreateRenderDataParams) {
62
+ super.onCreatedThisChild(child, data);
63
+ // console.log('outlet--oncreatedThisChild',child);
64
+ }
65
+
66
+ onCreatedThisChildDebounce(childrenSet: ChildrenSet[]) {
67
+ super.onCreatedThisChildDebounce(childrenSet);
68
+ let parentThis = this.getParentThis();
69
+ // console.log('---', parentThis);
70
+ if (isOnCreatedOutletDebounce(parentThis)) {
71
+ parentThis.onCreatedOutletDebounce(this.value?.obj);
72
+ }
73
+ this.getAttribute('onCreatedDebounce')?.(this.value?.obj);
74
+ }
54
75
  created(component: any) {
55
76
  component ??= this.value?.obj;
56
77
  this.getAttribute('onCreated')?.(component);
@@ -60,7 +81,7 @@ export namespace RouterOutlet {
60
81
 
61
82
  export default {
62
83
  // TODO: 왜 이놈만 webpack에서 순환참조 에러나는지모르겠다.. 왜 이놈만.. 그래서 이렇게 하긴함.
63
- routerOutlet: (config?: DomRenderRunConfig, executer?: {run: (...data: any[])=>any}) => {
84
+ routerOutlet: (config?: DomRenderRunConfig, executer?: { run: (...data: any[]) => any }) => {
64
85
  return RawSet.createComponentTargetElement({
65
86
  name: RouterOutlet.selector,
66
87
  template:
@@ -1,7 +1,7 @@
1
1
  import { attribute, ChildrenSet, ComponentBase } from '../ComponentBase';
2
2
  import { DomRender, DomRenderRunConfig } from '../../DomRender';
3
3
  import { RawSet } from '../../rawsets/RawSet';
4
- import { OnCreateRenderData, OnCreateRenderDataParams } from '../../lifecycle/OnCreateRenderData';
4
+ import { OnCreateRenderData } from '../../lifecycle/OnCreateRenderData';
5
5
  import { OnInitRender } from '../../lifecycle/OnInitRender';
6
6
  import { OnDestroyRender } from '../../lifecycle/OnDestroyRender';
7
7
  import { EventUtils } from '@dooboostore/core-web/event/EventUtils';
@@ -11,6 +11,7 @@ import { DomRenderNoProxy } from '../../decorators/DomRenderNoProxy';
11
11
  import { OnCreateRender } from '../../lifecycle/OnCreateRender';
12
12
  import { DomRenderConfig } from '../../configs/DomRenderConfig';
13
13
  import { WindowUtils } from '@dooboostore/core-web/window/WindowUtils';
14
+ import { OnRawSetRenderedOtherData } from 'src/lifecycle';
14
15
 
15
16
  /** 사용법
16
17
  <dr-select class="card-select-container" changeSelected="${(data) => @this@.changeSelected(data)}$"> <!-- multiple attribute optional-->
@@ -121,8 +122,8 @@ export namespace Select {
121
122
  super({onlyParentType: SelectBody});
122
123
  }
123
124
 
124
- onInitRender(param: any, rawSet: RawSet) {
125
- super.onInitRender(param, rawSet);
125
+ async onInitRender(param: any, rawSet: RawSet) {
126
+ await super.onInitRender(param, rawSet);
126
127
  // console.log('-----', this.value, this.selected)
127
128
  // this.getElement()?.addEventListener('click', (e) => {
128
129
  // e.stopPropagation();
@@ -137,6 +138,10 @@ export namespace Select {
137
138
  // super.onCreatedThisChild(child, data);
138
139
  // this.updateStatus();
139
140
  // }
141
+
142
+ // async onRawSetRendered(rawSet:RawSet, otherData:OnRawSetRenderedOtherData):Promise<void>{
143
+ // await super.onRawSetRendered(rawSet, otherData);
144
+ // }
140
145
  onCreatedThisChildDebounce(childrenSet: ChildrenSet[]) {
141
146
  super.onCreatedThisChildDebounce(childrenSet);
142
147
  this.updateStatus();
@@ -210,22 +215,20 @@ export namespace Select {
210
215
 
211
216
  // --- Summary Component ---
212
217
  export class Summary extends ComponentBase implements OnInitRender {
213
- @attribute({name: 'class', converter: v => (v === '' ? null : v)}) public classAttr: string | null = null;
218
+ @attribute({ name: 'class', converter: v => (v === '' ? null : v) }) public classAttr: string | null = null;
214
219
  private options: Select.Option[] = [];
215
220
  private disabled: boolean = false;
216
221
  public element?: HTMLElement;
217
222
 
218
- constructor() {
219
- super({onlyParentType: Select});
220
- }
221
-
223
+ // constructor() {
224
+ // super({ onlyParentType: Select });
225
+ // }
222
226
 
223
227
  setDisabled(disabled: boolean) {
224
228
  this.disabled = disabled;
225
- this.getChildren(SummaryPlaceholder).forEach(it => it.hidden = true);
226
- this.getChildren(SummarySelected).forEach(it => it.hidden = true);
227
- this.getChildren(SummaryDisabled).forEach(it => it.hidden = false);
228
-
229
+ this.getChildren(SummaryPlaceholder).forEach(it => (it.hidden = true));
230
+ this.getChildren(SummarySelected).forEach(it => (it.hidden = true));
231
+ this.getChildren(SummaryDisabled).forEach(it => (it.hidden = false));
229
232
  }
230
233
 
231
234
  setOptions(options: Option[] = []): void {
@@ -234,22 +237,22 @@ export namespace Select {
234
237
  const selectedOptions = this.options.filter(it => it.selected && !it.disabled);
235
238
  if (!this.disabled) {
236
239
  if (selectedOptions.length > 0) {
237
- this.getChildren(SummaryPlaceholder).forEach(it => it.hidden = true);
240
+ this.getChildren(SummaryPlaceholder).forEach(it => (it.hidden = true));
238
241
  this.getChildren(SummarySelected).forEach(c => {
239
242
  c.setOptions(options);
240
243
  c.hidden = false;
241
244
  });
242
- this.getChildren(SummaryDisabled).forEach(it => it.hidden = true);
245
+ this.getChildren(SummaryDisabled).forEach(it => (it.hidden = true));
243
246
  } else {
244
- this.getChildren(SummaryDisabled).forEach(it => it.hidden = true);
245
- this.getChildren(SummaryPlaceholder).forEach(it => it.hidden = false);
246
- this.getChildren(SummarySelected).forEach(c => c.hidden = true);
247
+ this.getChildren(SummaryDisabled).forEach(it => (it.hidden = true));
248
+ this.getChildren(SummaryPlaceholder).forEach(it => (it.hidden = false));
249
+ this.getChildren(SummarySelected).forEach(c => (c.hidden = true));
247
250
  }
248
251
  }
249
252
  }
250
253
 
251
- onInitRender(param: any, rawSet: RawSet) {
252
- super.onInitRender(param, rawSet);
254
+ async onInitRender(param: any, rawSet: RawSet) {
255
+ await super.onInitRender(param, rawSet);
253
256
  // this.getElement()?.addEventListener('click', (e) => {
254
257
  // e.stopPropagation();
255
258
  // this.getParentThis<Select>().toggle();
@@ -261,19 +264,21 @@ export namespace Select {
261
264
  }
262
265
 
263
266
  updateView(hasSelection: boolean) {
264
- this.getChildren(SummaryPlaceholder).forEach(c => c.hidden = hasSelection);
265
- this.getChildren(SummarySelected).forEach(c => c.hidden = !hasSelection);
267
+ this.getChildren(SummaryPlaceholder).forEach(c => (c.hidden = hasSelection));
268
+ this.getChildren(SummarySelected).forEach(c => (c.hidden = !hasSelection));
266
269
  }
267
270
 
268
271
  // onCreatedThisChild(child: any, data: OnCreateRenderDataParams) {
269
272
  // super.onCreatedThisChild(child, data);
270
273
  // }
274
+ // async onRawSetRendered(rawSet: RawSet, otherData: OnRawSetRenderedOtherData): Promise<void> {
275
+ // await super.onRawSetRendered(rawSet, otherData);
276
+ // }
271
277
  onCreatedThisChildDebounce(childrenSet: ChildrenSet[]) {
272
278
  super.onCreatedThisChildDebounce(childrenSet);
273
- this.updateView(this.getParentThis<Select>()?.selectedValues.length > 0);
279
+ this.updateView(this.getParentThis<Select>()?.selectedValues?.length > 0);
274
280
  }
275
281
 
276
-
277
282
  onSummaryClick(element: HTMLElement, event: Event) {
278
283
  if (this.getParentThis<Select>()?.disabled) {
279
284
  event.stopPropagation();
@@ -285,31 +290,40 @@ export namespace Select {
285
290
 
286
291
 
287
292
  export class SelectBody extends ComponentBase<SelectBodyAttribute> {
288
- @attribute({name: 'class', converter: v => (v === '' ? null : v)}) public classAttr: string | null = null;
289
- @attribute({name: 'float'}) public float: 'bottom-left' | 'bottom-right' | 'top-left' | 'top-right' | null = null;
293
+ @attribute({ name: 'class', converter: v => (v === '' ? null : v) }) public classAttr: string | null = null;
294
+ @attribute({ name: 'float' }) public float: 'bottom-left' | 'bottom-right' | 'top-left' | 'top-right' | null = null;
290
295
 
291
296
  constructor() {
292
- super({onlyParentType: Select});
297
+ super({ onlyParentType: Select });
293
298
  }
294
299
 
295
- onCreatedThisChildDebounce(childrenSet: ChildrenSet[]) {
300
+ async onRawSetRendered(rawSet: RawSet, otherData: OnRawSetRenderedOtherData): Promise<void> {
301
+ await super.onRawSetRendered(rawSet, otherData);
302
+ // }
303
+ // onCreatedThisChildDebounce(childrenSet: ChildrenSet[]) {
304
+ // super.onCreatedThisChildDebounce(childrenSet);
296
305
  this.changeOptionState();
297
306
  }
298
307
 
299
308
  changeOptionState(option?: Option) {
300
309
  const options = this.getChildren(Option);
301
310
  const select = this.getParentThis<Select>();
311
+ // console.log('------opti',option, select);
302
312
  // // 멀티플이 아닐때에는 마지막 선택된값으로 처리
303
313
  if (!select.multiple) {
304
314
  // 내가 선택한게 있으면
305
315
  if (option && option.selected) {
306
- options.filter(it => it !== option).forEach(it => it.selected = false);
316
+ options.filter(it => it !== option).forEach(it => {
317
+ it.selected = false;
318
+ it.updateStatus();
319
+ });
307
320
  } else {
308
- const selectedOptions = options.filter(it => it.selected && !it.disabled)
321
+ const selectedOptions = options.filter(it => it.selected && !it.disabled);
309
322
  selectedOptions.forEach((opt, idx) => {
310
323
  const isLast = idx === selectedOptions.length - 1;
311
324
  if (!isLast) {
312
325
  opt.selected = false;
326
+ opt.updateStatus();
313
327
  }
314
328
  });
315
329
  }
@@ -366,8 +380,8 @@ export namespace Select {
366
380
 
367
381
  }
368
382
 
369
- onInitRender(param: any, rawSet: RawSet) {
370
- super.onInitRender(param, rawSet);
383
+ async onInitRender(param: any, rawSet: RawSet) {
384
+ await super.onInitRender(param, rawSet);
371
385
  // console.log('select onInitRender', this.multiple)
372
386
 
373
387
  if (ValidUtils.isBrowser() && this.rawSet?.dataSet.config.window) {
@@ -463,7 +477,7 @@ export default {
463
477
  name: Select.selector,
464
478
  styles:
465
479
  '.dr-select-container {\n' +
466
- ' /*position: relative;*/\n' +
480
+ ' position: relative;\n' +
467
481
  '\n' +
468
482
  '}\n' +
469
483
  '.dr-select-options-container {\n' +
@@ -535,7 +549,7 @@ export default {
535
549
  '</details>\n' +
536
550
  '<select hidden="hidden" name="${@this@.name}$" disabled="${@this@.disabled ? \'disabled\' : null}$" style="width: 1500px; height:500px" multiple>\n' +
537
551
  ' <option dr-for-of="@this@.options" value="${#it#.value}$" selected="${#it#.selected ? \'selected\' : null}$">#it# ${#it#.value}$</option>\n' +
538
- '</select',
552
+ '</select>',
539
553
  objFactory: (e, o, r2, constructorParam) => DomRender.run({ rootObject: new Select.Select(config), config })
540
554
  });
541
555
  },
@@ -5,6 +5,7 @@ import { OtherData } from '../../lifecycle/OnChangeAttrRender';
5
5
  import { OnInitRender } from '../../lifecycle/OnInitRender';
6
6
  import { ComponentSet } from '../../components/ComponentSet';
7
7
  import { OnDestroyRenderParams } from '../../lifecycle/OnDestroyRender';
8
+
8
9
  export namespace This {
9
10
  export const selector = 'dr-this';
10
11
  export type Attribute = {
@@ -13,15 +14,15 @@ export namespace This {
13
14
  createArguments: any[];
14
15
  onCreated?: (value: any) => void;
15
16
  onDestroyRender?: () => void;
16
- }
17
+ };
17
18
 
18
19
  export class This extends ComponentBase<Attribute> implements OnInitRender {
19
- private value?: ComponentSet
20
+ private value?: ComponentSet;
20
21
  private if?: boolean | null = null;
21
- private createArguments?: any[]
22
+ private createArguments?: any[];
22
23
 
23
- onInitRender(param: any, rawSet: RawSet) {
24
- super.onInitRender(param, rawSet);
24
+ async onInitRender(param: any, rawSet: RawSet) {
25
+ await super.onInitRender(param, rawSet);
25
26
  }
26
27
 
27
28
  onDestroyRender(data: OnDestroyRenderParams) {
@@ -41,8 +42,8 @@ export namespace This {
41
42
  }
42
43
  }
43
44
 
44
- created(component: any){
45
- component??=this.value?.obj;
45
+ created(component: any) {
46
+ component ??= this.value?.obj;
46
47
  this.getAttribute('onCreated')?.(component);
47
48
  }
48
49
  }
@@ -52,11 +53,11 @@ export default {
52
53
  this: (config?: DomRenderRunConfig) => {
53
54
  return RawSet.createComponentTargetElement({
54
55
  name: This.selector,
55
- template: '<div dr-this="@this@.value" dr-detect-option-if="@this@?.value && @this@?.if" dr-option-strip="true" dr-on-create:arguments="@this@.createArguments" dr-on-create:callback="@this@?.created?.($component)">#innerHTML#</div>',
56
+ template:
57
+ '<div dr-this="@this@.value" dr-detect-option-if="@this@?.value && @this@?.if" dr-option-strip="true" dr-on-create:arguments="@this@.createArguments" dr-on-create:callback="@this@?.created?.($component)">#innerHTML#</div>',
56
58
  objFactory: (e, o, r2, counstructorParam) => {
57
- return DomRender.run({rootObject: new This.This(...counstructorParam), config: config});
59
+ return DomRender.run({ rootObject: new This.This(...counstructorParam), config: config });
58
60
  }
59
- })
61
+ });
60
62
  }
61
- }
62
-
63
+ };
@@ -4,57 +4,21 @@ import { RawSet } from '../../rawsets/RawSet';
4
4
  import { OtherData } from '../../lifecycle/OnChangeAttrRender';
5
5
  import { OnDestroyRenderParams } from '../../lifecycle/OnDestroyRender';
6
6
 
7
-
8
7
  export namespace Timer {
9
8
  export const selector = 'dr-timer';
10
9
  export type Attribute = {
11
- timeSecond?: string;
12
- }
13
-
14
- // class RadioBase extends ComponentBase<Attribute> {
15
- // public hidden = true;
16
- //
17
- // }
18
-
19
- // @Component({
20
- // template: '<div dr-if="!@this@.hidden" dr-strip="true">#innerHTML#</div>',
21
- // styles: '',
22
- // selector: `${selector}.Checked`
23
- // })
24
- // export class RadioChecked extends RadioBase {
25
- // public name = 'Checked';
26
- //
27
- // constructor() {
28
- // super({ onlyParentType: Radio });
29
- // }
30
- // }
31
- //
32
- // @Component({
33
- // template: '<div dr-if="!@this@.hidden" dr-strip="true">#innerHTML#</div>',
34
- // styles: '',
35
- // selector: `${selector}.UnChecked`
36
- // })
37
- // export class UnChecked extends RadioBase {
38
- // public name = 'unChecked';
39
- //
40
- // constructor() {
41
- // super({ onlyParentType: Radio });
42
- // }
43
- // }
44
-
45
- // @Component({
46
- // template: '#innerHTML#',
47
- // selector: `${selector}`,
48
- // noStrip: true
49
- // })
10
+ value?: string;
11
+ interval?: number;
12
+ onCreated?: (timer: Timer) => void;
13
+ };
50
14
  export class Timer extends ComponentBase<Attribute> {
51
15
  private interval?: any;
52
- private timeSecond?: number;
16
+ private value?: number;
53
17
 
54
-
55
- onInitRender(param: any, rawSet: RawSet) {
56
- super.onInitRender(param, rawSet);
57
- console.log('---2', this.getElement()?.isConnected)
18
+ async onInitRender(param: any, rawSet: RawSet) {
19
+ await super.onInitRender(param, rawSet);
20
+ this.getAttribute('onCreated')?.(this);
21
+ // console.log('---2', this.getElement()?.isConnected)
58
22
  // const element = this.getElement();
59
23
  // if(element){
60
24
  // (element as any).component = this;
@@ -62,58 +26,58 @@ export namespace Timer {
62
26
  }
63
27
 
64
28
  isRunning() {
65
- return this.timeSecond !== undefined;
29
+ return this.value !== undefined;
66
30
  }
67
31
 
68
32
  start() {
69
- const timeSecond = this.getAttribute('timeSecond');
70
- if (timeSecond) {
71
- this.timeSecond = parseInt(timeSecond);
33
+ const timems = this.getAttribute('value');
34
+ if (timems) {
35
+ this.value = parseInt(timems);
36
+ const intervalValue = this.getAttribute('interval') ?? 1000;
37
+ console.log('int', this.value, intervalValue);
72
38
  this.interval = setInterval(() => {
73
- // console.log('--------->',this.timeSecond)
74
- if (this.timeSecond) {
75
- this.timeSecond--;
39
+ // console.log('--------->', this.value);
40
+ if (this.value) {
41
+ this.value--;
76
42
  } else {
77
43
  clearInterval(this.interval);
78
- this.timeSecond = undefined;
44
+ this.value = undefined;
79
45
  this.interval = undefined;
80
46
  }
81
- }, 1000)
47
+ }, intervalValue);
82
48
  }
83
49
  }
84
50
 
85
-
86
51
  stop() {
87
52
  if (this.interval) {
88
53
  clearInterval(this.interval);
89
54
  this.interval = undefined;
90
- this.timeSecond = undefined;
55
+ this.value = undefined;
91
56
  }
92
57
  }
93
58
 
94
59
  onChangeAttrRender(name: string, val: any, other: OtherData) {
95
60
  super.onChangeAttrRender(name, val, other);
96
- console.log('-----', name, val, this.getElement())
61
+ console.log('-----', name, val, this.getElement());
97
62
  }
98
63
 
99
64
  onDestroyRender(data: OnDestroyRenderParams) {
100
65
  super.onDestroyRender(data);
101
- if (this.interval){
66
+ if (this.interval) {
102
67
  clearInterval(this.interval);
103
68
  }
104
69
  }
105
70
  }
106
71
  }
107
72
 
108
-
109
73
  export default {
110
- choose: (config?: DomRenderRunConfig) => {
74
+ timer: (config?: DomRenderRunConfig) => {
111
75
  return RawSet.createComponentTargetElement({
112
76
  name: `${Timer.selector}`,
113
77
  template: '#innerHTML#',
114
- objFactory: (e,o,r2, counstructorParam) => {
115
- return DomRender.run({rootObject: new Timer.Timer(...counstructorParam), config: config});
78
+ objFactory: (e, o, r2, counstructorParam) => {
79
+ return DomRender.run({ rootObject: new Timer.Timer(...counstructorParam), config: config });
116
80
  }
117
- })
118
- },
119
- }
81
+ });
82
+ }
83
+ };