@elderbyte/ngx-starter 20.8.1 → 20.8.2

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.
@@ -5,7 +5,7 @@ import { Pipe, LOCALE_ID, Inject, NgModule, Injectable, inject, Optional, SkipSe
5
5
  import * as i1 from '@angular/platform-browser';
6
6
  import { Duration, Period, TemporalQueries, LocalTime, Instant, LocalDate, nativeJs, ZoneId, DateTimeFormatter, convert, ZonedDateTime, Temporal as Temporal$1 } from '@js-joda/core';
7
7
  import { LoggerFactory } from '@elderbyte/ts-logger';
8
- import { timer, defer, ReplaySubject, concat, finalize, exhaustMap, BehaviorSubject, Subject, switchMap, of, combineLatest, EMPTY, merge, throwError, forkJoin, mergeWith, Observable, from, toArray, zip, mergeMap as mergeMap$1, fromEvent, mergeAll, skipUntil, map as map$1, combineLatestWith as combineLatestWith$1, NEVER } from 'rxjs';
8
+ import { timer, defer, ReplaySubject, concat, finalize, exhaustMap, BehaviorSubject, Subject, switchMap, of, combineLatest, EMPTY, merge, throwError, forkJoin, mergeWith, Observable, from, toArray, zip, mergeMap as mergeMap$1, fromEvent, mergeAll, skipUntil, filter as filter$1, map as map$1, combineLatestWith as combineLatestWith$1, NEVER } from 'rxjs';
9
9
  import { tap, takeUntil, takeWhile, map, filter, distinctUntilChanged, debounceTime, catchError, first, take, switchMap as switchMap$1, mergeMap, expand, reduce, combineLatestWith, startWith, skip, delay, share, skipWhile, timeout } from 'rxjs/operators';
10
10
  import { Temporal } from '@js-temporal/polyfill';
11
11
  import * as i1$1 from '@angular/common/http';
@@ -8491,6 +8491,10 @@ class FocusUtil {
8491
8491
 
8492
8492
  const booleanTransformFn = (input) => coerceBooleanProperty(input);
8493
8493
 
8494
+ const someSignal = (items, fn) => {
8495
+ return items.map(fn).some(Boolean);
8496
+ };
8497
+
8494
8498
  var SelectionEventSource;
8495
8499
  (function (SelectionEventSource) {
8496
8500
  SelectionEventSource["USER_MOUSE_CLICK"] = "USER_MOUSE_CLICK";
@@ -28750,241 +28754,231 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.1", ngImpor
28750
28754
  class ElderNavListComponent {
28751
28755
  /***************************************************************************
28752
28756
  * *
28753
- * Constructor *
28757
+ * Constructor *
28754
28758
  * *
28755
28759
  **************************************************************************/
28756
28760
  constructor() {
28761
+ this.value = input(null, ...(ngDevMode ? [{ debugName: "value" }] : []));
28762
+ /**
28763
+ * Function to compare the option values with the selected values. The first argument
28764
+ * is a value from an item option. The second is the current value.
28765
+ */
28766
+ this.compareWith = input(null, ...(ngDevMode ? [{ debugName: "compareWith" }] : []));
28767
+ this.valueChange = output();
28757
28768
  /***************************************************************************
28758
28769
  * *
28759
- * Fields *
28770
+ * State *
28771
+ * *
28772
+ **************************************************************************/
28773
+ this.activeValueInternal = signal(null, ...(ngDevMode ? [{ debugName: "activeValueInternal" }] : []));
28774
+ /***************************************************************************
28775
+ * *
28776
+ * Computed *
28760
28777
  * *
28761
28778
  **************************************************************************/
28762
- this._valueChange = new BehaviorSubject(null);
28779
+ this.activeValue = this.activeValueInternal.asReadonly();
28780
+ const valueChange = toObservable(this.value).pipe(takeUntilDestroyed());
28781
+ valueChange.subscribe((value) => {
28782
+ this.activeValueInternal.set(value);
28783
+ });
28784
+ const activeValueChange = toObservable(this.activeValueInternal).pipe(takeUntilDestroyed());
28785
+ activeValueChange.subscribe((activeValue) => {
28786
+ this.valueChange.emit(activeValue);
28787
+ });
28763
28788
  }
28764
28789
  /***************************************************************************
28765
28790
  * *
28766
- * Properties *
28791
+ * Public Api *
28767
28792
  * *
28768
28793
  **************************************************************************/
28769
- /**
28770
- * Emits when the value changes.
28771
- */
28772
- get valueChange() {
28773
- return this._valueChange.pipe(skip(1));
28774
- }
28775
- /**
28776
- * Sets the current selected value
28777
- */
28778
- set value(value) {
28779
- this._valueChange.next(value);
28780
- }
28781
- /**
28782
- * Gets the current selected value
28783
- */
28784
- get value() {
28785
- return this._valueChange.value;
28794
+ setActiveValue(value) {
28795
+ this.activeValueInternal.set(value);
28786
28796
  }
28787
28797
  /***************************************************************************
28788
28798
  * *
28789
- * Public API *
28799
+ * Private Methods *
28790
28800
  * *
28791
28801
  **************************************************************************/
28792
- isActive(value) {
28793
- if (this.compareWith) {
28794
- return this.compareWith(value, this.value);
28795
- }
28796
- else {
28797
- return value === this.value;
28802
+ valuesEqual(value1, value2) {
28803
+ if (this.compareWith()) {
28804
+ return this.compareWith()(value1, value2);
28798
28805
  }
28806
+ return value1 === value2;
28799
28807
  }
28800
28808
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.1", ngImport: i0, type: ElderNavListComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
28801
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.1", type: ElderNavListComponent, isStandalone: true, selector: "elder-nav-list", inputs: { compareWith: "compareWith", value: "value" }, outputs: { valueChange: "valueChange" }, ngImport: i0, template: "<div class=\"layout-col full elder-nav-list-full\">\n <div class=\"layout-col p-sm flex scrollable\" style=\"overflow-y: scroll\">\n <ng-content></ng-content>\n </div>\n</div>\n", styles: [":host{min-width:0;min-height:0}.elder-nav-list-full{min-width:120px}.elder-nav-list-full:focus{outline:none}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
28809
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "20.3.1", type: ElderNavListComponent, isStandalone: true, selector: "elder-nav-list", inputs: { value: { classPropertyName: "value", publicName: "value", isSignal: true, isRequired: false, transformFunction: null }, compareWith: { classPropertyName: "compareWith", publicName: "compareWith", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { valueChange: "valueChange" }, ngImport: i0, template: "<div class=\"layout-col full elder-nav-list-full\">\n <div class=\"layout-col p-sm flex scrollable\" style=\"overflow-y: scroll\">\n <ng-content></ng-content>\n </div>\n</div>\n", styles: [":host{min-width:0;min-height:0}.elder-nav-list-full{min-width:120px}.elder-nav-list-full:focus{outline:none}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
28802
28810
  }
28803
28811
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.1", ngImport: i0, type: ElderNavListComponent, decorators: [{
28804
28812
  type: Component,
28805
28813
  args: [{ selector: 'elder-nav-list', changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, template: "<div class=\"layout-col full elder-nav-list-full\">\n <div class=\"layout-col p-sm flex scrollable\" style=\"overflow-y: scroll\">\n <ng-content></ng-content>\n </div>\n</div>\n", styles: [":host{min-width:0;min-height:0}.elder-nav-list-full{min-width:120px}.elder-nav-list-full:focus{outline:none}\n"] }]
28806
- }], ctorParameters: () => [], propDecorators: { compareWith: [{
28807
- type: Input
28808
- }], valueChange: [{
28809
- type: Output
28810
- }], value: [{
28811
- type: Input
28812
- }] } });
28814
+ }], ctorParameters: () => [] });
28813
28815
 
28814
- class NavItemModel {
28815
- constructor(routerLink, href, hrefTarget) {
28816
- this.routerLink = routerLink;
28817
- this.href = href;
28818
- this.hrefTarget = hrefTarget;
28819
- }
28820
- }
28821
28816
  class NavItemActivated {
28822
28817
  constructor(event, value) {
28823
28818
  this.event = event;
28824
28819
  this.value = value;
28825
28820
  }
28826
28821
  }
28822
+ class ActivatedRoute {
28823
+ constructor(route) {
28824
+ this.route = route;
28825
+ }
28826
+ }
28827
28827
  class ElderNavLinkComponent {
28828
+ /***************************************************************************
28829
+ * *
28830
+ * ViewChild *
28831
+ * *
28832
+ **************************************************************************/
28833
+ set routerLinkActive(rla) {
28834
+ this.routerLinkActiveState.set(rla);
28835
+ }
28828
28836
  /***************************************************************************
28829
28837
  * *
28830
28838
  * Constructor *
28831
28839
  * *
28832
28840
  **************************************************************************/
28833
- constructor(navList) {
28834
- this.navList = navList;
28841
+ constructor() {
28835
28842
  /***************************************************************************
28836
28843
  * *
28837
28844
  * Fields *
28838
28845
  * *
28839
28846
  **************************************************************************/
28840
- this.tabIndex = -1;
28841
- this.queryParams = {};
28842
- this.activated = new Subject();
28843
- this._disabled = false;
28844
- this._routerLink$ = new BehaviorSubject('');
28845
- this._href$ = new BehaviorSubject('');
28846
- this._target$ = new BehaviorSubject('_blank');
28847
- this._routerLinkActive$ = new BehaviorSubject(undefined);
28848
- this._active$ = new BehaviorSubject(false);
28849
- this.destroy$ = new Subject();
28850
- this.model$ = this._routerLink$.pipe(combineLatestWith(this._href$), combineLatestWith(this._target$), map(([[routerLink, href], target]) => new NavItemModel(routerLink, href, target)));
28847
+ this.navList = inject(ElderNavListComponent);
28848
+ this.destroyRef = inject(DestroyRef);
28849
+ /**
28850
+ * "value" is used as a key for the nav list active state.
28851
+ * It is typically used when no routerLink is provided.
28852
+ */
28853
+ this.value = input(null, ...(ngDevMode ? [{ debugName: "value" }] : []));
28854
+ this.title = input('', ...(ngDevMode ? [{ debugName: "title" }] : []));
28855
+ this.fontIcon = input('', ...(ngDevMode ? [{ debugName: "fontIcon" }] : []));
28856
+ this.fontSet = input('', ...(ngDevMode ? [{ debugName: "fontSet" }] : []));
28857
+ this.icon = input('', ...(ngDevMode ? [{ debugName: "icon" }] : []));
28858
+ this.svgIcon = input('', ...(ngDevMode ? [{ debugName: "svgIcon" }] : []));
28859
+ this.routerLink = input('', ...(ngDevMode ? [{ debugName: "routerLink" }] : []));
28860
+ this.queryParams = input({}, ...(ngDevMode ? [{ debugName: "queryParams" }] : []));
28861
+ this.queryParamsHandling = input('', ...(ngDevMode ? [{ debugName: "queryParamsHandling" }] : []));
28862
+ this.href = input('', ...(ngDevMode ? [{ debugName: "href" }] : []));
28863
+ this.target = input('', ...(ngDevMode ? [{ debugName: "target" }] : []));
28864
+ this.disabled = input(false, ...(ngDevMode ? [{ debugName: "disabled", transform: booleanTransformFn }] : [{ transform: booleanTransformFn }]));
28865
+ this.activated = output();
28866
+ this.routerLinkActiveState = signal(null, ...(ngDevMode ? [{ debugName: "routerLinkActiveState" }] : []));
28867
+ /***************************************************************************
28868
+ * *
28869
+ * Computed *
28870
+ * *
28871
+ **************************************************************************/
28872
+ this.isActive = computed(() => {
28873
+ if (!this.navList.activeValue()) {
28874
+ return false;
28875
+ }
28876
+ if (this.routerLink()) {
28877
+ return this.isRouteActive();
28878
+ }
28879
+ else {
28880
+ return this.isValueActive();
28881
+ }
28882
+ }, ...(ngDevMode ? [{ debugName: "isActive" }] : []));
28883
+ this.navLinkClasses = computed(() => ({
28884
+ 'nav-link-clickable': !this.disabled(),
28885
+ 'nav-link-disabled': this.disabled(),
28886
+ 'nav-link-active': this.isActive(),
28887
+ 'nav-link-inactive': !this.isActive(),
28888
+ }), ...(ngDevMode ? [{ debugName: "navLinkClasses" }] : []));
28889
+ const routerLinkActive$ = toObservable(this.routerLinkActiveState);
28890
+ routerLinkActive$
28891
+ .pipe(takeUntilDestroyed(this.destroyRef), filter$1((rla) => !!rla), switchMap((rla) => rla.isActiveChange))
28892
+ .subscribe((isActive) => {
28893
+ if (isActive) {
28894
+ this.handleRouterLinkActivation();
28895
+ }
28896
+ else {
28897
+ this.handleRouterLinkDeactivation();
28898
+ }
28899
+ });
28851
28900
  }
28852
28901
  /***************************************************************************
28853
28902
  * *
28854
- * Life Cycle *
28903
+ * Public Api *
28855
28904
  * *
28856
28905
  **************************************************************************/
28857
- ngOnInit() {
28858
- this._routerLinkActive$
28859
- .pipe(takeUntil(this.destroy$), filter((rla) => !!rla), switchMap((rla) => {
28860
- return rla.isActiveChange.pipe(startWith(rla.isActive));
28861
- }))
28862
- .subscribe((active) => this._active$.next(active));
28863
- this.navList.valueChange
28864
- .pipe(takeUntil(this.destroy$), map((value) => this.isCurrentValueActive))
28865
- .subscribe((active) => this._active$.next(active));
28866
- if (this.value) {
28867
- this._active$.next(this.isCurrentValueActive);
28868
- }
28869
- }
28870
- ngOnDestroy() {
28871
- this.destroy$.next();
28872
- this.destroy$.complete();
28906
+ setNavListActiveValue(activeValue) {
28907
+ this.navList.setActiveValue(activeValue);
28873
28908
  }
28874
28909
  /***************************************************************************
28875
28910
  * *
28876
- * Properties *
28911
+ * Event Handlers *
28877
28912
  * *
28878
28913
  **************************************************************************/
28879
- get active$() {
28880
- return this._active$;
28881
- }
28882
- set routerLinkActive(rla) {
28883
- this._routerLinkActive$.next(rla);
28914
+ onItemClicked(event) {
28915
+ this.handleButtonActivation(event);
28884
28916
  }
28885
- set routerLink(value) {
28886
- this._routerLink$.next(value);
28887
- }
28888
- set href(value) {
28889
- this._href$.next(value);
28890
- }
28891
- set target(value) {
28892
- this._target$.next(value);
28893
- }
28894
- set value(v) {
28895
- this._value = v;
28896
- }
28897
- get value() {
28898
- return this._value;
28899
- }
28900
- set disabled(v) {
28901
- this._disabled = coerceBooleanProperty(v);
28917
+ onItemKeyDown(event) {
28918
+ event.preventDefault();
28919
+ event.stopPropagation();
28920
+ if (event.key === 'Enter' || event.key === ' ') {
28921
+ this.handleButtonActivation(event);
28922
+ }
28902
28923
  }
28903
- get disabled() {
28904
- return this._disabled;
28924
+ handleButtonActivation(event) {
28925
+ if (this.disabled()) {
28926
+ return;
28927
+ }
28928
+ if (this.value() !== null) {
28929
+ this.setNavListActiveValue(this.value());
28930
+ }
28931
+ this.activated.emit(new NavItemActivated(event, this.value()));
28905
28932
  }
28906
28933
  /***************************************************************************
28907
28934
  * *
28908
- * Public API *
28935
+ * Private Methods *
28909
28936
  * *
28910
28937
  **************************************************************************/
28911
- itemActivated(event) {
28912
- if (!this._disabled) {
28913
- this.activated.next(new NavItemActivated(event, this.value));
28914
- if (this.value !== null) {
28915
- this.navList.value = this.value;
28916
- }
28938
+ isRouteActive() {
28939
+ return (this.navList.activeValue() instanceof ActivatedRoute &&
28940
+ this.navList.activeValue().route === this.routerLink());
28941
+ }
28942
+ isValueActive() {
28943
+ const compareWithFn = this.navList.compareWith();
28944
+ if (compareWithFn) {
28945
+ return compareWithFn(this.navList.activeValue(), this.value());
28917
28946
  }
28947
+ return this.navList.activeValue() === this.value();
28918
28948
  }
28919
- itemClick(event) {
28920
- this.itemActivated(event);
28949
+ handleRouterLinkActivation() {
28950
+ this.setNavListActiveValue(new ActivatedRoute(this.routerLink()));
28921
28951
  }
28922
- itemKeyDown(event) {
28923
- event.preventDefault();
28924
- event.stopPropagation();
28925
- if (event.key === 'Enter' || event.key === ' ') {
28926
- this.itemActivated(event);
28952
+ handleRouterLinkDeactivation() {
28953
+ // this link is no longer active
28954
+ // check if this value is the active value of the nav list. If so, clear it.
28955
+ if (this.navList.activeValue() instanceof ActivatedRoute &&
28956
+ this.navList.activeValue().route === this.routerLink()) {
28957
+ this.navList.setActiveValue(null);
28927
28958
  }
28928
28959
  }
28929
- /***************************************************************************
28930
- * *
28931
- * Private methods *
28932
- * *
28933
- **************************************************************************/
28934
- get isCurrentValueActive() {
28935
- return this.navList.isActive(this.value);
28936
- }
28937
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.1", ngImport: i0, type: ElderNavLinkComponent, deps: [{ token: ElderNavListComponent }], target: i0.ɵɵFactoryTarget.Component }); }
28938
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.1", type: ElderNavLinkComponent, isStandalone: true, selector: "elder-nav-link", inputs: { title: "title", queryParamsHandling: "queryParamsHandling", queryParams: "queryParams", icon: "icon", fontIcon: "fontIcon", fontSet: "fontSet", svgIcon: "svgIcon", routerLink: "routerLink", href: "href", target: "target", value: "value", disabled: "disabled" }, outputs: { clicked: "clicked", activated: "activated" }, host: { properties: { "attr.tabindex": "this.tabIndex" } }, viewQueries: [{ propertyName: "routerLinkActive", first: true, predicate: RouterLinkActive, descendants: true }], ngImport: i0, template: "<!-- Router Link -->\n@if (model$ | async; as model) {\n @if (model.routerLink; as routerLink) {\n <a\n matRipple\n [matRippleDisabled]=\"disabled\"\n class=\"layout-row place-start-center nav-link\"\n [routerLink]=\"routerLink\"\n [queryParamsHandling]=\"queryParamsHandling\"\n [queryParams]=\"queryParams\"\n routerLinkActive=\"dummy\"\n [class.nav-link-clickable]=\"!disabled\"\n [class.nav-link-disabled]=\"disabled\"\n [class.nav-link-active]=\"active$ | async\"\n [class.nav-link-inactive]=\"(active$ | async) === false\"\n >\n <ng-container [ngTemplateOutlet]=\"defaultLinkTemplate\"></ng-container>\n </a>\n }\n <!-- Href Link -->\n @if (model.href; as href) {\n <a\n matRipple\n [matRippleDisabled]=\"disabled\"\n class=\"layout-row place-start-center nav-link\"\n [href]=\"href\"\n [target]=\"model.hrefTarget\"\n [class.nav-link-clickable]=\"!disabled\"\n [class.nav-link-disabled]=\"disabled\"\n [class.nav-link-active]=\"active$ | async\"\n [class.nav-link-inactive]=\"(active$ | async) === false\"\n >\n <ng-container [ngTemplateOutlet]=\"defaultLinkTemplate\"></ng-container>\n </a>\n }\n <!-- Simple Button -->\n @if (!model.href && !model.routerLink) {\n <a\n matRipple\n [matRippleDisabled]=\"disabled\"\n class=\"layout-row place-start-center nav-link\"\n (click)=\"itemClick($event)\"\n [class.nav-link-clickable]=\"!disabled\"\n [class.nav-link-disabled]=\"disabled\"\n [class.nav-link-active]=\"active$ | async\"\n [class.nav-link-inactive]=\"(active$ | async) === false\"\n >\n <ng-container [ngTemplateOutlet]=\"defaultLinkTemplate\"></ng-container>\n </a>\n }\n}\n\n<ng-template #defaultLinkTemplate>\n <div class=\"layout-row place-start-center flex gap-md noselect\">\n @if (!(!icon && !title)) {\n <mat-icon [fontIcon]=\"fontIcon\" [fontSet]=\"fontSet\">\n {{ icon }}\n </mat-icon>\n }\n @if (svgIcon) {\n <mat-icon [svgIcon]=\"svgIcon\"></mat-icon>\n }\n @if (title) {\n <span class=\"noselect\">\n {{ title | translate }}\n </span>\n }\n <ng-content></ng-content>\n </div>\n</ng-template>\n", styles: [".nav-link{text-decoration:none;padding-left:16px;padding-right:16px;min-height:var(--elder-nav-item-height);border-radius:var(--elder-border-radius-sm);overflow:hidden;transition:background-color .5s,color .5s}.nav-link .mat-icon{height:32px;width:32px;font-size:24px;padding:4px}.nav-link.nav-link-clickable{cursor:pointer}.nav-link.nav-link-clickable:hover{background-color:var(--elder-nav-link-hover-color)!important}.nav-link.nav-link-disabled{cursor:default}.nav-link.nav-link-active{background-color:var(--elder-nav-link-active-color);color:var(--md-sys-color-primary)}.nav-link.nav-link-active .mat-icon{color:var(--md-sys-color-on-teriary)}.nav-link.nav-link-inactive,.nav-link.nav-link-inactive .mat-icon{color:var(--md-sys-color-on-surface)}\n"], dependencies: [{ kind: "directive", type: MatRipple, selector: "[mat-ripple], [matRipple]", inputs: ["matRippleColor", "matRippleUnbounded", "matRippleCentered", "matRippleRadius", "matRippleAnimation", "matRippleDisabled", "matRippleTrigger"], exportAs: ["matRipple"] }, { kind: "directive", type: RouterLinkActive, selector: "[routerLinkActive]", inputs: ["routerLinkActiveOptions", "ariaCurrentWhenActive", "routerLinkActive"], outputs: ["isActiveChange"], exportAs: ["routerLinkActive"] }, { kind: "directive", type: RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "info", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: AsyncPipe, name: "async" }, { kind: "pipe", type: i1$2.TranslatePipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
28960
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.1", ngImport: i0, type: ElderNavLinkComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
28961
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.1", type: ElderNavLinkComponent, isStandalone: true, selector: "elder-nav-link", inputs: { value: { classPropertyName: "value", publicName: "value", isSignal: true, isRequired: false, transformFunction: null }, title: { classPropertyName: "title", publicName: "title", isSignal: true, isRequired: false, transformFunction: null }, fontIcon: { classPropertyName: "fontIcon", publicName: "fontIcon", isSignal: true, isRequired: false, transformFunction: null }, fontSet: { classPropertyName: "fontSet", publicName: "fontSet", isSignal: true, isRequired: false, transformFunction: null }, icon: { classPropertyName: "icon", publicName: "icon", isSignal: true, isRequired: false, transformFunction: null }, svgIcon: { classPropertyName: "svgIcon", publicName: "svgIcon", isSignal: true, isRequired: false, transformFunction: null }, routerLink: { classPropertyName: "routerLink", publicName: "routerLink", isSignal: true, isRequired: false, transformFunction: null }, queryParams: { classPropertyName: "queryParams", publicName: "queryParams", isSignal: true, isRequired: false, transformFunction: null }, queryParamsHandling: { classPropertyName: "queryParamsHandling", publicName: "queryParamsHandling", isSignal: true, isRequired: false, transformFunction: null }, href: { classPropertyName: "href", publicName: "href", isSignal: true, isRequired: false, transformFunction: null }, target: { classPropertyName: "target", publicName: "target", isSignal: true, isRequired: false, transformFunction: null }, disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { activated: "activated" }, host: { properties: { "attr.tabindex": "-1" } }, viewQueries: [{ propertyName: "routerLinkActive", first: true, predicate: RouterLinkActive, descendants: true }], ngImport: i0, template: "<!-- Router Link -->\n@if (routerLink()) {\n <a\n matRipple\n [matRippleDisabled]=\"disabled()\"\n class=\"layout-row place-start-center nav-link\"\n [ngClass]=\"navLinkClasses()\"\n routerLinkActive=\"dummy\"\n [routerLink]=\"routerLink()\"\n [queryParamsHandling]=\"queryParamsHandling()\"\n [queryParams]=\"queryParams()\"\n >\n <ng-container [ngTemplateOutlet]=\"defaultLinkTemplate\"></ng-container>\n </a>\n}\n<!-- Href Link -->\n@if (href()) {\n <a\n matRipple\n [matRippleDisabled]=\"disabled()\"\n class=\"layout-row place-start-center nav-link\"\n [ngClass]=\"navLinkClasses()\"\n routerLinkActive=\"dummy\"\n [href]=\"href()\"\n [target]=\"target()\"\n >\n <ng-container [ngTemplateOutlet]=\"defaultLinkTemplate\"></ng-container>\n </a>\n}\n<!-- Simple Button -->\n@if (!href() && !routerLink()) {\n <a\n matRipple\n [matRippleDisabled]=\"disabled()\"\n class=\"layout-row place-start-center nav-link\"\n [ngClass]=\"navLinkClasses()\"\n routerLinkActive=\"dummy\"\n (click)=\"onItemClicked($event)\"\n (keydown)=\"onItemKeyDown($event)\"\n >\n <ng-container [ngTemplateOutlet]=\"defaultLinkTemplate\"></ng-container>\n </a>\n}\n\n<ng-template #defaultLinkTemplate>\n <div class=\"layout-row place-start-center flex gap-md noselect\">\n @if (title() || icon() || fontIcon()) {\n <mat-icon [fontIcon]=\"fontIcon()\" [fontSet]=\"fontSet()\">\n {{ icon() }}\n </mat-icon>\n }\n @if (svgIcon()) {\n <mat-icon [svgIcon]=\"svgIcon()\"></mat-icon>\n }\n @if (title()) {\n <span class=\"noselect\">\n {{ title() | translate }}\n </span>\n }\n <ng-content></ng-content>\n </div>\n</ng-template>\n", styles: [".nav-link{text-decoration:none;padding-left:16px;padding-right:16px;min-height:var(--elder-nav-item-height);border-radius:var(--elder-border-radius-sm);overflow:hidden;transition:background-color .5s,color .5s}.nav-link .mat-icon{height:32px;width:32px;font-size:24px;padding:4px}.nav-link.nav-link-clickable{cursor:pointer}.nav-link.nav-link-clickable:hover{background-color:var(--elder-nav-link-hover-color)!important}.nav-link.nav-link-disabled{cursor:default}.nav-link.nav-link-active{background-color:var(--elder-nav-link-active-color);color:var(--md-sys-color-primary)}.nav-link.nav-link-active .mat-icon{color:var(--md-sys-color-on-teriary)}.nav-link.nav-link-inactive,.nav-link.nav-link-inactive .mat-icon{color:var(--md-sys-color-on-surface)}\n"], dependencies: [{ kind: "directive", type: MatRipple, selector: "[mat-ripple], [matRipple]", inputs: ["matRippleColor", "matRippleUnbounded", "matRippleCentered", "matRippleRadius", "matRippleAnimation", "matRippleDisabled", "matRippleTrigger"], exportAs: ["matRipple"] }, { kind: "directive", type: RouterLinkActive, selector: "[routerLinkActive]", inputs: ["routerLinkActiveOptions", "ariaCurrentWhenActive", "routerLinkActive"], outputs: ["isActiveChange"], exportAs: ["routerLinkActive"] }, { kind: "directive", type: RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "info", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }, { kind: "component", type: MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "ngmodule", type: TranslateModule }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "pipe", type: i1$2.TranslatePipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
28939
28962
  }
28940
28963
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.1", ngImport: i0, type: ElderNavLinkComponent, decorators: [{
28941
28964
  type: Component,
28942
- args: [{ selector: 'elder-nav-link', changeDetection: ChangeDetectionStrategy.OnPush, imports: [
28965
+ args: [{ selector: 'elder-nav-link', changeDetection: ChangeDetectionStrategy.OnPush, host: {
28966
+ '[attr.tabindex]': '-1',
28967
+ }, imports: [
28943
28968
  MatRipple,
28944
28969
  RouterLinkActive,
28945
28970
  RouterLink,
28946
- NgTemplateOutlet,
28947
28971
  MatIcon,
28948
- AsyncPipe,
28949
28972
  TranslateModule,
28950
- ], template: "<!-- Router Link -->\n@if (model$ | async; as model) {\n @if (model.routerLink; as routerLink) {\n <a\n matRipple\n [matRippleDisabled]=\"disabled\"\n class=\"layout-row place-start-center nav-link\"\n [routerLink]=\"routerLink\"\n [queryParamsHandling]=\"queryParamsHandling\"\n [queryParams]=\"queryParams\"\n routerLinkActive=\"dummy\"\n [class.nav-link-clickable]=\"!disabled\"\n [class.nav-link-disabled]=\"disabled\"\n [class.nav-link-active]=\"active$ | async\"\n [class.nav-link-inactive]=\"(active$ | async) === false\"\n >\n <ng-container [ngTemplateOutlet]=\"defaultLinkTemplate\"></ng-container>\n </a>\n }\n <!-- Href Link -->\n @if (model.href; as href) {\n <a\n matRipple\n [matRippleDisabled]=\"disabled\"\n class=\"layout-row place-start-center nav-link\"\n [href]=\"href\"\n [target]=\"model.hrefTarget\"\n [class.nav-link-clickable]=\"!disabled\"\n [class.nav-link-disabled]=\"disabled\"\n [class.nav-link-active]=\"active$ | async\"\n [class.nav-link-inactive]=\"(active$ | async) === false\"\n >\n <ng-container [ngTemplateOutlet]=\"defaultLinkTemplate\"></ng-container>\n </a>\n }\n <!-- Simple Button -->\n @if (!model.href && !model.routerLink) {\n <a\n matRipple\n [matRippleDisabled]=\"disabled\"\n class=\"layout-row place-start-center nav-link\"\n (click)=\"itemClick($event)\"\n [class.nav-link-clickable]=\"!disabled\"\n [class.nav-link-disabled]=\"disabled\"\n [class.nav-link-active]=\"active$ | async\"\n [class.nav-link-inactive]=\"(active$ | async) === false\"\n >\n <ng-container [ngTemplateOutlet]=\"defaultLinkTemplate\"></ng-container>\n </a>\n }\n}\n\n<ng-template #defaultLinkTemplate>\n <div class=\"layout-row place-start-center flex gap-md noselect\">\n @if (!(!icon && !title)) {\n <mat-icon [fontIcon]=\"fontIcon\" [fontSet]=\"fontSet\">\n {{ icon }}\n </mat-icon>\n }\n @if (svgIcon) {\n <mat-icon [svgIcon]=\"svgIcon\"></mat-icon>\n }\n @if (title) {\n <span class=\"noselect\">\n {{ title | translate }}\n </span>\n }\n <ng-content></ng-content>\n </div>\n</ng-template>\n", styles: [".nav-link{text-decoration:none;padding-left:16px;padding-right:16px;min-height:var(--elder-nav-item-height);border-radius:var(--elder-border-radius-sm);overflow:hidden;transition:background-color .5s,color .5s}.nav-link .mat-icon{height:32px;width:32px;font-size:24px;padding:4px}.nav-link.nav-link-clickable{cursor:pointer}.nav-link.nav-link-clickable:hover{background-color:var(--elder-nav-link-hover-color)!important}.nav-link.nav-link-disabled{cursor:default}.nav-link.nav-link-active{background-color:var(--elder-nav-link-active-color);color:var(--md-sys-color-primary)}.nav-link.nav-link-active .mat-icon{color:var(--md-sys-color-on-teriary)}.nav-link.nav-link-inactive,.nav-link.nav-link-inactive .mat-icon{color:var(--md-sys-color-on-surface)}\n"] }]
28951
- }], ctorParameters: () => [{ type: ElderNavListComponent }], propDecorators: { tabIndex: [{
28952
- type: HostBinding,
28953
- args: ['attr.tabindex']
28954
- }], title: [{
28955
- type: Input
28956
- }], queryParamsHandling: [{
28957
- type: Input
28958
- }], queryParams: [{
28959
- type: Input
28960
- }], icon: [{
28961
- type: Input
28962
- }], fontIcon: [{
28963
- type: Input
28964
- }], fontSet: [{
28965
- type: Input
28966
- }], svgIcon: [{
28967
- type: Input
28968
- }], clicked: [{
28969
- type: Output
28970
- }], activated: [{
28971
- type: Output
28972
- }], routerLinkActive: [{
28973
+ NgTemplateOutlet,
28974
+ NgClass,
28975
+ ], template: "<!-- Router Link -->\n@if (routerLink()) {\n <a\n matRipple\n [matRippleDisabled]=\"disabled()\"\n class=\"layout-row place-start-center nav-link\"\n [ngClass]=\"navLinkClasses()\"\n routerLinkActive=\"dummy\"\n [routerLink]=\"routerLink()\"\n [queryParamsHandling]=\"queryParamsHandling()\"\n [queryParams]=\"queryParams()\"\n >\n <ng-container [ngTemplateOutlet]=\"defaultLinkTemplate\"></ng-container>\n </a>\n}\n<!-- Href Link -->\n@if (href()) {\n <a\n matRipple\n [matRippleDisabled]=\"disabled()\"\n class=\"layout-row place-start-center nav-link\"\n [ngClass]=\"navLinkClasses()\"\n routerLinkActive=\"dummy\"\n [href]=\"href()\"\n [target]=\"target()\"\n >\n <ng-container [ngTemplateOutlet]=\"defaultLinkTemplate\"></ng-container>\n </a>\n}\n<!-- Simple Button -->\n@if (!href() && !routerLink()) {\n <a\n matRipple\n [matRippleDisabled]=\"disabled()\"\n class=\"layout-row place-start-center nav-link\"\n [ngClass]=\"navLinkClasses()\"\n routerLinkActive=\"dummy\"\n (click)=\"onItemClicked($event)\"\n (keydown)=\"onItemKeyDown($event)\"\n >\n <ng-container [ngTemplateOutlet]=\"defaultLinkTemplate\"></ng-container>\n </a>\n}\n\n<ng-template #defaultLinkTemplate>\n <div class=\"layout-row place-start-center flex gap-md noselect\">\n @if (title() || icon() || fontIcon()) {\n <mat-icon [fontIcon]=\"fontIcon()\" [fontSet]=\"fontSet()\">\n {{ icon() }}\n </mat-icon>\n }\n @if (svgIcon()) {\n <mat-icon [svgIcon]=\"svgIcon()\"></mat-icon>\n }\n @if (title()) {\n <span class=\"noselect\">\n {{ title() | translate }}\n </span>\n }\n <ng-content></ng-content>\n </div>\n</ng-template>\n", styles: [".nav-link{text-decoration:none;padding-left:16px;padding-right:16px;min-height:var(--elder-nav-item-height);border-radius:var(--elder-border-radius-sm);overflow:hidden;transition:background-color .5s,color .5s}.nav-link .mat-icon{height:32px;width:32px;font-size:24px;padding:4px}.nav-link.nav-link-clickable{cursor:pointer}.nav-link.nav-link-clickable:hover{background-color:var(--elder-nav-link-hover-color)!important}.nav-link.nav-link-disabled{cursor:default}.nav-link.nav-link-active{background-color:var(--elder-nav-link-active-color);color:var(--md-sys-color-primary)}.nav-link.nav-link-active .mat-icon{color:var(--md-sys-color-on-teriary)}.nav-link.nav-link-inactive,.nav-link.nav-link-inactive .mat-icon{color:var(--md-sys-color-on-surface)}\n"] }]
28976
+ }], ctorParameters: () => [], propDecorators: { routerLinkActive: [{
28973
28977
  type: ViewChild,
28974
28978
  args: [RouterLinkActive, { static: false }]
28975
- }], routerLink: [{
28976
- type: Input
28977
- }], href: [{
28978
- type: Input
28979
- }], target: [{
28980
- type: Input
28981
- }], value: [{
28982
- type: Input
28983
- }], disabled: [{
28984
- type: Input
28985
28979
  }] } });
28986
28980
 
28987
- const animations = [
28981
+ const navGroupAnimations = [
28988
28982
  trigger('openClose', [
28989
28983
  state('open', style({
28990
28984
  height: '*',
@@ -28999,86 +28993,72 @@ const animations = [
28999
28993
  transition('closed => open', [animate('200ms')]),
29000
28994
  ]),
29001
28995
  ];
28996
+
29002
28997
  class ElderNavGroupComponent {
29003
28998
  /***************************************************************************
29004
28999
  * *
29005
- * Constructor & Effects *
29000
+ * Constructor *
29006
29001
  * *
29007
29002
  **************************************************************************/
29008
29003
  constructor() {
29009
- this.destroyRef = inject(DestroyRef);
29010
29004
  this.navList = inject(ElderNavListComponent);
29005
+ this.children = contentChildren(ElderNavLinkComponent, ...(ngDevMode ? [{ debugName: "children" }] : []));
29011
29006
  /***************************************************************************
29012
29007
  * *
29013
- * Fields *
29008
+ * State *
29014
29009
  * *
29015
29010
  **************************************************************************/
29016
- this.children = contentChildren(ElderNavLinkComponent, ...(ngDevMode ? [{ debugName: "children" }] : []));
29017
- this.isOpen = signal(false, ...(ngDevMode ? [{ debugName: "isOpen" }] : []));
29018
- this.clicked = output();
29019
- this.childrenActiveState = signal(false, ...(ngDevMode ? [{ debugName: "childrenActiveState" }] : []));
29011
+ this._isOpen = signal(false, ...(ngDevMode ? [{ debugName: "_isOpen" }] : []));
29020
29012
  /***************************************************************************
29021
29013
  * *
29022
- * Computed Properties *
29014
+ * Computed *
29023
29015
  * *
29024
29016
  **************************************************************************/
29025
- this.active = computed(() => this.childrenActiveState(), ...(ngDevMode ? [{ debugName: "active" }] : []));
29026
- // Effect to monitor children's active states
29027
- effect(() => {
29028
- const childComponents = this.children();
29029
- if (this.childSubscription) {
29030
- this.childSubscription.unsubscribe();
29031
- }
29032
- const childActiveObservables = childComponents.map((child) => child.active$);
29033
- this.childSubscription = combineLatest(childActiveObservables).subscribe((active) => {
29034
- this.childrenActiveState.set(active.some((active) => active));
29035
- });
29036
- });
29037
- // Effect to open the group if any child becomes active: important for page load
29038
- effect(() => {
29039
- const isActive = this.active();
29040
- const isOpen = untracked(this.isOpen);
29041
- if (isActive && !isOpen) {
29042
- this.isOpen.set(true);
29017
+ this.isOpen = this._isOpen.asReadonly();
29018
+ this.isActive = computed(() => {
29019
+ // We need to listen to the navlist value signal to update the active state
29020
+ const activeNavListValue = this.navList.activeValue();
29021
+ const children = this.children();
29022
+ const isAnyChildActive = someSignal(children, (child) => child.isActive());
29023
+ return isAnyChildActive;
29024
+ }, ...(ngDevMode ? [{ debugName: "isActive" }] : []));
29025
+ // When the group becomes active, it will be opened (important on page load)
29026
+ const activeChange$ = toObservable(this.isActive).pipe(takeUntilDestroyed());
29027
+ activeChange$.subscribe((active) => {
29028
+ if (active) {
29029
+ this._isOpen.set(true);
29043
29030
  }
29044
29031
  });
29045
29032
  }
29046
29033
  /***************************************************************************
29047
29034
  * *
29048
- * Life Cycle *
29035
+ * Public Api *
29049
29036
  * *
29050
29037
  **************************************************************************/
29051
- ngOnInit() { }
29052
- ngOnDestroy() {
29053
- if (this.childSubscription) {
29054
- this.childSubscription.unsubscribe();
29055
- }
29038
+ toggle() {
29039
+ this._isOpen.set(!this._isOpen());
29056
29040
  }
29057
29041
  /***************************************************************************
29058
29042
  * *
29059
- * Public Api *
29043
+ * Event Handlers *
29060
29044
  * *
29061
29045
  **************************************************************************/
29062
- itemClick(event) {
29063
- this.clicked.emit(new NavItemActivated(event, undefined));
29046
+ onItemClicked(event) {
29064
29047
  this.toggle();
29065
29048
  }
29066
- toggle() {
29067
- this.isOpen.set(!this.isOpen());
29068
- }
29069
- itemKeyDown(event) {
29049
+ onItemKeyDown(event) {
29070
29050
  if (event.key === 'Enter' || event.key === ' ') {
29071
29051
  event.preventDefault();
29072
29052
  event.stopPropagation();
29073
- this.itemClick(event);
29053
+ this.toggle();
29074
29054
  }
29075
29055
  }
29076
29056
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.1", ngImport: i0, type: ElderNavGroupComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
29077
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.2.0", version: "20.3.1", type: ElderNavGroupComponent, isStandalone: true, selector: "elder-nav-group", outputs: { clicked: "clicked" }, queries: [{ propertyName: "children", predicate: ElderNavLinkComponent, isSignal: true }], ngImport: i0, template: "<div class=\"layout-col nav-group\">\n <a\n matRipple\n tabindex=\"0\"\n class=\"layout-row place-start-center nav-group-button\"\n [class.nav-group-button-open]=\"isOpen()\"\n [class.nav-group-button-closed]=\"!isOpen()\"\n [class.nav-group-button-active]=\"active()\"\n (click)=\"itemClick($event)\"\n (keydown)=\"itemKeyDown($event)\"\n >\n <div class=\"layout-row place-start-center gap-lg full noselect\">\n <ng-content></ng-content>\n <span class=\"flex\"></span>\n <mat-icon>{{ isOpen() ? 'keyboard_arrow_up' : 'keyboard_arrow_down' }}</mat-icon>\n </div>\n </a>\n <!-- Nested Items projection -->\n <div\n class=\"layout-col nav-group-items-container p-sm\"\n [@openClose]=\"isOpen() ? 'open' : 'closed'\"\n [inert]=\"!isOpen()\"\n >\n <ng-content select=\"elder-nav-link\"></ng-content>\n </div>\n</div>\n", styles: [".nav-group-button-closed{padding-left:16px}.nav-group{min-height:var(--elder-nav-item-height)}.nav-group-button{padding-right:16px;min-height:var(--elder-nav-item-height);font-size:16px;font-weight:400;border-radius:var(--elder-border-radius-sm);cursor:pointer}.nav-group-button .mat-icon{height:24px;width:24px;font-size:24px;padding:4px}.nav-group-items-container{overflow:hidden}.nav-group-button:hover{background-color:var(--elder-nav-link-hover-color);transition:background-color .5s}.nav-group-button-open{padding-left:11px!important}.nav-group-button-active:not(.nav-group-button-open){background-color:var(--elder-nav-link-hover-color);color:var(--md-sys-color-primary)}\n"], dependencies: [{ kind: "directive", type: MatRipple, selector: "[mat-ripple], [matRipple]", inputs: ["matRippleColor", "matRippleUnbounded", "matRippleCentered", "matRippleRadius", "matRippleAnimation", "matRippleDisabled", "matRippleTrigger"], exportAs: ["matRipple"] }, { kind: "component", type: MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }], animations: animations, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
29057
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.2.0", version: "20.3.1", type: ElderNavGroupComponent, isStandalone: true, selector: "elder-nav-group", queries: [{ propertyName: "children", predicate: ElderNavLinkComponent, isSignal: true }], ngImport: i0, template: "<div class=\"layout-col nav-group\">\n <a\n matRipple\n tabindex=\"0\"\n class=\"layout-row place-start-center nav-group-button\"\n [class.nav-group-button-open]=\"isOpen()\"\n [class.nav-group-button-closed]=\"!isOpen()\"\n [class.nav-group-button-active]=\"isActive()\"\n (click)=\"onItemClicked($event)\"\n (keydown)=\"onItemKeyDown($event)\"\n >\n <div class=\"layout-row place-start-center gap-lg full noselect\">\n <ng-content></ng-content>\n <span class=\"flex\"></span>\n <mat-icon>{{ isOpen() ? 'keyboard_arrow_up' : 'keyboard_arrow_down' }}</mat-icon>\n </div>\n </a>\n <!-- Nested Items projection -->\n <div\n class=\"layout-col nav-group-items-container p-sm\"\n [@openClose]=\"isOpen() ? 'open' : 'closed'\"\n [inert]=\"!isOpen()\"\n >\n <ng-content select=\"elder-nav-link\"></ng-content>\n </div>\n</div>\n", styles: [".nav-group-button-closed{padding-left:16px}.nav-group{min-height:var(--elder-nav-item-height)}.nav-group-button{padding-right:16px;min-height:var(--elder-nav-item-height);font-size:16px;font-weight:400;border-radius:var(--elder-border-radius-sm);cursor:pointer}.nav-group-button .mat-icon{height:24px;width:24px;font-size:24px;padding:4px}.nav-group-items-container{overflow:hidden}.nav-group-button:hover{background-color:var(--elder-nav-link-hover-color);transition:background-color .5s}.nav-group-button-open{padding-left:11px!important}.nav-group-button-active:not(.nav-group-button-open){background-color:var(--elder-nav-link-hover-color);color:var(--md-sys-color-primary)}\n"], dependencies: [{ kind: "directive", type: MatRipple, selector: "[mat-ripple], [matRipple]", inputs: ["matRippleColor", "matRippleUnbounded", "matRippleCentered", "matRippleRadius", "matRippleAnimation", "matRippleDisabled", "matRippleTrigger"], exportAs: ["matRipple"] }, { kind: "component", type: MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }], animations: navGroupAnimations, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
29078
29058
  }
29079
29059
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.1", ngImport: i0, type: ElderNavGroupComponent, decorators: [{
29080
29060
  type: Component,
29081
- args: [{ selector: 'elder-nav-group', animations: animations, changeDetection: ChangeDetectionStrategy.OnPush, imports: [MatRipple, MatIcon], template: "<div class=\"layout-col nav-group\">\n <a\n matRipple\n tabindex=\"0\"\n class=\"layout-row place-start-center nav-group-button\"\n [class.nav-group-button-open]=\"isOpen()\"\n [class.nav-group-button-closed]=\"!isOpen()\"\n [class.nav-group-button-active]=\"active()\"\n (click)=\"itemClick($event)\"\n (keydown)=\"itemKeyDown($event)\"\n >\n <div class=\"layout-row place-start-center gap-lg full noselect\">\n <ng-content></ng-content>\n <span class=\"flex\"></span>\n <mat-icon>{{ isOpen() ? 'keyboard_arrow_up' : 'keyboard_arrow_down' }}</mat-icon>\n </div>\n </a>\n <!-- Nested Items projection -->\n <div\n class=\"layout-col nav-group-items-container p-sm\"\n [@openClose]=\"isOpen() ? 'open' : 'closed'\"\n [inert]=\"!isOpen()\"\n >\n <ng-content select=\"elder-nav-link\"></ng-content>\n </div>\n</div>\n", styles: [".nav-group-button-closed{padding-left:16px}.nav-group{min-height:var(--elder-nav-item-height)}.nav-group-button{padding-right:16px;min-height:var(--elder-nav-item-height);font-size:16px;font-weight:400;border-radius:var(--elder-border-radius-sm);cursor:pointer}.nav-group-button .mat-icon{height:24px;width:24px;font-size:24px;padding:4px}.nav-group-items-container{overflow:hidden}.nav-group-button:hover{background-color:var(--elder-nav-link-hover-color);transition:background-color .5s}.nav-group-button-open{padding-left:11px!important}.nav-group-button-active:not(.nav-group-button-open){background-color:var(--elder-nav-link-hover-color);color:var(--md-sys-color-primary)}\n"] }]
29061
+ args: [{ selector: 'elder-nav-group', animations: navGroupAnimations, changeDetection: ChangeDetectionStrategy.OnPush, imports: [MatRipple, MatIcon], template: "<div class=\"layout-col nav-group\">\n <a\n matRipple\n tabindex=\"0\"\n class=\"layout-row place-start-center nav-group-button\"\n [class.nav-group-button-open]=\"isOpen()\"\n [class.nav-group-button-closed]=\"!isOpen()\"\n [class.nav-group-button-active]=\"isActive()\"\n (click)=\"onItemClicked($event)\"\n (keydown)=\"onItemKeyDown($event)\"\n >\n <div class=\"layout-row place-start-center gap-lg full noselect\">\n <ng-content></ng-content>\n <span class=\"flex\"></span>\n <mat-icon>{{ isOpen() ? 'keyboard_arrow_up' : 'keyboard_arrow_down' }}</mat-icon>\n </div>\n </a>\n <!-- Nested Items projection -->\n <div\n class=\"layout-col nav-group-items-container p-sm\"\n [@openClose]=\"isOpen() ? 'open' : 'closed'\"\n [inert]=\"!isOpen()\"\n >\n <ng-content select=\"elder-nav-link\"></ng-content>\n </div>\n</div>\n", styles: [".nav-group-button-closed{padding-left:16px}.nav-group{min-height:var(--elder-nav-item-height)}.nav-group-button{padding-right:16px;min-height:var(--elder-nav-item-height);font-size:16px;font-weight:400;border-radius:var(--elder-border-radius-sm);cursor:pointer}.nav-group-button .mat-icon{height:24px;width:24px;font-size:24px;padding:4px}.nav-group-items-container{overflow:hidden}.nav-group-button:hover{background-color:var(--elder-nav-link-hover-color);transition:background-color .5s}.nav-group-button-open{padding-left:11px!important}.nav-group-button-active:not(.nav-group-button-open){background-color:var(--elder-nav-link-hover-color);color:var(--md-sys-color-primary)}\n"] }]
29082
29062
  }], ctorParameters: () => [] });
29083
29063
 
29084
29064
  class ElderNavModule {
@@ -39055,5 +39035,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.1", ngImpor
39055
39035
  * Generated bundle index. Do not edit.
39056
39036
  */
39057
39037
 
39058
- export { ActivationEventSource, ActivationModel, Arrays, AuditedEntity, AutoStartSpec, Batcher, BlobUrl, BytesFormat, BytesPerSecondFormat, BytesPipe, CardDropEvent, CardOrganizerData, CardStack, CollectionUtil, CommonValidationMessageStrategy, ComparatorBuilder, CompositeSort, ConfirmDialogConfig, ContinuableListing, CountryPhoneFormatService, CsvColumnSpec, CsvSerializer, CsvSpec, CsvStreamExporter, CsvStreamExporterBuilder, CsvStreamExporterBuilderService, CuratedDataSource, CuratedListDataSource, CuratedPagedDataSource, Currency, CurrencyCode, CurrencyFormatUtil, CurrencyUnit, CurrencyUnitRegistry, CustomDateAdapter, CustomMatcherSpec, DataContextActivePage, DataContextAutoStarter, DataContextBase, DataContextBuilder, DataContextContinuableBase, DataContextContinuablePaged, DataContextContinuableToken, DataContextLifeCycleBinding, DataContextRange, DataContextSelectionDirective, DataContextSimple, DataContextSnapshot, DataContextSourceEventBinding, DataContextStateIndicatorComponent, DataContextStatus, DataSelectionController, DataSourceAdapter, DataSourceBase, DataSourceChangeEvent, DataSourceEntityPatch, DataSourceProcessor, DataTransferFactory, DataTransferProgress, DataTransferProgressAggregate, DataTransferState, DataTransferStatus, DataViewActivationController, DataViewDndControllerService, DataViewDndGroupControllerService, DataViewDndModelUtil, DataViewDragEnteredEvent, DataViewDragExitedEvent, DataViewIframeAdapterDirective, DataViewIframeComponent, DataViewInteractionControllerDirective, DataViewItemDropEvent, DataViewMessage, DataViewMessageTypeValues, DataViewOptionsProviderBinding, DataViewSelection, DataViewSelectionInit, DateUtil, DelegateContinuableDataSource, DelegateDataSource, DelegateListDataSource, DelegatePagedDataSource, Dimensions, DomUtil, DrawerOutletBinding, DurationBucket, DurationFormat, DurationFormatUtil, DynamicValidationMessageStrategy, ELDER_DATA_VIEW, ELDER_SELECT_BASE, ElderAccessDeniedComponent, ElderAccessDeniedModule, ElderAppHeaderComponent, ElderAuditModule, ElderAuditedEntityComponent, ElderAutoSelectFirstDirective, ElderAutoSelectSuggestFirstDirective, ElderAutocompleteDirective, ElderAutocompleteManyDirective, ElderAutocompleteModule, ElderBadgeDirective, ElderBasicPaneLayoutComponent, ElderBlobViewerComponent, ElderBreadCrumbsComponent, ElderBreadCrumbsModule, ElderButtonGroupComponent, ElderButtonGroupModule, ElderCardComponent, ElderCardContentDirective, ElderCardHeaderActionsDirective, ElderCardHeaderComponent, ElderCardModule, ElderCardOrganizerComponent, ElderCardOrganizerModule, ElderCardPanelComponent, ElderCardStackComponent, ElderCardSubtitleDirective, ElderCardTitleDirective, ElderCenterCellDirective, ElderChipLabelDirective, ElderChipListSelectComponent, ElderChipListSelectModule, ElderChipsIncludeExcludeDirective, ElderChipsModule, ElderClearSelectDirective, ElderClipboardPutDirective, ElderClipboardService, ElderCompositeSortComponent, ElderCompositeSortDcDirective, ElderConfirmDialogComponent, ElderConnectivityModule, ElderConnectivityService, ElderContainersModule, ElderContinuatorComponent, ElderCsvExportBtnComponent, ElderCsvModule, ElderCurrencyModule, ElderCurrencyPipe, ElderDataActivationDirective, ElderDataCommonModule, ElderDataToolbarComponent, ElderDataTransferModule, ElderDataTransferService, ElderDataViewBaseComponent, ElderDataViewDndDirective, ElderDataViewDndGroupDirective, ElderDataViewItemDragDirective, 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, ElderFilterChipTemplateComponent, ElderFormFieldControlBase, ElderFormFieldDenseDirective, ElderFormFieldLabelDirective, ElderFormFieldNoHintDirective, ElderFormFieldNoSpinnerDirective, ElderFormsDirectivesModule, ElderFormsModule, ElderFromFieldBase, ElderFromFieldEntityBase, ElderFromFieldMultiEntityBase, ElderGridActivationDirective, ElderGridComponent, ElderGridModule, ElderGridTileDirective, ElderGridToolbarDirective, ElderHeaderComponent, ElderHeaderModule, ElderI18nEntitiesModule, ElderIFrameModule, ElderInfiniteAutocompleteDirective, ElderInfiniteScrollDirective, ElderInfiniteScrollModule, ElderInputPatternDirective, ElderIntervalInputComponent, ElderIntervalPickerBindingDirective, ElderIntervalPickerComponent, ElderIntervalPickerToggleComponent, ElderKeyEventDirective, ElderLabelInputComponent, ElderLabelsModule, ElderLanguageConfig, ElderLanguageInterceptor, ElderLanguageModule, ElderLanguageService, ElderLanguageSwitcherComponent, ElderLocalDateInputComponent, ElderLocalDndSupportDirective, ElderLocalTimeInputComponent, ElderLocalesDeChModule, ElderLocalizedInputComponent, ElderLocalizedInputDialogComponent, ElderLocalizedInputDialogService, ElderLocalizedInputTableComponent, ElderLocalizedTextColumnDirective, ElderLocalizedTextsDirective, ElderLock, ElderLockContext, ElderLockContextDirective, ElderLockManagerService, ElderLockWarningService, ElderMasterActivationDirective, ElderMasterDetailComponent, ElderMasterDetailModule, ElderMasterDetailService, ElderMasterDirective, ElderMaxValidator, ElderMeasuresModule, ElderMinValidator, ElderMultiEntityValueAccessorUtil, ElderMultiSelectAllInitialDirective, ElderMultiSelectBase, ElderMultiSelectChipOptionsComponent, ElderMultiSelectChipsComponent, ElderMultiSelectChipsOptionsDirective, ElderMultiSelectFormField, ElderMultiTranslateHttpLoader, ElderMultipleOfUtil, ElderMultipleOfValidator, ElderNavGroupComponent, ElderNavLinkComponent, ElderNavListComponent, ElderNavModule, ElderNextFocusableDirective, ElderNumberCellDirective, ElderOfflineIndicatorComponent, ElderOverlayComponent, ElderOverlayModule, ElderOverlayOriginDirective, ElderOverlayRef, ElderOverlayTriggerDirective, ElderPaddingDirective, ElderPaneActionsComponent, ElderPaneComponent, ElderPaneContentComponent, ElderPaneHeaderComponent, ElderPaneSubtitleComponent, ElderPaneTitleComponent, ElderPanelModule, ElderPeriodInputComponent, ElderPipesModule, ElderPlugParentFormDirective, ElderProgressBarComponent, ElderProgressBarModule, ElderQuantityFormFieldComponent, ElderQuantityInputControlComponent, ElderQuantityPipe, ElderQuantityRangeValidator, ElderQuantityService, ElderQuantityTransformPipe, ElderQuestionDialogComponent, ElderRepeatPipe, ElderRequiredDimensionsValidator, ElderRequiredIgnoreZeroValidator, ElderRequiredQuantityValidator, ElderRoundPipe, ElderRouteOutletDrawerService, ElderRouterOutletService, ElderRouterService, ElderSafeUrlPipe, ElderScrollContainerComponent, ElderScrollbarDirective, ElderScrollbarModule, ElderSearchBoxComponent, ElderSearchContextDirective, ElderSearchIncludeExcludeDirective, ElderSearchInputDirective, ElderSearchModule, ElderSearchPanelComponent, ElderSearchUrlDirective, ElderSelectBase, ElderSelectChipAvatarDirective, ElderSelectChipDirective, ElderSelectComponent, ElderSelectComponentState, ElderSelectCustomInputDirective, ElderSelectFormField, ElderSelectModule, ElderSelectOnTabDirective, ElderSelectOptionComponent, ElderSelectValueDirective, ElderSelectionDialogComponent, ElderSelectionDialogDirective, ElderSelectionMasterCheckboxComponent, ElderSelectionPopupTriggerAdapterDirective, ElderShellCenterDirective, ElderShellComponent, ElderShellModule, ElderShellNavigationToggleComponent, ElderShellService, ElderShellSideLeftDirective, ElderShellSideRightDirective, ElderShellSlotDirective, ElderSimpleSelectionViewComponent, ElderSimpleSelectionViewModule, ElderSinglePaneWrapperComponent, ElderSingleSortComponent, ElderSingleStateCheckboxDirective, ElderStackCardDirective, ElderStopEventPropagationDirective, ElderSuggestionPanelComponent, ElderSvgViewerComponent, ElderTabDirective, ElderTabFocusTrapDirective, ElderTabGroupRoutingDirective, ElderTabModule, ElderTableActivationDirective, ElderTableComponent, ElderTableDropListConnectorDirective, ElderTableExtensionDirective, ElderTableGroup, ElderTableModel, ElderTableModelCdkTableBinding, ElderTableModelQueryGroup, ElderTableModule, ElderTableNavigationBarDirective, ElderTableProviders, ElderTableRootDirective, ElderTableSelectionCellComponent, ElderTableSortDirective, ElderTableToolbarDirective, ElderThemeApplierDirective, ElderThemeDirective, ElderThemeModule, ElderThemePreferenceService, ElderThemeService, ElderThemeToggleComponent, ElderTileComponent, ElderTimeModule, ElderToastModule, ElderToastService, ElderTogglePanelComponent, ElderTogglePanelPrimaryDirective, ElderTogglePanelSecondaryDirective, ElderTogglePanelTriggerDirective, ElderToggleTextInputDirective, ElderToolbarColumnDirective, ElderToolbarComponent, ElderToolbarContentDirective, ElderToolbarModule, ElderToolbarService, ElderToolbarTitleComponent, ElderToolbarTitleService, ElderTouchedDirective, ElderTripleStateCheckboxDirective, ElderTruncatePipe, ElderUnitSelectDirective, ElderUnitService, ElderUrlFragment, ElderUrlFragmentModule, ElderUrlFragmentParamsService, ElderUrlFragmentSwitcherComponent, ElderValidationErrorDirective, ElderViewersModule, EntitiesChangeEvent, EntityDelta, EntityIdUtil, EntitySetPatch, ErrorUtil, ExceptionDetailCtx, FallbackValidationMessageStrategy, 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, IncludeExcludeSelectionModel, IncludeExcludeState, IncludeExcludeValue, IndexedEntities, InternalRestClientConfig, Interval, IsoDurationPipe, IsoIntervalFormatUtil, IsoIntervalParsePipe, IsoIntervalPipe, ItemActivationEvent, ItemActivationOptions, JsonMapUtil, KafentConfig, KafentEvent, KafentEventService, KafentEventStream, KafentEventStreamDisabled, KafentEventStreamSse, KafentEventTransport, KafentModule, KafentSseEventChannel, KafentTokenProvider, KafentTokenProviderSessionStorage, KafentTopicSse, KnownElderThemes, KnownLocaleTags, LocalDataFilter, LocalListDataSource, LocalPagedDataSource, Locale, LocalisationPickerService, MasterDetailActivationEvent, MasterSelectionState, MatTableDataContextBinding, MatTableDataContextBindingBuilder, ModifierKeyService, ModifierKeyState, MultiModelBaseComponent, NamedColorDirective, NamedColorSelectDirective, NamedColorSelectValueComponent, NextNumberUtil, ObjectFieldMatcher, ObjectPathResolver, Objects, OnlineStatus, Page, PageRequest, Pageable, ParseUtil, Path, PathNode, PeriodBucket, PeriodDuration, PeriodFormat, PhoneFormatService, PhonePipe, ProcessIterationContext, ProcessState, PropertyPathUtil, Quantity, QueryListBinding, QuestionDialogConfig, ReactiveEventSource, ReactiveEventSourceState, ReactiveFetchEventSource, ReactiveFetchEventSourceService, ReactiveMap, ReactiveSSeMessage, RefreshingEntity, ResizeObserverDirective, RestClient, RestClientConfig, RestClientContinuable, RestClientList, RestClientPaged, RoutedTabActivationFailed, SearchInputState, SelectChipSpecUtil, SelectOptionChipSpecUtil, SelectionChangedEvent, SelectionEventSource, SelectionModel, SelectionModelPopupDirective, Sets, SimpleLocalisationPicker, SimpleSearchInput, Sort, SortUtil, StandardToastComponent, SubBar, SuggestionProvider, TargetValue, TemplateCompositeControl, TemplatedSelectionDialogComponent, TemporalPlainDateInterval, TemporalUtil, ThemeSpec, TimeAgoPipe, TimeDurationPipe, TimeUtil, ToIsoDateStringPipe, ToastType, TokenChunkRequest, ToolbarHeader, Translated, TranslatedConverter, TranslatedEnumValue, TranslatedText, TypedEventMessage, Unit, UnitDimension, UnitDimensionInfo, UnitInfo, UnitRegistry, UnreachableCaseError, UrlBuilder, UrlQueryParams, UuidUtil, ValueAccessorBase, ValueChangeEvent, ValueWrapper, ViewDropModelUpdateInstruction, ViewProviders, WebLocalStorage, WebSessionStorage, WebappDomainFragmentSpec, WebappDomainSpec, WebappDomainSpecService, WebappDomainSwitcherDirective, WebappUrlFragmentSwitcherConfig, WeightPipe, alphaNumStringComparator, booleanTransformFn, buildFormIntegrationProviders, coerceInterval, coerceIntervalIsoStr, createDataOptionsProvider, createSelectionModel, elderChipColorLevels, elderChipColorStates, elderNamedColorRoles, elderNamedColorToken, elderNamedColors, existingOrNewElderTableModel, initSearchUrlService, isActivePagedDataContext, isContinuableDataContext, isContinuableDataSource, isDataContext, isDataSource, isDataViewMessageType, isElderEntityValueAccessor, isElderMultiEntityValueAccessor, isListDataSource, isLocalListDataSource, isPagedDataSource, lazySample, lazySampleTime, naturalValueComparator, newElderTableModel, proxyControlContainer, registerLocale, runInZone, themeInit };
39038
+ export { ActivationEventSource, ActivationModel, Arrays, AuditedEntity, AutoStartSpec, Batcher, BlobUrl, BytesFormat, BytesPerSecondFormat, BytesPipe, CardDropEvent, CardOrganizerData, CardStack, CollectionUtil, CommonValidationMessageStrategy, ComparatorBuilder, CompositeSort, ConfirmDialogConfig, ContinuableListing, CountryPhoneFormatService, CsvColumnSpec, CsvSerializer, CsvSpec, CsvStreamExporter, CsvStreamExporterBuilder, CsvStreamExporterBuilderService, CuratedDataSource, CuratedListDataSource, CuratedPagedDataSource, Currency, CurrencyCode, CurrencyFormatUtil, CurrencyUnit, CurrencyUnitRegistry, CustomDateAdapter, CustomMatcherSpec, DataContextActivePage, DataContextAutoStarter, DataContextBase, DataContextBuilder, DataContextContinuableBase, DataContextContinuablePaged, DataContextContinuableToken, DataContextLifeCycleBinding, DataContextRange, DataContextSelectionDirective, DataContextSimple, DataContextSnapshot, DataContextSourceEventBinding, DataContextStateIndicatorComponent, DataContextStatus, DataSelectionController, DataSourceAdapter, DataSourceBase, DataSourceChangeEvent, DataSourceEntityPatch, DataSourceProcessor, DataTransferFactory, DataTransferProgress, DataTransferProgressAggregate, DataTransferState, DataTransferStatus, DataViewActivationController, DataViewDndControllerService, DataViewDndGroupControllerService, DataViewDndModelUtil, DataViewDragEnteredEvent, DataViewDragExitedEvent, DataViewIframeAdapterDirective, DataViewIframeComponent, DataViewInteractionControllerDirective, DataViewItemDropEvent, DataViewMessage, DataViewMessageTypeValues, DataViewOptionsProviderBinding, DataViewSelection, DataViewSelectionInit, DateUtil, DelegateContinuableDataSource, DelegateDataSource, DelegateListDataSource, DelegatePagedDataSource, Dimensions, DomUtil, DrawerOutletBinding, DurationBucket, DurationFormat, DurationFormatUtil, DynamicValidationMessageStrategy, ELDER_DATA_VIEW, ELDER_SELECT_BASE, ElderAccessDeniedComponent, ElderAccessDeniedModule, ElderAppHeaderComponent, ElderAuditModule, ElderAuditedEntityComponent, ElderAutoSelectFirstDirective, ElderAutoSelectSuggestFirstDirective, ElderAutocompleteDirective, ElderAutocompleteManyDirective, ElderAutocompleteModule, ElderBadgeDirective, ElderBasicPaneLayoutComponent, ElderBlobViewerComponent, ElderBreadCrumbsComponent, ElderBreadCrumbsModule, ElderButtonGroupComponent, ElderButtonGroupModule, ElderCardComponent, ElderCardContentDirective, ElderCardHeaderActionsDirective, ElderCardHeaderComponent, ElderCardModule, ElderCardOrganizerComponent, ElderCardOrganizerModule, ElderCardPanelComponent, ElderCardStackComponent, ElderCardSubtitleDirective, ElderCardTitleDirective, ElderCenterCellDirective, ElderChipLabelDirective, ElderChipListSelectComponent, ElderChipListSelectModule, ElderChipsIncludeExcludeDirective, ElderChipsModule, ElderClearSelectDirective, ElderClipboardPutDirective, ElderClipboardService, ElderCompositeSortComponent, ElderCompositeSortDcDirective, ElderConfirmDialogComponent, ElderConnectivityModule, ElderConnectivityService, ElderContainersModule, ElderContinuatorComponent, ElderCsvExportBtnComponent, ElderCsvModule, ElderCurrencyModule, ElderCurrencyPipe, ElderDataActivationDirective, ElderDataCommonModule, ElderDataToolbarComponent, ElderDataTransferModule, ElderDataTransferService, ElderDataViewBaseComponent, ElderDataViewDndDirective, ElderDataViewDndGroupDirective, ElderDataViewItemDragDirective, 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, ElderFilterChipTemplateComponent, ElderFormFieldControlBase, ElderFormFieldDenseDirective, ElderFormFieldLabelDirective, ElderFormFieldNoHintDirective, ElderFormFieldNoSpinnerDirective, ElderFormsDirectivesModule, ElderFormsModule, ElderFromFieldBase, ElderFromFieldEntityBase, ElderFromFieldMultiEntityBase, ElderGridActivationDirective, ElderGridComponent, ElderGridModule, ElderGridTileDirective, ElderGridToolbarDirective, ElderHeaderComponent, ElderHeaderModule, ElderI18nEntitiesModule, ElderIFrameModule, ElderInfiniteAutocompleteDirective, ElderInfiniteScrollDirective, ElderInfiniteScrollModule, ElderInputPatternDirective, ElderIntervalInputComponent, ElderIntervalPickerBindingDirective, ElderIntervalPickerComponent, ElderIntervalPickerToggleComponent, ElderKeyEventDirective, ElderLabelInputComponent, ElderLabelsModule, ElderLanguageConfig, ElderLanguageInterceptor, ElderLanguageModule, ElderLanguageService, ElderLanguageSwitcherComponent, ElderLocalDateInputComponent, ElderLocalDndSupportDirective, ElderLocalTimeInputComponent, ElderLocalesDeChModule, ElderLocalizedInputComponent, ElderLocalizedInputDialogComponent, ElderLocalizedInputDialogService, ElderLocalizedInputTableComponent, ElderLocalizedTextColumnDirective, ElderLocalizedTextsDirective, ElderLock, ElderLockContext, ElderLockContextDirective, ElderLockManagerService, ElderLockWarningService, ElderMasterActivationDirective, ElderMasterDetailComponent, ElderMasterDetailModule, ElderMasterDetailService, ElderMasterDirective, ElderMaxValidator, ElderMeasuresModule, ElderMinValidator, ElderMultiEntityValueAccessorUtil, ElderMultiSelectAllInitialDirective, ElderMultiSelectBase, ElderMultiSelectChipOptionsComponent, ElderMultiSelectChipsComponent, ElderMultiSelectChipsOptionsDirective, ElderMultiSelectFormField, ElderMultiTranslateHttpLoader, ElderMultipleOfUtil, ElderMultipleOfValidator, ElderNavGroupComponent, ElderNavLinkComponent, ElderNavListComponent, ElderNavModule, ElderNextFocusableDirective, ElderNumberCellDirective, ElderOfflineIndicatorComponent, ElderOverlayComponent, ElderOverlayModule, ElderOverlayOriginDirective, ElderOverlayRef, ElderOverlayTriggerDirective, ElderPaddingDirective, ElderPaneActionsComponent, ElderPaneComponent, ElderPaneContentComponent, ElderPaneHeaderComponent, ElderPaneSubtitleComponent, ElderPaneTitleComponent, ElderPanelModule, ElderPeriodInputComponent, ElderPipesModule, ElderPlugParentFormDirective, ElderProgressBarComponent, ElderProgressBarModule, ElderQuantityFormFieldComponent, ElderQuantityInputControlComponent, ElderQuantityPipe, ElderQuantityRangeValidator, ElderQuantityService, ElderQuantityTransformPipe, ElderQuestionDialogComponent, ElderRepeatPipe, ElderRequiredDimensionsValidator, ElderRequiredIgnoreZeroValidator, ElderRequiredQuantityValidator, ElderRoundPipe, ElderRouteOutletDrawerService, ElderRouterOutletService, ElderRouterService, ElderSafeUrlPipe, ElderScrollContainerComponent, ElderScrollbarDirective, ElderScrollbarModule, ElderSearchBoxComponent, ElderSearchContextDirective, ElderSearchIncludeExcludeDirective, ElderSearchInputDirective, ElderSearchModule, ElderSearchPanelComponent, ElderSearchUrlDirective, ElderSelectBase, ElderSelectChipAvatarDirective, ElderSelectChipDirective, ElderSelectComponent, ElderSelectComponentState, ElderSelectCustomInputDirective, ElderSelectFormField, ElderSelectModule, ElderSelectOnTabDirective, ElderSelectOptionComponent, ElderSelectValueDirective, ElderSelectionDialogComponent, ElderSelectionDialogDirective, ElderSelectionMasterCheckboxComponent, ElderSelectionPopupTriggerAdapterDirective, ElderShellCenterDirective, ElderShellComponent, ElderShellModule, ElderShellNavigationToggleComponent, ElderShellService, ElderShellSideLeftDirective, ElderShellSideRightDirective, ElderShellSlotDirective, ElderSimpleSelectionViewComponent, ElderSimpleSelectionViewModule, ElderSinglePaneWrapperComponent, ElderSingleSortComponent, ElderSingleStateCheckboxDirective, ElderStackCardDirective, ElderStopEventPropagationDirective, ElderSuggestionPanelComponent, ElderSvgViewerComponent, ElderTabDirective, ElderTabFocusTrapDirective, ElderTabGroupRoutingDirective, ElderTabModule, ElderTableActivationDirective, ElderTableComponent, ElderTableDropListConnectorDirective, ElderTableExtensionDirective, ElderTableGroup, ElderTableModel, ElderTableModelCdkTableBinding, ElderTableModelQueryGroup, ElderTableModule, ElderTableNavigationBarDirective, ElderTableProviders, ElderTableRootDirective, ElderTableSelectionCellComponent, ElderTableSortDirective, ElderTableToolbarDirective, ElderThemeApplierDirective, ElderThemeDirective, ElderThemeModule, ElderThemePreferenceService, ElderThemeService, ElderThemeToggleComponent, ElderTileComponent, ElderTimeModule, ElderToastModule, ElderToastService, ElderTogglePanelComponent, ElderTogglePanelPrimaryDirective, ElderTogglePanelSecondaryDirective, ElderTogglePanelTriggerDirective, ElderToggleTextInputDirective, ElderToolbarColumnDirective, ElderToolbarComponent, ElderToolbarContentDirective, ElderToolbarModule, ElderToolbarService, ElderToolbarTitleComponent, ElderToolbarTitleService, ElderTouchedDirective, ElderTripleStateCheckboxDirective, ElderTruncatePipe, ElderUnitSelectDirective, ElderUnitService, ElderUrlFragment, ElderUrlFragmentModule, ElderUrlFragmentParamsService, ElderUrlFragmentSwitcherComponent, ElderValidationErrorDirective, ElderViewersModule, EntitiesChangeEvent, EntityDelta, EntityIdUtil, EntitySetPatch, ErrorUtil, ExceptionDetailCtx, FallbackValidationMessageStrategy, 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, IncludeExcludeSelectionModel, IncludeExcludeState, IncludeExcludeValue, IndexedEntities, InternalRestClientConfig, Interval, IsoDurationPipe, IsoIntervalFormatUtil, IsoIntervalParsePipe, IsoIntervalPipe, ItemActivationEvent, ItemActivationOptions, JsonMapUtil, KafentConfig, KafentEvent, KafentEventService, KafentEventStream, KafentEventStreamDisabled, KafentEventStreamSse, KafentEventTransport, KafentModule, KafentSseEventChannel, KafentTokenProvider, KafentTokenProviderSessionStorage, KafentTopicSse, KnownElderThemes, KnownLocaleTags, LocalDataFilter, LocalListDataSource, LocalPagedDataSource, Locale, LocalisationPickerService, MasterDetailActivationEvent, MasterSelectionState, MatTableDataContextBinding, MatTableDataContextBindingBuilder, ModifierKeyService, ModifierKeyState, MultiModelBaseComponent, NamedColorDirective, NamedColorSelectDirective, NamedColorSelectValueComponent, NextNumberUtil, ObjectFieldMatcher, ObjectPathResolver, Objects, OnlineStatus, Page, PageRequest, Pageable, ParseUtil, Path, PathNode, PeriodBucket, PeriodDuration, PeriodFormat, PhoneFormatService, PhonePipe, ProcessIterationContext, ProcessState, PropertyPathUtil, Quantity, QueryListBinding, QuestionDialogConfig, ReactiveEventSource, ReactiveEventSourceState, ReactiveFetchEventSource, ReactiveFetchEventSourceService, ReactiveMap, ReactiveSSeMessage, RefreshingEntity, ResizeObserverDirective, RestClient, RestClientConfig, RestClientContinuable, RestClientList, RestClientPaged, RoutedTabActivationFailed, SearchInputState, SelectChipSpecUtil, SelectOptionChipSpecUtil, SelectionChangedEvent, SelectionEventSource, SelectionModel, SelectionModelPopupDirective, Sets, SimpleLocalisationPicker, SimpleSearchInput, Sort, SortUtil, StandardToastComponent, SubBar, SuggestionProvider, TargetValue, TemplateCompositeControl, TemplatedSelectionDialogComponent, TemporalPlainDateInterval, TemporalUtil, ThemeSpec, TimeAgoPipe, TimeDurationPipe, TimeUtil, ToIsoDateStringPipe, ToastType, TokenChunkRequest, ToolbarHeader, Translated, TranslatedConverter, TranslatedEnumValue, TranslatedText, TypedEventMessage, Unit, UnitDimension, UnitDimensionInfo, UnitInfo, UnitRegistry, UnreachableCaseError, UrlBuilder, UrlQueryParams, UuidUtil, ValueAccessorBase, ValueChangeEvent, ValueWrapper, ViewDropModelUpdateInstruction, ViewProviders, WebLocalStorage, WebSessionStorage, WebappDomainFragmentSpec, WebappDomainSpec, WebappDomainSpecService, WebappDomainSwitcherDirective, WebappUrlFragmentSwitcherConfig, WeightPipe, alphaNumStringComparator, booleanTransformFn, buildFormIntegrationProviders, coerceInterval, coerceIntervalIsoStr, createDataOptionsProvider, createSelectionModel, elderChipColorLevels, elderChipColorStates, elderNamedColorRoles, elderNamedColorToken, elderNamedColors, existingOrNewElderTableModel, initSearchUrlService, isActivePagedDataContext, isContinuableDataContext, isContinuableDataSource, isDataContext, isDataSource, isDataViewMessageType, isElderEntityValueAccessor, isElderMultiEntityValueAccessor, isListDataSource, isLocalListDataSource, isPagedDataSource, lazySample, lazySampleTime, naturalValueComparator, newElderTableModel, proxyControlContainer, registerLocale, runInZone, someSignal, themeInit };
39059
39039
  //# sourceMappingURL=elderbyte-ngx-starter.mjs.map