gamma-app-controller 1.1.25 → 1.1.26
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/esm2020/lib/template-module/KpiCreationModule/create-kpi-tree.component.mjs +381 -0
- package/esm2020/lib/template-module/KpiCreationModule/createKpi.service.mjs +90 -0
- package/esm2020/lib/template-module/KpiCreationModule/kpiCreation.module.mjs +184 -0
- package/esm2020/lib/template-module/KpiCreationModule/treeview/animation.mjs +15 -0
- package/esm2020/lib/template-module/KpiCreationModule/treeview/animations/defaults.mjs +12 -0
- package/esm2020/lib/template-module/KpiCreationModule/treeview/animations/expand-collapse.mjs +16 -0
- package/esm2020/lib/template-module/KpiCreationModule/treeview/animations/fade.mjs +160 -0
- package/esm2020/lib/template-module/KpiCreationModule/treeview/animations/shake.mjs +58 -0
- package/esm2020/lib/template-module/KpiCreationModule/treeview/animations/slide.mjs +116 -0
- package/esm2020/lib/template-module/KpiCreationModule/treeview/animations/zoom.mjs +36 -0
- package/esm2020/lib/template-module/KpiCreationModule/treeview/components/aside/aside.component.mjs +85 -0
- package/esm2020/lib/template-module/KpiCreationModule/treeview/components/basic/basic.component.mjs +118 -0
- package/esm2020/lib/template-module/KpiCreationModule/treeview/components/collapsable/collapsable.component.mjs +159 -0
- package/esm2020/lib/template-module/KpiCreationModule/treeview/components/divider/divider.component.mjs +27 -0
- package/esm2020/lib/template-module/KpiCreationModule/treeview/components/group/group.component.mjs +37 -0
- package/esm2020/lib/template-module/KpiCreationModule/treeview/components/spacer/spacer.component.mjs +27 -0
- package/esm2020/lib/template-module/KpiCreationModule/treeview/moment-helper.mjs +4 -0
- package/esm2020/lib/template-module/KpiCreationModule/treeview/treeview-navigation.service.mjs +2 -0
- package/esm2020/lib/template-module/KpiCreationModule/treeview/treeview-shared.service.mjs +16 -0
- package/esm2020/lib/template-module/KpiCreationModule/treeview/treeview.component.mjs +134 -0
- package/esm2020/public-api.mjs +10 -1
- package/fesm2015/gamma-app-controller.mjs +1729 -176
- package/fesm2015/gamma-app-controller.mjs.map +1 -1
- package/fesm2020/gamma-app-controller.mjs +1727 -176
- package/fesm2020/gamma-app-controller.mjs.map +1 -1
- package/lib/template-module/KpiCreationModule/create-kpi-tree.component.d.ts +75 -0
- package/lib/template-module/KpiCreationModule/createKpi.service.d.ts +32 -0
- package/lib/template-module/KpiCreationModule/kpiCreation.module.d.ts +23 -0
- package/lib/template-module/KpiCreationModule/treeview/animation.d.ts +1 -0
- package/lib/template-module/KpiCreationModule/treeview/animations/defaults.d.ts +11 -0
- package/lib/template-module/KpiCreationModule/treeview/animations/expand-collapse.d.ts +2 -0
- package/lib/template-module/KpiCreationModule/treeview/animations/fade.d.ts +11 -0
- package/lib/template-module/KpiCreationModule/treeview/animations/shake.d.ts +2 -0
- package/lib/template-module/KpiCreationModule/treeview/animations/slide.d.ts +9 -0
- package/lib/template-module/KpiCreationModule/treeview/animations/zoom.d.ts +3 -0
- package/lib/template-module/KpiCreationModule/treeview/components/aside/aside.component.d.ts +26 -0
- package/lib/template-module/KpiCreationModule/treeview/components/basic/basic.component.d.ts +29 -0
- package/lib/template-module/KpiCreationModule/treeview/components/collapsable/collapsable.component.d.ts +37 -0
- package/lib/template-module/KpiCreationModule/treeview/components/divider/divider.component.d.ts +13 -0
- package/lib/template-module/KpiCreationModule/treeview/components/group/group.component.d.ts +17 -0
- package/lib/template-module/KpiCreationModule/treeview/components/spacer/spacer.component.d.ts +13 -0
- package/lib/template-module/KpiCreationModule/treeview/moment-helper.d.ts +3 -0
- package/lib/template-module/KpiCreationModule/treeview/treeview-navigation.service.d.ts +39 -0
- package/lib/template-module/KpiCreationModule/treeview/treeview-shared.service.d.ts +8 -0
- package/lib/template-module/KpiCreationModule/treeview/treeview.component.d.ts +52 -0
- package/package.json +1 -1
- package/public-api.d.ts +9 -0
|
@@ -0,0 +1,116 @@
|
|
|
1
|
+
import { animate, state, style, transition, trigger } from '@angular/animations';
|
|
2
|
+
import { FuseAnimationCurves, FuseAnimationDurations } from './defaults';
|
|
3
|
+
const slideInTop = trigger('slideInTop', [
|
|
4
|
+
state('void', style({
|
|
5
|
+
transform: 'translate3d(0, -100%, 0)'
|
|
6
|
+
})),
|
|
7
|
+
state('*', style({
|
|
8
|
+
transform: 'translate3d(0, 0, 0)'
|
|
9
|
+
})),
|
|
10
|
+
transition('void => false', []),
|
|
11
|
+
transition('void => *', animate('{{timings}}'), {
|
|
12
|
+
params: {
|
|
13
|
+
timings: `${FuseAnimationDurations.entering} ${FuseAnimationCurves.deceleration}`
|
|
14
|
+
}
|
|
15
|
+
})
|
|
16
|
+
]);
|
|
17
|
+
const slideInBottom = trigger('slideInBottom', [
|
|
18
|
+
state('void', style({
|
|
19
|
+
transform: 'translate3d(0, 100%, 0)'
|
|
20
|
+
})),
|
|
21
|
+
state('*', style({
|
|
22
|
+
transform: 'translate3d(0, 0, 0)'
|
|
23
|
+
})),
|
|
24
|
+
transition('void => false', []),
|
|
25
|
+
transition('void => *', animate('{{timings}}'), {
|
|
26
|
+
params: {
|
|
27
|
+
timings: `${FuseAnimationDurations.entering} ${FuseAnimationCurves.deceleration}`
|
|
28
|
+
}
|
|
29
|
+
})
|
|
30
|
+
]);
|
|
31
|
+
const slideInLeft = trigger('slideInLeft', [
|
|
32
|
+
state('void', style({
|
|
33
|
+
transform: 'translate3d(-100%, 0, 0)'
|
|
34
|
+
})),
|
|
35
|
+
state('*', style({
|
|
36
|
+
transform: 'translate3d(0, 0, 0)'
|
|
37
|
+
})),
|
|
38
|
+
transition('void => false', []),
|
|
39
|
+
transition('void => *', animate('{{timings}}'), {
|
|
40
|
+
params: {
|
|
41
|
+
timings: `${FuseAnimationDurations.entering} ${FuseAnimationCurves.deceleration}`
|
|
42
|
+
}
|
|
43
|
+
})
|
|
44
|
+
]);
|
|
45
|
+
const slideInRight = trigger('slideInRight', [
|
|
46
|
+
state('void', style({
|
|
47
|
+
transform: 'translate3d(100%, 0, 0)'
|
|
48
|
+
})),
|
|
49
|
+
state('*', style({
|
|
50
|
+
transform: 'translate3d(0, 0, 0)'
|
|
51
|
+
})),
|
|
52
|
+
transition('void => false', []),
|
|
53
|
+
transition('void => *', animate('{{timings}}'), {
|
|
54
|
+
params: {
|
|
55
|
+
timings: `${FuseAnimationDurations.entering} ${FuseAnimationCurves.deceleration}`
|
|
56
|
+
}
|
|
57
|
+
})
|
|
58
|
+
]);
|
|
59
|
+
const slideOutTop = trigger('slideOutTop', [
|
|
60
|
+
state('*', style({
|
|
61
|
+
transform: 'translate3d(0, 0, 0)'
|
|
62
|
+
})),
|
|
63
|
+
state('void', style({
|
|
64
|
+
transform: 'translate3d(0, -100%, 0)'
|
|
65
|
+
})),
|
|
66
|
+
transition('false => void', []),
|
|
67
|
+
transition('* => void', animate('{{timings}}'), {
|
|
68
|
+
params: {
|
|
69
|
+
timings: `${FuseAnimationDurations.exiting} ${FuseAnimationCurves.acceleration}`
|
|
70
|
+
}
|
|
71
|
+
})
|
|
72
|
+
]);
|
|
73
|
+
const slideOutBottom = trigger('slideOutBottom', [
|
|
74
|
+
state('*', style({
|
|
75
|
+
transform: 'translate3d(0, 0, 0)'
|
|
76
|
+
})),
|
|
77
|
+
state('void', style({
|
|
78
|
+
transform: 'translate3d(0, 100%, 0)'
|
|
79
|
+
})),
|
|
80
|
+
transition('false => void', []),
|
|
81
|
+
transition('* => void', animate('{{timings}}'), {
|
|
82
|
+
params: {
|
|
83
|
+
timings: `${FuseAnimationDurations.exiting} ${FuseAnimationCurves.acceleration}`
|
|
84
|
+
}
|
|
85
|
+
})
|
|
86
|
+
]);
|
|
87
|
+
const slideOutLeft = trigger('slideOutLeft', [
|
|
88
|
+
state('*', style({
|
|
89
|
+
transform: 'translate3d(0, 0, 0)'
|
|
90
|
+
})),
|
|
91
|
+
state('void', style({
|
|
92
|
+
transform: 'translate3d(-100%, 0, 0)'
|
|
93
|
+
})),
|
|
94
|
+
transition('false => void', []),
|
|
95
|
+
transition('* => void', animate('{{timings}}'), {
|
|
96
|
+
params: {
|
|
97
|
+
timings: `${FuseAnimationDurations.exiting} ${FuseAnimationCurves.acceleration}`
|
|
98
|
+
}
|
|
99
|
+
})
|
|
100
|
+
]);
|
|
101
|
+
const slideOutRight = trigger('slideOutRight', [
|
|
102
|
+
state('*', style({
|
|
103
|
+
transform: 'translate3d(0, 0, 0)'
|
|
104
|
+
})),
|
|
105
|
+
state('void', style({
|
|
106
|
+
transform: 'translate3d(100%, 0, 0)'
|
|
107
|
+
})),
|
|
108
|
+
transition('false => void', []),
|
|
109
|
+
transition('* => void', animate('{{timings}}'), {
|
|
110
|
+
params: {
|
|
111
|
+
timings: `${FuseAnimationDurations.exiting} ${FuseAnimationCurves.acceleration}`
|
|
112
|
+
}
|
|
113
|
+
})
|
|
114
|
+
]);
|
|
115
|
+
export { slideInTop, slideInBottom, slideInLeft, slideInRight, slideOutTop, slideOutBottom, slideOutLeft, slideOutRight };
|
|
116
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2xpZGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9nYW1tYS1hcHAtY29udHJvbGxlci9zcmMvbGliL3RlbXBsYXRlLW1vZHVsZS9LcGlDcmVhdGlvbk1vZHVsZS90cmVldmlldy9hbmltYXRpb25zL3NsaWRlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxPQUFPLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxVQUFVLEVBQUUsT0FBTyxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDakYsT0FBTyxFQUFFLG1CQUFtQixFQUFFLHNCQUFzQixFQUFFLE1BQU0sWUFBWSxDQUFDO0FBS3pFLE1BQU0sVUFBVSxHQUFHLE9BQU8sQ0FBQyxZQUFZLEVBQ25DO0lBQ0ksS0FBSyxDQUFDLE1BQU0sRUFDUixLQUFLLENBQUM7UUFDRixTQUFTLEVBQUUsMEJBQTBCO0tBQ3hDLENBQUMsQ0FDTDtJQUVELEtBQUssQ0FBQyxHQUFHLEVBQ0wsS0FBSyxDQUFDO1FBQ0YsU0FBUyxFQUFFLHNCQUFzQjtLQUNwQyxDQUFDLENBQ0w7SUFHRCxVQUFVLENBQUMsZUFBZSxFQUFFLEVBQUUsQ0FBQztJQUcvQixVQUFVLENBQUMsV0FBVyxFQUFFLE9BQU8sQ0FBQyxhQUFhLENBQUMsRUFDMUM7UUFDSSxNQUFNLEVBQUU7WUFDSixPQUFPLEVBQUUsR0FBRyxzQkFBc0IsQ0FBQyxRQUFRLElBQUksbUJBQW1CLENBQUMsWUFBWSxFQUFFO1NBQ3BGO0tBQ0osQ0FDSjtDQUNKLENBQ0osQ0FBQztBQUtGLE1BQU0sYUFBYSxHQUFHLE9BQU8sQ0FBQyxlQUFlLEVBQ3pDO0lBQ0ksS0FBSyxDQUFDLE1BQU0sRUFDUixLQUFLLENBQUM7UUFDRixTQUFTLEVBQUUseUJBQXlCO0tBQ3ZDLENBQUMsQ0FDTDtJQUVELEtBQUssQ0FBQyxHQUFHLEVBQ0wsS0FBSyxDQUFDO1FBQ0YsU0FBUyxFQUFFLHNCQUFz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QUFLLENBQUMsR0FBRyxFQUNMLEtBQUssQ0FBQztRQUNGLFNBQVMsRUFBRSxzQkFBc0I7S0FDcEMsQ0FBQyxDQUNMO0lBRUQsS0FBSyxDQUFDLE1BQU0sRUFDUixLQUFLLENBQUM7UUFDRixTQUFTLEVBQUUsMEJBQTBCO0tBQ3hDLENBQUMsQ0FDTDtJQUdELFVBQVUsQ0FBQyxlQUFlLEVBQUUsRUFBRSxDQUFDO0lBRy9CLFVBQVUsQ0FBQyxXQUFXLEVBQUUsT0FBTyxDQUFDLGFBQWEsQ0FBQyxFQUMxQztRQUNJLE1BQU0sRUFBRTtZQUNKLE9BQU8sRUFBRSxHQUFHLHNCQUFzQixDQUFDLE9BQU8sSUFBSSxtQkFBbUIsQ0FBQyxZQUFZLEVBQUU7U0FDbkY7S0FDSixDQUNKO0NBQ0osQ0FDSixDQUFDO0FBS0YsTUFBTSxhQUFhLEdBQUcsT0FBTyxDQUFDLGVBQWUsRUFDekM7SUFDSSxLQUFLLENBQUMsR0FBRyxFQUNMLEtBQUssQ0FBQztRQUNGLFNBQVMsRUFBRSxzQkFBc0I7S0FDcEMsQ0FBQyxDQUNMO0lBRUQsS0FBSyxDQUFDLE1BQU0sRUFDUixLQUFLLENBQUM7UUFDRixTQUFTLEVBQUUseUJBQXlCO0tBQ3ZDLENBQUMsQ0FDTDtJQUdELFVBQVUsQ0FBQyxlQUFlLEVBQUUsRUFBRSxDQUFDO0lBRy9CLFVBQVUsQ0FBQyxXQUFXLEVBQUUsT0FBTyxDQUFDLGFBQWEsQ0FBQyxFQUMxQztRQUNJLE1BQU0sRUFBRTtZQUNKLE9BQU8sRUFBRSxHQUFHLHNCQUFzQixDQUFDLE9BQU8sSUFBSSxtQkFBbUIsQ0FBQyxZQUFZLEVBQUU7U0FDbkY7S0FDSixDQUNKO0NBQ0osQ0FDSixDQUFDO0FBRUYsT0FBTyxFQUFFLFVBQVUsRUFBRSxhQUFhLEVBQUUsV0FBVyxFQUFFLFlBQVksRUFBRSxXQUFXLEVBQUUsY0FBYyxFQUFFLFlBQVksRUFBRSxhQUFhLEVBQUUsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGFuaW1hdGUsIHN0YXRlLCBzdHlsZSwgdHJhbnNpdGlvbiwgdHJpZ2dlciB9IGZyb20gJ0Bhbmd1bGFyL2FuaW1hdGlvbnMnO1xuaW1wb3J0IHsgRnVzZUFuaW1hdGlvbkN1cnZlcywgRnVzZUFuaW1hdGlvbkR1cmF0aW9ucyB9IGZyb20gJy4vZGVmYXVsdHMnO1xuXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuLy8gQCBTbGlkZSBpbiB0b3Bcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5jb25zdCBzbGlkZUluVG9wID0gdHJpZ2dlcignc2xpZGVJblRvcCcsXG4gICAgW1xuICAgICAgICBzdGF0ZSgndm9pZCcsXG4gICAgICAgICAgICBzdHlsZSh7XG4gICAgICAgICAgICAgICAgdHJhbnNmb3JtOiAndHJhbnNsYXRlM2QoMCwgLTEwMCUsIDApJ1xuICAgICAgICAgICAgfSlcbiAgICAgICAgKSxcblxuICAgICAgICBzdGF0ZSgnKicsXG4gICAgICAgICAgICBzdHlsZSh7XG4gICAgICAgICAgICAgICAgdHJhbnNmb3JtOiAndHJhbnNsYXRlM2QoMCwgMCwgMCknXG4gICAgICAgICAgICB9KVxuICAgICAgICApLFxuXG4gICAgICAgIC8vIFByZXZlbnQgdGhlIHRyYW5zaXRpb24gaWYgdGhlIHN0YXRlIGlzIGZhbHNlXG4gICAgICAgIHRyYW5zaXRpb24oJ3ZvaWQgPT4gZmFsc2UnLCBbXSksXG5cbiAgICAgICAgLy8gVHJhbnNpdGlvblxuICAgICAgICB0cmFuc2l0aW9uKCd2b2lkID0+IConLCBhbmltYXRlKCd7e3RpbWluZ3N9fScpLFxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIHBhcmFtczoge1xuICAgICAgICAgICAgICAgICAgICB0aW1pbmdzOiBgJHtGdXNlQW5pbWF0aW9uRHVyYXRpb25zLmVudGVyaW5nfSAke0Z1c2VBbmltYXRpb25DdXJ2ZXMuZGVjZWxlcmF0aW9ufWBcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIClcbiAgICBdXG4pO1xuXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuLy8gQCBTbGlkZSBpbiBib3R0b21cbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5jb25zdCBzbGlkZUluQm90dG9tID0gdHJpZ2dlcignc2xpZGVJbkJvdHRvbScsXG4gICAgW1xuICAgICAgICBzdGF0ZSgndm9pZCcsXG4gICAgICAgICAgICBzdHlsZSh7XG4gICAgICAgICAgICAgICAgdHJhbnNmb3JtOiAndHJhbnNsYXRlM2QoMCwgMTAwJSwgMCknXG4gICAgICAgICAgICB9KVxuICAgICAgICApLFxuXG4gICAgICAgIHN0YXRlKCcqJyxcbiAgICAgICAgICAgIHN0eWxlKHtcbiAgICAgICAgICAgICAgICB0cmFuc2Zvcm06ICd0cmFuc2xhdGUzZCgwLCAwLCAwKSdcbiAgICAgICAgICAgIH0pXG4gICAgICAgICksXG5cbiAgICAgICAgLy8gUHJldmVudCB0aGUgdHJhbnNpdGlvbiBpZiB0aGUgc3RhdGUgaXMgZmFsc2VcbiAgICAgICAgdHJhbnNpdGlvbigndm9pZCA9PiBmYWxzZScsIFtdKSxcblxuICAgICAgICAvLyBUcmFuc2l0aW9uXG4gICAgICAgIHRyYW5zaXRpb24oJ3ZvaWQgPT4gKicsIGFuaW1hdGUoJ3t7dGltaW5nc319JyksXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgcGFyYW1zOiB7XG4gICAgICAgICAgICAgICAgICAgIHRpbWluZ3M6IGAke0Z1c2VBbmltYXRpb25EdXJhdGlvbnMuZW50ZXJpbmd9ICR7RnVzZUFuaW1hdGlvbkN1cnZlcy5kZWNlbGVyYXRpb259YFxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgKVxuICAgIF1cbik7XG5cbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4vLyBAIFNsaWRlIGluIGxlZnRcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5jb25zdCBzbGlkZUluTGVmdCA9IHRyaWdnZXIoJ3NsaWRlSW5MZWZ0JyxcbiAgICBbXG4gICAgICAgIHN0YXRlKCd2b2lkJyxcbiAgICAgICAgICAgIHN0eWxlKHtcbiAgICAgICAgICAgICAgICB0cmFuc2Zvcm06ICd0cmFuc2xhdGUzZCgtMTAwJSwgMCwgMCknXG4gICAgICAgICAgICB9KVxuICAgICAgICApLFxuXG4gICAgICAgIHN0YXRlKCcqJyxcbiAgICAgICAgICAgIHN0eWxlKHtcbiAgICAgICAgICAgICAgICB0cmFuc2Zvcm06ICd0cmFuc2xhdGUzZCgwLCAwLCAwKSdcbiAgICAgICAgICAgIH0pXG4gICAgICAgICksXG5cbiAgICAgICAgLy8gUHJldmVudCB0aGUgdHJhbnNpdGlvbiBpZiB0aGUgc3RhdGUgaXMgZmFsc2VcbiAgICAgICAgdHJhbnNpdGlvbigndm9pZCA9PiBmYWxzZScsIFtdKSxcblxuICAgICAgICAvLyBUcmFuc2l0aW9uXG4gICAgICAgIHRyYW5zaXRpb24oJ3ZvaWQgPT4gKicsIGFuaW1hdGUoJ3t7dGltaW5nc319JyksXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgcGFyYW1zOiB7XG4gICAgICAgICAgICAgICAgICAgIHRpbWluZ3M6IGAke0Z1c2VBbmltYXRpb25EdXJhdGlvbnMuZW50ZXJpbmd9ICR7RnVzZUFuaW1hdGlvbkN1cnZlcy5kZWNlbGVyYXRpb259YFxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgKVxuICAgIF1cbik7XG5cbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4vLyBAIFNsaWRlIGluIHJpZ2h0XG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuY29uc3Qgc2xpZGVJblJpZ2h0ID0gdHJpZ2dlcignc2xpZGVJblJpZ2h0JyxcbiAgICBbXG4gICAgICAgIHN0YXRlKCd2b2lkJyxcbiAgICAgICAgICAgIHN0eWxlKHtcbiAgICAgICAgICAgICAgICB0cmFuc2Zvcm06ICd0cmFuc2xhdGUzZCgxMDAlLCAwLCAwKSdcbiAgICAgICAgICAgIH0pXG4gICAgICAgICksXG5cbiAgICAgICAgc3RhdGUoJyonLFxuICAgICAgICAgICAgc3R5bGUoe1xuICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogJ3RyYW5zbGF0ZTNkKDAsIDAsIDApJ1xuICAgICAgICAgICAgfSlcbiAgICAgICAgKSxcblxuICAgICAgICAvLyBQcmV2ZW50IHRoZSB0cmFuc2l0aW9uIGlmIHRoZSBzdGF0ZSBpcyBmYWxzZVxuICAgICAgICB0cmFuc2l0aW9uKCd2b2lkID0+IGZhbHNlJywgW10pLFxuXG4gICAgICAgIC8vIFRyYW5zaXRpb25cbiAgICAgICAgdHJhbnNpdGlvbigndm9pZCA9PiAqJywgYW5pbWF0ZSgne3t0aW1pbmdzfX0nKSxcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICBwYXJhbXM6IHtcbiAgICAgICAgICAgICAgICAgICAgdGltaW5nczogYCR7RnVzZUFuaW1hdGlvbkR1cmF0aW9ucy5lbnRlcmluZ30gJHtGdXNlQW5pbWF0aW9uQ3VydmVzLmRlY2VsZXJhdGlvbn1gXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICApXG4gICAgXVxuKTtcblxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi8vIEAgU2xpZGUgb3V0IHRvcFxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbmNvbnN0IHNsaWRlT3V0VG9wID0gdHJpZ2dlcignc2xpZGVPdXRUb3AnLFxuICAgIFtcbiAgICAgICAgc3RhdGUoJyonLFxuICAgICAgICAgICAgc3R5bGUoe1xuICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogJ3RyYW5zbGF0ZTNkKDAsIDAsIDApJ1xuICAgICAgICAgICAgfSlcbiAgICAgICAgKSxcblxuICAgICAgICBzdGF0ZSgndm9pZCcsXG4gICAgICAgICAgICBzdHlsZSh7XG4gICAgICAgICAgICAgICAgdHJhbnNmb3JtOiAndHJhbnNsYXRlM2QoMCwgLTEwMCUsIDApJ1xuICAgICAgICAgICAgfSlcbiAgICAgICAgKSxcblxuICAgICAgICAvLyBQcmV2ZW50IHRoZSB0cmFuc2l0aW9uIGlmIHRoZSBzdGF0ZSBpcyBmYWxzZVxuICAgICAgICB0cmFuc2l0aW9uKCdmYWxzZSA9PiB2b2lkJywgW10pLFxuXG4gICAgICAgIC8vIFRyYW5zaXRpb25cbiAgICAgICAgdHJhbnNpdGlvbignKiA9PiB2b2lkJywgYW5pbWF0ZSgne3t0aW1pbmdzfX0nKSxcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICBwYXJhbXM6IHtcbiAgICAgICAgICAgICAgICAgICAgdGltaW5nczogYCR7RnVzZUFuaW1hdGlvbkR1cmF0aW9ucy5leGl0aW5nfSAke0Z1c2VBbmltYXRpb25DdXJ2ZXMuYWNjZWxlcmF0aW9ufWBcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIClcbiAgICBdXG4pO1xuXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuLy8gQCBTbGlkZSBvdXQgYm90dG9tXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuY29uc3Qgc2xpZGVPdXRCb3R0b20gPSB0cmlnZ2VyKCdzbGlkZU91dEJvdHRvbScsXG4gICAgW1xuICAgICAgICBzdGF0ZSgnKicsXG4gICAgICAgICAgICBzdHlsZSh7XG4gICAgICAgICAgICAgICAgdHJhbnNmb3JtOiAndHJhbnNsYXRlM2QoMCwgMCwgMCknXG4gICAgICAgICAgICB9KVxuICAgICAgICApLFxuXG4gICAgICAgIHN0YXRlKCd2b2lkJyxcbiAgICAgICAgICAgIHN0eWxlKHtcbiAgICAgICAgICAgICAgICB0cmFuc2Zvcm06ICd0cmFuc2xhdGUzZCgwLCAxMDAlLCAwKSdcbiAgICAgICAgICAgIH0pXG4gICAgICAgICksXG5cbiAgICAgICAgLy8gUHJldmVudCB0aGUgdHJhbnNpdGlvbiBpZiB0aGUgc3RhdGUgaXMgZmFsc2VcbiAgICAgICAgdHJhbnNpdGlvbignZmFsc2UgPT4gdm9pZCcsIFtdKSxcblxuICAgICAgICAvLyBUcmFuc2l0aW9uXG4gICAgICAgIHRyYW5zaXRpb24oJyogPT4gdm9pZCcsIGFuaW1hdGUoJ3t7dGltaW5nc319JyksXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgcGFyYW1zOiB7XG4gICAgICAgICAgICAgICAgICAgIHRpbWluZ3M6IGAke0Z1c2VBbmltYXRpb25EdXJhdGlvbnMuZXhpdGluZ30gJHtGdXNlQW5pbWF0aW9uQ3VydmVzLmFjY2VsZXJhdGlvbn1gXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICApXG4gICAgXVxuKTtcblxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi8vIEAgU2xpZGUgb3V0IGxlZnRcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5jb25zdCBzbGlkZU91dExlZnQgPSB0cmlnZ2VyKCdzbGlkZU91dExlZnQnLFxuICAgIFtcbiAgICAgICAgc3RhdGUoJyonLFxuICAgICAgICAgICAgc3R5bGUoe1xuICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogJ3RyYW5zbGF0ZTNkKDAsIDAsIDApJ1xuICAgICAgICAgICAgfSlcbiAgICAgICAgKSxcblxuICAgICAgICBzdGF0ZSgndm9pZCcsXG4gICAgICAgICAgICBzdHlsZSh7XG4gICAgICAgICAgICAgICAgdHJhbnNmb3JtOiAndHJhbnNsYXRlM2QoLTEwMCUsIDAsIDApJ1xuICAgICAgICAgICAgfSlcbiAgICAgICAgKSxcblxuICAgICAgICAvLyBQcmV2ZW50IHRoZSB0cmFuc2l0aW9uIGlmIHRoZSBzdGF0ZSBpcyBmYWxzZVxuICAgICAgICB0cmFuc2l0aW9uKCdmYWxzZSA9PiB2b2lkJywgW10pLFxuXG4gICAgICAgIC8vIFRyYW5zaXRpb25cbiAgICAgICAgdHJhbnNpdGlvbignKiA9PiB2b2lkJywgYW5pbWF0ZSgne3t0aW1pbmdzfX0nKSxcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICBwYXJhbXM6IHtcbiAgICAgICAgICAgICAgICAgICAgdGltaW5nczogYCR7RnVzZUFuaW1hdGlvbkR1cmF0aW9ucy5leGl0aW5nfSAke0Z1c2VBbmltYXRpb25DdXJ2ZXMuYWNjZWxlcmF0aW9ufWBcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIClcbiAgICBdXG4pO1xuXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuLy8gQCBTbGlkZSBvdXQgcmlnaHRcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5jb25zdCBzbGlkZU91dFJpZ2h0ID0gdHJpZ2dlcignc2xpZGVPdXRSaWdodCcsXG4gICAgW1xuICAgICAgICBzdGF0ZSgnKicsXG4gICAgICAgICAgICBzdHlsZSh7XG4gICAgICAgICAgICAgICAgdHJhbnNmb3JtOiAndHJhbnNsYXRlM2QoMCwgMCwgMCknXG4gICAgICAgICAgICB9KVxuICAgICAgICApLFxuXG4gICAgICAgIHN0YXRlKCd2b2lkJyxcbiAgICAgICAgICAgIHN0eWxlKHtcbiAgICAgICAgICAgICAgICB0cmFuc2Zvcm06ICd0cmFuc2xhdGUzZCgxMDAlLCAwLCAwKSdcbiAgICAgICAgICAgIH0pXG4gICAgICAgICksXG5cbiAgICAgICAgLy8gUHJldmVudCB0aGUgdHJhbnNpdGlvbiBpZiB0aGUgc3RhdGUgaXMgZmFsc2VcbiAgICAgICAgdHJhbnNpdGlvbignZmFsc2UgPT4gdm9pZCcsIFtdKSxcblxuICAgICAgICAvLyBUcmFuc2l0aW9uXG4gICAgICAgIHRyYW5zaXRpb24oJyogPT4gdm9pZCcsIGFuaW1hdGUoJ3t7dGltaW5nc319JyksXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgcGFyYW1zOiB7XG4gICAgICAgICAgICAgICAgICAgIHRpbWluZ3M6IGAke0Z1c2VBbmltYXRpb25EdXJhdGlvbnMuZXhpdGluZ30gJHtGdXNlQW5pbWF0aW9uQ3VydmVzLmFjY2VsZXJhdGlvbn1gXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICApXG4gICAgXVxuKTtcblxuZXhwb3J0IHsgc2xpZGVJblRvcCwgc2xpZGVJbkJvdHRvbSwgc2xpZGVJbkxlZnQsIHNsaWRlSW5SaWdodCwgc2xpZGVPdXRUb3AsIHNsaWRlT3V0Qm90dG9tLCBzbGlkZU91dExlZnQsIHNsaWRlT3V0UmlnaHQgfTtcbiJdfQ==
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
import { animate, state, style, transition, trigger } from '@angular/animations';
|
|
2
|
+
import { FuseAnimationCurves, FuseAnimationDurations } from './defaults';
|
|
3
|
+
const zoomIn = trigger('zoomIn', [
|
|
4
|
+
state('void', style({
|
|
5
|
+
opacity: 0,
|
|
6
|
+
transform: 'scale(0.5)'
|
|
7
|
+
})),
|
|
8
|
+
state('*', style({
|
|
9
|
+
opacity: 1,
|
|
10
|
+
transform: 'scale(1)'
|
|
11
|
+
})),
|
|
12
|
+
transition('void => false', []),
|
|
13
|
+
transition('void => *', animate('{{timings}}'), {
|
|
14
|
+
params: {
|
|
15
|
+
timings: `${FuseAnimationDurations.entering} ${FuseAnimationCurves.deceleration}`
|
|
16
|
+
}
|
|
17
|
+
})
|
|
18
|
+
]);
|
|
19
|
+
const zoomOut = trigger('zoomOut', [
|
|
20
|
+
state('*', style({
|
|
21
|
+
opacity: 1,
|
|
22
|
+
transform: 'scale(1)'
|
|
23
|
+
})),
|
|
24
|
+
state('void', style({
|
|
25
|
+
opacity: 0,
|
|
26
|
+
transform: 'scale(0.5)'
|
|
27
|
+
})),
|
|
28
|
+
transition('false => void', []),
|
|
29
|
+
transition('* => void', animate('{{timings}}'), {
|
|
30
|
+
params: {
|
|
31
|
+
timings: `${FuseAnimationDurations.exiting} ${FuseAnimationCurves.acceleration}`
|
|
32
|
+
}
|
|
33
|
+
})
|
|
34
|
+
]);
|
|
35
|
+
export { zoomIn, zoomOut };
|
|
36
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiem9vbS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2dhbW1hLWFwcC1jb250cm9sbGVyL3NyYy9saWIvdGVtcGxhdGUtbW9kdWxlL0twaUNyZWF0aW9uTW9kdWxlL3RyZWV2aWV3L2FuaW1hdGlvbnMvem9vbS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsT0FBTyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsVUFBVSxFQUFFLE9BQU8sRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ2pGLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxzQkFBc0IsRUFBRSxNQUFNLFlBQVksQ0FBQztBQUt6RSxNQUFNLE1BQU0sR0FBRyxPQUFPLENBQUMsUUFBUSxFQUMzQjtJQUVJLEtBQUssQ0FBQyxNQUFNLEVBQ1IsS0FBSyxDQUFDO1FBQ0YsT0FBTyxFQUFFLENBQUM7UUFDVixTQUFTLEVBQUUsWUFBWTtLQUMxQixDQUFDLENBQ0w7SUFFRCxLQUFLLENBQUMsR0FBRyxFQUNMLEtBQUssQ0FBQztRQUNGLE9BQU8sRUFBRSxDQUFDO1FBQ1YsU0FBUyxFQUFFLFVBQVU7S0FDeEIsQ0FBQyxDQUNMO0lBR0QsVUFBVSxDQUFDLGVBQWUsRUFBRSxFQUFFLENBQUM7SUFHL0IsVUFBVSxDQUFDLFdBQVcsRUFBRSxPQUFPLENBQUMsYUFBYSxDQUFDLEVBQzFDO1FBQ0ksTUFBTSxFQUFFO1lBQ0osT0FBTyxFQUFFLEdBQUcsc0JBQXNCLENBQUMsUUFBUSxJQUFJLG1CQUFtQixDQUFDLFlBQVksRUFBRTtTQUNwRjtLQUNKLENBQ0o7Q0FDSixDQUNKLENBQUM7QUFLRixNQUFNLE9BQU8sR0FBRyxPQUFPLENBQUMsU0FBUyxFQUM3QjtJQUVJLEtBQUssQ0FBQyxHQUFHLEVBQ0wsS0FBSyxDQUFDO1FBQ0YsT0FBTyxFQUFFLENBQUM7UUFDVixTQUFTLEVBQUUsVUFBVTtLQUN4QixDQUFDLENBQ0w7SUFFRCxLQUFLLENBQUMsTUFBTSxFQUNSLEtBQUssQ0FBQztRQUNGLE9BQU8sRUFBRSxDQUFDO1FBQ1YsU0FBUyxFQUFFLFlBQVk7S0FDMUIsQ0FBQyxDQUNMO0lBR0QsVUFBVSxDQUFDLGVBQWUsRUFBRSxFQUFFLENBQUM7SUFHL0IsVUFBVSxDQUFDLFdBQVcsRUFBRSxPQUFPLENBQUMsYUFBYSxDQUFDLEVBQzFDO1FBQ0ksTUFBTSxFQUFFO1lBQ0osT0FBTyxFQUFFLEdBQUcsc0JBQXNCLENBQUMsT0FBTyxJQUFJLG1CQUFtQixDQUFDLFlBQVksRUFBRTtTQUNuRjtLQUNKLENBQ0o7Q0FDSixDQUNKLENBQUM7QUFFRixPQUFPLEVBQUUsTUFBTSxFQUFFLE9BQU8sRUFBRSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgYW5pbWF0ZSwgc3RhdGUsIHN0eWxlLCB0cmFuc2l0aW9uLCB0cmlnZ2VyIH0gZnJvbSAnQGFuZ3VsYXIvYW5pbWF0aW9ucyc7XG5pbXBvcnQgeyBGdXNlQW5pbWF0aW9uQ3VydmVzLCBGdXNlQW5pbWF0aW9uRHVyYXRpb25zIH0gZnJvbSAnLi9kZWZhdWx0cyc7XG5cbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4vLyBAIFpvb20gaW5cbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5jb25zdCB6b29tSW4gPSB0cmlnZ2VyKCd6b29tSW4nLFxuICAgIFtcblxuICAgICAgICBzdGF0ZSgndm9pZCcsXG4gICAgICAgICAgICBzdHlsZSh7XG4gICAgICAgICAgICAgICAgb3BhY2l0eTogMCxcbiAgICAgICAgICAgICAgICB0cmFuc2Zvcm06ICdzY2FsZSgwLjUpJ1xuICAgICAgICAgICAgfSlcbiAgICAgICAgKSxcblxuICAgICAgICBzdGF0ZSgnKicsXG4gICAgICAgICAgICBzdHlsZSh7XG4gICAgICAgICAgICAgICAgb3BhY2l0eTogMSxcbiAgICAgICAgICAgICAgICB0cmFuc2Zvcm06ICdzY2FsZSgxKSdcbiAgICAgICAgICAgIH0pXG4gICAgICAgICksXG5cbiAgICAgICAgLy8gUHJldmVudCB0aGUgdHJhbnNpdGlvbiBpZiB0aGUgc3RhdGUgaXMgZmFsc2VcbiAgICAgICAgdHJhbnNpdGlvbigndm9pZCA9PiBmYWxzZScsIFtdKSxcblxuICAgICAgICAvLyBUcmFuc2l0aW9uXG4gICAgICAgIHRyYW5zaXRpb24oJ3ZvaWQgPT4gKicsIGFuaW1hdGUoJ3t7dGltaW5nc319JyksXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgcGFyYW1zOiB7XG4gICAgICAgICAgICAgICAgICAgIHRpbWluZ3M6IGAke0Z1c2VBbmltYXRpb25EdXJhdGlvbnMuZW50ZXJpbmd9ICR7RnVzZUFuaW1hdGlvbkN1cnZlcy5kZWNlbGVyYXRpb259YFxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgKVxuICAgIF1cbik7XG5cbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4vLyBAIFpvb20gb3V0XG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuY29uc3Qgem9vbU91dCA9IHRyaWdnZXIoJ3pvb21PdXQnLFxuICAgIFtcblxuICAgICAgICBzdGF0ZSgnKicsXG4gICAgICAgICAgICBzdHlsZSh7XG4gICAgICAgICAgICAgICAgb3BhY2l0eTogMSxcbiAgICAgICAgICAgICAgICB0cmFuc2Zvcm06ICdzY2FsZSgxKSdcbiAgICAgICAgICAgIH0pXG4gICAgICAgICksXG5cbiAgICAgICAgc3RhdGUoJ3ZvaWQnLFxuICAgICAgICAgICAgc3R5bGUoe1xuICAgICAgICAgICAgICAgIG9wYWNpdHk6IDAsXG4gICAgICAgICAgICAgICAgdHJhbnNmb3JtOiAnc2NhbGUoMC41KSdcbiAgICAgICAgICAgIH0pXG4gICAgICAgICksXG5cbiAgICAgICAgLy8gUHJldmVudCB0aGUgdHJhbnNpdGlvbiBpZiB0aGUgc3RhdGUgaXMgZmFsc2VcbiAgICAgICAgdHJhbnNpdGlvbignZmFsc2UgPT4gdm9pZCcsIFtdKSxcblxuICAgICAgICAvLyBUcmFuc2l0aW9uXG4gICAgICAgIHRyYW5zaXRpb24oJyogPT4gdm9pZCcsIGFuaW1hdGUoJ3t7dGltaW5nc319JyksXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgcGFyYW1zOiB7XG4gICAgICAgICAgICAgICAgICAgIHRpbWluZ3M6IGAke0Z1c2VBbmltYXRpb25EdXJhdGlvbnMuZXhpdGluZ30gJHtGdXNlQW5pbWF0aW9uQ3VydmVzLmFjY2VsZXJhdGlvbn1gXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICApXG4gICAgXVxuKTtcblxuZXhwb3J0IHsgem9vbUluLCB6b29tT3V0IH07XG5cbiJdfQ==
|
package/esm2020/lib/template-module/KpiCreationModule/treeview/components/aside/aside.component.mjs
ADDED
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
import { ChangeDetectionStrategy, Component, Input } from '@angular/core';
|
|
2
|
+
import { NavigationEnd } from '@angular/router';
|
|
3
|
+
import { filter, Subject, takeUntil } from 'rxjs';
|
|
4
|
+
import * as i0 from "@angular/core";
|
|
5
|
+
import * as i1 from "@angular/router";
|
|
6
|
+
import * as i2 from "@angular/common";
|
|
7
|
+
import * as i3 from "@angular/material/icon";
|
|
8
|
+
import * as i4 from "@angular/material/tooltip";
|
|
9
|
+
import * as i5 from "../basic/basic.component";
|
|
10
|
+
import * as i6 from "../collapsable/collapsable.component";
|
|
11
|
+
import * as i7 from "../divider/divider.component";
|
|
12
|
+
import * as i8 from "../group/group.component";
|
|
13
|
+
import * as i9 from "../spacer/spacer.component";
|
|
14
|
+
export class TreeViewAsideItemComponent {
|
|
15
|
+
constructor(_changeDetectorRef, _router) {
|
|
16
|
+
this._changeDetectorRef = _changeDetectorRef;
|
|
17
|
+
this._router = _router;
|
|
18
|
+
this.active = false;
|
|
19
|
+
this._unsubscribeAll = new Subject();
|
|
20
|
+
}
|
|
21
|
+
ngOnChanges(changes) {
|
|
22
|
+
if ('activeItemId' in changes) {
|
|
23
|
+
this._markIfActive(this._router.url);
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
ngOnInit() {
|
|
27
|
+
this._markIfActive(this._router.url);
|
|
28
|
+
this._router.events
|
|
29
|
+
.pipe(filter((event) => event instanceof NavigationEnd), takeUntil(this._unsubscribeAll))
|
|
30
|
+
.subscribe((event) => {
|
|
31
|
+
this._markIfActive(event.urlAfterRedirects);
|
|
32
|
+
});
|
|
33
|
+
}
|
|
34
|
+
ngOnDestroy() {
|
|
35
|
+
this._unsubscribeAll.next(null);
|
|
36
|
+
this._unsubscribeAll.complete();
|
|
37
|
+
}
|
|
38
|
+
trackByFn(index, item) {
|
|
39
|
+
return item.id || index;
|
|
40
|
+
}
|
|
41
|
+
_hasActiveChild(item, currentUrl) {
|
|
42
|
+
const children = item.children;
|
|
43
|
+
if (!children) {
|
|
44
|
+
return false;
|
|
45
|
+
}
|
|
46
|
+
for (const child of children) {
|
|
47
|
+
if (child.children) {
|
|
48
|
+
if (this._hasActiveChild(child, currentUrl)) {
|
|
49
|
+
return true;
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
if (child.type !== 'basic') {
|
|
53
|
+
continue;
|
|
54
|
+
}
|
|
55
|
+
if (child.link && this._router.isActive(child.link, child.exactMatch || false)) {
|
|
56
|
+
return true;
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
return false;
|
|
60
|
+
}
|
|
61
|
+
_markIfActive(currentUrl) {
|
|
62
|
+
this.active = this.activeItemId === this.item.id;
|
|
63
|
+
if (this._hasActiveChild(this.item, currentUrl)) {
|
|
64
|
+
this.active = true;
|
|
65
|
+
}
|
|
66
|
+
this._changeDetectorRef.markForCheck();
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
TreeViewAsideItemComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: TreeViewAsideItemComponent, deps: [{ token: i0.ChangeDetectorRef }, { token: i1.Router }], target: i0.ɵɵFactoryTarget.Component });
|
|
70
|
+
TreeViewAsideItemComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.3.0", type: TreeViewAsideItemComponent, selector: "treeview-aside-item", inputs: { activeItemId: "activeItemId", autoCollapse: "autoCollapse", item: "item", name: "name", skipChildren: "skipChildren" }, usesOnChanges: true, ngImport: i0, template: "<div class=\"treeview-item-wrapper\" [class.treeview-item-has-subtitle]=\"!!item.subtitle\"\n [ngClass]=\"item.classes?.wrapper\">\n\n <div class=\"treeview-item\" [ngClass]=\"{'treeview-item-active': active,\n 'treeview-item-disabled': item.disabled,\n 'treeview-item-active-forced': item.active}\" [matTooltip]=\"item.tooltip || ''\">\n\n <!-- Icon -->\n <ng-container *ngIf=\"item.icon\">\n <mat-icon class=\"treeview-item-icon\" [ngClass]=\"item.classes?.icon\" [svgIcon]=\"item.icon\">\n </mat-icon>\n </ng-container>\n\n <!-- Title & Subtitle -->\n <div class=\"treeview-item-title-wrapper\">\n <div class=\"treeview-item-title\">\n <span [ngClass]=\"item.classes?.title\">\n {{item.title}}\n </span>\n </div>\n <ng-container *ngIf=\"item.subtitle\">\n <div class=\"treeview-item-subtitle\">\n <span [ngClass]=\"item.classes?.subtitle\">\n {{item.subtitle}}\n </span>\n </div>\n </ng-container>\n </div>\n\n <!-- Badge -->\n <ng-container *ngIf=\"item.badge\">\n <div class=\"treeview-item-badge\">\n <div class=\"treeview-item-badge-content\" [ngClass]=\"item.badge.classes\">\n {{item.badge.title}}\n </div>\n </div>\n </ng-container>\n\n </div>\n\n</div>\n\n<ng-container *ngIf=\"!skipChildren\">\n\n <div class=\"treeview-item-children\">\n\n <ng-container *ngFor=\"let item of item.children; trackBy: trackByFn\">\n\n <!-- Skip the hidden items -->\n <ng-container *ngIf=\"(item.hidden && !item.hidden(item)) || !item.hidden\">\n\n <!-- Basic -->\n <ng-container *ngIf=\"item.type === 'basic'\">\n <treeview-basic-item [item]=\"item\" [name]=\"name\"></treeview-basic-item>\n </ng-container>\n\n <!-- Collapsable -->\n <ng-container *ngIf=\"item.type === 'collapsable'\">\n <treeview-collapsable-item [item]=\"item\" [name]=\"name\" [autoCollapse]=\"autoCollapse\">\n </treeview-collapsable-item>\n </ng-container>\n\n <!-- Divider -->\n <ng-container *ngIf=\"item.type === 'divider'\">\n <treeview-divider-item [item]=\"item\" [name]=\"name\"></treeview-divider-item>\n </ng-container>\n\n <!-- Group -->\n <ng-container *ngIf=\"item.type === 'group'\">\n <treeview-group-item [item]=\"item\" [name]=\"name\"></treeview-group-item>\n </ng-container>\n\n <!-- Spacer -->\n <ng-container *ngIf=\"item.type === 'spacer'\">\n <treeview-spacer-item [item]=\"item\" [name]=\"name\"></treeview-spacer-item>\n </ng-container>\n\n </ng-container>\n\n </ng-container>\n\n </div>\n\n</ng-container>", dependencies: [{ kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i3.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "directive", type: i4.MatTooltip, selector: "[matTooltip]", exportAs: ["matTooltip"] }, { kind: "component", type: i5.TreeViewBasicItemComponent, selector: "treeview-basic-item", inputs: ["item", "name", "internalRoute", "isEditIcon", "treeId"], outputs: ["editableKpiBasicData"] }, { kind: "component", type: i6.TreeViewCollapsableItemComponent, selector: "treeview-collapsable-item", inputs: ["autoCollapse", "item", "name", "treeId", "internalRoute", "isEditIcon"], outputs: ["editableKpiData"] }, { kind: "component", type: i7.TreeViewDividerItemComponent, selector: "treeview-divider-item", inputs: ["item", "name"] }, { kind: "component", type: i8.TreeViewGroupItemComponent, selector: "treeview-group-item", inputs: ["autoCollapse", "item", "name"] }, { kind: "component", type: i9.TreeViewSpacerItemComponent, selector: "treeview-spacer-item", inputs: ["item", "name"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
71
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: TreeViewAsideItemComponent, decorators: [{
|
|
72
|
+
type: Component,
|
|
73
|
+
args: [{ selector: 'treeview-aside-item', changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"treeview-item-wrapper\" [class.treeview-item-has-subtitle]=\"!!item.subtitle\"\n [ngClass]=\"item.classes?.wrapper\">\n\n <div class=\"treeview-item\" [ngClass]=\"{'treeview-item-active': active,\n 'treeview-item-disabled': item.disabled,\n 'treeview-item-active-forced': item.active}\" [matTooltip]=\"item.tooltip || ''\">\n\n <!-- Icon -->\n <ng-container *ngIf=\"item.icon\">\n <mat-icon class=\"treeview-item-icon\" [ngClass]=\"item.classes?.icon\" [svgIcon]=\"item.icon\">\n </mat-icon>\n </ng-container>\n\n <!-- Title & Subtitle -->\n <div class=\"treeview-item-title-wrapper\">\n <div class=\"treeview-item-title\">\n <span [ngClass]=\"item.classes?.title\">\n {{item.title}}\n </span>\n </div>\n <ng-container *ngIf=\"item.subtitle\">\n <div class=\"treeview-item-subtitle\">\n <span [ngClass]=\"item.classes?.subtitle\">\n {{item.subtitle}}\n </span>\n </div>\n </ng-container>\n </div>\n\n <!-- Badge -->\n <ng-container *ngIf=\"item.badge\">\n <div class=\"treeview-item-badge\">\n <div class=\"treeview-item-badge-content\" [ngClass]=\"item.badge.classes\">\n {{item.badge.title}}\n </div>\n </div>\n </ng-container>\n\n </div>\n\n</div>\n\n<ng-container *ngIf=\"!skipChildren\">\n\n <div class=\"treeview-item-children\">\n\n <ng-container *ngFor=\"let item of item.children; trackBy: trackByFn\">\n\n <!-- Skip the hidden items -->\n <ng-container *ngIf=\"(item.hidden && !item.hidden(item)) || !item.hidden\">\n\n <!-- Basic -->\n <ng-container *ngIf=\"item.type === 'basic'\">\n <treeview-basic-item [item]=\"item\" [name]=\"name\"></treeview-basic-item>\n </ng-container>\n\n <!-- Collapsable -->\n <ng-container *ngIf=\"item.type === 'collapsable'\">\n <treeview-collapsable-item [item]=\"item\" [name]=\"name\" [autoCollapse]=\"autoCollapse\">\n </treeview-collapsable-item>\n </ng-container>\n\n <!-- Divider -->\n <ng-container *ngIf=\"item.type === 'divider'\">\n <treeview-divider-item [item]=\"item\" [name]=\"name\"></treeview-divider-item>\n </ng-container>\n\n <!-- Group -->\n <ng-container *ngIf=\"item.type === 'group'\">\n <treeview-group-item [item]=\"item\" [name]=\"name\"></treeview-group-item>\n </ng-container>\n\n <!-- Spacer -->\n <ng-container *ngIf=\"item.type === 'spacer'\">\n <treeview-spacer-item [item]=\"item\" [name]=\"name\"></treeview-spacer-item>\n </ng-container>\n\n </ng-container>\n\n </ng-container>\n\n </div>\n\n</ng-container>" }]
|
|
74
|
+
}], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i1.Router }]; }, propDecorators: { activeItemId: [{
|
|
75
|
+
type: Input
|
|
76
|
+
}], autoCollapse: [{
|
|
77
|
+
type: Input
|
|
78
|
+
}], item: [{
|
|
79
|
+
type: Input
|
|
80
|
+
}], name: [{
|
|
81
|
+
type: Input
|
|
82
|
+
}], skipChildren: [{
|
|
83
|
+
type: Input
|
|
84
|
+
}] } });
|
|
85
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXNpZGUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZ2FtbWEtYXBwLWNvbnRyb2xsZXIvc3JjL2xpYi90ZW1wbGF0ZS1tb2R1bGUvS3BpQ3JlYXRpb25Nb2R1bGUvdHJlZXZpZXcvY29tcG9uZW50cy9hc2lkZS9hc2lkZS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9nYW1tYS1hcHAtY29udHJvbGxlci9zcmMvbGliL3RlbXBsYXRlLW1vZHVsZS9LcGlDcmVhdGlvbk1vZHVsZS90cmVldmlldy9jb21wb25lbnRzL2FzaWRlL2FzaWRlLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSx1QkFBdUIsRUFBcUIsU0FBUyxFQUFFLEtBQUssRUFBK0MsTUFBTSxlQUFlLENBQUM7QUFDMUksT0FBTyxFQUFFLGFBQWEsRUFBVSxNQUFNLGlCQUFpQixDQUFDO0FBRXhELE9BQU8sRUFBRSxNQUFNLEVBQUUsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLE1BQU0sQ0FBQzs7Ozs7Ozs7Ozs7QUFPbEQsTUFBTSxPQUFPLDBCQUEwQjtJQWtCbkMsWUFDWSxrQkFBcUMsRUFDckMsT0FBZTtRQURmLHVCQUFrQixHQUFsQixrQkFBa0IsQ0FBbUI7UUFDckMsWUFBTyxHQUFQLE9BQU8sQ0FBUTtRQVIzQixXQUFNLEdBQVksS0FBSyxDQUFDO1FBQ2hCLG9CQUFlLEdBQWlCLElBQUksT0FBTyxFQUFPLENBQUM7SUFVM0QsQ0FBQztJQVdELFdBQVcsQ0FBQyxPQUFzQjtRQUU5QixJQUFJLGNBQWMsSUFBSSxPQUFPLEVBQUU7WUFFM0IsSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1NBQ3hDO0lBQ0wsQ0FBQztJQUtELFFBQVE7UUFFSixJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUM7UUFHckMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxNQUFNO2FBQ2QsSUFBSSxDQUNELE1BQU0sQ0FBQyxDQUFDLEtBQUssRUFBMEIsRUFBRSxDQUFDLEtBQUssWUFBWSxhQUFhLENBQUMsRUFDekUsU0FBUyxDQUFDLElBQUksQ0FBQyxlQUFlLENBQUMsQ0FDbEM7YUFDQSxTQUFTLENBQUMsQ0FBQyxLQUFvQixFQUFFLEVBQUU7WUFHaEMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxLQUFLLENBQUMsaUJBQWlCLENBQUMsQ0FBQztRQUNoRCxDQUFDLENBQUMsQ0FBQztJQWFYLENBQUM7SUFLRCxXQUFXO1FBRVAsSUFBSSxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDaEMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxRQUFRLEVBQUUsQ0FBQztJQUNwQyxDQUFDO0lBWUQsU0FBUyxDQUFDLEtBQWEsRUFBRSxJQUFTO1FBQzlCLE9BQU8sSUFBSSxDQUFDLEVBQUUsSUFBSSxLQUFLLENBQUM7SUFDNUIsQ0FBQztJQWNPLGVBQWUsQ0FBQyxJQUFTLEVBQUUsVUFBa0I7UUFDakQsTUFBTSxRQUFRLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQztRQUUvQixJQUFJLENBQUMsUUFBUSxFQUFFO1lBQ1gsT0FBTyxLQUFLLENBQUM7U0FDaEI7UUFFRCxLQUFLLE1BQU0sS0FBSyxJQUFJLFFBQVEsRUFBRTtZQUMxQixJQUFJLEtBQUssQ0FBQyxRQUFRLEVBQUU7Z0JBQ2hCLElBQUksSUFBSSxDQUFDLGVBQWUsQ0FBQyxLQUFLLEVBQUUsVUFBVSxDQUFDLEVBQUU7b0JBQ3pDLE9BQU8sSUFBSSxDQUFDO2lCQUNmO2FBQ0o7WUFHRCxJQUFJLEtBQUssQ0FBQyxJQUFJLEtBQUssT0FBTyxFQUFFO2dCQUN4QixTQUFTO2FBQ1o7WUFHRCxJQUFJLEtBQUssQ0FBQyxJQUFJLElBQUksSUFBSSxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLElBQUksRUFBRSxLQUFLLENBQUMsVUFBVSxJQUFJLEtBQUssQ0FBQyxFQUFFO2dCQUM1RSxPQUFPLElBQUksQ0FBQzthQUNmO1NBQ0o7UUFFRCxPQUFPLEtBQUssQ0FBQztJQUNqQixDQUFDO0lBT08sYUFBYSxDQUFDLFVBQWtCO1FBRXBDLElBQUksQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDLFlBQVksS0FBSyxJQUFJLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQztRQUlqRCxJQUFJLElBQUksQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRSxVQUFVLENBQUMsRUFBRTtZQUM3QyxJQUFJLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQztTQUN0QjtRQUdELElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxZQUFZLEVBQUUsQ0FBQztJQUMzQyxDQUFDOzt1SEExSlEsMEJBQTBCOzJHQUExQiwwQkFBMEIsa05DVnZDLDRtR0FtRmU7MkZEekVGLDBCQUEwQjtrQkFMdEMsU0FBUzsrQkFDSSxxQkFBcUIsbUJBRWQsdUJBQXVCLENBQUMsTUFBTTs2SEFRdEMsWUFBWTtzQkFBcEIsS0FBSztnQkFDRyxZQUFZO3NCQUFwQixLQUFLO2dCQUNHLElBQUk7c0JBQVosS0FBSztnQkFDRyxJQUFJO3NCQUFaLEtBQUs7Z0JBQ0csWUFBWTtzQkFBcEIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDaGFuZ2VEZXRlY3RvclJlZiwgQ29tcG9uZW50LCBJbnB1dCwgT25DaGFuZ2VzLCBPbkRlc3Ryb3ksIE9uSW5pdCwgU2ltcGxlQ2hhbmdlcyB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTmF2aWdhdGlvbkVuZCwgUm91dGVyIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcbmltcG9ydCB7IEJvb2xlYW5JbnB1dCB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9jb2VyY2lvbic7XG5pbXBvcnQgeyBmaWx0ZXIsIFN1YmplY3QsIHRha2VVbnRpbCB9IGZyb20gJ3J4anMnO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ3RyZWV2aWV3LWFzaWRlLWl0ZW0nLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9hc2lkZS5jb21wb25lbnQuaHRtbCcsXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2hcbn0pXG5leHBvcnQgY2xhc3MgVHJlZVZpZXdBc2lkZUl0ZW1Db21wb25lbnQgaW1wbGVtZW50cyBPbkNoYW5nZXMsIE9uSW5pdCwgT25EZXN0cm95IHtcbiAgICAvKiBlc2xpbnQtZGlzYWJsZSBAdHlwZXNjcmlwdC1lc2xpbnQvbmFtaW5nLWNvbnZlbnRpb24gKi9cbiAgICBzdGF0aWMgbmdBY2NlcHRJbnB1dFR5cGVfYXV0b0NvbGxhcHNlOiBCb29sZWFuSW5wdXQ7XG4gICAgc3RhdGljIG5nQWNjZXB0SW5wdXRUeXBlX3NraXBDaGlsZHJlbjogQm9vbGVhbklucHV0O1xuICAgIC8qIGVzbGludC1lbmFibGUgQHR5cGVzY3JpcHQtZXNsaW50L25hbWluZy1jb252ZW50aW9uICovXG5cbiAgICBASW5wdXQoKSBhY3RpdmVJdGVtSWQ6IHN0cmluZztcbiAgICBASW5wdXQoKSBhdXRvQ29sbGFwc2U6IGJvb2xlYW47XG4gICAgQElucHV0KCkgaXRlbTogYW55O1xuICAgIEBJbnB1dCgpIG5hbWU6IHN0cmluZztcbiAgICBASW5wdXQoKSBza2lwQ2hpbGRyZW46IGJvb2xlYW47XG5cbiAgICBhY3RpdmU6IGJvb2xlYW4gPSBmYWxzZTtcbiAgICBwcml2YXRlIF91bnN1YnNjcmliZUFsbDogU3ViamVjdDxhbnk+ID0gbmV3IFN1YmplY3Q8YW55PigpO1xuXG4gICAgLyoqXG4gICAgICogQ29uc3RydWN0b3JcbiAgICAgKi9cbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgcHJpdmF0ZSBfY2hhbmdlRGV0ZWN0b3JSZWY6IENoYW5nZURldGVjdG9yUmVmLFxuICAgICAgICBwcml2YXRlIF9yb3V0ZXI6IFJvdXRlcixcbiAgICAgICAgLy8gcHJpdmF0ZSBfZnVzZU5hdmlnYXRpb25TZXJ2aWNlOiBGdXNlTmF2aWdhdGlvblNlcnZpY2VcbiAgICApIHtcbiAgICB9XG5cbiAgICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIC8vIEAgTGlmZWN5Y2xlIGhvb2tzXG4gICAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuICAgIC8qKlxuICAgICAqIE9uIGNoYW5nZXNcbiAgICAgKlxuICAgICAqIEBwYXJhbSBjaGFuZ2VzXG4gICAgICovXG4gICAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcyk6IHZvaWQge1xuICAgICAgICAvLyBBY3RpdmUgaXRlbSBpZFxuICAgICAgICBpZiAoJ2FjdGl2ZUl0ZW1JZCcgaW4gY2hhbmdlcykge1xuICAgICAgICAgICAgLy8gTWFyayBpZiBhY3RpdmVcbiAgICAgICAgICAgIHRoaXMuX21hcmtJZkFjdGl2ZSh0aGlzLl9yb3V0ZXIudXJsKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIE9uIGluaXRcbiAgICAgKi9cbiAgICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICAgICAgLy8gTWFyayBpZiBhY3RpdmVcbiAgICAgICAgdGhpcy5fbWFya0lmQWN0aXZlKHRoaXMuX3JvdXRlci51cmwpO1xuXG4gICAgICAgIC8vIEF0dGFjaCBhIGxpc3RlbmVyIHRvIHRoZSBOYXZpZ2F0aW9uRW5kIGV2ZW50XG4gICAgICAgIHRoaXMuX3JvdXRlci5ldmVudHNcbiAgICAgICAgICAgIC5waXBlKFxuICAgICAgICAgICAgICAgIGZpbHRlcigoZXZlbnQpOiBldmVudCBpcyBOYXZpZ2F0aW9uRW5kID0+IGV2ZW50IGluc3RhbmNlb2YgTmF2aWdhdGlvbkVuZCksXG4gICAgICAgICAgICAgICAgdGFrZVVudGlsKHRoaXMuX3Vuc3Vic2NyaWJlQWxsKVxuICAgICAgICAgICAgKVxuICAgICAgICAgICAgLnN1YnNjcmliZSgoZXZlbnQ6IE5hdmlnYXRpb25FbmQpID0+IHtcblxuICAgICAgICAgICAgICAgIC8vIE1hcmsgaWYgYWN0aXZlXG4gICAgICAgICAgICAgICAgdGhpcy5fbWFya0lmQWN0aXZlKGV2ZW50LnVybEFmdGVyUmVkaXJlY3RzKTtcbiAgICAgICAgICAgIH0pO1xuXG4gICAgICAgIC8vIEdldCB0aGUgcGFyZW50IG5hdmlnYXRpb24gY29tcG9uZW50XG4gICAgICAgIC8vIHRoaXMuX3RyZWV2aWV3Q29tcG9uZW50ID0gdGhpcy5fZnVzZU5hdmlnYXRpb25TZXJ2aWNlLmdldENvbXBvbmVudCh0aGlzLm5hbWUpO1xuXG4gICAgICAgIC8vIC8vIFN1YnNjcmliZSB0byBvblJlZnJlc2hlZCBvbiB0aGUgbmF2aWdhdGlvbiBjb21wb25lbnRcbiAgICAgICAgLy8gdGhpcy5fdHJlZXZpZXdDb21wb25lbnQub25SZWZyZXNoZWQucGlwZShcbiAgICAgICAgLy8gICAgIHRha2VVbnRpbCh0aGlzLl91bnN1YnNjcmliZUFsbClcbiAgICAgICAgLy8gKS5zdWJzY3JpYmUoKCkgPT4ge1xuXG4gICAgICAgIC8vICAgICAvLyBNYXJrIGZvciBjaGVja1xuICAgICAgICAvLyAgICAgdGhpcy5fY2hhbmdlRGV0ZWN0b3JSZWYubWFya0ZvckNoZWNrKCk7XG4gICAgICAgIC8vIH0pO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIE9uIGRlc3Ryb3lcbiAgICAgKi9cbiAgICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICAgICAgLy8gVW5zdWJzY3JpYmUgZnJvbSBhbGwgc3Vic2NyaXB0aW9uc1xuICAgICAgICB0aGlzLl91bnN1YnNjcmliZUFsbC5uZXh0KG51bGwpO1xuICAgICAgICB0aGlzLl91bnN1YnNjcmliZUFsbC5jb21wbGV0ZSgpO1xuICAgIH1cblxuICAgIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgLy8gQCBQdWJsaWMgbWV0aG9kc1xuICAgIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbiAgICAvKipcbiAgICAgKiBUcmFjayBieSBmdW5jdGlvbiBmb3IgbmdGb3IgbG9vcHNcbiAgICAgKlxuICAgICAqIEBwYXJhbSBpbmRleFxuICAgICAqIEBwYXJhbSBpdGVtXG4gICAgICovXG4gICAgdHJhY2tCeUZuKGluZGV4OiBudW1iZXIsIGl0ZW06IGFueSk6IGFueSB7XG4gICAgICAgIHJldHVybiBpdGVtLmlkIHx8IGluZGV4O1xuICAgIH1cblxuICAgIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgLy8gQCBQcml2YXRlIG1ldGhvZHNcbiAgICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG4gICAgLyoqXG4gICAgICogQ2hlY2sgaWYgdGhlIGdpdmVuIGl0ZW0gaGFzIHRoZSBnaXZlbiB1cmxcbiAgICAgKiBpbiBvbmUgb2YgaXRzIGNoaWxkcmVuXG4gICAgICpcbiAgICAgKiBAcGFyYW0gaXRlbVxuICAgICAqIEBwYXJhbSBjdXJyZW50VXJsXG4gICAgICogQHByaXZhdGVcbiAgICAgKi9cbiAgICBwcml2YXRlIF9oYXNBY3RpdmVDaGlsZChpdGVtOiBhbnksIGN1cnJlbnRVcmw6IHN0cmluZyk6IGJvb2xlYW4ge1xuICAgICAgICBjb25zdCBjaGlsZHJlbiA9IGl0ZW0uY2hpbGRyZW47XG5cbiAgICAgICAgaWYgKCFjaGlsZHJlbikge1xuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICB9XG5cbiAgICAgICAgZm9yIChjb25zdCBjaGlsZCBvZiBjaGlsZHJlbikge1xuICAgICAgICAgICAgaWYgKGNoaWxkLmNoaWxkcmVuKSB7XG4gICAgICAgICAgICAgICAgaWYgKHRoaXMuX2hhc0FjdGl2ZUNoaWxkKGNoaWxkLCBjdXJyZW50VXJsKSkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC8vIFNraXAgaXRlbXMgb3RoZXIgdGhhbiAnYmFzaWMnXG4gICAgICAgICAgICBpZiAoY2hpbGQudHlwZSAhPT0gJ2Jhc2ljJykge1xuICAgICAgICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAvLyBDaGVjayBpZiB0aGUgY2hpbGQgaGFzIGEgbGluayBhbmQgaXMgYWN0aXZlXG4gICAgICAgICAgICBpZiAoY2hpbGQubGluayAmJiB0aGlzLl9yb3V0ZXIuaXNBY3RpdmUoY2hpbGQubGluaywgY2hpbGQuZXhhY3RNYXRjaCB8fCBmYWxzZSkpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBEZWNpZGUgYW5kIG1hcmsgaWYgdGhlIGl0ZW0gaXMgYWN0aXZlXG4gICAgICpcbiAgICAgKiBAcHJpdmF0ZVxuICAgICAqL1xuICAgIHByaXZhdGUgX21hcmtJZkFjdGl2ZShjdXJyZW50VXJsOiBzdHJpbmcpOiB2b2lkIHtcbiAgICAgICAgLy8gQ2hlY2sgaWYgdGhlIGFjdGl2ZUl0ZW1JZCBpcyBlcXVhbHMgdG8gdGhpcyBpdGVtIGlkXG4gICAgICAgIHRoaXMuYWN0aXZlID0gdGhpcy5hY3RpdmVJdGVtSWQgPT09IHRoaXMuaXRlbS5pZDtcblxuICAgICAgICAvLyBJZiB0aGUgYXNpZGUgaGFzIGEgY2hpbGRyZW4gdGhhdCBpcyBhY3RpdmUsXG4gICAgICAgIC8vIGFsd2F5cyBtYXJrIGl0IGFzIGFjdGl2ZVxuICAgICAgICBpZiAodGhpcy5faGFzQWN0aXZlQ2hpbGQodGhpcy5pdGVtLCBjdXJyZW50VXJsKSkge1xuICAgICAgICAgICAgdGhpcy5hY3RpdmUgPSB0cnVlO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gTWFyayBmb3IgY2hlY2tcbiAgICAgICAgdGhpcy5fY2hhbmdlRGV0ZWN0b3JSZWYubWFya0ZvckNoZWNrKCk7XG4gICAgfVxufVxuIiwiPGRpdiBjbGFzcz1cInRyZWV2aWV3LWl0ZW0td3JhcHBlclwiIFtjbGFzcy50cmVldmlldy1pdGVtLWhhcy1zdWJ0aXRsZV09XCIhIWl0ZW0uc3VidGl0bGVcIlxuICAgIFtuZ0NsYXNzXT1cIml0ZW0uY2xhc3Nlcz8ud3JhcHBlclwiPlxuXG4gICAgPGRpdiBjbGFzcz1cInRyZWV2aWV3LWl0ZW1cIiBbbmdDbGFzc109XCJ7J3RyZWV2aWV3LWl0ZW0tYWN0aXZlJzogYWN0aXZlLFxuICAgICAgICAgICAgICAgICAgICAndHJlZXZpZXctaXRlbS1kaXNhYmxlZCc6IGl0ZW0uZGlzYWJsZWQsXG4gICAgICAgICAgICAgICAgICAgICd0cmVldmlldy1pdGVtLWFjdGl2ZS1mb3JjZWQnOiBpdGVtLmFjdGl2ZX1cIiBbbWF0VG9vbHRpcF09XCJpdGVtLnRvb2x0aXAgfHwgJydcIj5cblxuICAgICAgICA8IS0tIEljb24gLS0+XG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJpdGVtLmljb25cIj5cbiAgICAgICAgICAgIDxtYXQtaWNvbiBjbGFzcz1cInRyZWV2aWV3LWl0ZW0taWNvblwiIFtuZ0NsYXNzXT1cIml0ZW0uY2xhc3Nlcz8uaWNvblwiIFtzdmdJY29uXT1cIml0ZW0uaWNvblwiPlxuICAgICAgICAgICAgPC9tYXQtaWNvbj5cbiAgICAgICAgPC9uZy1jb250YWluZXI+XG5cbiAgICAgICAgPCEtLSBUaXRsZSAmIFN1YnRpdGxlIC0tPlxuICAgICAgICA8ZGl2IGNsYXNzPVwidHJlZXZpZXctaXRlbS10aXRsZS13cmFwcGVyXCI+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwidHJlZXZpZXctaXRlbS10aXRsZVwiPlxuICAgICAgICAgICAgICAgIDxzcGFuIFtuZ0NsYXNzXT1cIml0ZW0uY2xhc3Nlcz8udGl0bGVcIj5cbiAgICAgICAgICAgICAgICAgICAge3tpdGVtLnRpdGxlfX1cbiAgICAgICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJpdGVtLnN1YnRpdGxlXCI+XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInRyZWV2aWV3LWl0ZW0tc3VidGl0bGVcIj5cbiAgICAgICAgICAgICAgICAgICAgPHNwYW4gW25nQ2xhc3NdPVwiaXRlbS5jbGFzc2VzPy5zdWJ0aXRsZVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAge3tpdGVtLnN1YnRpdGxlfX1cbiAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgIDwvZGl2PlxuXG4gICAgICAgIDwhLS0gQmFkZ2UgLS0+XG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJpdGVtLmJhZGdlXCI+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwidHJlZXZpZXctaXRlbS1iYWRnZVwiPlxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0cmVldmlldy1pdGVtLWJhZGdlLWNvbnRlbnRcIiBbbmdDbGFzc109XCJpdGVtLmJhZGdlLmNsYXNzZXNcIj5cbiAgICAgICAgICAgICAgICAgICAge3tpdGVtLmJhZGdlLnRpdGxlfX1cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cblxuICAgIDwvZGl2PlxuXG48L2Rpdj5cblxuPG5nLWNvbnRhaW5lciAqbmdJZj1cIiFza2lwQ2hpbGRyZW5cIj5cblxuICAgIDxkaXYgY2xhc3M9XCJ0cmVldmlldy1pdGVtLWNoaWxkcmVuXCI+XG5cbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgaXRlbSBvZiBpdGVtLmNoaWxkcmVuOyB0cmFja0J5OiB0cmFja0J5Rm5cIj5cblxuICAgICAgICAgICAgPCEtLSBTa2lwIHRoZSBoaWRkZW4gaXRlbXMgLS0+XG4gICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiKGl0ZW0uaGlkZGVuICYmICFpdGVtLmhpZGRlbihpdGVtKSkgfHwgIWl0ZW0uaGlkZGVuXCI+XG5cbiAgICAgICAgICAgICAgICA8IS0tIEJhc2ljIC0tPlxuICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJpdGVtLnR5cGUgPT09ICdiYXNpYydcIj5cbiAgICAgICAgICAgICAgICAgICAgPHRyZWV2aWV3LWJhc2ljLWl0ZW0gW2l0ZW1dPVwiaXRlbVwiIFtuYW1lXT1cIm5hbWVcIj48L3RyZWV2aWV3LWJhc2ljLWl0ZW0+XG4gICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG5cbiAgICAgICAgICAgICAgICA8IS0tIENvbGxhcHNhYmxlIC0tPlxuICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJpdGVtLnR5cGUgPT09ICdjb2xsYXBzYWJsZSdcIj5cbiAgICAgICAgICAgICAgICAgICAgPHRyZWV2aWV3LWNvbGxhcHNhYmxlLWl0ZW0gW2l0ZW1dPVwiaXRlbVwiIFtuYW1lXT1cIm5hbWVcIiBbYXV0b0NvbGxhcHNlXT1cImF1dG9Db2xsYXBzZVwiPlxuICAgICAgICAgICAgICAgICAgICA8L3RyZWV2aWV3LWNvbGxhcHNhYmxlLWl0ZW0+XG4gICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG5cbiAgICAgICAgICAgICAgICA8IS0tIERpdmlkZXIgLS0+XG4gICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIml0ZW0udHlwZSA9PT0gJ2RpdmlkZXInXCI+XG4gICAgICAgICAgICAgICAgICAgIDx0cmVldmlldy1kaXZpZGVyLWl0ZW0gW2l0ZW1dPVwiaXRlbVwiIFtuYW1lXT1cIm5hbWVcIj48L3RyZWV2aWV3LWRpdmlkZXItaXRlbT5cbiAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cblxuICAgICAgICAgICAgICAgIDwhLS0gR3JvdXAgLS0+XG4gICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIml0ZW0udHlwZSA9PT0gJ2dyb3VwJ1wiPlxuICAgICAgICAgICAgICAgICAgICA8dHJlZXZpZXctZ3JvdXAtaXRlbSBbaXRlbV09XCJpdGVtXCIgW25hbWVdPVwibmFtZVwiPjwvdHJlZXZpZXctZ3JvdXAtaXRlbT5cbiAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cblxuICAgICAgICAgICAgICAgIDwhLS0gU3BhY2VyIC0tPlxuICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJpdGVtLnR5cGUgPT09ICdzcGFjZXInXCI+XG4gICAgICAgICAgICAgICAgICAgIDx0cmVldmlldy1zcGFjZXItaXRlbSBbaXRlbV09XCJpdGVtXCIgW25hbWVdPVwibmFtZVwiPjwvdHJlZXZpZXctc3BhY2VyLWl0ZW0+XG4gICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG5cbiAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuXG4gICAgICAgIDwvbmctY29udGFpbmVyPlxuXG4gICAgPC9kaXY+XG5cbjwvbmctY29udGFpbmVyPiJdfQ==
|
package/esm2020/lib/template-module/KpiCreationModule/treeview/components/basic/basic.component.mjs
ADDED
|
@@ -0,0 +1,118 @@
|
|
|
1
|
+
import { ChangeDetectionStrategy, Output, Component, EventEmitter, Input } from '@angular/core';
|
|
2
|
+
import { Subject } from 'rxjs';
|
|
3
|
+
import moment from '../../moment-helper';
|
|
4
|
+
import * as i0 from "@angular/core";
|
|
5
|
+
import * as i1 from "../../../createKpi.service";
|
|
6
|
+
import * as i2 from "@angular/router";
|
|
7
|
+
import * as i3 from "@angular/common";
|
|
8
|
+
import * as i4 from "@angular/material/icon";
|
|
9
|
+
import * as i5 from "@angular/material/tooltip";
|
|
10
|
+
export class TreeViewBasicItemComponent {
|
|
11
|
+
constructor(_changeDetectorRef, _treeviewService, route) {
|
|
12
|
+
this._changeDetectorRef = _changeDetectorRef;
|
|
13
|
+
this._treeviewService = _treeviewService;
|
|
14
|
+
this.route = route;
|
|
15
|
+
this.isEditIcon = false;
|
|
16
|
+
this.editableKpiBasicData = new EventEmitter();
|
|
17
|
+
this._unsubscribeAll = new Subject();
|
|
18
|
+
}
|
|
19
|
+
ngOnInit() {
|
|
20
|
+
this._changeDetectorRef.markForCheck();
|
|
21
|
+
}
|
|
22
|
+
ngOnDestroy() {
|
|
23
|
+
this._unsubscribeAll.next(null);
|
|
24
|
+
this._unsubscribeAll.complete();
|
|
25
|
+
}
|
|
26
|
+
getKPIDataOnclick(kpiData, event) {
|
|
27
|
+
this._treeviewService.getSelectedKPiData(kpiData);
|
|
28
|
+
}
|
|
29
|
+
getNavigateToKpi(data) {
|
|
30
|
+
const kpiId = data['id'];
|
|
31
|
+
let startDate, endDate;
|
|
32
|
+
if (data.pageId && data.pageId !== "") {
|
|
33
|
+
this.getNavigateKpiByPageID(data, kpiId, data['pageId']);
|
|
34
|
+
}
|
|
35
|
+
else {
|
|
36
|
+
this._treeviewService.getKpiBrowserConfigById(kpiId).subscribe(kpiData => {
|
|
37
|
+
this._treeviewService.getFilterForKpi(kpiData);
|
|
38
|
+
const filteredObjects = kpiData[0]['api_config'].filter(kpi => kpi.kpiConfig.displayType === "filter");
|
|
39
|
+
console.log(filteredObjects);
|
|
40
|
+
if (filteredObjects && filteredObjects.length !== 0) {
|
|
41
|
+
const filterOptions = filteredObjects[0].kpiConfig.dataConfig.filterItems;
|
|
42
|
+
filterOptions.forEach(element => {
|
|
43
|
+
if (element.filterType == 'date' || element.filterType == 'datetime') {
|
|
44
|
+
if (element.defaultFilterType == "dynamic" && element.momentFunction !== "" && element.defaultFilterValue !== "" && element.momentFormate !== "") {
|
|
45
|
+
if (element.apiName == "startDate") {
|
|
46
|
+
let [count, unit] = element.defaultFilterValue.split(',');
|
|
47
|
+
startDate = moment()[element.momentFunction](parseInt(count), unit).format(element.momentFormate);
|
|
48
|
+
}
|
|
49
|
+
if (element.apiName == "endDate") {
|
|
50
|
+
let [count, unit] = element.defaultFilterValue.split(',');
|
|
51
|
+
endDate = moment()[element.momentFunction](parseInt(count), unit).format(element.momentFormate);
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
});
|
|
56
|
+
}
|
|
57
|
+
else {
|
|
58
|
+
startDate = moment().subtract('30', 'days').format('YYYY-MM-DD');
|
|
59
|
+
endDate = moment().subtract('1', 'days').format('YYYY-MM-DD');
|
|
60
|
+
}
|
|
61
|
+
this.getNavigateKpi(data, kpiId, startDate, endDate);
|
|
62
|
+
});
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
getNavigateKpi(data, kpiId, startDate, endDate) {
|
|
66
|
+
let navigation = {
|
|
67
|
+
queryParams: {
|
|
68
|
+
'startDate': startDate,
|
|
69
|
+
'endDate': endDate,
|
|
70
|
+
'id': kpiId,
|
|
71
|
+
'name': data['name']
|
|
72
|
+
}
|
|
73
|
+
};
|
|
74
|
+
if (data.isAccessible) {
|
|
75
|
+
this.route.navigate(['/apps/kpi/' + kpiId + '/'], navigation);
|
|
76
|
+
}
|
|
77
|
+
else {
|
|
78
|
+
this.route.navigate(['/apps/kpi/kpi_data'], navigation);
|
|
79
|
+
}
|
|
80
|
+
}
|
|
81
|
+
getNavigateKpiByPageID(data, kpiId, pageId) {
|
|
82
|
+
let navigation = {
|
|
83
|
+
queryParams: {
|
|
84
|
+
'pageId': pageId,
|
|
85
|
+
'id': kpiId,
|
|
86
|
+
'name': data['name']
|
|
87
|
+
}
|
|
88
|
+
};
|
|
89
|
+
if (data.isAccessible) {
|
|
90
|
+
this.route.navigate(['/apps/kpi/' + kpiId + '/'], navigation);
|
|
91
|
+
}
|
|
92
|
+
else {
|
|
93
|
+
this.route.navigate(['/apps/kpi/kpiView'], navigation);
|
|
94
|
+
}
|
|
95
|
+
}
|
|
96
|
+
getEditTreeData(item) {
|
|
97
|
+
this.editableKpiBasicData.emit(item);
|
|
98
|
+
}
|
|
99
|
+
}
|
|
100
|
+
TreeViewBasicItemComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: TreeViewBasicItemComponent, deps: [{ token: i0.ChangeDetectorRef }, { token: i1.CreateKpIService }, { token: i2.Router }], target: i0.ɵɵFactoryTarget.Component });
|
|
101
|
+
TreeViewBasicItemComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.3.0", type: TreeViewBasicItemComponent, selector: "treeview-basic-item", inputs: { item: "item", name: "name", internalRoute: "internalRoute", isEditIcon: "isEditIcon", treeId: "treeId" }, outputs: { editableKpiBasicData: "editableKpiBasicData" }, ngImport: i0, template: "<!-- Item wrapper -->\n<div class=\"treeview-item-wrapper\" [class.treeview-item-has-subtitle]=\"!!item.subtitle\"\n [ngClass]=\"item.classes?.wrapper\" (click)=\"getKPIDataOnclick(item, $event)\" (dblclick)='getNavigateToKpi(item)' *ngIf=\"item.isVisible\">\n\n <!-- Item with an internal link -->\n <!-- <ng-container *ngIf=\"item.link && !item.externalLink && !item.function && !item.disabled\">\n <a class=\"treeview-item\" [ngClass]=\"{'treeview-item-active-forced': item.active}\" [routerLink]=\"[item.link]\"\n [fragment]=\"item.fragment ?? null\" [preserveFragment]=\"item.preserveFragment ?? false\"\n [queryParams]=\"item.queryParams ?? null\" [queryParamsHandling]=\"item.queryParamsHandling ?? null\"\n [routerLinkActive]=\"'treeview-item-active'\" [routerLinkActiveOptions]=\"isActiveMatchOptions\"\n [matTooltip]=\"item.tooltip || ''\">\n <ng-container *ngTemplateOutlet=\"itemTemplate\"></ng-container>\n </a>\n </ng-container> -->\n\n\n <!-- Item with a no link and no function -->\n <ng-container *ngIf=\"!item.link && !item.function && !item.disabled\">\n <div class=\"treeview-item\" id=\"kpiId-{{item.tid}}\" [matTooltip]=\"item.tooltip || ''\">\n <ng-container *ngTemplateOutlet=\"itemTemplate\"></ng-container>\n </div>\n </ng-container>\n\n</div>\n\n<!-- Item template -->\n<ng-template #itemTemplate>\n\n <!-- Icon -->\n <ng-container *ngIf=\"item.icon\">\n <mat-icon class=\"treeview-item-icon\" [ngClass]=\"item.classes?.icon\" [svgIcon]=\"item.icon\"></mat-icon>\n </ng-container>\n\n <!-- Title & Subtitle -->\n <div class=\"treeview-item-title-wrapper\">\n <div class=\"treeview-item-title capitalize\">\n <span [ngClass]=\"item.classes?.name\">\n <i class=\"fa fa-pencil text-sky-800 mx-2 hover:text-sky-400 cursor-pointer \"\n (click)=\"getEditTreeData(item)\" *ngIf=\"isEditIcon\"></i> {{item.name}}\n </span>\n </div>\n <ng-container *ngIf=\"item.subtitle\">\n <div class=\"treeview-item-subtitle\">\n <span [ngClass]=\"item.classes?.subtitle\">\n {{item.subtitle}}\n </span>\n </div>\n </ng-container>\n </div>\n\n <!-- Badge -->\n <ng-container *ngIf=\"item.badge\">\n <div class=\"treeview-item-badge\">\n <div class=\"treeview-item-badge-content\" [ngClass]=\"item.badge.classes\">\n {{item.badge.title}}\n </div>\n </div>\n </ng-container>\n\n</ng-template>", dependencies: [{ kind: "directive", type: i3.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i3.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: i4.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "directive", type: i5.MatTooltip, selector: "[matTooltip]", exportAs: ["matTooltip"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
102
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: TreeViewBasicItemComponent, decorators: [{
|
|
103
|
+
type: Component,
|
|
104
|
+
args: [{ selector: 'treeview-basic-item', changeDetection: ChangeDetectionStrategy.OnPush, template: "<!-- Item wrapper -->\n<div class=\"treeview-item-wrapper\" [class.treeview-item-has-subtitle]=\"!!item.subtitle\"\n [ngClass]=\"item.classes?.wrapper\" (click)=\"getKPIDataOnclick(item, $event)\" (dblclick)='getNavigateToKpi(item)' *ngIf=\"item.isVisible\">\n\n <!-- Item with an internal link -->\n <!-- <ng-container *ngIf=\"item.link && !item.externalLink && !item.function && !item.disabled\">\n <a class=\"treeview-item\" [ngClass]=\"{'treeview-item-active-forced': item.active}\" [routerLink]=\"[item.link]\"\n [fragment]=\"item.fragment ?? null\" [preserveFragment]=\"item.preserveFragment ?? false\"\n [queryParams]=\"item.queryParams ?? null\" [queryParamsHandling]=\"item.queryParamsHandling ?? null\"\n [routerLinkActive]=\"'treeview-item-active'\" [routerLinkActiveOptions]=\"isActiveMatchOptions\"\n [matTooltip]=\"item.tooltip || ''\">\n <ng-container *ngTemplateOutlet=\"itemTemplate\"></ng-container>\n </a>\n </ng-container> -->\n\n\n <!-- Item with a no link and no function -->\n <ng-container *ngIf=\"!item.link && !item.function && !item.disabled\">\n <div class=\"treeview-item\" id=\"kpiId-{{item.tid}}\" [matTooltip]=\"item.tooltip || ''\">\n <ng-container *ngTemplateOutlet=\"itemTemplate\"></ng-container>\n </div>\n </ng-container>\n\n</div>\n\n<!-- Item template -->\n<ng-template #itemTemplate>\n\n <!-- Icon -->\n <ng-container *ngIf=\"item.icon\">\n <mat-icon class=\"treeview-item-icon\" [ngClass]=\"item.classes?.icon\" [svgIcon]=\"item.icon\"></mat-icon>\n </ng-container>\n\n <!-- Title & Subtitle -->\n <div class=\"treeview-item-title-wrapper\">\n <div class=\"treeview-item-title capitalize\">\n <span [ngClass]=\"item.classes?.name\">\n <i class=\"fa fa-pencil text-sky-800 mx-2 hover:text-sky-400 cursor-pointer \"\n (click)=\"getEditTreeData(item)\" *ngIf=\"isEditIcon\"></i> {{item.name}}\n </span>\n </div>\n <ng-container *ngIf=\"item.subtitle\">\n <div class=\"treeview-item-subtitle\">\n <span [ngClass]=\"item.classes?.subtitle\">\n {{item.subtitle}}\n </span>\n </div>\n </ng-container>\n </div>\n\n <!-- Badge -->\n <ng-container *ngIf=\"item.badge\">\n <div class=\"treeview-item-badge\">\n <div class=\"treeview-item-badge-content\" [ngClass]=\"item.badge.classes\">\n {{item.badge.title}}\n </div>\n </div>\n </ng-container>\n\n</ng-template>" }]
|
|
105
|
+
}], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i1.CreateKpIService }, { type: i2.Router }]; }, propDecorators: { item: [{
|
|
106
|
+
type: Input
|
|
107
|
+
}], name: [{
|
|
108
|
+
type: Input
|
|
109
|
+
}], internalRoute: [{
|
|
110
|
+
type: Input
|
|
111
|
+
}], isEditIcon: [{
|
|
112
|
+
type: Input
|
|
113
|
+
}], treeId: [{
|
|
114
|
+
type: Input
|
|
115
|
+
}], editableKpiBasicData: [{
|
|
116
|
+
type: Output
|
|
117
|
+
}] } });
|
|
118
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzaWMuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZ2FtbWEtYXBwLWNvbnRyb2xsZXIvc3JjL2xpYi90ZW1wbGF0ZS1tb2R1bGUvS3BpQ3JlYXRpb25Nb2R1bGUvdHJlZXZpZXcvY29tcG9uZW50cy9iYXNpYy9iYXNpYy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9nYW1tYS1hcHAtY29udHJvbGxlci9zcmMvbGliL3RlbXBsYXRlLW1vZHVsZS9LcGlDcmVhdGlvbk1vZHVsZS90cmVldmlldy9jb21wb25lbnRzL2Jhc2ljL2Jhc2ljLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSx1QkFBdUIsRUFBcUIsTUFBTSxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFxQixNQUFNLGVBQWUsQ0FBQztBQUV0SSxPQUFPLEVBQUUsT0FBTyxFQUFhLE1BQU0sTUFBTSxDQUFDO0FBQzFDLE9BQU8sTUFBTSxNQUFNLHFCQUFxQixDQUFDOzs7Ozs7O0FBT3pDLE1BQU0sT0FBTywwQkFBMEI7SUFrQm5DLFlBQ1ksa0JBQXFDLEVBQ3JDLGdCQUFrQyxFQUNsQyxLQUFhO1FBRmIsdUJBQWtCLEdBQWxCLGtCQUFrQixDQUFtQjtRQUNyQyxxQkFBZ0IsR0FBaEIsZ0JBQWdCLENBQWtCO1FBQ2xDLFVBQUssR0FBTCxLQUFLLENBQVE7UUFqQmhCLGVBQVUsR0FBWSxLQUFLLENBQUM7UUFHcEIseUJBQW9CLEdBQXNCLElBQUksWUFBWSxFQUFFLENBQUM7UUFJdEUsb0JBQWUsR0FBaUIsSUFBSSxPQUFPLEVBQU8sQ0FBQztJQWtCM0QsQ0FBQztJQVNELFFBQVE7UUFJSixJQUFJLENBQUMsa0JBQWtCLENBQUMsWUFBWSxFQUFFLENBQUM7SUFFM0MsQ0FBQztJQUtELFdBQVc7UUFHUCxJ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LEdBQUcsR0FBRyxDQUFDLEVBQUUsVUFBVSxDQUFDLENBQUM7U0FDakU7YUFBTTtZQUNILElBQUksQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDLENBQUMsbUJBQW1CLENBQUMsRUFBRSxVQUFVLENBQUMsQ0FBQztTQUMxRDtJQUNMLENBQUM7SUFFRCxlQUFlLENBQUMsSUFBUztRQUNyQixJQUFJLENBQUMsb0JBQW9CLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ3pDLENBQUM7O3VIQW5JUSwwQkFBMEI7MkdBQTFCLDBCQUEwQiwwT0NWdkMsNGxGQTJEYzsyRkRqREQsMEJBQTBCO2tCQUx0QyxTQUFTOytCQUNJLHFCQUFxQixtQkFFZCx1QkFBdUIsQ0FBQyxNQUFNOzRKQUd0QyxJQUFJO3NCQUFaLEtBQUs7Z0JBQ0csSUFBSTtzQkFBWixLQUFLO2dCQUNHLGFBQWE7c0JBQXJCLEtBQUs7Z0JBQ0csVUFBVTtzQkFBbEIsS0FBSztnQkFDRyxNQUFNO3NCQUFkLEtBQUs7Z0JBRVcsb0JBQW9CO3NCQUFwQyxNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENoYW5nZURldGVjdG9yUmVmLCBPdXRwdXQsIENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT25EZXN0cm95LCBPbkluaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IElzQWN0aXZlTWF0Y2hPcHRpb25zLCBOYXZpZ2F0aW9uRXh0cmFzLCBSb3V0ZXIgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuaW1wb3J0IHsgU3ViamVjdCwgdGFrZVVudGlsIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgbW9tZW50IGZyb20gJy4uLy4uL21vbWVudC1oZWxwZXInO1xuaW1wb3J0IHsgQ3JlYXRlS3BJU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL2NyZWF0ZUtwaS5zZXJ2aWNlJztcbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAndHJlZXZpZXctYmFzaWMtaXRlbScsXG4gICAgdGVtcGxhdGVVcmw6ICcuL2Jhc2ljLmNvbXBvbmVudC5odG1sJyxcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaFxufSlcbmV4cG9ydCBjbGFzcyBUcmVlVmlld0Jhc2ljSXRlbUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95IHtcbiAgICBASW5wdXQoKSBpdGVtOiBhbnk7XG4gICAgQElucHV0KCkgbmFtZTogc3RyaW5nIHwgdW5kZWZpbmVkO1xuICAgIEBJbnB1dCgpIGludGVybmFsUm91dGU6IHN0cmluZyB8IHVuZGVmaW5lZDtcbiAgICBASW5wdXQoKSBpc0VkaXRJY29uOiBib29sZWFuID0gZmFsc2U7XG4gICAgQElucHV0KCkgdHJlZUlkOiBhbnk7XG5cbiAgICBAT3V0cHV0KCkgcHVibGljIGVkaXRhYmxlS3BpQmFzaWNEYXRhOiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcblxuXG4gICAgaXNBY3RpdmVNYXRjaE9wdGlvbnM6IElzQWN0aXZlTWF0Y2hPcHRpb25zO1xuICAgIHByaXZhdGUgX3Vuc3Vic2NyaWJlQWxsOiBTdWJqZWN0PGFueT4gPSBuZXcgU3ViamVjdDxhbnk+KCk7XG5cbiAgICBHX0RFRkFVTFRfU1RBUlRfREFURTogYW55O1xuICAgIEdfREVGQVVMVF9FTkRfREFURTogYW55O1xuICAgIC8qKlxuICAgICAqIENvbnN0cnVjdG9yXG4gICAgICovXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIHByaXZhdGUgX2NoYW5nZURldGVjdG9yUmVmOiBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICAgICAgcHJpdmF0ZSBfdHJlZXZpZXdTZXJ2aWNlOiBDcmVhdGVLcElTZXJ2aWNlLFxuICAgICAgICBwcml2YXRlIHJvdXRlOiBSb3V0ZXIsXG5cbiAgICApIHtcbiAgICAgICAgLy8gU2V0IHRoZSBlcXVpdmFsZW50IG9mIHtleGFjdDogZmFsc2V9IGFzIGRlZmF1bHQgZm9yIGFjdGl2ZSBtYXRjaCBvcHRpb25zLlxuICAgICAgICAvLyBXZSBhcmUgbm90IGFzc2lnbmluZyB0aGUgaXRlbS5pc0FjdGl2ZU1hdGNoT3B0aW9ucyBkaXJlY3RseSB0byB0aGVcbiAgICAgICAgLy8gW3JvdXRlckxpbmtBY3RpdmVPcHRpb25zXSBiZWNhdXNlIGlmIGl0J3MgXCJ1bmRlZmluZWRcIiBpbml0aWFsbHksIHRoZSByb3V0ZXJcbiAgICAgICAgLy8gd2lsbCB0aHJvdyBhbiBlcnJvciBhbmQgc3RvcCB3b3JraW5nLlxuXG4gICAgfVxuXG4gICAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAvLyBAIExpZmVjeWNsZSBob29rc1xuICAgIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbiAgICAvKipcbiAgICAgKiBPbiBpbml0XG4gICAgICovXG4gICAgbmdPbkluaXQoKTogdm9pZCB7XG5cblxuICAgICAgICAvLyBNYXJrIGZvciBjaGVja1xuICAgICAgICB0aGlzLl9jaGFuZ2VEZXRlY3RvclJlZi5tYXJrRm9yQ2hlY2soKTtcblxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIE9uIGRlc3Ryb3lcbiAgICAgKi9cbiAgICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICAgICAgLy8gVW5zdWJzY3JpYmUgZnJvbSBhbGwgc3Vic2NyaXB0aW9uc1xuXG4gICAgICAgIHRoaXMuX3Vuc3Vic2NyaWJlQWxsLm5leHQobnVsbCk7XG4gICAgICAgIHRoaXMuX3Vuc3Vic2NyaWJlQWxsLmNvbXBsZXRlKCk7XG4gICAgfVxuXG4gICAgZ2V0S1BJRGF0YU9uY2xpY2soa3BpRGF0YTogYW55LCBldmVudDogYW55KSB7XG4gICAgICAgIHRoaXMuX3RyZWV2aWV3U2VydmljZS5nZXRTZWxlY3RlZEtQaURhdGEoa3BpRGF0YSk7XG4gICAgfVxuXG4gICAgZ2V0TmF2aWdhdGVUb0twaShkYXRhOiBhbnkpIHtcbiAgICAgICAgY29uc3Qga3BpSWQgPSBkYXRhWydpZCddO1xuICAgICAgICBsZXQgc3RhcnREYXRlLCBlbmREYXRlO1xuICAgICAgICBpZiAoZGF0YS5wYWdlSWQgJiYgZGF0YS5wYWdlSWQgIT09IFwiXCIpIHtcbiAgICAgICAgICAgIHRoaXMuZ2V0TmF2aWdhdGVLcGlCeVBhZ2VJRChkYXRhLCBrcGlJZCwgZGF0YVsncGFnZUlkJ10pXG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLl90cmVldmlld1NlcnZpY2UuZ2V0S3BpQnJvd3NlckNvbmZpZ0J5SWQoa3BpSWQpLnN1YnNjcmliZShrcGlEYXRhID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLl90cmVldmlld1NlcnZpY2UuZ2V0RmlsdGVyRm9yS3BpKGtwaURhdGEpO1xuICAgICAgICAgICAgICAgIGNvbnN0IGZpbHRlcmVkT2JqZWN0cyA9IGtwaURhdGFbMF1bJ2FwaV9jb25maWcnXS5maWx0ZXIoa3BpID0+IGtwaS5rcGlDb25maWcuZGlzcGxheVR5cGUgPT09IFwiZmlsdGVyXCIpO1xuICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKGZpbHRlcmVkT2JqZWN0cyk7XG4gICAgICAgICAgICAgICAgaWYgKGZpbHRlcmVkT2JqZWN0cyAmJiBmaWx0ZXJlZE9iamVjdHMubGVuZ3RoICE9PSAwKSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGZpbHRlck9wdGlvbnMgPSBmaWx0ZXJlZE9iamVjdHNbMF0ua3BpQ29uZmlnLmRhdGFDb25maWcuZmlsdGVySXRlbXM7XG4gICAgICAgICAgICAgICAgICAgIGZpbHRlck9wdGlvbnMuZm9yRWFjaChlbGVtZW50ID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChlbGVtZW50LmZpbHRlclR5cGUgPT0gJ2RhdGUnIHx8IGVsZW1lbnQuZmlsdGVyVHlwZSA9PSAnZGF0ZXRpbWUnKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGVsZW1lbnQuZGVmYXVsdEZpbHRlclR5cGUgPT0gXCJkeW5hbWljXCIgJiYgZWxlbWVudC5tb21lbnRGdW5jdGlvbiAhPT0gXCJcIiAmJiBlbGVtZW50LmRlZmF1bHRGaWx0ZXJWYWx1ZSAhPT0gXCJcIiAmJiBlbGVtZW50Lm1vbWVudEZvcm1hdGUgIT09IFwiXCIpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGVsZW1lbnQuYXBpTmFtZSA9PSBcInN0YXJ0RGF0ZVwiKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgW2NvdW50LCB1bml0XSA9IGVsZW1lbnQuZGVmYXVsdEZpbHRlclZhbHVlLnNwbGl0KCcsJyk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydERhdGUgPSBtb21lbnQoKVtlbGVtZW50Lm1vbWVudEZ1bmN0aW9uXShwYXJzZUludChjb3VudCksIHVuaXQpLmZvcm1hdChlbGVtZW50Lm1vbWVudEZvcm1hdGUpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChlbGVtZW50LmFwaU5hbWUgPT0gXCJlbmREYXRlXCIpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCBbY291bnQsIHVuaXRdID0gZWxlbWVudC5kZWZhdWx0RmlsdGVyVmFsdWUuc3BsaXQoJywnKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZERhdGUgPSBtb21lbnQoKVtlbGVtZW50Lm1vbWVudEZ1bmN0aW9uXShwYXJzZUludChjb3VudCksIHVuaXQpLmZvcm1hdChlbGVtZW50Lm1vbWVudEZvcm1hdGUpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICBzdGFydERhdGUgPSBtb21lbnQoKS5zdWJ0cmFjdCgnMzAnLCAnZGF5cycpLmZvcm1hdCgnWVlZWS1NTS1ERCcpO1xuICAgICAgICAgICAgICAgICAgICBlbmREYXRlID0gbW9tZW50KCkuc3VidHJhY3QoJzEnLCAnZGF5cycpLmZvcm1hdCgnWVlZWS1NTS1ERCcpO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIHRoaXMuZ2V0TmF2aWdhdGVLcGkoZGF0YSwga3BpSWQsIHN0YXJ0RGF0ZSwgZW5kRGF0ZSlcbiAgICAgICAgICAgIH0pXG4gICAgICAgIH1cblxuXG4gICAgfVxuXG4gICAgZ2V0TmF2aWdhdGVLcGkoZGF0YSwga3BpSWQsIHN0YXJ0RGF0ZSwgZW5kRGF0ZSkge1xuICAgICAgICBsZXQgbmF2aWdhdGlvbjogTmF2aWdhdGlvbkV4dHJhcyA9IHtcbiAgICAgICAgICAgIHF1ZXJ5UGFyYW1zOiB7XG4gICAgICAgICAgICAgICAgJ3N0YXJ0RGF0ZSc6IHN0YXJ0RGF0ZSxcbiAgICAgICAgICAgICAgICAnZW5kRGF0ZSc6IGVuZERhdGUsXG4gICAgICAgICAgICAgICAgJ2lkJzoga3BpSWQsXG4gICAgICAgICAgICAgICAgJ25hbWUnOiBkYXRhWyduYW1lJ11cbiAgICAgICAgICAgIH1cbiAgICAgICAgfTtcbiAgICAgICAgaWYgKGRhdGEuaXNBY2Nlc3NpYmxlKSB7XG4gICAgICAgICAgICB0aGlzLnJvdXRlLm5hdmlnYXRlKFsnL2FwcHMva3BpLycgKyBrcGlJZCArICcvJ10sIG5hdmlnYXRpb24pO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5yb3V0ZS5uYXZpZ2F0ZShbJy9hcHBzL2twaS9rcGlfZGF0YSddLCBuYXZpZ2F0aW9uKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGdldE5hdmlnYXRlS3BpQnlQYWdlSUQoZGF0YSwga3BpSWQsIHBhZ2VJZCkge1xuICAgICAgICBsZXQgbmF2aWdhdGlvbjogTmF2aWdhdGlvbkV4dHJhcyA9IHtcbiAgICAgICAgICAgIHF1ZXJ5UGFyYW1zOiB7XG4gICAgICAgICAgICAgICAgJ3BhZ2VJZCc6IHBhZ2VJZCxcbiAgICAgICAgICAgICAgICAnaWQnOiBrcGlJZCxcbiAgICAgICAgICAgICAgICAnbmFtZSc6IGRhdGFbJ25hbWUnXVxuICAgICAgICAgICAgfVxuICAgICAgICB9O1xuICAgICAgICBpZiAoZGF0YS5pc0FjY2Vzc2libGUpIHtcbiAgICAgICAgICAgIHRoaXMucm91dGUubmF2aWdhdGUoWycvYXBwcy9rcGkvJyArIGtwaUlkICsgJy8nXSwgbmF2aWdhdGlvbik7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLnJvdXRlLm5hdmlnYXRlKFsnL2FwcHMva3BpL2twaVZpZXcnXSwgbmF2aWdhdGlvbik7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBnZXRFZGl0VHJlZURhdGEoaXRlbTogYW55KSB7XG4gICAgICAgIHRoaXMuZWRpdGFibGVLcGlCYXNpY0RhdGEuZW1pdChpdGVtKTtcbiAgICB9XG5cblxufVxuIiwiPCEtLSBJdGVtIHdyYXBwZXIgLS0+XG48ZGl2IGNsYXNzPVwidHJlZXZpZXctaXRlbS13cmFwcGVyXCIgW2NsYXNzLnRyZWV2aWV3LWl0ZW0taGFzLXN1YnRpdGxlXT1cIiEhaXRlbS5zdWJ0aXRsZVwiXG4gICAgW25nQ2xhc3NdPVwiaXRlbS5jbGFzc2VzPy53cmFwcGVyXCIgKGNsaWNrKT1cImdldEtQSURhdGFPbmNsaWNrKGl0ZW0sICRldmVudClcIiAoZGJsY2xpY2spPSdnZXROYXZpZ2F0ZVRvS3BpKGl0ZW0pJyAqbmdJZj1cIml0ZW0uaXNWaXNpYmxlXCI+XG5cbiAgICA8IS0tIEl0ZW0gd2l0aCBhbiBpbnRlcm5hbCBsaW5rIC0tPlxuICAgIDwhLS0gPG5nLWNvbnRhaW5lciAqbmdJZj1cIml0ZW0ubGluayAmJiAhaXRlbS5leHRlcm5hbExpbmsgJiYgIWl0ZW0uZnVuY3Rpb24gJiYgIWl0ZW0uZGlzYWJsZWRcIj5cbiAgICAgICAgPGEgY2xhc3M9XCJ0cmVldmlldy1pdGVtXCIgW25nQ2xhc3NdPVwieyd0cmVldmlldy1pdGVtLWFjdGl2ZS1mb3JjZWQnOiBpdGVtLmFjdGl2ZX1cIiBbcm91dGVyTGlua109XCJbaXRlbS5saW5rXVwiXG4gICAgICAgICAgICBbZnJhZ21lbnRdPVwiaXRlbS5mcmFnbWVudCA/PyBudWxsXCIgW3ByZXNlcnZlRnJhZ21lbnRdPVwiaXRlbS5wcmVzZXJ2ZUZyYWdtZW50ID8/IGZhbHNlXCJcbiAgICAgICAgICAgIFtxdWVyeVBhcmFtc109XCJpdGVtLnF1ZXJ5UGFyYW1zID8/IG51bGxcIiBbcXVlcnlQYXJhbXNIYW5kbGluZ109XCJpdGVtLnF1ZXJ5UGFyYW1zSGFuZGxpbmcgPz8gbnVsbFwiXG4gICAgICAgICAgICBbcm91dGVyTGlua0FjdGl2ZV09XCIndHJlZXZpZXctaXRlbS1hY3RpdmUnXCIgW3JvdXRlckxpbmtBY3RpdmVPcHRpb25zXT1cImlzQWN0aXZlTWF0Y2hPcHRpb25zXCJcbiAgICAgICAgICAgIFttYXRUb29sdGlwXT1cIml0ZW0udG9vbHRpcCB8fCAnJ1wiPlxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cIml0ZW1UZW1wbGF0ZVwiPjwvbmctY29udGFpbmVyPlxuICAgICAgICA8L2E+XG4gICAgPC9uZy1jb250YWluZXI+IC0tPlxuXG5cbiAgICA8IS0tIEl0ZW0gd2l0aCBhIG5vIGxpbmsgYW5kIG5vIGZ1bmN0aW9uIC0tPlxuICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCIhaXRlbS5saW5rICYmICFpdGVtLmZ1bmN0aW9uICYmICFpdGVtLmRpc2FibGVkXCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJ0cmVldmlldy1pdGVtXCIgaWQ9XCJrcGlJZC17e2l0ZW0udGlkfX1cIiBbbWF0VG9vbHRpcF09XCJpdGVtLnRvb2x0aXAgfHwgJydcIj5cbiAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJpdGVtVGVtcGxhdGVcIj48L25nLWNvbnRhaW5lcj5cbiAgICAgICAgPC9kaXY+XG4gICAgPC9uZy1jb250YWluZXI+XG5cbjwvZGl2PlxuXG48IS0tIEl0ZW0gdGVtcGxhdGUgLS0+XG48bmctdGVtcGxhdGUgI2l0ZW1UZW1wbGF0ZT5cblxuICAgIDwhLS0gSWNvbiAtLT5cbiAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiaXRlbS5pY29uXCI+XG4gICAgICAgIDxtYXQtaWNvbiBjbGFzcz1cInRyZWV2aWV3LWl0ZW0taWNvblwiIFtuZ0NsYXNzXT1cIml0ZW0uY2xhc3Nlcz8uaWNvblwiIFtzdmdJY29uXT1cIml0ZW0uaWNvblwiPjwvbWF0LWljb24+XG4gICAgPC9uZy1jb250YWluZXI+XG5cbiAgICA8IS0tIFRpdGxlICYgU3VidGl0bGUgLS0+XG4gICAgPGRpdiBjbGFzcz1cInRyZWV2aWV3LWl0ZW0tdGl0bGUtd3JhcHBlclwiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwidHJlZXZpZXctaXRlbS10aXRsZSBjYXBpdGFsaXplXCI+XG4gICAgICAgICAgICA8c3BhbiBbbmdDbGFzc109XCJpdGVtLmNsYXNzZXM/Lm5hbWVcIj5cbiAgICAgICAgICAgICAgICA8aSBjbGFzcz1cImZhIGZhLXBlbmNpbCB0ZXh0LXNreS04MDAgbXgtMiBob3Zlcjp0ZXh0LXNreS00MDAgY3Vyc29yLXBvaW50ZXIgXCJcbiAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cImdldEVkaXRUcmVlRGF0YShpdGVtKVwiICpuZ0lmPVwiaXNFZGl0SWNvblwiPjwvaT4ge3tpdGVtLm5hbWV9fVxuICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIml0ZW0uc3VidGl0bGVcIj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0cmVldmlldy1pdGVtLXN1YnRpdGxlXCI+XG4gICAgICAgICAgICAgICAgPHNwYW4gW25nQ2xhc3NdPVwiaXRlbS5jbGFzc2VzPy5zdWJ0aXRsZVwiPlxuICAgICAgICAgICAgICAgICAgICB7e2l0ZW0uc3VidGl0bGV9fVxuICAgICAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICA8L2Rpdj5cblxuICAgIDwhLS0gQmFkZ2UgLS0+XG4gICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIml0ZW0uYmFkZ2VcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cInRyZWV2aWV3LWl0ZW0tYmFkZ2VcIj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0cmVldmlldy1pdGVtLWJhZGdlLWNvbnRlbnRcIiBbbmdDbGFzc109XCJpdGVtLmJhZGdlLmNsYXNzZXNcIj5cbiAgICAgICAgICAgICAgICB7e2l0ZW0uYmFkZ2UudGl0bGV9fVxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgIDwvbmctY29udGFpbmVyPlxuXG48L25nLXRlbXBsYXRlPiJdfQ==
|