@elderbyte/ngx-starter 16.2.11 → 16.2.12

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 (28) hide show
  1. package/_index.scss +4 -2
  2. package/esm2022/lib/components/forms/directives/elder-initial-value.directive.mjs +56 -29
  3. package/esm2022/lib/components/forms/search/elder-search-context-url-binding.directive.mjs +3 -3
  4. package/esm2022/lib/components/forms/search/elder-search-context.directive.mjs +26 -60
  5. package/esm2022/lib/components/forms/search/elder-search-input.directive.mjs +2 -2
  6. package/esm2022/lib/components/forms/search/search-context-orchestrator.mjs +55 -0
  7. package/esm2022/lib/components/select/elder-select.module.mjs +11 -5
  8. package/esm2022/lib/components/select/multi/elder-multi-select-base.mjs +38 -4
  9. package/esm2022/lib/components/select/multi/elder-multi-select-chip-options/elder-multi-select-chip-options.component.mjs +281 -0
  10. package/esm2022/lib/components/select/multi/elder-multi-select-chip-options/select-option-chip-spec.mjs +15 -0
  11. package/esm2022/lib/components/select/multi/elder-multi-select-chips/elder-multi-select-chips.component.mjs +5 -50
  12. package/esm2022/lib/components/select/multi/elder-multi-select-chips/select-chip-spec.mjs +15 -2
  13. package/esm2022/lib/components/select/multi/public_api.mjs +2 -1
  14. package/fesm2022/elderbyte-ngx-starter.mjs +466 -144
  15. package/fesm2022/elderbyte-ngx-starter.mjs.map +1 -1
  16. package/lib/components/forms/directives/elder-initial-value.directive.d.ts +11 -6
  17. package/lib/components/forms/search/elder-search-context.directive.d.ts +7 -17
  18. package/lib/components/forms/search/search-context-orchestrator.d.ts +29 -0
  19. package/lib/components/select/elder-select.module.d.ts +26 -24
  20. package/lib/components/select/multi/elder-multi-select-base.d.ts +10 -0
  21. package/lib/components/select/multi/elder-multi-select-chip-options/elder-multi-select-chip-options.component.d.ts +102 -0
  22. package/lib/components/select/multi/elder-multi-select-chip-options/select-option-chip-spec.d.ts +10 -0
  23. package/lib/components/select/multi/elder-multi-select-chips/elder-multi-select-chips.component.d.ts +0 -10
  24. package/lib/components/select/multi/elder-multi-select-chips/select-chip-spec.d.ts +3 -0
  25. package/lib/components/select/multi/public_api.d.ts +1 -0
  26. package/package.json +1 -1
  27. package/src/lib/components/chips/_elder-chip-theme.scss +5 -2
  28. package/src/lib/components/select/multi/elder-multi-select-chip-options/elder-multi-select-chip-options.component.scss +79 -0
@@ -5,7 +5,7 @@ import { Pipe, Injectable, LOCALE_ID, Inject, NgModule, Optional, SkipSelf, Dire
5
5
  import * as i1 from '@angular/platform-browser';
6
6
  import { Duration, Period, TemporalQueries, LocalTime, Instant, LocalDate, nativeJs, ZoneId, DateTimeFormatter, convert, ZonedDateTime, Temporal } from '@js-joda/core';
7
7
  import { LoggerFactory } from '@elderbyte/ts-logger';
8
- import { timer, defer, ReplaySubject, concat, finalize, exhaustMap, BehaviorSubject, lastValueFrom, Subject, EMPTY, combineLatest, merge, of, forkJoin, throwError, mergeWith, switchMap as switchMap$1, Observable, zip, mergeMap as mergeMap$1, fromEvent, takeUntil as takeUntil$1, combineLatestWith as combineLatestWith$1, skipUntil, filter as filter$1, NEVER } from 'rxjs';
8
+ import { timer, defer, ReplaySubject, concat, finalize, exhaustMap, BehaviorSubject, lastValueFrom, Subject, EMPTY, combineLatest, merge, of, forkJoin, throwError, mergeWith, switchMap as switchMap$1, Observable, zip, mergeMap as mergeMap$1, fromEvent, combineLatestWith as combineLatestWith$1, NEVER } from 'rxjs';
9
9
  import { tap, takeUntil, takeWhile, map, filter, distinctUntilChanged, debounceTime, catchError, first, take, switchMap, mergeMap, expand, reduce, startWith, skip, delay, share, combineLatestWith, timeout, skipWhile } from 'rxjs/operators';
10
10
  import * as i1$2 from '@angular/common/http';
11
11
  import { HttpParams, HttpEventType, HttpRequest, HttpClient, HttpErrorResponse, HTTP_INTERCEPTORS } from '@angular/common/http';
@@ -38,7 +38,7 @@ import { MatButtonModule } from '@angular/material/button';
38
38
  import * as i4$3 from '@angular/material/input';
39
39
  import { MatInputModule } from '@angular/material/input';
40
40
  import * as i8 from '@angular/material/chips';
41
- import { MatChipsModule } from '@angular/material/chips';
41
+ import { MatChipsModule, MatChipListbox } from '@angular/material/chips';
42
42
  import * as i1$5 from '@angular/material/autocomplete';
43
43
  import { MatAutocompleteModule } from '@angular/material/autocomplete';
44
44
  import * as i2$2 from '@angular/material/list';
@@ -21249,6 +21249,26 @@ class ElderMultiSelectBase extends ElderSelectBase {
21249
21249
  awaitEntitiesWithId(entityIds, timeoutMs) {
21250
21250
  return this._entities$.pipe(tap(entities => this.logger.debug('Got entities for ids' + entityIds, entities)), filter(entities => this.equalIds(this.getEntityIds(entities), entityIds)), take(1), timeout(timeoutMs));
21251
21251
  }
21252
+ /***************************************************************************
21253
+ * *
21254
+ * Host Bindings *
21255
+ * *
21256
+ **************************************************************************/
21257
+ get hostClass() {
21258
+ return 'elder-select-base elder-multi-select';
21259
+ }
21260
+ get disabledClass() {
21261
+ return this.disabled;
21262
+ }
21263
+ get errorStateClass() {
21264
+ return this.errorState;
21265
+ }
21266
+ get requiredClass() {
21267
+ return this.required;
21268
+ }
21269
+ get emptyClass() {
21270
+ return this.empty;
21271
+ }
21252
21272
  /***************************************************************************
21253
21273
  * *
21254
21274
  * Properties *
@@ -21331,7 +21351,6 @@ class ElderMultiSelectBase extends ElderSelectBase {
21331
21351
  }, () => this.removeEntities(toRemove));
21332
21352
  }
21333
21353
  removeEntities(toRemove) {
21334
- console.warn("REMOVE");
21335
21354
  toRemove.forEach(e => this.removeEntity(e));
21336
21355
  }
21337
21356
  removeEntity(toRemove) {
@@ -21515,7 +21534,7 @@ class ElderMultiSelectBase extends ElderSelectBase {
21515
21534
  return entities;
21516
21535
  }
21517
21536
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.11", ngImport: i0, type: ElderMultiSelectBase, deps: "invalid", target: i0.ɵɵFactoryTarget.Directive }); }
21518
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.2.11", type: ElderMultiSelectBase, inputs: { entitiesSorts: "entitiesSorts", confirmRemoval: "confirmRemoval", entities: "entities", entityIds: "entityIds" }, outputs: { entityIdsChange: "entityIdsChange", entitiesChange: "entitiesChange", entityIdsUpdated: "entityIdsUpdated", entitiesUpdated: "entitiesUpdated" }, usesInheritance: true, ngImport: i0 }); }
21537
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.2.11", type: ElderMultiSelectBase, inputs: { entitiesSorts: "entitiesSorts", confirmRemoval: "confirmRemoval", entities: "entities", entityIds: "entityIds" }, outputs: { entityIdsChange: "entityIdsChange", entitiesChange: "entitiesChange", entityIdsUpdated: "entityIdsUpdated", entitiesUpdated: "entitiesUpdated" }, host: { properties: { "class": "this.hostClass", "class.mat-select-disabled": "this.disabledClass", "class.mat-select-invalid": "this.errorStateClass", "class.mat-select-required": "this.requiredClass", "class.mat-select-empty": "this.emptyClass" } }, usesInheritance: true, ngImport: i0 }); }
21519
21538
  }
21520
21539
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.11", ngImport: i0, type: ElderMultiSelectBase, decorators: [{
21521
21540
  type: Directive
@@ -21531,6 +21550,21 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.11", ngImpo
21531
21550
  type: Output
21532
21551
  }], entitiesUpdated: [{
21533
21552
  type: Output
21553
+ }], hostClass: [{
21554
+ type: HostBinding,
21555
+ args: ['class']
21556
+ }], disabledClass: [{
21557
+ type: HostBinding,
21558
+ args: ['class.mat-select-disabled']
21559
+ }], errorStateClass: [{
21560
+ type: HostBinding,
21561
+ args: ['class.mat-select-invalid']
21562
+ }], requiredClass: [{
21563
+ type: HostBinding,
21564
+ args: ['class.mat-select-required']
21565
+ }], emptyClass: [{
21566
+ type: HostBinding,
21567
+ args: ['class.mat-select-empty']
21534
21568
  }], entities: [{
21535
21569
  type: Input
21536
21570
  }], entityIds: [{
@@ -21580,6 +21614,21 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.11", ngImpo
21580
21614
  }]
21581
21615
  }], ctorParameters: function () { return [{ type: i0.TemplateRef }, { type: i0.ViewContainerRef }]; } });
21582
21616
 
21617
+ class SelectChipSpecUtil {
21618
+ static { this.DefaultChipSpec = {
21619
+ colorSpec: {
21620
+ themeColor: undefined,
21621
+ stateColor: undefined,
21622
+ levelColor: undefined
21623
+ },
21624
+ removable: undefined,
21625
+ avatarSpec: {
21626
+ hide: false,
21627
+ large: false
21628
+ }
21629
+ }; }
21630
+ }
21631
+
21583
21632
  class ElderClearSelectDirective {
21584
21633
  /***************************************************************************
21585
21634
  * *
@@ -21649,18 +21698,7 @@ class ElderMultiSelectChipsComponent extends ElderMultiSelectBase {
21649
21698
  **************************************************************************/
21650
21699
  constructor(hostRef, zone, focusMonitor, translateService, dialogService, ngControl) {
21651
21700
  super(zone, hostRef, 'multi-select-chips', focusMonitor, translateService, dialogService, ngControl);
21652
- this.defaultChipSpec = {
21653
- colorSpec: {
21654
- themeColor: undefined,
21655
- stateColor: undefined,
21656
- levelColor: undefined
21657
- },
21658
- removable: undefined,
21659
- avatarSpec: {
21660
- hide: false,
21661
- large: false
21662
- }
21663
- };
21701
+ this.defaultChipSpec = SelectChipSpecUtil.DefaultChipSpec;
21664
21702
  /**
21665
21703
  * Allows to customize each chip individually (Color, Removable, Avatar).
21666
21704
  *
@@ -21695,26 +21733,6 @@ class ElderMultiSelectChipsComponent extends ElderMultiSelectBase {
21695
21733
  };
21696
21734
  }));
21697
21735
  }
21698
- /***************************************************************************
21699
- * *
21700
- * Host Bindings *
21701
- * *
21702
- **************************************************************************/
21703
- get hostClass() {
21704
- return 'elder-select-base elder-multi-select';
21705
- }
21706
- get disabledClass() {
21707
- return this.disabled;
21708
- }
21709
- get errorStateClass() {
21710
- return this.errorState;
21711
- }
21712
- get requiredClass() {
21713
- return this.required;
21714
- }
21715
- get emptyClass() {
21716
- return this.empty;
21717
- }
21718
21736
  /***************************************************************************
21719
21737
  * *
21720
21738
  * Properties *
@@ -21825,7 +21843,7 @@ class ElderMultiSelectChipsComponent extends ElderMultiSelectBase {
21825
21843
  return new ChipModel(e, dPR(e), chipSpec?.colorSpec, removable, chipSpec.avatarSpec, chipSpec.trailingSpec);
21826
21844
  }
21827
21845
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.11", ngImport: i0, type: ElderMultiSelectChipsComponent, deps: [{ token: i0.ElementRef }, { token: i0.NgZone }, { token: i1$1.FocusMonitor }, { token: i2.TranslateService }, { token: ElderDialogService }, { token: i3.NgControl, optional: true, self: true }], target: i0.ɵɵFactoryTarget.Component }); }
21828
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.11", type: ElderMultiSelectChipsComponent, selector: "elder-multi-select-chips", inputs: { defaultChipSpec: "defaultChipSpec", chipSpecFn: "chipSpecFn", allowRemove: "allowRemove", allowSorting: "allowSorting", stacked: "stacked", chipTemplate: "chipTemplate", chipAvatarTemplate: "chipAvatarTemplate", customInputTemplate: "customInputTemplate" }, host: { properties: { "class": "this.hostClass", "class.mat-select-disabled": "this.disabledClass", "class.mat-select-invalid": "this.errorStateClass", "class.mat-select-required": "this.requiredClass", "class.mat-select-empty": "this.emptyClass" } }, providers: [
21846
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.11", type: ElderMultiSelectChipsComponent, selector: "elder-multi-select-chips", inputs: { defaultChipSpec: "defaultChipSpec", chipSpecFn: "chipSpecFn", allowRemove: "allowRemove", allowSorting: "allowSorting", stacked: "stacked", chipTemplate: "chipTemplate", chipAvatarTemplate: "chipAvatarTemplate", customInputTemplate: "customInputTemplate" }, providers: [
21829
21847
  { provide: MatFormFieldControl, useExisting: ElderMultiSelectChipsComponent },
21830
21848
  {
21831
21849
  provide: ELDER_SELECT_BASE,
@@ -21862,21 +21880,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.11", ngImpo
21862
21880
  }], _chipInput: [{
21863
21881
  type: ViewChild,
21864
21882
  args: [ElderSelectComponent]
21865
- }], hostClass: [{
21866
- type: HostBinding,
21867
- args: ['class']
21868
- }], disabledClass: [{
21869
- type: HostBinding,
21870
- args: ['class.mat-select-disabled']
21871
- }], errorStateClass: [{
21872
- type: HostBinding,
21873
- args: ['class.mat-select-invalid']
21874
- }], requiredClass: [{
21875
- type: HostBinding,
21876
- args: ['class.mat-select-required']
21877
- }], emptyClass: [{
21878
- type: HostBinding,
21879
- args: ['class.mat-select-empty']
21880
21883
  }], chipTemplateQuery: [{
21881
21884
  type: ContentChild,
21882
21885
  args: [ElderSelectChipDirective, { read: TemplateRef, static: false }]
@@ -22047,6 +22050,278 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.11", ngImpo
22047
22050
  args: [SelectionModelPopupDirective]
22048
22051
  }] } });
22049
22052
 
22053
+ class SelectOptionChipSpecUtil {
22054
+ static { this.DefaultChipSpec = {
22055
+ colorSpec: {
22056
+ themeColor: undefined,
22057
+ stateColor: undefined,
22058
+ levelColor: undefined
22059
+ },
22060
+ locked: false,
22061
+ avatarSpec: {
22062
+ hide: false,
22063
+ large: false
22064
+ }
22065
+ }; }
22066
+ }
22067
+
22068
+ class ChipOptionModel {
22069
+ constructor(value, displayText, colorSpec, locked, avatarSpec, trailingSpec, selected) {
22070
+ this.value = value;
22071
+ this.displayText = displayText;
22072
+ this.colorSpec = colorSpec;
22073
+ this.locked = locked;
22074
+ this.avatarSpec = avatarSpec;
22075
+ this.trailingSpec = trailingSpec;
22076
+ this.selected = selected;
22077
+ }
22078
+ }
22079
+ class ElderMultiSelectChipOptionsComponent extends ElderMultiSelectBase {
22080
+ /***************************************************************************
22081
+ * *
22082
+ * Constructor *
22083
+ * *
22084
+ **************************************************************************/
22085
+ constructor(hostRef, zone, focusMonitor, translateService, dialogService, ngControl) {
22086
+ super(zone, hostRef, 'multi-select-chip-options', focusMonitor, translateService, dialogService, ngControl);
22087
+ /***************************************************************************
22088
+ * *
22089
+ * Fields *
22090
+ * *
22091
+ **************************************************************************/
22092
+ this.log = LoggerFactory.getLogger(this.constructor.name);
22093
+ this.chipTemplate$ = new BehaviorSubject(null);
22094
+ this.chipAvatarTemplate$ = new BehaviorSubject(null);
22095
+ this.defaultChipSpec = SelectOptionChipSpecUtil.DefaultChipSpec;
22096
+ /**
22097
+ * Allows to customize each chip individually (Color, Removable, Avatar).
22098
+ *
22099
+ */
22100
+ this.chipSpecFn = e => this.defaultChipSpec;
22101
+ this.stacked = false;
22102
+ this._multiple = false;
22103
+ const context$ = combineLatest([
22104
+ this.state$,
22105
+ this.displayPropertyResolver$,
22106
+ this.readonly$,
22107
+ this.disabled$
22108
+ ]).pipe(map(([state, dPR, readonly, disabled]) => {
22109
+ return {
22110
+ state: state,
22111
+ displayPropertyResolver: dPR,
22112
+ readonly: readonly,
22113
+ disabled: disabled
22114
+ };
22115
+ }));
22116
+ const available$ = this.dataContext$.pipe(filter(dc => !!dc), switchMap$1(dc => dc.data));
22117
+ this.selectChips$ = combineLatest([
22118
+ this.entities$,
22119
+ this.entityIds$,
22120
+ available$,
22121
+ context$
22122
+ ]).pipe(map(([entities, entityIds, available, context]) => this.buildChipModelsOrFallback(entities, entityIds, available, context)));
22123
+ this.templates$ = combineLatest([
22124
+ this.chipTemplate$,
22125
+ this.chipAvatarTemplate$
22126
+ ]).pipe(map(([chip, avatar]) => {
22127
+ return {
22128
+ chip,
22129
+ avatar
22130
+ };
22131
+ }));
22132
+ }
22133
+ /***************************************************************************
22134
+ * *
22135
+ * Properties *
22136
+ * *
22137
+ **************************************************************************/
22138
+ set multiple(val) {
22139
+ this._multiple = coerceBooleanProperty(val);
22140
+ if (!this._multiple && this.entities.length > 1) {
22141
+ this.selectEntity(this.entities[this.entities.length - 1]);
22142
+ }
22143
+ }
22144
+ get multiple() {
22145
+ return this._multiple;
22146
+ }
22147
+ set chipTemplateQuery(template) {
22148
+ this.chipTemplate = template;
22149
+ }
22150
+ set chipTemplate(template) {
22151
+ this.chipTemplate$.next(template);
22152
+ }
22153
+ get chipTemplate() {
22154
+ return this.chipTemplate$.getValue();
22155
+ }
22156
+ set chipAvatarTemplateQuery(template) {
22157
+ this.chipAvatarTemplate = template;
22158
+ }
22159
+ set chipAvatarTemplate(template) {
22160
+ this.chipAvatarTemplate$.next(template);
22161
+ }
22162
+ get chipAvatarTemplate() {
22163
+ return this.chipAvatarTemplate$.getValue();
22164
+ }
22165
+ get shouldLabelFloat() {
22166
+ return true;
22167
+ }
22168
+ /***************************************************************************
22169
+ * *
22170
+ * Public API *
22171
+ * *
22172
+ **************************************************************************/
22173
+ selectionChanged(changeEvent, entity) {
22174
+ /**/
22175
+ this.log.debug('selectionChanged', {
22176
+ changeEvent: changeEvent,
22177
+ entity: entity
22178
+ });
22179
+ if (changeEvent.isUserInput) {
22180
+ if (changeEvent.selected) {
22181
+ this.selectEntity(entity);
22182
+ }
22183
+ else {
22184
+ this.removeEntity(entity);
22185
+ }
22186
+ }
22187
+ }
22188
+ resolveChipValue(e1) {
22189
+ return this.getEntityId(e1);
22190
+ }
22191
+ focus(options) {
22192
+ if (this._listBox) {
22193
+ this._listBox.focus();
22194
+ }
22195
+ }
22196
+ blur() {
22197
+ this.log.warn('blur() not yet supported!');
22198
+ }
22199
+ /***************************************************************************
22200
+ * *
22201
+ * Protected API *
22202
+ * *
22203
+ **************************************************************************/
22204
+ /**
22205
+ * Automatically start DC if not yet started
22206
+ * @param data
22207
+ * @protected
22208
+ */
22209
+ onDataContextChanged(data) {
22210
+ if (data) {
22211
+ if (!data.isStarted) {
22212
+ data.start(this.sorts, this.filters).subscribe({
22213
+ next: () => {
22214
+ super.onDataContextChanged(data);
22215
+ }
22216
+ });
22217
+ }
22218
+ else {
22219
+ super.onDataContextChanged(data);
22220
+ }
22221
+ }
22222
+ }
22223
+ /***************************************************************************
22224
+ * *
22225
+ * Private methods *
22226
+ * *
22227
+ **************************************************************************/
22228
+ selectEntity(entity) {
22229
+ const idToSelect = this.getEntityId(entity);
22230
+ if (!this.multiple) {
22231
+ this.removeEntities(this.entities.filter(e => this.getEntityId(e) !== idToSelect));
22232
+ }
22233
+ if (!this.isEntityIdSelected(idToSelect)) {
22234
+ this.appendEntity(entity);
22235
+ }
22236
+ }
22237
+ isEntityIdSelected(entityId) {
22238
+ return this.entities.some(e => this.getEntityId(e) == entityId);
22239
+ }
22240
+ buildChipModelsOrFallback(entities, entityIds, available, context) {
22241
+ if (context.state.error) {
22242
+ return this.buildChipFallbackModels(entityIds, context);
22243
+ }
22244
+ return this.buildChipModels(available, entities, context);
22245
+ }
22246
+ buildChipFallbackModels(entityIds, context) {
22247
+ context.displayPropertyResolver = x => x.id;
22248
+ return entityIds.map(id => this.buildChipBySpec({ id: id }, context, {
22249
+ colorSpec: {
22250
+ themeColor: 'warn'
22251
+ },
22252
+ avatarSpec: {
22253
+ hide: false,
22254
+ large: false
22255
+ }
22256
+ }, false // TODO
22257
+ ));
22258
+ }
22259
+ buildChipModels(availables, entities, context) {
22260
+ if (availables) {
22261
+ const selectedIds = new Set(entities.map(e => this.getEntityId(e)));
22262
+ return availables.map(available => this.buildChipBySpec(available, context, this.chipSpecFn(available) ?? this.defaultChipSpec, selectedIds.has(this.getEntityId(available))));
22263
+ }
22264
+ else {
22265
+ return [];
22266
+ }
22267
+ }
22268
+ buildChipBySpec(e, context, chipSpec, selected) {
22269
+ let locked = false;
22270
+ if (this.isLocked) {
22271
+ locked = true;
22272
+ }
22273
+ else {
22274
+ locked = chipSpec.locked;
22275
+ }
22276
+ return new ChipOptionModel(e, context.displayPropertyResolver(e), {
22277
+ themeColor: selected ? 'accent' : undefined
22278
+ }, locked, chipSpec.avatarSpec, chipSpec.trailingSpec, selected);
22279
+ }
22280
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.11", ngImport: i0, type: ElderMultiSelectChipOptionsComponent, deps: [{ token: i0.ElementRef }, { token: i0.NgZone }, { token: i1$1.FocusMonitor }, { token: i2.TranslateService }, { token: ElderDialogService }, { token: i3.NgControl, optional: true, self: true }], target: i0.ɵɵFactoryTarget.Component }); }
22281
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.11", type: ElderMultiSelectChipOptionsComponent, selector: "elder-multi-select-chip-options", inputs: { defaultChipSpec: "defaultChipSpec", chipSpecFn: "chipSpecFn", stacked: "stacked", multiple: "multiple", chipTemplate: "chipTemplate", chipAvatarTemplate: "chipAvatarTemplate" }, providers: [
22282
+ { provide: MatFormFieldControl, useExisting: ElderMultiSelectChipOptionsComponent },
22283
+ {
22284
+ provide: ELDER_SELECT_BASE,
22285
+ useExisting: forwardRef(() => ElderMultiSelectChipOptionsComponent)
22286
+ }
22287
+ ], queries: [{ propertyName: "chipTemplateQuery", first: true, predicate: ElderSelectChipDirective, descendants: true, read: TemplateRef }, { propertyName: "chipAvatarTemplateQuery", first: true, predicate: ElderSelectChipAvatarDirective, descendants: true, read: TemplateRef }], viewQueries: [{ propertyName: "_listBox", first: true, predicate: MatChipListbox, descendants: true }], usesInheritance: true, ngImport: i0, template: "<div *ngIf=\"(selectChips$ | async) as chipValues\"\n class=\"elder-flex-control\"\n [matTooltip]=\"(state$ | async)?.error\"\n>\n <mat-chip-listbox #chips\n [class.mat-mdc-chip-set-stacked]=\"stacked\"\n [multiple]=\"multiple\"\n >\n\n <ng-container *ngIf=\"(mergedState$ | async) as state\">\n <div *ngIf=\"icon\"\n class=\"elder-input-prefix-icon-container flex-none\"\n >\n <mat-icon *ngIf=\"icon\" disabled\n class=\"elder-prefix-icon elder-mdc-control-icon elder-icon-small noselect\"\n [class.loading]=\"state.loading\"\n >\n {{icon}}\n </mat-icon>\n </div>\n </ng-container>\n\n <ng-container *ngIf=\"templates$ | async as templates\">\n\n <mat-chip-option *ngFor=\"let chipModel of chipValues\"\n class=\"noselect\"\n [value]=\"resolveChipValue(chipModel.value)\"\n elderChipLabel\n [levelColor]=\"chipModel.colorSpec?.levelColor\"\n [stateColor]=\"chipModel.colorSpec?.stateColor\"\n [color]=\"chipModel.colorSpec?.themeColor\"\n [selectable]=\"!chipModel.locked\"\n [disabled]=\"chipModel.locked\"\n [selected]=\"chipModel.selected\"\n (selectionChange)=\"selectionChanged($event, chipModel.value)\"\n >\n\n <mat-chip-avatar\n *ngIf=\"templates.avatar && !chipModel.avatarSpec?.hide\"\n [class.chip-avatar-xl]=\"chipModel.avatarSpec?.large\"\n >\n <ng-container\n *ngTemplateOutlet=\"templates.avatar; context: {$implicit: chipModel}\">\n </ng-container>\n </mat-chip-avatar>\n\n <ng-container\n *ngTemplateOutlet=\"templates.chip || simpleChipTemplate; context: {$implicit: chipModel}\">\n </ng-container>\n\n <mat-icon matChipTrailingIcon class=\"elder-trailing-icon\"\n *ngIf=\"chipModel.trailingSpec?.icon\"\n [fontSet]=\"chipModel.trailingSpec?.iconFontSet\"\n >{{chipModel.trailingSpec?.icon}}</mat-icon>\n\n\n </mat-chip-option>\n\n <div class=\"layout-row place-start-center elder-chip-input\">\n\n <button mat-icon-button type=\"button\" class=\"elder-control-icon-button elder-browse-icon\"\n *ngIf=\"selectionPopup\"\n [disabled]=\"isLocked\"\n (click)=\"openSelectionPopup($event)\" aria-label=\"Search\"\n elderStopEventPropagation\n tabIndex=\"-1\"\n >\n <mat-icon class=\"elder-mdc-control-icon\">search</mat-icon>\n </button>\n </div>\n </ng-container>\n </mat-chip-listbox>\n</div>\n\n<ng-template #simpleChipTemplate let-chipModel>\n <span class=\"elder-chip-text\">{{chipModel.displayText | elderTruncate:20}}</span>\n</ng-template>\n\n", styles: [".elder-chip-text{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.elder-trailing-icon{color:var(--mdc-chip-with-trailing-icon-trailing-icon-color);opacity:.54}\n"], dependencies: [{ kind: "directive", type: i1$4.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1$4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1$4.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: i3$1.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: i5$1.MatIconButton, selector: "button[mat-icon-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { kind: "directive", type: i8.MatChipAvatar, selector: "mat-chip-avatar, [matChipAvatar]" }, { kind: "component", type: i8.MatChipListbox, selector: "mat-chip-listbox", inputs: ["tabIndex", "multiple", "aria-orientation", "selectable", "compareWith", "required", "hideSingleSelectionIndicator", "value"], outputs: ["change"] }, { kind: "component", type: i8.MatChipOption, selector: "mat-basic-chip-option, [mat-basic-chip-option], mat-chip-option, [mat-chip-option]", inputs: ["color", "disabled", "disableRipple", "tabIndex", "selectable", "selected"], outputs: ["selectionChange"] }, { kind: "directive", type: i8.MatChipTrailingIcon, selector: "mat-chip-trailing-icon, [matChipTrailingIcon]" }, { kind: "directive", type: i9$1.MatTooltip, selector: "[matTooltip]", exportAs: ["matTooltip"] }, { kind: "directive", type: ElderStopEventPropagationDirective, selector: "[elderStopEventPropagation]" }, { kind: "directive", type: ElderChipLabelDirective, selector: "[elderChipLabel]", inputs: ["appearance", "color", "stateColor", "levelColor"] }, { kind: "pipe", type: i1$4.AsyncPipe, name: "async" }, { kind: "pipe", type: ElderTruncatePipe, name: "elderTruncate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
22288
+ }
22289
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.11", ngImport: i0, type: ElderMultiSelectChipOptionsComponent, decorators: [{
22290
+ type: Component,
22291
+ args: [{ selector: 'elder-multi-select-chip-options', changeDetection: ChangeDetectionStrategy.OnPush, providers: [
22292
+ { provide: MatFormFieldControl, useExisting: ElderMultiSelectChipOptionsComponent },
22293
+ {
22294
+ provide: ELDER_SELECT_BASE,
22295
+ useExisting: forwardRef(() => ElderMultiSelectChipOptionsComponent)
22296
+ }
22297
+ ], template: "<div *ngIf=\"(selectChips$ | async) as chipValues\"\n class=\"elder-flex-control\"\n [matTooltip]=\"(state$ | async)?.error\"\n>\n <mat-chip-listbox #chips\n [class.mat-mdc-chip-set-stacked]=\"stacked\"\n [multiple]=\"multiple\"\n >\n\n <ng-container *ngIf=\"(mergedState$ | async) as state\">\n <div *ngIf=\"icon\"\n class=\"elder-input-prefix-icon-container flex-none\"\n >\n <mat-icon *ngIf=\"icon\" disabled\n class=\"elder-prefix-icon elder-mdc-control-icon elder-icon-small noselect\"\n [class.loading]=\"state.loading\"\n >\n {{icon}}\n </mat-icon>\n </div>\n </ng-container>\n\n <ng-container *ngIf=\"templates$ | async as templates\">\n\n <mat-chip-option *ngFor=\"let chipModel of chipValues\"\n class=\"noselect\"\n [value]=\"resolveChipValue(chipModel.value)\"\n elderChipLabel\n [levelColor]=\"chipModel.colorSpec?.levelColor\"\n [stateColor]=\"chipModel.colorSpec?.stateColor\"\n [color]=\"chipModel.colorSpec?.themeColor\"\n [selectable]=\"!chipModel.locked\"\n [disabled]=\"chipModel.locked\"\n [selected]=\"chipModel.selected\"\n (selectionChange)=\"selectionChanged($event, chipModel.value)\"\n >\n\n <mat-chip-avatar\n *ngIf=\"templates.avatar && !chipModel.avatarSpec?.hide\"\n [class.chip-avatar-xl]=\"chipModel.avatarSpec?.large\"\n >\n <ng-container\n *ngTemplateOutlet=\"templates.avatar; context: {$implicit: chipModel}\">\n </ng-container>\n </mat-chip-avatar>\n\n <ng-container\n *ngTemplateOutlet=\"templates.chip || simpleChipTemplate; context: {$implicit: chipModel}\">\n </ng-container>\n\n <mat-icon matChipTrailingIcon class=\"elder-trailing-icon\"\n *ngIf=\"chipModel.trailingSpec?.icon\"\n [fontSet]=\"chipModel.trailingSpec?.iconFontSet\"\n >{{chipModel.trailingSpec?.icon}}</mat-icon>\n\n\n </mat-chip-option>\n\n <div class=\"layout-row place-start-center elder-chip-input\">\n\n <button mat-icon-button type=\"button\" class=\"elder-control-icon-button elder-browse-icon\"\n *ngIf=\"selectionPopup\"\n [disabled]=\"isLocked\"\n (click)=\"openSelectionPopup($event)\" aria-label=\"Search\"\n elderStopEventPropagation\n tabIndex=\"-1\"\n >\n <mat-icon class=\"elder-mdc-control-icon\">search</mat-icon>\n </button>\n </div>\n </ng-container>\n </mat-chip-listbox>\n</div>\n\n<ng-template #simpleChipTemplate let-chipModel>\n <span class=\"elder-chip-text\">{{chipModel.displayText | elderTruncate:20}}</span>\n</ng-template>\n\n", styles: [".elder-chip-text{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.elder-trailing-icon{color:var(--mdc-chip-with-trailing-icon-trailing-icon-color);opacity:.54}\n"] }]
22298
+ }], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i0.NgZone }, { type: i1$1.FocusMonitor }, { type: i2.TranslateService }, { type: ElderDialogService }, { type: i3.NgControl, decorators: [{
22299
+ type: Optional
22300
+ }, {
22301
+ type: Self
22302
+ }] }]; }, propDecorators: { defaultChipSpec: [{
22303
+ type: Input
22304
+ }], chipSpecFn: [{
22305
+ type: Input
22306
+ }], stacked: [{
22307
+ type: Input
22308
+ }], _listBox: [{
22309
+ type: ViewChild,
22310
+ args: [MatChipListbox]
22311
+ }], multiple: [{
22312
+ type: Input
22313
+ }], chipTemplateQuery: [{
22314
+ type: ContentChild,
22315
+ args: [ElderSelectChipDirective, { read: TemplateRef, static: false }]
22316
+ }], chipTemplate: [{
22317
+ type: Input
22318
+ }], chipAvatarTemplateQuery: [{
22319
+ type: ContentChild,
22320
+ args: [ElderSelectChipAvatarDirective, { read: TemplateRef, static: false }]
22321
+ }], chipAvatarTemplate: [{
22322
+ type: Input
22323
+ }] } });
22324
+
22050
22325
  class ElderSelectModule {
22051
22326
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.11", ngImport: i0, type: ElderSelectModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
22052
22327
  static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "16.2.11", ngImport: i0, type: ElderSelectModule, declarations: [ElderSelectComponent,
@@ -22060,7 +22335,8 @@ class ElderSelectModule {
22060
22335
  ElderSelectChipAvatarDirective,
22061
22336
  ElderAutoSelectFirstDirective,
22062
22337
  ElderClearSelectDirective,
22063
- ElderSelectCustomInputDirective], imports: [CommonModule, FormsModule, ReactiveFormsModule,
22338
+ ElderSelectCustomInputDirective,
22339
+ ElderMultiSelectChipOptionsComponent], imports: [CommonModule, FormsModule, ReactiveFormsModule,
22064
22340
  MatFormFieldModule,
22065
22341
  MatIconModule,
22066
22342
  MatSelectModule,
@@ -22083,7 +22359,8 @@ class ElderSelectModule {
22083
22359
  ElderSelectChipAvatarDirective,
22084
22360
  ElderAutoSelectFirstDirective,
22085
22361
  ElderClearSelectDirective,
22086
- ElderSelectCustomInputDirective] }); }
22362
+ ElderSelectCustomInputDirective,
22363
+ ElderMultiSelectChipOptionsComponent] }); }
22087
22364
  static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "16.2.11", ngImport: i0, type: ElderSelectModule, imports: [CommonModule, FormsModule, ReactiveFormsModule,
22088
22365
  MatFormFieldModule,
22089
22366
  MatIconModule,
@@ -22129,7 +22406,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.11", ngImpo
22129
22406
  ElderSelectChipAvatarDirective,
22130
22407
  ElderAutoSelectFirstDirective,
22131
22408
  ElderClearSelectDirective,
22132
- ElderSelectCustomInputDirective
22409
+ ElderSelectCustomInputDirective,
22410
+ ElderMultiSelectChipOptionsComponent
22133
22411
  ],
22134
22412
  exports: [
22135
22413
  ElderSelectComponent,
@@ -22142,7 +22420,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.11", ngImpo
22142
22420
  ElderSelectChipAvatarDirective,
22143
22421
  ElderAutoSelectFirstDirective,
22144
22422
  ElderClearSelectDirective,
22145
- ElderSelectCustomInputDirective
22423
+ ElderSelectCustomInputDirective,
22424
+ ElderMultiSelectChipOptionsComponent
22146
22425
  ]
22147
22426
  }]
22148
22427
  }] });
@@ -25540,6 +25819,58 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.11", ngImpo
25540
25819
  type: Input
25541
25820
  }] } });
25542
25821
 
25822
+ class SearchContextOrchestrator {
25823
+ /***************************************************************************
25824
+ * *
25825
+ * Constructor *
25826
+ * *
25827
+ **************************************************************************/
25828
+ constructor(filterContext, forcedFilters) {
25829
+ this.filterContext = filterContext;
25830
+ this.forcedFilters = forcedFilters;
25831
+ this.initialFilterContext = new FilterContext();
25832
+ this.log = LoggerFactory.getLogger(this.constructor.name);
25833
+ this.initialFilterContext.updateFilters(filterContext.filtersSnapshot);
25834
+ if (forcedFilters) {
25835
+ this.initialFilterContext.updateFilters(forcedFilters);
25836
+ }
25837
+ }
25838
+ /***************************************************************************
25839
+ * *
25840
+ * Properties *
25841
+ * *
25842
+ **************************************************************************/
25843
+ get initialFilters$() {
25844
+ return this.initialFilterContext.filters
25845
+ .pipe(startWith(this.initialFilterContext.filtersSnapshot));
25846
+ }
25847
+ get filters() {
25848
+ return this.filterContext.filters;
25849
+ }
25850
+ /***************************************************************************
25851
+ * *
25852
+ * Public Api *
25853
+ * *
25854
+ **************************************************************************/
25855
+ addInitialFilters(filters) {
25856
+ this.initialFilterContext.updateFilters(filters);
25857
+ }
25858
+ applyFilters(userFilters) {
25859
+ const context = this.filterContext;
25860
+ if (context) {
25861
+ context.updateFilters(userFilters);
25862
+ context.mergeFilters(this.forcedFilters);
25863
+ this.log.trace("Search-Model filters updated:", Array.from(context.filtersSnapshot));
25864
+ }
25865
+ else {
25866
+ this.log.warn("Failed to apply filters since no FilterContext is available!", {
25867
+ userFilters: userFilters,
25868
+ forcedFilters: this.forcedFilters
25869
+ });
25870
+ }
25871
+ }
25872
+ }
25873
+
25543
25874
  /**
25544
25875
  * The search container manages a group of search-inputs
25545
25876
  * and holds their values in a central search model.
@@ -25551,14 +25882,11 @@ class ElderSearchContextDirective {
25551
25882
  * Fields *
25552
25883
  * *
25553
25884
  **************************************************************************/
25554
- this.forcedFilters$ = new BehaviorSubject$1([]);
25555
- this.startFilters$ = new BehaviorSubject$1([]);
25885
+ this._forcedFilters$ = new BehaviorSubject$1([]);
25556
25886
  this.log = LoggerFactory.getLogger(this.constructor.name);
25557
25887
  this.destroy$ = new Subject$1();
25558
- this._searchInputs = new BehaviorSubject$1([]);
25559
- this._searchStates = new BehaviorSubject$1([]);
25560
- this._filters$ = new BehaviorSubject$1([]);
25561
- this._initialFilters$ = new BehaviorSubject$1([]);
25888
+ this._searchInputs$ = new BehaviorSubject$1([]);
25889
+ this._searchStates$ = new BehaviorSubject$1([]);
25562
25890
  }
25563
25891
  /***************************************************************************
25564
25892
  * *
@@ -25566,11 +25894,10 @@ class ElderSearchContextDirective {
25566
25894
  * *
25567
25895
  **************************************************************************/
25568
25896
  ngAfterContentInit() {
25569
- this._searchInputs.pipe(takeUntil(this.destroy$), switchMap(inputs => combineLatest(inputs.map(i => i.state$))), combineLatestWith(this.forcedFilters$), debounceTime(5)).subscribe(([states, forcedFilters]) => {
25570
- this._searchStates.next(states);
25897
+ this._searchInputs$.pipe(takeUntil(this.destroy$), switchMap(inputs => combineLatest(inputs.map(i => i.state$))), debounceTime(5)).subscribe((states) => {
25898
+ this._searchStates$.next(states);
25571
25899
  const userFilters = this.convertToFilters(states);
25572
- this._filters$.next(userFilters);
25573
- this.applyFilters(userFilters, forcedFilters);
25900
+ this.searchContextOrchestrator.applyFilters(userFilters);
25574
25901
  });
25575
25902
  }
25576
25903
  ngAfterViewInit() {
@@ -25579,6 +25906,7 @@ class ElderSearchContextDirective {
25579
25906
  ngOnDestroy() {
25580
25907
  this.destroy$.next();
25581
25908
  this.destroy$.complete();
25909
+ this._searchContextOrchestrator = null;
25582
25910
  }
25583
25911
  /***************************************************************************
25584
25912
  * *
@@ -25588,7 +25916,7 @@ class ElderSearchContextDirective {
25588
25916
  set filterContext(value) {
25589
25917
  if (value) {
25590
25918
  if (typeof value !== 'string') {
25591
- this._filterContext = value;
25919
+ this._searchContextOrchestrator = new SearchContextOrchestrator(value, this.forcedFilters);
25592
25920
  }
25593
25921
  else {
25594
25922
  this.log.warn('Illegal value provided for property filterContext: ', JSON.stringify(value));
@@ -25596,11 +25924,11 @@ class ElderSearchContextDirective {
25596
25924
  }
25597
25925
  }
25598
25926
  else {
25599
- this._filterContext = null;
25927
+ this._searchContextOrchestrator = new SearchContextOrchestrator(null);
25600
25928
  }
25601
25929
  }
25602
25930
  get filterContext() {
25603
- return this._filterContext;
25931
+ return this.searchContextOrchestrator.filterContext;
25604
25932
  }
25605
25933
  /**
25606
25934
  * Forced filters are always merged into the final FilterContext.
@@ -25609,25 +25937,25 @@ class ElderSearchContextDirective {
25609
25937
  * to also keep the users intent (by merging) them.
25610
25938
  */
25611
25939
  set forcedFilters(filters) {
25612
- this.forcedFilters$.next(filters);
25940
+ this._forcedFilters$.next(filters);
25613
25941
  }
25614
25942
  get forcedFilters() {
25615
- return this.forcedFilters$.getValue();
25616
- }
25617
- set startFilters(filters) {
25618
- this.startFilters$.next(filters);
25943
+ return this._forcedFilters$.getValue();
25619
25944
  }
25620
25945
  get attributes() {
25621
- return this._searchInputs.asObservable();
25946
+ return this._searchInputs$.asObservable();
25622
25947
  }
25623
25948
  get attributesSnapshot() {
25624
- return this._searchInputs.getValue();
25949
+ return this._searchInputs$.getValue();
25625
25950
  }
25626
25951
  get states$() {
25627
- return this._searchStates.asObservable();
25952
+ return this._searchStates$.asObservable();
25628
25953
  }
25629
25954
  get statesSnapshot() {
25630
- return this._searchStates.getValue();
25955
+ return this._searchStates$.getValue();
25956
+ }
25957
+ get searchContextOrchestrator() {
25958
+ return this._searchContextOrchestrator;
25631
25959
  }
25632
25960
  /**
25633
25961
  * Returns the current user touched attributes. (ignoring fallbacks)
@@ -25635,18 +25963,6 @@ class ElderSearchContextDirective {
25635
25963
  get userDefinedAttributes$() {
25636
25964
  return this.states$.pipe(map(states => states.filter(s => !s.pristine)));
25637
25965
  }
25638
- /**
25639
- * Returns the current active filters
25640
- */
25641
- get filters$() {
25642
- return this._filters$.asObservable();
25643
- }
25644
- get initialFilters$() {
25645
- return this._initialFilters$.asObservable();
25646
- }
25647
- get filtersSnapshot() {
25648
- return this._filters$.getValue();
25649
- }
25650
25966
  /***************************************************************************
25651
25967
  * *
25652
25968
  * Public API *
@@ -25657,8 +25973,8 @@ class ElderSearchContextDirective {
25657
25973
  */
25658
25974
  register(searchInput) {
25659
25975
  this.log.debug('Registering search input [' + searchInput.name + ']');
25660
- const current = this._searchInputs.getValue();
25661
- this._searchInputs.next([...current, searchInput]);
25976
+ const current = this._searchInputs$.getValue();
25977
+ this._searchInputs$.next([...current, searchInput]);
25662
25978
  }
25663
25979
  reset() {
25664
25980
  this.attributesSnapshot
@@ -25667,19 +25983,15 @@ class ElderSearchContextDirective {
25667
25983
  a.reset();
25668
25984
  });
25669
25985
  }
25670
- registerInitialFilters(filters) {
25671
- this._initialFilters$.next(filters);
25672
- }
25673
25986
  /***************************************************************************
25674
25987
  * *
25675
25988
  * Private *
25676
25989
  * *
25677
25990
  **************************************************************************/
25678
25991
  subscribeInitialFilters() {
25679
- this.initialFilters$.pipe(takeUntil(this.destroy$), combineLatestWith(this._searchInputs, this.startFilters$)).subscribe(([initialFilters, searchInputs, startFilters]) => {
25680
- var filters = [...initialFilters, ...startFilters];
25992
+ this.searchContextOrchestrator.initialFilters$.pipe(takeUntil(this.destroy$), combineLatestWith(this._searchInputs$)).subscribe(([initialFilters, searchInputs]) => {
25681
25993
  searchInputs.forEach(input => {
25682
- const filter = this.findFilterForInput(input, filters);
25994
+ const filter = this.findFilterForInput(input, initialFilters);
25683
25995
  if (filter) {
25684
25996
  input.applyInitialValue(filter.value);
25685
25997
  }
@@ -25699,22 +26011,8 @@ class ElderSearchContextDirective {
25699
26011
  .filter(s => !!s.queryKey)
25700
26012
  .map(s => new Filter(s.queryKey, s.queryValue));
25701
26013
  }
25702
- applyFilters(userFilters, forcedFilters) {
25703
- const context = this.filterContext;
25704
- if (context) {
25705
- context.updateFilters(userFilters);
25706
- context.mergeFilters(forcedFilters);
25707
- this.log.trace('Search-Model filters updated:', Array.from(context.filtersSnapshot));
25708
- }
25709
- else {
25710
- this.log.warn('Failed to apply filters since no FilterContext is available!', {
25711
- userFilters: userFilters,
25712
- forcedFilters: forcedFilters
25713
- });
25714
- }
25715
- }
25716
26014
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.11", ngImport: i0, type: ElderSearchContextDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
25717
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.2.11", type: ElderSearchContextDirective, selector: "[elderSearchContext]", inputs: { filterContext: ["elderSearchContext", "filterContext"], forcedFilters: "forcedFilters", startFilters: "startFilters" }, exportAs: ["elderSearchContext"], ngImport: i0 }); }
26015
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.2.11", type: ElderSearchContextDirective, selector: "[elderSearchContext]", inputs: { filterContext: ["elderSearchContext", "filterContext"], forcedFilters: "forcedFilters" }, exportAs: ["elderSearchContext"], ngImport: i0 }); }
25718
26016
  }
25719
26017
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.11", ngImport: i0, type: ElderSearchContextDirective, decorators: [{
25720
26018
  type: Directive,
@@ -25727,8 +26025,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.11", ngImpo
25727
26025
  args: ['elderSearchContext']
25728
26026
  }], forcedFilters: [{
25729
26027
  type: Input
25730
- }], startFilters: [{
25731
- type: Input
25732
26028
  }] } });
25733
26029
 
25734
26030
  /**
@@ -25821,6 +26117,8 @@ class ElderInitialValueDirective {
25821
26117
  * *
25822
26118
  **************************************************************************/
25823
26119
  constructor(ngModel) {
26120
+ //TODO: The debounce time is a hacky workaround, find a proper way to set initial value.
26121
+ // Currently two way binding ngModel deosnt work.
25824
26122
  this.ngModel = ngModel;
25825
26123
  /***************************************************************************
25826
26124
  * *
@@ -25828,29 +26126,51 @@ class ElderInitialValueDirective {
25828
26126
  * *
25829
26127
  **************************************************************************/
25830
26128
  this.log = LoggerFactory.getLogger(this.constructor.name);
25831
- this.newValue$ = new BehaviorSubject(null); // Initial Value or NewValue ???
25832
- this.unsubscribe$ = new Subject();
26129
+ this.initialValue$ = new BehaviorSubject(null);
26130
+ this.destroy$ = new Subject();
25833
26131
  this.initialDone$ = new Subject();
25834
26132
  this.isInitial = true;
25835
- this.initialValue = this.ngModel.model;
25836
- ngModel.control.valueChanges
25837
- .pipe(takeUntil$1(this.initialDone$), takeUntil$1(this.unsubscribe$), combineLatestWith$1(this.newValue$)).subscribe({
25838
- next: ([ngModelValue, newValue]) => {
25839
- if (this.initialValue === ngModelValue) {
25840
- this.initialDone$.next();
25841
- this.initialDone$.complete();
25842
- ngModel.control.setValue(newValue ? newValue : ngModelValue); // Why set ngModelValue again??
25843
- }
25844
- else {
25845
- this.log.warn('Initialisation not yet done!', {
25846
- initialValue: this.initialValue,
25847
- ngModelValue: ngModelValue,
25848
- newValue: newValue
25849
- });
26133
+ const ngModelValue$ = of("dummy")
26134
+ .pipe(delay(10), map(() => this.ngModel.model));
26135
+ ngModelValue$
26136
+ .pipe(combineLatestWith$1(this.initialValue$), takeUntil(this.initialDone$), takeUntil(this.destroy$)).subscribe({
26137
+ next: ([ngModelValue, initialValue]) => {
26138
+ this.log.warn("initialValue: " + initialValue);
26139
+ if (initialValue) {
26140
+ ngModel.control.setValue(initialValue);
25850
26141
  }
26142
+ this.initialDone$.next();
26143
+ this.initialDone$.complete();
25851
26144
  }
25852
26145
  });
26146
+ // this.ngModelValue = this.ngModel.model;
26147
+ // ngModel.control.valueChanges
26148
+ // .pipe(
26149
+ // takeUntil(this.initialDone$),
26150
+ // takeUntil(this.unsubscribe$),
26151
+ // combineLatestWith(this.newValue$),
26152
+ // debounceTime(500)
26153
+ // ).subscribe({
26154
+ // next: ([ngModelValue, newValue]) => {
26155
+ // if (this.initialValue === ngModelValue) {
26156
+ // this.initialDone$.next();
26157
+ // this.initialDone$.complete();
26158
+ // ngModel.control.setValue(newValue ? newValue : ngModelValue); // Why set ngModelValue again??
26159
+ // } else {
26160
+ // this.log.warn('Initialisation not yet done!', {
26161
+ // initialValue: this.initialValue,
26162
+ // ngModelValue: ngModelValue,
26163
+ // newValue: newValue
26164
+ // });
26165
+ // }
26166
+ // }
26167
+ // });
25853
26168
  }
26169
+ /***************************************************************************
26170
+ * *
26171
+ * Life Cycle *
26172
+ * *
26173
+ **************************************************************************/
25854
26174
  /***************************************************************************
25855
26175
  * *
25856
26176
  * Properties *
@@ -25858,14 +26178,16 @@ class ElderInitialValueDirective {
25858
26178
  **************************************************************************/
25859
26179
  get valueChanges$() {
25860
26180
  return this.ngModel.control.valueChanges
25861
- .pipe(skipUntil(this.initialDone$), filter$1(value => this.filterInitialValue(value)));
26181
+ .pipe(takeUntil(this.destroy$)
26182
+ //filter(value => this.filterInitialValue(value))
26183
+ );
25862
26184
  }
25863
- setInitialValue(value) {
25864
- this.newValue$.next(value); // Initial Value or NewValue ???
26185
+ applyInitialValue(value) {
26186
+ this.initialValue$.next(value);
25865
26187
  }
25866
26188
  ngOnDestroy() {
25867
- this.unsubscribe$.next();
25868
- this.unsubscribe$.complete();
26189
+ this.destroy$.next();
26190
+ this.destroy$.complete();
25869
26191
  }
25870
26192
  /***************************************************************************
25871
26193
  * *
@@ -25873,7 +26195,7 @@ class ElderInitialValueDirective {
25873
26195
  * *
25874
26196
  **************************************************************************/
25875
26197
  filterInitialValue(value) {
25876
- if (this.isInitial && this.initialValue === value) {
26198
+ if (this.isInitial && this.ngModelValue$ === value) {
25877
26199
  this.isInitial = false;
25878
26200
  return false;
25879
26201
  }
@@ -25885,8 +26207,8 @@ class ElderInitialValueDirective {
25885
26207
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.11", ngImport: i0, type: ElderInitialValueDirective, decorators: [{
25886
26208
  type: Directive,
25887
26209
  args: [{
25888
- selector: '[elderInitialValue]',
25889
- exportAs: 'elderInitialValue',
26210
+ selector: "[elderInitialValue]",
26211
+ exportAs: "elderInitialValue"
25890
26212
  }]
25891
26213
  }], ctorParameters: function () { return [{ type: i3.NgModel, decorators: [{
25892
26214
  type: Host
@@ -25964,7 +26286,7 @@ class ElderSearchInputDirective {
25964
26286
  **************************************************************************/
25965
26287
  applyInitialValue(queryString) {
25966
26288
  const value = this.convertQueryStringToRawModelValue(queryString);
25967
- this.initialValueDirective.setInitialValue(value);
26289
+ this.initialValueDirective.applyInitialValue(value);
25968
26290
  }
25969
26291
  reset() {
25970
26292
  this.ngModel.reset();
@@ -26729,9 +27051,9 @@ class ElderSearchContextUrlBindingDirective {
26729
27051
  **************************************************************************/
26730
27052
  ngAfterViewInit() {
26731
27053
  this.urlBindingService.initialSearchMap$.pipe(first(), takeUntil(this._unsubscribe$), filter(searchMap => searchMap.has(this._urlBinding)), map(searchMap => searchMap.get(this._urlBinding)), map(filterMap => Array.from(filterMap.filters.values()))).subscribe(filters => {
26732
- this.searchContext.registerInitialFilters(filters);
27054
+ this.searchContext.searchContextOrchestrator.addInitialFilters(filters);
26733
27055
  });
26734
- this.searchContext.filters$.pipe(takeUntil(this._unsubscribe$)).subscribe(filters => this.urlBindingService.updateFiltersForContext(this._urlBinding, filters));
27056
+ this.searchContext.searchContextOrchestrator.filters.pipe(takeUntil(this._unsubscribe$)).subscribe(filters => this.urlBindingService.updateFiltersForContext(this._urlBinding, filters));
26735
27057
  }
26736
27058
  ngOnDestroy() {
26737
27059
  this._unsubscribe$.next();
@@ -30779,5 +31101,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.11", ngImpo
30779
31101
  * Generated bundle index. Do not edit.
30780
31102
  */
30781
31103
 
30782
- export { ActivationEventSource, Arrays, AuditedEntity, AutoStartSpec, BlobUrl, BytesFormat, BytesPerSecondFormat, BytesPipe, CardDropEvent, CardOrganizerData, CardStack, CollectionUtil, ComparatorBuilder, ConfirmDialogConfig, ContinuableListing, CsvColumnSpec, CsvSerializer, CsvSpec, CsvStreamExporter, CsvStreamExporterBuilder, CsvStreamExporterBuilderService, Currency, CurrencyCode, 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, ELDER_DATA_VIEW, ELDER_SELECT_BASE, ElderAccessDeniedComponent, ElderAccessDeniedModule, ElderAppHeaderComponent, ElderAuditModule, ElderAuditedEntityComponent, ElderAutoSelectFirstDirective, ElderAutocompleteComponent, ElderAutocompleteDirective, ElderAutocompleteManyDirective, ElderAutocompleteModule, ElderBadgeComponent, ElderBadgeDirective, ElderBadgeModule, ElderBlobViewerComponent, ElderBreadCrumbsComponent, ElderBreadCrumbsModule, ElderButtonGroupComponent, ElderButtonGroupModule, ElderCardComponent, ElderCardContentDirective, ElderCardHeaderActionsDirective, ElderCardHeaderComponent, ElderCardModule, ElderCardOrganizerComponent, ElderCardOrganizerModule, ElderCardPanelComponent, ElderCardStackComponent, ElderCardSubtitleDirective, ElderCardTitleDirective, ElderCheckboxState, ElderChipLabelDirective, ElderChipListSelectComponent, ElderChipListSelectModule, 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, 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, ElderMultiSelectBase, ElderMultiSelectChipsComponent, ElderMultiSelectFormField, ElderMultipleOfUtil, ElderMultipleOfValidator, ElderNavGroupComponent, ElderNavLinkComponent, ElderNavListComponent, ElderNavModule, ElderNextFocusableDirective, ElderNumberCellDirective, ElderOfflineIndicatorComponent, ElderOverlayComponent, ElderOverlayModule, ElderOverlayOriginDirective, 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, ElderSearchContextUrlBindingDirective, ElderSearchInputDirective, ElderSearchModule, ElderSearchPanelComponent, ElderSelectBase, ElderSelectChipAvatarDirective, ElderSelectChipDirective, ElderSelectComponent, ElderSelectComponentState, ElderSelectCustomInputDirective, ElderSelectFormField, ElderSelectModule, ElderSelectOnTabDirective, ElderSelectValueDirective, ElderSelectionDialogComponent, ElderSelectionDialogDirective, ElderSelectionMasterCheckboxComponent, ElderSelectionPopupTriggerAdapterDirective, ElderShellCenterDirective, ElderShellComponent, ElderShellModule, ElderShellNavigationToggleComponent, ElderShellService, ElderShellSideLeftDirective, ElderShellSideRightDirective, ElderShellSlotDirective, ElderSimpleSelectionViewComponent, ElderSimpleSelectionViewModule, ElderSingleSortComponent, ElderStackCardDirective, ElderStopEventPropagationDirective, 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, 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, ReactiveMap, RefreshingEntity, RestClient, RestClientConfig, RestClientContinuable, RestClientList, RestClientPaged, SearchQuery, 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, createDataOptionsProvider, createSelectionModel, existingOrNewElderTableModel, isActivePagedDataContext, isContinuableDataContext, isContinuableDataSource, isDataContext, isDataSource, isDataViewMessageType, isElderEntityValueAccessor, isElderMultiEntityValueAccessor, isListDataSource, isPagedDataSource, lazySample, lazySampleTime, naturalValueComparator, newElderTableModel, proxyControlContainer, registerLocale, runInZone, themeInit };
31104
+ export { ActivationEventSource, Arrays, AuditedEntity, AutoStartSpec, BlobUrl, BytesFormat, BytesPerSecondFormat, BytesPipe, CardDropEvent, CardOrganizerData, CardStack, CollectionUtil, ComparatorBuilder, ConfirmDialogConfig, ContinuableListing, CsvColumnSpec, CsvSerializer, CsvSpec, CsvStreamExporter, CsvStreamExporterBuilder, CsvStreamExporterBuilderService, Currency, CurrencyCode, 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, ELDER_DATA_VIEW, ELDER_SELECT_BASE, ElderAccessDeniedComponent, ElderAccessDeniedModule, ElderAppHeaderComponent, ElderAuditModule, ElderAuditedEntityComponent, ElderAutoSelectFirstDirective, ElderAutocompleteComponent, ElderAutocompleteDirective, ElderAutocompleteManyDirective, ElderAutocompleteModule, ElderBadgeComponent, ElderBadgeDirective, ElderBadgeModule, ElderBlobViewerComponent, ElderBreadCrumbsComponent, ElderBreadCrumbsModule, ElderButtonGroupComponent, ElderButtonGroupModule, ElderCardComponent, ElderCardContentDirective, ElderCardHeaderActionsDirective, ElderCardHeaderComponent, ElderCardModule, ElderCardOrganizerComponent, ElderCardOrganizerModule, ElderCardPanelComponent, ElderCardStackComponent, ElderCardSubtitleDirective, ElderCardTitleDirective, ElderCheckboxState, ElderChipLabelDirective, ElderChipListSelectComponent, ElderChipListSelectModule, 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, 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, ElderMultiSelectBase, ElderMultiSelectChipOptionsComponent, ElderMultiSelectChipsComponent, ElderMultiSelectFormField, ElderMultipleOfUtil, ElderMultipleOfValidator, ElderNavGroupComponent, ElderNavLinkComponent, ElderNavListComponent, ElderNavModule, ElderNextFocusableDirective, ElderNumberCellDirective, ElderOfflineIndicatorComponent, ElderOverlayComponent, ElderOverlayModule, ElderOverlayOriginDirective, 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, ElderSearchContextUrlBindingDirective, ElderSearchInputDirective, ElderSearchModule, ElderSearchPanelComponent, ElderSelectBase, ElderSelectChipAvatarDirective, ElderSelectChipDirective, ElderSelectComponent, ElderSelectComponentState, ElderSelectCustomInputDirective, ElderSelectFormField, ElderSelectModule, ElderSelectOnTabDirective, ElderSelectValueDirective, ElderSelectionDialogComponent, ElderSelectionDialogDirective, ElderSelectionMasterCheckboxComponent, ElderSelectionPopupTriggerAdapterDirective, ElderShellCenterDirective, ElderShellComponent, ElderShellModule, ElderShellNavigationToggleComponent, ElderShellService, ElderShellSideLeftDirective, ElderShellSideRightDirective, ElderShellSlotDirective, ElderSimpleSelectionViewComponent, ElderSimpleSelectionViewModule, ElderSingleSortComponent, ElderStackCardDirective, ElderStopEventPropagationDirective, 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, 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, ReactiveMap, 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, createDataOptionsProvider, createSelectionModel, existingOrNewElderTableModel, isActivePagedDataContext, isContinuableDataContext, isContinuableDataSource, isDataContext, isDataSource, isDataViewMessageType, isElderEntityValueAccessor, isElderMultiEntityValueAccessor, isListDataSource, isPagedDataSource, lazySample, lazySampleTime, naturalValueComparator, newElderTableModel, proxyControlContainer, registerLocale, runInZone, themeInit };
30783
31105
  //# sourceMappingURL=elderbyte-ngx-starter.mjs.map