@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
|
@@ -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) {
|
|
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:
|
|
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
|
-
|
|
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 {
|
|
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
|
-
|
|
32
|
-
|
|
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
|
|
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
|
-
|
|
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
|
|
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
|
-
|
|
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 =>
|
|
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
|
-
'
|
|
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:
|
|
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
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
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
|
|
16
|
+
private value?: number;
|
|
53
17
|
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
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.
|
|
29
|
+
return this.value !== undefined;
|
|
66
30
|
}
|
|
67
31
|
|
|
68
32
|
start() {
|
|
69
|
-
const
|
|
70
|
-
if (
|
|
71
|
-
this.
|
|
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.
|
|
74
|
-
if (this.
|
|
75
|
-
this.
|
|
39
|
+
// console.log('--------->', this.value);
|
|
40
|
+
if (this.value) {
|
|
41
|
+
this.value--;
|
|
76
42
|
} else {
|
|
77
43
|
clearInterval(this.interval);
|
|
78
|
-
this.
|
|
44
|
+
this.value = undefined;
|
|
79
45
|
this.interval = undefined;
|
|
80
46
|
}
|
|
81
|
-
},
|
|
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.
|
|
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
|
-
|
|
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
|
+
};
|