design-angular-kit 1.0.3 → 1.1.1
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 +69 -62
- package/esm2022/lib/abstracts/abstract-form.component.mjs +3 -3
- package/esm2022/lib/abstracts/abstract.component.mjs +3 -3
- package/esm2022/lib/components/core/accordion/accordion.component.mjs +3 -3
- package/esm2022/lib/components/core/alert/alert.component.mjs +3 -3
- package/esm2022/lib/components/core/avatar/avatar-dropdown/avatar-dropdown.component.mjs +6 -6
- package/esm2022/lib/components/core/avatar/avatar-group/avatar-group.component.mjs +6 -6
- package/esm2022/lib/components/core/avatar/avatar.directive.mjs +3 -3
- package/esm2022/lib/components/core/avatar/avatar.module.mjs +4 -4
- package/esm2022/lib/components/core/badge/badge.directive.mjs +3 -3
- package/esm2022/lib/components/core/button/button.directive.mjs +3 -3
- package/esm2022/lib/components/core/callout/callout.component.mjs +3 -3
- package/esm2022/lib/components/core/card/card.component.mjs +3 -3
- package/esm2022/lib/components/core/carousel/carousel/carousel.component.mjs +3 -3
- package/esm2022/lib/components/core/carousel/carousel-item/carousel-item.component.mjs +3 -3
- package/esm2022/lib/components/core/carousel/carousel.module.mjs +4 -4
- package/esm2022/lib/components/core/chip/chip.component.mjs +5 -5
- package/esm2022/lib/components/core/collapse/collapse.component.mjs +3 -3
- package/esm2022/lib/components/core/dimmer/dimmer-buttons/dimmer-buttons.component.mjs +3 -3
- package/esm2022/lib/components/core/dimmer/dimmer-icon/dimmer-icon.component.mjs +3 -3
- package/esm2022/lib/components/core/dimmer/dimmer.component.mjs +7 -7
- package/esm2022/lib/components/core/dimmer/dimmer.module.mjs +4 -4
- package/esm2022/lib/components/core/dropdown/dropdown/dropdown.component.mjs +3 -3
- package/esm2022/lib/components/core/dropdown/dropdown-item/dropdown-item.component.mjs +3 -3
- package/esm2022/lib/components/core/dropdown/dropdown.module.mjs +4 -4
- package/esm2022/lib/components/core/forward/forward.directive.mjs +3 -3
- package/esm2022/lib/components/core/link/link.component.mjs +3 -3
- package/esm2022/lib/components/core/list/list/list.component.mjs +3 -3
- package/esm2022/lib/components/core/list/list-item/list-item.component.mjs +3 -3
- package/esm2022/lib/components/core/list/list.module.mjs +4 -4
- package/esm2022/lib/components/core/modal/modal.component.mjs +3 -3
- package/esm2022/lib/components/core/notifications/notifications.component.mjs +3 -3
- package/esm2022/lib/components/core/pagination/pagination.component.mjs +3 -3
- package/esm2022/lib/components/core/popover/popover.directive.mjs +3 -3
- package/esm2022/lib/components/core/progress-bar/progress-bar.component.mjs +3 -3
- package/esm2022/lib/components/core/progress-button/progress-button.component.mjs +3 -3
- package/esm2022/lib/components/core/spinner/spinner.component.mjs +3 -3
- package/esm2022/lib/components/core/steppers/steppers-container/steppers-container.component.mjs +3 -3
- package/esm2022/lib/components/core/steppers/steppers-item/steppers-item.component.mjs +3 -3
- package/esm2022/lib/components/core/steppers/steppers.module.mjs +4 -4
- package/esm2022/lib/components/core/tab/tab-container/tab-container.component.mjs +3 -3
- package/esm2022/lib/components/core/tab/tab-item/tab-item.component.mjs +3 -3
- package/esm2022/lib/components/core/tab/tab.module.mjs +4 -4
- package/esm2022/lib/components/core/table/sort/sort-header/sort-header.component.mjs +3 -3
- package/esm2022/lib/components/core/table/sort/sort.directive.mjs +3 -3
- package/esm2022/lib/components/core/table/table.component.mjs +3 -3
- package/esm2022/lib/components/core/table/table.module.mjs +4 -4
- package/esm2022/lib/components/core/timeline/timeline-item/timeline-item.component.mjs +3 -3
- package/esm2022/lib/components/core/timeline/timeline.component.mjs +3 -3
- package/esm2022/lib/components/core/timeline/timeline.module.mjs +4 -4
- package/esm2022/lib/components/core/tooltip/tooltip.directive.mjs +3 -3
- package/esm2022/lib/components/form/autocomplete/autocomplete.component.mjs +3 -3
- package/esm2022/lib/components/form/checkbox/checkbox.component.mjs +3 -3
- package/esm2022/lib/components/form/form.module.mjs +9 -5
- package/esm2022/lib/components/form/input/input.component.mjs +3 -3
- package/esm2022/lib/components/form/password-input/password-input.component.mjs +3 -3
- package/esm2022/lib/components/form/radio-button/radio-button.component.mjs +3 -3
- package/esm2022/lib/components/form/range/range.component.mjs +3 -3
- package/esm2022/lib/components/form/rating/rating.component.mjs +3 -3
- package/esm2022/lib/components/form/select/select.component.mjs +3 -3
- package/esm2022/lib/components/form/textarea/textarea.component.mjs +3 -3
- package/esm2022/lib/components/form/transfer/store/transfer.reducers.mjs +191 -0
- package/esm2022/lib/components/form/transfer/store/transfer.state.mjs +2 -0
- package/esm2022/lib/components/form/transfer/store/transfer.store.mjs +70 -0
- package/esm2022/lib/components/form/transfer/transfer-list/transfer-list.component.mjs +70 -0
- package/esm2022/lib/components/form/transfer/transfer.component.mjs +147 -0
- package/esm2022/lib/components/form/transfer/transfer.model.mjs +6 -0
- package/esm2022/lib/components/form/upload-drag-drop/upload-drag-drop.component.mjs +3 -3
- package/esm2022/lib/components/form/upload-file-list/upload-file-list.component.mjs +3 -3
- package/esm2022/lib/components/navigation/back-button/back-button.component.mjs +3 -3
- package/esm2022/lib/components/navigation/back-to-top/back-to-top.component.mjs +3 -3
- package/esm2022/lib/components/navigation/breadcrumbs/breadcrumb/breadcrumb.component.mjs +3 -3
- package/esm2022/lib/components/navigation/breadcrumbs/breadcrumb-item/breadcrumb-item.component.mjs +3 -3
- package/esm2022/lib/components/navigation/breadcrumbs/breadcrumbs.module.mjs +4 -4
- package/esm2022/lib/components/navigation/header/header.component.mjs +3 -3
- package/esm2022/lib/components/navigation/megamenu/megamenu.component.mjs +3 -3
- package/esm2022/lib/components/navigation/navbar/navbar/navbar.component.mjs +3 -3
- package/esm2022/lib/components/navigation/navbar/navbar-item/navbar-item.component.mjs +3 -3
- package/esm2022/lib/components/navigation/navbar/navbar.module.mjs +4 -4
- package/esm2022/lib/components/navigation/navscroll/navscroll-list-item.component.mjs +98 -0
- package/esm2022/lib/components/navigation/navscroll/navscroll-list-items.component.mjs +44 -0
- package/esm2022/lib/components/navigation/navscroll/navscroll.component.mjs +116 -0
- package/esm2022/lib/components/navigation/navscroll/navscroll.model.mjs +2 -0
- package/esm2022/lib/components/navigation/navscroll/navscroll.store.mjs +65 -0
- package/esm2022/lib/components/navigation/navscroll/navscroll.utils.mjs +23 -0
- package/esm2022/lib/components/navigation/sidebar/sidebar.component.mjs +3 -3
- package/esm2022/lib/components/utils/error-page/error-page.component.mjs +3 -3
- package/esm2022/lib/components/utils/icon/icon.component.mjs +3 -3
- package/esm2022/lib/components/utils/language-switcher/language-switcher.component.mjs +3 -3
- package/esm2022/lib/design-angular-kit.module.mjs +14 -10
- package/esm2022/lib/pipes/date-ago.pipe.mjs +3 -3
- package/esm2022/lib/pipes/duration.pipe.mjs +3 -3
- package/esm2022/lib/pipes/mark-matching-text.pipe.mjs +3 -3
- package/esm2022/lib/provide-design-angular-kit.mjs +5 -5
- package/esm2022/lib/services/notification/notification.service.mjs +3 -3
- package/esm2022/public_api.mjs +25 -21
- package/fesm2022/design-angular-kit.mjs +1291 -501
- package/fesm2022/design-angular-kit.mjs.map +1 -1
- package/lib/components/form/form.module.d.ts +4 -3
- package/lib/components/form/transfer/store/transfer.reducers.d.ts +103 -0
- package/lib/components/form/transfer/store/transfer.state.d.ts +18 -0
- package/lib/components/form/transfer/store/transfer.store.d.ts +23 -0
- package/lib/components/form/transfer/transfer-list/transfer-list.component.d.ts +48 -0
- package/lib/components/form/transfer/transfer.component.d.ts +75 -0
- package/lib/components/form/transfer/transfer.model.d.ts +6 -0
- package/lib/components/navigation/navscroll/navscroll-list-item.component.d.ts +16 -0
- package/lib/components/navigation/navscroll/navscroll-list-items.component.d.ts +7 -0
- package/lib/components/navigation/navscroll/navscroll.component.d.ts +47 -0
- package/lib/components/navigation/navscroll/navscroll.model.d.ts +10 -0
- package/lib/components/navigation/navscroll/navscroll.store.d.ts +16 -0
- package/lib/components/navigation/navscroll/navscroll.utils.d.ts +6 -0
- package/lib/design-angular-kit.module.d.ts +8 -7
- package/package.json +12 -8
- package/public_api.d.ts +24 -20
- package/schematics/collection.json +19 -0
- package/schematics/ng-add/index.d.ts +3 -0
- package/schematics/ng-add/index.js +29 -0
- package/schematics/ng-add/index.js.map +1 -0
- package/schematics/ng-add/index.spec.d.ts +1 -0
- package/schematics/ng-add/index.spec.js +43 -0
- package/schematics/ng-add/index.spec.js.map +1 -0
- package/schematics/ng-add/rules/setup-project/add-animations.d.ts +2 -0
- package/schematics/ng-add/rules/setup-project/add-animations.js +11 -0
- package/schematics/ng-add/rules/setup-project/add-animations.js.map +1 -0
- package/schematics/ng-add/rules/setup-project/add-assets.d.ts +3 -0
- package/schematics/ng-add/rules/setup-project/add-assets.js +50 -0
- package/schematics/ng-add/rules/setup-project/add-assets.js.map +1 -0
- package/schematics/ng-add/rules/setup-project/add-design-angular-kit.d.ts +3 -0
- package/schematics/ng-add/rules/setup-project/add-design-angular-kit.js +43 -0
- package/schematics/ng-add/rules/setup-project/add-design-angular-kit.js.map +1 -0
- package/schematics/ng-add/rules/setup-project/add-http-client.d.ts +2 -0
- package/schematics/ng-add/rules/setup-project/add-http-client.js +11 -0
- package/schematics/ng-add/rules/setup-project/add-http-client.js.map +1 -0
- package/schematics/ng-add/rules/setup-project/add-import-to-style-file.d.ts +11 -0
- package/schematics/ng-add/rules/setup-project/add-import-to-style-file.js +112 -0
- package/schematics/ng-add/rules/setup-project/add-import-to-style-file.js.map +1 -0
- package/schematics/ng-add/rules/setup-project/add-localisation.d.ts +3 -0
- package/schematics/ng-add/rules/setup-project/add-localisation.js +50 -0
- package/schematics/ng-add/rules/setup-project/add-localisation.js.map +1 -0
- package/schematics/ng-add/rules/setup-project/angular-json-helper.d.ts +2 -0
- package/schematics/ng-add/rules/setup-project/angular-json-helper.js +13 -0
- package/schematics/ng-add/rules/setup-project/angular-json-helper.js.map +1 -0
- package/schematics/ng-add/rules/setup-project/exceptions.d.ts +7 -0
- package/schematics/ng-add/rules/setup-project/exceptions.js +17 -0
- package/schematics/ng-add/rules/setup-project/exceptions.js.map +1 -0
- package/schematics/ng-add/rules/setup-project/index.d.ts +6 -0
- package/schematics/ng-add/rules/setup-project/index.js +23 -0
- package/schematics/ng-add/rules/setup-project/index.js.map +1 -0
- package/schematics/ng-add/schema.d.ts +3 -0
- package/schematics/ng-add/schema.js +3 -0
- package/schematics/ng-add/schema.js.map +1 -0
- package/schematics/ng-add/schema.json +16 -0
- package/schematics/ng-add/setup-project.d.ts +3 -0
- package/schematics/ng-add/setup-project.js +37 -0
- package/schematics/ng-add/setup-project.js.map +1 -0
- package/schematics/ng-add/setup-project.spec.d.ts +1 -0
- package/schematics/ng-add/setup-project.spec.js +139 -0
- package/schematics/ng-add/setup-project.spec.js.map +1 -0
- package/schematics/ng-add/utils.d.ts +14 -0
- package/schematics/ng-add/utils.js +49 -0
- package/schematics/ng-add/utils.js.map +1 -0
- package/schematics/ng-add/versions-helper.d.ts +3 -0
- package/schematics/ng-add/versions-helper.js +40 -0
- package/schematics/ng-add/versions-helper.js.map +1 -0
|
@@ -0,0 +1,191 @@
|
|
|
1
|
+
//#region private utility functions
|
|
2
|
+
const generateSelectAll = (checked, items) => {
|
|
3
|
+
const selected = new Set();
|
|
4
|
+
if (checked) {
|
|
5
|
+
items.forEach(item => selected.add(item));
|
|
6
|
+
}
|
|
7
|
+
return selected;
|
|
8
|
+
};
|
|
9
|
+
const updateSelected = (set, item) => {
|
|
10
|
+
if (set.has(item)) {
|
|
11
|
+
set.delete(item);
|
|
12
|
+
}
|
|
13
|
+
else {
|
|
14
|
+
set.add(item);
|
|
15
|
+
}
|
|
16
|
+
return set;
|
|
17
|
+
};
|
|
18
|
+
//#endregion
|
|
19
|
+
//#region reducers
|
|
20
|
+
const init = (state, { source, target }) => ({
|
|
21
|
+
...state,
|
|
22
|
+
initialItems: {
|
|
23
|
+
source: [...source],
|
|
24
|
+
target: [...target],
|
|
25
|
+
},
|
|
26
|
+
current: {
|
|
27
|
+
source: [...source],
|
|
28
|
+
target: [...target],
|
|
29
|
+
},
|
|
30
|
+
});
|
|
31
|
+
const transfer = (state) => {
|
|
32
|
+
return {
|
|
33
|
+
...state,
|
|
34
|
+
current: {
|
|
35
|
+
...state.current,
|
|
36
|
+
source: state.current.source.filter(i => !state.selections.source.has(i)),
|
|
37
|
+
target: Array.from(new Set([...state.current.target, ...Array.from(state.selections.source)])),
|
|
38
|
+
},
|
|
39
|
+
selections: {
|
|
40
|
+
...state.selections,
|
|
41
|
+
source: new Set(),
|
|
42
|
+
},
|
|
43
|
+
operationsEnabled: {
|
|
44
|
+
...state.operationsEnabled,
|
|
45
|
+
transfer: false,
|
|
46
|
+
reset: true,
|
|
47
|
+
},
|
|
48
|
+
};
|
|
49
|
+
};
|
|
50
|
+
const backtransfer = (state) => {
|
|
51
|
+
return {
|
|
52
|
+
...state,
|
|
53
|
+
current: {
|
|
54
|
+
...state.current,
|
|
55
|
+
target: state.current.target.filter(i => !state.selections.target.has(i)),
|
|
56
|
+
source: Array.from(new Set([...state.current.source, ...Array.from(state.selections.target)])),
|
|
57
|
+
},
|
|
58
|
+
selections: {
|
|
59
|
+
...state.selections,
|
|
60
|
+
target: new Set(),
|
|
61
|
+
},
|
|
62
|
+
operationsEnabled: {
|
|
63
|
+
...state.operationsEnabled,
|
|
64
|
+
backtransfer: false,
|
|
65
|
+
reset: true,
|
|
66
|
+
},
|
|
67
|
+
};
|
|
68
|
+
};
|
|
69
|
+
const reset = (state) => {
|
|
70
|
+
return {
|
|
71
|
+
...state,
|
|
72
|
+
current: {
|
|
73
|
+
source: [...state.initialItems.source],
|
|
74
|
+
target: [...state.initialItems.target],
|
|
75
|
+
},
|
|
76
|
+
operationsEnabled: {
|
|
77
|
+
...state.operationsEnabled,
|
|
78
|
+
reset: false,
|
|
79
|
+
},
|
|
80
|
+
};
|
|
81
|
+
};
|
|
82
|
+
const selectAllSource = (state, { checked }) => {
|
|
83
|
+
const items = state.current.source;
|
|
84
|
+
const selected = generateSelectAll(checked, items);
|
|
85
|
+
const transfer = Boolean(selected.size);
|
|
86
|
+
return {
|
|
87
|
+
...state,
|
|
88
|
+
selections: {
|
|
89
|
+
...state.selections,
|
|
90
|
+
source: selected,
|
|
91
|
+
},
|
|
92
|
+
operationsEnabled: {
|
|
93
|
+
...state.operationsEnabled,
|
|
94
|
+
transfer,
|
|
95
|
+
},
|
|
96
|
+
};
|
|
97
|
+
};
|
|
98
|
+
const selectAllTarget = (state, { checked }) => {
|
|
99
|
+
const items = state.current.target;
|
|
100
|
+
const selected = generateSelectAll(checked, items);
|
|
101
|
+
const backtransfer = Boolean(selected.size);
|
|
102
|
+
return {
|
|
103
|
+
...state,
|
|
104
|
+
selections: {
|
|
105
|
+
...state.selections,
|
|
106
|
+
target: selected,
|
|
107
|
+
},
|
|
108
|
+
operationsEnabled: {
|
|
109
|
+
...state.operationsEnabled,
|
|
110
|
+
backtransfer,
|
|
111
|
+
},
|
|
112
|
+
};
|
|
113
|
+
};
|
|
114
|
+
const selectionItemSource = (previousState, { item }) => {
|
|
115
|
+
const selected = updateSelected(previousState.selections.source, item);
|
|
116
|
+
const selectedItems = Array.from(selected);
|
|
117
|
+
const transfer = Boolean(selectedItems.length);
|
|
118
|
+
const source = new Set([...selectedItems]);
|
|
119
|
+
const state = {
|
|
120
|
+
...previousState,
|
|
121
|
+
selections: {
|
|
122
|
+
...previousState.selections,
|
|
123
|
+
source,
|
|
124
|
+
},
|
|
125
|
+
operationsEnabled: {
|
|
126
|
+
...previousState.operationsEnabled,
|
|
127
|
+
transfer,
|
|
128
|
+
},
|
|
129
|
+
};
|
|
130
|
+
return state;
|
|
131
|
+
};
|
|
132
|
+
const selectionItemTarget = (previousState, { item }) => {
|
|
133
|
+
const selected = updateSelected(previousState.selections.target, item);
|
|
134
|
+
const selectedItems = Array.from(selected);
|
|
135
|
+
const backtransfer = Boolean(selectedItems.length);
|
|
136
|
+
const target = new Set([...selectedItems]);
|
|
137
|
+
const state = {
|
|
138
|
+
...previousState,
|
|
139
|
+
selections: {
|
|
140
|
+
...previousState.selections,
|
|
141
|
+
target,
|
|
142
|
+
},
|
|
143
|
+
operationsEnabled: {
|
|
144
|
+
...previousState.operationsEnabled,
|
|
145
|
+
backtransfer,
|
|
146
|
+
},
|
|
147
|
+
};
|
|
148
|
+
return state;
|
|
149
|
+
};
|
|
150
|
+
//#endregion reducers
|
|
151
|
+
//#region public reducers
|
|
152
|
+
const initialStateFn = () => ({
|
|
153
|
+
initialItems: {
|
|
154
|
+
source: [],
|
|
155
|
+
target: [],
|
|
156
|
+
},
|
|
157
|
+
current: {
|
|
158
|
+
source: [],
|
|
159
|
+
target: [],
|
|
160
|
+
},
|
|
161
|
+
selections: {
|
|
162
|
+
source: new Set(),
|
|
163
|
+
target: new Set(),
|
|
164
|
+
},
|
|
165
|
+
operationsEnabled: {
|
|
166
|
+
transfer: false,
|
|
167
|
+
backtransfer: false,
|
|
168
|
+
reset: false,
|
|
169
|
+
},
|
|
170
|
+
});
|
|
171
|
+
const initFn = (payload) => (state) => init(state, payload);
|
|
172
|
+
const transferFn = () => (state) => transfer(state);
|
|
173
|
+
const backtransferFn = () => (state) => backtransfer(state);
|
|
174
|
+
const resetFn = () => (state) => reset(state);
|
|
175
|
+
const selectAllSourceFn = ({ checked }) => (state) => selectAllSource(state, { checked });
|
|
176
|
+
const selectAllTargetFn = ({ checked }) => (state) => selectAllTarget(state, { checked });
|
|
177
|
+
const selectionItemSourceFn = ({ item }) => (state) => selectionItemSource(state, { item });
|
|
178
|
+
const selectionItemTargetFn = ({ item }) => (state) => selectionItemTarget(state, { item });
|
|
179
|
+
//#endregion
|
|
180
|
+
export default {
|
|
181
|
+
initialStateFn,
|
|
182
|
+
initFn,
|
|
183
|
+
transferFn,
|
|
184
|
+
backtransferFn,
|
|
185
|
+
resetFn,
|
|
186
|
+
selectAllSourceFn,
|
|
187
|
+
selectAllTargetFn,
|
|
188
|
+
selectionItemSourceFn,
|
|
189
|
+
selectionItemTargetFn,
|
|
190
|
+
};
|
|
191
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNmZXIucmVkdWNlcnMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9kZXNpZ24tYW5ndWxhci1raXQvc3JjL2xpYi9jb21wb25lbnRzL2Zvcm0vdHJhbnNmZXIvc3RvcmUvdHJhbnNmZXIucmVkdWNlcnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBR0EsbUNBQW1DO0FBQ25DLE1BQU0saUJBQWlCLEdBQUcsQ0FBSSxPQUFnQixFQUFFLEtBQXdCLEVBQUUsRUFBRTtJQUMxRSxNQUFNLFFBQVEsR0FBRyxJQUFJLEdBQUcsRUFBbUIsQ0FBQztJQUM1QyxJQUFJLE9BQU8sRUFBRSxDQUFDO1FBQ1osS0FBSyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztJQUM1QyxDQUFDO0lBRUQsT0FBTyxRQUFRLENBQUM7QUFDbEIsQ0FBQyxDQUFDO0FBRUYsTUFBTSxjQUFjLEdBQUcsQ0FBSSxHQUF5QixFQUFFLElBQXFCLEVBQUUsRUFBRTtJQUM3RSxJQUFJLEdBQUcsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQztRQUNsQixHQUFHLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ25CLENBQUM7U0FBTSxDQUFDO1FBQ04sR0FBRyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUNoQixDQUFDO0lBRUQsT0FBTyxHQUFHLENBQUM7QUFDYixDQUFDLENBQUM7QUFDRixZQUFZO0FBRVosa0JBQWtCO0FBQ2xCLE1BQU0sSUFBSSxHQUFHLENBQUksS0FBZSxFQUFFLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBcUIsRUFBRSxFQUFFLENBQUMsQ0FBQztJQUMzRSxHQUFHLEtBQUs7SUFDUixZQUFZLEVBQUU7UUFDWixNQUFNLEVBQUUsQ0FBQyxHQUFHLE1BQU0sQ0FBQztRQUNu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Q0FBYSxDQUFDO0FBRXBELE1BQU0scUJBQXFCLEdBQ3pCLENBQUksRUFBRSxJQUFJLEVBQTZCLEVBQUUsRUFBRSxDQUMzQyxDQUFDLEtBQWUsRUFBRSxFQUFFLENBQ2xCLG1CQUFtQixDQUFDLEtBQUssRUFBRSxFQUFFLElBQUksRUFBRSxDQUFhLENBQUM7QUFFckQsTUFBTSxxQkFBcUIsR0FDekIsQ0FBSSxFQUFFLElBQUksRUFBNkIsRUFBRSxFQUFFLENBQzNDLENBQUMsS0FBZSxFQUFFLEVBQUUsQ0FDbEIsbUJBQW1CLENBQUMsS0FBSyxFQUFFLEVBQUUsSUFBSSxFQUFFLENBQWEsQ0FBQztBQUNyRCxZQUFZO0FBRVosZUFBZTtJQUNiLGNBQWM7SUFDZCxNQUFNO0lBQ04sVUFBVTtJQUNWLGNBQWM7SUFDZCxPQUFPO0lBQ1AsaUJBQWlCO0lBQ2pCLGlCQUFpQjtJQUNqQixxQkFBcUI7SUFDckIscUJBQXFCO0NBQ3RCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBUcmFuc2Zlckl0ZW0sIFRyYW5zZmVySXRlbVNlbGVjdGlvbiB9IGZyb20gJy4uL3RyYW5zZmVyLm1vZGVsJztcbmltcG9ydCB7IFNlbGVjdGlvblN0YXRlLCBTdGF0ZSB9IGZyb20gJy4vdHJhbnNmZXIuc3RhdGUnO1xuXG4vLyNyZWdpb24gcHJpdmF0ZSB1dGlsaXR5IGZ1bmN0aW9uc1xuY29uc3QgZ2VuZXJhdGVTZWxlY3RBbGwgPSA8VD4oY2hlY2tlZDogYm9vbGVhbiwgaXRlbXM6IFRyYW5zZmVySXRlbTxUPltdKSA9PiB7XG4gIGNvbnN0IHNlbGVjdGVkID0gbmV3IFNldDxUcmFuc2Zlckl0ZW08VD4+KCk7XG4gIGlmIChjaGVja2VkKSB7XG4gICAgaXRlbXMuZm9yRWFjaChpdGVtID0+IHNlbGVjdGVkLmFkZChpdGVtKSk7XG4gIH1cblxuICByZXR1cm4gc2VsZWN0ZWQ7XG59O1xuXG5jb25zdCB1cGRhdGVTZWxlY3RlZCA9IDxUPihzZXQ6IFNldDxUcmFuc2Zlckl0ZW08VD4+LCBpdGVtOiBUcmFuc2Zlckl0ZW08VD4pID0+IHtcbiAgaWYgKHNldC5oYXMoaXRlbSkpIHtcbiAgICBzZXQuZGVsZXRlKGl0ZW0pO1xuICB9IGVsc2Uge1xuICAgIHNldC5hZGQoaXRlbSk7XG4gIH1cblxuICByZXR1cm4gc2V0O1xufTtcbi8vI2VuZHJlZ2lvblxuXG4vLyNyZWdpb24gcmVkdWNlcnNcbmNvbnN0IGluaXQgPSA8VD4oc3RhdGU6IFN0YXRlPFQ+LCB7IHNvdXJjZSwgdGFyZ2V0IH06IFNlbGVjdGlvblN0YXRlPFQ+KSA9PiAoe1xuICAuLi5zdGF0ZSxcbiAgaW5pdGlhbEl0ZW1zOiB7XG4gICAgc291cmNlOiBbLi4uc291cmNlXSxcbiAgICB0YXJnZXQ6IFsuLi50YXJnZXRdLFxuICB9LFxuICBjdXJyZW50OiB7XG4gICAgc291cmNlOiBbLi4uc291cmNlXSxcbiAgICB0YXJnZXQ6IFsuLi50YXJnZXRdLFxuICB9LFxufSk7XG5cbmNvbnN0IHRyYW5zZmVyID0gPFQ+KHN0YXRlOiBTdGF0ZTxUPikgPT4ge1xuICByZXR1cm4ge1xuICAgIC4uLnN0YXRlLFxuICAgIGN1cnJlbnQ6IHtcbiAgICAgIC4uLnN0YXRlLmN1cnJlbnQsXG4gICAgICBzb3VyY2U6IHN0YXRlLmN1cnJlbnQuc291cmNlLmZpbHRlcihpID0+ICFzdGF0ZS5zZWxlY3Rpb25zLnNvdXJjZS5oYXMoaSkpLFxuICAgICAgdGFyZ2V0OiBBcnJheS5mcm9tKG5ldyBTZXQoWy4uLnN0YXRlLmN1cnJlbnQudGFyZ2V0LCAuLi5BcnJheS5mcm9tKHN0YXRlLnNlbGVjdGlvbnMuc291cmNlKV0gYXMgVHJhbnNmZXJJdGVtU2VsZWN0aW9uPFQ+KSksXG4gICAgfSxcbiAgICBzZWxlY3Rpb25zOiB7XG4gICAgICAuLi5zdGF0ZS5zZWxlY3Rpb25zLFxuICAgICAgc291cmNlOiBuZXcgU2V0PFRyYW5zZmVySXRlbTxUPj4oKSxcbiAgICB9LFxuICAgIG9wZXJhdGlvbnNFbmFibGVkOiB7XG4gICAgICAuLi5zdGF0ZS5vcGVyYXRpb25zRW5hYmxlZCxcbiAgICAgIHRyYW5zZmVyOiBmYWxzZSxcbiAgICAgIHJlc2V0OiB0cnVlLFxuICAgIH0sXG4gIH0gc2F0aXNmaWVzIFN0YXRlPFQ+O1xufTtcblxuY29uc3QgYmFja3RyYW5zZmVyID0gPFQ+KHN0YXRlOiBTdGF0ZTxUPikgPT4ge1xuICByZXR1cm4ge1xuICAgIC4uLnN0YXRlLFxuICAgIGN1cnJlbnQ6IHtcbiAgICAgIC4uLnN0YXRlLmN1cnJlbnQsXG4gICAgICB0YXJnZXQ6IHN0YXRlLmN1cnJlbnQudGFyZ2V0LmZpbHRlcihpID0+ICFzdGF0ZS5zZWxlY3Rpb25zLnRhcmdldC5oYXMoaSkpLFxuICAgICAgc291cmNlOiBBcnJheS5mcm9tKG5ldyBTZXQoWy4uLnN0YXRlLmN1cnJlbnQuc291cmNlLCAuLi5BcnJheS5mcm9tKHN0YXRlLnNlbGVjdGlvbnMudGFyZ2V0KV0gYXMgVHJhbnNmZXJJdGVtU2VsZWN0aW9uPFQ+KSksXG4gICAgfSxcbiAgICBzZWxlY3Rpb25zOiB7XG4gICAgICAuLi5zdGF0ZS5zZWxlY3Rpb25zLFxuICAgICAgdGFyZ2V0OiBuZXcgU2V0PFRyYW5zZmVySXRlbTxUPj4oKSxcbiAgICB9LFxuICAgIG9wZXJhdGlvbnNFbmFibGVkOiB7XG4gICAgICAuLi5zdGF0ZS5vcGVyYXRpb25zRW5hYmxlZCxcbiAgICAgIGJhY2t0cmFuc2ZlcjogZmFsc2UsXG4gICAgICByZXNldDogdHJ1ZSxcbiAgICB9LFxuICB9IHNhdGlzZmllcyBTdGF0ZTxUPjtcbn07XG5cbmNvbnN0IHJlc2V0ID0gPFQ+KHN0YXRlOiBTdGF0ZTxUPikgPT4ge1xuICByZXR1cm4ge1xuICAgIC4uLnN0YXRlLFxuICAgIGN1cnJlbnQ6IHtcbiAgICAgIHNvdXJjZTogWy4uLnN0YXRlLmluaXRpYWxJdGVtcy5zb3VyY2VdLFxuICAgICAgdGFyZ2V0OiBbLi4uc3RhdGUuaW5pdGlhbEl0ZW1zLnRhcmdldF0sXG4gICAgfSxcbiAgICBvcGVyYXRpb25zRW5hYmxlZDoge1xuICAgICAgLi4uc3RhdGUub3BlcmF0aW9uc0VuYWJsZWQsXG4gICAgICByZXNldDogZmFsc2UsXG4gICAgfSxcbiAgfSBzYXRpc2ZpZXMgU3RhdGU8VD47XG59O1xuXG5jb25zdCBzZWxlY3RBbGxTb3VyY2UgPSA8VD4oc3RhdGU6IFN0YXRlPFQ+LCB7IGNoZWNrZWQgfTogeyBjaGVja2VkOiBib29sZWFuIH0pID0+IHtcbiAgY29uc3QgaXRlbXMgPSBzdGF0ZS5jdXJyZW50LnNvdXJjZTtcbiAgY29uc3Qgc2VsZWN0ZWQgPSBnZW5lcmF0ZVNlbGVjdEFsbChjaGVja2VkLCBpdGVtcyk7XG4gIGNvbnN0IHRyYW5zZmVyID0gQm9vbGVhbihzZWxlY3RlZC5zaXplKTtcblxuICByZXR1cm4ge1xuICAgIC4uLnN0YXRlLFxuICAgIHNlbGVjdGlvbnM6IHtcbiAgICAgIC4uLnN0YXRlLnNlbGVjdGlvbnMsXG4gICAgICBzb3VyY2U6IHNlbGVjdGVkLFxuICAgIH0sXG4gICAgb3BlcmF0aW9uc0VuYWJsZWQ6IHtcbiAgICAgIC4uLnN0YXRlLm9wZXJhdGlvbnNFbmFibGVkLFxuICAgICAgdHJhbnNmZXIsXG4gICAgfSxcbiAgfSBzYXRpc2ZpZXMgU3RhdGU8VD47XG59O1xuXG5jb25zdCBzZWxlY3RBbGxUYXJnZXQgPSA8VD4oc3RhdGU6IFN0YXRlPFQ+LCB7IGNoZWNrZWQgfTogeyBjaGVja2VkOiBib29sZWFuIH0pID0+IHtcbiAgY29uc3QgaXRlbXMgPSBzdGF0ZS5jdXJyZW50LnRhcmdldDtcbiAgY29uc3Qgc2VsZWN0ZWQgPSBnZW5lcmF0ZVNlbGVjdEFsbChjaGVja2VkLCBpdGVtcyk7XG4gIGNvbnN0IGJhY2t0cmFuc2ZlciA9IEJvb2xlYW4oc2VsZWN0ZWQuc2l6ZSk7XG5cbiAgcmV0dXJuIHtcbiAgICAuLi5zdGF0ZSxcbiAgICBzZWxlY3Rpb25zOiB7XG4gICAgICAuLi5zdGF0ZS5zZWxlY3Rpb25zLFxuICAgICAgdGFyZ2V0OiBzZWxlY3RlZCxcbiAgICB9LFxuICAgIG9wZXJhdGlvbnNFbmFibGVkOiB7XG4gICAgICAuLi5zdGF0ZS5vcGVyYXRpb25zRW5hYmxlZCxcbiAgICAgIGJhY2t0cmFuc2ZlcixcbiAgICB9LFxuICB9IHNhdGlzZmllcyBTdGF0ZTxUPjtcbn07XG5cbmNvbnN0IHNlbGVjdGlvbkl0ZW1Tb3VyY2UgPSA8VD4ocHJldmlvdXNTdGF0ZTogU3RhdGU8VD4sIHsgaXRlbSB9OiB7IGl0ZW06IFRyYW5zZmVySXRlbTxUPiB9KSA9PiB7XG4gIGNvbnN0IHNlbGVjdGVkID0gdXBkYXRlU2VsZWN0ZWQocHJldmlvdXNTdGF0ZS5zZWxlY3Rpb25zLnNvdXJjZSwgaXRlbSk7XG4gIGNvbnN0IHNlbGVjdGVkSXRlbXMgPSBBcnJheS5mcm9tKHNlbGVjdGVkKTtcbiAgY29uc3QgdHJhbnNmZXIgPSBCb29sZWFuKHNlbGVjdGVkSXRlbXMubGVuZ3RoKTtcbiAgY29uc3Qgc291cmNlID0gbmV3IFNldChbLi4uc2VsZWN0ZWRJdGVtc10pO1xuXG4gIGNvbnN0IHN0YXRlID0ge1xuICAgIC4uLnByZXZpb3VzU3RhdGUsXG4gICAgc2VsZWN0aW9uczoge1xuICAgICAgLi4ucHJldmlvdXNTdGF0ZS5zZWxlY3Rpb25zLFxuICAgICAgc291cmNlLFxuICAgIH0sXG4gICAgb3BlcmF0aW9uc0VuYWJsZWQ6IHtcbiAgICAgIC4uLnByZXZpb3VzU3RhdGUub3BlcmF0aW9uc0VuYWJsZWQsXG4gICAgICB0cmFuc2ZlcixcbiAgICB9LFxuICB9IHNhdGlzZmllcyBTdGF0ZTxUPjtcblxuICByZXR1cm4gc3RhdGU7XG59O1xuXG5jb25zdCBzZWxlY3Rpb25JdGVtVGFyZ2V0ID0gPFQ+KHByZXZpb3VzU3RhdGU6IFN0YXRlPFQ+LCB7IGl0ZW0gfTogeyBpdGVtOiBUcmFuc2Zlckl0ZW08VD4gfSkgPT4ge1xuICBjb25zdCBzZWxlY3RlZCA9IHVwZGF0ZVNlbGVjdGVkKHByZXZpb3VzU3RhdGUuc2VsZWN0aW9ucy50YXJnZXQsIGl0ZW0pO1xuICBjb25zdCBzZWxlY3RlZEl0ZW1zID0gQXJyYXkuZnJvbShzZWxlY3RlZCk7XG4gIGNvbnN0IGJhY2t0cmFuc2ZlciA9IEJvb2xlYW4oc2VsZWN0ZWRJdGVtcy5sZW5ndGgpO1xuICBjb25zdCB0YXJnZXQgPSBuZXcgU2V0KFsuLi5zZWxlY3RlZEl0ZW1zXSk7XG5cbiAgY29uc3Qgc3RhdGUgPSB7XG4gICAgLi4ucHJldmlvdXNTdGF0ZSxcbiAgICBzZWxlY3Rpb25zOiB7XG4gICAgICAuLi5wcmV2aW91c1N0YXRlLnNlbGVjdGlvbnMsXG4gICAgICB0YXJnZXQsXG4gICAgfSxcbiAgICBvcGVyYXRpb25zRW5hYmxlZDoge1xuICAgICAgLi4ucHJldmlvdXNTdGF0ZS5vcGVyYXRpb25zRW5hYmxlZCxcbiAgICAgIGJhY2t0cmFuc2ZlcixcbiAgICB9LFxuICB9IHNhdGlzZmllcyBTdGF0ZTxUPjtcblxuICByZXR1cm4gc3RhdGU7XG59O1xuLy8jZW5kcmVnaW9uIHJlZHVjZXJzXG5cbi8vI3JlZ2lvbiBwdWJsaWMgcmVkdWNlcnNcbmNvbnN0IGluaXRpYWxTdGF0ZUZuID0gPFQ+KCkgPT4gKHtcbiAgaW5pdGlhbEl0ZW1zOiB7XG4gICAgc291cmNlOiBbXSxcbiAgICB0YXJnZXQ6IFtdLFxuICB9LFxuICBjdXJyZW50OiB7XG4gICAgc291cmNlOiBbXSxcbiAgICB0YXJnZXQ6IFtdLFxuICB9LFxuICBzZWxlY3Rpb25zOiB7XG4gICAgc291cmNlOiBuZXcgU2V0PFRyYW5zZmVySXRlbTxUPj4oKSxcbiAgICB0YXJnZXQ6IG5ldyBTZXQ8VHJhbnNmZXJJdGVtPFQ+PigpLFxuICB9LFxuICBvcGVyYXRpb25zRW5hYmxlZDoge1xuICAgIHRyYW5zZmVyOiBmYWxzZSxcbiAgICBiYWNrdHJhbnNmZXI6IGZhbHNlLFxuICAgIHJlc2V0OiBmYWxzZSxcbiAgfSxcbn0pO1xuY29uc3QgaW5pdEZuID1cbiAgPFQ+KHBheWxvYWQ6IFNlbGVjdGlvblN0YXRlPFQ+KSA9PlxuICAoc3RhdGU6IFN0YXRlPFQ+KSA9PlxuICAgIGluaXQoc3RhdGUsIHBheWxvYWQpO1xuXG5jb25zdCB0cmFuc2ZlckZuID1cbiAgPFQ+KCkgPT5cbiAgKHN0YXRlOiBTdGF0ZTxUPikgPT5cbiAgICB0cmFuc2ZlcihzdGF0ZSk7XG5cbmNvbnN0IGJhY2t0cmFuc2ZlckZuID1cbiAgPFQ+KCkgPT5cbiAgKHN0YXRlOiBTdGF0ZTxUPikgPT5cbiAgICBiYWNrdHJhbnNmZXIoc3RhdGUpO1xuXG5jb25zdCByZXNldEZuID1cbiAgPFQ+KCkgPT5cbiAgKHN0YXRlOiBTdGF0ZTxUPikgPT5cbiAgICByZXNldChzdGF0ZSk7XG5cbmNvbnN0IHNlbGVjdEFsbFNvdXJjZUZuID1cbiAgPFQ+KHsgY2hlY2tlZCB9OiB7IGNoZWNrZWQ6IGJvb2xlYW4gfSkgPT5cbiAgKHN0YXRlOiBTdGF0ZTxUPikgPT5cbiAgICBzZWxlY3RBbGxTb3VyY2Uoc3RhdGUsIHsgY2hlY2tlZCB9KSBhcyBTdGF0ZTxUPjtcblxuY29uc3Qgc2VsZWN0QWxsVGFyZ2V0Rm4gPVxuICA8VD4oeyBjaGVja2VkIH06IHsgY2hlY2tlZDogYm9vbGVhbiB9KSA9PlxuICAoc3RhdGU6IFN0YXRlPFQ+KSA9PlxuICAgIHNlbGVjdEFsbFRhcmdldChzdGF0ZSwgeyBjaGVja2VkIH0pIGFzIFN0YXRlPFQ+O1xuXG5jb25zdCBzZWxlY3Rpb25JdGVtU291cmNlRm4gPVxuICA8VD4oeyBpdGVtIH06IHsgaXRlbTogVHJhbnNmZXJJdGVtPFQ+IH0pID0+XG4gIChzdGF0ZTogU3RhdGU8VD4pID0+XG4gICAgc2VsZWN0aW9uSXRlbVNvdXJjZShzdGF0ZSwgeyBpdGVtIH0pIGFzIFN0YXRlPFQ+O1xuXG5jb25zdCBzZWxlY3Rpb25JdGVtVGFyZ2V0Rm4gPVxuICA8VD4oeyBpdGVtIH06IHsgaXRlbTogVHJhbnNmZXJJdGVtPFQ+IH0pID0+XG4gIChzdGF0ZTogU3RhdGU8VD4pID0+XG4gICAgc2VsZWN0aW9uSXRlbVRhcmdldChzdGF0ZSwgeyBpdGVtIH0pIGFzIFN0YXRlPFQ+O1xuLy8jZW5kcmVnaW9uXG5cbmV4cG9ydCBkZWZhdWx0IHtcbiAgaW5pdGlhbFN0YXRlRm4sXG4gIGluaXRGbixcbiAgdHJhbnNmZXJGbixcbiAgYmFja3RyYW5zZmVyRm4sXG4gIHJlc2V0Rm4sXG4gIHNlbGVjdEFsbFNvdXJjZUZuLFxuICBzZWxlY3RBbGxUYXJnZXRGbixcbiAgc2VsZWN0aW9uSXRlbVNvdXJjZUZuLFxuICBzZWxlY3Rpb25JdGVtVGFyZ2V0Rm4sXG59O1xuIl19
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
export {};
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNmZXIuc3RhdGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9kZXNpZ24tYW5ndWxhci1raXQvc3JjL2xpYi9jb21wb25lbnRzL2Zvcm0vdHJhbnNmZXIvc3RvcmUvdHJhbnNmZXIuc3RhdGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFRyYW5zZmVySXRlbSB9IGZyb20gJy4uL3RyYW5zZmVyLm1vZGVsJztcblxuZXhwb3J0IGludGVyZmFjZSBTZWxlY3Rpb25TdGF0ZTxUPiB7XG4gIHNvdXJjZTogQXJyYXk8VHJhbnNmZXJJdGVtPFQ+PjtcbiAgdGFyZ2V0OiBBcnJheTxUcmFuc2Zlckl0ZW08VD4+O1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFN0YXRlPFQ+IHtcbiAgaW5pdGlhbEl0ZW1zOiBTZWxlY3Rpb25TdGF0ZTxUPjtcbiAgY3VycmVudDogU2VsZWN0aW9uU3RhdGU8VD47XG4gIHNlbGVjdGlvbnM6IHtcbiAgICBzb3VyY2U6IFNldDxUcmFuc2Zlckl0ZW08VD4+O1xuICAgIHRhcmdldDogU2V0PFRyYW5zZmVySXRlbTxUPj47XG4gIH07XG4gIG9wZXJhdGlvbnNFbmFibGVkOiB7XG4gICAgdHJhbnNmZXI6IGJvb2xlYW47XG4gICAgYmFja3RyYW5zZmVyOiBib29sZWFuO1xuICAgIHJlc2V0OiBib29sZWFuO1xuICB9O1xufVxuIl19
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
import { Injectable } from '@angular/core';
|
|
2
|
+
import { BehaviorSubject, distinctUntilChanged, map, of } from 'rxjs';
|
|
3
|
+
import reducers from './transfer.reducers';
|
|
4
|
+
import * as i0 from "@angular/core";
|
|
5
|
+
export class TransferStore {
|
|
6
|
+
constructor() {
|
|
7
|
+
this._state = new BehaviorSubject(reducers.initialStateFn());
|
|
8
|
+
this.sourceItems = this._state.pipe(map(state => state.current.source));
|
|
9
|
+
this.targetItems = this._state.pipe(map(state => state.current.target));
|
|
10
|
+
this.valueChanged = this._state.pipe(map(state => state.current.target), distinctUntilChanged());
|
|
11
|
+
this.selectItems = (sourceType) => {
|
|
12
|
+
if (sourceType === 'source') {
|
|
13
|
+
return this.sourceItems;
|
|
14
|
+
}
|
|
15
|
+
if (sourceType === 'target') {
|
|
16
|
+
return this.targetItems;
|
|
17
|
+
}
|
|
18
|
+
return of([]);
|
|
19
|
+
};
|
|
20
|
+
this.selectSelectedItems = (sourceType) => {
|
|
21
|
+
if (sourceType === 'source') {
|
|
22
|
+
return this._state.pipe(map(state => state.selections.source));
|
|
23
|
+
}
|
|
24
|
+
if (sourceType === 'target') {
|
|
25
|
+
return this._state.pipe(map(state => state.selections.target));
|
|
26
|
+
}
|
|
27
|
+
return of(new Set());
|
|
28
|
+
};
|
|
29
|
+
this.transferEnabled = this._state.pipe(map(state => state.operationsEnabled.transfer));
|
|
30
|
+
this.backtransferEnabled = this._state.pipe(map(state => state.operationsEnabled.backtransfer));
|
|
31
|
+
this.resetEnabled = this._state.pipe(map(state => state.operationsEnabled.reset));
|
|
32
|
+
}
|
|
33
|
+
init({ source, target }) {
|
|
34
|
+
this.updateState(reducers.initFn({ source, target }));
|
|
35
|
+
}
|
|
36
|
+
transfer() {
|
|
37
|
+
this.updateState(reducers.transferFn());
|
|
38
|
+
}
|
|
39
|
+
backtransfer() {
|
|
40
|
+
this.updateState(reducers.backtransferFn());
|
|
41
|
+
}
|
|
42
|
+
reset() {
|
|
43
|
+
this.updateState(reducers.resetFn());
|
|
44
|
+
}
|
|
45
|
+
checkboxSelection(item, sourceType) {
|
|
46
|
+
if (sourceType === 'source') {
|
|
47
|
+
this.updateState(reducers.selectionItemSourceFn({ item }));
|
|
48
|
+
}
|
|
49
|
+
if (sourceType === 'target') {
|
|
50
|
+
this.updateState(reducers.selectionItemTargetFn({ item }));
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
selectAllSelection(checked, sourceType) {
|
|
54
|
+
if (sourceType === 'source') {
|
|
55
|
+
this.updateState(reducers.selectAllSourceFn({ checked }));
|
|
56
|
+
}
|
|
57
|
+
if (sourceType === 'target') {
|
|
58
|
+
this.updateState(reducers.selectAllTargetFn({ checked }));
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
updateState(reducerFn) {
|
|
62
|
+
this._state.next(reducerFn(this._state.value));
|
|
63
|
+
}
|
|
64
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.6", ngImport: i0, type: TransferStore, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
65
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.0.6", ngImport: i0, type: TransferStore }); }
|
|
66
|
+
}
|
|
67
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.6", ngImport: i0, type: TransferStore, decorators: [{
|
|
68
|
+
type: Injectable
|
|
69
|
+
}] });
|
|
70
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNmZXIuc3RvcmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9kZXNpZ24tYW5ndWxhci1raXQvc3JjL2xpYi9jb21wb25lbnRzL2Zvcm0vdHJhbnNmZXIvc3RvcmUvdHJhbnNmZXIuc3RvcmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzQyxPQUFPLEVBQUUsZUFBZSxFQUFFLG9CQUFvQixFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFFdEUsT0FBTyxRQUFRLE1BQU0scUJBQXFCLENBQUM7O0FBSTNDLE1BQU0sT0FBTyxhQUFhO0lBRDFCO1FBRW1CLFdBQU0sR0FBRyxJQUFJLGVBQWUsQ0FBVyxRQUFRLENBQUMsY0FBYyxFQUFFLENBQUMsQ0FBQztRQUVsRSxnQkFBVyxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQztRQUVuRSxnQkFBVyxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQztRQUUzRSxpQkFBWSxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUN0QyxHQUFHLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxFQUNsQyxvQkFBb0IsRUFBRSxDQUN2QixDQUFDO1FBRU8sZ0JBQVcsR0FBRyxDQUFDLFVBQXNCLEVBQUUsRUFBRTtZQUNoRCxJQUFJLFVBQVUsS0FBSyxRQUFRLEVBQUUsQ0FBQztnQkFDNUIsT0FBTyxJQUFJLENB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Q0FBQyxXQUFXLENBQUMsUUFBUSxDQUFDLGlCQUFpQixDQUFDLEVBQUUsT0FBTyxFQUFFLENBQUMsQ0FBQyxDQUFDO1FBQzVELENBQUM7SUFDSCxDQUFDO0lBRU8sV0FBVyxDQUFDLFNBQXdDO1FBQzFELElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7SUFDakQsQ0FBQzs4R0EvRVUsYUFBYTtrSEFBYixhQUFhOzsyRkFBYixhQUFhO2tCQUR6QixVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0LCBkaXN0aW5jdFVudGlsQ2hhbmdlZCwgbWFwLCBvZiB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgU291cmNlVHlwZSwgVHJhbnNmZXJJdGVtIH0gZnJvbSAnLi4vdHJhbnNmZXIubW9kZWwnO1xuaW1wb3J0IHJlZHVjZXJzIGZyb20gJy4vdHJhbnNmZXIucmVkdWNlcnMnO1xuaW1wb3J0IHsgU2VsZWN0aW9uU3RhdGUsIFN0YXRlIH0gZnJvbSAnLi90cmFuc2Zlci5zdGF0ZSc7XG5cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBUcmFuc2ZlclN0b3JlPFQ+IHtcbiAgcHJpdmF0ZSByZWFkb25seSBfc3RhdGUgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PFN0YXRlPFQ+PihyZWR1Y2Vycy5pbml0aWFsU3RhdGVGbigpKTtcblxuICBwcml2YXRlIHJlYWRvbmx5IHNvdXJjZUl0ZW1zID0gdGhpcy5fc3RhdGUucGlwZShtYXAoc3RhdGUgPT4gc3RhdGUuY3VycmVudC5zb3VyY2UpKTtcblxuICBwcml2YXRlIHJlYWRvbmx5IHRhcmdldEl0ZW1zID0gdGhpcy5fc3RhdGUucGlwZShtYXAoc3RhdGUgPT4gc3RhdGUuY3VycmVudC50YXJnZXQpKTtcblxuICByZWFkb25seSB2YWx1ZUNoYW5nZWQgPSB0aGlzLl9zdGF0ZS5waXBlKFxuICAgIG1hcChzdGF0ZSA9PiBzdGF0ZS5jdXJyZW50LnRhcmdldCksXG4gICAgZGlzdGluY3RVbnRpbENoYW5nZWQoKVxuICApO1xuXG4gIHJlYWRvbmx5IHNlbGVjdEl0ZW1zID0gKHNvdXJjZVR5cGU6IFNvdXJjZVR5cGUpID0+IHtcbiAgICBpZiAoc291cmNlVHlwZSA9PT0gJ3NvdXJjZScpIHtcbiAgICAgIHJldHVybiB0aGlzLnNvdXJjZUl0ZW1zO1xuICAgIH1cblxuICAgIGlmIChzb3VyY2VUeXBlID09PSAndGFyZ2V0Jykge1xuICAgICAgcmV0dXJuIHRoaXMudGFyZ2V0SXRlbXM7XG4gICAgfVxuXG4gICAgcmV0dXJuIG9mPFRyYW5zZmVySXRlbTxUPltdPihbXSk7XG4gIH07XG5cbiAgcmVhZG9ubHkgc2VsZWN0U2VsZWN0ZWRJdGVtcyA9IChzb3VyY2VUeXBlOiBTb3VyY2VUeXBlKSA9PiB7XG4gICAgaWYgKHNvdXJjZVR5cGUgPT09ICdzb3VyY2UnKSB7XG4gICAgICByZXR1cm4gdGhpcy5fc3RhdGUucGlwZShtYXAoc3RhdGUgPT4gc3RhdGUuc2VsZWN0aW9ucy5zb3VyY2UpKTtcbiAgICB9XG5cbiAgICBpZiAoc291cmNlVHlwZSA9PT0gJ3RhcmdldCcpIHtcbiAgICAgIHJldHVybiB0aGlzLl9zdGF0ZS5waXBlKG1hcChzdGF0ZSA9PiBzdGF0ZS5zZWxlY3Rpb25zLnRhcmdldCkpO1xuICAgIH1cblxuICAgIHJldHVybiBvZihuZXcgU2V0PFRyYW5zZmVySXRlbTxUPj4oKSk7XG4gIH07XG5cbiAgcmVhZG9ubHkgdHJhbnNmZXJFbmFibGVkID0gdGhpcy5fc3RhdGUucGlwZShtYXAoc3RhdGUgPT4gc3RhdGUub3BlcmF0aW9uc0VuYWJsZWQudHJhbnNmZXIpKTtcblxuICByZWFkb25seSBiYWNrdHJhbnNmZXJFbmFibGVkID0gdGhpcy5fc3RhdGUucGlwZShtYXAoc3RhdGUgPT4gc3RhdGUub3BlcmF0aW9uc0VuYWJsZWQuYmFja3RyYW5zZmVyKSk7XG5cbiAgcmVhZG9ubHkgcmVzZXRFbmFibGVkID0gdGhpcy5fc3RhdGUucGlwZShtYXAoc3RhdGUgPT4gc3RhdGUub3BlcmF0aW9uc0VuYWJsZWQucmVzZXQpKTtcblxuICBpbml0KHsgc291cmNlLCB0YXJnZXQgfTogU2VsZWN0aW9uU3RhdGU8VD4pIHtcbiAgICB0aGlzLnVwZGF0ZVN0YXRlKHJlZHVjZXJzLmluaXRGbih7IHNvdXJjZSwgdGFyZ2V0IH0pKTtcbiAgfVxuXG4gIHRyYW5zZmVyKCkge1xuICAgIHRoaXMudXBkYXRlU3RhdGUocmVkdWNlcnMudHJhbnNmZXJGbigpKTtcbiAgfVxuICBiYWNrdHJhbnNmZXIoKSB7XG4gICAgdGhpcy51cGRhdGVTdGF0ZShyZWR1Y2Vycy5iYWNrdHJhbnNmZXJGbigpKTtcbiAgfVxuXG4gIHJlc2V0KCkge1xuICAgIHRoaXMudXBkYXRlU3RhdGUocmVkdWNlcnMucmVzZXRGbigpKTtcbiAgfVxuXG4gIGNoZWNrYm94U2VsZWN0aW9uKGl0ZW06IFRyYW5zZmVySXRlbTxUPiwgc291cmNlVHlwZTogU291cmNlVHlwZSkge1xuICAgIGlmIChzb3VyY2VUeXBlID09PSAnc291cmNlJykge1xuICAgICAgdGhpcy51cGRhdGVTdGF0ZShyZWR1Y2Vycy5zZWxlY3Rpb25JdGVtU291cmNlRm4oeyBpdGVtIH0pKTtcbiAgICB9XG5cbiAgICBpZiAoc291cmNlVHlwZSA9PT0gJ3RhcmdldCcpIHtcbiAgICAgIHRoaXMudXBkYXRlU3RhdGUocmVkdWNlcnMuc2VsZWN0aW9uSXRlbVRhcmdldEZuKHsgaXRlbSB9KSk7XG4gICAgfVxuICB9XG5cbiAgc2VsZWN0QWxsU2VsZWN0aW9uKGNoZWNrZWQ6IGJvb2xlYW4sIHNvdXJjZVR5cGU6IFNvdXJjZVR5cGUpIHtcbiAgICBpZiAoc291cmNlVHlwZSA9PT0gJ3NvdXJjZScpIHtcbiAgICAgIHRoaXMudXBkYXRlU3RhdGUocmVkdWNlcnMuc2VsZWN0QWxsU291cmNlRm4oeyBjaGVja2VkIH0pKTtcbiAgICB9XG5cbiAgICBpZiAoc291cmNlVHlwZSA9PT0gJ3RhcmdldCcpIHtcbiAgICAgIHRoaXMudXBkYXRlU3RhdGUocmVkdWNlcnMuc2VsZWN0QWxsVGFyZ2V0Rm4oeyBjaGVja2VkIH0pKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIHVwZGF0ZVN0YXRlKHJlZHVjZXJGbjogKHN0YXRlOiBTdGF0ZTxUPikgPT4gU3RhdGU8VD4pIHtcbiAgICB0aGlzLl9zdGF0ZS5uZXh0KHJlZHVjZXJGbih0aGlzLl9zdGF0ZS52YWx1ZSkpO1xuICB9XG59XG4iXX0=
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
import { AsyncPipe, TitleCasePipe } from '@angular/common';
|
|
2
|
+
import { ChangeDetectionStrategy, Component, HostAttributeToken, inject, ViewChild } from '@angular/core';
|
|
3
|
+
import { takeUntilDestroyed } from '@angular/core/rxjs-interop';
|
|
4
|
+
import { combineLatest, distinctUntilChanged, map, shareReplay, skip, startWith, tap } from 'rxjs';
|
|
5
|
+
import { ItAbstractComponent } from '../../../../abstracts/abstract.component';
|
|
6
|
+
import * as i0 from "@angular/core";
|
|
7
|
+
import * as i1 from "../store/transfer.store";
|
|
8
|
+
export class ItTransferListComponent extends ItAbstractComponent {
|
|
9
|
+
constructor(store) {
|
|
10
|
+
super();
|
|
11
|
+
this.store = store;
|
|
12
|
+
/**
|
|
13
|
+
* Widget title
|
|
14
|
+
*/
|
|
15
|
+
this.title = inject(new HostAttributeToken('title'), { optional: true });
|
|
16
|
+
this.sourceType = inject(new HostAttributeToken('sourceType'), { optional: true });
|
|
17
|
+
this.items = this.store.selectItems(this.sourceType).pipe(distinctUntilChanged(), shareReplay());
|
|
18
|
+
this.selected = this.store.selectSelectedItems(this.sourceType).pipe(distinctUntilChanged(), shareReplay());
|
|
19
|
+
this.numberOfItems$ = this.items.pipe(map(items => ({ length: items.length })), startWith({ length: 0 }));
|
|
20
|
+
this.selectAllDisabled = this.items.pipe(map(items => items.length === 0));
|
|
21
|
+
/**
|
|
22
|
+
* Items of the list
|
|
23
|
+
* @default []
|
|
24
|
+
*/
|
|
25
|
+
this.items$ = combineLatest([this.items, this.selected]).pipe(map(([items, selected]) => items.map(item => {
|
|
26
|
+
item.selected = selected.has(item);
|
|
27
|
+
return item;
|
|
28
|
+
})));
|
|
29
|
+
this.instanceId = this.getInstanceId();
|
|
30
|
+
this.onItemsUpdate();
|
|
31
|
+
}
|
|
32
|
+
/**
|
|
33
|
+
* Checkbox selection click handler
|
|
34
|
+
*/
|
|
35
|
+
checkboxSelectionHandler(item) {
|
|
36
|
+
this.store.checkboxSelection(item, this.sourceType);
|
|
37
|
+
}
|
|
38
|
+
/**
|
|
39
|
+
* Checkbox select all selection handler
|
|
40
|
+
*/
|
|
41
|
+
checkboxSelectAllHandler(event) {
|
|
42
|
+
const checked = event.target.checked;
|
|
43
|
+
this.store.selectAllSelection(checked, this.sourceType);
|
|
44
|
+
}
|
|
45
|
+
/**
|
|
46
|
+
* Items update subscription
|
|
47
|
+
*/
|
|
48
|
+
onItemsUpdate() {
|
|
49
|
+
this.items
|
|
50
|
+
.pipe(takeUntilDestroyed(), skip(1), tap(() => {
|
|
51
|
+
if (this.selectAllCheckboxRef) {
|
|
52
|
+
this.selectAllCheckboxRef.nativeElement.checked = false;
|
|
53
|
+
}
|
|
54
|
+
}))
|
|
55
|
+
.subscribe();
|
|
56
|
+
}
|
|
57
|
+
getInstanceId() {
|
|
58
|
+
return Math.floor(Math.random() * 100000000).toString();
|
|
59
|
+
}
|
|
60
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.6", ngImport: i0, type: ItTransferListComponent, deps: [{ token: i1.TransferStore }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
61
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.0.6", type: ItTransferListComponent, isStandalone: true, selector: "it-transfer-list", viewQueries: [{ propertyName: "selectAllCheckboxRef", first: true, predicate: ["selectAllCheckbox"], descendants: true }], usesInheritance: true, ngImport: i0, template: "<div class=\"it-transfer-wrapper source\">\n <div class=\"transfer-header\">\n <div class=\"form-check\" aria-describedby=\"\">\n <input\n #selectAllCheckbox\n type=\"checkbox\"\n id=\"{{ instanceId }}checkbox{{ title }}\"\n [disabled]=\"selectAllDisabled | async\"\n (click)=\"checkboxSelectAllHandler($event)\" />\n <label for=\"{{ instanceId }}checkbox{{ title }}\">\n <span>\n @if (numberOfItems$ | async; as numberOfItems) {\n <span class=\"num\"> {{ numberOfItems.length }} </span>\n <span> {{ numberOfItems.length > 1 ? 'ITEMS' : 'ITEM' }} </span>\n }\n </span>\n <span class=\"descr\">{{ title | titlecase }}</span>\n </label>\n </div>\n <!-- form check -->\n </div>\n <!-- transfer-header -->\n <div class=\"transfer-scroll\">\n <div class=\"transfer-group\">\n @for (item of items$ | async; track item.value) {\n <div class=\"form-check\" aria-describedby=\"\">\n <input\n type=\"checkbox\"\n id=\"{{ instanceId }}-{{ item.value }}\"\n [checked]=\"item.selected\"\n (click)=\"checkboxSelectionHandler(item)\" />\n <label for=\"{{ instanceId }}-{{ item.value }}\">\n <span>\n <span>{{ item.text }}</span>\n </span>\n </label>\n </div>\n }\n </div>\n </div>\n</div>\n<!-- it-transfer-wrapper -->\n", dependencies: [{ kind: "pipe", type: AsyncPipe, name: "async" }, { kind: "pipe", type: TitleCasePipe, name: "titlecase" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
62
|
+
}
|
|
63
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.6", ngImport: i0, type: ItTransferListComponent, decorators: [{
|
|
64
|
+
type: Component,
|
|
65
|
+
args: [{ selector: 'it-transfer-list', standalone: true, imports: [AsyncPipe, TitleCasePipe], changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"it-transfer-wrapper source\">\n <div class=\"transfer-header\">\n <div class=\"form-check\" aria-describedby=\"\">\n <input\n #selectAllCheckbox\n type=\"checkbox\"\n id=\"{{ instanceId }}checkbox{{ title }}\"\n [disabled]=\"selectAllDisabled | async\"\n (click)=\"checkboxSelectAllHandler($event)\" />\n <label for=\"{{ instanceId }}checkbox{{ title }}\">\n <span>\n @if (numberOfItems$ | async; as numberOfItems) {\n <span class=\"num\"> {{ numberOfItems.length }} </span>\n <span> {{ numberOfItems.length > 1 ? 'ITEMS' : 'ITEM' }} </span>\n }\n </span>\n <span class=\"descr\">{{ title | titlecase }}</span>\n </label>\n </div>\n <!-- form check -->\n </div>\n <!-- transfer-header -->\n <div class=\"transfer-scroll\">\n <div class=\"transfer-group\">\n @for (item of items$ | async; track item.value) {\n <div class=\"form-check\" aria-describedby=\"\">\n <input\n type=\"checkbox\"\n id=\"{{ instanceId }}-{{ item.value }}\"\n [checked]=\"item.selected\"\n (click)=\"checkboxSelectionHandler(item)\" />\n <label for=\"{{ instanceId }}-{{ item.value }}\">\n <span>\n <span>{{ item.text }}</span>\n </span>\n </label>\n </div>\n }\n </div>\n </div>\n</div>\n<!-- it-transfer-wrapper -->\n" }]
|
|
66
|
+
}], ctorParameters: () => [{ type: i1.TransferStore }], propDecorators: { selectAllCheckboxRef: [{
|
|
67
|
+
type: ViewChild,
|
|
68
|
+
args: ['selectAllCheckbox']
|
|
69
|
+
}] } });
|
|
70
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNmZXItbGlzdC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9kZXNpZ24tYW5ndWxhci1raXQvc3JjL2xpYi9jb21wb25lbnRzL2Zvcm0vdHJhbnNmZXIvdHJhbnNmZXItbGlzdC90cmFuc2Zlci1saXN0LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Rlc2lnbi1hbmd1bGFyLWtpdC9zcmMvbGliL2NvbXBvbmVudHMvZm9ybS90cmFuc2Zlci90cmFuc2Zlci1saXN0L3RyYW5zZmVyLWxpc3QuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxhQUFhLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMzRCxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsU0FBUyxFQUFjLGtCQUFrQixFQUFFLE1BQU0sRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDdEgsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDaEUsT0FBTyxFQUFFLGFBQWEsRUFBRSxvQkFBb0IsRUFBRSxHQUFHLEVBQUUsV0FBVyxFQUFFLElBQUksRUFBRSxTQUFTLEVBQUUsR0FBRyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ25HLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLDBDQUEwQyxDQUFDOzs7QUFnQi9FLE1BQU0sT0FBTyx1QkFBMkIsU0FBUSxtQkFBbUI7SUFrQ2pFLFlBQTZCLEtBQXVCO1FBQ2xELEtBQUssRUFBRSxDQUFDO1FBRG1CLFVBQUssR0FBTCxLQUFLLENBQWtCO1FBakNwRDs7V0FFRztRQUNNLFVBQUssR0FBRyxNQUFNLENBQUMsSUFBSSxrQkFBa0IsQ0FBQyxPQUFPLENBQUMsRUFBRSxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDO1FB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QixjQUNoQixJQUFJLFdBQ1AsQ0FBQyxTQUFTLEVBQUUsYUFBYSxDQUFDLG1CQUVsQix1QkFBdUIsQ0FBQyxNQUFNO2tGQWdDL0Msb0JBQW9CO3NCQURuQixTQUFTO3VCQUFDLG1CQUFtQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFzeW5jUGlwZSwgVGl0bGVDYXNlUGlwZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ29tcG9uZW50LCBFbGVtZW50UmVmLCBIb3N0QXR0cmlidXRlVG9rZW4sIGluamVjdCwgVmlld0NoaWxkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyB0YWtlVW50aWxEZXN0cm95ZWQgfSBmcm9tICdAYW5ndWxhci9jb3JlL3J4anMtaW50ZXJvcCc7XG5pbXBvcnQgeyBjb21iaW5lTGF0ZXN0LCBkaXN0aW5jdFVudGlsQ2hhbmdlZCwgbWFwLCBzaGFyZVJlcGxheSwgc2tpcCwgc3RhcnRXaXRoLCB0YXAgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IEl0QWJzdHJhY3RDb21wb25lbnQgfSBmcm9tICcuLi8uLi8uLi8uLi9hYnN0cmFjdHMvYWJzdHJhY3QuY29tcG9uZW50JztcbmltcG9ydCB7IFRyYW5zZmVyU3RvcmUgfSBmcm9tICcuLi9zdG9yZS90cmFuc2Zlci5zdG9yZSc7XG5cbmltcG9ydCB7IFNvdXJjZVR5cGUsIFRyYW5zZmVySXRlbSB9IGZyb20gJy4uL3RyYW5zZmVyLm1vZGVsJztcblxuaW50ZXJmYWNlIFNlbGVjdGFibGVUcmFuc2Zlckl0ZW08VD4gZXh0ZW5kcyBUcmFuc2Zlckl0ZW08VD4ge1xuICBzZWxlY3RlZDogYm9vbGVhbjtcbn1cblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnaXQtdHJhbnNmZXItbGlzdCcsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtBc3luY1BpcGUsIFRpdGxlQ2FzZVBpcGVdLFxuICB0ZW1wbGF0ZVVybDogJy4vdHJhbnNmZXItbGlzdC5jb21wb25lbnQuaHRtbCcsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxufSlcbmV4cG9ydCBjbGFzcyBJdFRyYW5zZmVyTGlzdENvbXBvbmVudDxUPiBleHRlbmRzIEl0QWJzdHJhY3RDb21wb25lbnQge1xuICAvKipcbiAgICogV2lkZ2V0IHRpdGxlXG4gICAqL1xuICByZWFkb25seSB0aXRsZSA9IGluamVjdChuZXcgSG9zdEF0dHJpYnV0ZVRva2VuKCd0aXRsZScpLCB7IG9wdGlvbmFsOiB0cnVlIH0pO1xuXG4gIHJlYWRvbmx5IHNvdXJjZVR5cGUgPSBpbmplY3QobmV3IEhvc3RBdHRyaWJ1dGVUb2tlbignc291cmNlVHlwZScpLCB7IG9wdGlvbmFsOiB0cnVlIH0pIGFzIFNvdXJjZVR5cGU7XG5cbiAgcHJpdmF0ZSByZWFkb25seSBpdGVtcyA9IHRoaXMuc3RvcmUuc2VsZWN0SXRlbXModGhpcy5zb3VyY2VUeXBlKS5waXBlKGRpc3RpbmN0VW50aWxDaGFuZ2VkKCksIHNoYXJlUmVwbGF5KCkpO1xuICBwcml2YXRlIHJlYWRvbmx5IHNlbGVjdGVkID0gdGhpcy5zdG9yZS5zZWxlY3RTZWxlY3RlZEl0ZW1zKHRoaXMuc291cmNlVHlwZSkucGlwZShkaXN0aW5jdFVudGlsQ2hhbmdlZCgpLCBzaGFyZVJlcGxheSgpKTtcblxuICByZWFkb25seSBudW1iZXJPZkl0ZW1zJCA9IHRoaXMuaXRlbXMucGlwZShcbiAgICBtYXAoaXRlbXMgPT4gKHsgbGVuZ3RoOiBpdGVtcy5sZW5ndGggfSkpLFxuICAgIHN0YXJ0V2l0aCh7IGxlbmd0aDogMCB9KVxuICApO1xuICByZWFkb25seSBzZWxlY3RBbGxEaXNhYmxlZCA9IHRoaXMuaXRlbXMucGlwZShtYXAoaXRlbXMgPT4gaXRlbXMubGVuZ3RoID09PSAwKSk7XG4gIC8qKlxuICAgKiBJdGVtcyBvZiB0aGUgbGlzdFxuICAgKiBAZGVmYXVsdCBbXVxuICAgKi9cbiAgcmVhZG9ubHkgaXRlbXMkID0gY29tYmluZUxhdGVzdChbdGhpcy5pdGVtcywgdGhpcy5zZWxlY3RlZF0pLnBpcGUoXG4gICAgbWFwKChbaXRlbXMsIHNlbGVjdGVkXSkgPT5cbiAgICAgIGl0ZW1zLm1hcChpdGVtID0+IHtcbiAgICAgICAgKGl0ZW0gYXMgU2VsZWN0YWJsZVRyYW5zZmVySXRlbTxUPikuc2VsZWN0ZWQgPSBzZWxlY3RlZC5oYXMoaXRlbSk7XG4gICAgICAgIHJldHVybiBpdGVtIGFzIFNlbGVjdGFibGVUcmFuc2Zlckl0ZW08VD47XG4gICAgICB9KVxuICAgIClcbiAgKTtcblxuICBAVmlld0NoaWxkKCdzZWxlY3RBbGxDaGVja2JveCcpXG4gIHNlbGVjdEFsbENoZWNrYm94UmVmITogRWxlbWVudFJlZjxIVE1MSW5wdXRFbGVtZW50PjtcblxuICByZWFkb25seSBpbnN0YW5jZUlkID0gdGhpcy5nZXRJbnN0YW5jZUlkKCk7XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSByZWFkb25seSBzdG9yZTogVHJhbnNmZXJTdG9yZTxUPikge1xuICAgIHN1cGVyKCk7XG4gICAgdGhpcy5vbkl0ZW1zVXBkYXRlKCk7XG4gIH1cbiAgLyoqXG4gICAqIENoZWNrYm94IHNlbGVjdGlvbiBjbGljayBoYW5kbGVyXG4gICAqL1xuICBjaGVja2JveFNlbGVjdGlvbkhhbmRsZXIoaXRlbTogVHJhbnNmZXJJdGVtPFQ+KSB7XG4gICAgdGhpcy5zdG9yZS5jaGVja2JveFNlbGVjdGlvbihpdGVtLCB0aGlzLnNvdXJjZVR5cGUpO1xuICB9XG4gIC8qKlxuICAgKiBDaGVja2JveCBzZWxlY3QgYWxsIHNlbGVjdGlvbiBoYW5kbGVyXG4gICAqL1xuICBjaGVja2JveFNlbGVjdEFsbEhhbmRsZXIoZXZlbnQ6IEV2ZW50KSB7XG4gICAgY29uc3QgY2hlY2tlZCA9ICgoZXZlbnQgYXMgUG9pbnRlckV2ZW50KS50YXJnZXQgYXMgSFRNTElucHV0RWxlbWVudCkuY2hlY2tlZDtcbiAgICB0aGlzLnN0b3JlLnNlbGVjdEFsbFNlbGVjdGlvbihjaGVja2VkLCB0aGlzLnNvdXJjZVR5cGUpO1xuICB9XG5cbiAgLyoqXG4gICAqIEl0ZW1zIHVwZGF0ZSBzdWJzY3JpcHRpb25cbiAgICovXG4gIHByaXZhdGUgb25JdGVtc1VwZGF0ZSgpIHtcbiAgICB0aGlzLml0ZW1zXG4gICAgICAucGlwZShcbiAgICAgICAgdGFrZVVudGlsRGVzdHJveWVkKCksXG4gICAgICAgIHNraXAoMSksXG4gICAgICAgIHRhcCgoKSA9PiB7XG4gICAgICAgICAgaWYgKHRoaXMuc2VsZWN0QWxsQ2hlY2tib3hSZWYpIHtcbiAgICAgICAgICAgIHRoaXMuc2VsZWN0QWxsQ2hlY2tib3hSZWYubmF0aXZlRWxlbWVudC5jaGVja2VkID0gZmFsc2U7XG4gICAgICAgICAgfVxuICAgICAgICB9KVxuICAgICAgKVxuICAgICAgLnN1YnNjcmliZSgpO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXRJbnN0YW5jZUlkKCkge1xuICAgIHJldHVybiBNYXRoLmZsb29yKE1hdGgucmFuZG9tKCkgKiAxMDAwMDAwMDApLnRvU3RyaW5nKCk7XG4gIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJpdC10cmFuc2Zlci13cmFwcGVyIHNvdXJjZVwiPlxuICA8ZGl2IGNsYXNzPVwidHJhbnNmZXItaGVhZGVyXCI+XG4gICAgPGRpdiBjbGFzcz1cImZvcm0tY2hlY2tcIiBhcmlhLWRlc2NyaWJlZGJ5PVwiXCI+XG4gICAgICA8aW5wdXRcbiAgICAgICAgI3NlbGVjdEFsbENoZWNrYm94XG4gICAgICAgIHR5cGU9XCJjaGVja2JveFwiXG4gICAgICAgIGlkPVwie3sgaW5zdGFuY2VJZCB9fWNoZWNrYm94e3sgdGl0bGUgfX1cIlxuICAgICAgICBbZGlzYWJsZWRdPVwic2VsZWN0QWxsRGlzYWJsZWQgfCBhc3luY1wiXG4gICAgICAgIChjbGljayk9XCJjaGVja2JveFNlbGVjdEFsbEhhbmRsZXIoJGV2ZW50KVwiIC8+XG4gICAgICA8bGFiZWwgZm9yPVwie3sgaW5zdGFuY2VJZCB9fWNoZWNrYm94e3sgdGl0bGUgfX1cIj5cbiAgICAgICAgPHNwYW4+XG4gICAgICAgICAgQGlmIChudW1iZXJPZkl0ZW1zJCB8IGFzeW5jOyBhcyBudW1iZXJPZkl0ZW1zKSB7XG4gICAgICAgICAgICA8c3BhbiBjbGFzcz1cIm51bVwiPiB7eyBudW1iZXJPZkl0ZW1zLmxlbmd0aCB9fSA8L3NwYW4+XG4gICAgICAgICAgICA8c3Bhbj4ge3sgbnVtYmVyT2ZJdGVtcy5sZW5ndGggPiAxID8gJ0lURU1TJyA6ICdJVEVNJyB9fSA8L3NwYW4+XG4gICAgICAgICAgfVxuICAgICAgICA8L3NwYW4+XG4gICAgICAgIDxzcGFuIGNsYXNzPVwiZGVzY3JcIj57eyB0aXRsZSB8IHRpdGxlY2FzZSB9fTwvc3Bhbj5cbiAgICAgIDwvbGFiZWw+XG4gICAgPC9kaXY+XG4gICAgPCEtLSBmb3JtIGNoZWNrIC0tPlxuICA8L2Rpdj5cbiAgPCEtLSB0cmFuc2Zlci1oZWFkZXIgLS0+XG4gIDxkaXYgY2xhc3M9XCJ0cmFuc2Zlci1zY3JvbGxcIj5cbiAgICA8ZGl2IGNsYXNzPVwidHJhbnNmZXItZ3JvdXBcIj5cbiAgICAgIEBmb3IgKGl0ZW0gb2YgaXRlbXMkIHwgYXN5bmM7IHRyYWNrIGl0ZW0udmFsdWUpIHtcbiAgICAgICAgPGRpdiBjbGFzcz1cImZvcm0tY2hlY2tcIiBhcmlhLWRlc2NyaWJlZGJ5PVwiXCI+XG4gICAgICAgICAgPGlucHV0XG4gICAgICAgICAgICB0eXBlPVwiY2hlY2tib3hcIlxuICAgICAgICAgICAgaWQ9XCJ7eyBpbnN0YW5jZUlkIH19LXt7IGl0ZW0udmFsdWUgfX1cIlxuICAgICAgICAgICAgW2NoZWNrZWRdPVwiaXRlbS5zZWxlY3RlZFwiXG4gICAgICAgICAgICAoY2xpY2spPVwiY2hlY2tib3hTZWxlY3Rpb25IYW5kbGVyKGl0ZW0pXCIgLz5cbiAgICAgICAgICA8bGFiZWwgZm9yPVwie3sgaW5zdGFuY2VJZCB9fS17eyBpdGVtLnZhbHVlIH19XCI+XG4gICAgICAgICAgICA8c3Bhbj5cbiAgICAgICAgICAgICAgPHNwYW4+e3sgaXRlbS50ZXh0IH19PC9zcGFuPlxuICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgIDwvbGFiZWw+XG4gICAgICAgIDwvZGl2PlxuICAgICAgfVxuICAgIDwvZGl2PlxuICA8L2Rpdj5cbjwvZGl2PlxuPCEtLSBpdC10cmFuc2Zlci13cmFwcGVyIC0tPlxuIl19
|
|
@@ -0,0 +1,147 @@
|
|
|
1
|
+
import { AsyncPipe, NgClass } from '@angular/common';
|
|
2
|
+
import { ChangeDetectionStrategy, Component, DestroyRef, EventEmitter, inject, Input, Optional, Output, Self } from '@angular/core';
|
|
3
|
+
import { takeUntilDestroyed } from '@angular/core/rxjs-interop';
|
|
4
|
+
import { FormControlName, NgModel, ReactiveFormsModule } from '@angular/forms';
|
|
5
|
+
import { tap } from 'rxjs';
|
|
6
|
+
import { ItAbstractFormComponent } from '../../../abstracts/abstract-form.component';
|
|
7
|
+
import { TransferStore } from './store/transfer.store';
|
|
8
|
+
import { ItTransferListComponent } from './transfer-list/transfer-list.component';
|
|
9
|
+
import * as i0 from "@angular/core";
|
|
10
|
+
import * as i1 from "@angular/forms";
|
|
11
|
+
import * as i2 from "@ngx-translate/core";
|
|
12
|
+
import * as i3 from "./store/transfer.store";
|
|
13
|
+
/**
|
|
14
|
+
* Transfer
|
|
15
|
+
* @description Component that allows the creation of checkbox lists.
|
|
16
|
+
*/
|
|
17
|
+
export class ItTransferComponent extends ItAbstractFormComponent {
|
|
18
|
+
constructor(_ngControl, _translateService, store) {
|
|
19
|
+
super(_translateService, _ngControl);
|
|
20
|
+
this._ngControl = _ngControl;
|
|
21
|
+
this._translateService = _translateService;
|
|
22
|
+
this.store = store;
|
|
23
|
+
/**
|
|
24
|
+
* The select options (left side)
|
|
25
|
+
*/
|
|
26
|
+
this.options = [];
|
|
27
|
+
/**
|
|
28
|
+
* The selected options (right side)
|
|
29
|
+
*/
|
|
30
|
+
this.selected = [];
|
|
31
|
+
/**
|
|
32
|
+
* Fired when there is a transfer, a backtransfer or a reset event
|
|
33
|
+
*/
|
|
34
|
+
this.transferChanges = new EventEmitter();
|
|
35
|
+
/**
|
|
36
|
+
* Enable transfer button
|
|
37
|
+
* @default false
|
|
38
|
+
*/
|
|
39
|
+
this.transferEnabled = this.store.transferEnabled;
|
|
40
|
+
/**
|
|
41
|
+
* Enable backtransfer button
|
|
42
|
+
* @default false
|
|
43
|
+
*/
|
|
44
|
+
this.backtransferEnabled = this.store.backtransferEnabled;
|
|
45
|
+
/**
|
|
46
|
+
* Enable reset button
|
|
47
|
+
* @default false
|
|
48
|
+
*/
|
|
49
|
+
this.resetEnabled = this.store.resetEnabled;
|
|
50
|
+
this.destroyRef = inject(DestroyRef);
|
|
51
|
+
}
|
|
52
|
+
ngOnInit() {
|
|
53
|
+
super.ngOnInit();
|
|
54
|
+
this.storeInit();
|
|
55
|
+
this.onStoreValueChanged();
|
|
56
|
+
}
|
|
57
|
+
/**
|
|
58
|
+
* Transfer button click handler
|
|
59
|
+
*/
|
|
60
|
+
transferClickHandler(event) {
|
|
61
|
+
this.buttonEventHandler(event, () => this.store.transfer());
|
|
62
|
+
}
|
|
63
|
+
/**
|
|
64
|
+
* Transfer button keypress handler
|
|
65
|
+
*/
|
|
66
|
+
transferKeyPressHandler(event) {
|
|
67
|
+
this.buttonEventHandler(event, () => this.store.transfer());
|
|
68
|
+
}
|
|
69
|
+
/**
|
|
70
|
+
* Backtransfer button click handler
|
|
71
|
+
*/
|
|
72
|
+
backtransferClickHandler(event) {
|
|
73
|
+
this.buttonEventHandler(event, () => this.store.backtransfer());
|
|
74
|
+
}
|
|
75
|
+
/**
|
|
76
|
+
* Backtransfer button keypress handler
|
|
77
|
+
*/
|
|
78
|
+
backtransferKeyPressHandler(event) {
|
|
79
|
+
this.buttonEventHandler(event, () => this.store.backtransfer());
|
|
80
|
+
}
|
|
81
|
+
/**
|
|
82
|
+
* Reset button click handler
|
|
83
|
+
*/
|
|
84
|
+
resetClickHandler(event) {
|
|
85
|
+
this.buttonEventHandler(event, () => this.store.reset());
|
|
86
|
+
}
|
|
87
|
+
/**
|
|
88
|
+
* Reset button keypress handler
|
|
89
|
+
*/
|
|
90
|
+
resetKeyPressHandler(event) {
|
|
91
|
+
this.buttonEventHandler(event, () => this.store.reset());
|
|
92
|
+
}
|
|
93
|
+
buttonEventHandler(event, updateStoreCb) {
|
|
94
|
+
event.preventDefault();
|
|
95
|
+
updateStoreCb();
|
|
96
|
+
}
|
|
97
|
+
storeInit() {
|
|
98
|
+
let target = [];
|
|
99
|
+
const ngControl = this._ngControl;
|
|
100
|
+
const isNgControlDefined = Boolean(this._ngControl);
|
|
101
|
+
// if ngControl is defined, take values from it. Input() target will be ignored
|
|
102
|
+
if (isNgControlDefined) {
|
|
103
|
+
console.debug('ngControl instanceof NgModel:', ngControl instanceof NgModel);
|
|
104
|
+
console.debug('ngControl instanceof FormControlName:', ngControl instanceof FormControlName);
|
|
105
|
+
// if ngControl is an ngModel (template-driven form use case), take values from it
|
|
106
|
+
if (ngControl instanceof NgModel) {
|
|
107
|
+
console.debug('ngControl instanceof NgModel');
|
|
108
|
+
const model = ngControl.model;
|
|
109
|
+
target = Array.isArray(model) ? model : [];
|
|
110
|
+
}
|
|
111
|
+
// if ngControl is an FormControlName (reactive form use case), take values from it
|
|
112
|
+
if (ngControl instanceof FormControlName) {
|
|
113
|
+
console.debug('ngControl instanceof FormControlName');
|
|
114
|
+
const model = ngControl.control.value;
|
|
115
|
+
target = Array.isArray(model) ? model : [];
|
|
116
|
+
}
|
|
117
|
+
console.debug('ngControl is defined. Input() target will be ignored');
|
|
118
|
+
}
|
|
119
|
+
else if (this.selected && Array.isArray(this.selected)) {
|
|
120
|
+
target = [...this.selected];
|
|
121
|
+
}
|
|
122
|
+
console.debug('target:', this.selected, 'formControl:', this.control.value, 'ngModel:', this._ngControl);
|
|
123
|
+
this.store.init({ source: [...this.options], target });
|
|
124
|
+
}
|
|
125
|
+
onStoreValueChanged() {
|
|
126
|
+
this.store.valueChanged
|
|
127
|
+
.pipe(takeUntilDestroyed(this.destroyRef), tap(value => this.writeValue(value)), tap(value => this.onChange(value)), tap(value => this.transferChanges.emit(value)))
|
|
128
|
+
.subscribe();
|
|
129
|
+
}
|
|
130
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.6", ngImport: i0, type: ItTransferComponent, deps: [{ token: i1.NgControl, optional: true, self: true }, { token: i2.TranslateService }, { token: i3.TransferStore }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
131
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.0.6", type: ItTransferComponent, isStandalone: true, selector: "it-transfer", inputs: { options: "options", selected: "selected" }, outputs: { transferChanges: "transferChanges" }, providers: [TransferStore], usesInheritance: true, ngImport: i0, template: "<div class=\"form-group\">\n @if (label) {\n <label [for]=\"id\" [class.active]=\"!!control.value\">{{ label }}</label>\n }\n <div class=\"row\">\n <div class=\"col-xs-12 col-md-5\">\n <it-transfer-list sourceType=\"source\" title=\"source\"></it-transfer-list>\n </div>\n <!-- col -->\n <div class=\"col-xs-12 col-md-2\">\n <!-- transfer buttons-->\n <div class=\"it-transfer-buttons\">\n <a\n class=\"transfer\"\n role=\"button\"\n href=\"#\"\n [ngClass]=\"{ active: transferEnabled | async }\"\n (click)=\"transferClickHandler($event)\"\n (keypress)=\"transferKeyPressHandler($event)\"\n aria-label=\"Sposta avanti\">\n <svg class=\"icon\"><use href=\"/bootstrap-italia/dist/svg/sprites.svg#it-arrow-right\"></use></svg>\n </a>\n <span class=\"visually-hidden\">Etichetta per freccia destra</span>\n <a\n class=\"backtransfer\"\n role=\"button\"\n href=\"#\"\n [ngClass]=\"{ active: backtransferEnabled | async }\"\n (click)=\"backtransferClickHandler($event)\"\n (keypress)=\"backtransferKeyPressHandler($event)\"\n aria-label=\"Sposta indietro\">\n <svg class=\"icon\"><use href=\"/bootstrap-italia/dist/svg/sprites.svg#it-arrow-left\"></use></svg>\n </a>\n <span class=\"visually-hidden\">Etichetta for freccia sinistra</span>\n <a\n class=\"reset\"\n role=\"button\"\n href=\"#\"\n [ngClass]=\"{ active: resetEnabled | async }\"\n (click)=\"resetClickHandler($event)\"\n (keypress)=\"resetKeyPressHandler($event)\"\n aria-label=\"Reset\">\n <svg class=\"icon\"><use href=\"/bootstrap-italia/dist/svg/sprites.svg#it-restore\"></use></svg>\n </a>\n <span class=\"visually-hidden\">Etichetta per icona di reset</span>\n </div>\n </div>\n <div class=\"col-xs-12 col-md-5\">\n <it-transfer-list sourceType=\"target\" title=\"target\"></it-transfer-list>\n </div>\n </div>\n</div>\n", dependencies: [{ kind: "component", type: ItTransferListComponent, selector: "it-transfer-list" }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "pipe", type: AsyncPipe, name: "async" }, { kind: "ngmodule", type: ReactiveFormsModule }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
132
|
+
}
|
|
133
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.6", ngImport: i0, type: ItTransferComponent, decorators: [{
|
|
134
|
+
type: Component,
|
|
135
|
+
args: [{ selector: 'it-transfer', standalone: true, imports: [ItTransferListComponent, NgClass, AsyncPipe, ReactiveFormsModule], providers: [TransferStore], changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"form-group\">\n @if (label) {\n <label [for]=\"id\" [class.active]=\"!!control.value\">{{ label }}</label>\n }\n <div class=\"row\">\n <div class=\"col-xs-12 col-md-5\">\n <it-transfer-list sourceType=\"source\" title=\"source\"></it-transfer-list>\n </div>\n <!-- col -->\n <div class=\"col-xs-12 col-md-2\">\n <!-- transfer buttons-->\n <div class=\"it-transfer-buttons\">\n <a\n class=\"transfer\"\n role=\"button\"\n href=\"#\"\n [ngClass]=\"{ active: transferEnabled | async }\"\n (click)=\"transferClickHandler($event)\"\n (keypress)=\"transferKeyPressHandler($event)\"\n aria-label=\"Sposta avanti\">\n <svg class=\"icon\"><use href=\"/bootstrap-italia/dist/svg/sprites.svg#it-arrow-right\"></use></svg>\n </a>\n <span class=\"visually-hidden\">Etichetta per freccia destra</span>\n <a\n class=\"backtransfer\"\n role=\"button\"\n href=\"#\"\n [ngClass]=\"{ active: backtransferEnabled | async }\"\n (click)=\"backtransferClickHandler($event)\"\n (keypress)=\"backtransferKeyPressHandler($event)\"\n aria-label=\"Sposta indietro\">\n <svg class=\"icon\"><use href=\"/bootstrap-italia/dist/svg/sprites.svg#it-arrow-left\"></use></svg>\n </a>\n <span class=\"visually-hidden\">Etichetta for freccia sinistra</span>\n <a\n class=\"reset\"\n role=\"button\"\n href=\"#\"\n [ngClass]=\"{ active: resetEnabled | async }\"\n (click)=\"resetClickHandler($event)\"\n (keypress)=\"resetKeyPressHandler($event)\"\n aria-label=\"Reset\">\n <svg class=\"icon\"><use href=\"/bootstrap-italia/dist/svg/sprites.svg#it-restore\"></use></svg>\n </a>\n <span class=\"visually-hidden\">Etichetta per icona di reset</span>\n </div>\n </div>\n <div class=\"col-xs-12 col-md-5\">\n <it-transfer-list sourceType=\"target\" title=\"target\"></it-transfer-list>\n </div>\n </div>\n</div>\n" }]
|
|
136
|
+
}], ctorParameters: () => [{ type: i1.NgControl, decorators: [{
|
|
137
|
+
type: Self
|
|
138
|
+
}, {
|
|
139
|
+
type: Optional
|
|
140
|
+
}] }, { type: i2.TranslateService }, { type: i3.TransferStore }], propDecorators: { options: [{
|
|
141
|
+
type: Input
|
|
142
|
+
}], selected: [{
|
|
143
|
+
type: Input
|
|
144
|
+
}], transferChanges: [{
|
|
145
|
+
type: Output
|
|
146
|
+
}] } });
|
|
147
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNmZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZGVzaWduLWFuZ3VsYXIta2l0L3NyYy9saWIvY29tcG9uZW50cy9mb3JtL3RyYW5zZmVyL3RyYW5zZmVyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Rlc2lnbi1hbmd1bGFyLWtpdC9zcmMvbGliL2NvbXBvbmVudHMvZm9ybS90cmFuc2Zlci90cmFuc2Zlci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLE9BQU8sRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ3JELE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFFLFlBQVksRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFVLFFBQVEsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzVJLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQ2hFLE9BQU8sRUFBRSxlQUFlLEVBQWEsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFMUYsT0FBTyxFQUFFLEdBQUcsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUMzQixPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSw0Q0FBNEMsQ0FBQztBQUNyRixPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDdkQsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0seUNBQXlDLENBQUM7Ozs7O0FBR2xGOzs7R0FHRztBQVNILE1BQU0sT0FBTyxtQkFBNkIsU0FBUSx1QkFBMEI7SUFnQzFFLFlBR29CLFVBQXFCLEVBQ3JCLGlCQUFtQyxFQUNwQyxLQUF1QjtRQUV4QyxLQUFLLENBQUMsaUJBQWlCLEVBQUUsVUFBVSxDQUFD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LENBQUMsQ0FBQztJQUN6RCxDQUFDO0lBRU8sbUJBQW1CO1FBQ3pCLElBQUksQ0FBQyxLQUFLLENBQUMsWUFBWTthQUNwQixJQUFJLENBQ0gsa0JBQWtCLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxFQUNuQyxHQUFHLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLEtBQVUsQ0FBQyxDQUFDLEVBQ3pDLEdBQUcsQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsS0FBVSxDQUFDLENBQUMsRUFDdkMsR0FBRyxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FDL0M7YUFDQSxTQUFTLEVBQUUsQ0FBQztJQUNqQixDQUFDOzhHQXBJVSxtQkFBbUI7a0dBQW5CLG1CQUFtQixpS0FIbkIsQ0FBQyxhQUFhLENBQUMsaURDcEI1Qixxa0VBb0RBLDRDRGpDWSx1QkFBdUIsNkRBQUUsT0FBTywrRUFBRSxTQUFTLDZDQUFFLG1CQUFtQjs7MkZBSS9ELG1CQUFtQjtrQkFSL0IsU0FBUzsrQkFDRSxhQUFhLGNBQ1gsSUFBSSxXQUVQLENBQUMsdUJBQXVCLEVBQUUsT0FBTyxFQUFFLFNBQVMsRUFBRSxtQkFBbUIsQ0FBQyxhQUNoRSxDQUFDLGFBQWEsQ0FBQyxtQkFDVCx1QkFBdUIsQ0FBQyxNQUFNOzswQkFtQzVDLElBQUk7OzBCQUNKLFFBQVE7b0dBOUJGLE9BQU87c0JBQWYsS0FBSztnQkFJRyxRQUFRO3NCQUFoQixLQUFLO2dCQUlhLGVBQWU7c0JBQWpDLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBc3luY1BpcGUsIE5nQ2xhc3MgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgRGVzdHJveVJlZiwgRXZlbnRFbWl0dGVyLCBpbmplY3QsIElucHV0LCBPbkluaXQsIE9wdGlvbmFsLCBPdXRwdXQsIFNlbGYgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IHRha2VVbnRpbERlc3Ryb3llZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUvcnhqcy1pbnRlcm9wJztcbmltcG9ydCB7IEZvcm1Db250cm9sTmFtZSwgTmdDb250cm9sLCBOZ01vZGVsLCBSZWFjdGl2ZUZvcm1zTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgVHJhbnNsYXRlU2VydmljZSB9IGZyb20gJ0BuZ3gtdHJhbnNsYXRlL2NvcmUnO1xuaW1wb3J0IHsgdGFwIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBJdEFic3RyYWN0Rm9ybUNvbXBvbmVudCB9IGZyb20gJy4uLy4uLy4uL2Fic3RyYWN0cy9hYnN0cmFjdC1mb3JtLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBUcmFuc2ZlclN0b3JlIH0gZnJvbSAnLi9zdG9yZS90cmFuc2Zlci5zdG9yZSc7XG5pbXBvcnQgeyBJdFRyYW5zZmVyTGlzdENvbXBvbmVudCB9IGZyb20gJy4vdHJhbnNmZXItbGlzdC90cmFuc2Zlci1saXN0LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBUcmFuc2Zlckl0ZW0gfSBmcm9tICcuL3RyYW5zZmVyLm1vZGVsJztcblxuLyoqXG4gKiBUcmFuc2ZlclxuICogQGRlc2NyaXB0aW9uIENvbXBvbmVudCB0aGF0IGFsbG93cyB0aGUgY3JlYXRpb24gb2YgY2hlY2tib3ggbGlzdHMuXG4gKi9cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2l0LXRyYW5zZmVyJyxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgdGVtcGxhdGVVcmw6ICcuL3RyYW5zZmVyLmNvbXBvbmVudC5odG1sJyxcbiAgaW1wb3J0czogW0l0VHJhbnNmZXJMaXN0Q29tcG9uZW50LCBOZ0NsYXNzLCBBc3luY1BpcGUsIFJlYWN0aXZlRm9ybXNNb2R1bGVdLFxuICBwcm92aWRlcnM6IFtUcmFuc2ZlclN0b3JlXSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG59KVxuZXhwb3J0IGNsYXNzIEl0VHJhbnNmZXJDb21wb25lbnQ8VCA9IGFueT4gZXh0ZW5kcyBJdEFic3RyYWN0Rm9ybUNvbXBvbmVudDxUPiBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gIC8qKlxuICAgKiBUaGUgc2VsZWN0IG9wdGlvbnMgKGxlZnQgc2lkZSlcbiAgICovXG4gIEBJbnB1dCgpIG9wdGlvbnMgPSBbXTtcbiAgLyoqXG4gICAqIFRoZSBzZWxlY3RlZCBvcHRpb25zIChyaWdodCBzaWRlKVxuICAgKi9cbiAgQElucHV0KCkgc2VsZWN0ZWQgPSBbXTtcbiAgLyoqXG4gICAqIEZpcmVkIHdoZW4gdGhlcmUgaXMgYSB0cmFuc2ZlciwgYSBiYWNrdHJhbnNmZXIgb3IgYSByZXNldCBldmVudFxuICAgKi9cbiAgQE91dHB1dCgpIHJlYWRvbmx5IHRyYW5zZmVyQ2hhbmdlcyA9IG5ldyBFdmVudEVtaXR0ZXI8VHJhbnNmZXJJdGVtPFQ+W10+KCk7XG5cbiAgLyoqXG4gICAqIEVuYWJsZSB0cmFuc2ZlciBidXR0b25cbiAgICogQGRlZmF1bHQgZmFsc2VcbiAgICovXG4gIHJlYWRvbmx5IHRyYW5zZmVyRW5hYmxlZCA9IHRoaXMuc3RvcmUudHJhbnNmZXJFbmFibGVkO1xuICAvKipcbiAgICogRW5hYmxlIGJhY2t0cmFuc2ZlciBidXR0b25cbiAgICogQGRlZmF1bHQgZmFsc2VcbiAgICovXG4gIHJlYWRvbmx5IGJhY2t0cmFuc2ZlckVuYWJsZWQgPSB0aGlzLnN0b3JlLmJhY2t0cmFuc2ZlckVuYWJsZWQ7XG4gIC8qKlxuICAgKiBFbmFibGUgcmVzZXQgYnV0dG9uXG4gICAqIEBkZWZhdWx0IGZhbHNlXG4gICAqL1xuICByZWFkb25seSByZXNldEVuYWJsZWQgPSB0aGlzLnN0b3JlLnJlc2V0RW5hYmxlZDtcblxuICBwcml2YXRlIHJlYWRvbmx5IGRlc3Ryb3lSZWYgPSBpbmplY3QoRGVzdHJveVJlZik7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgQFNlbGYoKVxuICAgIEBPcHRpb25hbCgpXG4gICAgb3ZlcnJpZGUgcmVhZG9ubHkgX25nQ29udHJvbDogTmdDb250cm9sLFxuICAgIG92ZXJyaWRlIHJlYWRvbmx5IF90cmFuc2xhdGVTZXJ2aWNlOiBUcmFuc2xhdGVTZXJ2aWNlLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgc3RvcmU6IFRyYW5zZmVyU3RvcmU8VD5cbiAgKSB7XG4gICAgc3VwZXIoX3RyYW5zbGF0ZVNlcnZpY2UsIF9uZ0NvbnRyb2wpO1xuICB9XG5cbiAgb3ZlcnJpZGUgbmdPbkluaXQoKSB7XG4gICAgc3VwZXIubmdPbkluaXQoKTtcbiAgICB0aGlzLnN0b3JlSW5pdCgpO1xuICAgIHRoaXMub25TdG9yZVZhbHVlQ2hhbmdlZCgpO1xuICB9XG5cbiAgLyoqXG4gICAqIFRyYW5zZmVyIGJ1dHRvbiBjbGljayBoYW5kbGVyXG4gICAqL1xuICB0cmFuc2ZlckNsaWNrSGFuZGxlcihldmVudDogTW91c2VFdmVudCkge1xuICAgIHRoaXMuYnV0dG9uRXZlbnRIYW5kbGVyKGV2ZW50LCAoKSA9PiB0aGlzLnN0b3JlLnRyYW5zZmVyKCkpO1xuICB9XG4gIC8qKlxuICAgKiBUcmFuc2ZlciBidXR0b24ga2V5cHJlc3MgaGFuZGxlclxuICAgKi9cbiAgdHJhbnNmZXJLZXlQcmVzc0hhbmRsZXIoZXZlbnQ6IEtleWJvYXJkRXZlbnQpIHtcbiAgICB0aGlzLmJ1dHRvbkV2ZW50SGFuZGxlcihldmVudCwgKCkgPT4gdGhpcy5zdG9yZS50cmFuc2ZlcigpKTtcbiAgfVxuICAvKipcbiAgICogQmFja3RyYW5zZmVyIGJ1dHRvbiBjbGljayBoYW5kbGVyXG4gICAqL1xuICBiYWNrdHJhbnNmZXJDbGlja0hhbmRsZXIoZXZlbnQ6IE1vdXNlRXZlbnQpIHtcbiAgICB0aGlzLmJ1dHRvbkV2ZW50SGFuZGxlcihldmVudCwgKCkgPT4gdGhpcy5zdG9yZS5iYWNrdHJhbnNmZXIoKSk7XG4gIH1cbiAgLyoqXG4gICAqIEJhY2t0cmFuc2ZlciBidXR0b24ga2V5cHJlc3MgaGFuZGxlclxuICAgKi9cbiAgYmFja3RyYW5zZmVyS2V5UHJlc3NIYW5kbGVyKGV2ZW50OiBLZXlib2FyZEV2ZW50KSB7XG4gICAgdGhpcy5idXR0b25FdmVudEhhbmRsZXIoZXZlbnQsICgpID0+IHRoaXMuc3RvcmUuYmFja3RyYW5zZmVyKCkpO1xuICB9XG4gIC8qKlxuICAgKiBSZXNldCBidXR0b24gY2xpY2sgaGFuZGxlclxuICAgKi9cbiAgcmVzZXRDbGlja0hhbmRsZXIoZXZlbnQ6IE1vdXNlRXZlbnQpIHtcbiAgICB0aGlzLmJ1dHRvbkV2ZW50SGFuZGxlcihldmVudCwgKCkgPT4gdGhpcy5zdG9yZS5yZXNldCgpKTtcbiAgfVxuICAvKipcbiAgICogUmVzZXQgYnV0dG9uIGtleXByZXNzIGhhbmRsZXJcbiAgICovXG4gIHJlc2V0S2V5UHJlc3NIYW5kbGVyKGV2ZW50OiBLZXlib2FyZEV2ZW50KSB7XG4gICAgdGhpcy5idXR0b25FdmVudEhhbmRsZXIoZXZlbnQsICgpID0+IHRoaXMuc3RvcmUucmVzZXQoKSk7XG4gIH1cblxuICBwcml2YXRlIGJ1dHRvbkV2ZW50SGFuZGxlcihldmVudDogRXZlbnQsIHVwZGF0ZVN0b3JlQ2I6ICgpID0+IHZvaWQpIHtcbiAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgIHVwZGF0ZVN0b3JlQ2IoKTtcbiAgfVxuXG4gIHByaXZhdGUgc3RvcmVJbml0KCkge1xuICAgIGxldCB0YXJnZXQgPSBbXTtcbiAgICBjb25zdCBuZ0NvbnRyb2wgPSB0aGlzLl9uZ0NvbnRyb2w7XG4gICAgY29uc3QgaXNOZ0NvbnRyb2xEZWZpbmVkID0gQm9vbGVhbih0aGlzLl9uZ0NvbnRyb2wpO1xuXG4gICAgLy8gaWYgbmdDb250cm9sIGlzIGRlZmluZWQsIHRha2UgdmFsdWVzIGZyb20gaXQuIElucHV0KCkgdGFyZ2V0IHdpbGwgYmUgaWdub3JlZFxuICAgIGlmIChpc05nQ29udHJvbERlZmluZWQpIHtcbiAgICAgIGNvbnNvbGUuZGVidWcoJ25nQ29udHJvbCBpbnN0YW5jZW9mIE5nTW9kZWw6JywgbmdDb250cm9sIGluc3RhbmNlb2YgTmdNb2RlbCk7XG4gICAgICBjb25zb2xlLmRlYnVnKCduZ0NvbnRyb2wgaW5zdGFuY2VvZiBGb3JtQ29udHJvbE5hbWU6JywgbmdDb250cm9sIGluc3RhbmNlb2YgRm9ybUNvbnRyb2xOYW1lKTtcblxuICAgICAgLy8gaWYgbmdDb250cm9sIGlzIGFuIG5nTW9kZWwgKHRlbXBsYXRlLWRyaXZlbiBmb3JtIHVzZSBjYXNlKSwgdGFrZSB2YWx1ZXMgZnJvbSBpdFxuICAgICAgaWYgKG5nQ29udHJvbCBpbnN0YW5jZW9mIE5nTW9kZWwpIHtcbiAgICAgICAgY29uc29sZS5kZWJ1ZygnbmdDb250cm9sIGluc3RhbmNlb2YgTmdNb2RlbCcpO1xuICAgICAgICBjb25zdCBtb2RlbCA9IChuZ0NvbnRyb2wgYXMgTmdNb2RlbCkubW9kZWw7XG4gICAgICAgIHRhcmdldCA9IEFycmF5LmlzQXJyYXkobW9kZWwpID8gbW9kZWwgOiBbXTtcbiAgICAgIH1cblxuICAgICAgLy8gaWYgbmdDb250cm9sIGlzIGFuIEZvcm1Db250cm9sTmFtZSAocmVhY3RpdmUgZm9ybSB1c2UgY2FzZSksIHRha2UgdmFsdWVzIGZyb20gaXRcbiAgICAgIGlmIChuZ0NvbnRyb2wgaW5zdGFuY2VvZiBGb3JtQ29udHJvbE5hbWUpIHtcbiAgICAgICAgY29uc29sZS5kZWJ1ZygnbmdDb250cm9sIGluc3RhbmNlb2YgRm9ybUNvbnRyb2xOYW1lJyk7XG4gICAgICAgIGNvbnN0IG1vZGVsID0gKG5nQ29udHJvbCBhcyBGb3JtQ29udHJvbE5hbWUpLmNvbnRyb2wudmFsdWU7XG4gICAgICAgIHRhcmdldCA9IEFycmF5LmlzQXJyYXkobW9kZWwpID8gbW9kZWwgOiBbXTtcbiAgICAgIH1cblxuICAgICAgY29uc29sZS5kZWJ1ZygnbmdDb250cm9sIGlzIGRlZmluZWQuIElucHV0KCkgdGFyZ2V0IHdpbGwgYmUgaWdub3JlZCcpO1xuICAgIH0gZWxzZSBpZiAodGhpcy5zZWxlY3RlZCAmJiBBcnJheS5pc0FycmF5KHRoaXMuc2VsZWN0ZWQpKSB7XG4gICAgICB0YXJnZXQgPSBbLi4udGhpcy5zZWxlY3RlZF07XG4gICAgfVxuXG4gICAgY29uc29sZS5kZWJ1ZygndGFyZ2V0OicsIHRoaXMuc2VsZWN0ZWQsICdmb3JtQ29udHJvbDonLCB0aGlzLmNvbnRyb2wudmFsdWUsICduZ01vZGVsOicsIHRoaXMuX25nQ29udHJvbCk7XG4gICAgdGhpcy5zdG9yZS5pbml0KHsgc291cmNlOiBbLi4udGhpcy5vcHRpb25zXSwgdGFyZ2V0IH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBvblN0b3JlVmFsdWVDaGFuZ2VkKCkge1xuICAgIHRoaXMuc3RvcmUudmFsdWVDaGFuZ2VkXG4gICAgICAucGlwZShcbiAgICAgICAgdGFrZVVudGlsRGVzdHJveWVkKHRoaXMuZGVzdHJveVJlZiksXG4gICAgICAgIHRhcCh2YWx1ZSA9PiB0aGlzLndyaXRlVmFsdWUodmFsdWUgYXMgVCkpLFxuICAgICAgICB0YXAodmFsdWUgPT4gdGhpcy5vbkNoYW5nZSh2YWx1ZSBhcyBUKSksXG4gICAgICAgIHRhcCh2YWx1ZSA9PiB0aGlzLnRyYW5zZmVyQ2hhbmdlcy5lbWl0KHZhbHVlKSlcbiAgICAgIClcbiAgICAgIC5zdWJzY3JpYmUoKTtcbiAgfVxufVxuIiwiPGRpdiBjbGFzcz1cImZvcm0tZ3JvdXBcIj5cbiAgQGlmIChsYWJlbCkge1xuICAgIDxsYWJlbCBbZm9yXT1cImlkXCIgW2NsYXNzLmFjdGl2ZV09XCIhIWNvbnRyb2wudmFsdWVcIj57eyBsYWJlbCB9fTwvbGFiZWw+XG4gIH1cbiAgPGRpdiBjbGFzcz1cInJvd1wiPlxuICAgIDxkaXYgY2xhc3M9XCJjb2wteHMtMTIgY29sLW1kLTVcIj5cbiAgICAgIDxpdC10cmFuc2Zlci1saXN0IHNvdXJjZVR5cGU9XCJzb3VyY2VcIiB0aXRsZT1cInNvdXJjZVwiPjwvaXQtdHJhbnNmZXItbGlzdD5cbiAgICA8L2Rpdj5cbiAgICA8IS0tIGNvbCAtLT5cbiAgICA8ZGl2IGNsYXNzPVwiY29sLXhzLTEyIGNvbC1tZC0yXCI+XG4gICAgICA8IS0tIHRyYW5zZmVyIGJ1dHRvbnMtLT5cbiAgICAgIDxkaXYgY2xhc3M9XCJpdC10cmFuc2Zlci1idXR0b25zXCI+XG4gICAgICAgIDxhXG4gICAgICAgICAgY2xhc3M9XCJ0cmFuc2ZlclwiXG4gICAgICAgICAgcm9sZT1cImJ1dHRvblwiXG4gICAgICAgICAgaHJlZj1cIiNcIlxuICAgICAgICAgIFtuZ0NsYXNzXT1cInsgYWN0aXZlOiB0cmFuc2ZlckVuYWJsZWQgfCBhc3luYyB9XCJcbiAgICAgICAgICAoY2xpY2spPVwidHJhbnNmZXJDbGlja0hhbmRsZXIoJGV2ZW50KVwiXG4gICAgICAgICAgKGtleXByZXNzKT1cInRyYW5zZmVyS2V5UHJlc3NIYW5kbGVyKCRldmVudClcIlxuICAgICAgICAgIGFyaWEtbGFiZWw9XCJTcG9zdGEgYXZhbnRpXCI+XG4gICAgICAgICAgPHN2ZyBjbGFzcz1cImljb25cIj48dXNlIGhyZWY9XCIvYm9vdHN0cmFwLWl0YWxpYS9kaXN0L3N2Zy9zcHJpdGVzLnN2ZyNpdC1hcnJvdy1yaWdodFwiPjwvdXNlPjwvc3ZnPlxuICAgICAgICA8L2E+XG4gICAgICAgIDxzcGFuIGNsYXNzPVwidmlzdWFsbHktaGlkZGVuXCI+RXRpY2hldHRhIHBlciBmcmVjY2lhIGRlc3RyYTwvc3Bhbj5cbiAgICAgICAgPGFcbiAgICAgICAgICBjbGFzcz1cImJhY2t0cmFuc2ZlclwiXG4gICAgICAgICAgcm9sZT1cImJ1dHRvblwiXG4gICAgICAgICAgaHJlZj1cIiNcIlxuICAgICAgICAgIFtuZ0NsYXNzXT1cInsgYWN0aXZlOiBiYWNrdHJhbnNmZXJFbmFibGVkIHwgYXN5bmMgfVwiXG4gICAgICAgICAgKGNsaWNrKT1cImJhY2t0cmFuc2ZlckNsaWNrSGFuZGxlcigkZXZlbnQpXCJcbiAgICAgICAgICAoa2V5cHJlc3MpPVwiYmFja3RyYW5zZmVyS2V5UHJlc3NIYW5kbGVyKCRldmVudClcIlxuICAgICAgICAgIGFyaWEtbGFiZWw9XCJTcG9zdGEgaW5kaWV0cm9cIj5cbiAgICAgICAgICA8c3ZnIGNsYXNzPVwiaWNvblwiPjx1c2UgaHJlZj1cIi9ib290c3RyYXAtaXRhbGlhL2Rpc3Qvc3ZnL3Nwcml0ZXMuc3ZnI2l0LWFycm93LWxlZnRcIj48L3VzZT48L3N2Zz5cbiAgICAgICAgPC9hPlxuICAgICAgICA8c3BhbiBjbGFzcz1cInZpc3VhbGx5LWhpZGRlblwiPkV0aWNoZXR0YSBmb3IgZnJlY2NpYSBzaW5pc3RyYTwvc3Bhbj5cbiAgICAgICAgPGFcbiAgICAgICAgICBjbGFzcz1cInJlc2V0XCJcbiAgICAgICAgICByb2xlPVwiYnV0dG9uXCJcbiAgICAgICAgICBocmVmPVwiI1wiXG4gICAgICAgICAgW25nQ2xhc3NdPVwieyBhY3RpdmU6IHJlc2V0RW5hYmxlZCB8IGFzeW5jIH1cIlxuICAgICAgICAgIChjbGljayk9XCJyZXNldENsaWNrSGFuZGxlcigkZXZlbnQpXCJcbiAgICAgICAgICAoa2V5cHJlc3MpPVwicmVzZXRLZXlQcmVzc0hhbmRsZXIoJGV2ZW50KVwiXG4gICAgICAgICAgYXJpYS1sYWJlbD1cIlJlc2V0XCI+XG4gICAgICAgICAgPHN2ZyBjbGFzcz1cImljb25cIj48dXNlIGhyZWY9XCIvYm9vdHN0cmFwLWl0YWxpYS9kaXN0L3N2Zy9zcHJpdGVzLnN2ZyNpdC1yZXN0b3JlXCI+PC91c2U+PC9zdmc+XG4gICAgICAgIDwvYT5cbiAgICAgICAgPHNwYW4gY2xhc3M9XCJ2aXN1YWxseS1oaWRkZW5cIj5FdGljaGV0dGEgcGVyIGljb25hIGRpIHJlc2V0PC9zcGFuPlxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gICAgPGRpdiBjbGFzcz1cImNvbC14cy0xMiBjb2wtbWQtNVwiPlxuICAgICAgPGl0LXRyYW5zZmVyLWxpc3Qgc291cmNlVHlwZT1cInRhcmdldFwiIHRpdGxlPVwidGFyZ2V0XCI+PC9pdC10cmFuc2Zlci1saXN0PlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cbjwvZGl2PlxuIl19
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
//Qs
|
|
2
|
+
//Aria hidden?
|
|
3
|
+
//state management with service?
|
|
4
|
+
//interface?
|
|
5
|
+
export {};
|
|
6
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNmZXIubW9kZWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9kZXNpZ24tYW5ndWxhci1raXQvc3JjL2xpYi9jb21wb25lbnRzL2Zvcm0vdHJhbnNmZXIvdHJhbnNmZXIubW9kZWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsSUFBSTtBQUNKLGNBQWM7QUFDZCxnQ0FBZ0M7QUFDaEMsWUFBWSIsInNvdXJjZXNDb250ZW50IjpbIi8vUXNcbi8vQXJpYSBoaWRkZW4/XG4vL3N0YXRlIG1hbmFnZW1lbnQgd2l0aCBzZXJ2aWNlP1xuLy9pbnRlcmZhY2U/XG5cbmV4cG9ydCBpbnRlcmZhY2UgVHJhbnNmZXJJdGVtPFZhbHVlVHlwZT4ge1xuICB0ZXh0OiBzdHJpbmc7XG4gIHZhbHVlOiBWYWx1ZVR5cGU7XG59XG5cbmV4cG9ydCB0eXBlIFRyYW5zZmVySXRlbVNlbGVjdGlvbjxWYWx1ZVR5cGU+ID0gQXJyYXk8VHJhbnNmZXJJdGVtPFZhbHVlVHlwZT4+O1xuXG5leHBvcnQgdHlwZSBTb3VyY2VUeXBlID0gJ3NvdXJjZScgfCAndGFyZ2V0JztcbiJdfQ==
|