@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.
- package/README.MD +27 -1451
- package/dist/cjs/DomRender.js +41 -26
- package/dist/cjs/DomRender.js.map +2 -2
- package/dist/cjs/DomRenderProxy.js +134 -62
- package/dist/cjs/DomRenderProxy.js.map +2 -2
- package/dist/cjs/bundle-entry.js +32 -21
- package/dist/cjs/bundle-entry.js.map +2 -2
- package/dist/cjs/components/ComponentBase.js +24 -6
- package/dist/cjs/components/ComponentBase.js.map +2 -2
- package/dist/cjs/components/ComponentRouterBase.js +11 -1
- package/dist/cjs/components/ComponentRouterBase.js.map +2 -2
- package/dist/cjs/components/appender/Appender.js +0 -3
- package/dist/cjs/components/appender/Appender.js.map +2 -2
- package/dist/cjs/components/checkbox/CheckBox.js.map +2 -2
- package/dist/cjs/components/choose/Choose.js +7 -1
- package/dist/cjs/components/choose/Choose.js.map +2 -2
- package/dist/cjs/components/details/Details.js +2 -2
- package/dist/cjs/components/details/Details.js.map +2 -2
- package/dist/cjs/components/forOf/ForOf.js.map +2 -2
- package/dist/cjs/components/if/If.js +2 -2
- package/dist/cjs/components/if/If.js.map +2 -2
- package/dist/cjs/components/input/Input.js +2 -2
- package/dist/cjs/components/input/Input.js.map +2 -2
- package/dist/cjs/components/promise/PromiseSwitch.js +6 -6
- package/dist/cjs/components/promise/PromiseSwitch.js.map +2 -2
- package/dist/cjs/components/radio/Radio.js.map +2 -2
- package/dist/cjs/components/router/Route.js +2 -2
- package/dist/cjs/components/router/Route.js.map +2 -2
- package/dist/cjs/components/router/RouterOutlet.js +17 -3
- package/dist/cjs/components/router/RouterOutlet.js.map +2 -2
- package/dist/cjs/components/select/Select.js +26 -12
- package/dist/cjs/components/select/Select.js.map +2 -2
- package/dist/cjs/components/this/This.js +2 -2
- package/dist/cjs/components/this/This.js.map +2 -2
- package/dist/cjs/components/timer/Timer.js +15 -13
- package/dist/cjs/components/timer/Timer.js.map +2 -2
- package/dist/cjs/decorators/DomRenderNoProxy.js +2 -1
- package/dist/cjs/decorators/DomRenderNoProxy.js.map +2 -2
- package/dist/cjs/events/EventManager.js +9 -2
- package/dist/cjs/events/EventManager.js.map +2 -2
- package/dist/cjs/lifecycle/OnInitRender.js.map +1 -1
- package/dist/cjs/lifecycle/OnRawSetRendered.js +26 -0
- package/dist/cjs/lifecycle/OnRawSetRendered.js.map +7 -0
- package/dist/cjs/lifecycle/index.js +1 -0
- package/dist/cjs/lifecycle/index.js.map +2 -2
- package/dist/cjs/operators/DrForOf.js +24 -11
- package/dist/cjs/operators/DrForOf.js.map +2 -2
- package/dist/cjs/operators/DrIf.js +1 -2
- package/dist/cjs/operators/DrIf.js.map +2 -2
- package/dist/cjs/operators/DrInnerText.js +2 -2
- package/dist/cjs/operators/DrInnerText.js.map +2 -2
- package/dist/cjs/operators/DrTargetElement.js +2 -0
- package/dist/cjs/operators/DrTargetElement.js.map +2 -2
- package/dist/cjs/operators/OperatorExecuter.js +1 -2
- package/dist/cjs/operators/OperatorExecuter.js.map +2 -2
- package/dist/cjs/package.json +5 -0
- package/dist/cjs/rawsets/RawSet.js +392 -115
- package/dist/cjs/rawsets/RawSet.js.map +3 -3
- package/dist/cjs/rawsets/Render.js.map +1 -1
- package/dist/cjs/routers/PathRouter.js +13 -7
- package/dist/cjs/routers/PathRouter.js.map +2 -2
- package/dist/cjs/routers/Router.js +76 -36
- package/dist/cjs/routers/Router.js.map +3 -3
- package/dist/esm/DomRender.js +41 -26
- package/dist/esm/DomRender.js.map +2 -2
- package/dist/esm/DomRenderProxy.js +134 -62
- package/dist/esm/DomRenderProxy.js.map +2 -2
- package/dist/esm/bundle-entry.js +22 -21
- package/dist/esm/bundle-entry.js.map +2 -2
- package/dist/esm/components/ComponentBase.js +24 -6
- package/dist/esm/components/ComponentBase.js.map +2 -2
- package/dist/esm/components/ComponentRouterBase.js +11 -1
- package/dist/esm/components/ComponentRouterBase.js.map +2 -2
- package/dist/esm/components/appender/Appender.js +0 -3
- package/dist/esm/components/appender/Appender.js.map +2 -2
- package/dist/esm/components/checkbox/CheckBox.js.map +2 -2
- package/dist/esm/components/choose/Choose.js +7 -1
- package/dist/esm/components/choose/Choose.js.map +2 -2
- package/dist/esm/components/details/Details.js +2 -2
- package/dist/esm/components/details/Details.js.map +2 -2
- package/dist/esm/components/forOf/ForOf.js.map +2 -2
- package/dist/esm/components/if/If.js +2 -2
- package/dist/esm/components/if/If.js.map +2 -2
- package/dist/esm/components/input/Input.js +2 -2
- package/dist/esm/components/input/Input.js.map +2 -2
- package/dist/esm/components/promise/PromiseSwitch.js +6 -6
- package/dist/esm/components/promise/PromiseSwitch.js.map +2 -2
- package/dist/esm/components/radio/Radio.js.map +2 -2
- package/dist/esm/components/router/Route.js +2 -2
- package/dist/esm/components/router/Route.js.map +2 -2
- package/dist/esm/components/router/RouterOutlet.js +18 -4
- package/dist/esm/components/router/RouterOutlet.js.map +2 -2
- package/dist/esm/components/select/Select.js +26 -12
- package/dist/esm/components/select/Select.js.map +2 -2
- package/dist/esm/components/this/This.js +2 -2
- package/dist/esm/components/this/This.js.map +2 -2
- package/dist/esm/components/timer/Timer.js +15 -13
- package/dist/esm/components/timer/Timer.js.map +2 -2
- package/dist/esm/decorators/DomRenderNoProxy.js +2 -1
- package/dist/esm/decorators/DomRenderNoProxy.js.map +2 -2
- package/dist/esm/events/EventManager.js +9 -2
- package/dist/esm/events/EventManager.js.map +2 -2
- package/dist/esm/lifecycle/OnInitRender.js.map +1 -1
- package/dist/esm/lifecycle/OnRawSetRendered.js +7 -0
- package/dist/esm/lifecycle/OnRawSetRendered.js.map +7 -0
- package/dist/esm/lifecycle/index.js +1 -0
- package/dist/esm/lifecycle/index.js.map +2 -2
- package/dist/esm/operators/DrForOf.js +24 -11
- package/dist/esm/operators/DrForOf.js.map +2 -2
- package/dist/esm/operators/DrIf.js +1 -2
- package/dist/esm/operators/DrIf.js.map +2 -2
- package/dist/esm/operators/DrInnerText.js +2 -2
- package/dist/esm/operators/DrInnerText.js.map +2 -2
- package/dist/esm/operators/DrTargetElement.js +2 -0
- package/dist/esm/operators/DrTargetElement.js.map +2 -2
- package/dist/esm/operators/OperatorExecuter.js +1 -2
- package/dist/esm/operators/OperatorExecuter.js.map +2 -2
- package/dist/esm/rawsets/RawSet.js +392 -115
- package/dist/esm/rawsets/RawSet.js.map +3 -3
- package/dist/esm/routers/PathRouter.js +13 -7
- package/dist/esm/routers/PathRouter.js.map +2 -2
- package/dist/esm/routers/Router.js +76 -36
- package/dist/esm/routers/Router.js.map +3 -3
- package/dist/esm-bundle/dooboostore-dom-render.esm.js +14023 -6402
- package/dist/esm-bundle/dooboostore-dom-render.esm.js.map +4 -4
- package/dist/types/DomRender.d.ts +11 -5
- package/dist/types/DomRender.d.ts.map +1 -1
- package/dist/types/DomRenderProxy.d.ts +2 -2
- package/dist/types/DomRenderProxy.d.ts.map +1 -1
- package/dist/types/bundle-entry.d.ts +5 -2
- package/dist/types/bundle-entry.d.ts.map +1 -1
- package/dist/types/components/ComponentBase.d.ts +8 -2
- package/dist/types/components/ComponentBase.d.ts.map +1 -1
- package/dist/types/components/ComponentRouterBase.d.ts +8 -0
- package/dist/types/components/ComponentRouterBase.d.ts.map +1 -1
- package/dist/types/components/appender/Appender.d.ts +0 -2
- package/dist/types/components/appender/Appender.d.ts.map +1 -1
- package/dist/types/components/checkbox/CheckBox.d.ts.map +1 -1
- package/dist/types/components/choose/Choose.d.ts.map +1 -1
- package/dist/types/components/details/Details.d.ts +1 -1
- package/dist/types/components/details/Details.d.ts.map +1 -1
- package/dist/types/components/forOf/ForOf.d.ts.map +1 -1
- package/dist/types/components/if/If.d.ts +1 -1
- package/dist/types/components/if/If.d.ts.map +1 -1
- package/dist/types/components/index.d.ts +2 -1
- package/dist/types/components/index.d.ts.map +1 -1
- package/dist/types/components/input/Input.d.ts +1 -1
- package/dist/types/components/input/Input.d.ts.map +1 -1
- package/dist/types/components/promise/PromiseSwitch.d.ts +1 -1
- package/dist/types/components/promise/PromiseSwitch.d.ts.map +1 -1
- package/dist/types/components/radio/Radio.d.ts.map +1 -1
- package/dist/types/components/router/Route.d.ts +1 -1
- package/dist/types/components/router/Route.d.ts.map +1 -1
- package/dist/types/components/router/RouterOutlet.d.ts +6 -2
- package/dist/types/components/router/RouterOutlet.d.ts.map +1 -1
- package/dist/types/components/select/Select.d.ts +5 -5
- package/dist/types/components/select/Select.d.ts.map +1 -1
- package/dist/types/components/this/This.d.ts +1 -1
- package/dist/types/components/this/This.d.ts.map +1 -1
- package/dist/types/components/timer/Timer.d.ts +6 -4
- package/dist/types/components/timer/Timer.d.ts.map +1 -1
- package/dist/types/decorators/DomRenderNoProxy.d.ts.map +1 -1
- package/dist/types/events/EventManager.d.ts +8 -0
- package/dist/types/events/EventManager.d.ts.map +1 -1
- package/dist/types/index.d.ts +0 -100
- package/dist/types/lifecycle/OnInitRender.d.ts +1 -1
- package/dist/types/lifecycle/OnInitRender.d.ts.map +1 -1
- package/dist/types/lifecycle/OnRawSetRendered.d.ts +10 -0
- package/dist/types/lifecycle/OnRawSetRendered.d.ts.map +1 -0
- package/dist/types/lifecycle/index.d.ts +1 -0
- package/dist/types/lifecycle/index.d.ts.map +1 -1
- package/dist/types/operators/DrForOf.d.ts.map +1 -1
- package/dist/types/operators/DrInnerText.d.ts.map +1 -1
- package/dist/types/operators/DrTargetElement.d.ts.map +1 -1
- package/dist/types/operators/OperatorExecuter.d.ts.map +1 -1
- package/dist/types/rawsets/RawSet.d.ts +17 -9
- package/dist/types/rawsets/RawSet.d.ts.map +1 -1
- package/dist/types/rawsets/Render.d.ts +1 -0
- package/dist/types/rawsets/Render.d.ts.map +1 -1
- package/dist/types/routers/PathRouter.d.ts.map +1 -1
- package/dist/types/routers/Router.d.ts +11 -14
- package/dist/types/routers/Router.d.ts.map +1 -1
- package/dist/umd-bundle/dooboostore-dom-render.umd.js +14104 -6502
- package/dist/umd-bundle/dooboostore-dom-render.umd.js.map +4 -4
- package/package.json +9 -8
- package/src/DomRender.ts +62 -34
- package/src/DomRenderProxy.ts +275 -142
- package/src/bundle-entry.ts +5 -3
- package/src/components/ComponentBase.ts +33 -11
- package/src/components/ComponentRouterBase.ts +17 -2
- package/src/components/appender/Appender.ts +0 -5
- package/src/components/checkbox/CheckBox.ts +22 -25
- package/src/components/choose/Choose.ts +19 -18
- package/src/components/details/Details.ts +40 -43
- package/src/components/forOf/ForOf.ts +6 -9
- package/src/components/if/If.ts +9 -11
- package/src/components/input/Input.ts +16 -22
- package/src/components/promise/PromiseSwitch.ts +67 -66
- package/src/components/radio/Radio.ts +23 -28
- package/src/components/router/Route.ts +10 -13
- package/src/components/router/RouterOutlet.ts +29 -8
- package/src/components/select/Select.ts +47 -33
- package/src/components/this/This.ts +13 -12
- package/src/components/timer/Timer.ts +29 -65
- package/src/decorators/DomRenderNoProxy.ts +3 -1
- package/src/events/EventManager.ts +15 -4
- package/src/lifecycle/OnInitRender.ts +1 -1
- package/src/lifecycle/OnRawSetRendered.ts +15 -0
- package/src/lifecycle/index.ts +1 -0
- package/src/node_modules/.bin/acorn +17 -0
- package/src/node_modules/.bin/browserslist +17 -0
- package/src/node_modules/.bin/eslint +17 -0
- package/src/node_modules/.bin/sbf +17 -0
- package/src/node_modules/.bin/ts-node +17 -0
- package/src/node_modules/.bin/ts-node-cwd +17 -0
- package/src/node_modules/.bin/ts-node-dev +17 -0
- package/src/node_modules/.bin/ts-node-esm +17 -0
- package/src/node_modules/.bin/ts-node-script +17 -0
- package/src/node_modules/.bin/ts-node-transpile-only +17 -0
- package/src/node_modules/.bin/ts-script +17 -0
- package/src/node_modules/.bin/tsc +17 -0
- package/src/node_modules/.bin/tsnd +17 -0
- package/src/node_modules/.bin/tsserver +17 -0
- package/src/node_modules/.bin/webpack +17 -0
- package/src/node_modules/.bin/webpack-cli +17 -0
- package/src/node_modules/.bin/webpack-dev-server +17 -0
- package/src/operators/DrForOf.ts +25 -10
- package/src/operators/DrIf.ts +1 -1
- package/src/operators/DrInnerText.ts +2 -1
- package/src/operators/DrTargetElement.ts +14 -0
- package/src/operators/OperatorExecuter.ts +1 -2
- package/src/rawsets/RawSet.ts +709 -295
- package/src/rawsets/Render.ts +1 -0
- package/src/routers/PathRouter.ts +14 -7
- package/src/routers/Router.ts +107 -61
- package/types.d.ts +0 -2825
package/src/bundle-entry.ts
CHANGED
|
@@ -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
|
-
|
|
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
|
|
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
|
-
|
|
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) {
|
|
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:
|
|
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(
|
|
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
|
+
};
|