@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
@@ -1,3 +1,6 @@
1
+ import 'reflect-metadata';
2
+ export * as Core from '@dooboostore/core/bundle-entry';
3
+ export * as CoreWeb from '@dooboostore/core-web/bundle-entry';
1
4
  // export { DomRender, type DomRenderRunConfig, type CreateComponentParam } from './DomRender';
2
5
  // export { DomRenderProxy, getDomRenderConfig, getDomRenderOriginObject, getDomRenderProxy, isWrapProxyDomRenderProxy } from './DomRenderProxy';
3
6
 
@@ -9,10 +12,9 @@ export * from './events';
9
12
  export * from './iterators';
10
13
  export * from './lifecycle';
11
14
  export * from './messenger';
12
- // export * from './operators';
13
- export { Appender as AppenderArray, Dr, DrAppender, DrFor, DrForOf, DrForm, DrIf, DrInnerHTML, DrInnerText, DrPre, DrRepeat, DrStripElement, DrTargetAttr, DrTargetElement, DrTargetElementIsElement, DrThis, DrThisProperty, OperatorExecuter, OperatorExecuterAttrRequire } from './operators';
15
+ export * from './operators';
14
16
  export * from './rawsets';
15
17
  export * from './routers';
16
18
  export * from './types';
17
19
  export * from './validators';
18
- export * from './components';
20
+ export { drComponent , If, This, Appender as AppenderComponent, PromiseSwitch, Choose, CheckBox, Radio, Select, Timer, Details, Input, Route, RouterOutlet, A } from './components';
@@ -16,6 +16,7 @@ import { DomRenderConfig } from '../configs/DomRenderConfig';
16
16
  import { Subject } from '@dooboostore/core/message/Subject';
17
17
  import { debounceTime } from '@dooboostore/core/message/operators/debounceTime';
18
18
  import type { Subscription } from '@dooboostore/core/message/Subscription';
19
+ import { OnRawSetRendered, OnRawSetRenderedOtherData } from "../lifecycle/OnRawSetRendered";
19
20
 
20
21
 
21
22
  export const ATTRIBUTE_METADATA_KEY = Symbol('attribute');
@@ -36,6 +37,7 @@ export interface QueryMetadata {
36
37
  convert?: (e: Element) => any;
37
38
  onDestroy?: (componentInstance: any, element: Element) => void;
38
39
  refreshTime?: number; // milliseconds
40
+ refreshRawSetRendered?: boolean;
39
41
  }
40
42
 
41
43
  export interface EventMetadata {
@@ -44,6 +46,7 @@ export interface EventMetadata {
44
46
  methodName: string | symbol;
45
47
  onDestroy?: (componentInstance: any, element: Element) => void;
46
48
  refreshTime?: number; // milliseconds
49
+ refreshRawSetRendered?: boolean;
47
50
  }
48
51
 
49
52
  export function attribute(nameOrOptions?: string | { name?: string, converter?: (value: any | string | null) => any }): (target: object, propertyKey: string | symbol, descriptor?: PropertyDescriptor) => void {
@@ -74,7 +77,7 @@ export function attribute(nameOrOptions?: string | { name?: string, converter?:
74
77
  };
75
78
  }
76
79
 
77
- export function query(selectorOrOptions: string | { selector: string, convert?: (e: Element) => any, onDestroy?: (componentInstance: any, element: Element) => void, refreshIntervalTime?: number }): (target: object, propertyKey: string | symbol, descriptor?: PropertyDescriptor) => void {
80
+ export function query(selectorOrOptions: string | { selector: string, convert?: (e: Element) => any, onDestroy?: (componentInstance: any, element: Element) => void, refreshIntervalTime?: number, refreshRawSetRendered?: boolean }): (target: object, propertyKey: string | symbol, descriptor?: PropertyDescriptor) => void {
78
81
  return (target: object, propertyKey: string | symbol, descriptor?: PropertyDescriptor) => {
79
82
  const queries = ReflectUtils.getMetadata<QueryMetadata[]>(QUERY_METADATA_KEY, target.constructor) || [];
80
83
 
@@ -82,7 +85,8 @@ export function query(selectorOrOptions: string | { selector: string, convert?:
82
85
  let convert: ((e: Element) => any) | undefined;
83
86
  let onDestroy: ((componentInstance: any, element: Element) => void) | undefined;
84
87
  let refreshTime: number | undefined;
85
-
88
+ let refreshRawSetRendered: boolean | undefined;
89
+
86
90
  if (typeof selectorOrOptions === 'string') {
87
91
  selector = selectorOrOptions;
88
92
  } else {
@@ -90,6 +94,7 @@ export function query(selectorOrOptions: string | { selector: string, convert?:
90
94
  convert = selectorOrOptions.convert;
91
95
  onDestroy = selectorOrOptions.onDestroy;
92
96
  refreshTime = selectorOrOptions.refreshIntervalTime;
97
+ refreshRawSetRendered = selectorOrOptions.refreshRawSetRendered;
93
98
  }
94
99
 
95
100
  const queryMetadata: QueryMetadata = {
@@ -98,7 +103,8 @@ export function query(selectorOrOptions: string | { selector: string, convert?:
98
103
  isMethod: !!descriptor,
99
104
  convert: convert,
100
105
  onDestroy: onDestroy,
101
- refreshTime: refreshTime
106
+ refreshTime: refreshTime,
107
+ refreshRawSetRendered
102
108
  };
103
109
 
104
110
  queries.push(queryMetadata);
@@ -106,7 +112,7 @@ export function query(selectorOrOptions: string | { selector: string, convert?:
106
112
  };
107
113
  }
108
114
 
109
- export function event(options: { query: string, name: string, onDestroy?: (componentInstance: any, element: Element) => void, refreshTime?: number }): MethodDecorator {
115
+ export function event(options: { query: string, name: string, onDestroy?: (componentInstance: any, element: Element) => void, refreshTime?: number, refreshRawSetRendered?: boolean }): MethodDecorator {
110
116
  return (target: object, propertyKey: string | symbol, descriptor: PropertyDescriptor) => {
111
117
  const events = ReflectUtils.getMetadata<EventMetadata[]>(EVENT_METADATA_KEY, target.constructor) || [];
112
118
 
@@ -115,7 +121,8 @@ export function event(options: { query: string, name: string, onDestroy?: (compo
115
121
  eventName: options.name,
116
122
  methodName: propertyKey,
117
123
  onDestroy: options.onDestroy,
118
- refreshTime: options.refreshTime
124
+ refreshTime: options.refreshTime,
125
+ refreshRawSetRendered: options.refreshRawSetRendered
119
126
  };
120
127
 
121
128
  events.push(eventMetadata);
@@ -128,7 +135,7 @@ export type ComponentBaseConfig = { onlyParentType?: ConstructorType<any>[] | Co
128
135
 
129
136
  export type ChildrenSet = { instance: any, data: OnCreateRenderDataParams };
130
137
 
131
- export class ComponentBase<T = any, C extends ComponentBaseConfig = ComponentBaseConfig> implements OnChangeAttrRender, OnCreateRenderData, OnCreatedThisChild, OnDrThisBind, OnDrThisUnBind, OnInitRender, OnDestroyRender {
138
+ export class ComponentBase<T = any, C extends ComponentBaseConfig = ComponentBaseConfig> implements OnChangeAttrRender, OnCreateRenderData, OnCreatedThisChild, OnDrThisBind, OnDrThisUnBind, OnInitRender, OnDestroyRender, OnRawSetRendered {
132
139
  @DomRenderNoProxy
133
140
  private _rawSet?: RawSet;
134
141
  @DomRenderNoProxy
@@ -238,11 +245,11 @@ export class ComponentBase<T = any, C extends ComponentBaseConfig = ComponentBas
238
245
  const paramTypes = ReflectUtils.getParameterTypes(this, propertyKey);
239
246
  if (paramTypes && paramTypes.length > 0 && paramTypes[0] === Array) {
240
247
  // For array methods, pass only new elements
241
- method.call(this, processedNewElements, processedElements);
248
+ method.call(this, processedNewElements, {all: processedElements});
242
249
  } else {
243
250
  // For single element methods, pass first new element
244
251
  if (processedNewElements.length > 0) {
245
- method.call(this, processedNewElements[0]);
252
+ method.call(this, processedNewElements[0], {all: processedElements, newAll: processedNewElements});
246
253
  }
247
254
  }
248
255
  }
@@ -366,6 +373,21 @@ export class ComponentBase<T = any, C extends ComponentBaseConfig = ComponentBas
366
373
  this._refreshTimers.clear();
367
374
  }
368
375
 
376
+ async onRawSetRendered(rawSet: RawSet, otherData: OnRawSetRenderedOtherData): Promise<void> {
377
+ const queries = ReflectUtils.getMetadata<QueryMetadata[]>(QUERY_METADATA_KEY, this.constructor);
378
+ if (queries) {
379
+ queries.filter(it => it.refreshRawSetRendered).forEach(queryInfo => {
380
+ this._updateQueryBinding(queryInfo, rawSet, true);
381
+ });
382
+ }
383
+
384
+ const events = ReflectUtils.getMetadata<EventMetadata[]>(EVENT_METADATA_KEY, this.constructor);
385
+ if (events) {
386
+ events.filter(it => it.refreshRawSetRendered).forEach(eventInfo => {
387
+ this._updateEventBinding(eventInfo, rawSet, true);
388
+ });
389
+ }
390
+ }
369
391
  /**
370
392
  * Manually refresh all query and event decorators
371
393
  * Useful when DOM elements are dynamically added/removed and you want to update bindings
@@ -556,7 +578,7 @@ export class ComponentBase<T = any, C extends ComponentBaseConfig = ComponentBas
556
578
  }
557
579
 
558
580
  getFirstChild<T>(type: ConstructorType<T>): T | undefined {
559
- return this._children.find(it => it instanceof type)?.instance;
581
+ return this._children.find(it => it.instance instanceof type)?.instance;
560
582
  }
561
583
 
562
584
  getParentThis<P>():P {
@@ -587,7 +609,7 @@ export class ComponentBase<T = any, C extends ComponentBaseConfig = ComponentBas
587
609
 
588
610
  // TODO: rawSet isConnected로 체크해서 들어가있는것만 처리되도록 또는 이미들어가있는것도 뺴야될것같은데.. 적용하긴했음..지켜봐야될듯.
589
611
  onCreatedThisChild(child: any, data: OnCreateRenderDataParams) {
590
- // console.log('------------------------',child, data, data.render?.rawSet?.isConnected)
612
+ // console.log('onCreatedThisChild------------------------',child, data, data.render?.rawSet?.isConnected)
591
613
  const n = [...this._children];
592
614
  n.push({instance:child, data});
593
615
  this._children = n.filter(it=>it.data.render?.rawSet?.isConnected)
@@ -641,7 +663,7 @@ export class ComponentBase<T = any, C extends ComponentBaseConfig = ComponentBas
641
663
  }
642
664
  }
643
665
 
644
- onInitRender(param: any, rawSet: RawSet) {
666
+ async onInitRender(param: any, rawSet: RawSet) {
645
667
  this.createChildrenDebounceSubscription = this.childrenSetSubject.pipe(debounceTime(this.componentConfig?.createChildrenDebounce??0)).subscribe(it => {
646
668
  this.onCreatedThisChildDebounce(it);
647
669
  });
@@ -1,8 +1,19 @@
1
1
  import { ChildrenSet, ComponentBase, ComponentBaseConfig } from './ComponentBase';
2
2
  import { ComponentSet } from './ComponentSet';
3
3
  import { isOnDrThisUnBind } from '../lifecycle/dr-this/OnDrThisUnBind';
4
+ import {RouterOutlet} from '../components/router/RouterOutlet';
4
5
 
6
+ export interface OnCreatedOutlet {
7
+ onCreatedOutlet(child: any): void;
8
+ }
9
+ export const isOnCreatedOutlet = (obj: any): obj is OnCreatedOutlet =>
10
+ typeof obj?.onCreatedOutlet === 'function';
5
11
 
12
+ export interface OnCreatedOutletDebounce {
13
+ onCreatedOutletDebounce(child: any): void;
14
+ }
15
+ export const isOnCreatedOutletDebounce = (obj: any): obj is OnCreatedOutletDebounce =>
16
+ typeof obj?.onCreatedOutletDebounce === 'function';
6
17
  export type ComponentRouterBaseConfig = ComponentBaseConfig & { sameRouteNoApply?: boolean };
7
18
 
8
19
  export abstract class ComponentRouterBase<T = any>
@@ -19,17 +30,21 @@ export abstract class ComponentRouterBase<T = any>
19
30
  // return this._child;
20
31
  // }
21
32
 
33
+
22
34
  setChild(child: ComponentSet) {
23
- // console.log('setChild!!', child, (this as any).name)
35
+ console.log('setChild!!', child, (this as any).name)
24
36
  if (child) {
25
37
  this.child = child;
26
38
  } else {
27
39
  this.child = undefined;
28
40
  }
41
+ const routerOutletChildren = this.getChildren(RouterOutlet.RouterOutlet);
42
+ routerOutletChildren.forEach(it => {
43
+ it.setValue(this.child)
44
+ })
29
45
  }
30
46
 
31
47
  onDrThisUnBind(): void {
32
- // console.log('--ComponentRouterBase--onDrThisUnBind-')
33
48
  super.onDrThisUnBind();
34
49
  if (this.child && isOnDrThisUnBind(this.child?.obj)) {
35
50
  this.child.obj.onDrThisUnBind();
@@ -33,13 +33,8 @@ export namespace Appender {
33
33
  // test() {
34
34
  // console.log('t', this.getAttribute('appender'))
35
35
  // }
36
- onInitRender(param: any, rawSet: RawSet) {
37
- // console.log('--onInitRender onInitRender')
38
- super.onInitRender(param, rawSet);
39
36
 
40
37
 
41
- }
42
-
43
38
  // push(...data:D[]) {
44
39
  // console.log('push/////', data);
45
40
  // this.appender.push(...data);
@@ -2,22 +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
7
  export namespace CheckBox {
10
8
  export const selector = 'dr-checkbox';
11
9
  export type Attribute = {
12
10
  class?: string;
13
- }
11
+ };
14
12
  export type ChangeOption = { type: 'initialize' | 'event' | 'attributeChange' };
15
13
  export type WrapAttribute = {
16
14
  class?: string;
17
15
  name?: string;
18
16
  checked?: boolean;
19
- change?: (checked: boolean, option: ChangeOption) => void
20
- }
17
+ change?: (checked: boolean, option: ChangeOption) => void;
18
+ };
21
19
 
22
20
  class CheckBoxBase extends ComponentBase<Attribute> {
23
21
  public hidden = true;
@@ -32,7 +30,7 @@ export namespace CheckBox {
32
30
  public name = 'checked';
33
31
 
34
32
  constructor() {
35
- super({onlyParentType: CheckBox});
33
+ super({ onlyParentType: CheckBox });
36
34
  }
37
35
  }
38
36
 
@@ -45,7 +43,7 @@ export namespace CheckBox {
45
43
  public name = 'unChecked';
46
44
 
47
45
  constructor() {
48
- super({onlyParentType: CheckBox});
46
+ super({ onlyParentType: CheckBox });
49
47
  }
50
48
  }
51
49
 
@@ -58,7 +56,8 @@ export namespace CheckBox {
58
56
  private checked = false;
59
57
  private inputElement?: HTMLInputElement;
60
58
 
61
- change(option: ChangeOption, checked?: boolean) { checked = checked ?? this.checked;
59
+ change(option: ChangeOption, checked?: boolean) {
60
+ checked = checked ?? this.checked;
62
61
  this.checked = checked;
63
62
  this.setChildrenHidden(checked);
64
63
  this.getAttribute('change')?.(checked, option);
@@ -82,7 +81,7 @@ export namespace CheckBox {
82
81
  // console.log('---cr', element)
83
82
  this.inputElement = element;
84
83
  this.inputElement.checked = !!this.getAttribute('checked');
85
- this.change({type: 'initialize'}, !!this.getAttribute('checked'));
84
+ this.change({ type: 'initialize' }, !!this.getAttribute('checked'));
86
85
  }
87
86
 
88
87
  onChangeAttrRender(name: string, val: any, other: OtherData) {
@@ -90,38 +89,36 @@ export namespace CheckBox {
90
89
  // console.log('Checkbox ChangeAttr------', name, val, this.inputElement)
91
90
  if (this.inputElement && this.getAttribute('checked') !== this.checked) {
92
91
  this.inputElement.checked = !!this.getAttribute('checked');
93
- this.change({type: 'attributeChange'}, !!this.getAttribute('checked'));
92
+ this.change({ type: 'attributeChange' }, !!this.getAttribute('checked'));
94
93
  }
95
94
  }
96
-
97
95
  }
98
96
  }
99
97
 
100
-
101
-
102
98
  export default {
103
99
  checkBoxChecked: (config?: DomRenderRunConfig) => {
104
100
  return RawSet.createComponentTargetElement({
105
101
  name: `${CheckBox.selector}-checked`,
106
102
  template: '<div dr-if="!@this@.hidden" dr-option-strip="true">#innerHTML#</div>',
107
- objFactory: (e,o,r2, counstructorParam) => {
108
- return DomRender.run({rootObject: new CheckBox.Checked(), config: config});
103
+ objFactory: (e, o, r2, counstructorParam) => {
104
+ return DomRender.run({ rootObject: new CheckBox.Checked(), config: config });
109
105
  }
110
- })
106
+ });
111
107
  },
112
108
  checkBoxUnchecked: (config?: DomRenderRunConfig) => {
113
109
  return RawSet.createComponentTargetElement({
114
110
  name: `${CheckBox.selector}-unchecked`,
115
111
  template: '<div dr-if="!@this@.hidden" dr-option-strip="true" >#innerHTML#</div>',
116
- objFactory: (e,o,r2, counstructorParam) => {
117
- return DomRender.run({rootObject: new CheckBox.UnChecked(), config: config});
112
+ objFactory: (e, o, r2, counstructorParam) => {
113
+ return DomRender.run({ rootObject: new CheckBox.UnChecked(), config: config });
118
114
  }
119
- })
115
+ });
120
116
  },
121
117
  checkBox: (config?: DomRenderRunConfig) => {
122
118
  return RawSet.createComponentTargetElement({
123
119
  name: `${CheckBox.selector}`,
124
- template: '<label class="${@this@.getAttribute(\'class\')}$">\n' +
120
+ template:
121
+ '<label class="${@this@.getAttribute(\'class\')}$">\n' +
125
122
  ' <input\n' +
126
123
  ' name="${@this@.getAttribute(\'name\')}$"\n' +
127
124
  ' dr-on-init="@this@.onInitInputElement($element)"\n' +
@@ -129,9 +126,9 @@ export default {
129
126
  ' type="checkbox" hidden="hidden"/>\n' +
130
127
  ' #innerHTML#\n' +
131
128
  '</label>',
132
- objFactory: (e,o,r2, counstructorParam) => {
133
- return DomRender.run({rootObject: new CheckBox.CheckBox(...counstructorParam), config: config});
129
+ objFactory: (e, o, r2, counstructorParam) => {
130
+ return DomRender.run({ rootObject: new CheckBox.CheckBox(...counstructorParam), config: config });
134
131
  }
135
- })
136
- },
137
- }
132
+ });
133
+ }
134
+ };
@@ -2,18 +2,16 @@ 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
7
  export namespace Choose {
10
8
  export const selector = 'dr-choose';
11
9
  export type Attribute<D> = {
12
10
  data: D;
13
- }
11
+ };
14
12
  export type WhenAttribute<D> = {
15
13
  test: (data?: D | null) => boolean;
16
- }
14
+ };
17
15
 
18
16
  class ChildOtherWiseBase<A> extends ComponentBase<A> {
19
17
  public hidden = true;
@@ -25,18 +23,17 @@ export namespace Choose {
25
23
 
26
24
  export class When<D> extends ChildBase<D> {
27
25
  constructor() {
28
- super({onlyParentType: Choose<D>});
26
+ super({ onlyParentType: Choose<D> });
29
27
  }
30
28
  }
31
29
 
32
30
  export class OtherWise<D> extends ChildBase<D> {
33
31
  constructor() {
34
- super({onlyParentType: Choose<D>});
32
+ super({ onlyParentType: Choose<D> });
35
33
  }
36
34
  }
37
35
 
38
36
  export class Choose<D> extends ComponentBase<Attribute<D>> {
39
-
40
37
  private choose?: When<D> | OtherWise<D>;
41
38
 
42
39
  onCreatedThisChild(child: any, data: OnCreateRenderDataParams) {
@@ -48,9 +45,10 @@ export namespace Choose {
48
45
  super.onChangeAttrRender(name, value, other);
49
46
  if (this.equalsAttributeName(name, 'data')) {
50
47
  this.choose = undefined;
51
- const children = this.getChildren([When, OtherWise]).sort((a, b) => (a instanceof OtherWise ? 1 : 0) - (b instanceof OtherWise ? 1 : 0));
48
+ const children = this.getChildren([When, OtherWise]).sort(
49
+ (a, b) => (a instanceof OtherWise ? 1 : 0) - (b instanceof OtherWise ? 1 : 0)
50
+ );
52
51
  children.forEach(it => this.setChange(it as any));
53
-
54
52
  }
55
53
  }
56
54
 
@@ -58,7 +56,9 @@ export namespace Choose {
58
56
  child.data = this.getAttribute('data') as any;
59
57
  // when.hidden = true;
60
58
 
59
+ console.log('eeeeeee?', child, child.getAttribute('test'), this.getAttribute('data'));
61
60
  if (!this.choose && child instanceof When && child.getAttribute('test')?.(this.getAttribute('data'))) {
61
+ console.log('eeeeeee?2');
62
62
  // console.log('------------', child.attribute?.test?.(this.attribute?.data))
63
63
  this.choose = child;
64
64
  if (child.hidden) {
@@ -69,43 +69,44 @@ export namespace Choose {
69
69
  child.hidden = true;
70
70
  }
71
71
 
72
+ console.log('eeeeeee?3');
72
73
  if (!this.choose && child instanceof OtherWise) {
73
74
  this.choose = child;
74
75
  if (child.hidden) {
75
76
  child.hidden = false;
76
77
  }
77
78
  }
79
+ console.log('eeeeeee?34');
78
80
  }
79
81
  }
80
82
  }
81
83
 
82
-
83
84
  export default {
84
85
  chooseWhen: (config?: DomRenderRunConfig) => {
85
86
  return RawSet.createComponentTargetElement({
86
87
  name: `${Choose.selector}-when`,
87
88
  template: '<div dr-if="!@this@.hidden" dr-option-strip="true" >#innerHTML#</div>',
88
89
  objFactory: (e, o, r2, counstructorParam) => {
89
- return DomRender.run({rootObject: new Choose.When(), config: config});
90
+ return DomRender.run({ rootObject: new Choose.When(), config: config });
90
91
  }
91
- })
92
+ });
92
93
  },
93
94
  chooseOtherWise: (config?: DomRenderRunConfig) => {
94
95
  return RawSet.createComponentTargetElement({
95
96
  name: `${Choose.selector}-other-wise`,
96
97
  template: '<div dr-if="!@this@.hidden" dr-option-strip="true" >#innerHTML#</div>',
97
98
  objFactory: (e, o, r2, counstructorParam) => {
98
- return DomRender.run({rootObject: new Choose.OtherWise(), config: config});
99
+ return DomRender.run({ rootObject: new Choose.OtherWise(), config: config });
99
100
  }
100
- })
101
+ });
101
102
  },
102
103
  choose: (config?: DomRenderRunConfig) => {
103
104
  return RawSet.createComponentTargetElement({
104
105
  name: `${Choose.selector}`,
105
106
  template: '#innerHTML#',
106
107
  objFactory: (e, o, r2, counstructorParam) => {
107
- return DomRender.run({rootObject: new Choose.Choose(...counstructorParam), config: config});
108
+ return DomRender.run({ rootObject: new Choose.Choose(...counstructorParam), config: config });
108
109
  }
109
- })
110
- },
111
- }
110
+ });
111
+ }
112
+ };