@recursyve/nice-data-filter-kit 14.1.6 → 14.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (39) hide show
  1. package/esm2020/lib/components/nice-filter-view/store/nice-filter-view.query.mjs +4 -1
  2. package/esm2020/lib/components/nice-filter-view/store/nice-filter-view.service.mjs +4 -18
  3. package/esm2020/lib/components/nice-filter-view/store/nice-filter-view.store.mjs +15 -1
  4. package/esm2020/lib/directive/public-api.mjs +2 -0
  5. package/esm2020/lib/directive/selectable-list/model/load-all-entities-options.model.mjs +2 -0
  6. package/esm2020/lib/directive/selectable-list/model/selectable-list-options.model.mjs +2 -0
  7. package/esm2020/lib/directive/selectable-list/providers/preload-selected-entities.provider.mjs +10 -0
  8. package/esm2020/lib/directive/selectable-list/public-api.mjs +10 -0
  9. package/esm2020/lib/directive/selectable-list/selectable-list-checkbox.directive.mjs +122 -0
  10. package/esm2020/lib/directive/selectable-list/selectable-list-select-all.directive.mjs +48 -0
  11. package/esm2020/lib/directive/selectable-list/selectable-list.constant.mjs +3 -0
  12. package/esm2020/lib/directive/selectable-list/selectable-list.directive.mjs +38 -0
  13. package/esm2020/lib/directive/selectable-list/selectable-list.module.mjs +32 -0
  14. package/esm2020/lib/directive/selectable-list/store/selectable-list-state.service.mjs +181 -0
  15. package/esm2020/lib/directive/selectable-list/store/selectable-list.service.mjs +49 -0
  16. package/esm2020/lib/directive/selectable-list/store/selectable-list.state.mjs +2 -0
  17. package/esm2020/public-api.mjs +2 -1
  18. package/fesm2015/recursyve-nice-data-filter-kit.mjs +492 -16
  19. package/fesm2015/recursyve-nice-data-filter-kit.mjs.map +1 -1
  20. package/fesm2020/recursyve-nice-data-filter-kit.mjs +467 -19
  21. package/fesm2020/recursyve-nice-data-filter-kit.mjs.map +1 -1
  22. package/lib/components/nice-filter-view/store/nice-filter-view.query.d.ts +1 -0
  23. package/lib/components/nice-filter-view/store/nice-filter-view.service.d.ts +0 -1
  24. package/lib/components/nice-filter-view/store/nice-filter-view.store.d.ts +1 -0
  25. package/lib/directive/public-api.d.ts +1 -0
  26. package/lib/directive/selectable-list/model/load-all-entities-options.model.d.ts +4 -0
  27. package/lib/directive/selectable-list/model/selectable-list-options.model.d.ts +4 -0
  28. package/lib/directive/selectable-list/providers/preload-selected-entities.provider.d.ts +12 -0
  29. package/lib/directive/selectable-list/public-api.d.ts +9 -0
  30. package/lib/directive/selectable-list/selectable-list-checkbox.directive.d.ts +24 -0
  31. package/lib/directive/selectable-list/selectable-list-select-all.directive.d.ts +18 -0
  32. package/lib/directive/selectable-list/selectable-list.constant.d.ts +2 -0
  33. package/lib/directive/selectable-list/selectable-list.directive.d.ts +14 -0
  34. package/lib/directive/selectable-list/selectable-list.module.d.ts +12 -0
  35. package/lib/directive/selectable-list/store/selectable-list-state.service.d.ts +32 -0
  36. package/lib/directive/selectable-list/store/selectable-list.service.d.ts +23 -0
  37. package/lib/directive/selectable-list/store/selectable-list.state.d.ts +8 -0
  38. package/package.json +1 -1
  39. package/public-api.d.ts +1 -0
@@ -0,0 +1,181 @@
1
+ import { arrayAdd, arrayRemove } from "@datorama/akita";
2
+ export class SelectableListStateService {
3
+ constructor(store, preloadService, options) {
4
+ this.store = store;
5
+ this.preloadService = preloadService;
6
+ this.options = options;
7
+ }
8
+ get idKey() {
9
+ return this.options?.idKey ?? "id";
10
+ }
11
+ get preloadedWindow() {
12
+ return this.options?.preloadWindow ?? 2;
13
+ }
14
+ setActive(entity) {
15
+ this.store.setActive(entity[this.idKey]);
16
+ }
17
+ getIndex(identifier) {
18
+ const { ids } = this.store.getValue();
19
+ const index = ids.indexOf(identifier);
20
+ return index + 1;
21
+ }
22
+ async selectAll(options) {
23
+ if (!this.preloadService) {
24
+ return this.store.update({
25
+ allSelected: true
26
+ });
27
+ }
28
+ const ids = await this.preloadService.loadAllEntities(options);
29
+ this.store.set(ids.map((id) => ({
30
+ [this.idKey]: id,
31
+ loaded: false
32
+ })));
33
+ return this.store.update({
34
+ allSelected: true
35
+ });
36
+ }
37
+ async select(id) {
38
+ this.store.update((state) => ({
39
+ unselectedEntity: arrayRemove(state.unselectedEntity, id)
40
+ }));
41
+ if (!this.preloadService) {
42
+ this.store.add({
43
+ [this.idKey]: id,
44
+ loaded: false
45
+ });
46
+ }
47
+ const entity = await this.preloadService.loadEntityById(id);
48
+ return this.store.add({
49
+ ...entity,
50
+ loaded: true
51
+ });
52
+ }
53
+ async selectEntity(entity) {
54
+ this.store.update((state) => ({
55
+ unselectedEntity: arrayRemove(state.unselectedEntity, entity[this.idKey])
56
+ }));
57
+ if (!this.preloadService) {
58
+ return this.store.upsert(entity[this.idKey], { ...entity, loaded: true });
59
+ }
60
+ const preloadedEntity = await this.preloadService.reloadEntity(entity);
61
+ return this.store.upsert(preloadedEntity[this.idKey], { ...preloadedEntity, loaded: true });
62
+ }
63
+ async selectManyEntities(entities) {
64
+ if (!this.preloadService) {
65
+ return this.store.upsertMany(entities.map((entity) => ({ ...entity, loaded: true })));
66
+ }
67
+ const preloadedEntities = await this.preloadService.reloadEntities(entities);
68
+ return this.store.upsertMany(preloadedEntities.map((preloadedEntity) => ({ ...preloadedEntity, loaded: true })));
69
+ }
70
+ unselectAll() {
71
+ this.store.set([]);
72
+ return this.store.update({
73
+ allSelected: false,
74
+ unselectedEntity: []
75
+ });
76
+ }
77
+ unselect(id) {
78
+ this.store.update((state) => ({
79
+ unselectedEntity: arrayAdd(state.unselectedEntity, id)
80
+ }));
81
+ this.store.remove(id);
82
+ }
83
+ unselectEntity(entity) {
84
+ this.store.update((state) => ({
85
+ unselectedEntity: arrayAdd(state.unselectedEntity, entity[this.idKey])
86
+ }));
87
+ this.store.remove(entity[this.idKey]);
88
+ }
89
+ unselectManyEntities(entities) {
90
+ this.store.remove(entities.map((entity) => entity[this.idKey]));
91
+ }
92
+ async setEntities(ids, activeId) {
93
+ this.store.update({
94
+ unselectedEntity: [],
95
+ allSelected: false
96
+ });
97
+ this.store.set(ids.map((id) => ({
98
+ [this.idKey]: id,
99
+ loaded: false
100
+ })));
101
+ if (activeId) {
102
+ this.store.setActive(activeId);
103
+ }
104
+ }
105
+ async next() {
106
+ const { ids, active } = this.store.getValue();
107
+ const index = ids.indexOf(active);
108
+ await this.loadActiveEntity(ids[index + 1], 1);
109
+ }
110
+ async previous() {
111
+ const { ids, active } = this.store.getValue();
112
+ const index = ids.indexOf(active);
113
+ await this.loadActiveEntity(ids[index - 1], -1);
114
+ }
115
+ async first() {
116
+ const { ids } = this.store.getValue();
117
+ await this.loadActiveEntity(ids[0], 1);
118
+ }
119
+ async last() {
120
+ const { ids } = this.store.getValue();
121
+ await this.loadActiveEntity(ids[ids.length - 1], -1);
122
+ }
123
+ async removeActive() {
124
+ const { active, ids } = this.store.getValue();
125
+ const index = ids.indexOf(active);
126
+ this.store.remove(active);
127
+ if (index === (ids.length - 1)) {
128
+ await this.loadActiveEntity(ids[index - 1], -1);
129
+ }
130
+ else {
131
+ await this.loadActiveEntity(ids[index + 1], 1);
132
+ }
133
+ }
134
+ async loadActiveEntity(id, direction) {
135
+ try {
136
+ this.store.setActive(id);
137
+ const { entities } = this.store.getValue();
138
+ if (!entities[+id + direction * this.preloadedWindow]?.loaded) {
139
+ await this.loadEntities(false);
140
+ }
141
+ }
142
+ catch (e) {
143
+ this.store.setError(e);
144
+ }
145
+ }
146
+ async loadEntities(loadExtremity) {
147
+ if (!this.preloadService) {
148
+ return;
149
+ }
150
+ const toLoad = this.getListIdToLoad(loadExtremity);
151
+ if (!toLoad.length) {
152
+ return;
153
+ }
154
+ const entities = await this.preloadService.loadEntitiesById(toLoad);
155
+ this.store.upsertMany(entities.map((entity) => ({ ...entity, loaded: true })));
156
+ }
157
+ getListIdToLoad(loadExtremity) {
158
+ const { active, ids, entities } = this.store.getValue();
159
+ const from = ids.indexOf(active) - this.preloadedWindow > 0 ? ids.indexOf(active) - this.preloadedWindow : 0;
160
+ const to = ids.indexOf(active) + this.preloadedWindow < ids.length - 1
161
+ ? ids.indexOf(active) + this.preloadedWindow
162
+ : ids.length - 1;
163
+ const toLoad = [];
164
+ if (loadExtremity) {
165
+ if (ids.length <= 2) {
166
+ return ids;
167
+ }
168
+ toLoad.push(ids[0], ids[ids.length - 1]);
169
+ }
170
+ for (let i = from; i <= to; i++) {
171
+ if (ids[i] === null || ids[0] === undefined) {
172
+ continue;
173
+ }
174
+ if (!toLoad.includes(ids[i]) && !entities[ids[i]]?.loaded) {
175
+ toLoad.push(ids[i]);
176
+ }
177
+ }
178
+ return toLoad;
179
+ }
180
+ }
181
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VsZWN0YWJsZS1saXN0LXN0YXRlLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uaWNlLWRhdGEtZmlsdGVyLWtpdC9zcmMvbGliL2RpcmVjdGl2ZS9zZWxlY3RhYmxlLWxpc3Qvc3RvcmUvc2VsZWN0YWJsZS1saXN0LXN0YXRlLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxXQUFXLEVBQWUsTUFBTSxpQkFBaUIsQ0FBQztBQU1yRSxNQUFNLE9BQU8sMEJBQTBCO0lBU25DLFlBQ1ksS0FBNEMsRUFDNUMsY0FBdUQsRUFDdkQsT0FBbUM7UUFGbkMsVUFBSyxHQUFMLEtBQUssQ0FBdUM7UUFDNUMsbUJBQWMsR0FBZCxjQUFjLENBQXlDO1FBQ3ZELFlBQU8sR0FBUCxPQUFPLENBQTRCO0lBQzVDLENBQUM7SUFaSixJQUFXLEtBQUs7UUFDWixPQUFPLElBQUksQ0FBQyxPQUFPLEVBQUUsS0FBSyxJQUFJLElBQUksQ0FBQztJQUN2QyxDQUFDO0lBRUQsSUFBVyxlQUFlO1FBQ3RCLE9BQU8sSUFBSSxDQUFDLE9BQU8sRUFBRSxhQUFhLElBQUksQ0FBQyxDQUFDO0lBQzVDLENBQUM7SUFRTSxTQUFTLENBQUMsTUFBUztRQUN0QixJQUFJLENBQUMsS0FBSyxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7SUFDN0MsQ0FBQztJQUVNLFFBQVEsQ0FBQyxVQUFrQjtRQUM5QixNQUFNLEVBQUUsR0FBRyxFQUFFLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxRQUFRLEVBQUUsQ0FBQztRQUN0QyxNQUFNLEtBQUssR0FBRyxHQUFHLENBQUMsT0FBTyxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBQ3RDLE9BQU8sS0FBSyxHQUFHLENBQUMsQ0FBQztJQUNyQixDQUFDO0lBRU0sS0FBSyxDQUFD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LENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxNQUFNLEVBQUU7Z0JBQ3ZELE1BQU0sQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7YUFDdkI7U0FDSjtRQUVELE9BQU8sTUFBTSxDQUFDO0lBQ2xCLENBQUM7Q0FDSiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGFycmF5QWRkLCBhcnJheVJlbW92ZSwgRW50aXR5U3RvcmUgfSBmcm9tIFwiQGRhdG9yYW1hL2FraXRhXCI7XG5pbXBvcnQgeyBOaWNlU2VsZWN0YWJsZUxpc3RMb2FkQWxsRW50aXRpZXNPcHRpb25zIH0gZnJvbSBcIi4uL21vZGVsL2xvYWQtYWxsLWVudGl0aWVzLW9wdGlvbnMubW9kZWxcIjtcbmltcG9ydCB7IE5pY2VTZWxlY3RhYmxlTGlzdE9wdGlvbnMgfSBmcm9tIFwiLi4vbW9kZWwvc2VsZWN0YWJsZS1saXN0LW9wdGlvbnMubW9kZWxcIjtcbmltcG9ydCB7IE5pY2VQcmVsb2FkU2VsZWN0ZWRFbnRpdGllc1Byb3ZpZGVyIH0gZnJvbSBcIi4uL3Byb3ZpZGVycy9wcmVsb2FkLXNlbGVjdGVkLWVudGl0aWVzLnByb3ZpZGVyXCI7XG5pbXBvcnQgeyBTZWxlY3RhYmxlTGlzdFN0YXRlIH0gZnJvbSBcIi4vc2VsZWN0YWJsZS1saXN0LnN0YXRlXCI7XG5cbmV4cG9ydCBjbGFzcyBTZWxlY3RhYmxlTGlzdFN0YXRlU2VydmljZTxULCBJRCA9IGFueT4ge1xuICAgIHB1YmxpYyBnZXQgaWRLZXkoKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIHRoaXMub3B0aW9ucz8uaWRLZXkgPz8gXCJpZFwiO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXQgcHJlbG9hZGVkV2luZG93KCk6IG51bWJlciB7XG4gICAgICAgIHJldHVybiB0aGlzLm9wdGlvbnM/LnByZWxvYWRXaW5kb3cgPz8gMjtcbiAgICB9XG5cbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgcHJpdmF0ZSBzdG9yZTogRW50aXR5U3RvcmU8U2VsZWN0YWJsZUxpc3RTdGF0ZTxhbnk+PixcbiAgICAgICAgcHJpdmF0ZSBwcmVsb2FkU2VydmljZT86IE5pY2VQcmVsb2FkU2VsZWN0ZWRFbnRpdGllc1Byb3ZpZGVyPFQ+LFxuICAgICAgICBwcml2YXRlIG9wdGlvbnM/OiBOaWNlU2VsZWN0YWJsZUxpc3RPcHRpb25zXG4gICAgKSB7fVxuXG4gICAgcHVibGljIHNldEFjdGl2ZShlbnRpdHk6IFQpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5zdG9yZS5zZXRBY3RpdmUoZW50aXR5W3RoaXMuaWRLZXldKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0SW5kZXgoaWRlbnRpZmllcjogbnVtYmVyKTogbnVtYmVyIHtcbiAgICAgICAgY29uc3QgeyBpZHMgfSA9IHRoaXMuc3RvcmUuZ2V0VmFsdWUoKTtcbiAgICAgICAgY29uc3QgaW5kZXggPSBpZHMuaW5kZXhPZihpZGVudGlmaWVyKTtcbiAgICAgICAgcmV0dXJuIGluZGV4ICsgMTtcbiAgICB9XG5cbiAgICBwdWJsaWMgYXN5bmMgc2VsZWN0QWxsKG9wdGlvbnM/OiBOaWNlU2VsZWN0YWJsZUxpc3RMb2FkQWxsRW50aXRpZXNPcHRpb25zKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgICAgIGlmICghdGhpcy5wcmVsb2FkU2VydmljZSkge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMuc3RvcmUudXBkYXRlKHtcbiAgICAgICAgICAgICAgICBhbGxTZWxlY3RlZDogdHJ1ZVxuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBpZHMgPSBhd2FpdCB0aGlzLnByZWxvYWRTZXJ2aWNlLmxvYWRBbGxFbnRpdGllcyhvcHRpb25zKTtcbiAgICAgICAgdGhpcy5zdG9yZS5zZXQoaWRzLm1hcCgoaWQpID0+ICh7XG4gICAgICAgICAgICBbdGhpcy5pZEtleV06IGlkLFxuICAgICAgICAgICAgbG9hZGVkOiBmYWxzZVxuICAgICAgICB9KSkpO1xuXG4gICAgICAgIHJldHVybiB0aGlzLnN0b3JlLnVwZGF0ZSh7XG4gICAgICAgICAgICBhbGxTZWxlY3RlZDogdHJ1ZVxuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBwdWJsaWMgYXN5bmMgc2VsZWN0KGlkOiBJRCk6IFByb21pc2U8dm9pZD4ge1xuICAgICAgICB0aGlzLnN0b3JlLnVwZGF0ZSgoc3RhdGUpID0+ICh7XG4gICAgICAgICAgICB1bnNlbGVjdGVkRW50aXR5OiBhcnJheVJlbW92ZShzdGF0ZS51bnNlbGVjdGVkRW50aXR5LCBpZCBhcyBhbnkpXG4gICAgICAgIH0pKTtcblxuICAgICAgICBpZiAoIXRoaXMucHJlbG9hZFNlcnZpY2UpIHtcbiAgICAgICAgICAgIHRoaXMuc3RvcmUuYWRkKHtcbiAgICAgICAgICAgICAgICBbdGhpcy5pZEtleV06IGlkLFxuICAgICAgICAgICAgICAgIGxvYWRlZDogZmFsc2VcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgZW50aXR5ID0gYXdhaXQgdGhpcy5wcmVsb2FkU2VydmljZS5sb2FkRW50aXR5QnlJZChpZCBhcyBhbnkpO1xuICAgICAgICByZXR1cm4gdGhpcy5zdG9yZS5hZGQoe1xuICAgICAgICAgICAgLi4uZW50aXR5LFxuICAgICAgICAgICAgbG9hZGVkOiB0cnVlXG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIHB1YmxpYyBhc3luYyBzZWxlY3RFbnRpdHkoZW50aXR5OiBUKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgICAgIHRoaXMuc3RvcmUudXBkYXRlKChzdGF0ZSkgPT4gKHtcbiAgICAgICAgICAgIHVuc2VsZWN0ZWRFbnRpdHk6IGFycmF5UmVtb3ZlKHN0YXRlLnVuc2VsZWN0ZWRFbnRpdHksIGVudGl0eVt0aGlzLmlkS2V5XSlcbiAgICAgICAgfSkpO1xuXG4gICAgICAgIGlmICghdGhpcy5wcmVsb2FkU2VydmljZSkge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMuc3RvcmUudXBzZXJ0KGVudGl0eVt0aGlzLmlkS2V5XSwgeyAuLi5lbnRpdHksIGxvYWRlZDogdHJ1ZSB9KTtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IHByZWxvYWRlZEVudGl0eSA9IGF3YWl0IHRoaXMucHJlbG9hZFNlcnZpY2UucmVsb2FkRW50aXR5KGVudGl0eSk7XG4gICAgICAgIHJldHVybiB0aGlzLnN0b3JlLnVwc2VydChwcmVsb2FkZWRFbnRpdHlbdGhpcy5pZEtleV0sIHsgLi4ucHJlbG9hZGVkRW50aXR5LCBsb2FkZWQ6IHRydWUgfSk7XG4gICAgfVxuXG4gICAgcHVibGljIGFzeW5jIHNlbGVjdE1hbnlFbnRpdGllcyhlbnRpdGllczogVFtdKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgICAgIGlmICghdGhpcy5wcmVsb2FkU2VydmljZSkge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMuc3RvcmUudXBzZXJ0TWFueShlbnRpdGllcy5tYXAoKGVudGl0eSkgPT4gKHsgLi4uZW50aXR5LCBsb2FkZWQ6IHRydWUgfSkpKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IHByZWxvYWRlZEVudGl0aWVzID0gYXdhaXQgdGhpcy5wcmVsb2FkU2VydmljZS5yZWxvYWRFbnRpdGllcyhlbnRpdGllcyk7XG4gICAgICAgIHJldHVybiB0aGlzLnN0b3JlLnVwc2VydE1hbnkocHJlbG9hZGVkRW50aXRpZXMubWFwKChwcmVsb2FkZWRFbnRpdHkpID0+ICh7IC4uLnByZWxvYWRlZEVudGl0eSwgbG9hZGVkOiB0cnVlIH0pKSk7XG4gICAgfVxuXG4gICAgcHVibGljIHVuc2VsZWN0QWxsKCk6IHZvaWQge1xuICAgICAgICB0aGlzLnN0b3JlLnNldChbXSk7XG5cbiAgICAgICAgcmV0dXJuIHRoaXMuc3RvcmUudXBkYXRlKHtcbiAgICAgICAgICAgIGFsbFNlbGVjdGVkOiBmYWxzZSxcbiAgICAgICAgICAgIHVuc2VsZWN0ZWRFbnRpdHk6IFtdXG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIHB1YmxpYyB1bnNlbGVjdChpZDogSUQpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5zdG9yZS51cGRhdGUoKHN0YXRlKSA9PiAoe1xuICAgICAgICAgICAgdW5zZWxlY3RlZEVudGl0eTogYXJyYXlBZGQoc3RhdGUudW5zZWxlY3RlZEVudGl0eSwgaWQpXG4gICAgICAgIH0pKTtcblxuICAgICAgICB0aGlzLnN0b3JlLnJlbW92ZShpZCBhcyBhbnkpO1xuICAgIH1cblxuICAgIHB1YmxpYyB1bnNlbGVjdEVudGl0eShlbnRpdHk6IFQpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5zdG9yZS51cGRhdGUoKHN0YXRlKSA9PiAoe1xuICAgICAgICAgICAgdW5zZWxlY3RlZEVudGl0eTogYXJyYXlBZGQoc3RhdGUudW5zZWxlY3RlZEVudGl0eSwgZW50aXR5W3RoaXMuaWRLZXldKVxuICAgICAgICB9KSk7XG5cbiAgICAgICAgdGhpcy5zdG9yZS5yZW1vdmUoZW50aXR5W3RoaXMuaWRLZXldKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgdW5zZWxlY3RNYW55RW50aXRpZXMoZW50aXRpZXM6IFRbXSk6IHZvaWQge1xuICAgICAgICB0aGlzLnN0b3JlLnJlbW92ZShlbnRpdGllcy5tYXAoKGVudGl0eSkgPT4gZW50aXR5W3RoaXMuaWRLZXldKSk7XG4gICAgfVxuXG4gICAgcHVibGljIGFzeW5jIHNldEVudGl0aWVzKGlkczogSURbXSwgYWN0aXZlSWQ6IElEKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgICAgIHRoaXMuc3RvcmUudXBkYXRlKHtcbiAgICAgICAgICAgIHVuc2VsZWN0ZWRFbnRpdHk6IFtdLFxuICAgICAgICAgICAgYWxsU2VsZWN0ZWQ6IGZhbHNlXG4gICAgICAgIH0pO1xuXG4gICAgICAgIHRoaXMuc3RvcmUuc2V0KGlkcy5tYXAoKGlkKSA9PiAoe1xuICAgICAgICAgICAgW3RoaXMuaWRLZXldOiBpZCxcbiAgICAgICAgICAgIGxvYWRlZDogZmFsc2VcbiAgICAgICAgfSkpKTtcblxuICAgICAgICBpZiAoYWN0aXZlSWQpIHtcbiAgICAgICAgICAgIHRoaXMuc3RvcmUuc2V0QWN0aXZlKGFjdGl2ZUlkKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHB1YmxpYyBhc3luYyBuZXh0KCk6IFByb21pc2U8dm9pZD4ge1xuICAgICAgICBjb25zdCB7IGlkcywgYWN0aXZlIH0gPSB0aGlzLnN0b3JlLmdldFZhbHVlKCk7XG4gICAgICAgIGNvbnN0IGluZGV4ID0gaWRzLmluZGV4T2YoYWN0aXZlKTtcbiAgICAgICAgYXdhaXQgdGhpcy5sb2FkQWN0aXZlRW50aXR5KGlkc1tpbmRleCArIDFdLCAxKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgYXN5bmMgcHJldmlvdXMoKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgICAgIGNvbnN0IHsgaWRzLCBhY3RpdmUgfSA9IHRoaXMuc3RvcmUuZ2V0VmFsdWUoKTtcbiAgICAgICAgY29uc3QgaW5kZXggPSBpZHMuaW5kZXhPZihhY3RpdmUpO1xuICAgICAgICBhd2FpdCB0aGlzLmxvYWRBY3RpdmVFbnRpdHkoaWRzW2luZGV4IC0gMV0sIC0xKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgYXN5bmMgZmlyc3QoKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgICAgIGNvbnN0IHsgaWRzIH0gPSB0aGlzLnN0b3JlLmdldFZhbHVlKCk7XG4gICAgICAgIGF3YWl0IHRoaXMubG9hZEFjdGl2ZUVudGl0eShpZHNbMF0sIDEpO1xuICAgIH1cblxuICAgIHB1YmxpYyBhc3luYyBsYXN0KCk6IFByb21pc2U8dm9pZD4ge1xuICAgICAgICBjb25zdCB7IGlkcyB9ID0gdGhpcy5zdG9yZS5nZXRWYWx1ZSgpO1xuICAgICAgICBhd2FpdCB0aGlzLmxvYWRBY3RpdmVFbnRpdHkoaWRzW2lkcy5sZW5ndGggLSAxXSwgLTEpO1xuICAgIH1cblxuICAgIHB1YmxpYyBhc3luYyByZW1vdmVBY3RpdmUoKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgICAgIGNvbnN0IHsgYWN0aXZlLCBpZHMgfSA9IHRoaXMuc3RvcmUuZ2V0VmFsdWUoKTtcbiAgICAgICAgY29uc3QgaW5kZXggPSBpZHMuaW5kZXhPZihhY3RpdmUpO1xuXG4gICAgICAgIHRoaXMuc3RvcmUucmVtb3ZlKGFjdGl2ZSk7XG5cbiAgICAgICAgaWYgKGluZGV4ID09PSAoaWRzLmxlbmd0aCAtIDEpKSB7XG4gICAgICAgICAgICBhd2FpdCB0aGlzLmxvYWRBY3RpdmVFbnRpdHkoaWRzW2luZGV4IC0gMV0sIC0xKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGF3YWl0IHRoaXMubG9hZEFjdGl2ZUVudGl0eShpZHNbaW5kZXggKyAxXSwgMSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwdWJsaWMgYXN5bmMgbG9hZEFjdGl2ZUVudGl0eShpZDogbnVtYmVyLCBkaXJlY3Rpb246IG51bWJlcikge1xuICAgICAgICB0cnkge1xuICAgICAgICAgICAgdGhpcy5zdG9yZS5zZXRBY3RpdmUoaWQpO1xuXG4gICAgICAgICAgICBjb25zdCB7IGVudGl0aWVzIH0gPSB0aGlzLnN0b3JlLmdldFZhbHVlKCk7XG4gICAgICAgICAgICBpZiAoIWVudGl0aWVzWytpZCArIGRpcmVjdGlvbiAqIHRoaXMucHJlbG9hZGVkV2luZG93XT8ubG9hZGVkKSB7XG4gICAgICAgICAgICAgICAgYXdhaXQgdGhpcy5sb2FkRW50aXRpZXMoZmFsc2UpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9IGNhdGNoIChlKSB7XG4gICAgICAgICAgICB0aGlzLnN0b3JlLnNldEVycm9yKGUpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHVibGljIGFzeW5jIGxvYWRFbnRpdGllcyhsb2FkRXh0cmVtaXR5KTogUHJvbWlzZTx2b2lkPiB7XG4gICAgICAgIGlmICghdGhpcy5wcmVsb2FkU2VydmljZSkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgdG9Mb2FkID0gdGhpcy5nZXRMaXN0SWRUb0xvYWQobG9hZEV4dHJlbWl0eSk7XG4gICAgICAgIGlmICghdG9Mb2FkLmxlbmd0aCkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgZW50aXRpZXMgPSBhd2FpdCB0aGlzLnByZWxvYWRTZXJ2aWNlLmxvYWRFbnRpdGllc0J5SWQodG9Mb2FkKTtcbiAgICAgICAgdGhpcy5zdG9yZS51cHNlcnRNYW55KGVudGl0aWVzLm1hcCgoZW50aXR5KSA9PiAoeyAuLi5lbnRpdHksIGxvYWRlZDogdHJ1ZSB9KSkpO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXRMaXN0SWRUb0xvYWQobG9hZEV4dHJlbWl0eTogYm9vbGVhbik6IG51bWJlcltdIHtcbiAgICAgICAgY29uc3QgeyBhY3RpdmUsIGlkcywgZW50aXRpZXMgfSA9IHRoaXMuc3RvcmUuZ2V0VmFsdWUoKTtcbiAgICAgICAgY29uc3QgZnJvbSA9IGlkcy5pbmRleE9mKGFjdGl2ZSkgLSB0aGlzLnByZWxvYWRlZFdpbmRvdyA+IDAgPyBpZHMuaW5kZXhPZihhY3RpdmUpIC0gdGhpcy5wcmVsb2FkZWRXaW5kb3cgOiAwO1xuICAgICAgICBjb25zdCB0byA9IGlkcy5pbmRleE9mKGFjdGl2ZSkgKyB0aGlzLnByZWxvYWRlZFdpbmRvdyA8IGlkcy5sZW5ndGggLSAxXG4gICAgICAgICAgICA/IGlkcy5pbmRleE9mKGFjdGl2ZSkgKyB0aGlzLnByZWxvYWRlZFdpbmRvd1xuICAgICAgICAgICAgOiBpZHMubGVuZ3RoIC0gMTtcblxuICAgICAgICBjb25zdCB0b0xvYWQgPSBbXTtcbiAgICAgICAgaWYgKGxvYWRFeHRyZW1pdHkpIHtcbiAgICAgICAgICAgIGlmIChpZHMubGVuZ3RoIDw9IDIpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gaWRzO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICB0b0xvYWQucHVzaChpZHNbMF0sIGlkc1tpZHMubGVuZ3RoIC0gMV0pO1xuICAgICAgICB9XG5cbiAgICAgICAgZm9yIChsZXQgaSA9IGZyb207IGkgPD0gdG87IGkrKykge1xuICAgICAgICAgICAgaWYgKGlkc1tpXSA9PT0gbnVsbCB8fCBpZHNbMF0gPT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBpZiAoIXRvTG9hZC5pbmNsdWRlcyhpZHNbaV0pICYmICFlbnRpdGllc1tpZHNbaV1dPy5sb2FkZWQpIHtcbiAgICAgICAgICAgICAgICB0b0xvYWQucHVzaChpZHNbaV0pO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHRvTG9hZDtcbiAgICB9XG59XG4iXX0=
@@ -0,0 +1,49 @@
1
+ import { Inject, Injectable, Optional } from "@angular/core";
2
+ import { EntityStore, QueryEntity } from "@datorama/akita";
3
+ import { NICE_PRELOAD_SELECTED_ENTITIES_PROVIDER } from "../selectable-list.constant";
4
+ import { SelectableListStateService } from "./selectable-list-state.service";
5
+ import * as i0 from "@angular/core";
6
+ export class SelectableListService {
7
+ constructor(providers) {
8
+ this.providers = providers;
9
+ this.stores = new Map();
10
+ }
11
+ createState(name, options) {
12
+ const store = new EntityStore({ allSelected: false, unselectedEntity: [] }, { name, idKey: options?.idKey });
13
+ const query = new QueryEntity(store);
14
+ const state = { store, query };
15
+ this.stores.set(name, state);
16
+ return state;
17
+ }
18
+ getState(name) {
19
+ return this.stores.get(name);
20
+ }
21
+ withState(stateName, options) {
22
+ const provider = this.providers?.find((p) => p.state === stateName);
23
+ const state = this.getState(stateName);
24
+ if (state) {
25
+ return new SelectableListStateService(state.store, provider, options);
26
+ }
27
+ const newState = this.createState(stateName, options);
28
+ return new SelectableListStateService(newState.store, provider, options);
29
+ }
30
+ query(stateName) {
31
+ const state = this.getState(stateName);
32
+ if (!state) {
33
+ throw new Error("No state found");
34
+ }
35
+ return state.query;
36
+ }
37
+ }
38
+ SelectableListService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.3", ngImport: i0, type: SelectableListService, deps: [{ token: NICE_PRELOAD_SELECTED_ENTITIES_PROVIDER, optional: true }], target: i0.ɵɵFactoryTarget.Injectable });
39
+ SelectableListService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "14.2.3", ngImport: i0, type: SelectableListService, providedIn: "root" });
40
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.3", ngImport: i0, type: SelectableListService, decorators: [{
41
+ type: Injectable,
42
+ args: [{ providedIn: "root" }]
43
+ }], ctorParameters: function () { return [{ type: undefined, decorators: [{
44
+ type: Optional
45
+ }, {
46
+ type: Inject,
47
+ args: [NICE_PRELOAD_SELECTED_ENTITIES_PROVIDER]
48
+ }] }]; } });
49
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VsZWN0YWJsZS1saXN0LnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uaWNlLWRhdGEtZmlsdGVyLWtpdC9zcmMvbGliL2RpcmVjdGl2ZS9zZWxlY3RhYmxlLWxpc3Qvc3RvcmUvc2VsZWN0YWJsZS1saXN0LnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzdELE9BQU8sRUFBRSxXQUFXLEVBQUUsV0FBVyxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFHM0QsT0FBTyxFQUFFLHVDQUF1QyxFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFDdEYsT0FBTyxFQUFFLDBCQUEwQixFQUFFLE1BQU0saUNBQWlDLENBQUM7O0FBSTdFLE1BQU0sT0FBTyxxQkFBcUI7SUFHOUIsWUFFWSxTQUFxRDtRQUFyRCxjQUFTLEdBQVQsU0FBUyxDQUE0QztRQUp6RCxXQUFNLEdBQUcsSUFBSSxHQUFHLEVBQTBHLENBQUM7SUFLaEksQ0FBQztJQUVHLFdBQVcsQ0FBQyxJQUFZLEVBQUUsT0FBbUM7UUFDaEUsTUFBTSxLQUFLLEdBQUcsSUFBSSxXQUFXLENBQ3pCLEVBQUUsV0FBVyxFQUFFLEtBQUssRUFBRSxnQkFBZ0IsRUFBRSxFQUFFLEVBQUUsRUFDNUMsRUFBRSxJQUFJLEVBQUUsS0FBSyxFQUFFLE9BQU8sRUFBRSxLQUFLLEVBQUUsQ0FDbEMsQ0FBQztRQUNGLE1BQU0sS0FBSyxHQUFHLElBQUksV0FBVyxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBRXJDLE1BQU0sS0FBSyxHQUFHLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxDQUFDO1FBQy9CLElBQUksQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLElBQUksRUFBRSxLQUFLLENBQUMsQ0FBQztRQUU3QixPQUFPLEtBQUssQ0FBQztJQUNqQixDQUFDO0lBRU0sUUFBUSxDQUFDLElBQVk7UUFDeEIsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUNqQyxDQUFDO0lBRU0sU0FBUyxDQUFjLFNBQWlCLEVBQUUsT0FBbUM7UUFDaEYsTUFBTSxRQUFRLEdBQUcsSUFBSSxDQUFDLFNBQVMsRUFBRSxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxLQUFLLEtBQUssU0FBUyxDQUFDLENBQUM7UUFDcEUsTUFBTSxLQUFLLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUN2QyxJQUFJLEtBQUssRUFBRTtZQUNQLE9BQU8sSUFBSSwwQkFBMEIsQ0FBSSxLQUFLLENBQUMsS0FBSyxFQUFFLFFBQVEsRUFBRSxPQUFPLENBQUMsQ0FBQztTQUM1RTtRQUVELE1BQU0sUUFBUSxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsU0FBUyxFQUFFLE9BQU8sQ0FBQyxDQUFDO1FBQ3RELE9BQU8sSUFBSSwwQkFBMEIsQ0FBSSxRQUFRLENBQUMsS0FBSyxFQUFFLFFBQVEsRUFBRSxPQUFPLENBQUMsQ0FBQztJQUNoRixDQUFDO0lBRU0sS0FBSyxDQUFJLFNBQWlCO1FBQzdCLE1BQU0sS0FBSyxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsU0FBUyxDQUFDLENBQUM7UUFDdkMsSUFBSSxDQUFDLEtBQUssRUFBRTtZQUNSLE1BQU0sSUFBSSxLQUFLLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztTQUNyQztRQUVELE9BQU8sS0FBSyxDQUFDLEtBQTRDLENBQUM7SUFDOUQsQ0FBQzs7a0hBM0NRLHFCQUFxQixrQkFJTix1Q0FBdUM7c0hBSnRELHFCQUFxQixjQURSLE1BQU07MkZBQ25CLHFCQUFxQjtrQkFEakMsVUFBVTttQkFBQyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUU7OzBCQUt6QixRQUFROzswQkFBSSxNQUFNOzJCQUFDLHVDQUF1QyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdCwgSW5qZWN0YWJsZSwgT3B0aW9uYWwgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xuaW1wb3J0IHsgRW50aXR5U3RvcmUsIFF1ZXJ5RW50aXR5IH0gZnJvbSBcIkBkYXRvcmFtYS9ha2l0YVwiO1xuaW1wb3J0IHsgTmljZVNlbGVjdGFibGVMaXN0T3B0aW9ucyB9IGZyb20gXCIuLi9tb2RlbC9zZWxlY3RhYmxlLWxpc3Qtb3B0aW9ucy5tb2RlbFwiO1xuaW1wb3J0IHsgTmljZVByZWxvYWRTZWxlY3RlZEVudGl0aWVzUHJvdmlkZXIgfSBmcm9tIFwiLi4vcHJvdmlkZXJzL3ByZWxvYWQtc2VsZWN0ZWQtZW50aXRpZXMucHJvdmlkZXJcIjtcbmltcG9ydCB7IE5JQ0VfUFJFTE9BRF9TRUxFQ1RFRF9FTlRJVElFU19QUk9WSURFUiB9IGZyb20gXCIuLi9zZWxlY3RhYmxlLWxpc3QuY29uc3RhbnRcIjtcbmltcG9ydCB7IFNlbGVjdGFibGVMaXN0U3RhdGVTZXJ2aWNlIH0gZnJvbSBcIi4vc2VsZWN0YWJsZS1saXN0LXN0YXRlLnNlcnZpY2VcIjtcbmltcG9ydCB7IFNlbGVjdGFibGVMaXN0U3RhdGUgfSBmcm9tIFwiLi9zZWxlY3RhYmxlLWxpc3Quc3RhdGVcIjtcblxuQEluamVjdGFibGUoeyBwcm92aWRlZEluOiBcInJvb3RcIiB9KVxuZXhwb3J0IGNsYXNzIFNlbGVjdGFibGVMaXN0U2VydmljZSB7XG4gICAgcHJpdmF0ZSBzdG9yZXMgPSBuZXcgTWFwPHN0cmluZywgeyBzdG9yZTogRW50aXR5U3RvcmU8U2VsZWN0YWJsZUxpc3RTdGF0ZTxhbnk+PiwgcXVlcnk6IFF1ZXJ5RW50aXR5PFNlbGVjdGFibGVMaXN0U3RhdGU8YW55Pj4gfT4oKTtcblxuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBAT3B0aW9uYWwoKSBASW5qZWN0KE5JQ0VfUFJFTE9BRF9TRUxFQ1RFRF9FTlRJVElFU19QUk9WSURFUilcbiAgICAgICAgcHJpdmF0ZSBwcm92aWRlcnM6IE5pY2VQcmVsb2FkU2VsZWN0ZWRFbnRpdGllc1Byb3ZpZGVyPGFueT5bXVxuICAgICkge31cblxuICAgIHB1YmxpYyBjcmVhdGVTdGF0ZShuYW1lOiBzdHJpbmcsIG9wdGlvbnM/OiBOaWNlU2VsZWN0YWJsZUxpc3RPcHRpb25zKSB7XG4gICAgICAgIGNvbnN0IHN0b3JlID0gbmV3IEVudGl0eVN0b3JlPFNlbGVjdGFibGVMaXN0U3RhdGU8YW55Pj4oXG4gICAgICAgICAgICB7IGFsbFNlbGVjdGVkOiBmYWxzZSwgdW5zZWxlY3RlZEVudGl0eTogW10gfSxcbiAgICAgICAgICAgIHsgbmFtZSwgaWRLZXk6IG9wdGlvbnM/LmlkS2V5IH1cbiAgICAgICAgKTtcbiAgICAgICAgY29uc3QgcXVlcnkgPSBuZXcgUXVlcnlFbnRpdHkoc3RvcmUpO1xuXG4gICAgICAgIGNvbnN0IHN0YXRlID0geyBzdG9yZSwgcXVlcnkgfTtcbiAgICAgICAgdGhpcy5zdG9yZXMuc2V0KG5hbWUsIHN0YXRlKTtcblxuICAgICAgICByZXR1cm4gc3RhdGU7XG4gICAgfVxuXG4gICAgcHVibGljIGdldFN0YXRlKG5hbWU6IHN0cmluZykge1xuICAgICAgICByZXR1cm4gdGhpcy5zdG9yZXMuZ2V0KG5hbWUpO1xuICAgIH1cblxuICAgIHB1YmxpYyB3aXRoU3RhdGU8VCwgSUQgPSBhbnk+KHN0YXRlTmFtZTogc3RyaW5nLCBvcHRpb25zPzogTmljZVNlbGVjdGFibGVMaXN0T3B0aW9ucyk6IFNlbGVjdGFibGVMaXN0U3RhdGVTZXJ2aWNlPFQsIElEPiB7XG4gICAgICAgIGNvbnN0IHByb3ZpZGVyID0gdGhpcy5wcm92aWRlcnM/LmZpbmQoKHApID0+IHAuc3RhdGUgPT09IHN0YXRlTmFtZSk7XG4gICAgICAgIGNvbnN0IHN0YXRlID0gdGhpcy5nZXRTdGF0ZShzdGF0ZU5hbWUpO1xuICAgICAgICBpZiAoc3RhdGUpIHtcbiAgICAgICAgICAgIHJldHVybiBuZXcgU2VsZWN0YWJsZUxpc3RTdGF0ZVNlcnZpY2U8VD4oc3RhdGUuc3RvcmUsIHByb3ZpZGVyLCBvcHRpb25zKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IG5ld1N0YXRlID0gdGhpcy5jcmVhdGVTdGF0ZShzdGF0ZU5hbWUsIG9wdGlvbnMpO1xuICAgICAgICByZXR1cm4gbmV3IFNlbGVjdGFibGVMaXN0U3RhdGVTZXJ2aWNlPFQ+KG5ld1N0YXRlLnN0b3JlLCBwcm92aWRlciwgb3B0aW9ucyk7XG4gICAgfVxuXG4gICAgcHVibGljIHF1ZXJ5PFQ+KHN0YXRlTmFtZTogc3RyaW5nKTogUXVlcnlFbnRpdHk8U2VsZWN0YWJsZUxpc3RTdGF0ZTxUPj4ge1xuICAgICAgICBjb25zdCBzdGF0ZSA9IHRoaXMuZ2V0U3RhdGUoc3RhdGVOYW1lKTtcbiAgICAgICAgaWYgKCFzdGF0ZSkge1xuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKFwiTm8gc3RhdGUgZm91bmRcIik7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gc3RhdGUucXVlcnkgYXMgUXVlcnlFbnRpdHk8U2VsZWN0YWJsZUxpc3RTdGF0ZTxUPj47XG4gICAgfVxufVxuIl19
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VsZWN0YWJsZS1saXN0LnN0YXRlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmljZS1kYXRhLWZpbHRlci1raXQvc3JjL2xpYi9kaXJlY3RpdmUvc2VsZWN0YWJsZS1saXN0L3N0b3JlL3NlbGVjdGFibGUtbGlzdC5zdGF0ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQWN0aXZlU3RhdGUsIEVudGl0eVN0YXRlIH0gZnJvbSBcIkBkYXRvcmFtYS9ha2l0YVwiO1xuXG5leHBvcnQgdHlwZSBTZWxlY3RhYmxlTGlzdEVudGl0eTxUPiA9IFQgJiB7IGxvYWRlZD86IGJvb2xlYW4gfTtcblxuZXhwb3J0IGludGVyZmFjZSBTZWxlY3RhYmxlTGlzdFN0YXRlPFQ+IGV4dGVuZHMgRW50aXR5U3RhdGU8U2VsZWN0YWJsZUxpc3RFbnRpdHk8VD4sIG51bWJlcj4sIEFjdGl2ZVN0YXRlPGFueT4ge1xuICAgIGFsbFNlbGVjdGVkOiBib29sZWFuO1xuICAgIHVuc2VsZWN0ZWRFbnRpdHk6IGFueVtdO1xufVxuIl19
@@ -3,6 +3,7 @@
3
3
  */
4
4
  export * from "./lib/api/public-api";
5
5
  export * from "./lib/components/public-api";
6
+ export * from "./lib/directive/public-api";
6
7
  export * from "./lib/models/public-api";
7
8
  export * from "./lib/utils/public-api";
8
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3Byb2plY3RzL25pY2UtZGF0YS1maWx0ZXIta2l0L3NyYy9wdWJsaWMtYXBpLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztHQUVHO0FBRUgsY0FBYyxzQkFBc0IsQ0FBQztBQUNyQyxjQUFjLDZCQUE2QixDQUFDO0FBQzVDLGNBQWMseUJBQXlCLENBQUM7QUFDeEMsY0FBYyx3QkFBd0IsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qXG4gKiBQdWJsaWMgQVBJIFN1cmZhY2Ugb2YgbmljZS1kYXRhLWZpbHRlci1raXRcbiAqL1xuXG5leHBvcnQgKiBmcm9tIFwiLi9saWIvYXBpL3B1YmxpYy1hcGlcIjtcbmV4cG9ydCAqIGZyb20gXCIuL2xpYi9jb21wb25lbnRzL3B1YmxpYy1hcGlcIjtcbmV4cG9ydCAqIGZyb20gXCIuL2xpYi9tb2RlbHMvcHVibGljLWFwaVwiO1xuZXhwb3J0ICogZnJvbSBcIi4vbGliL3V0aWxzL3B1YmxpYy1hcGlcIjtcbiJdfQ==
9
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3Byb2plY3RzL25pY2UtZGF0YS1maWx0ZXIta2l0L3NyYy9wdWJsaWMtYXBpLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztHQUVHO0FBRUgsY0FBYyxzQkFBc0IsQ0FBQztBQUNyQyxjQUFjLDZCQUE2QixDQUFDO0FBQzVDLGNBQWMsNEJBQTRCLENBQUM7QUFDM0MsY0FBYyx5QkFBeUIsQ0FBQztBQUN4QyxjQUFjLHdCQUF3QixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLypcbiAqIFB1YmxpYyBBUEkgU3VyZmFjZSBvZiBuaWNlLWRhdGEtZmlsdGVyLWtpdFxuICovXG5cbmV4cG9ydCAqIGZyb20gXCIuL2xpYi9hcGkvcHVibGljLWFwaVwiO1xuZXhwb3J0ICogZnJvbSBcIi4vbGliL2NvbXBvbmVudHMvcHVibGljLWFwaVwiO1xuZXhwb3J0ICogZnJvbSBcIi4vbGliL2RpcmVjdGl2ZS9wdWJsaWMtYXBpXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9saWIvbW9kZWxzL3B1YmxpYy1hcGlcIjtcbmV4cG9ydCAqIGZyb20gXCIuL2xpYi91dGlscy9wdWJsaWMtYXBpXCI7XG4iXX0=