@elderbyte/ngx-starter 21.7.2 → 21.8.0-beta.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.
@@ -1,5 +1,5 @@
1
1
  import * as i2 from '@angular/common';
2
- import { formatDate, CommonModule, formatCurrency, getCurrencySymbol, AsyncPipe, NgTemplateOutlet, NgClass, NgStyle, formatNumber, DecimalPipe, DOCUMENT, DatePipe, registerLocaleData, CurrencyPipe } from '@angular/common';
2
+ import { formatDate, CommonModule, formatCurrency, getCurrencySymbol, AsyncPipe, NgTemplateOutlet, NgClass, NgStyle, formatNumber, DecimalPipe, DatePipe, registerLocaleData, DOCUMENT, CurrencyPipe } from '@angular/common';
3
3
  import * as i0 from '@angular/core';
4
4
  import { Pipe, LOCALE_ID, Inject, NgModule, Injectable, inject, Optional, SkipSelf, Input, Output, Directive, forwardRef, ViewChild, ElementRef, DestroyRef, model, signal, computed, untracked, HostBinding, ViewChildren, ContentChild, makeEnvironmentProviders, provideEnvironmentInitializer, ChangeDetectionStrategy, Component, Host, APP_INITIALIZER, TemplateRef, HostListener, EventEmitter, input, ViewEncapsulation, InjectionToken, output, effect, ContentChildren, contentChildren, viewChild, contentChild, viewChildren, linkedSignal, booleanAttribute, Injector, NgZone, Renderer2 } from '@angular/core';
5
5
  import * as i1 from '@angular/platform-browser';
@@ -10,7 +10,7 @@ import { timer, defer, ReplaySubject, concat, finalize, exhaustMap, BehaviorSubj
10
10
  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';
11
11
  import { Temporal } from '@js-temporal/polyfill';
12
12
  import * as i1$1 from '@angular/common/http';
13
- import { HttpParams, HttpEventType, HttpRequest, HttpClient, HttpErrorResponse, HTTP_INTERCEPTORS } from '@angular/common/http';
13
+ import { HttpParams, HttpEventType, HttpRequest, HttpClient, HttpErrorResponse, HTTP_INTERCEPTORS, HttpBackend } from '@angular/common/http';
14
14
  import { DataSource } from '@angular/cdk/collections';
15
15
  import { outputToObservable, takeUntilDestroyed, toSignal, toObservable, outputFromObservable } from '@angular/core/rxjs-interop';
16
16
  import * as i1$4 from '@angular/forms';
@@ -20,7 +20,7 @@ import { FocusMonitor, CdkTrapFocus, A11yModule } from '@angular/cdk/a11y';
20
20
  import * as i1$a from '@angular/material/form-field';
21
21
  import { MatFormField, MatFormFieldControl, MAT_FORM_FIELD_DEFAULT_OPTIONS, MatLabel, MatFormFieldModule, MatPrefix, MatHint, MatError, MatSuffix } from '@angular/material/form-field';
22
22
  import * as i1$2 from '@ngx-translate/core';
23
- import { TranslateModule, TranslateService } from '@ngx-translate/core';
23
+ import { TranslateModule, TranslateService, provideTranslateService, TranslateLoader, TranslatePipe } from '@ngx-translate/core';
24
24
  import * as i1$3 from '@angular/router';
25
25
  import { RouterModule, NavigationEnd, RouterLinkActive, RouterLink, RouterOutlet, convertToParamMap, EventType } from '@angular/router';
26
26
  import * as i1$f from '@angular/material/icon';
@@ -9478,6 +9478,12 @@ function simpleDeepMerge(target, source) {
9478
9478
  });
9479
9479
  return output;
9480
9480
  }
9481
+ function createElderDefaultTranslateLoader(_httpBackend) {
9482
+ return new ElderMultiTranslateHttpLoader(_httpBackend, [
9483
+ { prefix: './assets/ngx-starter/i18n/', suffix: '.json' },
9484
+ { prefix: './assets/i18n/', suffix: '.json' },
9485
+ ]);
9486
+ }
9481
9487
 
9482
9488
  class TranslatedEnumValue {
9483
9489
  constructor(value, displayValue) {
@@ -18080,7 +18086,7 @@ class ElderTableComponent extends ElderDataViewBaseComponent {
18080
18086
  provide: ELDER_DATA_VIEW,
18081
18087
  useExisting: forwardRef(() => ElderTableComponent),
18082
18088
  },
18083
- ], queries: [{ propertyName: "navigationBar", first: true, predicate: ElderTableNavigationBarDirective, descendants: true, read: TemplateRef, isSignal: true }, { propertyName: "columnDefs", predicate: MatColumnDef }, { propertyName: "elderColumns", predicate: ElderTableColumnDirective }, { propertyName: "rowDefs", predicate: MatRowDef }, { propertyName: "toolbarRowTemplateQuery", predicate: ElderTableToolbarDirective, read: TemplateRef }], viewQueries: [{ propertyName: "matTable", first: true, predicate: MatTable, descendants: true, static: true }, { propertyName: "rowsQuery", predicate: ElderTableRowDirective, descendants: true }], exportAs: ["elderTable"], usesInheritance: true, hostDirectives: [{ directive: DataViewInteractionControllerDirective }], ngImport: i0, template: "<div class=\"full\" style=\"overflow: hidden\">\n <div class=\"layout-col elder-table full\" [class.elder-table-dense-horizontal]=\"denseHorizontal()\">\n <!-- Toolbar Rows -->\n @for (toolbarRowTemplate of toolbarRowTemplates(); track toolbarRowTemplate) {\n <ng-template\n *ngTemplateOutlet=\"toolbarRowTemplate; context: { $implicit: this }\"\n ></ng-template>\n }\n\n <!-- Scrollable Table -->\n <div\n class=\"elder-table-inner layout-col {{\n isDataValid(viewData()) ? 'flex' : ''\n }} scrollable elder-table-scroll\"\n elderInfiniteScroll\n [eventThrottle]=\"150\"\n [offsetFactor]=\"2\"\n [ignoreScrollEvent]=\"!isContinuable || !canLoadMore()\"\n (closeToEnd)=\"requestMoreDataZoned($event)\"\n >\n <table\n mat-table\n [id]=\"id()\"\n class=\"elder-mat-inner-table\"\n [trackBy]=\"trackByFn\"\n [dataSource]=\"$any(dc())\"\n [elderDataContextSelection]=\"dc()\"\n #dataSelection=\"elderDataContextSelection\"\n [elderDataContextSelectionModel]=\"selectionModel\"\n elderTableDropListConnector\n [tableDropListConntectorId]=\"id()\"\n >\n <!-- selection Column -->\n <ng-container matColumnDef=\"select\">\n <th mat-header-cell *matHeaderCellDef>\n <elder-selection-master-checkbox></elder-selection-master-checkbox>\n </th>\n <td mat-cell *matCellDef=\"let entity\">\n <elder-table-selection-cell\n [entity]=\"entity\"\n class=\"elder-table-checkbox\"\n [class.elder-table-checkbox-visible]=\"dataSelection.selectionState().anySelected\"\n ></elder-table-selection-cell>\n </td>\n <td mat-footer-cell *matFooterCellDef></td>\n </ng-container>\n\n @if (!hideHeaderRow()) {\n <tr mat-header-row *matHeaderRowDef=\"displayedColumnsInner(); sticky: true\"></tr>\n }\n <tr\n mat-row\n class=\"elder-table-row\"\n *matRowDef=\"let entity; columns: displayedColumnsInner()\"\n [elderDataViewItemDrag]=\"entity\"\n [elderTableRow]=\"entity\"\n [highlightSelection]=\"interactionMode === 'selection'\"\n [class.dense]=\"dense()\"\n [class.elder-row-hidden]=\"hiddenField && entity[hiddenField]\"\n [class.elder-row-removing]=\"removingField && entity[removingField]\"\n (click)=\"onItemClick(entity, $event)\"\n (dblclick)=\"onItemDoubleClick(entity)\"\n ></tr>\n @if (showFooterRow()) {\n <tr mat-footer-row *matFooterRowDef=\"displayedColumnsInner(); sticky: true\"></tr>\n }\n </table>\n </div>\n\n @if (!isDataValid(viewData())) {\n <elder-data-context-state-indicator class=\"flex\" [dataContext]=\"dataContext\">\n </elder-data-context-state-indicator>\n }\n\n <mat-progress-bar\n class=\"flex-none mt-auto\"\n [mode]=\"dcStatus()?.loading ? 'indeterminate' : 'determinate'\"\n [color]=\"dcStatus()?.hasError ? 'warn' : 'primary'\"\n >\n </mat-progress-bar>\n\n <ng-template\n *ngTemplateOutlet=\"navigationBar() ?? defaultNavigationBar; context: { $implicit: this }\"\n ></ng-template>\n </div>\n</div>\n\n<ng-template #defaultNavigationBar>\n <elder-data-navigation></elder-data-navigation>\n</ng-template>\n", styles: [":host{min-width:0;min-height:0}\n"], dependencies: [{ kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: ElderInfiniteScrollDirective, selector: "[elderInfiniteScroll]", inputs: ["listenToHost", "eventThrottle", "offsetFactor", "ignoreScrollEvent", "containerId", "scrollContainer"], outputs: ["closeToEnd", "scrolling"] }, { kind: "component", type: MatTable, selector: "mat-table, table[mat-table]", exportAs: ["matTable"] }, { kind: "directive", type: DataContextSelectionDirective, selector: "[elderDataContextSelection]", inputs: ["elderDataContextSelectionModel", "elderDataContextSelection"], exportAs: ["elderDataContextSelection"] }, { kind: "directive", type: MatColumnDef, selector: "[matColumnDef]", inputs: ["matColumnDef"] }, { kind: "directive", type: MatHeaderCellDef, selector: "[matHeaderCellDef]" }, { kind: "directive", type: MatHeaderCell, selector: "mat-header-cell, th[mat-header-cell]" }, { kind: "component", type: ElderSelectionMasterCheckboxComponent, selector: "elder-selection-master-checkbox" }, { kind: "directive", type: MatCellDef, selector: "[matCellDef]" }, { kind: "directive", type: MatCell, selector: "mat-cell, td[mat-cell]" }, { kind: "directive", type: MatFooterCellDef, selector: "[matFooterCellDef]" }, { kind: "directive", type: MatFooterCell, selector: "mat-footer-cell, td[mat-footer-cell]" }, { kind: "directive", type: MatHeaderRowDef, selector: "[matHeaderRowDef]", inputs: ["matHeaderRowDef", "matHeaderRowDefSticky"] }, { kind: "component", type: MatHeaderRow, selector: "mat-header-row, tr[mat-header-row]", exportAs: ["matHeaderRow"] }, { kind: "directive", type: MatRowDef, selector: "[matRowDef]", inputs: ["matRowDefColumns", "matRowDefWhen"] }, { kind: "component", type: MatRow, selector: "mat-row, tr[mat-row]", exportAs: ["matRow"] }, { kind: "directive", type: ElderTableRowDirective, selector: "tr[elderTableRow]", inputs: ["elderTableRow", "highlightSelection"], exportAs: ["elderTableRow"] }, { kind: "directive", type: MatFooterRowDef, selector: "[matFooterRowDef]", inputs: ["matFooterRowDef", "matFooterRowDefSticky"] }, { kind: "component", type: MatFooterRow, selector: "mat-footer-row, tr[mat-footer-row]", exportAs: ["matFooterRow"] }, { kind: "component", type: DataContextStateIndicatorComponent, selector: "elder-data-context-state-indicator", inputs: ["dataContext"] }, { kind: "component", type: MatProgressBar, selector: "mat-progress-bar", inputs: ["color", "value", "bufferValue", "mode"], outputs: ["animationEnd"], exportAs: ["matProgressBar"] }, { kind: "directive", type: ElderDataViewItemDragDirective, selector: "[elderDataViewItemDrag]", inputs: ["elderDataViewItemDrag", "canDragItem"] }, { kind: "directive", type: ElderTableDropListConnectorDirective, selector: "[elderTableDropListConnector]", inputs: ["tableDropListConntectorId"] }, { kind: "component", type: ElderTableSelectionCellComponent, selector: "elder-table-selection-cell", inputs: ["entity"] }, { kind: "component", type: ElderDataNavigationComponent, selector: "elder-data-navigation" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
18089
+ ], queries: [{ propertyName: "navigationBar", first: true, predicate: ElderTableNavigationBarDirective, descendants: true, read: TemplateRef, isSignal: true }, { propertyName: "columnDefs", predicate: MatColumnDef }, { propertyName: "elderColumns", predicate: ElderTableColumnDirective }, { propertyName: "rowDefs", predicate: MatRowDef }, { propertyName: "toolbarRowTemplateQuery", predicate: ElderTableToolbarDirective, read: TemplateRef }], viewQueries: [{ propertyName: "matTable", first: true, predicate: MatTable, descendants: true, static: true }, { propertyName: "rowsQuery", predicate: ElderTableRowDirective, descendants: true }], exportAs: ["elderTable"], usesInheritance: true, hostDirectives: [{ directive: DataViewInteractionControllerDirective }], ngImport: i0, template: "<div class=\"full\" style=\"overflow: hidden\">\n <div class=\"layout-col elder-table full\" [class.elder-table-dense-horizontal]=\"denseHorizontal()\">\n <!-- Toolbar Rows -->\n @for (toolbarRowTemplate of toolbarRowTemplates(); track toolbarRowTemplate) {\n <ng-template\n *ngTemplateOutlet=\"toolbarRowTemplate; context: { $implicit: this }\"\n ></ng-template>\n }\n\n <!-- Scrollable Table -->\n <div\n class=\"elder-table-inner layout-col {{\n isDataValid(viewData()) ? 'flex' : ''\n }} scrollable elder-table-scroll\"\n elderInfiniteScroll\n [eventThrottle]=\"150\"\n [offsetFactor]=\"2\"\n [ignoreScrollEvent]=\"!isContinuable || !canLoadMore()\"\n (closeToEnd)=\"requestMoreDataZoned($event)\"\n >\n <table\n mat-table\n [id]=\"id()\"\n class=\"elder-mat-inner-table\"\n [trackBy]=\"trackByFn\"\n [dataSource]=\"$any(dc())\"\n [elderDataContextSelection]=\"dc()\"\n #dataSelection=\"elderDataContextSelection\"\n [elderDataContextSelectionModel]=\"selectionModel\"\n elderTableDropListConnector\n [tableDropListConntectorId]=\"id()\"\n >\n <!-- selection Column -->\n <ng-container matColumnDef=\"select\">\n <th mat-header-cell *matHeaderCellDef style=\"width: 0%\">\n <elder-selection-master-checkbox></elder-selection-master-checkbox>\n </th>\n <td mat-cell *matCellDef=\"let entity\">\n <elder-table-selection-cell\n [entity]=\"entity\"\n class=\"elder-table-checkbox\"\n [class.elder-table-checkbox-visible]=\"dataSelection.selectionState().anySelected\"\n ></elder-table-selection-cell>\n </td>\n <td mat-footer-cell *matFooterCellDef></td>\n </ng-container>\n\n @if (!hideHeaderRow()) {\n <tr mat-header-row *matHeaderRowDef=\"displayedColumnsInner(); sticky: true\"></tr>\n }\n <tr\n mat-row\n class=\"elder-table-row\"\n *matRowDef=\"let entity; columns: displayedColumnsInner()\"\n [elderDataViewItemDrag]=\"entity\"\n [elderTableRow]=\"entity\"\n [highlightSelection]=\"interactionMode === 'selection'\"\n [class.dense]=\"dense()\"\n [class.elder-row-hidden]=\"hiddenField && entity[hiddenField]\"\n [class.elder-row-removing]=\"removingField && entity[removingField]\"\n (click)=\"onItemClick(entity, $event)\"\n (dblclick)=\"onItemDoubleClick(entity)\"\n ></tr>\n @if (showFooterRow()) {\n <tr mat-footer-row *matFooterRowDef=\"displayedColumnsInner(); sticky: true\"></tr>\n }\n </table>\n </div>\n\n @if (!isDataValid(viewData())) {\n <elder-data-context-state-indicator class=\"flex\" [dataContext]=\"dataContext\">\n </elder-data-context-state-indicator>\n }\n\n <mat-progress-bar\n class=\"flex-none mt-auto\"\n [mode]=\"dcStatus()?.loading ? 'indeterminate' : 'determinate'\"\n [color]=\"dcStatus()?.hasError ? 'warn' : 'primary'\"\n >\n </mat-progress-bar>\n\n <ng-template\n *ngTemplateOutlet=\"navigationBar() ?? defaultNavigationBar; context: { $implicit: this }\"\n ></ng-template>\n </div>\n</div>\n\n<ng-template #defaultNavigationBar>\n <elder-data-navigation></elder-data-navigation>\n</ng-template>\n", styles: [":host{min-width:0;min-height:0}\n"], dependencies: [{ kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: ElderInfiniteScrollDirective, selector: "[elderInfiniteScroll]", inputs: ["listenToHost", "eventThrottle", "offsetFactor", "ignoreScrollEvent", "containerId", "scrollContainer"], outputs: ["closeToEnd", "scrolling"] }, { kind: "component", type: MatTable, selector: "mat-table, table[mat-table]", exportAs: ["matTable"] }, { kind: "directive", type: DataContextSelectionDirective, selector: "[elderDataContextSelection]", inputs: ["elderDataContextSelectionModel", "elderDataContextSelection"], exportAs: ["elderDataContextSelection"] }, { kind: "directive", type: MatColumnDef, selector: "[matColumnDef]", inputs: ["matColumnDef"] }, { kind: "directive", type: MatHeaderCellDef, selector: "[matHeaderCellDef]" }, { kind: "directive", type: MatHeaderCell, selector: "mat-header-cell, th[mat-header-cell]" }, { kind: "component", type: ElderSelectionMasterCheckboxComponent, selector: "elder-selection-master-checkbox" }, { kind: "directive", type: MatCellDef, selector: "[matCellDef]" }, { kind: "directive", type: MatCell, selector: "mat-cell, td[mat-cell]" }, { kind: "directive", type: MatFooterCellDef, selector: "[matFooterCellDef]" }, { kind: "directive", type: MatFooterCell, selector: "mat-footer-cell, td[mat-footer-cell]" }, { kind: "directive", type: MatHeaderRowDef, selector: "[matHeaderRowDef]", inputs: ["matHeaderRowDef", "matHeaderRowDefSticky"] }, { kind: "component", type: MatHeaderRow, selector: "mat-header-row, tr[mat-header-row]", exportAs: ["matHeaderRow"] }, { kind: "directive", type: MatRowDef, selector: "[matRowDef]", inputs: ["matRowDefColumns", "matRowDefWhen"] }, { kind: "component", type: MatRow, selector: "mat-row, tr[mat-row]", exportAs: ["matRow"] }, { kind: "directive", type: ElderTableRowDirective, selector: "tr[elderTableRow]", inputs: ["elderTableRow", "highlightSelection"], exportAs: ["elderTableRow"] }, { kind: "directive", type: MatFooterRowDef, selector: "[matFooterRowDef]", inputs: ["matFooterRowDef", "matFooterRowDefSticky"] }, { kind: "component", type: MatFooterRow, selector: "mat-footer-row, tr[mat-footer-row]", exportAs: ["matFooterRow"] }, { kind: "component", type: DataContextStateIndicatorComponent, selector: "elder-data-context-state-indicator", inputs: ["dataContext"] }, { kind: "component", type: MatProgressBar, selector: "mat-progress-bar", inputs: ["color", "value", "bufferValue", "mode"], outputs: ["animationEnd"], exportAs: ["matProgressBar"] }, { kind: "directive", type: ElderDataViewItemDragDirective, selector: "[elderDataViewItemDrag]", inputs: ["elderDataViewItemDrag", "canDragItem"] }, { kind: "directive", type: ElderTableDropListConnectorDirective, selector: "[elderTableDropListConnector]", inputs: ["tableDropListConntectorId"] }, { kind: "component", type: ElderTableSelectionCellComponent, selector: "elder-table-selection-cell", inputs: ["entity"] }, { kind: "component", type: ElderDataNavigationComponent, selector: "elder-data-navigation" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
18084
18090
  }
18085
18091
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.6", ngImport: i0, type: ElderTableComponent, decorators: [{
18086
18092
  type: Component,
@@ -18116,7 +18122,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.6", ngImpor
18116
18122
  ElderTableDropListConnectorDirective,
18117
18123
  ElderTableSelectionCellComponent,
18118
18124
  ElderDataNavigationComponent,
18119
- ], template: "<div class=\"full\" style=\"overflow: hidden\">\n <div class=\"layout-col elder-table full\" [class.elder-table-dense-horizontal]=\"denseHorizontal()\">\n <!-- Toolbar Rows -->\n @for (toolbarRowTemplate of toolbarRowTemplates(); track toolbarRowTemplate) {\n <ng-template\n *ngTemplateOutlet=\"toolbarRowTemplate; context: { $implicit: this }\"\n ></ng-template>\n }\n\n <!-- Scrollable Table -->\n <div\n class=\"elder-table-inner layout-col {{\n isDataValid(viewData()) ? 'flex' : ''\n }} scrollable elder-table-scroll\"\n elderInfiniteScroll\n [eventThrottle]=\"150\"\n [offsetFactor]=\"2\"\n [ignoreScrollEvent]=\"!isContinuable || !canLoadMore()\"\n (closeToEnd)=\"requestMoreDataZoned($event)\"\n >\n <table\n mat-table\n [id]=\"id()\"\n class=\"elder-mat-inner-table\"\n [trackBy]=\"trackByFn\"\n [dataSource]=\"$any(dc())\"\n [elderDataContextSelection]=\"dc()\"\n #dataSelection=\"elderDataContextSelection\"\n [elderDataContextSelectionModel]=\"selectionModel\"\n elderTableDropListConnector\n [tableDropListConntectorId]=\"id()\"\n >\n <!-- selection Column -->\n <ng-container matColumnDef=\"select\">\n <th mat-header-cell *matHeaderCellDef>\n <elder-selection-master-checkbox></elder-selection-master-checkbox>\n </th>\n <td mat-cell *matCellDef=\"let entity\">\n <elder-table-selection-cell\n [entity]=\"entity\"\n class=\"elder-table-checkbox\"\n [class.elder-table-checkbox-visible]=\"dataSelection.selectionState().anySelected\"\n ></elder-table-selection-cell>\n </td>\n <td mat-footer-cell *matFooterCellDef></td>\n </ng-container>\n\n @if (!hideHeaderRow()) {\n <tr mat-header-row *matHeaderRowDef=\"displayedColumnsInner(); sticky: true\"></tr>\n }\n <tr\n mat-row\n class=\"elder-table-row\"\n *matRowDef=\"let entity; columns: displayedColumnsInner()\"\n [elderDataViewItemDrag]=\"entity\"\n [elderTableRow]=\"entity\"\n [highlightSelection]=\"interactionMode === 'selection'\"\n [class.dense]=\"dense()\"\n [class.elder-row-hidden]=\"hiddenField && entity[hiddenField]\"\n [class.elder-row-removing]=\"removingField && entity[removingField]\"\n (click)=\"onItemClick(entity, $event)\"\n (dblclick)=\"onItemDoubleClick(entity)\"\n ></tr>\n @if (showFooterRow()) {\n <tr mat-footer-row *matFooterRowDef=\"displayedColumnsInner(); sticky: true\"></tr>\n }\n </table>\n </div>\n\n @if (!isDataValid(viewData())) {\n <elder-data-context-state-indicator class=\"flex\" [dataContext]=\"dataContext\">\n </elder-data-context-state-indicator>\n }\n\n <mat-progress-bar\n class=\"flex-none mt-auto\"\n [mode]=\"dcStatus()?.loading ? 'indeterminate' : 'determinate'\"\n [color]=\"dcStatus()?.hasError ? 'warn' : 'primary'\"\n >\n </mat-progress-bar>\n\n <ng-template\n *ngTemplateOutlet=\"navigationBar() ?? defaultNavigationBar; context: { $implicit: this }\"\n ></ng-template>\n </div>\n</div>\n\n<ng-template #defaultNavigationBar>\n <elder-data-navigation></elder-data-navigation>\n</ng-template>\n", styles: [":host{min-width:0;min-height:0}\n"] }]
18125
+ ], template: "<div class=\"full\" style=\"overflow: hidden\">\n <div class=\"layout-col elder-table full\" [class.elder-table-dense-horizontal]=\"denseHorizontal()\">\n <!-- Toolbar Rows -->\n @for (toolbarRowTemplate of toolbarRowTemplates(); track toolbarRowTemplate) {\n <ng-template\n *ngTemplateOutlet=\"toolbarRowTemplate; context: { $implicit: this }\"\n ></ng-template>\n }\n\n <!-- Scrollable Table -->\n <div\n class=\"elder-table-inner layout-col {{\n isDataValid(viewData()) ? 'flex' : ''\n }} scrollable elder-table-scroll\"\n elderInfiniteScroll\n [eventThrottle]=\"150\"\n [offsetFactor]=\"2\"\n [ignoreScrollEvent]=\"!isContinuable || !canLoadMore()\"\n (closeToEnd)=\"requestMoreDataZoned($event)\"\n >\n <table\n mat-table\n [id]=\"id()\"\n class=\"elder-mat-inner-table\"\n [trackBy]=\"trackByFn\"\n [dataSource]=\"$any(dc())\"\n [elderDataContextSelection]=\"dc()\"\n #dataSelection=\"elderDataContextSelection\"\n [elderDataContextSelectionModel]=\"selectionModel\"\n elderTableDropListConnector\n [tableDropListConntectorId]=\"id()\"\n >\n <!-- selection Column -->\n <ng-container matColumnDef=\"select\">\n <th mat-header-cell *matHeaderCellDef style=\"width: 0%\">\n <elder-selection-master-checkbox></elder-selection-master-checkbox>\n </th>\n <td mat-cell *matCellDef=\"let entity\">\n <elder-table-selection-cell\n [entity]=\"entity\"\n class=\"elder-table-checkbox\"\n [class.elder-table-checkbox-visible]=\"dataSelection.selectionState().anySelected\"\n ></elder-table-selection-cell>\n </td>\n <td mat-footer-cell *matFooterCellDef></td>\n </ng-container>\n\n @if (!hideHeaderRow()) {\n <tr mat-header-row *matHeaderRowDef=\"displayedColumnsInner(); sticky: true\"></tr>\n }\n <tr\n mat-row\n class=\"elder-table-row\"\n *matRowDef=\"let entity; columns: displayedColumnsInner()\"\n [elderDataViewItemDrag]=\"entity\"\n [elderTableRow]=\"entity\"\n [highlightSelection]=\"interactionMode === 'selection'\"\n [class.dense]=\"dense()\"\n [class.elder-row-hidden]=\"hiddenField && entity[hiddenField]\"\n [class.elder-row-removing]=\"removingField && entity[removingField]\"\n (click)=\"onItemClick(entity, $event)\"\n (dblclick)=\"onItemDoubleClick(entity)\"\n ></tr>\n @if (showFooterRow()) {\n <tr mat-footer-row *matFooterRowDef=\"displayedColumnsInner(); sticky: true\"></tr>\n }\n </table>\n </div>\n\n @if (!isDataValid(viewData())) {\n <elder-data-context-state-indicator class=\"flex\" [dataContext]=\"dataContext\">\n </elder-data-context-state-indicator>\n }\n\n <mat-progress-bar\n class=\"flex-none mt-auto\"\n [mode]=\"dcStatus()?.loading ? 'indeterminate' : 'determinate'\"\n [color]=\"dcStatus()?.hasError ? 'warn' : 'primary'\"\n >\n </mat-progress-bar>\n\n <ng-template\n *ngTemplateOutlet=\"navigationBar() ?? defaultNavigationBar; context: { $implicit: this }\"\n ></ng-template>\n </div>\n</div>\n\n<ng-template #defaultNavigationBar>\n <elder-data-navigation></elder-data-navigation>\n</ng-template>\n", styles: [":host{min-width:0;min-height:0}\n"] }]
18120
18126
  }], ctorParameters: () => [{ type: ElderTableModel }, { type: SelectionModel, decorators: [{
18121
18127
  type: Optional
18122
18128
  }] }, { type: ElderDataViewOptionsProvider, decorators: [{
@@ -21548,109 +21554,107 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.6", ngImpor
21548
21554
  type: Input
21549
21555
  }] } });
21550
21556
 
21557
+ const ELDER_LANGUAGE_OPTIONS = new InjectionToken('ELDER_LANGUAGE_OPTIONS');
21558
+
21559
+ const LANGUAGE_STORAGE_KEY = 'language';
21560
+ const DEFAULT_LANGS = ['de', 'en'];
21561
+ const DEFAULT_FALLBACK_LANG = 'de';
21551
21562
  class ElderLanguageService {
21552
21563
  /***************************************************************************
21553
21564
  * *
21554
- * Constructors *
21565
+ * Legacy Compatiblity *
21555
21566
  * *
21556
21567
  **************************************************************************/
21557
- constructor(translate, webStorage) {
21558
- this.translate = translate;
21559
- this.webStorage = webStorage;
21568
+ get currentLanguage$() {
21569
+ return toObservable(this.currentLang);
21570
+ }
21571
+ /***************************************************************************
21572
+ * *
21573
+ * Constructor *
21574
+ * *
21575
+ **************************************************************************/
21576
+ constructor() {
21577
+ this.webStorage = inject(WebLocalStorage);
21578
+ this.config = inject(ELDER_LANGUAGE_OPTIONS);
21579
+ this.logger = LoggerFactory.getLogger(this.constructor.name);
21560
21580
  /***************************************************************************
21561
21581
  * *
21562
- * Fields *
21582
+ * State *
21563
21583
  * *
21564
21584
  **************************************************************************/
21565
- this.logger = LoggerFactory.getLogger(this.constructor.name);
21566
- this.LANGUAGE_STORAGE_KEY = 'language';
21567
- this.currentLanguage$ = new BehaviorSubject(this.translate.currentLang);
21568
- this.translate.onLangChange.subscribe((change) => this.currentLanguage$.next(change.lang));
21569
- this.applyPreferredLanguage();
21585
+ this._langs = signal(null, ...(ngDevMode ? [{ debugName: "_langs" }] : /* istanbul ignore next */ []));
21586
+ this._defaultLang = signal(null, ...(ngDevMode ? [{ debugName: "_defaultLang" }] : /* istanbul ignore next */ []));
21587
+ this._currentLang = signal(null, ...(ngDevMode ? [{ debugName: "_currentLang" }] : /* istanbul ignore next */ []));
21588
+ this._browserLang = getBrowserPreferredLang();
21589
+ this._storedPreferredLang = this.getStoredPreferredLang();
21590
+ /***************************************************************************
21591
+ * *
21592
+ * Computed *
21593
+ * *
21594
+ **************************************************************************/
21595
+ this.currentLang = this._currentLang.asReadonly();
21596
+ this.defaultLang = this._defaultLang.asReadonly();
21597
+ this.langs = this._langs.asReadonly();
21570
21598
  }
21571
21599
  /***************************************************************************
21572
21600
  * *
21573
21601
  * Public API *
21574
21602
  * *
21575
21603
  **************************************************************************/
21576
- /**
21577
- * Returns the key of the currently applied language.
21578
- *
21579
- * @returns language key
21580
- */
21581
- get currentLanguage() {
21582
- return this.currentLanguage$.getValue();
21583
- }
21584
- /**
21585
- * Applies the given language which will immediately get apparent
21586
- * in the UI.
21587
- *
21588
- * @param lang language key
21589
- */
21590
- set currentLanguage(lang) {
21591
- this.setLanguageAndRemember(lang);
21592
- }
21593
- /**
21594
- * Returns an array of all available language keys.
21595
- *
21596
- * @returns e.g. ['en', 'de', 'fr']
21597
- */
21598
- get languages() {
21599
- return this.translate.getLangs();
21600
- }
21601
- /**
21602
- * Checks if the given language is currently active.
21603
- *
21604
- * @param lang language key
21605
- * @returns true if given language is currently active
21606
- */
21607
- isLanguageActive(lang) {
21608
- return this.currentLanguage === lang;
21604
+ setCurrentLang(lang) {
21605
+ if (!this.isSupported(lang)) {
21606
+ this.logger.warn('cannot set lang', lang, 'since it is not in supported langs', this._langs());
21607
+ return;
21608
+ }
21609
+ this.logger.warn('setting lang', lang);
21610
+ this.webStorage.setItem(LANGUAGE_STORAGE_KEY, lang);
21611
+ this._currentLang.set(lang);
21609
21612
  }
21610
- /**
21611
- * Returns the key of the last applied language.
21612
- *
21613
- * @returns language key of last applied language
21614
- */
21615
- get lastConfigured() {
21616
- return this.lookupPreferredLanguage();
21613
+ init() {
21614
+ this.logger.warn('initializing elder language service...');
21615
+ if (this._currentLang()) {
21616
+ this.logger.warn('elder language service already initialized, skipping...');
21617
+ return;
21618
+ }
21619
+ this.setLangs(this.config?.langs);
21620
+ this.setDefaultLang(this.config?.defaultLang);
21621
+ this.setInitialLang();
21617
21622
  }
21618
21623
  /***************************************************************************
21619
21624
  * *
21620
- * Public API *
21625
+ * Private Methods *
21621
21626
  * *
21622
21627
  **************************************************************************/
21623
- lookupPreferredLanguage() {
21624
- return this.webStorage.getItem(this.LANGUAGE_STORAGE_KEY);
21625
- }
21626
- forgetPreferredLanguage() {
21627
- this.webStorage.removeItem(this.LANGUAGE_STORAGE_KEY);
21628
+ setLangs(langs) {
21629
+ if (!langs?.length) {
21630
+ throw new Error('Cannot set langs since it is not an array or empty');
21631
+ }
21632
+ this._langs.set(langs);
21628
21633
  }
21629
- rememberPreferredLanguage(lang) {
21630
- this.webStorage.setItem(this.LANGUAGE_STORAGE_KEY, lang);
21634
+ setDefaultLang(lang) {
21635
+ if (!this._langs().includes(lang)) {
21636
+ throw new Error(`Cannot set default lang ${lang} since it is not in supported langs ${this._langs()}`);
21637
+ }
21638
+ this._defaultLang.set(lang);
21631
21639
  }
21632
- applyPreferredLanguage() {
21633
- const preferred = this.lookupPreferredLanguage();
21634
- if (preferred) {
21635
- this.setLanguage(preferred);
21640
+ setInitialLang() {
21641
+ if (this._storedPreferredLang && this.isSupported(this._storedPreferredLang)) {
21642
+ this._currentLang.set(this._storedPreferredLang);
21643
+ return;
21636
21644
  }
21637
- else {
21638
- this.translate.use(this.translate.getBrowserLang());
21645
+ if (this._browserLang && this.isSupported(this._browserLang)) {
21646
+ this._currentLang.set(this._browserLang);
21647
+ return;
21639
21648
  }
21649
+ this._currentLang.set(this._defaultLang());
21640
21650
  }
21641
- /***************************************************************************
21642
- * *
21643
- * Private Methods *
21644
- * *
21645
- **************************************************************************/
21646
- setLanguageAndRemember(lang) {
21647
- this.setLanguage(lang);
21648
- this.rememberPreferredLanguage(lang);
21651
+ isSupported(lang) {
21652
+ return this._langs().includes(lang);
21649
21653
  }
21650
- setLanguage(lang) {
21651
- this.translate.use(lang);
21654
+ getStoredPreferredLang() {
21655
+ return this.webStorage.getItem(LANGUAGE_STORAGE_KEY);
21652
21656
  }
21653
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.6", ngImport: i0, type: ElderLanguageService, deps: [{ token: i1$2.TranslateService }, { token: WebLocalStorage }], target: i0.ɵɵFactoryTarget.Injectable }); }
21657
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.6", ngImport: i0, type: ElderLanguageService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
21654
21658
  static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.6", ngImport: i0, type: ElderLanguageService, providedIn: 'root' }); }
21655
21659
  }
21656
21660
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.6", ngImport: i0, type: ElderLanguageService, decorators: [{
@@ -21658,7 +21662,34 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.6", ngImpor
21658
21662
  args: [{
21659
21663
  providedIn: 'root',
21660
21664
  }]
21661
- }], ctorParameters: () => [{ type: i1$2.TranslateService }, { type: WebLocalStorage }] });
21665
+ }], ctorParameters: () => [] });
21666
+ /***************************************************************************
21667
+ * *
21668
+ * Helper Functions *
21669
+ * *
21670
+ **************************************************************************/
21671
+ /**
21672
+ * Browser Language code: "de", "fr", "en", etc.
21673
+ */
21674
+ function getBrowserPreferredLang() {
21675
+ if (typeof window === 'undefined' || !window.navigator) {
21676
+ return undefined;
21677
+ }
21678
+ const cultureLang = getBrowserCultureLang();
21679
+ if (!cultureLang || typeof cultureLang !== 'string') {
21680
+ return undefined;
21681
+ }
21682
+ return cultureLang.split(/[-_]/)[0];
21683
+ }
21684
+ /**
21685
+ * Browser Culture language code: "ch-DE", "fr-FR", "en-US", etc.
21686
+ */
21687
+ function getBrowserCultureLang() {
21688
+ if (typeof window === 'undefined' || !window.navigator) {
21689
+ return undefined;
21690
+ }
21691
+ return window.navigator.languages ? window.navigator.languages[0] : window.navigator.language;
21692
+ }
21662
21693
 
21663
21694
  class ElderLanguageSwitcherComponent {
21664
21695
  /***************************************************************************
@@ -21676,13 +21707,13 @@ class ElderLanguageSwitcherComponent {
21676
21707
  * *
21677
21708
  **************************************************************************/
21678
21709
  get currentLanguage() {
21679
- return this.language.currentLanguage;
21710
+ return this.language.currentLang();
21680
21711
  }
21681
21712
  set currentLanguage(lang) {
21682
- this.language.currentLanguage = lang;
21713
+ this.language.setCurrentLang(lang);
21683
21714
  }
21684
21715
  get languages() {
21685
- return this.language.languages;
21716
+ return this.language.langs();
21686
21717
  }
21687
21718
  setLanguage(lang) {
21688
21719
  this.currentLanguage = lang;
@@ -21699,7 +21730,7 @@ class ElderLanguageSwitcherComponent {
21699
21730
  * *
21700
21731
  **************************************************************************/
21701
21732
  isLanguageActive(lang) {
21702
- return this.language.isLanguageActive(lang);
21733
+ return this.language.currentLang() === lang;
21703
21734
  }
21704
21735
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.6", ngImport: i0, type: ElderLanguageSwitcherComponent, deps: [{ token: ElderLanguageService }], target: i0.ɵɵFactoryTarget.Component }); }
21705
21736
  static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.6", type: ElderLanguageSwitcherComponent, isStandalone: true, selector: "elder-language-switcher", inputs: { slimMode: "slimMode" }, ngImport: i0, template: "<mat-menu #languageMenu=\"matMenu\">\n @for (lang of languages; track lang) {\n <button mat-menu-item type=\"button\" (click)=\"currentLanguage = lang\">\n <mat-icon>language</mat-icon>\n <span class=\"text-body-large\" [class.active]=\"isLanguageActive(lang)\">{{\n 'language.' + lang | translate\n }}</span>\n </button>\n }\n</mat-menu>\n\n@if (slimMode) {\n <button mat-button type=\"button\" [matMenuTriggerFor]=\"languageMenu\">\n <div class=\"layout-row place-start-center\">\n <mat-icon>language</mat-icon>\n <span class=\"language\">{{ currentLanguage }}</span>\n </div>\n </button>\n}\n\n@if (!slimMode) {\n <mat-form-field>\n <mat-select\n placeholder=\"{{ 'language.language' | translate }}\"\n name=\"language\"\n [(ngModel)]=\"currentLanguage\"\n >\n @for (lang of languages; track lang) {\n <mat-option [value]=\"lang\">{{ 'language.' + lang | translate }}</mat-option>\n }\n </mat-select>\n </mat-form-field>\n}\n", styles: [".language{font-size:16px;text-transform:uppercase}.active{font-weight:700}\n"], dependencies: [{ kind: "component", type: MatMenu, selector: "mat-menu", inputs: ["backdropClass", "aria-label", "aria-labelledby", "aria-describedby", "xPosition", "yPosition", "overlapTrigger", "hasBackdrop", "class", "classList"], outputs: ["closed", "close"], exportAs: ["matMenu"] }, { kind: "component", type: MatMenuItem, selector: "[mat-menu-item]", inputs: ["role", "disabled", "disableRipple"], exportAs: ["matMenuItem"] }, { kind: "component", type: MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: MatButton, selector: " button[matButton], a[matButton], button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button], a[mat-button], a[mat-raised-button], a[mat-flat-button], a[mat-stroked-button] ", inputs: ["matButton"], exportAs: ["matButton", "matAnchor"] }, { kind: "directive", type: MatMenuTrigger, selector: "[mat-menu-trigger-for], [matMenuTriggerFor]", inputs: ["mat-menu-trigger-for", "matMenuTriggerFor", "matMenuTriggerData", "matMenuTriggerRestoreFocus"], outputs: ["menuOpened", "onMenuOpen", "menuClosed", "onMenuClose"], exportAs: ["matMenuTrigger"] }, { kind: "component", type: MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "component", type: MatSelect, selector: "mat-select", inputs: ["aria-describedby", "panelClass", "disabled", "disableRipple", "tabIndex", "hideSingleSelectionIndicator", "placeholder", "required", "multiple", "disableOptionCentering", "compareWith", "value", "aria-label", "aria-labelledby", "errorStateMatcher", "typeaheadDebounceInterval", "sortComparator", "id", "panelWidth", "canSelectNullableOptions"], outputs: ["openedChange", "opened", "closed", "selectionChange", "valueChange"], exportAs: ["matSelect"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1$4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$4.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: MatOption, selector: "mat-option", inputs: ["value", "id", "disabled"], outputs: ["onSelectionChange"], exportAs: ["matOption"] }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i1$2.TranslatePipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
@@ -29118,35 +29149,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.6", ngImpor
29118
29149
  }]
29119
29150
  }] });
29120
29151
 
29121
- /**
29122
- * This service updates the HTML lang attribute based on the current language.
29123
- * (Manipulates the DOM directly)
29124
- */
29125
- class ElderHtmlLangAttributeService {
29126
- /***************************************************************************
29127
- * *
29128
- * Constructor *
29129
- * *
29130
- **************************************************************************/
29131
- constructor() {
29132
- this.languageService = inject(ElderLanguageService);
29133
- this.htmlDocument = inject(DOCUMENT);
29134
- this.languageService.currentLanguage$.subscribe((lang) => {
29135
- if (lang) {
29136
- this.htmlDocument.documentElement.setAttribute('lang', lang);
29137
- }
29138
- });
29139
- }
29140
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.6", ngImport: i0, type: ElderHtmlLangAttributeService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
29141
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.6", ngImport: i0, type: ElderHtmlLangAttributeService, providedIn: 'root' }); }
29142
- }
29143
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.6", ngImport: i0, type: ElderHtmlLangAttributeService, decorators: [{
29144
- type: Injectable,
29145
- args: [{
29146
- providedIn: 'root',
29147
- }]
29148
- }], ctorParameters: () => [] });
29149
-
29150
29152
  /**
29151
29153
  * Bootstrap service that initializes services on startup.
29152
29154
  */
@@ -29182,7 +29184,6 @@ class ElderServicesBootstrap {
29182
29184
  }
29183
29185
  initializeServices() {
29184
29186
  inject(ElderThemeService);
29185
- inject(ElderHtmlLangAttributeService);
29186
29187
  }
29187
29188
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.6", ngImport: i0, type: ElderServicesBootstrap, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
29188
29189
  static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.6", ngImport: i0, type: ElderServicesBootstrap, providedIn: 'root' }); }
@@ -32945,7 +32946,7 @@ class ElderLocalizedInputTableComponent extends FormFieldBaseComponent {
32945
32946
  this.defaultLanguageTags$ = new BehaviorSubject([]);
32946
32947
  this.dense = false;
32947
32948
  this.destroy$ = new Subject();
32948
- this.defaultLanguageTags = languageService.languages;
32949
+ this.defaultLanguageTags = languageService.langs();
32949
32950
  this.dataSource = LocalListDataSource.from([], 'locale', SortUtil.sortData, FilterUtil.filterData);
32950
32951
  const localizables$ = combineLatest([
32951
32952
  this.value$.pipe(map((value) => value ?? [])),
@@ -33137,7 +33138,7 @@ class LocalisationPickerService {
33137
33138
  * *
33138
33139
  **************************************************************************/
33139
33140
  pick(choices, desired) {
33140
- return this.picker.findBest(choices, desired ?? this.languageService.currentLanguage);
33141
+ return this.picker.findBest(choices, desired ?? this.languageService.currentLang());
33141
33142
  }
33142
33143
  pickCurrent(choices) {
33143
33144
  return this.languageService.currentLanguage$.pipe(map((current) => this.pick(choices, current)));
@@ -34432,6 +34433,35 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.6", ngImpor
34432
34433
  class ElderLanguageConfig {
34433
34434
  }
34434
34435
 
34436
+ /**
34437
+ * This service updates the HTML lang attribute based on the current language.
34438
+ * (Manipulates the DOM directly)
34439
+ */
34440
+ class ElderHtmlLangAttributeService {
34441
+ /***************************************************************************
34442
+ * *
34443
+ * Constructor *
34444
+ * *
34445
+ **************************************************************************/
34446
+ constructor() {
34447
+ this.languageService = inject(ElderLanguageService);
34448
+ this.htmlDocument = inject(DOCUMENT);
34449
+ this.languageService.currentLanguage$.subscribe((lang) => {
34450
+ if (lang) {
34451
+ this.htmlDocument.documentElement.setAttribute('lang', lang);
34452
+ }
34453
+ });
34454
+ }
34455
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.6", ngImport: i0, type: ElderHtmlLangAttributeService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
34456
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.6", ngImport: i0, type: ElderHtmlLangAttributeService, providedIn: 'root' }); }
34457
+ }
34458
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.6", ngImport: i0, type: ElderHtmlLangAttributeService, decorators: [{
34459
+ type: Injectable,
34460
+ args: [{
34461
+ providedIn: 'root',
34462
+ }]
34463
+ }], ctorParameters: () => [] });
34464
+
34435
34465
  /**
34436
34466
  * This interceptor injects the current locale
34437
34467
  * so the backend know what the current desired locale is of a request.
@@ -34497,16 +34527,130 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.6", ngImpor
34497
34527
  type: Injectable
34498
34528
  }], ctorParameters: () => [{ type: i0.Injector }] });
34499
34529
 
34500
- function provideElderLanguage(config) {
34530
+ function provideElderLanguage(options, config) {
34501
34531
  return makeEnvironmentProviders([
34532
+ {
34533
+ provide: ELDER_LANGUAGE_OPTIONS,
34534
+ useValue: options,
34535
+ },
34502
34536
  {
34503
34537
  provide: ElderLanguageConfig,
34504
34538
  useValue: config,
34505
34539
  },
34506
34540
  { provide: HTTP_INTERCEPTORS, useClass: ElderLanguageInterceptor, multi: true },
34541
+ provideEnvironmentInitializer(() => {
34542
+ inject(ElderLanguageService).init();
34543
+ inject(ElderHtmlLangAttributeService);
34544
+ }),
34545
+ ]);
34546
+ }
34547
+
34548
+ class ElderTranslateService {
34549
+ /***************************************************************************
34550
+ * *
34551
+ * Constructor *
34552
+ * *
34553
+ **************************************************************************/
34554
+ constructor() {
34555
+ this.logger = LoggerFactory.getLogger(this.constructor.name);
34556
+ this.languageService = inject(ElderLanguageService);
34557
+ this.ngxTranslate = inject(TranslateService);
34558
+ effect(() => {
34559
+ const langs = this.languageService.langs();
34560
+ untracked(() => {
34561
+ this.setLangs(langs);
34562
+ });
34563
+ });
34564
+ effect(() => {
34565
+ const defaultLang = this.languageService.defaultLang();
34566
+ untracked(() => {
34567
+ this.setDefaultLang(defaultLang);
34568
+ });
34569
+ });
34570
+ effect(() => {
34571
+ const currentLang = this.languageService.currentLang();
34572
+ untracked(() => {
34573
+ this.setCurrentLang(currentLang);
34574
+ });
34575
+ });
34576
+ }
34577
+ /***************************************************************************
34578
+ * *
34579
+ * Private Methods *
34580
+ * *
34581
+ **************************************************************************/
34582
+ setLangs(langs) {
34583
+ if (langs?.length) {
34584
+ this.logger.warn('setting translate langs', langs);
34585
+ this.ngxTranslate.addLangs(langs);
34586
+ }
34587
+ }
34588
+ setDefaultLang(defaultLang) {
34589
+ if (defaultLang) {
34590
+ this.logger.warn('setting translate default lang', defaultLang);
34591
+ this.ngxTranslate.setFallbackLang(defaultLang);
34592
+ }
34593
+ }
34594
+ setCurrentLang(currentLang) {
34595
+ if (currentLang) {
34596
+ this.logger.warn('setting translate current lang', currentLang);
34597
+ this.ngxTranslate.use(currentLang);
34598
+ }
34599
+ }
34600
+ /***************************************************************************
34601
+ * *
34602
+ * Public API *
34603
+ * *
34604
+ **************************************************************************/
34605
+ get(key, interpolateParams) {
34606
+ return this.ngxTranslate.get(key, interpolateParams);
34607
+ }
34608
+ instant(key, interpolateParams) {
34609
+ return this.ngxTranslate.instant(key, interpolateParams);
34610
+ }
34611
+ stream(key, interpolateParams) {
34612
+ return this.ngxTranslate.stream(key, interpolateParams);
34613
+ }
34614
+ get onLangChange() {
34615
+ return this.ngxTranslate.onLangChange;
34616
+ }
34617
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.6", ngImport: i0, type: ElderTranslateService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
34618
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.6", ngImport: i0, type: ElderTranslateService, providedIn: 'root' }); }
34619
+ }
34620
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.6", ngImport: i0, type: ElderTranslateService, decorators: [{
34621
+ type: Injectable,
34622
+ args: [{
34623
+ providedIn: 'root',
34624
+ }]
34625
+ }], ctorParameters: () => [] });
34626
+
34627
+ function provideElderTranslate() {
34628
+ return makeEnvironmentProviders([
34629
+ provideTranslateService({
34630
+ loader: {
34631
+ provide: TranslateLoader,
34632
+ useFactory: createElderDefaultTranslateLoader,
34633
+ deps: [HttpBackend],
34634
+ },
34635
+ }),
34636
+ provideEnvironmentInitializer(() => {
34637
+ inject(ElderTranslateService);
34638
+ }),
34507
34639
  ]);
34508
34640
  }
34509
34641
 
34642
+ class ElderTranslatePipe extends TranslatePipe {
34643
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.6", ngImport: i0, type: ElderTranslatePipe, deps: null, target: i0.ɵɵFactoryTarget.Pipe }); }
34644
+ static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "21.2.6", ngImport: i0, type: ElderTranslatePipe, isStandalone: true, name: "translate", pure: false }); }
34645
+ }
34646
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.6", ngImport: i0, type: ElderTranslatePipe, decorators: [{
34647
+ type: Pipe,
34648
+ args: [{
34649
+ name: 'translate',
34650
+ pure: false,
34651
+ }]
34652
+ }] });
34653
+
34510
34654
  class ElderChipListSelectComponent {
34511
34655
  /***************************************************************************
34512
34656
  * *
@@ -39424,5 +39568,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.6", ngImpor
39424
39568
  * Generated bundle index. Do not edit.
39425
39569
  */
39426
39570
 
39427
- 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, ElderAppearanceSettingsComponent, 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, ElderGenericResizableLayoutComponent, ElderGridActivationDirective, ElderGridComponent, ElderGridModule, ElderGridNavigationBarDirective, ElderGridTileDirective, ElderGridToolbarDirective, ElderHeaderComponent, ElderHeaderModule, ElderI18nEntitiesModule, ElderIFrameModule, ElderInfiniteAutocompleteDirective, ElderInfiniteScrollDirective, ElderInfiniteScrollModule, ElderInputPatternDirective, ElderIntervalInputComponent, ElderIntervalPickerBindingDirective, ElderIntervalPickerComponent, ElderIntervalPickerToggleComponent, ElderKeyEventDirective, ElderLabelInputComponent, ElderLabelsModule, ElderLanguageConfig, ElderLanguageInterceptor, 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, ElderPopoverComponent, ElderPopoverTriggerDirective, ElderProgressBarComponent, ElderProgressBarModule, ElderQuantityFormFieldComponent, ElderQuantityInputControlComponent, ElderQuantityPipe, ElderQuantityRangeValidator, ElderQuantityService, ElderQuantityTransformPipe, ElderQuestionDialogComponent, ElderRailNavDirective, ElderRepeatPipe, ElderRequiredDimensionsValidator, ElderRequiredIgnoreZeroValidator, ElderRequiredQuantityValidator, ElderResizableDirective, ElderResizablePaneLayoutComponent, ElderResizeBehaviorDirective, ElderResizeContainerComponent, 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, ElderShellStaticNavSlotDirective, ElderSinglePaneWrapperComponent, ElderSingleStateCheckboxDirective, ElderStackCardDirective, ElderStaticNavToggleComponent, ElderStopEventPropagationDirective, ElderSuggestionPanelComponent, 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, EntitiesChangeEvent, EntityDelta, EntityIdUtil, EntitySetPatch, ErrorUtil, ExceptionDetailCtx, FallbackValidationMessageStrategy, FileEntry, FileListingRx, FileUploadClient, Filter, FilterContext, FilterUtil, FocusUtil, FormFieldBaseComponent, GlobalDragDropService, 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, ItemModel, 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, provideElderBrandAssets, provideElderDefaults, provideElderLanguage, proxyControlContainer, registerLocale, runInZone, someSignal, themeInit };
39571
+ 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, ElderAppearanceSettingsComponent, 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, ElderGenericResizableLayoutComponent, ElderGridActivationDirective, ElderGridComponent, ElderGridModule, ElderGridNavigationBarDirective, ElderGridTileDirective, ElderGridToolbarDirective, ElderHeaderComponent, ElderHeaderModule, ElderI18nEntitiesModule, ElderIFrameModule, ElderInfiniteAutocompleteDirective, ElderInfiniteScrollDirective, ElderInfiniteScrollModule, ElderInputPatternDirective, ElderIntervalInputComponent, ElderIntervalPickerBindingDirective, ElderIntervalPickerComponent, ElderIntervalPickerToggleComponent, ElderKeyEventDirective, ElderLabelInputComponent, ElderLabelsModule, ElderLanguageConfig, ElderLanguageInterceptor, 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, ElderPopoverComponent, ElderPopoverTriggerDirective, ElderProgressBarComponent, ElderProgressBarModule, ElderQuantityFormFieldComponent, ElderQuantityInputControlComponent, ElderQuantityPipe, ElderQuantityRangeValidator, ElderQuantityService, ElderQuantityTransformPipe, ElderQuestionDialogComponent, ElderRailNavDirective, ElderRepeatPipe, ElderRequiredDimensionsValidator, ElderRequiredIgnoreZeroValidator, ElderRequiredQuantityValidator, ElderResizableDirective, ElderResizablePaneLayoutComponent, ElderResizeBehaviorDirective, ElderResizeContainerComponent, 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, ElderShellStaticNavSlotDirective, ElderSinglePaneWrapperComponent, ElderSingleStateCheckboxDirective, ElderStackCardDirective, ElderStaticNavToggleComponent, ElderStopEventPropagationDirective, ElderSuggestionPanelComponent, 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, ElderTranslatePipe, ElderTranslateService, ElderTripleStateCheckboxDirective, ElderTruncatePipe, ElderUnitSelectDirective, ElderUnitService, ElderUrlFragment, ElderUrlFragmentModule, ElderUrlFragmentParamsService, ElderUrlFragmentSwitcherComponent, ElderValidationErrorDirective, EntitiesChangeEvent, EntityDelta, EntityIdUtil, EntitySetPatch, ErrorUtil, ExceptionDetailCtx, FallbackValidationMessageStrategy, FileEntry, FileListingRx, FileUploadClient, Filter, FilterContext, FilterUtil, FocusUtil, FormFieldBaseComponent, GlobalDragDropService, 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, ItemModel, 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, createElderDefaultTranslateLoader, createSelectionModel, elderChipColorLevels, elderChipColorStates, elderNamedColorRoles, elderNamedColorToken, elderNamedColors, existingOrNewElderTableModel, initSearchUrlService, isActivePagedDataContext, isContinuableDataContext, isContinuableDataSource, isDataContext, isDataSource, isDataViewMessageType, isElderEntityValueAccessor, isElderMultiEntityValueAccessor, isListDataSource, isLocalListDataSource, isPagedDataSource, lazySample, lazySampleTime, naturalValueComparator, newElderTableModel, provideElderBrandAssets, provideElderDefaults, provideElderLanguage, provideElderTranslate, proxyControlContainer, registerLocale, runInZone, someSignal, themeInit };
39428
39572
  //# sourceMappingURL=elderbyte-ngx-starter.mjs.map