@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
@@ -63,7 +63,6 @@ import { Breakpoints } from '@angular/cdk/layout';
63
63
  import { MatSelectModule, MatSelect } from '@angular/material/select';
64
64
  import { Subject as Subject$1 } from 'rxjs/internal/Subject';
65
65
  import { MatProgressSpinnerModule, MatProgressSpinner } from '@angular/material/progress-spinner';
66
- import { Observable as Observable$1 } from 'rxjs/internal/Observable';
67
66
  import { style, state, animate, transition, trigger } from '@angular/animations';
68
67
  import { MatSidenavContainer, MatSidenav, MatSidenavContent, MatSidenavModule } from '@angular/material/sidenav';
69
68
  import { MatDatepicker, MatDatepickerInput, MatDatepickerToggle, MatDatepickerToggleIcon, MatDateRangeInput, MatStartDate, MatEndDate, MatDateRangePicker, MatDatepickerModule } from '@angular/material/datepicker';
@@ -23320,6 +23319,111 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.11", ngImpo
23320
23319
  args: ['body']
23321
23320
  }] } });
23322
23321
 
23322
+ class IncludeExcludeState {
23323
+ constructor(id, mode) {
23324
+ this.id = id;
23325
+ this.mode = mode;
23326
+ }
23327
+ }
23328
+ var IncludeExcludeMode;
23329
+ (function (IncludeExcludeMode) {
23330
+ IncludeExcludeMode["NEUTRAL"] = "NEUTRAL";
23331
+ IncludeExcludeMode["INCLUDE"] = "INCLUDE";
23332
+ IncludeExcludeMode["EXCLUDE"] = "EXCLUDE";
23333
+ })(IncludeExcludeMode || (IncludeExcludeMode = {}));
23334
+ class IncludeExcludeSelectionModel {
23335
+ constructor() {
23336
+ /***************************************************************************
23337
+ * *
23338
+ * Fields *
23339
+ * *
23340
+ **************************************************************************/
23341
+ this.log = LoggerFactory.getLogger(this.constructor.name);
23342
+ this.stateById$ = new BehaviorSubject(new Map());
23343
+ }
23344
+ /***************************************************************************
23345
+ * *
23346
+ * Properties *
23347
+ * *
23348
+ **************************************************************************/
23349
+ get selection() {
23350
+ return Array.from(this.stateById$.getValue().values());
23351
+ }
23352
+ get selection$() {
23353
+ return this.stateById$.pipe(map(stateMap => Array.from(stateMap.values())));
23354
+ }
23355
+ /***************************************************************************
23356
+ * *
23357
+ * Public API *
23358
+ * *
23359
+ **************************************************************************/
23360
+ cycleExisting(id) {
23361
+ const existingState = this.findStateById(id);
23362
+ if (existingState) {
23363
+ return this.updateState(id, this.cycleFilterEntitySelection(existingState.mode));
23364
+ }
23365
+ else {
23366
+ return null;
23367
+ }
23368
+ }
23369
+ initTo(ids, initialMode = IncludeExcludeMode.NEUTRAL) {
23370
+ const current = this.stateById$.getValue();
23371
+ const newStates = new Map();
23372
+ ids.forEach(id => {
23373
+ if (current.has(id)) {
23374
+ newStates.set(id, current.get(id));
23375
+ }
23376
+ else {
23377
+ newStates.set(id, new IncludeExcludeState(id, initialMode));
23378
+ }
23379
+ });
23380
+ this.stateById$.next(newStates);
23381
+ }
23382
+ replaceSelection(newStates) {
23383
+ this.stateById$.next(this.toStateMap(newStates));
23384
+ }
23385
+ updateState(id, mode) {
23386
+ const map = this.stateById$.getValue();
23387
+ const newState = new IncludeExcludeState(id, mode);
23388
+ map.set(id, newState);
23389
+ this.stateById$.next(map);
23390
+ return newState;
23391
+ }
23392
+ updateStates(newStates) {
23393
+ const current = this.stateById$.getValue();
23394
+ newStates.forEach(newState => {
23395
+ current.set(newState.id, newState);
23396
+ });
23397
+ this.stateById$.next(current);
23398
+ }
23399
+ isInMode(id, mode) {
23400
+ return this.findStateById(id)?.mode == mode;
23401
+ }
23402
+ findStateById(searchedId) {
23403
+ return this.stateById$.getValue().get(searchedId);
23404
+ }
23405
+ /***************************************************************************
23406
+ * *
23407
+ * Private methods *
23408
+ * *
23409
+ **************************************************************************/
23410
+ cycleFilterEntitySelection(selection) {
23411
+ switch (selection) {
23412
+ case IncludeExcludeMode.NEUTRAL:
23413
+ return IncludeExcludeMode.INCLUDE;
23414
+ case IncludeExcludeMode.INCLUDE:
23415
+ return IncludeExcludeMode.EXCLUDE;
23416
+ case IncludeExcludeMode.EXCLUDE:
23417
+ return IncludeExcludeMode.NEUTRAL;
23418
+ default:
23419
+ return IncludeExcludeMode.NEUTRAL;
23420
+ }
23421
+ }
23422
+ toStateMap(list) {
23423
+ return new Map(list.map(entity => [entity.id, entity]));
23424
+ }
23425
+ }
23426
+
23323
23427
  class ElderChipFilterStyleResolver {
23324
23428
  constructor() {
23325
23429
  /***************************************************************************
@@ -23363,12 +23467,12 @@ class ElderChipFilterStyleResolver {
23363
23467
  **************************************************************************/
23364
23468
  resolveChipSpec(filterEntity) {
23365
23469
  if (filterEntity) {
23366
- switch (filterEntity.selection) {
23367
- case ElderChipFilterSelection.NEUTRAL:
23470
+ switch (filterEntity.mode) {
23471
+ case IncludeExcludeMode.NEUTRAL:
23368
23472
  return this.neutralChipSpec;
23369
- case ElderChipFilterSelection.INCLUDE:
23473
+ case IncludeExcludeMode.INCLUDE:
23370
23474
  return this.includedChipSpec;
23371
- case ElderChipFilterSelection.EXCLUDE:
23475
+ case IncludeExcludeMode.EXCLUDE:
23372
23476
  return this.excludedChipSpec;
23373
23477
  default:
23374
23478
  return this.neutralChipSpec;
@@ -23376,12 +23480,12 @@ class ElderChipFilterStyleResolver {
23376
23480
  }
23377
23481
  }
23378
23482
  resolveAvatar(filterEntity) {
23379
- switch (filterEntity.selection) {
23380
- case ElderChipFilterSelection.NEUTRAL:
23483
+ switch (filterEntity.mode) {
23484
+ case IncludeExcludeMode.NEUTRAL:
23381
23485
  return 'radio_button_unchecked';
23382
- case ElderChipFilterSelection.INCLUDE:
23486
+ case IncludeExcludeMode.INCLUDE:
23383
23487
  return 'task_alt';
23384
- case ElderChipFilterSelection.EXCLUDE:
23488
+ case IncludeExcludeMode.EXCLUDE:
23385
23489
  return 'block';
23386
23490
  default:
23387
23491
  return 'circle';
@@ -23393,11 +23497,11 @@ class ElderChipFilterStyleResolver {
23393
23497
  * Immutable representation of the state of an search input
23394
23498
  */
23395
23499
  class SearchInputState {
23396
- static of(attribute, queryKey, queryValue, filters, pristine, userEvent) {
23397
- return new SearchInputState(attribute, queryKey, queryValue, filters, pristine, userEvent);
23500
+ static of(attribute, filters, pristine, userEvent) {
23501
+ return new SearchInputState(attribute, filters, pristine, userEvent);
23398
23502
  }
23399
23503
  static unknown() {
23400
- return new SearchInputState(null, null, null, [], true, false);
23504
+ return new SearchInputState(null, [], true, false);
23401
23505
  }
23402
23506
  /***************************************************************************
23403
23507
  * *
@@ -23406,17 +23510,9 @@ class SearchInputState {
23406
23510
  **************************************************************************/
23407
23511
  constructor(
23408
23512
  /**
23409
- * attribute The name name
23513
+ * attribute The name
23410
23514
  */
23411
23515
  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
23516
  /**
23421
23517
  * value of the input
23422
23518
  */
@@ -23430,8 +23526,6 @@ class SearchInputState {
23430
23526
  */
23431
23527
  userEvent) {
23432
23528
  this.attribute = attribute;
23433
- this.queryKey = queryKey;
23434
- this.queryValue = queryValue;
23435
23529
  this.filters = filters;
23436
23530
  this.pristine = pristine;
23437
23531
  this.userEvent = userEvent;
@@ -23464,7 +23558,7 @@ class SearchInputState {
23464
23558
  * an array, it must not be empty.
23465
23559
  */
23466
23560
  get hasValue() {
23467
- return SearchInputState.isValueDefined(this.queryValue);
23561
+ return this.filters.some(filter => SearchInputState.isValueDefined(filter.value));
23468
23562
  }
23469
23563
  get hasFallbackValue() {
23470
23564
  return this.hasValue && this.pristine;
@@ -23474,14 +23568,15 @@ class SearchInputState {
23474
23568
  * Public Api *
23475
23569
  * *
23476
23570
  **************************************************************************/
23477
- withQueryValue(value, pristine) {
23571
+ withFilter(filter, pristine) {
23572
+ const value = filter.value;
23478
23573
  let pristineNow = SearchInputState.isValueDefined(value);
23479
23574
  if (!pristineNow) {
23480
23575
  if (pristine !== undefined && pristine !== null) {
23481
23576
  pristineNow = pristine;
23482
23577
  }
23483
23578
  }
23484
- return SearchInputState.of(this.attribute, this.queryKey, value, [new Filter(this.queryKey, value)], pristineNow, true);
23579
+ return SearchInputState.of(this.attribute, [filter], pristineNow, true);
23485
23580
  }
23486
23581
  }
23487
23582
 
@@ -23593,6 +23688,7 @@ class DefaultInputFilterConverter {
23593
23688
  return filter.value;
23594
23689
  }
23595
23690
  }
23691
+ return null;
23596
23692
  }
23597
23693
  /***************************************************************************
23598
23694
  * *
@@ -23926,8 +24022,8 @@ class ElderSearchContextDirective {
23926
24022
  convertToFilters(states) {
23927
24023
  return states
23928
24024
  .filter(s => (s.userEvent || s.hasFallbackValue))
23929
- .filter(s => !!s.queryKey)
23930
- .flatMap(s => s.filters);
24025
+ .flatMap(s => s.filters)
24026
+ .filter(filter => !!filter.key);
23931
24027
  }
23932
24028
  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
24029
  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 }); }
@@ -23965,16 +24061,14 @@ class ElderSearchInputDirective {
23965
24061
  * Fields *
23966
24062
  * *
23967
24063
  **************************************************************************/
24064
+ this.log = LoggerFactory.getLogger(this.constructor.name);
23968
24065
  this._queryKey$ = new BehaviorSubject(null);
23969
24066
  this._inputConverter = DefaultInputFilterConverter.of(() => this.name);
23970
- this._name$ = new Observable$1();
23971
24067
  this.destroy$ = new Subject();
23972
- this.log = LoggerFactory.getLogger(this.constructor.name);
23973
24068
  this._initialValueDirective = new ElderInitialValueDirective(ngModel);
23974
24069
  this._state$ = this.buildInputStateObservable().pipe(
23975
24070
  // tap(state => this.log.error('EMIT SEARCH INPUT STATE [' + state.queryKey + ']: ' + state.queryValue + (state.pristine ? '(pristine)' : ''), state))
23976
24071
  );
23977
- this._name$ = this.queryKey$.pipe(map(queryKey => queryKey ? queryKey : this._extractedName));
23978
24072
  }
23979
24073
  /***************************************************************************
23980
24074
  * *
@@ -23983,11 +24077,13 @@ class ElderSearchInputDirective {
23983
24077
  **************************************************************************/
23984
24078
  ngOnInit() {
23985
24079
  this._extractedName = this.extractName();
24080
+ this.updateQueryKey();
23986
24081
  this.searchContext.register(this);
23987
24082
  }
23988
24083
  ngAfterViewInit() {
23989
24084
  this._extractedName = this.extractName();
23990
- this.log.debug(this._extractedName + '|' + this.queryKey + '|' + this.resolvePath);
24085
+ this.updateQueryKey();
24086
+ this.log.debug(this.queryKey + ' | ' + this.resolvePath);
23991
24087
  }
23992
24088
  ngOnDestroy() {
23993
24089
  this.destroy$.next();
@@ -24002,13 +24098,14 @@ class ElderSearchInputDirective {
24002
24098
  * (Optional) Usually the control name is used, this allows a custom query key
24003
24099
  */
24004
24100
  set queryKey(value) {
24005
- this._queryKey$.next(value);
24101
+ this._userQueryKey = value;
24102
+ this.updateQueryKey();
24006
24103
  }
24007
24104
  get queryKey() {
24008
24105
  return this._queryKey$.getValue();
24009
24106
  }
24010
24107
  get queryKey$() {
24011
- return this._queryKey$.asObservable();
24108
+ return this._queryKey$;
24012
24109
  }
24013
24110
  set inputConverter(inputConverter) {
24014
24111
  this._inputConverter = inputConverter;
@@ -24029,9 +24126,6 @@ class ElderSearchInputDirective {
24029
24126
  throw new Error('Could not determine the search name key name.' +
24030
24127
  ' Either specify the name property or explicitly set [elderSearchInputKey].');
24031
24128
  }
24032
- get name$() {
24033
- return this._name$;
24034
- }
24035
24129
  get value() {
24036
24130
  return this.ngModel.value;
24037
24131
  }
@@ -24057,6 +24151,12 @@ class ElderSearchInputDirective {
24057
24151
  * Private methods *
24058
24152
  * *
24059
24153
  **************************************************************************/
24154
+ updateQueryKey() {
24155
+ const newKey = this._userQueryKey ?? this._extractedName;
24156
+ if (this._queryKey$.getValue() !== newKey) {
24157
+ this._queryKey$.next(newKey);
24158
+ }
24159
+ }
24060
24160
  setInputValue(queryString) {
24061
24161
  const value = this.convertQueryStringToRawModelValue(queryString);
24062
24162
  this._initialValueDirective.setValue(value);
@@ -24076,13 +24176,20 @@ class ElderSearchInputDirective {
24076
24176
  }
24077
24177
  buildInputState(controlValue, userEvent) {
24078
24178
  const queryValue = this.convertRawModelValueToQueryString(controlValue);
24079
- let pristine = !this.isAttributeValuePresent(controlValue);
24179
+ const filters = this._inputConverter.convertToFilters(queryValue);
24180
+ return new SearchInputState(this.name, filters, this.areAllPristine(filters) || this.isFallbackValue(queryValue), userEvent);
24181
+ }
24182
+ isFallbackValue(queryValue) {
24080
24183
  if (this.hasFallback) {
24081
- if (this.fallbackValue === queryValue) {
24082
- pristine = true;
24083
- }
24184
+ return (this.fallbackValue === queryValue);
24084
24185
  }
24085
- return new SearchInputState(this.name, this.name, queryValue, this._inputConverter.convertToFilters(queryValue), pristine, userEvent);
24186
+ return false;
24187
+ }
24188
+ areAllPristine(filters) {
24189
+ return filters.every(f => this.isPristine(f));
24190
+ }
24191
+ isPristine(filter) {
24192
+ return !this.isAttributeValuePresent(filter.value);
24086
24193
  }
24087
24194
  convertQueryStringToRawModelValue(queryString) {
24088
24195
  if (Objects.nonNull(queryString)) {
@@ -24205,24 +24312,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.11", ngImpo
24205
24312
  args: ['elderSearchInputKey']
24206
24313
  }] } });
24207
24314
 
24208
- var ElderChipFilterSelection;
24209
- (function (ElderChipFilterSelection) {
24210
- ElderChipFilterSelection["NEUTRAL"] = "NEUTRAL";
24211
- ElderChipFilterSelection["INCLUDE"] = "INCLUDE";
24212
- ElderChipFilterSelection["EXCLUDE"] = "EXCLUDE";
24213
- })(ElderChipFilterSelection || (ElderChipFilterSelection = {}));
24214
24315
  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
24316
  /***************************************************************************
24227
24317
  * *
24228
24318
  * Constructor *
@@ -24239,29 +24329,11 @@ class ElderChipsFilterDirective {
24239
24329
  * *
24240
24330
  **************************************************************************/
24241
24331
  this.log = LoggerFactory.getLogger(this.constructor.name);
24242
- //TODO: Move to converter?
24243
- this._selection$ = new BehaviorSubject([]);
24332
+ this.selectionModel = new IncludeExcludeSelectionModel();
24244
24333
  this.chipStyleResolver = new ElderChipFilterStyleResolver();
24245
- this.initialDone$ = new BehaviorSubject(false);
24246
- this._includeSuffix$ = new BehaviorSubject(null);
24247
- this._excludeSuffix$ = new BehaviorSubject(null);
24248
24334
  this.setupFilterChips();
24249
24335
  this.setupElderMultiSelectChipsListeners();
24250
24336
  }
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
24337
  /***************************************************************************
24266
24338
  * *
24267
24339
  * Private methods *
@@ -24284,15 +24356,9 @@ class ElderChipsFilterDirective {
24284
24356
  this.elderMultiSelectChips.currentClicked
24285
24357
  .pipe(takeUntilDestroyed(this.destroyRef))
24286
24358
  .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)));
24359
+ this.elderMultiSelectChips.entityIds$.pipe(takeUntilDestroyed(this.destroyRef), skipUntil(this.elderSearchInput.initialDone$), startWith(this.elderMultiSelectChips.entityIds), filter(entityIds => !!entityIds)).subscribe(entityIds => {
24360
+ this.selectionModel.initTo(entityIds);
24361
+ });
24296
24362
  }
24297
24363
  resolveChipSpec(entity) {
24298
24364
  return this.chipStyleResolver.resolveChipSpec(this.findFilterEntityByEntity(entity));
@@ -24301,61 +24367,24 @@ class ElderChipsFilterDirective {
24301
24367
  return this.chipStyleResolver.resolveAvatar(this.findFilterEntityById(id));
24302
24368
  }
24303
24369
  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([]);
24370
+ const entityId = this.elderMultiSelectChips.getEntityId(entity);
24371
+ const newState = this.selectionModel.cycleExisting(entityId);
24372
+ if (newState) {
24373
+ this.elderMultiSelectChips.appendEntities([]); // TODO Why??
24310
24374
  }
24311
24375
  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;
24376
+ this.log.warn('The entity id "' + entityId + '" is not in the selection');
24325
24377
  }
24326
24378
  }
24327
24379
  findFilterEntityByEntity(entity) {
24328
24380
  const searchedId = this.elderMultiSelectChips.getEntityId(entity);
24329
- for (const filterEntity of this.selection) {
24330
- if (searchedId === filterEntity.id) {
24331
- return filterEntity;
24332
- }
24333
- }
24381
+ return this.findFilterEntityById(searchedId);
24334
24382
  }
24335
24383
  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;
24384
+ return this.selectionModel.findStateById(id);
24356
24385
  }
24357
24386
  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 }); }
24387
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.3.11", type: ElderChipsFilterDirective, isStandalone: true, selector: "[elderChipsFilter]", ngImport: i0 }); }
24359
24388
  }
24360
24389
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.11", ngImport: i0, type: ElderChipsFilterDirective, decorators: [{
24361
24390
  type: Directive,
@@ -24363,11 +24392,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.11", ngImpo
24363
24392
  selector: '[elderChipsFilter]',
24364
24393
  standalone: true
24365
24394
  }]
24366
- }], ctorParameters: () => [{ type: ElderMultiSelectChipsComponent }, { type: ElderSearchInputDirective }, { type: i0.ViewContainerRef }, { type: i0.DestroyRef }], propDecorators: { includeSuffix: [{
24367
- type: Input
24368
- }], excludeSuffix: [{
24369
- type: Input
24370
- }] } });
24395
+ }], ctorParameters: () => [{ type: ElderMultiSelectChipsComponent }, { type: ElderSearchInputDirective }, { type: i0.ViewContainerRef }, { type: i0.DestroyRef }] });
24371
24396
 
24372
24397
  /***************************************************************************
24373
24398
  * *
@@ -24393,30 +24418,16 @@ class FilterCommons {
24393
24418
  }
24394
24419
 
24395
24420
  class IncludeExcludeInputConverter {
24396
- /***************************************************************************
24397
- * *
24398
- * Static Builders *
24399
- * *
24400
- **************************************************************************/
24401
- static from(queryKey, includeSuffix, excludeSuffix) {
24402
- return new IncludeExcludeInputConverter(queryKey, includeSuffix, excludeSuffix);
24403
- }
24404
24421
  /***************************************************************************
24405
24422
  * *
24406
24423
  * Constructors *
24407
24424
  * *
24408
24425
  **************************************************************************/
24409
- constructor(queryKey, includeSuffix, excludeSuffix) {
24426
+ constructor(selectionModel, queryKey, includeSuffix, excludeSuffix) {
24427
+ this.selectionModel = selectionModel;
24410
24428
  this.queryKey = queryKey;
24411
24429
  this.includeSuffix = includeSuffix;
24412
24430
  this.excludeSuffix = excludeSuffix;
24413
- /***************************************************************************
24414
- * *
24415
- * Fields *
24416
- * *
24417
- **************************************************************************/
24418
- this.selections$ = new BehaviorSubject(new Map());
24419
- this._mergedSelections$ = new Subject();
24420
24431
  }
24421
24432
  /***************************************************************************
24422
24433
  * *
@@ -24425,22 +24436,19 @@ class IncludeExcludeInputConverter {
24425
24436
  **************************************************************************/
24426
24437
  convertToValue(filters) {
24427
24438
  const values = this.convertFiltersToMap(filters);
24428
- return this.mergeValues(this.buildMergeIncludeValues(values), this.buildMergeExcludeValues(values));
24439
+ const includes = this.buildMergeIncludeValues(values);
24440
+ const excludes = this.buildMergeExcludeValues(values);
24441
+ this.updateSelectionModel(includes, excludes);
24442
+ return this.mergeValues(includes, excludes);
24429
24443
  }
24430
24444
  convertToFilters(inputValue) {
24431
24445
  return this.buildFilters(this.buildSplitIncludeValues(inputValue), this.buildSplitExcludeValues(inputValue));
24432
24446
  }
24433
24447
  /***************************************************************************
24434
24448
  * *
24435
- * Properties *
24449
+ * Private Properties *
24436
24450
  * *
24437
24451
  **************************************************************************/
24438
- set selection(selection) {
24439
- this.selections$.next(selection);
24440
- }
24441
- get mergedSelections$() {
24442
- return this._mergedSelections$.asObservable();
24443
- }
24444
24452
  get includeQueryKey() {
24445
24453
  return this.queryKey + this.includeSuffix;
24446
24454
  }
@@ -24477,24 +24485,6 @@ class IncludeExcludeInputConverter {
24477
24485
  }
24478
24486
  return null;
24479
24487
  }
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
24488
  /***************************************************************************
24499
24489
  * *
24500
24490
  * Split *
@@ -24519,7 +24509,7 @@ class IncludeExcludeInputConverter {
24519
24509
  let splitValues = null;
24520
24510
  if (FilterCommons.isArrayAndNotEmpty(value)) {
24521
24511
  const values = FilterCommons.getValuesIfArrayElseEmpty(value);
24522
- splitValues = values.filter(value => this.isIncluded(value, this.selections$.getValue()));
24512
+ splitValues = values.filter(value => this.selectionModel.isInMode(value, IncludeExcludeMode.INCLUDE));
24523
24513
  }
24524
24514
  return this.validateArrayAndReturn(splitValues);
24525
24515
  }
@@ -24528,7 +24518,7 @@ class IncludeExcludeInputConverter {
24528
24518
  if (FilterCommons.isArrayAndNotEmpty(value)) {
24529
24519
  const values = FilterCommons.getValuesIfArrayElseEmpty(value);
24530
24520
  splitValues = values
24531
- .filter(value => this.isExcluded(value, this.selections$.getValue()));
24521
+ .filter(value => this.selectionModel.isInMode(value, IncludeExcludeMode.EXCLUDE));
24532
24522
  }
24533
24523
  return this.validateArrayAndReturn(splitValues);
24534
24524
  }
@@ -24538,12 +24528,20 @@ class IncludeExcludeInputConverter {
24538
24528
  * *
24539
24529
  **************************************************************************/
24540
24530
  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]);
24531
+ return this.flattenFilterValues([includeValue, excludeValue]);
24532
+ }
24533
+ updateSelectionModel(includeValue, excludeValue) {
24534
+ const updates = [
24535
+ ...this.buildNewSelectionStates(includeValue, IncludeExcludeMode.INCLUDE),
24536
+ ...this.buildNewSelectionStates(excludeValue, IncludeExcludeMode.EXCLUDE),
24537
+ ];
24538
+ this.selectionModel.updateStates(updates);
24539
+ }
24540
+ buildNewSelectionStates(values, selection) {
24541
+ if (FilterCommons.isArray(values)) {
24542
+ return values.map(value => new IncludeExcludeState(value, selection));
24543
+ }
24544
+ return [];
24547
24545
  }
24548
24546
  buildMergeIncludeValues(values) {
24549
24547
  return this.validateArrayAndReturn(this.findValueOrDefault(values, this.includeQueryKey));
@@ -24579,7 +24577,7 @@ class ElderSearchIncludeExcludeDirective {
24579
24577
  * Fields *
24580
24578
  * *
24581
24579
  **************************************************************************/
24582
- this._includeSuffix$ = new BehaviorSubject(null);
24580
+ this._includeSuffix$ = new BehaviorSubject('');
24583
24581
  this._excludeSuffix$ = new BehaviorSubject(null);
24584
24582
  this.setupSearchQueryTransforms();
24585
24583
  }
@@ -24590,28 +24588,17 @@ class ElderSearchIncludeExcludeDirective {
24590
24588
  **************************************************************************/
24591
24589
  setupSearchQueryTransforms() {
24592
24590
  combineLatest([
24593
- this.elderSearchInput.name$,
24591
+ this.elderSearchInput.queryKey$,
24594
24592
  this._includeSuffix$,
24595
24593
  this._excludeSuffix$
24596
24594
  ])
24597
- .pipe(takeUntilDestroyed(this.destroyRef), filter(([queryKey, includeSuffix, excludeSuffix]) => !!queryKey && !!includeSuffix && !!excludeSuffix))
24595
+ .pipe(takeUntilDestroyed(this.destroyRef), filter(([queryKey, includeSuffix, excludeSuffix]) => !!queryKey && Objects.nonNull(includeSuffix) && Objects.nonNull(excludeSuffix)))
24598
24596
  .subscribe(([queryKey, includeSuffix, excludeSuffix]) => {
24599
- this.setupConverter(queryKey, includeSuffix, excludeSuffix);
24597
+ this.elderSearchInput.inputConverter = this.buildConverter(queryKey, includeSuffix, excludeSuffix);
24600
24598
  });
24601
24599
  }
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]));
24600
+ buildConverter(queryKey, includeSuffix, excludeSuffix) {
24601
+ return new IncludeExcludeInputConverter(this.elderChipsFilter.selectionModel, queryKey, includeSuffix, excludeSuffix);
24615
24602
  }
24616
24603
  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
24604
  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 +24612,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.11", ngImpo
24625
24612
  }], ctorParameters: () => [{ type: ElderSearchInputDirective }, { type: ElderChipsFilterDirective }, { type: i0.DestroyRef }], propDecorators: { includeSuffix: [{
24626
24613
  type: Input
24627
24614
  }], excludeSuffix: [{
24628
- type: Input
24615
+ type: Input,
24616
+ args: [{ required: true }]
24629
24617
  }] } });
24630
24618
 
24631
24619
  class ElderSelectModule {
@@ -33337,5 +33325,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.11", ngImpo
33337
33325
  * Generated bundle index. Do not edit.
33338
33326
  */
33339
33327
 
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 };
33328
+ 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
33329
  //# sourceMappingURL=elderbyte-ngx-starter.mjs.map