@elderbyte/ngx-starter 17.11.0-beta2 → 17.11.0-beta4

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 (21) hide show
  1. package/esm2022/lib/components/forms/search/domain/input/search-input-state.mjs +9 -19
  2. package/esm2022/lib/components/forms/search/elder-search-context.directive.mjs +3 -3
  3. package/esm2022/lib/components/forms/search/elder-search-input.directive.mjs +26 -16
  4. package/esm2022/lib/components/forms/search/filter/default-input-filter-converter.mjs +2 -1
  5. package/esm2022/lib/components/forms/search/filter/include-exclude-input-converter.mjs +25 -53
  6. package/esm2022/lib/components/select/elder-select.module.mjs +2 -1
  7. package/esm2022/lib/components/select/filter/elder-chip-filter-style-resolver.mjs +10 -10
  8. package/esm2022/lib/components/select/filter/elder-chips-filter.directive.mjs +18 -99
  9. package/esm2022/lib/components/select/filter/include-exclude-selection-model.mjs +108 -0
  10. package/esm2022/lib/components/select/multi/elder-search-include-exclude.directive.mjs +10 -19
  11. package/fesm2022/elderbyte-ngx-starter.mjs +194 -206
  12. package/fesm2022/elderbyte-ngx-starter.mjs.map +1 -1
  13. package/lib/components/forms/search/domain/input/search-input-state.d.ts +4 -20
  14. package/lib/components/forms/search/elder-search-input.directive.d.ts +9 -6
  15. package/lib/components/forms/search/filter/include-exclude-input-converter.d.ts +11 -27
  16. package/lib/components/select/elder-select.module.d.ts +1 -0
  17. package/lib/components/select/filter/elder-chip-filter-style-resolver.d.ts +3 -3
  18. package/lib/components/select/filter/elder-chips-filter.directive.d.ts +3 -32
  19. package/lib/components/select/filter/include-exclude-selection-model.d.ts +46 -0
  20. package/lib/components/select/multi/elder-search-include-exclude.directive.d.ts +2 -3
  21. package/package.json +1 -1
@@ -0,0 +1,108 @@
1
+ import { BehaviorSubject } from 'rxjs';
2
+ import { LoggerFactory } from '@elderbyte/ts-logger';
3
+ import { map } from 'rxjs/operators';
4
+ export class IncludeExcludeState {
5
+ constructor(id, mode) {
6
+ this.id = id;
7
+ this.mode = mode;
8
+ }
9
+ }
10
+ export var IncludeExcludeMode;
11
+ (function (IncludeExcludeMode) {
12
+ IncludeExcludeMode["NEUTRAL"] = "NEUTRAL";
13
+ IncludeExcludeMode["INCLUDE"] = "INCLUDE";
14
+ IncludeExcludeMode["EXCLUDE"] = "EXCLUDE";
15
+ })(IncludeExcludeMode || (IncludeExcludeMode = {}));
16
+ export class IncludeExcludeSelectionModel {
17
+ constructor() {
18
+ /***************************************************************************
19
+ * *
20
+ * Fields *
21
+ * *
22
+ **************************************************************************/
23
+ this.log = LoggerFactory.getLogger(this.constructor.name);
24
+ this.stateById$ = new BehaviorSubject(new Map());
25
+ }
26
+ /***************************************************************************
27
+ * *
28
+ * Properties *
29
+ * *
30
+ **************************************************************************/
31
+ get selection() {
32
+ return Array.from(this.stateById$.getValue().values());
33
+ }
34
+ get selection$() {
35
+ return this.stateById$.pipe(map(stateMap => Array.from(stateMap.values())));
36
+ }
37
+ /***************************************************************************
38
+ * *
39
+ * Public API *
40
+ * *
41
+ **************************************************************************/
42
+ cycleExisting(id) {
43
+ const existingState = this.findStateById(id);
44
+ if (existingState) {
45
+ return this.updateState(id, this.cycleFilterEntitySelection(existingState.mode));
46
+ }
47
+ else {
48
+ return null;
49
+ }
50
+ }
51
+ initTo(ids, initialMode = IncludeExcludeMode.NEUTRAL) {
52
+ const current = this.stateById$.getValue();
53
+ const newStates = new Map();
54
+ ids.forEach(id => {
55
+ if (current.has(id)) {
56
+ newStates.set(id, current.get(id));
57
+ }
58
+ else {
59
+ newStates.set(id, new IncludeExcludeState(id, initialMode));
60
+ }
61
+ });
62
+ this.stateById$.next(newStates);
63
+ }
64
+ replaceSelection(newStates) {
65
+ this.stateById$.next(this.toStateMap(newStates));
66
+ }
67
+ updateState(id, mode) {
68
+ const map = this.stateById$.getValue();
69
+ const newState = new IncludeExcludeState(id, mode);
70
+ map.set(id, newState);
71
+ this.stateById$.next(map);
72
+ return newState;
73
+ }
74
+ updateStates(newStates) {
75
+ const current = this.stateById$.getValue();
76
+ newStates.forEach(newState => {
77
+ current.set(newState.id, newState);
78
+ });
79
+ this.stateById$.next(current);
80
+ }
81
+ isInMode(id, mode) {
82
+ return this.findStateById(id)?.mode == mode;
83
+ }
84
+ findStateById(searchedId) {
85
+ return this.stateById$.getValue().get(searchedId);
86
+ }
87
+ /***************************************************************************
88
+ * *
89
+ * Private methods *
90
+ * *
91
+ **************************************************************************/
92
+ cycleFilterEntitySelection(selection) {
93
+ switch (selection) {
94
+ case IncludeExcludeMode.NEUTRAL:
95
+ return IncludeExcludeMode.INCLUDE;
96
+ case IncludeExcludeMode.INCLUDE:
97
+ return IncludeExcludeMode.EXCLUDE;
98
+ case IncludeExcludeMode.EXCLUDE:
99
+ return IncludeExcludeMode.NEUTRAL;
100
+ default:
101
+ return IncludeExcludeMode.NEUTRAL;
102
+ }
103
+ }
104
+ toStateMap(list) {
105
+ return new Map(list.map(entity => [entity.id, entity]));
106
+ }
107
+ }
108
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5jbHVkZS1leGNsdWRlLXNlbGVjdGlvbi1tb2RlbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2VsZGVyYnl0ZS9uZ3gtc3RhcnRlci9zcmMvbGliL2NvbXBvbmVudHMvc2VsZWN0L2ZpbHRlci9pbmNsdWRlLWV4Y2x1ZGUtc2VsZWN0aW9uLW1vZGVsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxlQUFlLEVBQWEsTUFBTSxNQUFNLENBQUM7QUFDakQsT0FBTyxFQUFDLGFBQWEsRUFBQyxNQUFNLHNCQUFzQixDQUFDO0FBQ25ELE9BQU8sRUFBQyxHQUFHLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQztBQUVuQyxNQUFNLE9BQU8sbUJBQW1CO0lBQzlCLFlBQ2tCLEVBQVUsRUFDbkIsSUFBd0I7UUFEZixPQUFFLEdBQUYsRUFBRSxDQUFRO1FBQ25CLFNBQUksR0FBSixJQUFJLENBQW9CO0lBQzdCLENBQUM7Q0FDTjtBQUVELE1BQU0sQ0FBTixJQUFZLGtCQUlYO0FBSkQsV0FBWSxrQkFBa0I7SUFDNUIseUNBQW1CLENBQUE7SUFDbkIseUNBQW1CLENBQUE7SUFDbkIseUNBQW1CLENBQUE7QUFDckIsQ0FBQyxFQUpXLGtCQUFrQixLQUFsQixrQkFBa0IsUUFJN0I7QUFHRCxNQUFNLE9BQU8sNEJBQTRCO0lBQXpDO1FBRUU7Ozs7b0ZBSTRFO1FBRTNELFFBQUcsR0FBRyxhQUFhLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLENBQUM7UUFFckQsZUFBVSxHQUFHLElBQUksZUFBZSxDQUFtQyxJQUFJLEdBQUcsRUFBRSxDQUFDLENBQUM7SUE4R2pHLENBQUM7SUE1R0M7Ozs7Z0ZBSTRFO0lBRTVFLElBQVcsU0FBUztRQUNsQixPQUFPLEtBQUssQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxN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QUFDO0lBRUQ7Ozs7Z0ZBSTRFO0lBRXBFLDBCQUEwQixDQUFDLFNBQTZCO1FBQzlELFFBQVEsU0FBUyxFQUFFO1lBQ2pCLEtBQUssa0JBQWtCLENBQUMsT0FBTztnQkFDN0IsT0FBTyxrQkFBa0IsQ0FBQyxPQUFPLENBQUM7WUFDcEMsS0FBSyxrQkFBa0IsQ0FBQyxPQUFPO2dCQUM3QixPQUFPLGtCQUFrQixDQUFDLE9BQU8sQ0FBQztZQUNwQyxLQUFLLGtCQUFrQixDQUFDLE9BQU87Z0JBQzdCLE9BQU8sa0JBQWtCLENBQUMsT0FBTyxDQUFDO1lBQ3BDO2dCQUNFLE9BQU8sa0JBQWtCLENBQUMsT0FBTyxDQUFDO1NBQ3JDO0lBQ0gsQ0FBQztJQUVPLFVBQVUsQ0FDaEIsSUFBMkI7UUFFM0IsT0FBTyxJQUFJLEdBQUcsQ0FDWixJQUFJLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsQ0FBQyxNQUFNLENBQUMsRUFBRSxFQUFFLE1BQU0sQ0FBQyxDQUFDLENBQ3hDLENBQUM7SUFDSixDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0JlaGF2aW9yU3ViamVjdCwgT2JzZXJ2YWJsZX0gZnJvbSAncnhqcyc7XG5pbXBvcnQge0xvZ2dlckZhY3Rvcnl9IGZyb20gJ0BlbGRlcmJ5dGUvdHMtbG9nZ2VyJztcbmltcG9ydCB7bWFwfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5cbmV4cG9ydCBjbGFzcyBJbmNsdWRlRXhjbHVkZVN0YXRlIHtcbiAgY29uc3RydWN0b3IoXG4gICAgcHVibGljIHJlYWRvbmx5IGlkOiBzdHJpbmcsXG4gICAgcHVibGljIG1vZGU6IEluY2x1ZGVFeGNsdWRlTW9kZVxuICApIHsgfVxufVxuXG5leHBvcnQgZW51bSBJbmNsdWRlRXhjbHVkZU1vZGUge1xuICBORVVUUkFMID0gJ05FVVRSQUwnLFxuICBJTkNMVURFID0gJ0lOQ0xVREUnLFxuICBFWENMVURFID0gJ0VYQ0xVREUnXG59XG5cblxuZXhwb3J0IGNsYXNzIEluY2x1ZGVFeGNsdWRlU2VsZWN0aW9uTW9kZWwge1xuXG4gIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiBGaWVsZHMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgbG9nID0gTG9nZ2VyRmFjdG9yeS5nZXRMb2dnZXIodGhpcy5jb25zdHJ1Y3Rvci5uYW1lKTtcblxuICBwcml2YXRlIHJlYWRvbmx5IHN0YXRlQnlJZCQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PE1hcDxzdHJpbmcsIEluY2x1ZGVFeGNsdWRlU3RhdGU+PihuZXcgTWFwKCkpO1xuXG4gIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiBQcm9wZXJ0aWVzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG4gIHB1YmxpYyBnZXQgc2VsZWN0aW9uKCk6IEluY2x1ZGVFeGNsdWRlU3RhdGVbXSB7XG4gICAgcmV0dXJuIEFycmF5LmZyb20odGhpcy5zdGF0ZUJ5SWQkLmdldFZhbHVlKCkudmFsdWVzKCkpO1xuICB9XG5cbiAgcHVibGljIGdldCBzZWxlY3Rpb24kKCk6IE9ic2VydmFibGU8SW5jbHVkZUV4Y2x1ZGVTdGF0ZVtdPiB7XG4gICAgcmV0dXJuIHRoaXMuc3RhdGVCeUlkJC5waXBlKFxuICAgICAgbWFwKHN0YXRlTWFwID0+IEFycmF5LmZyb20oc3RhdGVNYXAudmFsdWVzKCkpKSxcbiAgICApO1xuICB9XG5cbiAgLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqIFB1YmxpYyBBUEkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5cbiAgcHVibGljIGN5Y2xlRXhpc3RpbmcoaWQ6IHN0cmluZyk6IEluY2x1ZGVFeGNsdWRlU3RhdGUgfCBudWxsIHtcbiAgICBjb25zdCBleGlzdGluZ1N0YXRlID0gdGhpcy5maW5kU3RhdGVCeUlkKGlkKTtcbiAgICBpZiAoZXhpc3RpbmdTdGF0ZSkge1xuICAgICAgcmV0dXJuIHRoaXMudXBkYXRlU3RhdGUoXG4gICAgICAgIGlkLFxuICAgICAgICB0aGlzLmN5Y2xlRmlsdGVyRW50aXR5U2VsZWN0aW9uKGV4aXN0aW5nU3RhdGUubW9kZSlcbiAgICAgICk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiBudWxsO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBpbml0VG8oXG4gICAgaWRzOiBzdHJpbmdbXSxcbiAgICBpbml0aWFsTW9kZSA9IEluY2x1ZGVFeGNsdWRlTW9kZS5ORVVUUkFMXG4gICk6IHZvaWQge1xuICAgIGNvbnN0IGN1cnJlbnQgPSB0aGlzLnN0YXRlQnlJZCQuZ2V0VmFsdWUoKTtcbiAgICBjb25zdCBuZXdTdGF0ZXMgPSBuZXcgTWFwPHN0cmluZywgSW5jbHVkZUV4Y2x1ZGVTdGF0ZT4oKTtcbiAgICBpZHMuZm9yRWFjaChpZCA9PiB7XG4gICAgICBpZihjdXJyZW50LmhhcyhpZCkpe1xuICAgICAgICBuZXdTdGF0ZXMuc2V0KGlkLCBjdXJyZW50LmdldChpZCkpO1xuICAgICAgfWVsc2V7XG4gICAgICAgIG5ld1N0YXRlcy5zZXQoaWQsIG5ldyBJbmNsdWRlRXhjbHVkZVN0YXRlKGlkLCBpbml0aWFsTW9kZSkpXG4gICAgICB9XG4gICAgfSk7XG4gICAgdGhpcy5zdGF0ZUJ5SWQkLm5leHQobmV3U3RhdGVzKTtcbiAgfVxuXG4gIHB1YmxpYyByZXBsYWNlU2VsZWN0aW9uKFxuICAgIG5ld1N0YXRlczogSW5jbHVkZUV4Y2x1ZGVTdGF0ZVtdXG4gICk6IHZvaWQge1xuICAgIHRoaXMuc3RhdGVCeUlkJC5uZXh0KHRoaXMudG9TdGF0ZU1hcChuZXdTdGF0ZXMpKTtcbiAgfVxuXG4gIHB1YmxpYyB1cGRhdGVTdGF0ZShpZDogc3RyaW5nLCBtb2RlOiBJbmNsdWRlRXhjbHVkZU1vZGUpOiBJbmNsdWRlRXhjbHVkZVN0YXRlIHtcbiAgICAgY29uc3QgbWFwID0gdGhpcy5zdGF0ZUJ5SWQkLmdldFZhbHVlKCk7XG4gICAgIGNvbnN0IG5ld1N0YXRlID0gbmV3IEluY2x1ZGVFeGNsdWRlU3RhdGUoaWQsIG1vZGUpO1xuICAgICBtYXAuc2V0KGlkLCBuZXdTdGF0ZSk7XG4gICAgIHRoaXMuc3RhdGVCeUlkJC5uZXh0KG1hcCk7XG4gICAgIHJldHVybiBuZXdTdGF0ZTtcbiAgfVxuXG4gIHB1YmxpYyB1cGRhdGVTdGF0ZXMoXG4gICAgbmV3U3RhdGVzOiBJbmNsdWRlRXhjbHVkZVN0YXRlW11cbiAgKTogdm9pZHtcbiAgICBjb25zdCBjdXJyZW50ID0gdGhpcy5zdGF0ZUJ5SWQkLmdldFZhbHVlKCk7XG4gICAgbmV3U3RhdGVzLmZvckVhY2gobmV3U3RhdGUgPT4ge1xuICAgICAgY3VycmVudC5zZXQobmV3U3RhdGUuaWQsIG5ld1N0YXRlKTtcbiAgICB9KTtcbiAgICB0aGlzLnN0YXRlQnlJZCQubmV4dChjdXJyZW50KTtcbiAgfVxuXG4gIHB1YmxpYyBpc0luTW9kZShpZDogc3RyaW5nLCBtb2RlOiBJbmNsdWRlRXhjbHVkZU1vZGUpOiBib29sZWFue1xuICAgIHJldHVybiB0aGlzLmZpbmRTdGF0ZUJ5SWQoaWQpPy5tb2RlID09IG1vZGU7XG4gIH1cblxuICBwdWJsaWMgZmluZFN0YXRlQnlJZChzZWFyY2hlZElkOiBzdHJpbmcpOiBJbmNsdWRlRXhjbHVkZVN0YXRlIHwgbnVsbCB7XG4gICAgcmV0dXJuIHRoaXMuc3RhdGVCeUlkJC5nZXRWYWx1ZSgpLmdldChzZWFyY2hlZElkKTtcbiAgfVxuXG4gIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiBQcml2YXRlIG1ldGhvZHMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG4gIHByaXZhdGUgY3ljbGVGaWx0ZXJFbnRpdHlTZWxlY3Rpb24oc2VsZWN0aW9uOiBJbmNsdWRlRXhjbHVkZU1vZGUpOiBJbmNsdWRlRXhjbHVkZU1vZGUge1xuICAgIHN3aXRjaCAoc2VsZWN0aW9uKSB7XG4gICAgICBjYXNlIEluY2x1ZGVFeGNsdWRlTW9kZS5ORVVUUkFMOlxuICAgICAgICByZXR1cm4gSW5jbHVkZUV4Y2x1ZGVNb2RlLklOQ0xVREU7XG4gICAgICBjYXNlIEluY2x1ZGVFeGNsdWRlTW9kZS5JTkNMVURFOlxuICAgICAgICByZXR1cm4gSW5jbHVkZUV4Y2x1ZGVNb2RlLkVYQ0xVREU7XG4gICAgICBjYXNlIEluY2x1ZGVFeGNsdWRlTW9kZS5FWENMVURFOlxuICAgICAgICByZXR1cm4gSW5jbHVkZUV4Y2x1ZGVNb2RlLk5FVVRSQUw7XG4gICAgICBkZWZhdWx0OlxuICAgICAgICByZXR1cm4gSW5jbHVkZUV4Y2x1ZGVNb2RlLk5FVVRSQUw7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSB0b1N0YXRlTWFwKFxuICAgIGxpc3Q6IEluY2x1ZGVFeGNsdWRlU3RhdGVbXVxuICApOiBNYXA8c3RyaW5nLCBJbmNsdWRlRXhjbHVkZVN0YXRlPiB7XG4gICAgcmV0dXJuIG5ldyBNYXAoXG4gICAgICBsaXN0Lm1hcChlbnRpdHkgPT4gW2VudGl0eS5pZCwgZW50aXR5XSlcbiAgICApO1xuICB9XG59XG4iXX0=
@@ -3,6 +3,7 @@ import { takeUntilDestroyed } from '@angular/core/rxjs-interop';
3
3
  import { BehaviorSubject, combineLatest } from 'rxjs';
4
4
  import { filter } from 'rxjs/operators';
5
5
  import IncludeExcludeInputConverter from '../../forms/search/filter/include-exclude-input-converter';
6
+ import { Objects } from '../../../common/objects';
6
7
  import * as i0 from "@angular/core";
7
8
  import * as i1 from "../../forms/search/elder-search-input.directive";
8
9
  import * as i2 from "../filter/elder-chips-filter.directive";
@@ -32,7 +33,7 @@ export class ElderSearchIncludeExcludeDirective {
32
33
  * Fields *
33
34
  * *
34
35
  **************************************************************************/
35
- this._includeSuffix$ = new BehaviorSubject(null);
36
+ this._includeSuffix$ = new BehaviorSubject('');
36
37
  this._excludeSuffix$ = new BehaviorSubject(null);
37
38
  this.setupSearchQueryTransforms();
38
39
  }
@@ -43,28 +44,17 @@ export class ElderSearchIncludeExcludeDirective {
43
44
  **************************************************************************/
44
45
  setupSearchQueryTransforms() {
45
46
  combineLatest([
46
- this.elderSearchInput.name$,
47
+ this.elderSearchInput.queryKey$,
47
48
  this._includeSuffix$,
48
49
  this._excludeSuffix$
49
50
  ])
50
- .pipe(takeUntilDestroyed(this.destroyRef), filter(([queryKey, includeSuffix, excludeSuffix]) => !!queryKey && !!includeSuffix && !!excludeSuffix))
51
+ .pipe(takeUntilDestroyed(this.destroyRef), filter(([queryKey, includeSuffix, excludeSuffix]) => !!queryKey && Objects.nonNull(includeSuffix) && Objects.nonNull(excludeSuffix)))
51
52
  .subscribe(([queryKey, includeSuffix, excludeSuffix]) => {
52
- this.setupConverter(queryKey, includeSuffix, excludeSuffix);
53
+ this.elderSearchInput.inputConverter = this.buildConverter(queryKey, includeSuffix, excludeSuffix);
53
54
  });
54
55
  }
55
- setupConverter(queryKey, includeSuffix, excludeSuffix) {
56
- const converter = IncludeExcludeInputConverter.from(queryKey, includeSuffix, excludeSuffix);
57
- this.elderChipsFilter
58
- .selection$
59
- .pipe(takeUntilDestroyed(this.destroyRef))
60
- .subscribe(selection => converter.selection = this.transformSelectionToMap(selection));
61
- converter.mergedSelections$
62
- .pipe(takeUntilDestroyed(this.destroyRef))
63
- .subscribe(selections => this.elderChipsFilter.selection = Array.from(selections.values()));
64
- this.elderSearchInput.inputConverter = converter;
65
- }
66
- transformSelectionToMap(list) {
67
- return new Map(list.map(entity => [entity.id, entity]));
56
+ buildConverter(queryKey, includeSuffix, excludeSuffix) {
57
+ return new IncludeExcludeInputConverter(this.elderChipsFilter.selectionModel, queryKey, includeSuffix, excludeSuffix);
68
58
  }
69
59
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.11", ngImport: i0, type: ElderSearchIncludeExcludeDirective, deps: [{ token: i1.ElderSearchInputDirective }, { token: i2.ElderChipsFilterDirective }, { token: i0.DestroyRef }], target: i0.ɵɵFactoryTarget.Directive }); }
70
60
  static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.3.11", type: ElderSearchIncludeExcludeDirective, isStandalone: true, selector: "[elderSearchIncludeExclude]", inputs: { includeSuffix: "includeSuffix", excludeSuffix: "excludeSuffix" }, ngImport: i0 }); }
@@ -78,6 +68,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.11", ngImpo
78
68
  }], ctorParameters: () => [{ type: i1.ElderSearchInputDirective }, { type: i2.ElderChipsFilterDirective }, { type: i0.DestroyRef }], propDecorators: { includeSuffix: [{
79
69
  type: Input
80
70
  }], excludeSuffix: [{
81
- type: Input
71
+ type: Input,
72
+ args: [{ required: true }]
82
73
  }] } });
83
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWxkZXItc2VhcmNoLWluY2x1ZGUtZXhjbHVkZS5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9lbGRlcmJ5dGUvbmd4LXN0YXJ0ZXIvc3JjL2xpYi9jb21wb25lbnRzL3NlbGVjdC9tdWx0aS9lbGRlci1zZWFyY2gtaW5jbHVkZS1leGNsdWRlLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQWEsU0FBUyxFQUFFLEtBQUssRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUMzRCxPQUFPLEVBQUMsa0JBQWtCLEVBQUMsTUFBTSw0QkFBNEIsQ0FBQztBQUM5RCxPQUFPLEVBQUMsZUFBZSxFQUFFLGFBQWEsRUFBQyxNQUFNLE1BQU0sQ0FBQztBQUNwRCxPQUFPLEVBQUMsTUFBTSxFQUFDLE1BQU0sZ0JBQWdCLENBQUM7QUFFdEMsT0FBTyw0QkFBNEIsTUFBTSwyREFBMkQsQ0FBQzs7OztBQVdyRyxNQUFNLE9BQU8sa0NBQWtDO0lBVzdDOzs7O2dGQUk0RTtJQUU1RSxJQUNXLGFBQWEsQ0FBQyxNQUFjO1FBQ3JDLElBQUksQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQ3BDLENBQUM7SUFFRCxJQUNXLGFBQWEsQ0FBQyxNQUFjO1FBQ3JDLElBQUksQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQ3BDLENBQUM7SUFFRDs7OztnRkFJNEU7SUFFNUUsWUFDbUIsZ0JBQTJDLEVBQzNDLGdCQUEyQyxFQUNwRCxVQUFzQjtRQUZiLHFCQUFnQixHQUFoQixnQkFBZ0IsQ0FBMkI7UUFDM0MscUJBQWdCLEdBQWhCLGdCQUFnQixDQUEyQjtRQUNwRCxlQUFVLEdBQVYsVUFBVSxDQUFZO1FBbENoQzs7OztvRkFJNEU7UUFFM0Qsb0JBQWUsR0FBRyxJQUFJLGVBQWUsQ0FBUyxJQUFJLENBQUMsQ0FBQztRQUNwRCxvQkFBZSxHQUFHLElBQUksZUFBZSxDQUFTLElBQUksQ0FBQyxDQUFDO1FBNkJuRSxJQUFJLENBQUMsMEJBQTBCLEVBQUUsQ0FBQztJQUNwQyxDQUFDO0lBRUQ7Ozs7Z0ZBSTRFO0lBRXBFLDBCQUEwQjtRQUNoQyxhQUFhLENBQUM7WUFDWixJQUFJLENBQUMsZ0JBQWdCLENBQUMsS0FBSztZQUMzQixJQUFJLENBQUMsZUFBZTtZQUNwQixJQUFJLENBQUMsZUFBZTtTQUNyQixDQUFDO2FBQ0MsSUFBSSxDQUNILGtCQUFrQixDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsRUFDbkMsTUFBTSxDQUFDLENBQUMsQ0FBQyxRQUFRLEVBQUUsYUFBYSxFQUFFLGFBQWEsQ0FBQyxFQUFFLEVBQUUsQ0FDbEQsQ0FBQyxDQUFDLFFBQVEsSUFBSSxDQUFDLENBQUMsYUFBYSxJQUFJLENBQUMsQ0FBQyxhQUFhLENBQ2pELENBQ0Y7YUFDQSxTQUFTLENBQUMsQ0FBQyxDQUFDLFFBQVEsRUFBRSxhQUFhLEVBQUUsYUFBYSxDQUFDLEVBQUUsRUFBRTtZQUN0RCxJQUFJLENBQUMsY0FBYyxDQUFDLFFBQVEsRUFBRSxhQUFhLEVBQUUsYUFBYSxDQUFDLENBQUM7UUFDOUQsQ0FBQyxDQUFDLENBQUM7SUFDUCxDQUFDO0lBRU8sY0FBYyxDQUFDLFFBQWdCLEVBQUUsYUFBcUIsRUFBRSxhQUFxQjtRQUNuRixNQUFNLFNBQVMsR0FDYiw0QkFBNEIsQ0FBQyxJQUFJLENBQy9CLFFBQVEsRUFDUixhQUFhLEVBQ2IsYUFBYSxDQUNkLENBQUM7UUFFSixJQUFJLENBQUMsZ0JBQWdCO2FBQ2xCLFVBQVU7YUFDVixJQUFJLENBQUMsa0JBQWtCLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDO2FBQ3pDLFNBQVMsQ0FBQyxTQUFTLENBQUMsRUFBRSxDQUNyQixTQUFTLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQyx1QkFBdUIsQ0FBQyxTQUFTLENBQUMsQ0FDOUQsQ0FBQztRQUVKLFNBQVMsQ0FBQyxpQkFBaUI7YUFDeEIsSUFBSSxDQUFDLGtCQUFrQixDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQzthQUN6QyxTQUFTLENBQUMsVUFBVSxDQUFDLEVBQUUsQ0FDdEIsSUFBSSxDQUFDLGdCQUFnQixDQUFDLFNBQVMsR0FBRyxLQUFLLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUNsRSxDQUFDO1FBRUosSUFBSSxDQUFDLGdCQUFnQixDQUFDLGNBQWMsR0FBRyxTQUFTLENBQUM7SUFDbkQsQ0FBQztJQUVPLHVCQUF1QixDQUFDLElBQTZCO1FBQzNELE9BQU8sSUFBSSxHQUFHLENBQ1osSUFBSSxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLENBQUMsTUFBTSxDQUFDLEVBQUUsRUFBRSxNQUFNLENBQUMsQ0FBQyxDQUN4QyxDQUFBO0lBQ0gsQ0FBQzsrR0E1RlUsa0NBQWtDO21HQUFsQyxrQ0FBa0M7OzRGQUFsQyxrQ0FBa0M7a0JBSjlDLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLDZCQUE2QjtvQkFDdkMsVUFBVSxFQUFFLElBQUk7aUJBQ2pCOytKQW1CWSxhQUFhO3NCQUR2QixLQUFLO2dCQU1LLGFBQWE7c0JBRHZCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0Rlc3Ryb3lSZWYsIERpcmVjdGl2ZSwgSW5wdXR9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHt0YWtlVW50aWxEZXN0cm95ZWR9IGZyb20gJ0Bhbmd1bGFyL2NvcmUvcnhqcy1pbnRlcm9wJztcbmltcG9ydCB7QmVoYXZpb3JTdWJqZWN0LCBjb21iaW5lTGF0ZXN0fSBmcm9tICdyeGpzJztcbmltcG9ydCB7ZmlsdGVyfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQge0VsZGVyU2VhcmNoSW5wdXREaXJlY3RpdmV9IGZyb20gJy4uLy4uL2Zvcm1zL3NlYXJjaC9lbGRlci1zZWFyY2gtaW5wdXQuZGlyZWN0aXZlJztcbmltcG9ydCBJbmNsdWRlRXhjbHVkZUlucHV0Q29udmVydGVyIGZyb20gJy4uLy4uL2Zvcm1zL3NlYXJjaC9maWx0ZXIvaW5jbHVkZS1leGNsdWRlLWlucHV0LWNvbnZlcnRlcic7XG5pbXBvcnQge1xuICBFbGRlckNoaXBGaWx0ZXJFbnRpdHksXG4gIEVsZGVyQ2hpcHNGaWx0ZXJEaXJlY3RpdmVcbn0gZnJvbSAnLi4vZmlsdGVyL2VsZGVyLWNoaXBzLWZpbHRlci5kaXJlY3RpdmUnO1xuXG5cbkBEaXJlY3RpdmUoe1xuICBzZWxlY3RvcjogJ1tlbGRlclNlYXJjaEluY2x1ZGVFeGNsdWRlXScsXG4gIHN0YW5kYWxvbmU6IHRydWVcbn0pXG5leHBvcnQgY2xhc3MgRWxkZXJTZWFyY2hJbmNsdWRlRXhjbHVkZURpcmVjdGl2ZSB7XG5cbiAgLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqIEZpZWxkcyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5cbiAgcHJpdmF0ZSByZWFkb25seSBfaW5jbHVkZVN1ZmZpeCQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PHN0cmluZz4obnVsbCk7XG4gIHByaXZhdGUgcmVhZG9ubHkgX2V4Y2x1ZGVTdWZmaXgkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxzdHJpbmc+KG51bGwpO1xuXG4gIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiBQcm9wZXJ0aWVzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBzZXQgaW5jbHVkZVN1ZmZpeChzdWZmaXg6IHN0cmluZykge1xuICAgIHRoaXMuX2luY2x1ZGVTdWZmaXgkLm5leHQoc3VmZml4KTtcbiAgfVxuXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBzZXQgZXhjbHVkZVN1ZmZpeChzdWZmaXg6IHN0cmluZykge1xuICAgIHRoaXMuX2V4Y2x1ZGVTdWZmaXgkLm5leHQoc3VmZml4KTtcbiAgfVxuXG4gIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiBDb25zdHJ1Y3RvciAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgcmVhZG9ubHkgZWxkZXJTZWFyY2hJbnB1dDogRWxkZXJTZWFyY2hJbnB1dERpcmVjdGl2ZSxcbiAgICBwcml2YXRlIHJlYWRvbmx5IGVsZGVyQ2hpcHNGaWx0ZXI6IEVsZGVyQ2hpcHNGaWx0ZXJEaXJlY3RpdmUsXG4gICAgcHJpdmF0ZSBkZXN0cm95UmVmOiBEZXN0cm95UmVmXG4gICkge1xuICAgIHRoaXMuc2V0dXBTZWFyY2hRdWVyeVRyYW5zZm9ybXMoKTtcbiAgfVxuXG4gIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiBQcml2YXRlIE1ldGhvZHMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG4gIHByaXZhdGUgc2V0dXBTZWFyY2hRdWVyeVRyYW5zZm9ybXMoKSB7XG4gICAgY29tYmluZUxhdGVzdChbXG4gICAgICB0aGlzLmVsZGVyU2VhcmNoSW5wdXQubmFtZSQsXG4gICAgICB0aGlzLl9pbmNsdWRlU3VmZml4JCxcbiAgICAgIHRoaXMuX2V4Y2x1ZGVTdWZmaXgkXG4gICAgXSlcbiAgICAgIC5waXBlKFxuICAgICAgICB0YWtlVW50aWxEZXN0cm95ZWQodGhpcy5kZXN0cm95UmVmKSxcbiAgICAgICAgZmlsdGVyKChbcXVlcnlLZXksIGluY2x1ZGVTdWZmaXgsIGV4Y2x1ZGVTdWZmaXhdKSA9PlxuICAgICAgICAgICEhcXVlcnlLZXkgJiYgISFpbmNsdWRlU3VmZml4ICYmICEhZXhjbHVkZVN1ZmZpeFxuICAgICAgICApXG4gICAgICApXG4gICAgICAuc3Vic2NyaWJlKChbcXVlcnlLZXksIGluY2x1ZGVTdWZmaXgsIGV4Y2x1ZGVTdWZmaXhdKSA9PiB7XG4gICAgICAgIHRoaXMuc2V0dXBDb252ZXJ0ZXIocXVlcnlLZXksIGluY2x1ZGVTdWZmaXgsIGV4Y2x1ZGVTdWZmaXgpO1xuICAgICAgfSk7XG4gIH1cblxuICBwcml2YXRlIHNldHVwQ29udmVydGVyKHF1ZXJ5S2V5OiBzdHJpbmcsIGluY2x1ZGVTdWZmaXg6IHN0cmluZywgZXhjbHVkZVN1ZmZpeDogc3RyaW5nKTogdm9pZCB7XG4gICAgY29uc3QgY29udmVydGVyID1cbiAgICAgIEluY2x1ZGVFeGNsdWRlSW5wdXRDb252ZXJ0ZXIuZnJvbShcbiAgICAgICAgcXVlcnlLZXksXG4gICAgICAgIGluY2x1ZGVTdWZmaXgsXG4gICAgICAgIGV4Y2x1ZGVTdWZmaXhcbiAgICAgICk7XG5cbiAgICB0aGlzLmVsZGVyQ2hpcHNGaWx0ZXJcbiAgICAgIC5zZWxlY3Rpb24kXG4gICAgICAucGlwZSh0YWtlVW50aWxEZXN0cm95ZWQodGhpcy5kZXN0cm95UmVmKSlcbiAgICAgIC5zdWJzY3JpYmUoc2VsZWN0aW9uID0+XG4gICAgICAgIGNvbnZlcnRlci5zZWxlY3Rpb24gPSB0aGlzLnRyYW5zZm9ybVNlbGVjdGlvblRvTWFwKHNlbGVjdGlvbilcbiAgICAgICk7XG5cbiAgICBjb252ZXJ0ZXIubWVyZ2VkU2VsZWN0aW9ucyRcbiAgICAgIC5waXBlKHRha2VVbnRpbERlc3Ryb3llZCh0aGlzLmRlc3Ryb3lSZWYpKVxuICAgICAgLnN1YnNjcmliZShzZWxlY3Rpb25zID0+XG4gICAgICAgIHRoaXMuZWxkZXJDaGlwc0ZpbHRlci5zZWxlY3Rpb24gPSBBcnJheS5mcm9tKHNlbGVjdGlvbnMudmFsdWVzKCkpXG4gICAgICApO1xuXG4gICAgdGhpcy5lbGRlclNlYXJjaElucHV0LmlucHV0Q29udmVydGVyID0gY29udmVydGVyO1xuICB9XG5cbiAgcHJpdmF0ZSB0cmFuc2Zvcm1TZWxlY3Rpb25Ub01hcChsaXN0OiBFbGRlckNoaXBGaWx0ZXJFbnRpdHlbXSk6IE1hcDxzdHJpbmcsIEVsZGVyQ2hpcEZpbHRlckVudGl0eT4ge1xuICAgIHJldHVybiBuZXcgTWFwKFxuICAgICAgbGlzdC5tYXAoZW50aXR5ID0+IFtlbnRpdHkuaWQsIGVudGl0eV0pXG4gICAgKVxuICB9XG59XG5cbiJdfQ==
74
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWxkZXItc2VhcmNoLWluY2x1ZGUtZXhjbHVkZS5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9lbGRlcmJ5dGUvbmd4LXN0YXJ0ZXIvc3JjL2xpYi9jb21wb25lbnRzL3NlbGVjdC9tdWx0aS9lbGRlci1zZWFyY2gtaW5jbHVkZS1leGNsdWRlLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQWEsU0FBUyxFQUFFLEtBQUssRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUMzRCxPQUFPLEVBQUMsa0JBQWtCLEVBQUMsTUFBTSw0QkFBNEIsQ0FBQztBQUM5RCxPQUFPLEVBQUMsZUFBZSxFQUFFLGFBQWEsRUFBQyxNQUFNLE1BQU0sQ0FBQztBQUNwRCxPQUFPLEVBQUMsTUFBTSxFQUFDLE1BQU0sZ0JBQWdCLENBQUM7QUFFdEMsT0FBTyw0QkFBNEIsTUFBTSwyREFBMkQsQ0FBQztBQUVyRyxPQUFPLEVBQUMsT0FBTyxFQUFDLE1BQU0seUJBQXlCLENBQUM7Ozs7QUFNaEQsTUFBTSxPQUFPLGtDQUFrQztJQVc3Qzs7OztnRkFJNEU7SUFFNUUsSUFDVyxhQUFhLENBQUMsTUFBYztRQUNyQyxJQUFJLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUNwQyxDQUFDO0lBRUQsSUFDVyxhQUFhLENBQUMsTUFBYztRQUNyQyxJQUFJLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUNwQyxDQUFDO0lBRUQ7Ozs7Z0ZBSTRFO0lBRTVFLFlBQ21CLGdCQUEyQyxFQUMzQyxnQkFBMkMsRUFDcEQsVUFBc0I7UUFGYixxQkFBZ0IsR0FBaEIsZ0JBQWdCLENBQTJCO1FBQzNDLHFCQUFnQixHQUFoQixnQkFBZ0IsQ0FBMkI7UUFDcEQsZUFBVSxHQUFWLFVBQVUsQ0FBWTtRQWxDaEM7Ozs7b0ZBSTRFO1FBRTNELG9CQUFlLEdBQUcsSUFBSSxlQUFlLENBQVMsRUFBRSxDQUFDLENBQUM7UUFDbEQsb0JBQWUsR0FBRyxJQUFJLGVBQWUsQ0FBUyxJQUFJLENBQUMsQ0FBQztRQTZCbkUsSUFBSSxDQUFDLDBCQUEwQixFQUFFLENBQUM7SUFDcEMsQ0FBQztJQUVEOzs7O2dGQUk0RTtJQUVwRSwwQkFBMEI7UUFDaEMsYUFBYSxDQUFDO1lBQ1osSUFBSSxDQUFDLGdCQUFnQixDQUFDLFNBQVM7WUFDL0IsSUFBSSxDQUFDLGVBQWU7WUFDcEIsSUFBSSxDQUFDLGVBQWU7U0FDckIsQ0FBQzthQUNDLElBQUksQ0FDSCxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLEVBQ25DLE1BQU0sQ0FBQyxDQUFDLENBQUMsUUFBUSxFQUFFLGFBQWEsRUFBRSxhQUFhLENBQUMsRUFBRSxFQUFFLENBQ2xELENBQUMsQ0FBQyxRQUFRLElBQUksT0FBTyxDQUFDLE9BQU8sQ0FBQyxhQUFhLENBQUMsSUFBSSxPQUFPLENBQUMsT0FBTyxDQUFDLGFBQWEsQ0FBQyxDQUMvRSxDQUNGO2FBQ0EsU0FBUyxDQUFDLENBQUMsQ0FBQyxRQUFRLEVBQUUsYUFBYSxFQUFFLGFBQWEsQ0FBQyxFQUFFLEVBQUU7WUFDdEQsSUFBSSxDQUFDLGdCQUFnQixDQUFDLGNBQWMsR0FBRyxJQUFJLENBQUMsY0FBYyxDQUFDLFFBQVEsRUFBRSxhQUFhLEVBQUUsYUFBYSxDQUFDLENBQUM7UUFDckcsQ0FBQyxDQUFDLENBQUM7SUFDUCxDQUFDO0lBSU8sY0FBYyxDQUNwQixRQUFnQixFQUNoQixhQUFxQixFQUNyQixhQUFxQjtRQUVyQixPQUFPLElBQUksNEJBQTRCLENBQ3JDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxjQUFjLEVBQ3BDLFFBQVEsRUFDUixhQUFhLEVBQ2IsYUFBYSxDQUNkLENBQUM7SUFDSixDQUFDOytHQTdFVSxrQ0FBa0M7bUdBQWxDLGtDQUFrQzs7NEZBQWxDLGtDQUFrQztrQkFKOUMsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsNkJBQTZCO29CQUN2QyxVQUFVLEVBQUUsSUFBSTtpQkFDakI7K0pBbUJZLGFBQWE7c0JBRHZCLEtBQUs7Z0JBTUssYUFBYTtzQkFEdkIsS0FBSzt1QkFBQyxFQUFDLFFBQVEsRUFBRSxJQUFJLEVBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0Rlc3Ryb3lSZWYsIERpcmVjdGl2ZSwgSW5wdXR9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHt0YWtlVW50aWxEZXN0cm95ZWR9IGZyb20gJ0Bhbmd1bGFyL2NvcmUvcnhqcy1pbnRlcm9wJztcbmltcG9ydCB7QmVoYXZpb3JTdWJqZWN0LCBjb21iaW5lTGF0ZXN0fSBmcm9tICdyeGpzJztcbmltcG9ydCB7ZmlsdGVyfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQge0VsZGVyU2VhcmNoSW5wdXREaXJlY3RpdmV9IGZyb20gJy4uLy4uL2Zvcm1zL3NlYXJjaC9lbGRlci1zZWFyY2gtaW5wdXQuZGlyZWN0aXZlJztcbmltcG9ydCBJbmNsdWRlRXhjbHVkZUlucHV0Q29udmVydGVyIGZyb20gJy4uLy4uL2Zvcm1zL3NlYXJjaC9maWx0ZXIvaW5jbHVkZS1leGNsdWRlLWlucHV0LWNvbnZlcnRlcic7XG5pbXBvcnQge0VsZGVyQ2hpcHNGaWx0ZXJEaXJlY3RpdmV9IGZyb20gJy4uL2ZpbHRlci9lbGRlci1jaGlwcy1maWx0ZXIuZGlyZWN0aXZlJztcbmltcG9ydCB7T2JqZWN0c30gZnJvbSAnLi4vLi4vLi4vY29tbW9uL29iamVjdHMnO1xuXG5ARGlyZWN0aXZlKHtcbiAgc2VsZWN0b3I6ICdbZWxkZXJTZWFyY2hJbmNsdWRlRXhjbHVkZV0nLFxuICBzdGFuZGFsb25lOiB0cnVlXG59KVxuZXhwb3J0IGNsYXNzIEVsZGVyU2VhcmNoSW5jbHVkZUV4Y2x1ZGVEaXJlY3RpdmUge1xuXG4gIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiBGaWVsZHMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgX2luY2x1ZGVTdWZmaXgkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxzdHJpbmc+KCcnKTtcbiAgcHJpdmF0ZSByZWFkb25seSBfZXhjbHVkZVN1ZmZpeCQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PHN0cmluZz4obnVsbCk7XG5cbiAgLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqIFByb3BlcnRpZXMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5cbiAgQElucHV0KClcbiAgcHVibGljIHNldCBpbmNsdWRlU3VmZml4KHN1ZmZpeDogc3RyaW5nKSB7XG4gICAgdGhpcy5faW5jbHVkZVN1ZmZpeCQubmV4dChzdWZmaXgpO1xuICB9XG5cbiAgQElucHV0KHtyZXF1aXJlZDogdHJ1ZX0pXG4gIHB1YmxpYyBzZXQgZXhjbHVkZVN1ZmZpeChzdWZmaXg6IHN0cmluZykge1xuICAgIHRoaXMuX2V4Y2x1ZGVTdWZmaXgkLm5leHQoc3VmZml4KTtcbiAgfVxuXG4gIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiBDb25zdHJ1Y3RvciAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgcmVhZG9ubHkgZWxkZXJTZWFyY2hJbnB1dDogRWxkZXJTZWFyY2hJbnB1dERpcmVjdGl2ZSxcbiAgICBwcml2YXRlIHJlYWRvbmx5IGVsZGVyQ2hpcHNGaWx0ZXI6IEVsZGVyQ2hpcHNGaWx0ZXJEaXJlY3RpdmUsXG4gICAgcHJpdmF0ZSBkZXN0cm95UmVmOiBEZXN0cm95UmVmXG4gICkge1xuICAgIHRoaXMuc2V0dXBTZWFyY2hRdWVyeVRyYW5zZm9ybXMoKTtcbiAgfVxuXG4gIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiBQcml2YXRlIE1ldGhvZHMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG4gIHByaXZhdGUgc2V0dXBTZWFyY2hRdWVyeVRyYW5zZm9ybXMoKSB7XG4gICAgY29tYmluZUxhdGVzdChbXG4gICAgICB0aGlzLmVsZGVyU2VhcmNoSW5wdXQucXVlcnlLZXkkLFxuICAgICAgdGhpcy5faW5jbHVkZVN1ZmZpeCQsXG4gICAgICB0aGlzLl9leGNsdWRlU3VmZml4JFxuICAgIF0pXG4gICAgICAucGlwZShcbiAgICAgICAgdGFrZVVudGlsRGVzdHJveWVkKHRoaXMuZGVzdHJveVJlZiksXG4gICAgICAgIGZpbHRlcigoW3F1ZXJ5S2V5LCBpbmNsdWRlU3VmZml4LCBleGNsdWRlU3VmZml4XSkgPT5cbiAgICAgICAgICAhIXF1ZXJ5S2V5ICYmIE9iamVjdHMubm9uTnVsbChpbmNsdWRlU3VmZml4KSAmJiBPYmplY3RzLm5vbk51bGwoZXhjbHVkZVN1ZmZpeClcbiAgICAgICAgKVxuICAgICAgKVxuICAgICAgLnN1YnNjcmliZSgoW3F1ZXJ5S2V5LCBpbmNsdWRlU3VmZml4LCBleGNsdWRlU3VmZml4XSkgPT4ge1xuICAgICAgICB0aGlzLmVsZGVyU2VhcmNoSW5wdXQuaW5wdXRDb252ZXJ0ZXIgPSB0aGlzLmJ1aWxkQ29udmVydGVyKHF1ZXJ5S2V5LCBpbmNsdWRlU3VmZml4LCBleGNsdWRlU3VmZml4KTtcbiAgICAgIH0pO1xuICB9XG5cblxuXG4gIHByaXZhdGUgYnVpbGRDb252ZXJ0ZXIoXG4gICAgcXVlcnlLZXk6IHN0cmluZyxcbiAgICBpbmNsdWRlU3VmZml4OiBzdHJpbmcsXG4gICAgZXhjbHVkZVN1ZmZpeDogc3RyaW5nXG4gICk6IEluY2x1ZGVFeGNsdWRlSW5wdXRDb252ZXJ0ZXIge1xuICAgIHJldHVybiBuZXcgSW5jbHVkZUV4Y2x1ZGVJbnB1dENvbnZlcnRlcihcbiAgICAgIHRoaXMuZWxkZXJDaGlwc0ZpbHRlci5zZWxlY3Rpb25Nb2RlbCxcbiAgICAgIHF1ZXJ5S2V5LFxuICAgICAgaW5jbHVkZVN1ZmZpeCxcbiAgICAgIGV4Y2x1ZGVTdWZmaXhcbiAgICApO1xuICB9XG59XG5cbiJdfQ==