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

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 +13 -6
  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 +9 -18
  11. package/fesm2022/elderbyte-ngx-starter.mjs +180 -195
  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 +3 -0
  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
@@ -23320,6 +23320,111 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.11", ngImpo
23320
23320
  args: ['body']
23321
23321
  }] } });
23322
23322
 
23323
+ class IncludeExcludeState {
23324
+ constructor(id, mode) {
23325
+ this.id = id;
23326
+ this.mode = mode;
23327
+ }
23328
+ }
23329
+ var IncludeExcludeMode;
23330
+ (function (IncludeExcludeMode) {
23331
+ IncludeExcludeMode["NEUTRAL"] = "NEUTRAL";
23332
+ IncludeExcludeMode["INCLUDE"] = "INCLUDE";
23333
+ IncludeExcludeMode["EXCLUDE"] = "EXCLUDE";
23334
+ })(IncludeExcludeMode || (IncludeExcludeMode = {}));
23335
+ class IncludeExcludeSelectionModel {
23336
+ constructor() {
23337
+ /***************************************************************************
23338
+ * *
23339
+ * Fields *
23340
+ * *
23341
+ **************************************************************************/
23342
+ this.log = LoggerFactory.getLogger(this.constructor.name);
23343
+ this.stateById$ = new BehaviorSubject(new Map());
23344
+ }
23345
+ /***************************************************************************
23346
+ * *
23347
+ * Properties *
23348
+ * *
23349
+ **************************************************************************/
23350
+ get selection() {
23351
+ return Array.from(this.stateById$.getValue().values());
23352
+ }
23353
+ get selection$() {
23354
+ return this.stateById$.pipe(map(stateMap => Array.from(stateMap.values())));
23355
+ }
23356
+ /***************************************************************************
23357
+ * *
23358
+ * Public API *
23359
+ * *
23360
+ **************************************************************************/
23361
+ cycleExisting(id) {
23362
+ const existingState = this.findStateById(id);
23363
+ if (existingState) {
23364
+ return this.updateState(id, this.cycleFilterEntitySelection(existingState.mode));
23365
+ }
23366
+ else {
23367
+ return null;
23368
+ }
23369
+ }
23370
+ initTo(ids, initialMode = IncludeExcludeMode.NEUTRAL) {
23371
+ const current = this.stateById$.getValue();
23372
+ const newStates = new Map();
23373
+ ids.forEach(id => {
23374
+ if (current.has(id)) {
23375
+ newStates.set(id, current.get(id));
23376
+ }
23377
+ else {
23378
+ newStates.set(id, new IncludeExcludeState(id, initialMode));
23379
+ }
23380
+ });
23381
+ this.stateById$.next(newStates);
23382
+ }
23383
+ replaceSelection(newStates) {
23384
+ this.stateById$.next(this.toStateMap(newStates));
23385
+ }
23386
+ updateState(id, mode) {
23387
+ const map = this.stateById$.getValue();
23388
+ const newState = new IncludeExcludeState(id, mode);
23389
+ map.set(id, newState);
23390
+ this.stateById$.next(map);
23391
+ return newState;
23392
+ }
23393
+ updateStates(newStates) {
23394
+ const current = this.stateById$.getValue();
23395
+ newStates.forEach(newState => {
23396
+ current.set(newState.id, newState);
23397
+ });
23398
+ this.stateById$.next(current);
23399
+ }
23400
+ isInMode(id, mode) {
23401
+ return this.findStateById(id)?.mode == mode;
23402
+ }
23403
+ findStateById(searchedId) {
23404
+ return this.stateById$.getValue().get(searchedId);
23405
+ }
23406
+ /***************************************************************************
23407
+ * *
23408
+ * Private methods *
23409
+ * *
23410
+ **************************************************************************/
23411
+ cycleFilterEntitySelection(selection) {
23412
+ switch (selection) {
23413
+ case IncludeExcludeMode.NEUTRAL:
23414
+ return IncludeExcludeMode.INCLUDE;
23415
+ case IncludeExcludeMode.INCLUDE:
23416
+ return IncludeExcludeMode.EXCLUDE;
23417
+ case IncludeExcludeMode.EXCLUDE:
23418
+ return IncludeExcludeMode.NEUTRAL;
23419
+ default:
23420
+ return IncludeExcludeMode.NEUTRAL;
23421
+ }
23422
+ }
23423
+ toStateMap(list) {
23424
+ return new Map(list.map(entity => [entity.id, entity]));
23425
+ }
23426
+ }
23427
+
23323
23428
  class ElderChipFilterStyleResolver {
23324
23429
  constructor() {
23325
23430
  /***************************************************************************
@@ -23363,12 +23468,12 @@ class ElderChipFilterStyleResolver {
23363
23468
  **************************************************************************/
23364
23469
  resolveChipSpec(filterEntity) {
23365
23470
  if (filterEntity) {
23366
- switch (filterEntity.selection) {
23367
- case ElderChipFilterSelection.NEUTRAL:
23471
+ switch (filterEntity.mode) {
23472
+ case IncludeExcludeMode.NEUTRAL:
23368
23473
  return this.neutralChipSpec;
23369
- case ElderChipFilterSelection.INCLUDE:
23474
+ case IncludeExcludeMode.INCLUDE:
23370
23475
  return this.includedChipSpec;
23371
- case ElderChipFilterSelection.EXCLUDE:
23476
+ case IncludeExcludeMode.EXCLUDE:
23372
23477
  return this.excludedChipSpec;
23373
23478
  default:
23374
23479
  return this.neutralChipSpec;
@@ -23376,12 +23481,12 @@ class ElderChipFilterStyleResolver {
23376
23481
  }
23377
23482
  }
23378
23483
  resolveAvatar(filterEntity) {
23379
- switch (filterEntity.selection) {
23380
- case ElderChipFilterSelection.NEUTRAL:
23484
+ switch (filterEntity.mode) {
23485
+ case IncludeExcludeMode.NEUTRAL:
23381
23486
  return 'radio_button_unchecked';
23382
- case ElderChipFilterSelection.INCLUDE:
23487
+ case IncludeExcludeMode.INCLUDE:
23383
23488
  return 'task_alt';
23384
- case ElderChipFilterSelection.EXCLUDE:
23489
+ case IncludeExcludeMode.EXCLUDE:
23385
23490
  return 'block';
23386
23491
  default:
23387
23492
  return 'circle';
@@ -23393,11 +23498,11 @@ class ElderChipFilterStyleResolver {
23393
23498
  * Immutable representation of the state of an search input
23394
23499
  */
23395
23500
  class SearchInputState {
23396
- static of(attribute, queryKey, queryValue, filters, pristine, userEvent) {
23397
- return new SearchInputState(attribute, queryKey, queryValue, filters, pristine, userEvent);
23501
+ static of(attribute, filters, pristine, userEvent) {
23502
+ return new SearchInputState(attribute, filters, pristine, userEvent);
23398
23503
  }
23399
23504
  static unknown() {
23400
- return new SearchInputState(null, null, null, [], true, false);
23505
+ return new SearchInputState(null, [], true, false);
23401
23506
  }
23402
23507
  /***************************************************************************
23403
23508
  * *
@@ -23406,17 +23511,9 @@ class SearchInputState {
23406
23511
  **************************************************************************/
23407
23512
  constructor(
23408
23513
  /**
23409
- * attribute The name name
23514
+ * attribute The name
23410
23515
  */
23411
23516
  attribute,
23412
- /**
23413
- * queryKey The query key
23414
- */
23415
- queryKey,
23416
- /**
23417
- * queryValue The query value as string. Supports multi string value.
23418
- */
23419
- queryValue,
23420
23517
  /**
23421
23518
  * value of the input
23422
23519
  */
@@ -23430,8 +23527,6 @@ class SearchInputState {
23430
23527
  */
23431
23528
  userEvent) {
23432
23529
  this.attribute = attribute;
23433
- this.queryKey = queryKey;
23434
- this.queryValue = queryValue;
23435
23530
  this.filters = filters;
23436
23531
  this.pristine = pristine;
23437
23532
  this.userEvent = userEvent;
@@ -23464,7 +23559,7 @@ class SearchInputState {
23464
23559
  * an array, it must not be empty.
23465
23560
  */
23466
23561
  get hasValue() {
23467
- return SearchInputState.isValueDefined(this.queryValue);
23562
+ return this.filters.some(filter => SearchInputState.isValueDefined(filter.value));
23468
23563
  }
23469
23564
  get hasFallbackValue() {
23470
23565
  return this.hasValue && this.pristine;
@@ -23474,14 +23569,15 @@ class SearchInputState {
23474
23569
  * Public Api *
23475
23570
  * *
23476
23571
  **************************************************************************/
23477
- withQueryValue(value, pristine) {
23572
+ withFilter(filter, pristine) {
23573
+ const value = filter.value;
23478
23574
  let pristineNow = SearchInputState.isValueDefined(value);
23479
23575
  if (!pristineNow) {
23480
23576
  if (pristine !== undefined && pristine !== null) {
23481
23577
  pristineNow = pristine;
23482
23578
  }
23483
23579
  }
23484
- return SearchInputState.of(this.attribute, this.queryKey, value, [new Filter(this.queryKey, value)], pristineNow, true);
23580
+ return SearchInputState.of(this.attribute, [filter], pristineNow, true);
23485
23581
  }
23486
23582
  }
23487
23583
 
@@ -23593,6 +23689,7 @@ class DefaultInputFilterConverter {
23593
23689
  return filter.value;
23594
23690
  }
23595
23691
  }
23692
+ return null;
23596
23693
  }
23597
23694
  /***************************************************************************
23598
23695
  * *
@@ -23926,8 +24023,8 @@ class ElderSearchContextDirective {
23926
24023
  convertToFilters(states) {
23927
24024
  return states
23928
24025
  .filter(s => (s.userEvent || s.hasFallbackValue))
23929
- .filter(s => !!s.queryKey)
23930
- .flatMap(s => s.filters);
24026
+ .flatMap(s => s.filters)
24027
+ .filter(filter => !!filter.key);
23931
24028
  }
23932
24029
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.11", ngImport: i0, type: ElderSearchContextDirective, deps: [{ token: SearchContextService }, { token: i0.DestroyRef }], target: i0.ɵɵFactoryTarget.Directive }); }
23933
24030
  static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.3.11", type: ElderSearchContextDirective, isStandalone: true, selector: "[elderSearchContext]", inputs: { searchContextId: "searchContextId", filterContext: ["elderSearchContext", "filterContext"], forcedFilters: "forcedFilters" }, exportAs: ["elderSearchContext"], ngImport: i0 }); }
@@ -24076,13 +24173,20 @@ class ElderSearchInputDirective {
24076
24173
  }
24077
24174
  buildInputState(controlValue, userEvent) {
24078
24175
  const queryValue = this.convertRawModelValueToQueryString(controlValue);
24079
- let pristine = !this.isAttributeValuePresent(controlValue);
24176
+ const filters = this._inputConverter.convertToFilters(queryValue);
24177
+ return new SearchInputState(this.name, filters, this.areAllPristine(filters) || this.isFallbackValue(queryValue), userEvent);
24178
+ }
24179
+ isFallbackValue(queryValue) {
24080
24180
  if (this.hasFallback) {
24081
- if (this.fallbackValue === queryValue) {
24082
- pristine = true;
24083
- }
24181
+ return (this.fallbackValue === queryValue);
24084
24182
  }
24085
- return new SearchInputState(this.name, this.name, queryValue, this._inputConverter.convertToFilters(queryValue), pristine, userEvent);
24183
+ return false;
24184
+ }
24185
+ areAllPristine(filters) {
24186
+ return filters.every(f => this.isPristine(f));
24187
+ }
24188
+ isPristine(filter) {
24189
+ return !this.isAttributeValuePresent(filter.value);
24086
24190
  }
24087
24191
  convertQueryStringToRawModelValue(queryString) {
24088
24192
  if (Objects.nonNull(queryString)) {
@@ -24205,24 +24309,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.11", ngImpo
24205
24309
  args: ['elderSearchInputKey']
24206
24310
  }] } });
24207
24311
 
24208
- var ElderChipFilterSelection;
24209
- (function (ElderChipFilterSelection) {
24210
- ElderChipFilterSelection["NEUTRAL"] = "NEUTRAL";
24211
- ElderChipFilterSelection["INCLUDE"] = "INCLUDE";
24212
- ElderChipFilterSelection["EXCLUDE"] = "EXCLUDE";
24213
- })(ElderChipFilterSelection || (ElderChipFilterSelection = {}));
24214
24312
  class ElderChipsFilterDirective {
24215
- /***************************************************************************
24216
- * *
24217
- * Properties *
24218
- * *
24219
- **************************************************************************/
24220
- set includeSuffix(suffix) {
24221
- this._includeSuffix$.next(suffix);
24222
- }
24223
- set excludeSuffix(suffix) {
24224
- this._excludeSuffix$.next(suffix);
24225
- }
24226
24313
  /***************************************************************************
24227
24314
  * *
24228
24315
  * Constructor *
@@ -24239,29 +24326,11 @@ class ElderChipsFilterDirective {
24239
24326
  * *
24240
24327
  **************************************************************************/
24241
24328
  this.log = LoggerFactory.getLogger(this.constructor.name);
24242
- //TODO: Move to converter?
24243
- this._selection$ = new BehaviorSubject([]);
24329
+ this.selectionModel = new IncludeExcludeSelectionModel();
24244
24330
  this.chipStyleResolver = new ElderChipFilterStyleResolver();
24245
- this.initialDone$ = new BehaviorSubject(false);
24246
- this._includeSuffix$ = new BehaviorSubject(null);
24247
- this._excludeSuffix$ = new BehaviorSubject(null);
24248
24331
  this.setupFilterChips();
24249
24332
  this.setupElderMultiSelectChipsListeners();
24250
24333
  }
24251
- /***************************************************************************
24252
- * *
24253
- * Properties *
24254
- * *
24255
- **************************************************************************/
24256
- get selection() {
24257
- return this._selection$.getValue();
24258
- }
24259
- get selection$() {
24260
- return this._selection$.asObservable();
24261
- }
24262
- set selection(listedEntityIds) {
24263
- this._selection$.next(listedEntityIds);
24264
- }
24265
24334
  /***************************************************************************
24266
24335
  * *
24267
24336
  * Private methods *
@@ -24284,15 +24353,9 @@ class ElderChipsFilterDirective {
24284
24353
  this.elderMultiSelectChips.currentClicked
24285
24354
  .pipe(takeUntilDestroyed(this.destroyRef))
24286
24355
  .subscribe((entity) => this.handleChipClick(entity));
24287
- this.elderSearchInput.initialDone$
24288
- .pipe(first())
24289
- .subscribe(() => this.initialDone$.next(true));
24290
- combineLatest([
24291
- this.elderMultiSelectChips.entityIds$,
24292
- this.initialDone$
24293
- ])
24294
- .pipe(takeUntilDestroyed(this.destroyRef), filter(([entityIds, initialDone]) => initialDone), map(([entityIds, initialDone]) => entityIds), filter(entityIds => !!entityIds))
24295
- .subscribe(entityIds => this.selection = (this.updateChipEntities(entityIds)));
24356
+ this.elderMultiSelectChips.entityIds$.pipe(takeUntilDestroyed(this.destroyRef), skipUntil(this.elderSearchInput.initialDone$), startWith(this.elderMultiSelectChips.entityIds), filter(entityIds => !!entityIds)).subscribe(entityIds => {
24357
+ this.selectionModel.initTo(entityIds);
24358
+ });
24296
24359
  }
24297
24360
  resolveChipSpec(entity) {
24298
24361
  return this.chipStyleResolver.resolveChipSpec(this.findFilterEntityByEntity(entity));
@@ -24301,61 +24364,24 @@ class ElderChipsFilterDirective {
24301
24364
  return this.chipStyleResolver.resolveAvatar(this.findFilterEntityById(id));
24302
24365
  }
24303
24366
  handleChipClick(entity) {
24304
- const listedFilterEntities = this.selection;
24305
- const filterEntity = this.findFilterEntityByEntity(entity);
24306
- if (filterEntity) {
24307
- filterEntity.selection = this.cycleFilterEntitySelection(filterEntity.selection);
24308
- this._selection$.next(listedFilterEntities);
24309
- this.elderMultiSelectChips.appendEntities([]);
24367
+ const entityId = this.elderMultiSelectChips.getEntityId(entity);
24368
+ const newState = this.selectionModel.cycleExisting(entityId);
24369
+ if (newState) {
24370
+ this.elderMultiSelectChips.appendEntities([]); // TODO Why??
24310
24371
  }
24311
24372
  else {
24312
- this.log.warn('The entity is not in the selection');
24313
- }
24314
- }
24315
- cycleFilterEntitySelection(selection) {
24316
- switch (selection) {
24317
- case ElderChipFilterSelection.NEUTRAL:
24318
- return ElderChipFilterSelection.INCLUDE;
24319
- case ElderChipFilterSelection.INCLUDE:
24320
- return ElderChipFilterSelection.EXCLUDE;
24321
- case ElderChipFilterSelection.EXCLUDE:
24322
- return ElderChipFilterSelection.NEUTRAL;
24323
- default:
24324
- return ElderChipFilterSelection.NEUTRAL;
24373
+ this.log.warn('The entity id "' + entityId + '" is not in the selection');
24325
24374
  }
24326
24375
  }
24327
24376
  findFilterEntityByEntity(entity) {
24328
24377
  const searchedId = this.elderMultiSelectChips.getEntityId(entity);
24329
- for (const filterEntity of this.selection) {
24330
- if (searchedId === filterEntity.id) {
24331
- return filterEntity;
24332
- }
24333
- }
24378
+ return this.findFilterEntityById(searchedId);
24334
24379
  }
24335
24380
  findFilterEntityById(id) {
24336
- for (const filterEntity of this.selection) {
24337
- if (filterEntity.id === id) {
24338
- return filterEntity;
24339
- }
24340
- }
24341
- }
24342
- updateChipEntities(entityIds) {
24343
- const currentFilterEntitiesMap = new Map(this.selection
24344
- .filter(entity => entityIds.includes(entity.id))
24345
- .map(entity => [entity.id, entity]));
24346
- const updatedFilterEntities = [];
24347
- for (const updatedEntityId of entityIds) {
24348
- if (currentFilterEntitiesMap.has(updatedEntityId)) {
24349
- updatedFilterEntities.push(currentFilterEntitiesMap.get(updatedEntityId));
24350
- }
24351
- else {
24352
- updatedFilterEntities.push({ id: updatedEntityId, selection: ElderChipFilterSelection.NEUTRAL });
24353
- }
24354
- }
24355
- return updatedFilterEntities;
24381
+ return this.selectionModel.findStateById(id);
24356
24382
  }
24357
24383
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.11", ngImport: i0, type: ElderChipsFilterDirective, deps: [{ token: ElderMultiSelectChipsComponent }, { token: ElderSearchInputDirective }, { token: i0.ViewContainerRef }, { token: i0.DestroyRef }], target: i0.ɵɵFactoryTarget.Directive }); }
24358
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.3.11", type: ElderChipsFilterDirective, isStandalone: true, selector: "[elderChipsFilter]", inputs: { includeSuffix: "includeSuffix", excludeSuffix: "excludeSuffix" }, ngImport: i0 }); }
24384
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.3.11", type: ElderChipsFilterDirective, isStandalone: true, selector: "[elderChipsFilter]", ngImport: i0 }); }
24359
24385
  }
24360
24386
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.11", ngImport: i0, type: ElderChipsFilterDirective, decorators: [{
24361
24387
  type: Directive,
@@ -24363,11 +24389,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.11", ngImpo
24363
24389
  selector: '[elderChipsFilter]',
24364
24390
  standalone: true
24365
24391
  }]
24366
- }], ctorParameters: () => [{ type: ElderMultiSelectChipsComponent }, { type: ElderSearchInputDirective }, { type: i0.ViewContainerRef }, { type: i0.DestroyRef }], propDecorators: { includeSuffix: [{
24367
- type: Input
24368
- }], excludeSuffix: [{
24369
- type: Input
24370
- }] } });
24392
+ }], ctorParameters: () => [{ type: ElderMultiSelectChipsComponent }, { type: ElderSearchInputDirective }, { type: i0.ViewContainerRef }, { type: i0.DestroyRef }] });
24371
24393
 
24372
24394
  /***************************************************************************
24373
24395
  * *
@@ -24393,30 +24415,16 @@ class FilterCommons {
24393
24415
  }
24394
24416
 
24395
24417
  class IncludeExcludeInputConverter {
24396
- /***************************************************************************
24397
- * *
24398
- * Static Builders *
24399
- * *
24400
- **************************************************************************/
24401
- static from(queryKey, includeSuffix, excludeSuffix) {
24402
- return new IncludeExcludeInputConverter(queryKey, includeSuffix, excludeSuffix);
24403
- }
24404
24418
  /***************************************************************************
24405
24419
  * *
24406
24420
  * Constructors *
24407
24421
  * *
24408
24422
  **************************************************************************/
24409
- constructor(queryKey, includeSuffix, excludeSuffix) {
24423
+ constructor(selectionModel, queryKey, includeSuffix, excludeSuffix) {
24424
+ this.selectionModel = selectionModel;
24410
24425
  this.queryKey = queryKey;
24411
24426
  this.includeSuffix = includeSuffix;
24412
24427
  this.excludeSuffix = excludeSuffix;
24413
- /***************************************************************************
24414
- * *
24415
- * Fields *
24416
- * *
24417
- **************************************************************************/
24418
- this.selections$ = new BehaviorSubject(new Map());
24419
- this._mergedSelections$ = new Subject();
24420
24428
  }
24421
24429
  /***************************************************************************
24422
24430
  * *
@@ -24425,22 +24433,19 @@ class IncludeExcludeInputConverter {
24425
24433
  **************************************************************************/
24426
24434
  convertToValue(filters) {
24427
24435
  const values = this.convertFiltersToMap(filters);
24428
- return this.mergeValues(this.buildMergeIncludeValues(values), this.buildMergeExcludeValues(values));
24436
+ const includes = this.buildMergeIncludeValues(values);
24437
+ const excludes = this.buildMergeExcludeValues(values);
24438
+ this.updateSelectionModel(includes, excludes);
24439
+ return this.mergeValues(includes, excludes);
24429
24440
  }
24430
24441
  convertToFilters(inputValue) {
24431
24442
  return this.buildFilters(this.buildSplitIncludeValues(inputValue), this.buildSplitExcludeValues(inputValue));
24432
24443
  }
24433
24444
  /***************************************************************************
24434
24445
  * *
24435
- * Properties *
24446
+ * Private Properties *
24436
24447
  * *
24437
24448
  **************************************************************************/
24438
- set selection(selection) {
24439
- this.selections$.next(selection);
24440
- }
24441
- get mergedSelections$() {
24442
- return this._mergedSelections$.asObservable();
24443
- }
24444
24449
  get includeQueryKey() {
24445
24450
  return this.queryKey + this.includeSuffix;
24446
24451
  }
@@ -24477,24 +24482,6 @@ class IncludeExcludeInputConverter {
24477
24482
  }
24478
24483
  return null;
24479
24484
  }
24480
- isIncluded(value, selections) {
24481
- if (selections.has(value)) {
24482
- return selections.get(value).selection === ElderChipFilterSelection.INCLUDE;
24483
- }
24484
- return false;
24485
- }
24486
- isExcluded(value, selections) {
24487
- if (selections.has(value)) {
24488
- return selections.get(value).selection === ElderChipFilterSelection.EXCLUDE;
24489
- }
24490
- return false;
24491
- }
24492
- addAllSelections(values, map, selection) {
24493
- if (FilterCommons.isArray(values)) {
24494
- values.forEach(value => map.set(value, { id: value, selection: selection }));
24495
- }
24496
- return map;
24497
- }
24498
24485
  /***************************************************************************
24499
24486
  * *
24500
24487
  * Split *
@@ -24519,7 +24506,7 @@ class IncludeExcludeInputConverter {
24519
24506
  let splitValues = null;
24520
24507
  if (FilterCommons.isArrayAndNotEmpty(value)) {
24521
24508
  const values = FilterCommons.getValuesIfArrayElseEmpty(value);
24522
- splitValues = values.filter(value => this.isIncluded(value, this.selections$.getValue()));
24509
+ splitValues = values.filter(value => this.selectionModel.isInMode(value, IncludeExcludeMode.INCLUDE));
24523
24510
  }
24524
24511
  return this.validateArrayAndReturn(splitValues);
24525
24512
  }
@@ -24528,7 +24515,7 @@ class IncludeExcludeInputConverter {
24528
24515
  if (FilterCommons.isArrayAndNotEmpty(value)) {
24529
24516
  const values = FilterCommons.getValuesIfArrayElseEmpty(value);
24530
24517
  splitValues = values
24531
- .filter(value => this.isExcluded(value, this.selections$.getValue()));
24518
+ .filter(value => this.selectionModel.isInMode(value, IncludeExcludeMode.EXCLUDE));
24532
24519
  }
24533
24520
  return this.validateArrayAndReturn(splitValues);
24534
24521
  }
@@ -24538,12 +24525,20 @@ class IncludeExcludeInputConverter {
24538
24525
  * *
24539
24526
  **************************************************************************/
24540
24527
  mergeValues(includeValue, excludeValue) {
24541
- const newExcludeValue = this.replaceEmptyArrayWithNull(excludeValue);
24542
- let map = this.selections$.getValue();
24543
- map = this.addAllSelections(newExcludeValue, map, ElderChipFilterSelection.EXCLUDE);
24544
- map = this.addAllSelections(includeValue, map, ElderChipFilterSelection.INCLUDE);
24545
- this._mergedSelections$.next(map);
24546
- return this.flattenFilterValues([includeValue, newExcludeValue]);
24528
+ return this.flattenFilterValues([includeValue, excludeValue]);
24529
+ }
24530
+ updateSelectionModel(includeValue, excludeValue) {
24531
+ const updates = [
24532
+ ...this.buildNewSelectionStates(includeValue, IncludeExcludeMode.INCLUDE),
24533
+ ...this.buildNewSelectionStates(excludeValue, IncludeExcludeMode.EXCLUDE),
24534
+ ];
24535
+ this.selectionModel.updateStates(updates);
24536
+ }
24537
+ buildNewSelectionStates(values, selection) {
24538
+ if (FilterCommons.isArray(values)) {
24539
+ return values.map(value => new IncludeExcludeState(value, selection));
24540
+ }
24541
+ return [];
24547
24542
  }
24548
24543
  buildMergeIncludeValues(values) {
24549
24544
  return this.validateArrayAndReturn(this.findValueOrDefault(values, this.includeQueryKey));
@@ -24579,7 +24574,7 @@ class ElderSearchIncludeExcludeDirective {
24579
24574
  * Fields *
24580
24575
  * *
24581
24576
  **************************************************************************/
24582
- this._includeSuffix$ = new BehaviorSubject(null);
24577
+ this._includeSuffix$ = new BehaviorSubject('');
24583
24578
  this._excludeSuffix$ = new BehaviorSubject(null);
24584
24579
  this.setupSearchQueryTransforms();
24585
24580
  }
@@ -24594,24 +24589,13 @@ class ElderSearchIncludeExcludeDirective {
24594
24589
  this._includeSuffix$,
24595
24590
  this._excludeSuffix$
24596
24591
  ])
24597
- .pipe(takeUntilDestroyed(this.destroyRef), filter(([queryKey, includeSuffix, excludeSuffix]) => !!queryKey && !!includeSuffix && !!excludeSuffix))
24592
+ .pipe(takeUntilDestroyed(this.destroyRef), filter(([queryKey, includeSuffix, excludeSuffix]) => !!queryKey && Objects.nonNull(includeSuffix) && Objects.nonNull(excludeSuffix)))
24598
24593
  .subscribe(([queryKey, includeSuffix, excludeSuffix]) => {
24599
- this.setupConverter(queryKey, includeSuffix, excludeSuffix);
24594
+ this.elderSearchInput.inputConverter = this.buildConverter(queryKey, includeSuffix, excludeSuffix);
24600
24595
  });
24601
24596
  }
24602
- setupConverter(queryKey, includeSuffix, excludeSuffix) {
24603
- const converter = IncludeExcludeInputConverter.from(queryKey, includeSuffix, excludeSuffix);
24604
- this.elderChipsFilter
24605
- .selection$
24606
- .pipe(takeUntilDestroyed(this.destroyRef))
24607
- .subscribe(selection => converter.selection = this.transformSelectionToMap(selection));
24608
- converter.mergedSelections$
24609
- .pipe(takeUntilDestroyed(this.destroyRef))
24610
- .subscribe(selections => this.elderChipsFilter.selection = Array.from(selections.values()));
24611
- this.elderSearchInput.inputConverter = converter;
24612
- }
24613
- transformSelectionToMap(list) {
24614
- return new Map(list.map(entity => [entity.id, entity]));
24597
+ buildConverter(queryKey, includeSuffix, excludeSuffix) {
24598
+ return new IncludeExcludeInputConverter(this.elderChipsFilter.selectionModel, queryKey, includeSuffix, excludeSuffix);
24615
24599
  }
24616
24600
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.11", ngImport: i0, type: ElderSearchIncludeExcludeDirective, deps: [{ token: ElderSearchInputDirective }, { token: ElderChipsFilterDirective }, { token: i0.DestroyRef }], target: i0.ɵɵFactoryTarget.Directive }); }
24617
24601
  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 }); }
@@ -24625,7 +24609,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.11", ngImpo
24625
24609
  }], ctorParameters: () => [{ type: ElderSearchInputDirective }, { type: ElderChipsFilterDirective }, { type: i0.DestroyRef }], propDecorators: { includeSuffix: [{
24626
24610
  type: Input
24627
24611
  }], excludeSuffix: [{
24628
- type: Input
24612
+ type: Input,
24613
+ args: [{ required: true }]
24629
24614
  }] } });
24630
24615
 
24631
24616
  class ElderSelectModule {
@@ -33337,5 +33322,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.11", ngImpo
33337
33322
  * Generated bundle index. Do not edit.
33338
33323
  */
33339
33324
 
33340
- export { ActivationEventSource, Arrays, AuditedEntity, AutoStartSpec, BlobUrl, BytesFormat, BytesPerSecondFormat, BytesPipe, CardDropEvent, CardOrganizerData, CardStack, CollectionUtil, ComparatorBuilder, ConfirmDialogConfig, ContinuableListing, CsvColumnSpec, CsvSerializer, CsvSpec, CsvStreamExporter, CsvStreamExporterBuilder, CsvStreamExporterBuilderService, Currency, CurrencyCode, CurrencyFormatUtil, CurrencyUnit, CurrencyUnitRegistry, CustomDateAdapter, DataContextActivePage, DataContextAutoStarter, DataContextBase, DataContextBuilder, DataContextContinuableBase, DataContextContinuablePaged, DataContextContinuableToken, DataContextLifeCycleBinding, DataContextSelectionDirective, DataContextSimple, DataContextSnapshot, DataContextSourceEventBinding, DataContextStateIndicatorComponent, DataContextStatus, DataSourceAdapter, DataSourceBase, DataSourceChangeEvent, DataSourceChangeType, DataSourceProcessor, DataTransferFactory, DataTransferProgress, DataTransferProgressAggregate, DataTransferState, DataTransferStatus, DataViewIframeAdapterDirective, DataViewIframeComponent, DataViewMessage, DataViewMessageTypeValues, DataViewOptionsProviderBinding, DataViewSelection, DataViewSelectionInit, DateUtil, DelegateContinuableDataSource, DelegateDataSource, DelegateListDataSource, DelegatePagedDataSource, Dimensions, DrawerOutletBinding, DurationBucket, DurationFormat, DurationFormatUtil, ELDER_DATA_VIEW, ELDER_SELECT_BASE, ElderAccessDeniedComponent, ElderAccessDeniedModule, ElderAppHeaderComponent, ElderAuditModule, ElderAuditedEntityComponent, ElderAutoSelectFirstDirective, ElderAutoSelectSuggestFirstDirective, ElderAutocompleteDirective, ElderAutocompleteManyDirective, ElderAutocompleteModule, ElderBadgeChipAvatarDirective, ElderBadgeChipDirective, ElderBadgeComponent, ElderBadgeDirective, ElderBadgeModule, ElderBlobViewerComponent, ElderBreadCrumbsComponent, ElderBreadCrumbsModule, ElderButtonGroupComponent, ElderButtonGroupModule, ElderCardComponent, ElderCardContentDirective, ElderCardHeaderActionsDirective, ElderCardHeaderComponent, ElderCardModule, ElderCardOrganizerComponent, ElderCardOrganizerModule, ElderCardPanelComponent, ElderCardStackComponent, ElderCardSubtitleDirective, ElderCardTitleDirective, ElderCheckboxState, ElderChipLabelDirective, ElderChipListSelectComponent, ElderChipListSelectModule, ElderChipsFilterDirective, ElderChipsModule, ElderClearSelectDirective, ElderClipboardPutDirective, ElderClipboardService, ElderConfirmDialogComponent, ElderConnectivityModule, ElderConnectivityService, ElderContainersModule, ElderCsvExportBtnComponent, ElderCsvModule, ElderCurrencyModule, ElderCurrencyPipe, ElderDataCommonModule, ElderDataToolbarComponent, ElderDataTransferModule, ElderDataTransferService, ElderDataViewBaseComponent, ElderDataViewOptions, ElderDataViewOptionsProvider, ElderDateSwitcherComponent, ElderDateTimeInputComponent, ElderDelayedFocusDirective, ElderDeleteActiveDirective, ElderDetailDialogComponent, ElderDetailDirective, ElderDialogConfig, ElderDialogModule, ElderDialogPanelComponent, ElderDialogService, ElderDimensionsInputComponent, ElderDropZoneComponent, ElderDurationInputComponent, ElderEntityValueAccessorUtil, ElderEnumTranslationService, ElderErrorModule, ElderEventSourceService, ElderExceptionDetailComponent, ElderExpandToggleButtonComponent, ElderExpandToggleButtonModule, ElderFileDropZoneDirective, ElderFileModule, ElderFileSelectComponent, ElderFileSelectDirective, ElderFileUploadComponent, ElderFilterChipTemplate, ElderFormFieldControlBase, ElderFormFieldDenseDirective, ElderFormFieldLabelDirective, ElderFormFieldNoHintDirective, ElderFormFieldNoSpinnerDirective, ElderFormsDirectivesModule, ElderFormsModule, ElderFromFieldBase, ElderFromFieldEntityBase, ElderFromFieldMultiEntityBase, ElderGlobalSearchComponent, ElderGlobalSearchModule, ElderGlobalSearchService, ElderGridComponent, ElderGridModule, ElderGridTileDirective, ElderGridToolbarDirective, ElderHeaderComponent, ElderHeaderModule, ElderHttpClient, ElderI18nEntitiesModule, ElderIFrameModule, ElderInfiniteAutocompleteDirective, ElderInfiniteScrollDirective, ElderInfiniteScrollModule, ElderInputPatternDirective, ElderIntervalInputComponent, ElderKeyEventDirective, ElderLabelInputComponent, ElderLabelsModule, ElderLanguageConfig, ElderLanguageInterceptor, ElderLanguageModule, ElderLanguageService, ElderLanguageSwitcherComponent, ElderLocalDateInputComponent, ElderLocalTimeInputComponent, ElderLocalesDeChModule, ElderLocalizedInputComponent, ElderLocalizedInputDialogComponent, ElderLocalizedInputDialogService, ElderLocalizedInputTableComponent, ElderLocalizedTextColumnDirective, ElderLocalizedTextsDirective, ElderMasterActivationDirective, ElderMasterDetailComponent, ElderMasterDetailModule, ElderMasterDetailService, ElderMasterDirective, ElderMaxValidator, ElderMeasuresModule, ElderMinValidator, ElderMultiEntityValueAccessorUtil, ElderMultiSelectAllInitialDirective, ElderMultiSelectBase, ElderMultiSelectChipOptionsComponent, ElderMultiSelectChipsComponent, ElderMultiSelectFormField, ElderMultipleOfUtil, ElderMultipleOfValidator, ElderNavGroupComponent, ElderNavLinkComponent, ElderNavListComponent, ElderNavModule, ElderNextFocusableDirective, ElderNumberCellDirective, ElderOfflineIndicatorComponent, ElderOverlayComponent, ElderOverlayModule, ElderOverlayOriginDirective, ElderOverlayRef, ElderOverlayTriggerDirective, ElderPaddingDirective, ElderPanelComponent, ElderPanelModule, ElderPeriodInputComponent, ElderPipesModule, ElderPlugParentFormDirective, ElderProgressBarComponent, ElderProgressBarModule, ElderQuantityFormFieldComponent, ElderQuantityInputControlComponent, ElderQuantityModule, ElderQuantityPipe, ElderQuantityRangeValidator, ElderQuantityService, ElderQuantityTransformPipe, ElderQuestionDialogComponent, ElderRepeatPipe, ElderRepeatPipeLegacy, ElderRequiredDimensionsValidator, ElderRequiredIgnoreZeroValidator, ElderRequiredQuantityValidator, ElderRoundPipe, ElderRouteOutletDrawerService, ElderRouterOutletService, ElderRouterService, ElderSafeUrlPipe, ElderScrollContainerComponent, ElderScrollbarDirective, ElderScrollbarModule, ElderSearchBoxComponent, ElderSearchContextDirective, ElderSearchIncludeExcludeDirective, ElderSearchInputDirective, ElderSearchModule, ElderSearchPanelComponent, ElderSearchUrlDirective, ElderSelectBase, ElderSelectChipAvatarDirective, ElderSelectChipDirective, ElderSelectComponent, ElderSelectComponentState, ElderSelectCustomInputDirective, ElderSelectFormField, ElderSelectModule, ElderSelectOnTabDirective, ElderSelectOptionComponent, ElderSelectValueDirective, ElderSelectionDialogComponent, ElderSelectionDialogDirective, ElderSelectionMasterCheckboxComponent, ElderSelectionPopupTriggerAdapterDirective, ElderShellCenterDirective, ElderShellComponent, ElderShellModule, ElderShellNavigationToggleComponent, ElderShellService, ElderShellSideLeftDirective, ElderShellSideRightDirective, ElderShellSlotDirective, ElderSimpleSelectionViewComponent, ElderSimpleSelectionViewModule, ElderSingleSortComponent, ElderStackCardDirective, ElderStopEventPropagationDirective, ElderSuggestionPanelComponent, ElderSvgViewerComponent, ElderTabDirective, ElderTabFocusTrapDirective, ElderTabGroupRoutingDirective, ElderTabModule, ElderTableActivationDirective, ElderTableComponent, ElderTableExtensionDirective, ElderTableGroup, ElderTableModel, ElderTableModelCdkTableBinding, ElderTableModelQueryGroup, ElderTableModule, ElderTableProviders, ElderTableRootDirective, ElderTableSortDirective, ElderTableToolbarDirective, ElderThemeApplierDirective, ElderThemeDirective, ElderThemeModule, ElderThemePreferenceService, ElderThemeService, ElderThemeToggleComponent, ElderTimeModule, ElderToastModule, ElderToastService, ElderTogglePanelComponent, ElderTogglePanelPrimaryDirective, ElderTogglePanelSecondaryDirective, ElderTogglePanelTriggerDirective, ElderToolbarColumnDirective, ElderToolbarComponent, ElderToolbarContentDirective, ElderToolbarModule, ElderToolbarService, ElderToolbarTitleComponent, ElderToolbarTitleService, ElderTouchedDirective, ElderTrimPipe, ElderTripleStateCheckboxDirective, ElderTruncatePipe, ElderUnitSelectDirective, ElderUnitService, ElderUrlFragment, ElderUrlFragmentModule, ElderUrlFragmentParamsService, ElderUrlFragmentSwitcherComponent, ElderValidationErrorDirective, ElderViewersModule, EntitySetPatch, ErrorUtil, ExceptionDetailCtx, FileEntry, FileListingRx, FileUploadClient, Filter, FilterContext, FilterUtil, FocusUtil, FormFieldBaseComponent, GlobalDragDropService, HttpClientBuilder, HttpClientPristine, HttpDataTransfer, HttpDataTransferAggregateComponent, HttpDataTransferComponent, HttpDataTransferIndicatorComponent, HttpDataTransferOverviewComponent, HttpParamsBuilder, I18nBase, I18nPickAsyncPipe, I18nPickPipe, I18nText, IFrameState, IframeCloseDirective, IframeDialogComponent, IframeHostComponent, IframeService, IframeSideContentComponent, IndexedEntities, InternalRestClientConfig, Interval, IsoDurationPipe, IsoIntervalFormatUtil, IsoIntervalParsePipe, IsoIntervalPipe, ItemActivationEvent, ItemActivationOptions, JsonMapUtil, KafentConfig, KafentEvent, KafentEventService, KafentEventStream, KafentEventStreamDisabled, KafentEventStreamSse, KafentEventTransport, KafentModule, KafentSseEventChannel, KafentTokenProvider, KafentTokenProviderSessionStorage, KafentTopicSse, KnownElderThemes, KnownLocaleTags, LocalListDataSource, LocalPagedDataSource, LocalisationPickerService, MasterDetailActivationEvent, MasterSelectionState, MatTableDataContextBinding, MatTableDataContextBindingBuilder, MultiModelBaseComponent, NextNumberUtil, Objects, OnlineStatus, Page, PageRequest, Pageable, ParseUtil, Path, PathNode, PeriodBucket, PeriodDuration, PeriodFormat, ProcessIterationContext, ProcessState, PropertyPathUtil, Quantity, QueryListBinding, QuestionDialogConfig, ReactiveEventSource, ReactiveEventSourceState, ReactiveFetchEventSource, ReactiveFetchEventSourceService, ReactiveMap, ReactiveSSeMessage, RefreshingEntity, RestClient, RestClientConfig, RestClientContinuable, RestClientList, RestClientPaged, SearchQuery, SelectChipSpecUtil, SelectOptionChipSpecUtil, SelectionModel, SelectionModelPopupDirective, Sets, SimpleLocalisationPicker, Sort, SortOption, SortUtil, StandardToastComponent, SubBar, SuggestionProvider, TemplateCompositeControl, TemplatedSelectionDialogComponent, ThemeSpec, TimeAgoPipe, TimeDurationPipe, TimeUtil, ToIsoDateStringPipe, ToastType, TokenChunkRequest, ToolbarHeader, Translated, TranslatedConverter, TranslatedEnumValue, TranslatedText, TypedEventMessage, Unit, UnitDimension, UnitDimensionInfo, UnitInfo, UnitRegistry, UrlBuilder, UrlQueryParams, UuidUtil, ValueAccessorBase, ValueWrapper, ViewProviders, WeightPipe, alphaNumStringComparator, buildFormIntegrationProviders, coerceInterval, coerceIntervalIsoStr, createDataOptionsProvider, createSelectionModel, existingOrNewElderTableModel, initSearchUrlService, isActivePagedDataContext, isContinuableDataContext, isContinuableDataSource, isDataContext, isDataSource, isDataViewMessageType, isElderEntityValueAccessor, isElderMultiEntityValueAccessor, isListDataSource, isPagedDataSource, lazySample, lazySampleTime, naturalValueComparator, newElderTableModel, proxyControlContainer, registerLocale, runInZone, themeInit };
33325
+ export { ActivationEventSource, Arrays, AuditedEntity, AutoStartSpec, BlobUrl, BytesFormat, BytesPerSecondFormat, BytesPipe, CardDropEvent, CardOrganizerData, CardStack, CollectionUtil, ComparatorBuilder, ConfirmDialogConfig, ContinuableListing, CsvColumnSpec, CsvSerializer, CsvSpec, CsvStreamExporter, CsvStreamExporterBuilder, CsvStreamExporterBuilderService, Currency, CurrencyCode, CurrencyFormatUtil, CurrencyUnit, CurrencyUnitRegistry, CustomDateAdapter, DataContextActivePage, DataContextAutoStarter, DataContextBase, DataContextBuilder, DataContextContinuableBase, DataContextContinuablePaged, DataContextContinuableToken, DataContextLifeCycleBinding, DataContextSelectionDirective, DataContextSimple, DataContextSnapshot, DataContextSourceEventBinding, DataContextStateIndicatorComponent, DataContextStatus, DataSourceAdapter, DataSourceBase, DataSourceChangeEvent, DataSourceChangeType, DataSourceProcessor, DataTransferFactory, DataTransferProgress, DataTransferProgressAggregate, DataTransferState, DataTransferStatus, DataViewIframeAdapterDirective, DataViewIframeComponent, DataViewMessage, DataViewMessageTypeValues, DataViewOptionsProviderBinding, DataViewSelection, DataViewSelectionInit, DateUtil, DelegateContinuableDataSource, DelegateDataSource, DelegateListDataSource, DelegatePagedDataSource, Dimensions, DrawerOutletBinding, DurationBucket, DurationFormat, DurationFormatUtil, ELDER_DATA_VIEW, ELDER_SELECT_BASE, ElderAccessDeniedComponent, ElderAccessDeniedModule, ElderAppHeaderComponent, ElderAuditModule, ElderAuditedEntityComponent, ElderAutoSelectFirstDirective, ElderAutoSelectSuggestFirstDirective, ElderAutocompleteDirective, ElderAutocompleteManyDirective, ElderAutocompleteModule, ElderBadgeChipAvatarDirective, ElderBadgeChipDirective, ElderBadgeComponent, ElderBadgeDirective, ElderBadgeModule, ElderBlobViewerComponent, ElderBreadCrumbsComponent, ElderBreadCrumbsModule, ElderButtonGroupComponent, ElderButtonGroupModule, ElderCardComponent, ElderCardContentDirective, ElderCardHeaderActionsDirective, ElderCardHeaderComponent, ElderCardModule, ElderCardOrganizerComponent, ElderCardOrganizerModule, ElderCardPanelComponent, ElderCardStackComponent, ElderCardSubtitleDirective, ElderCardTitleDirective, ElderCheckboxState, ElderChipLabelDirective, ElderChipListSelectComponent, ElderChipListSelectModule, ElderChipsFilterDirective, ElderChipsModule, ElderClearSelectDirective, ElderClipboardPutDirective, ElderClipboardService, ElderConfirmDialogComponent, ElderConnectivityModule, ElderConnectivityService, ElderContainersModule, ElderCsvExportBtnComponent, ElderCsvModule, ElderCurrencyModule, ElderCurrencyPipe, ElderDataCommonModule, ElderDataToolbarComponent, ElderDataTransferModule, ElderDataTransferService, ElderDataViewBaseComponent, ElderDataViewOptions, ElderDataViewOptionsProvider, ElderDateSwitcherComponent, ElderDateTimeInputComponent, ElderDelayedFocusDirective, ElderDeleteActiveDirective, ElderDetailDialogComponent, ElderDetailDirective, ElderDialogConfig, ElderDialogModule, ElderDialogPanelComponent, ElderDialogService, ElderDimensionsInputComponent, ElderDropZoneComponent, ElderDurationInputComponent, ElderEntityValueAccessorUtil, ElderEnumTranslationService, ElderErrorModule, ElderEventSourceService, ElderExceptionDetailComponent, ElderExpandToggleButtonComponent, ElderExpandToggleButtonModule, ElderFileDropZoneDirective, ElderFileModule, ElderFileSelectComponent, ElderFileSelectDirective, ElderFileUploadComponent, ElderFilterChipTemplate, ElderFormFieldControlBase, ElderFormFieldDenseDirective, ElderFormFieldLabelDirective, ElderFormFieldNoHintDirective, ElderFormFieldNoSpinnerDirective, ElderFormsDirectivesModule, ElderFormsModule, ElderFromFieldBase, ElderFromFieldEntityBase, ElderFromFieldMultiEntityBase, ElderGlobalSearchComponent, ElderGlobalSearchModule, ElderGlobalSearchService, ElderGridComponent, ElderGridModule, ElderGridTileDirective, ElderGridToolbarDirective, ElderHeaderComponent, ElderHeaderModule, ElderHttpClient, ElderI18nEntitiesModule, ElderIFrameModule, ElderInfiniteAutocompleteDirective, ElderInfiniteScrollDirective, ElderInfiniteScrollModule, ElderInputPatternDirective, ElderIntervalInputComponent, ElderKeyEventDirective, ElderLabelInputComponent, ElderLabelsModule, ElderLanguageConfig, ElderLanguageInterceptor, ElderLanguageModule, ElderLanguageService, ElderLanguageSwitcherComponent, ElderLocalDateInputComponent, ElderLocalTimeInputComponent, ElderLocalesDeChModule, ElderLocalizedInputComponent, ElderLocalizedInputDialogComponent, ElderLocalizedInputDialogService, ElderLocalizedInputTableComponent, ElderLocalizedTextColumnDirective, ElderLocalizedTextsDirective, ElderMasterActivationDirective, ElderMasterDetailComponent, ElderMasterDetailModule, ElderMasterDetailService, ElderMasterDirective, ElderMaxValidator, ElderMeasuresModule, ElderMinValidator, ElderMultiEntityValueAccessorUtil, ElderMultiSelectAllInitialDirective, ElderMultiSelectBase, ElderMultiSelectChipOptionsComponent, ElderMultiSelectChipsComponent, ElderMultiSelectFormField, ElderMultipleOfUtil, ElderMultipleOfValidator, ElderNavGroupComponent, ElderNavLinkComponent, ElderNavListComponent, ElderNavModule, ElderNextFocusableDirective, ElderNumberCellDirective, ElderOfflineIndicatorComponent, ElderOverlayComponent, ElderOverlayModule, ElderOverlayOriginDirective, ElderOverlayRef, ElderOverlayTriggerDirective, ElderPaddingDirective, ElderPanelComponent, ElderPanelModule, ElderPeriodInputComponent, ElderPipesModule, ElderPlugParentFormDirective, ElderProgressBarComponent, ElderProgressBarModule, ElderQuantityFormFieldComponent, ElderQuantityInputControlComponent, ElderQuantityModule, ElderQuantityPipe, ElderQuantityRangeValidator, ElderQuantityService, ElderQuantityTransformPipe, ElderQuestionDialogComponent, ElderRepeatPipe, ElderRepeatPipeLegacy, ElderRequiredDimensionsValidator, ElderRequiredIgnoreZeroValidator, ElderRequiredQuantityValidator, ElderRoundPipe, ElderRouteOutletDrawerService, ElderRouterOutletService, ElderRouterService, ElderSafeUrlPipe, ElderScrollContainerComponent, ElderScrollbarDirective, ElderScrollbarModule, ElderSearchBoxComponent, ElderSearchContextDirective, ElderSearchIncludeExcludeDirective, ElderSearchInputDirective, ElderSearchModule, ElderSearchPanelComponent, ElderSearchUrlDirective, ElderSelectBase, ElderSelectChipAvatarDirective, ElderSelectChipDirective, ElderSelectComponent, ElderSelectComponentState, ElderSelectCustomInputDirective, ElderSelectFormField, ElderSelectModule, ElderSelectOnTabDirective, ElderSelectOptionComponent, ElderSelectValueDirective, ElderSelectionDialogComponent, ElderSelectionDialogDirective, ElderSelectionMasterCheckboxComponent, ElderSelectionPopupTriggerAdapterDirective, ElderShellCenterDirective, ElderShellComponent, ElderShellModule, ElderShellNavigationToggleComponent, ElderShellService, ElderShellSideLeftDirective, ElderShellSideRightDirective, ElderShellSlotDirective, ElderSimpleSelectionViewComponent, ElderSimpleSelectionViewModule, ElderSingleSortComponent, ElderStackCardDirective, ElderStopEventPropagationDirective, ElderSuggestionPanelComponent, ElderSvgViewerComponent, ElderTabDirective, ElderTabFocusTrapDirective, ElderTabGroupRoutingDirective, ElderTabModule, ElderTableActivationDirective, ElderTableComponent, ElderTableExtensionDirective, ElderTableGroup, ElderTableModel, ElderTableModelCdkTableBinding, ElderTableModelQueryGroup, ElderTableModule, ElderTableProviders, ElderTableRootDirective, ElderTableSortDirective, ElderTableToolbarDirective, ElderThemeApplierDirective, ElderThemeDirective, ElderThemeModule, ElderThemePreferenceService, ElderThemeService, ElderThemeToggleComponent, ElderTimeModule, ElderToastModule, ElderToastService, ElderTogglePanelComponent, ElderTogglePanelPrimaryDirective, ElderTogglePanelSecondaryDirective, ElderTogglePanelTriggerDirective, ElderToolbarColumnDirective, ElderToolbarComponent, ElderToolbarContentDirective, ElderToolbarModule, ElderToolbarService, ElderToolbarTitleComponent, ElderToolbarTitleService, ElderTouchedDirective, ElderTrimPipe, ElderTripleStateCheckboxDirective, ElderTruncatePipe, ElderUnitSelectDirective, ElderUnitService, ElderUrlFragment, ElderUrlFragmentModule, ElderUrlFragmentParamsService, ElderUrlFragmentSwitcherComponent, ElderValidationErrorDirective, ElderViewersModule, EntitySetPatch, ErrorUtil, ExceptionDetailCtx, FileEntry, FileListingRx, FileUploadClient, Filter, FilterContext, FilterUtil, FocusUtil, FormFieldBaseComponent, GlobalDragDropService, HttpClientBuilder, HttpClientPristine, HttpDataTransfer, HttpDataTransferAggregateComponent, HttpDataTransferComponent, HttpDataTransferIndicatorComponent, HttpDataTransferOverviewComponent, HttpParamsBuilder, I18nBase, I18nPickAsyncPipe, I18nPickPipe, I18nText, IFrameState, IframeCloseDirective, IframeDialogComponent, IframeHostComponent, IframeService, IframeSideContentComponent, IncludeExcludeMode, IncludeExcludeSelectionModel, IncludeExcludeState, IndexedEntities, InternalRestClientConfig, Interval, IsoDurationPipe, IsoIntervalFormatUtil, IsoIntervalParsePipe, IsoIntervalPipe, ItemActivationEvent, ItemActivationOptions, JsonMapUtil, KafentConfig, KafentEvent, KafentEventService, KafentEventStream, KafentEventStreamDisabled, KafentEventStreamSse, KafentEventTransport, KafentModule, KafentSseEventChannel, KafentTokenProvider, KafentTokenProviderSessionStorage, KafentTopicSse, KnownElderThemes, KnownLocaleTags, LocalListDataSource, LocalPagedDataSource, LocalisationPickerService, MasterDetailActivationEvent, MasterSelectionState, MatTableDataContextBinding, MatTableDataContextBindingBuilder, MultiModelBaseComponent, NextNumberUtil, Objects, OnlineStatus, Page, PageRequest, Pageable, ParseUtil, Path, PathNode, PeriodBucket, PeriodDuration, PeriodFormat, ProcessIterationContext, ProcessState, PropertyPathUtil, Quantity, QueryListBinding, QuestionDialogConfig, ReactiveEventSource, ReactiveEventSourceState, ReactiveFetchEventSource, ReactiveFetchEventSourceService, ReactiveMap, ReactiveSSeMessage, RefreshingEntity, RestClient, RestClientConfig, RestClientContinuable, RestClientList, RestClientPaged, SearchQuery, SelectChipSpecUtil, SelectOptionChipSpecUtil, SelectionModel, SelectionModelPopupDirective, Sets, SimpleLocalisationPicker, Sort, SortOption, SortUtil, StandardToastComponent, SubBar, SuggestionProvider, TemplateCompositeControl, TemplatedSelectionDialogComponent, ThemeSpec, TimeAgoPipe, TimeDurationPipe, TimeUtil, ToIsoDateStringPipe, ToastType, TokenChunkRequest, ToolbarHeader, Translated, TranslatedConverter, TranslatedEnumValue, TranslatedText, TypedEventMessage, Unit, UnitDimension, UnitDimensionInfo, UnitInfo, UnitRegistry, UrlBuilder, UrlQueryParams, UuidUtil, ValueAccessorBase, ValueWrapper, ViewProviders, WeightPipe, alphaNumStringComparator, buildFormIntegrationProviders, coerceInterval, coerceIntervalIsoStr, createDataOptionsProvider, createSelectionModel, existingOrNewElderTableModel, initSearchUrlService, isActivePagedDataContext, isContinuableDataContext, isContinuableDataSource, isDataContext, isDataSource, isDataViewMessageType, isElderEntityValueAccessor, isElderMultiEntityValueAccessor, isListDataSource, isPagedDataSource, lazySample, lazySampleTime, naturalValueComparator, newElderTableModel, proxyControlContainer, registerLocale, runInZone, themeInit };
33341
33326
  //# sourceMappingURL=elderbyte-ngx-starter.mjs.map