@elderbyte/ngx-starter 16.2.11 → 16.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (31) 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-base.mjs +4 -1
  8. package/esm2022/lib/components/select/elder-select.module.mjs +11 -5
  9. package/esm2022/lib/components/select/multi/elder-multi-select-base.mjs +38 -4
  10. package/esm2022/lib/components/select/multi/elder-multi-select-chip-options/elder-multi-select-chip-options.component.mjs +281 -0
  11. package/esm2022/lib/components/select/multi/elder-multi-select-chip-options/select-option-chip-spec.mjs +15 -0
  12. package/esm2022/lib/components/select/multi/elder-multi-select-chips/elder-multi-select-chips.component.mjs +5 -50
  13. package/esm2022/lib/components/select/multi/elder-multi-select-chips/select-chip-spec.mjs +15 -2
  14. package/esm2022/lib/components/select/multi/elder-multi-select-form-field.mjs +8 -13
  15. package/esm2022/lib/components/select/multi/public_api.mjs +2 -1
  16. package/fesm2022/elderbyte-ngx-starter.mjs +475 -156
  17. package/fesm2022/elderbyte-ngx-starter.mjs.map +1 -1
  18. package/lib/components/forms/directives/elder-initial-value.directive.d.ts +11 -6
  19. package/lib/components/forms/search/elder-search-context.directive.d.ts +7 -17
  20. package/lib/components/forms/search/search-context-orchestrator.d.ts +29 -0
  21. package/lib/components/select/elder-select-base.d.ts +1 -0
  22. package/lib/components/select/elder-select.module.d.ts +26 -24
  23. package/lib/components/select/multi/elder-multi-select-base.d.ts +10 -0
  24. package/lib/components/select/multi/elder-multi-select-chip-options/elder-multi-select-chip-options.component.d.ts +102 -0
  25. package/lib/components/select/multi/elder-multi-select-chip-options/select-option-chip-spec.d.ts +10 -0
  26. package/lib/components/select/multi/elder-multi-select-chips/elder-multi-select-chips.component.d.ts +0 -10
  27. package/lib/components/select/multi/elder-multi-select-chips/select-chip-spec.d.ts +3 -0
  28. package/lib/components/select/multi/public_api.d.ts +1 -0
  29. package/package.json +1 -1
  30. package/src/lib/components/chips/_elder-chip-theme.scss +5 -2
  31. 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';
@@ -19033,6 +19033,9 @@ class ElderSelectBase extends ElderFormFieldControlBase {
19033
19033
  .pageSize(this.pageSize)
19034
19034
  .build(source);
19035
19035
  }
19036
+ get dataSource() {
19037
+ return this.dataContext?.dataSource;
19038
+ }
19036
19039
  set data(data) {
19037
19040
  this.autoCleanUp();
19038
19041
  if (data instanceof Array) {
@@ -21249,6 +21252,26 @@ class ElderMultiSelectBase extends ElderSelectBase {
21249
21252
  awaitEntitiesWithId(entityIds, timeoutMs) {
21250
21253
  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
21254
  }
21255
+ /***************************************************************************
21256
+ * *
21257
+ * Host Bindings *
21258
+ * *
21259
+ **************************************************************************/
21260
+ get hostClass() {
21261
+ return 'elder-select-base elder-multi-select';
21262
+ }
21263
+ get disabledClass() {
21264
+ return this.disabled;
21265
+ }
21266
+ get errorStateClass() {
21267
+ return this.errorState;
21268
+ }
21269
+ get requiredClass() {
21270
+ return this.required;
21271
+ }
21272
+ get emptyClass() {
21273
+ return this.empty;
21274
+ }
21252
21275
  /***************************************************************************
21253
21276
  * *
21254
21277
  * Properties *
@@ -21331,7 +21354,6 @@ class ElderMultiSelectBase extends ElderSelectBase {
21331
21354
  }, () => this.removeEntities(toRemove));
21332
21355
  }
21333
21356
  removeEntities(toRemove) {
21334
- console.warn("REMOVE");
21335
21357
  toRemove.forEach(e => this.removeEntity(e));
21336
21358
  }
21337
21359
  removeEntity(toRemove) {
@@ -21515,7 +21537,7 @@ class ElderMultiSelectBase extends ElderSelectBase {
21515
21537
  return entities;
21516
21538
  }
21517
21539
  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 }); }
21540
+ 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
21541
  }
21520
21542
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.11", ngImport: i0, type: ElderMultiSelectBase, decorators: [{
21521
21543
  type: Directive
@@ -21531,6 +21553,21 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.11", ngImpo
21531
21553
  type: Output
21532
21554
  }], entitiesUpdated: [{
21533
21555
  type: Output
21556
+ }], hostClass: [{
21557
+ type: HostBinding,
21558
+ args: ['class']
21559
+ }], disabledClass: [{
21560
+ type: HostBinding,
21561
+ args: ['class.mat-select-disabled']
21562
+ }], errorStateClass: [{
21563
+ type: HostBinding,
21564
+ args: ['class.mat-select-invalid']
21565
+ }], requiredClass: [{
21566
+ type: HostBinding,
21567
+ args: ['class.mat-select-required']
21568
+ }], emptyClass: [{
21569
+ type: HostBinding,
21570
+ args: ['class.mat-select-empty']
21534
21571
  }], entities: [{
21535
21572
  type: Input
21536
21573
  }], entityIds: [{
@@ -21580,6 +21617,21 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.11", ngImpo
21580
21617
  }]
21581
21618
  }], ctorParameters: function () { return [{ type: i0.TemplateRef }, { type: i0.ViewContainerRef }]; } });
21582
21619
 
21620
+ class SelectChipSpecUtil {
21621
+ static { this.DefaultChipSpec = {
21622
+ colorSpec: {
21623
+ themeColor: undefined,
21624
+ stateColor: undefined,
21625
+ levelColor: undefined
21626
+ },
21627
+ removable: undefined,
21628
+ avatarSpec: {
21629
+ hide: false,
21630
+ large: false
21631
+ }
21632
+ }; }
21633
+ }
21634
+
21583
21635
  class ElderClearSelectDirective {
21584
21636
  /***************************************************************************
21585
21637
  * *
@@ -21649,18 +21701,7 @@ class ElderMultiSelectChipsComponent extends ElderMultiSelectBase {
21649
21701
  **************************************************************************/
21650
21702
  constructor(hostRef, zone, focusMonitor, translateService, dialogService, ngControl) {
21651
21703
  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
- };
21704
+ this.defaultChipSpec = SelectChipSpecUtil.DefaultChipSpec;
21664
21705
  /**
21665
21706
  * Allows to customize each chip individually (Color, Removable, Avatar).
21666
21707
  *
@@ -21695,26 +21736,6 @@ class ElderMultiSelectChipsComponent extends ElderMultiSelectBase {
21695
21736
  };
21696
21737
  }));
21697
21738
  }
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
21739
  /***************************************************************************
21719
21740
  * *
21720
21741
  * Properties *
@@ -21825,7 +21846,7 @@ class ElderMultiSelectChipsComponent extends ElderMultiSelectBase {
21825
21846
  return new ChipModel(e, dPR(e), chipSpec?.colorSpec, removable, chipSpec.avatarSpec, chipSpec.trailingSpec);
21826
21847
  }
21827
21848
  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: [
21849
+ 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
21850
  { provide: MatFormFieldControl, useExisting: ElderMultiSelectChipsComponent },
21830
21851
  {
21831
21852
  provide: ELDER_SELECT_BASE,
@@ -21862,21 +21883,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.11", ngImpo
21862
21883
  }], _chipInput: [{
21863
21884
  type: ViewChild,
21864
21885
  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
21886
  }], chipTemplateQuery: [{
21881
21887
  type: ContentChild,
21882
21888
  args: [ElderSelectChipDirective, { read: TemplateRef, static: false }]
@@ -22047,6 +22053,278 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.11", ngImpo
22047
22053
  args: [SelectionModelPopupDirective]
22048
22054
  }] } });
22049
22055
 
22056
+ class SelectOptionChipSpecUtil {
22057
+ static { this.DefaultChipSpec = {
22058
+ colorSpec: {
22059
+ themeColor: undefined,
22060
+ stateColor: undefined,
22061
+ levelColor: undefined
22062
+ },
22063
+ locked: false,
22064
+ avatarSpec: {
22065
+ hide: false,
22066
+ large: false
22067
+ }
22068
+ }; }
22069
+ }
22070
+
22071
+ class ChipOptionModel {
22072
+ constructor(value, displayText, colorSpec, locked, avatarSpec, trailingSpec, selected) {
22073
+ this.value = value;
22074
+ this.displayText = displayText;
22075
+ this.colorSpec = colorSpec;
22076
+ this.locked = locked;
22077
+ this.avatarSpec = avatarSpec;
22078
+ this.trailingSpec = trailingSpec;
22079
+ this.selected = selected;
22080
+ }
22081
+ }
22082
+ class ElderMultiSelectChipOptionsComponent extends ElderMultiSelectBase {
22083
+ /***************************************************************************
22084
+ * *
22085
+ * Constructor *
22086
+ * *
22087
+ **************************************************************************/
22088
+ constructor(hostRef, zone, focusMonitor, translateService, dialogService, ngControl) {
22089
+ super(zone, hostRef, 'multi-select-chip-options', focusMonitor, translateService, dialogService, ngControl);
22090
+ /***************************************************************************
22091
+ * *
22092
+ * Fields *
22093
+ * *
22094
+ **************************************************************************/
22095
+ this.log = LoggerFactory.getLogger(this.constructor.name);
22096
+ this.chipTemplate$ = new BehaviorSubject(null);
22097
+ this.chipAvatarTemplate$ = new BehaviorSubject(null);
22098
+ this.defaultChipSpec = SelectOptionChipSpecUtil.DefaultChipSpec;
22099
+ /**
22100
+ * Allows to customize each chip individually (Color, Removable, Avatar).
22101
+ *
22102
+ */
22103
+ this.chipSpecFn = e => this.defaultChipSpec;
22104
+ this.stacked = false;
22105
+ this._multiple = false;
22106
+ const context$ = combineLatest([
22107
+ this.state$,
22108
+ this.displayPropertyResolver$,
22109
+ this.readonly$,
22110
+ this.disabled$
22111
+ ]).pipe(map(([state, dPR, readonly, disabled]) => {
22112
+ return {
22113
+ state: state,
22114
+ displayPropertyResolver: dPR,
22115
+ readonly: readonly,
22116
+ disabled: disabled
22117
+ };
22118
+ }));
22119
+ const available$ = this.dataContext$.pipe(filter(dc => !!dc), switchMap$1(dc => dc.data));
22120
+ this.selectChips$ = combineLatest([
22121
+ this.entities$,
22122
+ this.entityIds$,
22123
+ available$,
22124
+ context$
22125
+ ]).pipe(map(([entities, entityIds, available, context]) => this.buildChipModelsOrFallback(entities, entityIds, available, context)));
22126
+ this.templates$ = combineLatest([
22127
+ this.chipTemplate$,
22128
+ this.chipAvatarTemplate$
22129
+ ]).pipe(map(([chip, avatar]) => {
22130
+ return {
22131
+ chip,
22132
+ avatar
22133
+ };
22134
+ }));
22135
+ }
22136
+ /***************************************************************************
22137
+ * *
22138
+ * Properties *
22139
+ * *
22140
+ **************************************************************************/
22141
+ set multiple(val) {
22142
+ this._multiple = coerceBooleanProperty(val);
22143
+ if (!this._multiple && this.entities.length > 1) {
22144
+ this.selectEntity(this.entities[this.entities.length - 1]);
22145
+ }
22146
+ }
22147
+ get multiple() {
22148
+ return this._multiple;
22149
+ }
22150
+ set chipTemplateQuery(template) {
22151
+ this.chipTemplate = template;
22152
+ }
22153
+ set chipTemplate(template) {
22154
+ this.chipTemplate$.next(template);
22155
+ }
22156
+ get chipTemplate() {
22157
+ return this.chipTemplate$.getValue();
22158
+ }
22159
+ set chipAvatarTemplateQuery(template) {
22160
+ this.chipAvatarTemplate = template;
22161
+ }
22162
+ set chipAvatarTemplate(template) {
22163
+ this.chipAvatarTemplate$.next(template);
22164
+ }
22165
+ get chipAvatarTemplate() {
22166
+ return this.chipAvatarTemplate$.getValue();
22167
+ }
22168
+ get shouldLabelFloat() {
22169
+ return true;
22170
+ }
22171
+ /***************************************************************************
22172
+ * *
22173
+ * Public API *
22174
+ * *
22175
+ **************************************************************************/
22176
+ selectionChanged(changeEvent, entity) {
22177
+ /**/
22178
+ this.log.debug('selectionChanged', {
22179
+ changeEvent: changeEvent,
22180
+ entity: entity
22181
+ });
22182
+ if (changeEvent.isUserInput) {
22183
+ if (changeEvent.selected) {
22184
+ this.selectEntity(entity);
22185
+ }
22186
+ else {
22187
+ this.removeEntity(entity);
22188
+ }
22189
+ }
22190
+ }
22191
+ resolveChipValue(e1) {
22192
+ return this.getEntityId(e1);
22193
+ }
22194
+ focus(options) {
22195
+ if (this._listBox) {
22196
+ this._listBox.focus();
22197
+ }
22198
+ }
22199
+ blur() {
22200
+ this.log.warn('blur() not yet supported!');
22201
+ }
22202
+ /***************************************************************************
22203
+ * *
22204
+ * Protected API *
22205
+ * *
22206
+ **************************************************************************/
22207
+ /**
22208
+ * Automatically start DC if not yet started
22209
+ * @param data
22210
+ * @protected
22211
+ */
22212
+ onDataContextChanged(data) {
22213
+ if (data) {
22214
+ if (!data.isStarted) {
22215
+ data.start(this.sorts, this.filters).subscribe({
22216
+ next: () => {
22217
+ super.onDataContextChanged(data);
22218
+ }
22219
+ });
22220
+ }
22221
+ else {
22222
+ super.onDataContextChanged(data);
22223
+ }
22224
+ }
22225
+ }
22226
+ /***************************************************************************
22227
+ * *
22228
+ * Private methods *
22229
+ * *
22230
+ **************************************************************************/
22231
+ selectEntity(entity) {
22232
+ const idToSelect = this.getEntityId(entity);
22233
+ if (!this.multiple) {
22234
+ this.removeEntities(this.entities.filter(e => this.getEntityId(e) !== idToSelect));
22235
+ }
22236
+ if (!this.isEntityIdSelected(idToSelect)) {
22237
+ this.appendEntity(entity);
22238
+ }
22239
+ }
22240
+ isEntityIdSelected(entityId) {
22241
+ return this.entities.some(e => this.getEntityId(e) == entityId);
22242
+ }
22243
+ buildChipModelsOrFallback(entities, entityIds, available, context) {
22244
+ if (context.state.error) {
22245
+ return this.buildChipFallbackModels(entityIds, context);
22246
+ }
22247
+ return this.buildChipModels(available, entities, context);
22248
+ }
22249
+ buildChipFallbackModels(entityIds, context) {
22250
+ context.displayPropertyResolver = x => x.id;
22251
+ return entityIds.map(id => this.buildChipBySpec({ id: id }, context, {
22252
+ colorSpec: {
22253
+ themeColor: 'warn'
22254
+ },
22255
+ avatarSpec: {
22256
+ hide: false,
22257
+ large: false
22258
+ }
22259
+ }, false // TODO
22260
+ ));
22261
+ }
22262
+ buildChipModels(availables, entities, context) {
22263
+ if (availables) {
22264
+ const selectedIds = new Set(entities.map(e => this.getEntityId(e)));
22265
+ return availables.map(available => this.buildChipBySpec(available, context, this.chipSpecFn(available) ?? this.defaultChipSpec, selectedIds.has(this.getEntityId(available))));
22266
+ }
22267
+ else {
22268
+ return [];
22269
+ }
22270
+ }
22271
+ buildChipBySpec(e, context, chipSpec, selected) {
22272
+ let locked = false;
22273
+ if (this.isLocked) {
22274
+ locked = true;
22275
+ }
22276
+ else {
22277
+ locked = chipSpec.locked;
22278
+ }
22279
+ return new ChipOptionModel(e, context.displayPropertyResolver(e), {
22280
+ themeColor: selected ? 'accent' : undefined
22281
+ }, locked, chipSpec.avatarSpec, chipSpec.trailingSpec, selected);
22282
+ }
22283
+ 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 }); }
22284
+ 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: [
22285
+ { provide: MatFormFieldControl, useExisting: ElderMultiSelectChipOptionsComponent },
22286
+ {
22287
+ provide: ELDER_SELECT_BASE,
22288
+ useExisting: forwardRef(() => ElderMultiSelectChipOptionsComponent)
22289
+ }
22290
+ ], 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 }); }
22291
+ }
22292
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.11", ngImport: i0, type: ElderMultiSelectChipOptionsComponent, decorators: [{
22293
+ type: Component,
22294
+ args: [{ selector: 'elder-multi-select-chip-options', changeDetection: ChangeDetectionStrategy.OnPush, providers: [
22295
+ { provide: MatFormFieldControl, useExisting: ElderMultiSelectChipOptionsComponent },
22296
+ {
22297
+ provide: ELDER_SELECT_BASE,
22298
+ useExisting: forwardRef(() => ElderMultiSelectChipOptionsComponent)
22299
+ }
22300
+ ], 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"] }]
22301
+ }], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i0.NgZone }, { type: i1$1.FocusMonitor }, { type: i2.TranslateService }, { type: ElderDialogService }, { type: i3.NgControl, decorators: [{
22302
+ type: Optional
22303
+ }, {
22304
+ type: Self
22305
+ }] }]; }, propDecorators: { defaultChipSpec: [{
22306
+ type: Input
22307
+ }], chipSpecFn: [{
22308
+ type: Input
22309
+ }], stacked: [{
22310
+ type: Input
22311
+ }], _listBox: [{
22312
+ type: ViewChild,
22313
+ args: [MatChipListbox]
22314
+ }], multiple: [{
22315
+ type: Input
22316
+ }], chipTemplateQuery: [{
22317
+ type: ContentChild,
22318
+ args: [ElderSelectChipDirective, { read: TemplateRef, static: false }]
22319
+ }], chipTemplate: [{
22320
+ type: Input
22321
+ }], chipAvatarTemplateQuery: [{
22322
+ type: ContentChild,
22323
+ args: [ElderSelectChipAvatarDirective, { read: TemplateRef, static: false }]
22324
+ }], chipAvatarTemplate: [{
22325
+ type: Input
22326
+ }] } });
22327
+
22050
22328
  class ElderSelectModule {
22051
22329
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.11", ngImport: i0, type: ElderSelectModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
22052
22330
  static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "16.2.11", ngImport: i0, type: ElderSelectModule, declarations: [ElderSelectComponent,
@@ -22060,7 +22338,8 @@ class ElderSelectModule {
22060
22338
  ElderSelectChipAvatarDirective,
22061
22339
  ElderAutoSelectFirstDirective,
22062
22340
  ElderClearSelectDirective,
22063
- ElderSelectCustomInputDirective], imports: [CommonModule, FormsModule, ReactiveFormsModule,
22341
+ ElderSelectCustomInputDirective,
22342
+ ElderMultiSelectChipOptionsComponent], imports: [CommonModule, FormsModule, ReactiveFormsModule,
22064
22343
  MatFormFieldModule,
22065
22344
  MatIconModule,
22066
22345
  MatSelectModule,
@@ -22083,7 +22362,8 @@ class ElderSelectModule {
22083
22362
  ElderSelectChipAvatarDirective,
22084
22363
  ElderAutoSelectFirstDirective,
22085
22364
  ElderClearSelectDirective,
22086
- ElderSelectCustomInputDirective] }); }
22365
+ ElderSelectCustomInputDirective,
22366
+ ElderMultiSelectChipOptionsComponent] }); }
22087
22367
  static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "16.2.11", ngImport: i0, type: ElderSelectModule, imports: [CommonModule, FormsModule, ReactiveFormsModule,
22088
22368
  MatFormFieldModule,
22089
22369
  MatIconModule,
@@ -22129,7 +22409,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.11", ngImpo
22129
22409
  ElderSelectChipAvatarDirective,
22130
22410
  ElderAutoSelectFirstDirective,
22131
22411
  ElderClearSelectDirective,
22132
- ElderSelectCustomInputDirective
22412
+ ElderSelectCustomInputDirective,
22413
+ ElderMultiSelectChipOptionsComponent
22133
22414
  ],
22134
22415
  exports: [
22135
22416
  ElderSelectComponent,
@@ -22142,7 +22423,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.11", ngImpo
22142
22423
  ElderSelectChipAvatarDirective,
22143
22424
  ElderAutoSelectFirstDirective,
22144
22425
  ElderClearSelectDirective,
22145
- ElderSelectCustomInputDirective
22426
+ ElderSelectCustomInputDirective,
22427
+ ElderMultiSelectChipOptionsComponent
22146
22428
  ]
22147
22429
  }]
22148
22430
  }] });
@@ -25540,6 +25822,58 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.11", ngImpo
25540
25822
  type: Input
25541
25823
  }] } });
25542
25824
 
25825
+ class SearchContextOrchestrator {
25826
+ /***************************************************************************
25827
+ * *
25828
+ * Constructor *
25829
+ * *
25830
+ **************************************************************************/
25831
+ constructor(filterContext, forcedFilters) {
25832
+ this.filterContext = filterContext;
25833
+ this.forcedFilters = forcedFilters;
25834
+ this.initialFilterContext = new FilterContext();
25835
+ this.log = LoggerFactory.getLogger(this.constructor.name);
25836
+ this.initialFilterContext.updateFilters(filterContext.filtersSnapshot);
25837
+ if (forcedFilters) {
25838
+ this.initialFilterContext.updateFilters(forcedFilters);
25839
+ }
25840
+ }
25841
+ /***************************************************************************
25842
+ * *
25843
+ * Properties *
25844
+ * *
25845
+ **************************************************************************/
25846
+ get initialFilters$() {
25847
+ return this.initialFilterContext.filters
25848
+ .pipe(startWith(this.initialFilterContext.filtersSnapshot));
25849
+ }
25850
+ get filters() {
25851
+ return this.filterContext.filters;
25852
+ }
25853
+ /***************************************************************************
25854
+ * *
25855
+ * Public Api *
25856
+ * *
25857
+ **************************************************************************/
25858
+ addInitialFilters(filters) {
25859
+ this.initialFilterContext.updateFilters(filters);
25860
+ }
25861
+ applyFilters(userFilters) {
25862
+ const context = this.filterContext;
25863
+ if (context) {
25864
+ context.updateFilters(userFilters);
25865
+ context.mergeFilters(this.forcedFilters);
25866
+ this.log.trace("Search-Model filters updated:", Array.from(context.filtersSnapshot));
25867
+ }
25868
+ else {
25869
+ this.log.warn("Failed to apply filters since no FilterContext is available!", {
25870
+ userFilters: userFilters,
25871
+ forcedFilters: this.forcedFilters
25872
+ });
25873
+ }
25874
+ }
25875
+ }
25876
+
25543
25877
  /**
25544
25878
  * The search container manages a group of search-inputs
25545
25879
  * and holds their values in a central search model.
@@ -25551,14 +25885,11 @@ class ElderSearchContextDirective {
25551
25885
  * Fields *
25552
25886
  * *
25553
25887
  **************************************************************************/
25554
- this.forcedFilters$ = new BehaviorSubject$1([]);
25555
- this.startFilters$ = new BehaviorSubject$1([]);
25888
+ this._forcedFilters$ = new BehaviorSubject$1([]);
25556
25889
  this.log = LoggerFactory.getLogger(this.constructor.name);
25557
25890
  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([]);
25891
+ this._searchInputs$ = new BehaviorSubject$1([]);
25892
+ this._searchStates$ = new BehaviorSubject$1([]);
25562
25893
  }
25563
25894
  /***************************************************************************
25564
25895
  * *
@@ -25566,11 +25897,10 @@ class ElderSearchContextDirective {
25566
25897
  * *
25567
25898
  **************************************************************************/
25568
25899
  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);
25900
+ this._searchInputs$.pipe(takeUntil(this.destroy$), switchMap(inputs => combineLatest(inputs.map(i => i.state$))), debounceTime(5)).subscribe((states) => {
25901
+ this._searchStates$.next(states);
25571
25902
  const userFilters = this.convertToFilters(states);
25572
- this._filters$.next(userFilters);
25573
- this.applyFilters(userFilters, forcedFilters);
25903
+ this.searchContextOrchestrator.applyFilters(userFilters);
25574
25904
  });
25575
25905
  }
25576
25906
  ngAfterViewInit() {
@@ -25579,6 +25909,7 @@ class ElderSearchContextDirective {
25579
25909
  ngOnDestroy() {
25580
25910
  this.destroy$.next();
25581
25911
  this.destroy$.complete();
25912
+ this._searchContextOrchestrator = null;
25582
25913
  }
25583
25914
  /***************************************************************************
25584
25915
  * *
@@ -25588,7 +25919,7 @@ class ElderSearchContextDirective {
25588
25919
  set filterContext(value) {
25589
25920
  if (value) {
25590
25921
  if (typeof value !== 'string') {
25591
- this._filterContext = value;
25922
+ this._searchContextOrchestrator = new SearchContextOrchestrator(value, this.forcedFilters);
25592
25923
  }
25593
25924
  else {
25594
25925
  this.log.warn('Illegal value provided for property filterContext: ', JSON.stringify(value));
@@ -25596,11 +25927,11 @@ class ElderSearchContextDirective {
25596
25927
  }
25597
25928
  }
25598
25929
  else {
25599
- this._filterContext = null;
25930
+ this._searchContextOrchestrator = new SearchContextOrchestrator(null);
25600
25931
  }
25601
25932
  }
25602
25933
  get filterContext() {
25603
- return this._filterContext;
25934
+ return this.searchContextOrchestrator.filterContext;
25604
25935
  }
25605
25936
  /**
25606
25937
  * Forced filters are always merged into the final FilterContext.
@@ -25609,25 +25940,25 @@ class ElderSearchContextDirective {
25609
25940
  * to also keep the users intent (by merging) them.
25610
25941
  */
25611
25942
  set forcedFilters(filters) {
25612
- this.forcedFilters$.next(filters);
25943
+ this._forcedFilters$.next(filters);
25613
25944
  }
25614
25945
  get forcedFilters() {
25615
- return this.forcedFilters$.getValue();
25616
- }
25617
- set startFilters(filters) {
25618
- this.startFilters$.next(filters);
25946
+ return this._forcedFilters$.getValue();
25619
25947
  }
25620
25948
  get attributes() {
25621
- return this._searchInputs.asObservable();
25949
+ return this._searchInputs$.asObservable();
25622
25950
  }
25623
25951
  get attributesSnapshot() {
25624
- return this._searchInputs.getValue();
25952
+ return this._searchInputs$.getValue();
25625
25953
  }
25626
25954
  get states$() {
25627
- return this._searchStates.asObservable();
25955
+ return this._searchStates$.asObservable();
25628
25956
  }
25629
25957
  get statesSnapshot() {
25630
- return this._searchStates.getValue();
25958
+ return this._searchStates$.getValue();
25959
+ }
25960
+ get searchContextOrchestrator() {
25961
+ return this._searchContextOrchestrator;
25631
25962
  }
25632
25963
  /**
25633
25964
  * Returns the current user touched attributes. (ignoring fallbacks)
@@ -25635,18 +25966,6 @@ class ElderSearchContextDirective {
25635
25966
  get userDefinedAttributes$() {
25636
25967
  return this.states$.pipe(map(states => states.filter(s => !s.pristine)));
25637
25968
  }
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
25969
  /***************************************************************************
25651
25970
  * *
25652
25971
  * Public API *
@@ -25657,8 +25976,8 @@ class ElderSearchContextDirective {
25657
25976
  */
25658
25977
  register(searchInput) {
25659
25978
  this.log.debug('Registering search input [' + searchInput.name + ']');
25660
- const current = this._searchInputs.getValue();
25661
- this._searchInputs.next([...current, searchInput]);
25979
+ const current = this._searchInputs$.getValue();
25980
+ this._searchInputs$.next([...current, searchInput]);
25662
25981
  }
25663
25982
  reset() {
25664
25983
  this.attributesSnapshot
@@ -25667,19 +25986,15 @@ class ElderSearchContextDirective {
25667
25986
  a.reset();
25668
25987
  });
25669
25988
  }
25670
- registerInitialFilters(filters) {
25671
- this._initialFilters$.next(filters);
25672
- }
25673
25989
  /***************************************************************************
25674
25990
  * *
25675
25991
  * Private *
25676
25992
  * *
25677
25993
  **************************************************************************/
25678
25994
  subscribeInitialFilters() {
25679
- this.initialFilters$.pipe(takeUntil(this.destroy$), combineLatestWith(this._searchInputs, this.startFilters$)).subscribe(([initialFilters, searchInputs, startFilters]) => {
25680
- var filters = [...initialFilters, ...startFilters];
25995
+ this.searchContextOrchestrator.initialFilters$.pipe(takeUntil(this.destroy$), combineLatestWith(this._searchInputs$)).subscribe(([initialFilters, searchInputs]) => {
25681
25996
  searchInputs.forEach(input => {
25682
- const filter = this.findFilterForInput(input, filters);
25997
+ const filter = this.findFilterForInput(input, initialFilters);
25683
25998
  if (filter) {
25684
25999
  input.applyInitialValue(filter.value);
25685
26000
  }
@@ -25699,22 +26014,8 @@ class ElderSearchContextDirective {
25699
26014
  .filter(s => !!s.queryKey)
25700
26015
  .map(s => new Filter(s.queryKey, s.queryValue));
25701
26016
  }
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
26017
  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 }); }
26018
+ 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
26019
  }
25719
26020
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.11", ngImport: i0, type: ElderSearchContextDirective, decorators: [{
25720
26021
  type: Directive,
@@ -25727,8 +26028,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.11", ngImpo
25727
26028
  args: ['elderSearchContext']
25728
26029
  }], forcedFilters: [{
25729
26030
  type: Input
25730
- }], startFilters: [{
25731
- type: Input
25732
26031
  }] } });
25733
26032
 
25734
26033
  /**
@@ -25821,6 +26120,8 @@ class ElderInitialValueDirective {
25821
26120
  * *
25822
26121
  **************************************************************************/
25823
26122
  constructor(ngModel) {
26123
+ //TODO: The debounce time is a hacky workaround, find a proper way to set initial value.
26124
+ // Currently two way binding ngModel deosnt work.
25824
26125
  this.ngModel = ngModel;
25825
26126
  /***************************************************************************
25826
26127
  * *
@@ -25828,29 +26129,51 @@ class ElderInitialValueDirective {
25828
26129
  * *
25829
26130
  **************************************************************************/
25830
26131
  this.log = LoggerFactory.getLogger(this.constructor.name);
25831
- this.newValue$ = new BehaviorSubject(null); // Initial Value or NewValue ???
25832
- this.unsubscribe$ = new Subject();
26132
+ this.initialValue$ = new BehaviorSubject(null);
26133
+ this.destroy$ = new Subject();
25833
26134
  this.initialDone$ = new Subject();
25834
26135
  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
- });
26136
+ const ngModelValue$ = of("dummy")
26137
+ .pipe(delay(10), map(() => this.ngModel.model));
26138
+ ngModelValue$
26139
+ .pipe(combineLatestWith$1(this.initialValue$), takeUntil(this.initialDone$), takeUntil(this.destroy$)).subscribe({
26140
+ next: ([ngModelValue, initialValue]) => {
26141
+ this.log.warn("initialValue: " + initialValue);
26142
+ if (initialValue) {
26143
+ ngModel.control.setValue(initialValue);
25850
26144
  }
26145
+ this.initialDone$.next();
26146
+ this.initialDone$.complete();
25851
26147
  }
25852
26148
  });
26149
+ // this.ngModelValue = this.ngModel.model;
26150
+ // ngModel.control.valueChanges
26151
+ // .pipe(
26152
+ // takeUntil(this.initialDone$),
26153
+ // takeUntil(this.unsubscribe$),
26154
+ // combineLatestWith(this.newValue$),
26155
+ // debounceTime(500)
26156
+ // ).subscribe({
26157
+ // next: ([ngModelValue, newValue]) => {
26158
+ // if (this.initialValue === ngModelValue) {
26159
+ // this.initialDone$.next();
26160
+ // this.initialDone$.complete();
26161
+ // ngModel.control.setValue(newValue ? newValue : ngModelValue); // Why set ngModelValue again??
26162
+ // } else {
26163
+ // this.log.warn('Initialisation not yet done!', {
26164
+ // initialValue: this.initialValue,
26165
+ // ngModelValue: ngModelValue,
26166
+ // newValue: newValue
26167
+ // });
26168
+ // }
26169
+ // }
26170
+ // });
25853
26171
  }
26172
+ /***************************************************************************
26173
+ * *
26174
+ * Life Cycle *
26175
+ * *
26176
+ **************************************************************************/
25854
26177
  /***************************************************************************
25855
26178
  * *
25856
26179
  * Properties *
@@ -25858,14 +26181,16 @@ class ElderInitialValueDirective {
25858
26181
  **************************************************************************/
25859
26182
  get valueChanges$() {
25860
26183
  return this.ngModel.control.valueChanges
25861
- .pipe(skipUntil(this.initialDone$), filter$1(value => this.filterInitialValue(value)));
26184
+ .pipe(takeUntil(this.destroy$)
26185
+ //filter(value => this.filterInitialValue(value))
26186
+ );
25862
26187
  }
25863
- setInitialValue(value) {
25864
- this.newValue$.next(value); // Initial Value or NewValue ???
26188
+ applyInitialValue(value) {
26189
+ this.initialValue$.next(value);
25865
26190
  }
25866
26191
  ngOnDestroy() {
25867
- this.unsubscribe$.next();
25868
- this.unsubscribe$.complete();
26192
+ this.destroy$.next();
26193
+ this.destroy$.complete();
25869
26194
  }
25870
26195
  /***************************************************************************
25871
26196
  * *
@@ -25873,7 +26198,7 @@ class ElderInitialValueDirective {
25873
26198
  * *
25874
26199
  **************************************************************************/
25875
26200
  filterInitialValue(value) {
25876
- if (this.isInitial && this.initialValue === value) {
26201
+ if (this.isInitial && this.ngModelValue$ === value) {
25877
26202
  this.isInitial = false;
25878
26203
  return false;
25879
26204
  }
@@ -25885,8 +26210,8 @@ class ElderInitialValueDirective {
25885
26210
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.11", ngImport: i0, type: ElderInitialValueDirective, decorators: [{
25886
26211
  type: Directive,
25887
26212
  args: [{
25888
- selector: '[elderInitialValue]',
25889
- exportAs: 'elderInitialValue',
26213
+ selector: "[elderInitialValue]",
26214
+ exportAs: "elderInitialValue"
25890
26215
  }]
25891
26216
  }], ctorParameters: function () { return [{ type: i3.NgModel, decorators: [{
25892
26217
  type: Host
@@ -25964,7 +26289,7 @@ class ElderSearchInputDirective {
25964
26289
  **************************************************************************/
25965
26290
  applyInitialValue(queryString) {
25966
26291
  const value = this.convertQueryStringToRawModelValue(queryString);
25967
- this.initialValueDirective.setInitialValue(value);
26292
+ this.initialValueDirective.applyInitialValue(value);
25968
26293
  }
25969
26294
  reset() {
25970
26295
  this.ngModel.reset();
@@ -26729,9 +27054,9 @@ class ElderSearchContextUrlBindingDirective {
26729
27054
  **************************************************************************/
26730
27055
  ngAfterViewInit() {
26731
27056
  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);
27057
+ this.searchContext.searchContextOrchestrator.addInitialFilters(filters);
26733
27058
  });
26734
- this.searchContext.filters$.pipe(takeUntil(this._unsubscribe$)).subscribe(filters => this.urlBindingService.updateFiltersForContext(this._urlBinding, filters));
27059
+ this.searchContext.searchContextOrchestrator.filters.pipe(takeUntil(this._unsubscribe$)).subscribe(filters => this.urlBindingService.updateFiltersForContext(this._urlBinding, filters));
26735
27060
  }
26736
27061
  ngOnDestroy() {
26737
27062
  this._unsubscribe$.next();
@@ -28084,18 +28409,6 @@ class ElderMultiSelectFormField extends ElderFromFieldMultiEntityBase {
28084
28409
  control.selectionPopup = this.selectionModelPopupDirective;
28085
28410
  }
28086
28411
  }
28087
- /*
28088
- if (control instanceof ElderMultiSelectChipsComponent) {
28089
- if (this.selectChipDirective) {
28090
- control.chipTemplate = this.selectChipDirective.templateRef;
28091
- }
28092
- if (this.selectChipAvatarDirective) {
28093
- control.chipAvatarTemplate = this.selectChipAvatarDirective.templateRef;
28094
- }
28095
- if (this.selectCustomInputDirective) {
28096
- control.customInputTemplate = this.selectCustomInputDirective.templateRef;
28097
- }
28098
- }*/
28099
28412
  }
28100
28413
  /***************************************************************************
28101
28414
  * *
@@ -28107,12 +28420,18 @@ class ElderMultiSelectFormField extends ElderFromFieldMultiEntityBase {
28107
28420
  if (control instanceof ElderMultiSelectChipsComponent) {
28108
28421
  control.chipTemplate = dir?.templateRef;
28109
28422
  }
28423
+ if (control instanceof ElderMultiSelectChipOptionsComponent) {
28424
+ control.chipTemplate = dir?.templateRef;
28425
+ }
28110
28426
  }
28111
28427
  set selectChipAvatarDirective(dir) {
28112
28428
  const control = this.formFieldControl$.getValue();
28113
28429
  if (control instanceof ElderMultiSelectChipsComponent) {
28114
28430
  control.chipAvatarTemplate = dir?.templateRef;
28115
28431
  }
28432
+ if (control instanceof ElderMultiSelectChipOptionsComponent) {
28433
+ control.chipAvatarTemplate = dir?.templateRef;
28434
+ }
28116
28435
  }
28117
28436
  set selectCustomInputDirective(dir) {
28118
28437
  const control = this.formFieldControl$.getValue();
@@ -30779,5 +31098,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.11", ngImpo
30779
31098
  * Generated bundle index. Do not edit.
30780
31099
  */
30781
31100
 
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 };
31101
+ 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
31102
  //# sourceMappingURL=elderbyte-ngx-starter.mjs.map