@elderbyte/ngx-starter 21.14.0-beta.1 → 21.14.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.
@@ -35,7 +35,7 @@ import { MatButtonModule, MatIconButton, MatButton, MatIconAnchor, MatAnchor } f
35
35
  import * as i1$8 from '@angular/material/autocomplete';
36
36
  import { MatAutocompleteTrigger, MatAutocomplete, MatAutocompleteModule } from '@angular/material/autocomplete';
37
37
  import { MatChipGrid, MatChipRow, MatChipRemove, MatChipInput, MatChipsModule, MatChipSet, MatChipAvatar, MatChipTrailingIcon, MatChipListbox, MatChipOption, MatChip } from '@angular/material/chips';
38
- import * as i2$3 from '@angular/material/input';
38
+ import * as i2$2 from '@angular/material/input';
39
39
  import { MatInput, MatInputModule } from '@angular/material/input';
40
40
  import { MatList, MatListSubheaderCssMatStyler, MatListItem, MatListModule } from '@angular/material/list';
41
41
  import { MatProgressBar, MatProgressBarModule } from '@angular/material/progress-bar';
@@ -53,14 +53,15 @@ import * as i1$a from '@angular/material/checkbox';
53
53
  import { MatCheckbox, MatCheckboxModule } from '@angular/material/checkbox';
54
54
  import { MatTooltipModule, MatTooltip } from '@angular/material/tooltip';
55
55
  import { MatSelect, MatOption as MatOption$1, MatSelectModule } from '@angular/material/select';
56
- import { MatColumnDef, MatRowDef, MatTable, MatHeaderCellDef, MatHeaderCell, MatCellDef, MatCell, MatFooterCellDef, MatFooterCell, MatHeaderRowDef, MatHeaderRow, MatRow, MatFooterRowDef, MatFooterRow, MatTableModule } from '@angular/material/table';
56
+ import { MatTable, MatColumnDef, MatHeaderCellDef, MatHeaderCell, MatCellDef, MatCell, MatFooterCellDef, MatFooterCell, MatHeaderRowDef, MatHeaderRow, MatRowDef, MatRow, MatFooterRowDef, MatFooterRow, MatTableModule } from '@angular/material/table';
57
57
  import * as i1$7 from '@angular/cdk/table';
58
58
  import { CdkTableModule } from '@angular/cdk/table';
59
59
  import { MatPaginator, MatPaginatorIntl, MatPaginatorModule } from '@angular/material/paginator';
60
- import * as i2$2 from '@angular/material/sort';
60
+ import * as i4 from '@angular/material/sort';
61
61
  import { MatSortModule, MatSort, MatSortHeader } from '@angular/material/sort';
62
62
  import { __decorate, __param } from 'tslib';
63
63
  import { CdkVirtualScrollViewport, CdkFixedSizeVirtualScroll, CdkVirtualForOf, ScrollingModule } from '@angular/cdk/scrolling';
64
+ import { Subject as Subject$1 } from 'rxjs/internal/Subject';
64
65
  import { MatProgressSpinnerModule, MatProgressSpinner } from '@angular/material/progress-spinner';
65
66
  import { MatExpansionPanel, MatAccordion, MatExpansionPanelHeader, MatExpansionPanelTitle, MatExpansionPanelDescription, MatExpansionModule } from '@angular/material/expansion';
66
67
  import * as i1$b from '@angular/cdk/overlay';
@@ -17156,6 +17157,15 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.15", ngImpo
17156
17157
  args: ['click', ['$event']]
17157
17158
  }] } });
17158
17159
 
17160
+ /**
17161
+ * Determines merge order for table column contributor groups (ascending): lower values are merged first.
17162
+ * BASE groups are laid out first, PROJECTED groups are merged afterwards.
17163
+ */
17164
+ var ElderTableGroupLayer;
17165
+ (function (ElderTableGroupLayer) {
17166
+ ElderTableGroupLayer[ElderTableGroupLayer["BASE"] = 0] = "BASE";
17167
+ ElderTableGroupLayer[ElderTableGroupLayer["PROJECTED"] = 1] = "PROJECTED";
17168
+ })(ElderTableGroupLayer || (ElderTableGroupLayer = {}));
17159
17169
  class ColumnPositionSpec {
17160
17170
  static relativeToColumn(col, position) {
17161
17171
  return new ColumnPositionSpec(position, col);
@@ -17169,8 +17179,8 @@ class ColumnPositionSpec {
17169
17179
  }
17170
17180
  }
17171
17181
  class ElderColumnGroup {
17172
- constructor(groupIndex, columnsPosition, columns) {
17173
- this.groupIndex = groupIndex;
17182
+ constructor(groupLayer, columnsPosition, columns) {
17183
+ this.groupLayer = groupLayer;
17174
17184
  this.columnsPosition = columnsPosition;
17175
17185
  this.columns = columns;
17176
17186
  }
@@ -17201,7 +17211,7 @@ class ElderColumnLayout {
17201
17211
  * *
17202
17212
  **************************************************************************/
17203
17213
  renderColumns(colGroups) {
17204
- const groupHierarchy = this.sortGroupsByIndex(colGroups);
17214
+ const groupHierarchy = this.sortGroupsByTableGroupLayer(colGroups);
17205
17215
  const sorted = [];
17206
17216
  // Now we can insert groups in defined order
17207
17217
  let previousIndex = {
@@ -17255,25 +17265,21 @@ class ElderColumnLayout {
17255
17265
  return previousGroup.startIndex;
17256
17266
  }
17257
17267
  }
17258
- sortGroupsByIndex(colGroups) {
17259
- return colGroups
17260
- .sort((a, b) => {
17261
- return naturalValueComparator(a.groupIndex, b.groupIndex);
17262
- })
17263
- .reverse();
17268
+ sortGroupsByTableGroupLayer(colGroups) {
17269
+ return colGroups.sort((a, b) => naturalValueComparator(a.groupLayer, b.groupLayer));
17264
17270
  }
17265
17271
  }
17266
17272
 
17267
17273
  class ElderTableGroup {
17268
- static create(groupIndex) {
17269
- return ElderTableGroup.of(UuidUtil.weakUuid4(), groupIndex);
17274
+ static create(groupLayer) {
17275
+ return ElderTableGroup.of(UuidUtil.weakUuid4(), groupLayer);
17270
17276
  }
17271
- static of(id, groupIndex) {
17272
- return new ElderTableGroup(id, groupIndex);
17277
+ static of(id, groupLayer) {
17278
+ return new ElderTableGroup(id, groupLayer);
17273
17279
  }
17274
- constructor(id, index) {
17280
+ constructor(id, groupLayer) {
17275
17281
  this.id = id;
17276
- this.index = index;
17282
+ this.groupLayer = groupLayer;
17277
17283
  }
17278
17284
  }
17279
17285
  class ElderTableModel {
@@ -17304,8 +17310,12 @@ class ElderTableModel {
17304
17310
  * end([])
17305
17311
  * @private
17306
17312
  */
17307
- this.displayedColumns$ = new BehaviorSubject(undefined);
17308
- this.displayedColumnsInner$ = this.renderDisplayedColumns(this.displayedColumns$, this.columnDefs$, this.selectionVisible$);
17313
+ this.manualColumns$ = new BehaviorSubject(undefined);
17314
+ this.displayedColumnsInner$ = combineLatest([
17315
+ this.manualColumns$,
17316
+ this.columnDefs$,
17317
+ this.selectionVisible$,
17318
+ ]).pipe(map(([manualColumns, columnDefs, selectionVisible]) => this.buildDisplayedColumns(manualColumns, columnDefs, selectionVisible)));
17309
17319
  }
17310
17320
  /***************************************************************************
17311
17321
  * *
@@ -17319,10 +17329,10 @@ class ElderTableModel {
17319
17329
  return this.selectionVisible$.getValue();
17320
17330
  }
17321
17331
  set displayedColumns(columns) {
17322
- this.displayedColumns$.next(columns);
17332
+ this.manualColumns$.next(columns);
17323
17333
  }
17324
17334
  get displayedColumns() {
17325
- return this.displayedColumns$.getValue();
17335
+ return this.manualColumns$.getValue();
17326
17336
  }
17327
17337
  /***************************************************************************
17328
17338
  * *
@@ -17339,17 +17349,17 @@ class ElderTableModel {
17339
17349
  return this._sortGroups.values$;
17340
17350
  }
17341
17351
  // ---
17342
- valuesSortedByGroupIndex(myMap, groups) {
17352
+ valuesSortedByTableGroupLayer(myMap, groups) {
17343
17353
  return Array.from(myMap.entries())
17344
17354
  .sort(([a_key], [b_key]) => {
17345
- const grpAIndex = groups.get(a_key)?.index ?? 0;
17346
- const grpBIndex = groups.get(b_key)?.index ?? 0;
17347
- return naturalValueComparator(grpAIndex, grpBIndex);
17355
+ const grpAGroupLayer = groups.get(a_key)?.groupLayer ?? ElderTableGroupLayer.PROJECTED;
17356
+ const grpBGroupLayer = groups.get(b_key)?.groupLayer ?? ElderTableGroupLayer.PROJECTED;
17357
+ return naturalValueComparator(grpAGroupLayer, grpBGroupLayer);
17348
17358
  })
17349
17359
  .map(([a_key, a_value]) => a_value);
17350
17360
  }
17351
17361
  sortAndFlatten(reactMap) {
17352
- return reactMap.map$.pipe(map((myMap) => this.valuesSortedByGroupIndex(myMap, this._groups)), map((columns) => CollectionUtil.flatten(columns)));
17362
+ return reactMap.map$.pipe(map((myMap) => this.valuesSortedByTableGroupLayer(myMap, this._groups)), map((columns) => CollectionUtil.flatten(columns)));
17353
17363
  }
17354
17364
  /*
17355
17365
  public get sortHeaders$(): Observable<MatSortHeader[]> {
@@ -17395,24 +17405,22 @@ class ElderTableModel {
17395
17405
  * Private methods *
17396
17406
  * *
17397
17407
  **************************************************************************/
17398
- renderDisplayedColumns(userDefinedColumns$, columnDefs$, selectionVisible$) {
17399
- return combineLatest([userDefinedColumns$, columnDefs$, selectionVisible$]).pipe(map(([displayedColumns, columnDefs, selectionVisible]) => {
17400
- let columns = displayedColumns;
17401
- if (!columns) {
17402
- columns = [];
17403
- // If the user did not define columns to display
17404
- // Assume he wants all his own columns in given order
17405
- if (columnDefs) {
17406
- columnDefs.forEach((col) => {
17407
- columns.push(col.name);
17408
- });
17409
- }
17410
- }
17411
- if (this.selectionVisible) {
17412
- columns = ['select', ...columns];
17408
+ buildDisplayedColumns(manualColumns, columnDefs, selectionVisible) {
17409
+ let columns = manualColumns;
17410
+ if (!columns) {
17411
+ columns = [];
17412
+ // If the user did not define manual columns to display
17413
+ // Assume he wants all his own columns in given order
17414
+ if (columnDefs) {
17415
+ columnDefs.forEach((col) => {
17416
+ columns.push(col.name);
17417
+ });
17413
17418
  }
17414
- return columns;
17415
- }));
17419
+ }
17420
+ if (selectionVisible) {
17421
+ columns = ['select', ...columns];
17422
+ }
17423
+ return columns;
17416
17424
  }
17417
17425
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.15", ngImport: i0, type: ElderTableModel, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
17418
17426
  static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.15", ngImport: i0, type: ElderTableModel }); }
@@ -17562,8 +17570,8 @@ class ElderTableModelQueryGroup {
17562
17570
  * Static Builder *
17563
17571
  * *
17564
17572
  **************************************************************************/
17565
- static start(tableModel, groupIndex) {
17566
- return new ElderTableModelQueryGroup(tableModel, ElderTableGroup.create(groupIndex));
17573
+ static start(tableModel, groupLayer) {
17574
+ return new ElderTableModelQueryGroup(tableModel, ElderTableGroup.create(groupLayer));
17567
17575
  }
17568
17576
  /***************************************************************************
17569
17577
  * *
@@ -17632,7 +17640,7 @@ class ElderTableModelQueryGroup {
17632
17640
  return columns.map((c) => new ElderTableColumnDirective(c));
17633
17641
  }
17634
17642
  updateColumnDefs(columns) {
17635
- this.tableModel.updateColumnGroup(this.group, new ElderColumnGroup(this.group.index, this.columnsPosition, columns));
17643
+ this.tableModel.updateColumnGroup(this.group, new ElderColumnGroup(this.group.groupLayer, this.columnsPosition, columns));
17636
17644
  }
17637
17645
  updateRowDefs(rows) {
17638
17646
  this.tableModel.updateRowDefs(this.group, rows);
@@ -17988,86 +17996,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.15", ngImpo
17988
17996
  args: [{ selector: 'elder-data-navigation', imports: [ElderContinuatorComponent, MatPaginator], changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"elder-data-navigation-bar layout-row flex-none place-end-center gap-md\">\n @if (isContinuable) {\n <elder-continuator\n [loadedCount]=\"viewData()?.length\"\n [total]=\"total()\"\n [canLoadMore]=\"canLoadMore()\"\n [chunkSizeOptions]=\"pageSizeOptions()\"\n [chunkSize]=\"currentChunkSize()\"\n (loadMoreRequested)=\"loadMore()\"\n ></elder-continuator>\n } @else if (isActivePaged) {\n @if (currentPage(); as page) {\n <mat-paginator\n class=\"flex-none\"\n [length]=\"total()\"\n [pageIndex]=\"page?.index\"\n [pageSize]=\"page?.size\"\n [pageSizeOptions]=\"pageSizeOptions()\"\n >\n </mat-paginator>\n }\n } @else {\n <span class=\"mat-caption noselect pr-md\" style=\"color: var(--md-sys-color-outline)\">\n {{ viewData()?.length }}\n </span>\n }\n</div>\n", styles: [".elder-data-navigation-bar{height:var(--elder-data-element-footer-height);overflow:hidden}\n"] }]
17989
17997
  }], ctorParameters: () => [], propDecorators: { matPaginator: [{ type: i0.ViewChild, args: [i0.forwardRef(() => MatPaginator), { isSignal: true }] }], elderContinuator: [{ type: i0.ViewChild, args: [i0.forwardRef(() => ElderContinuatorComponent), { isSignal: true }] }] } });
17990
17998
 
17991
- /**
17992
- * Allows to extend an ElderTable from a parent component.
17993
- *
17994
- */
17995
- class ElderTableExtensionDirective {
17996
- /***************************************************************************
17997
- * *
17998
- * Constructor *
17999
- * *
18000
- **************************************************************************/
18001
- constructor(tableModel, _matSort, parentExtension) {
18002
- this.tableModel = tableModel;
18003
- this._matSort = _matSort;
18004
- this.parentExtension = parentExtension;
18005
- /***************************************************************************
18006
- * *
18007
- * Fields *
18008
- * *
18009
- **************************************************************************/
18010
- this.logger = LoggerFactory.getLogger(this.constructor.name);
18011
- this.columnsPosition = ColumnPositionSpec.relativeToPrevGroup('start');
18012
- this.destroy$ = new Subject();
18013
- this._extensionGroupIndex = (parentExtension?.extensionGroupIndex ?? 0) + 1;
18014
- if (this._matSort) {
18015
- this._matSort.disableClear = true;
18016
- }
18017
- }
18018
- /***************************************************************************
18019
- * *
18020
- * Life Cycle *
18021
- * *
18022
- **************************************************************************/
18023
- ngAfterContentInit() {
18024
- ElderTableModelQueryGroup.start(this.tableModel, this.extensionGroupIndex)
18025
- .withColumnsPosition(this.columnsPosition)
18026
- .withColumnDefs(this.columnDefsQuery, this.elderColumnsQuery)
18027
- .withRowDefs(this.rowDefsQuery)
18028
- .withSort(this._matSort)
18029
- .bindUntil(this.destroy$);
18030
- }
18031
- ngOnDestroy() {
18032
- this.destroy$.next();
18033
- this.destroy$.complete();
18034
- }
18035
- /***************************************************************************
18036
- * *
18037
- * Properties *
18038
- * *
18039
- **************************************************************************/
18040
- get extensionGroupIndex() {
18041
- return this._extensionGroupIndex;
18042
- }
18043
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.15", ngImport: i0, type: ElderTableExtensionDirective, deps: [{ token: ElderTableModel }, { token: i2$2.MatSort, optional: true }, { token: ElderTableExtensionDirective, optional: true, skipSelf: true }], target: i0.ɵɵFactoryTarget.Directive }); }
18044
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "21.2.15", type: ElderTableExtensionDirective, isStandalone: true, selector: "[elderTableExtension]", inputs: { columnsPosition: "columnsPosition" }, providers: [ElderTableProviders.ExistingOrNewTableModel], queries: [{ propertyName: "columnDefsQuery", predicate: MatColumnDef }, { propertyName: "elderColumnsQuery", predicate: ElderTableColumnDirective }, { propertyName: "rowDefsQuery", predicate: MatRowDef }], ngImport: i0 }); }
18045
- }
18046
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.15", ngImport: i0, type: ElderTableExtensionDirective, decorators: [{
18047
- type: Directive,
18048
- args: [{
18049
- selector: '[elderTableExtension]',
18050
- providers: [ElderTableProviders.ExistingOrNewTableModel],
18051
- }]
18052
- }], ctorParameters: () => [{ type: ElderTableModel }, { type: i2$2.MatSort, decorators: [{
18053
- type: Optional
18054
- }] }, { type: ElderTableExtensionDirective, decorators: [{
18055
- type: Optional
18056
- }, {
18057
- type: SkipSelf
18058
- }] }], propDecorators: { columnDefsQuery: [{
18059
- type: ContentChildren,
18060
- args: [MatColumnDef]
18061
- }], elderColumnsQuery: [{
18062
- type: ContentChildren,
18063
- args: [ElderTableColumnDirective]
18064
- }], rowDefsQuery: [{
18065
- type: ContentChildren,
18066
- args: [MatRowDef]
18067
- }], columnsPosition: [{
18068
- type: Input
18069
- }] } });
18070
-
18071
17999
  /**
18072
18000
  * The table navigation bar, typically located below the table,
18073
18001
  * containing the pagination control and other table controls.
@@ -18093,10 +18021,9 @@ class ElderTableComponent extends ElderDataViewBaseComponent {
18093
18021
  * Constructor *
18094
18022
  * *
18095
18023
  **************************************************************************/
18096
- constructor(tableModel, selectionModel, dataViewOptionsProvider, matSort, parentExtension, zone, interactionController) {
18024
+ constructor(tableModel, selectionModel, dataViewOptionsProvider, matSort, zone, interactionController) {
18097
18025
  super(selectionModel, dataViewOptionsProvider, interactionController);
18098
18026
  this.tableModel = tableModel;
18099
- this.parentExtension = parentExtension;
18100
18027
  this.zone = zone;
18101
18028
  /***************************************************************************
18102
18029
  * *
@@ -18138,7 +18065,6 @@ class ElderTableComponent extends ElderDataViewBaseComponent {
18138
18065
  */
18139
18066
  this.rows$ = new BehaviorSubject([]);
18140
18067
  this._matSort = matSort;
18141
- this._extensionGroupIndex = (parentExtension?.extensionGroupIndex ?? 0) + 1;
18142
18068
  if (this._matSort) {
18143
18069
  this._matSort.disableClear = true;
18144
18070
  }
@@ -18154,7 +18080,7 @@ class ElderTableComponent extends ElderDataViewBaseComponent {
18154
18080
  ElderTableModelCdkTableBinding.of(this.tableModel).table(this.matTable).bindUntil(this.destroy$);
18155
18081
  }
18156
18082
  ngAfterContentInit() {
18157
- ElderTableModelQueryGroup.start(this.tableModel, this._extensionGroupIndex)
18083
+ ElderTableModelQueryGroup.start(this.tableModel, ElderTableGroupLayer.BASE)
18158
18084
  .withColumnsPosition(ColumnPositionSpec.relativeToPrevGroup('start'))
18159
18085
  .withColumnDefs(this.columnDefs, this.elderColumns)
18160
18086
  .withRowDefs(this.rowDefs)
@@ -18287,7 +18213,7 @@ class ElderTableComponent extends ElderDataViewBaseComponent {
18287
18213
  const rows = this.rows$.getValue();
18288
18214
  return rows.find((r) => this.getId(untracked(r.entity)) === this.getId(item));
18289
18215
  }
18290
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.15", ngImport: i0, type: ElderTableComponent, deps: [{ token: ElderTableModel }, { token: SelectionModel, optional: true }, { token: ElderDataViewOptionsProvider, optional: true, skipSelf: true }, { token: i2$2.MatSort, optional: true }, { token: ElderTableExtensionDirective, optional: true, skipSelf: true }, { token: i0.NgZone }, { token: DataViewInteractionControllerDirective }], target: i0.ɵɵFactoryTarget.Component }); }
18216
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.15", ngImport: i0, type: ElderTableComponent, deps: [{ token: ElderTableModel }, { token: SelectionModel, optional: true }, { token: ElderDataViewOptionsProvider, optional: true, skipSelf: true }, { token: i4.MatSort, optional: true }, { token: i0.NgZone }, { token: DataViewInteractionControllerDirective }], target: i0.ɵɵFactoryTarget.Component }); }
18291
18217
  static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.15", type: ElderTableComponent, isStandalone: true, selector: "elder-table", inputs: { id: { classPropertyName: "id", publicName: "id", isSignal: true, isRequired: false, transformFunction: null }, idField: { classPropertyName: "idField", publicName: "idField", isSignal: false, isRequired: false, transformFunction: null }, removingField: { classPropertyName: "removingField", publicName: "removingField", isSignal: false, isRequired: false, transformFunction: null }, hiddenField: { classPropertyName: "hiddenField", publicName: "hiddenField", isSignal: false, isRequired: false, transformFunction: null }, keepSelection: { classPropertyName: "keepSelection", publicName: "keepSelection", isSignal: true, isRequired: false, transformFunction: null }, showFooterRow: { classPropertyName: "showFooterRow", publicName: "showFooterRow", isSignal: true, isRequired: false, transformFunction: null }, denseHorizontal: { classPropertyName: "denseHorizontal", publicName: "denseHorizontal", isSignal: true, isRequired: false, transformFunction: null }, hideHeaderRow: { classPropertyName: "hideHeaderRow", publicName: "hideHeaderRow", isSignal: true, isRequired: false, transformFunction: null }, data: { classPropertyName: "data", publicName: "data", isSignal: false, isRequired: false, transformFunction: null }, displayedColumns: { classPropertyName: "displayedColumns", publicName: "displayedColumns", isSignal: false, isRequired: false, transformFunction: null }, selectionVisible: { classPropertyName: "selectionVisible", publicName: "selectionVisible", isSignal: false, isRequired: false, transformFunction: null } }, providers: [
18292
18218
  ElderTableProviders.ExistingOrNewTableModel,
18293
18219
  {
@@ -18337,12 +18263,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.15", ngImpo
18337
18263
  type: Optional
18338
18264
  }, {
18339
18265
  type: SkipSelf
18340
- }] }, { type: i2$2.MatSort, decorators: [{
18341
- type: Optional
18342
- }] }, { type: ElderTableExtensionDirective, decorators: [{
18266
+ }] }, { type: i4.MatSort, decorators: [{
18343
18267
  type: Optional
18344
- }, {
18345
- type: SkipSelf
18346
18268
  }] }, { type: i0.NgZone }, { type: DataViewInteractionControllerDirective }], propDecorators: { matTable: [{
18347
18269
  type: ViewChild,
18348
18270
  args: [MatTable, { static: true }]
@@ -20304,7 +20226,7 @@ class ElderNumberCellDirective {
20304
20226
  matSortHeader.arrowPosition = 'before';
20305
20227
  }
20306
20228
  }
20307
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.15", ngImport: i0, type: ElderNumberCellDirective, deps: [{ token: i2$2.MatSortHeader, optional: true }], target: i0.ɵɵFactoryTarget.Directive }); }
20229
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.15", ngImport: i0, type: ElderNumberCellDirective, deps: [{ token: i4.MatSortHeader, optional: true }], target: i0.ɵɵFactoryTarget.Directive }); }
20308
20230
  static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "21.2.15", type: ElderNumberCellDirective, isStandalone: true, selector: "[elderNumberCell]", host: { properties: { "class.elder-number-cell": "true" } }, ngImport: i0 }); }
20309
20231
  }
20310
20232
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.15", ngImport: i0, type: ElderNumberCellDirective, decorators: [{
@@ -20315,7 +20237,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.15", ngImpo
20315
20237
  '[class.elder-number-cell]': 'true',
20316
20238
  },
20317
20239
  }]
20318
- }], ctorParameters: () => [{ type: i2$2.MatSortHeader, decorators: [{
20240
+ }], ctorParameters: () => [{ type: i4.MatSortHeader, decorators: [{
20319
20241
  type: Optional
20320
20242
  }] }] });
20321
20243
 
@@ -20372,6 +20294,71 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.15", ngImpo
20372
20294
  type: Input
20373
20295
  }] } });
20374
20296
 
20297
+ /**
20298
+ * Adds additonal columns into an ElderTable.
20299
+ */
20300
+ class ElderProjectedColumnsDirective {
20301
+ /***************************************************************************
20302
+ * *
20303
+ * Constructor *
20304
+ * *
20305
+ **************************************************************************/
20306
+ constructor(tableModel, _matSort) {
20307
+ this.tableModel = tableModel;
20308
+ this._matSort = _matSort;
20309
+ /***************************************************************************
20310
+ * *
20311
+ * Fields *
20312
+ * *
20313
+ **************************************************************************/
20314
+ this.logger = LoggerFactory.getLogger(this.constructor.name);
20315
+ this.columnsPosition = ColumnPositionSpec.relativeToPrevGroup('start');
20316
+ this.destroy$ = new Subject();
20317
+ if (this._matSort) {
20318
+ this._matSort.disableClear = true;
20319
+ }
20320
+ }
20321
+ /***************************************************************************
20322
+ * *
20323
+ * Life Cycle *
20324
+ * *
20325
+ **************************************************************************/
20326
+ ngAfterContentInit() {
20327
+ ElderTableModelQueryGroup.start(this.tableModel, ElderTableGroupLayer.PROJECTED)
20328
+ .withColumnsPosition(this.columnsPosition)
20329
+ .withColumnDefs(this.columnDefsQuery, this.elderColumnsQuery)
20330
+ .withRowDefs(this.rowDefsQuery)
20331
+ .withSort(this._matSort)
20332
+ .bindUntil(this.destroy$);
20333
+ }
20334
+ ngOnDestroy() {
20335
+ this.destroy$.next();
20336
+ this.destroy$.complete();
20337
+ }
20338
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.15", ngImport: i0, type: ElderProjectedColumnsDirective, deps: [{ token: ElderTableModel }, { token: i4.MatSort, optional: true }], target: i0.ɵɵFactoryTarget.Directive }); }
20339
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "21.2.15", type: ElderProjectedColumnsDirective, isStandalone: true, selector: "[elderProjectedColumns]", inputs: { columnsPosition: "columnsPosition" }, providers: [ElderTableProviders.ExistingOrNewTableModel], queries: [{ propertyName: "columnDefsQuery", predicate: MatColumnDef }, { propertyName: "elderColumnsQuery", predicate: ElderTableColumnDirective }, { propertyName: "rowDefsQuery", predicate: MatRowDef }], ngImport: i0 }); }
20340
+ }
20341
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.15", ngImport: i0, type: ElderProjectedColumnsDirective, decorators: [{
20342
+ type: Directive,
20343
+ args: [{
20344
+ selector: '[elderProjectedColumns]',
20345
+ providers: [ElderTableProviders.ExistingOrNewTableModel],
20346
+ }]
20347
+ }], ctorParameters: () => [{ type: ElderTableModel }, { type: i4.MatSort, decorators: [{
20348
+ type: Optional
20349
+ }] }], propDecorators: { columnDefsQuery: [{
20350
+ type: ContentChildren,
20351
+ args: [MatColumnDef]
20352
+ }], elderColumnsQuery: [{
20353
+ type: ContentChildren,
20354
+ args: [ElderTableColumnDirective]
20355
+ }], rowDefsQuery: [{
20356
+ type: ContentChildren,
20357
+ args: [MatRowDef]
20358
+ }], columnsPosition: [{
20359
+ type: Input
20360
+ }] } });
20361
+
20375
20362
  /**
20376
20363
  * Forces a new Elder Table Model, thus breaking this component and its children from a potential parent elder-table.
20377
20364
  * With this, nested elder-tables are possible.
@@ -20547,7 +20534,7 @@ class ElderTableModule {
20547
20534
  ElderNumberCellDirective,
20548
20535
  ElderTableActivationDirective,
20549
20536
  ElderTableRowDirective,
20550
- ElderTableExtensionDirective,
20537
+ ElderProjectedColumnsDirective,
20551
20538
  ElderTableColumnDirective,
20552
20539
  ElderTableRootDirective,
20553
20540
  ElderDeleteActiveDirective,
@@ -20558,7 +20545,7 @@ class ElderTableModule {
20558
20545
  ElderCenterCellDirective,
20559
20546
  ElderNumberCellDirective,
20560
20547
  ElderTableActivationDirective,
20561
- ElderTableExtensionDirective,
20548
+ ElderProjectedColumnsDirective,
20562
20549
  ElderTableRootDirective,
20563
20550
  ElderDeleteActiveDirective,
20564
20551
  ElderTableDropListConnectorDirective] }); }
@@ -20627,7 +20614,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.15", ngImpo
20627
20614
  ElderNumberCellDirective,
20628
20615
  ElderTableActivationDirective,
20629
20616
  ElderTableRowDirective,
20630
- ElderTableExtensionDirective,
20617
+ ElderProjectedColumnsDirective,
20631
20618
  ElderTableColumnDirective,
20632
20619
  ElderTableRootDirective,
20633
20620
  ElderDeleteActiveDirective,
@@ -20641,7 +20628,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.15", ngImpo
20641
20628
  ElderCenterCellDirective,
20642
20629
  ElderNumberCellDirective,
20643
20630
  ElderTableActivationDirective,
20644
- ElderTableExtensionDirective,
20631
+ ElderProjectedColumnsDirective,
20645
20632
  ElderTableRootDirective,
20646
20633
  ElderDeleteActiveDirective,
20647
20634
  ElderTableDropListConnectorDirective,
@@ -23716,20 +23703,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.15", ngImpo
23716
23703
  args: ['elderAutocomplete']
23717
23704
  }] } });
23718
23705
 
23719
- class ElderSelectSelectionKeysDirective {
23720
- constructor() {
23721
- this.selectionKeys = input([], { ...(ngDevMode ? { debugName: "selectionKeys" } : /* istanbul ignore next */ {}), alias: 'elderSelectSelectionKeys' });
23722
- }
23723
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.15", ngImport: i0, type: ElderSelectSelectionKeysDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
23724
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "21.2.15", type: ElderSelectSelectionKeysDirective, isStandalone: true, selector: "[elderSelectSelectionKeys]", inputs: { selectionKeys: { classPropertyName: "selectionKeys", publicName: "elderSelectSelectionKeys", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0 }); }
23725
- }
23726
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.15", ngImport: i0, type: ElderSelectSelectionKeysDirective, decorators: [{
23727
- type: Directive,
23728
- args: [{
23729
- selector: '[elderSelectSelectionKeys]',
23730
- }]
23731
- }], propDecorators: { selectionKeys: [{ type: i0.Input, args: [{ isSignal: true, alias: "elderSelectSelectionKeys", required: false }] }] } });
23732
-
23733
23706
  class ElderSelectOnTabDirective {
23734
23707
  constructor() {
23735
23708
  /***************************************************************************
@@ -23742,15 +23715,11 @@ class ElderSelectOnTabDirective {
23742
23715
  this.elderSelect = inject(ElderSelectComponent, {
23743
23716
  skipSelf: true,
23744
23717
  });
23745
- this.destroyRef = inject(DestroyRef);
23718
+ this.destroy$ = new Subject$1();
23746
23719
  this.controlValueAccessor = this.elderSelect;
23747
23720
  this.panelOpen = false;
23748
23721
  this.autocompleteTextTyped = false;
23749
23722
  this.panelNavigatedWithArrowKeys = false;
23750
- this.selectionKeysDirective = inject(ElderSelectSelectionKeysDirective, {
23751
- optional: true,
23752
- });
23753
- this.selectionKeys = computed(() => this.selectionKeysDirective?.selectionKeys() ?? [], ...(ngDevMode ? [{ debugName: "selectionKeys" }] : /* istanbul ignore next */ []));
23754
23723
  }
23755
23724
  /***************************************************************************
23756
23725
  * *
@@ -23771,18 +23740,6 @@ class ElderSelectOnTabDirective {
23771
23740
  this.selectActiveOption();
23772
23741
  }
23773
23742
  }
23774
- handleKeydown(event) {
23775
- if (!this.selectionKeys().includes(event.key)) {
23776
- return;
23777
- }
23778
- if (!this.panelOpen) {
23779
- return;
23780
- }
23781
- event.preventDefault();
23782
- event.stopPropagation();
23783
- this.selectActiveOption();
23784
- this.autoTrigger.closePanel();
23785
- }
23786
23743
  /***************************************************************************
23787
23744
  * *
23788
23745
  * Life Cycle *
@@ -23792,6 +23749,10 @@ class ElderSelectOnTabDirective {
23792
23749
  this.observePanelOpen();
23793
23750
  this.observeAutocompleteSelection();
23794
23751
  }
23752
+ ngOnDestroy() {
23753
+ this.destroy$.next();
23754
+ this.destroy$.complete();
23755
+ }
23795
23756
  /***************************************************************************
23796
23757
  * *
23797
23758
  * Private methods *
@@ -23807,7 +23768,7 @@ class ElderSelectOnTabDirective {
23807
23768
  observePanelOpen() {
23808
23769
  const autocomplete = this.autoTrigger.autocomplete;
23809
23770
  merge(autocomplete.opened.pipe(map(() => true)), autocomplete.closed.pipe(map(() => false)))
23810
- .pipe(takeUntilDestroyed(this.destroyRef), delay(0))
23771
+ .pipe(takeUntil(this.destroy$), delay(0))
23811
23772
  .subscribe((isOpen) => {
23812
23773
  this.panelOpen = isOpen;
23813
23774
  if (isOpen) {
@@ -23822,7 +23783,7 @@ class ElderSelectOnTabDirective {
23822
23783
  this.autoTrigger.optionSelections
23823
23784
  .pipe(
23824
23785
  // TODO https://github.com/angular/components/pull/14813
23825
- takeUntilDestroyed(this.destroyRef), tap((opt) => this.logger.debug('[optionSelections] CHANGED ', opt)), map((opt) => opt.isUserInput))
23786
+ takeUntil(this.destroy$), tap((opt) => this.logger.debug('[optionSelections] CHANGED ', opt)), map((opt) => opt.isUserInput))
23826
23787
  .subscribe((isUserInput) => (this.autocompleteTextTyped = isUserInput));
23827
23788
  }
23828
23789
  selectActiveOption() {
@@ -23893,7 +23854,7 @@ class ElderSelectOnTabDirective {
23893
23854
  });
23894
23855
  }
23895
23856
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.15", ngImport: i0, type: ElderSelectOnTabDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
23896
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "21.2.15", type: ElderSelectOnTabDirective, isStandalone: true, selector: "[elderSelectOnTab]", host: { listeners: { "keydown.arrowup": "handleVerticalArrowKeyPress()", "keydown.arrowdown": "handleVerticalArrowKeyPress()", "input": "handleInputTyping()", "keydown.tab": "handleTabKeyPress()", "keydown": "handleKeydown($event)" } }, ngImport: i0 }); }
23857
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "21.2.15", type: ElderSelectOnTabDirective, isStandalone: true, selector: "[elderSelectOnTab]", host: { listeners: { "keydown.arrowup": "handleVerticalArrowKeyPress()", "keydown.arrowdown": "handleVerticalArrowKeyPress()", "input": "handleInputTyping()", "keydown.tab": "handleTabKeyPress()" } }, ngImport: i0 }); }
23897
23858
  }
23898
23859
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.15", ngImport: i0, type: ElderSelectOnTabDirective, decorators: [{
23899
23860
  type: Directive,
@@ -23912,9 +23873,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.15", ngImpo
23912
23873
  }], handleTabKeyPress: [{
23913
23874
  type: HostListener,
23914
23875
  args: ['keydown.tab']
23915
- }], handleKeydown: [{
23916
- type: HostListener,
23917
- args: ['keydown', ['$event']]
23918
23876
  }] } });
23919
23877
 
23920
23878
  class ElderAutocompleteOptionSelected {
@@ -29356,6 +29314,45 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.15", ngImpo
29356
29314
  }]
29357
29315
  }] });
29358
29316
 
29317
+ class ElderScrollbarScopeDirective {
29318
+ constructor() {
29319
+ /***************************************************************************
29320
+ * *
29321
+ * State *
29322
+ * *
29323
+ **************************************************************************/
29324
+ this._wideScrollbarMode = signal(false, ...(ngDevMode ? [{ debugName: "_wideScrollbarMode" }] : /* istanbul ignore next */ []));
29325
+ /***************************************************************************
29326
+ * *
29327
+ * Template bindings *
29328
+ * *
29329
+ **************************************************************************/
29330
+ this.wideScrollbarMode = this._wideScrollbarMode.asReadonly();
29331
+ }
29332
+ /***************************************************************************
29333
+ * *
29334
+ * Public API *
29335
+ * *
29336
+ **************************************************************************/
29337
+ activateWideScrollbarMode() {
29338
+ this._wideScrollbarMode.set(true);
29339
+ }
29340
+ deactivateWideScrollbarMode() {
29341
+ this._wideScrollbarMode.set(false);
29342
+ }
29343
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.15", ngImport: i0, type: ElderScrollbarScopeDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
29344
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "21.2.15", type: ElderScrollbarScopeDirective, isStandalone: true, selector: "[elderScrollbarScope]", host: { properties: { "class.elder-scrollbar-lg": "wideScrollbarMode()" } }, ngImport: i0 }); }
29345
+ }
29346
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.15", ngImport: i0, type: ElderScrollbarScopeDirective, decorators: [{
29347
+ type: Directive,
29348
+ args: [{
29349
+ selector: '[elderScrollbarScope]',
29350
+ host: {
29351
+ '[class.elder-scrollbar-lg]': 'wideScrollbarMode()',
29352
+ },
29353
+ }]
29354
+ }] });
29355
+
29359
29356
  /**
29360
29357
  * Bootstrap service that initializes services on startup.
29361
29358
  */
@@ -29982,7 +29979,7 @@ class ElderShellComponent {
29982
29979
  return false;
29983
29980
  }
29984
29981
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.15", ngImport: i0, type: ElderShellComponent, deps: [{ token: ElderServicesBootstrap }, { token: ElderShellService }, { token: ElderRouteOutletDrawerService }, { token: i0.ChangeDetectorRef }, { token: GlobalDragDropService }, { token: i0.Renderer2 }, { token: i0.DestroyRef }], target: i0.ɵɵFactoryTarget.Component }); }
29985
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.15", type: ElderShellComponent, isStandalone: true, selector: "elder-shell", inputs: { sideNavToggleEnabled: { classPropertyName: "sideNavToggleEnabled", publicName: "sideNavToggleEnabled", isSignal: true, isRequired: false, transformFunction: null }, leftSideAutoFocus: { classPropertyName: "leftSideAutoFocus", publicName: "leftSideAutoFocus", isSignal: true, isRequired: false, transformFunction: null }, rightSideAutoFocus: { classPropertyName: "rightSideAutoFocus", publicName: "rightSideAutoFocus", isSignal: true, isRequired: false, transformFunction: null }, color: { classPropertyName: "color", publicName: "color", isSignal: true, isRequired: false, transformFunction: null }, navMenuSvgIcon: { classPropertyName: "navMenuSvgIcon", publicName: "navMenuSvgIcon", isSignal: true, isRequired: false, transformFunction: null }, menuColor: { classPropertyName: "menuColor", publicName: "menuColor", isSignal: true, isRequired: false, transformFunction: null }, menuIconColor: { classPropertyName: "menuIconColor", publicName: "menuIconColor", isSignal: true, isRequired: false, transformFunction: null } }, queries: [{ propertyName: "sideContentLeft", first: true, predicate: ElderShellSideLeftDirective, descendants: true, read: TemplateRef, static: true }, { propertyName: "sideContentRight", first: true, predicate: ElderShellSideRightDirective, descendants: true, read: TemplateRef, static: true }, { propertyName: "centerContent", first: true, predicate: ElderShellCenterDirective, descendants: true, read: TemplateRef, static: true }, { propertyName: "staticNavContent", first: true, predicate: ElderShellStaticNavSlotDirective, descendants: true, read: TemplateRef, static: true }], viewQueries: [{ propertyName: "rightSideDrawer", first: true, predicate: ["rightSideDetail"], descendants: true, static: true }], ngImport: i0, template: "<mat-sidenav-container\n elderThemeApplier\n class=\"full-width\"\n (backdropClick)=\"onBackdropClick($event)\"\n>\n <!-- Left Side Nav -->\n <mat-sidenav\n position=\"start\"\n mode=\"over\"\n [fixedInViewport]=\"true\"\n [autoFocus]=\"leftSideAutoFocus()\"\n [opened]=\"leftSideContentOpen()\"\n (closedStart)=\"blurNavIconFocus()\"\n (closed)=\"closeLeftSideContent()\"\n restoreFocus=\"false\"\n >\n <div class=\"layout-col full elder-side-nav\">\n <ng-container *ngTemplateOutlet=\"sideContentLeft || fallbackSideContentLeft\"></ng-container>\n </div>\n </mat-sidenav>\n\n <!-- Main Content -->\n <mat-sidenav-content>\n <div class=\"layout-col full\">\n <ng-container *ngTemplateOutlet=\"centerContent || fallbackCenterContent\"></ng-container>\n </div>\n </mat-sidenav-content>\n\n <!-- Right Side Detail -->\n <mat-sidenav\n mode=\"over\"\n #rightSideDetail\n id=\"elder-right-side-detail\"\n position=\"end\"\n [fixedInViewport]=\"true\"\n [autoFocus]=\"rightSideAutoFocus()\"\n [disableClose]=\"true\"\n (keydown.escape)=\"onEscapeRightSide($event)\"\n >\n <div class=\"layout-col full\">\n <ng-container *ngTemplateOutlet=\"sideContentRight || fallbackSideContentRight\"></ng-container>\n </div>\n </mat-sidenav>\n</mat-sidenav-container>\n\n<ng-template #fallbackSideContentLeft>\n <div class=\"layout-col flex\">\n <p class=\"noselect\">No Left Side Content Defined!</p>\n </div>\n</ng-template>\n\n<ng-template #fallbackSideContentRight>\n <router-outlet name=\"side\" class=\"router-flex\"></router-outlet>\n</ng-template>\n\n<ng-template #fallbackCenterContent>\n <div class=\"layout-col full\">\n <!-- Header -->\n <ng-container *ngTemplateOutlet=\"headerTemplate() || defaultHeaderTemplate\"></ng-container>\n\n <!-- Center -->\n <div class=\"layout-row flex\">\n <!-- Static Nav -->\n <ng-container\n *ngTemplateOutlet=\"staticNavTemplate() || defaultStaticNavTemplate\"\n ></ng-container>\n <div class=\"layout-col flex\">\n <!-- Main Content -->\n <ng-container *ngTemplateOutlet=\"centerTemplate() || defaultCenterTemplate\"></ng-container>\n </div>\n </div>\n\n <!-- Footer -->\n <ng-container *ngTemplateOutlet=\"footerTemplate() || defaultFooterTemplate\"></ng-container>\n </div>\n</ng-template>\n\n<ng-template #defaultHeaderTemplate>\n <elder-toolbar\n [color]=\"color()\"\n class=\"elder-main-toolbar flex-none\"\n style=\"max-width: 100%; min-width: 100%\"\n >\n <!-- Toolbar Prefix: Sidenav Toggle -->\n @if (sideNavToggleEnabled()) {\n <mat-toolbar\n [color]=\"menuColor()\"\n class=\"flex-none elder-toolbar-main-nav-button-container pl-lg\"\n style=\"width: auto\"\n >\n <button\n class=\"elder-logo-btn elder-toolbar-main-nav-button\"\n mat-icon-button\n [color]=\"menuIconColor()\"\n type=\"button\"\n (click)=\"toggleSideNav()\"\n [class.elder-logo-btn]=\"!!navMenuSvgIcon\"\n >\n @if (navMenuSvgIcon()) {\n <mat-icon [svgIcon]=\"navMenuSvgIcon()\"></mat-icon>\n } @else {\n <mat-icon>menu</mat-icon>\n }\n </button>\n </mat-toolbar>\n }\n </elder-toolbar>\n</ng-template>\n\n<ng-template #defaultStaticNavTemplate>\n @if (staticNavOpen()) {\n <div class=\"layout-col elder-static-nav-container\">\n <ng-container *ngTemplateOutlet=\"staticNavContent\"></ng-container>\n </div>\n }\n</ng-template>\n\n<ng-template #defaultCenterTemplate>\n <div class=\"flex layout-row\">\n <!-- Primary Router Outlet -->\n <router-outlet class=\"router-flex\"></router-outlet>\n </div>\n</ng-template>\n\n<ng-template #defaultFooterTemplate>\n <!-- Default Footer is empty -->\n</ng-template>\n", styles: ["mat-sidenav{margin:0;height:100%;overflow:hidden}mat-sidenav .elder-side-nav{min-width:350px}mat-sidenav-container{margin:0;width:100%;height:100%;overflow:hidden}.elder-logo-btn{display:flex;justify-content:center;align-items:center;padding:0!important}.elder-logo-btn .mat-icon{--mat-icon-button-icon-size: 48px !important;height:var(--mat-icon-button-icon-size);width:var(--mat-icon-button-icon-size)}\n"], dependencies: [{ kind: "component", type: MatSidenavContainer, selector: "mat-sidenav-container", exportAs: ["matSidenavContainer"] }, { kind: "directive", type: ElderThemeApplierDirective, selector: "[elderThemeApplier]" }, { kind: "component", type: MatSidenav, selector: "mat-sidenav", inputs: ["fixedInViewport", "fixedTopGap", "fixedBottomGap"], exportAs: ["matSidenav"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: MatSidenavContent, selector: "mat-sidenav-content" }, { kind: "directive", type: RouterOutlet, selector: "router-outlet", inputs: ["name", "routerOutletData"], outputs: ["activate", "deactivate", "attach", "detach"], exportAs: ["outlet"] }, { kind: "component", type: ElderToolbarComponent, selector: "elder-toolbar", inputs: ["color"] }, { kind: "component", type: MatToolbar, selector: "mat-toolbar", inputs: ["color"], exportAs: ["matToolbar"] }, { kind: "component", type: MatIconButton, selector: "button[mat-icon-button], a[mat-icon-button], button[matIconButton], a[matIconButton]", exportAs: ["matButton", "matAnchor"] }, { kind: "component", type: MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
29982
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.15", type: ElderShellComponent, isStandalone: true, selector: "elder-shell", inputs: { sideNavToggleEnabled: { classPropertyName: "sideNavToggleEnabled", publicName: "sideNavToggleEnabled", isSignal: true, isRequired: false, transformFunction: null }, leftSideAutoFocus: { classPropertyName: "leftSideAutoFocus", publicName: "leftSideAutoFocus", isSignal: true, isRequired: false, transformFunction: null }, rightSideAutoFocus: { classPropertyName: "rightSideAutoFocus", publicName: "rightSideAutoFocus", isSignal: true, isRequired: false, transformFunction: null }, color: { classPropertyName: "color", publicName: "color", isSignal: true, isRequired: false, transformFunction: null }, navMenuSvgIcon: { classPropertyName: "navMenuSvgIcon", publicName: "navMenuSvgIcon", isSignal: true, isRequired: false, transformFunction: null }, menuColor: { classPropertyName: "menuColor", publicName: "menuColor", isSignal: true, isRequired: false, transformFunction: null }, menuIconColor: { classPropertyName: "menuIconColor", publicName: "menuIconColor", isSignal: true, isRequired: false, transformFunction: null } }, queries: [{ propertyName: "sideContentLeft", first: true, predicate: ElderShellSideLeftDirective, descendants: true, read: TemplateRef, static: true }, { propertyName: "sideContentRight", first: true, predicate: ElderShellSideRightDirective, descendants: true, read: TemplateRef, static: true }, { propertyName: "centerContent", first: true, predicate: ElderShellCenterDirective, descendants: true, read: TemplateRef, static: true }, { propertyName: "staticNavContent", first: true, predicate: ElderShellStaticNavSlotDirective, descendants: true, read: TemplateRef, static: true }], viewQueries: [{ propertyName: "rightSideDrawer", first: true, predicate: ["rightSideDetail"], descendants: true, static: true }], hostDirectives: [{ directive: ElderScrollbarScopeDirective }], ngImport: i0, template: "<mat-sidenav-container\n elderThemeApplier\n class=\"full-width\"\n (backdropClick)=\"onBackdropClick($event)\"\n>\n <!-- Left Side Nav -->\n <mat-sidenav\n position=\"start\"\n mode=\"over\"\n [fixedInViewport]=\"true\"\n [autoFocus]=\"leftSideAutoFocus()\"\n [opened]=\"leftSideContentOpen()\"\n (closedStart)=\"blurNavIconFocus()\"\n (closed)=\"closeLeftSideContent()\"\n restoreFocus=\"false\"\n >\n <div class=\"layout-col full elder-side-nav\">\n <ng-container *ngTemplateOutlet=\"sideContentLeft || fallbackSideContentLeft\"></ng-container>\n </div>\n </mat-sidenav>\n\n <!-- Main Content -->\n <mat-sidenav-content>\n <div class=\"layout-col full\">\n <ng-container *ngTemplateOutlet=\"centerContent || fallbackCenterContent\"></ng-container>\n </div>\n </mat-sidenav-content>\n\n <!-- Right Side Detail -->\n <mat-sidenav\n mode=\"over\"\n #rightSideDetail\n id=\"elder-right-side-detail\"\n position=\"end\"\n [fixedInViewport]=\"true\"\n [autoFocus]=\"rightSideAutoFocus()\"\n [disableClose]=\"true\"\n (keydown.escape)=\"onEscapeRightSide($event)\"\n >\n <div class=\"layout-col full\">\n <ng-container *ngTemplateOutlet=\"sideContentRight || fallbackSideContentRight\"></ng-container>\n </div>\n </mat-sidenav>\n</mat-sidenav-container>\n\n<ng-template #fallbackSideContentLeft>\n <div class=\"layout-col flex\">\n <p class=\"noselect\">No Left Side Content Defined!</p>\n </div>\n</ng-template>\n\n<ng-template #fallbackSideContentRight>\n <router-outlet name=\"side\" class=\"router-flex\"></router-outlet>\n</ng-template>\n\n<ng-template #fallbackCenterContent>\n <div class=\"layout-col full\">\n <!-- Header -->\n <ng-container *ngTemplateOutlet=\"headerTemplate() || defaultHeaderTemplate\"></ng-container>\n\n <!-- Center -->\n <div class=\"layout-row flex\">\n <!-- Static Nav -->\n <ng-container\n *ngTemplateOutlet=\"staticNavTemplate() || defaultStaticNavTemplate\"\n ></ng-container>\n <div class=\"layout-col flex\">\n <!-- Main Content -->\n <ng-container *ngTemplateOutlet=\"centerTemplate() || defaultCenterTemplate\"></ng-container>\n </div>\n </div>\n\n <!-- Footer -->\n <ng-container *ngTemplateOutlet=\"footerTemplate() || defaultFooterTemplate\"></ng-container>\n </div>\n</ng-template>\n\n<ng-template #defaultHeaderTemplate>\n <elder-toolbar\n [color]=\"color()\"\n class=\"elder-main-toolbar flex-none\"\n style=\"max-width: 100%; min-width: 100%\"\n >\n <!-- Toolbar Prefix: Sidenav Toggle -->\n @if (sideNavToggleEnabled()) {\n <mat-toolbar\n [color]=\"menuColor()\"\n class=\"flex-none elder-toolbar-main-nav-button-container pl-lg\"\n style=\"width: auto\"\n >\n <button\n class=\"elder-logo-btn elder-toolbar-main-nav-button\"\n mat-icon-button\n [color]=\"menuIconColor()\"\n type=\"button\"\n (click)=\"toggleSideNav()\"\n [class.elder-logo-btn]=\"!!navMenuSvgIcon\"\n >\n @if (navMenuSvgIcon()) {\n <mat-icon [svgIcon]=\"navMenuSvgIcon()\"></mat-icon>\n } @else {\n <mat-icon>menu</mat-icon>\n }\n </button>\n </mat-toolbar>\n }\n </elder-toolbar>\n</ng-template>\n\n<ng-template #defaultStaticNavTemplate>\n @if (staticNavOpen()) {\n <div class=\"layout-col elder-static-nav-container\">\n <ng-container *ngTemplateOutlet=\"staticNavContent\"></ng-container>\n </div>\n }\n</ng-template>\n\n<ng-template #defaultCenterTemplate>\n <div class=\"flex layout-row\">\n <!-- Primary Router Outlet -->\n <router-outlet class=\"router-flex\"></router-outlet>\n </div>\n</ng-template>\n\n<ng-template #defaultFooterTemplate>\n <!-- Default Footer is empty -->\n</ng-template>\n", styles: ["mat-sidenav{margin:0;height:100%;overflow:hidden}mat-sidenav .elder-side-nav{min-width:350px}mat-sidenav-container{margin:0;width:100%;height:100%;overflow:hidden}.elder-logo-btn{display:flex;justify-content:center;align-items:center;padding:0!important}.elder-logo-btn .mat-icon{--mat-icon-button-icon-size: 48px !important;height:var(--mat-icon-button-icon-size);width:var(--mat-icon-button-icon-size)}\n"], dependencies: [{ kind: "component", type: MatSidenavContainer, selector: "mat-sidenav-container", exportAs: ["matSidenavContainer"] }, { kind: "directive", type: ElderThemeApplierDirective, selector: "[elderThemeApplier]" }, { kind: "component", type: MatSidenav, selector: "mat-sidenav", inputs: ["fixedInViewport", "fixedTopGap", "fixedBottomGap"], exportAs: ["matSidenav"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: MatSidenavContent, selector: "mat-sidenav-content" }, { kind: "directive", type: RouterOutlet, selector: "router-outlet", inputs: ["name", "routerOutletData"], outputs: ["activate", "deactivate", "attach", "detach"], exportAs: ["outlet"] }, { kind: "component", type: ElderToolbarComponent, selector: "elder-toolbar", inputs: ["color"] }, { kind: "component", type: MatToolbar, selector: "mat-toolbar", inputs: ["color"], exportAs: ["matToolbar"] }, { kind: "component", type: MatIconButton, selector: "button[mat-icon-button], a[mat-icon-button], button[matIconButton], a[matIconButton]", exportAs: ["matButton", "matAnchor"] }, { kind: "component", type: MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
29986
29983
  }
29987
29984
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.15", ngImport: i0, type: ElderShellComponent, decorators: [{
29988
29985
  type: Component,
@@ -29997,7 +29994,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.15", ngImpo
29997
29994
  MatToolbar,
29998
29995
  MatIconButton,
29999
29996
  MatIcon,
30000
- ], template: "<mat-sidenav-container\n elderThemeApplier\n class=\"full-width\"\n (backdropClick)=\"onBackdropClick($event)\"\n>\n <!-- Left Side Nav -->\n <mat-sidenav\n position=\"start\"\n mode=\"over\"\n [fixedInViewport]=\"true\"\n [autoFocus]=\"leftSideAutoFocus()\"\n [opened]=\"leftSideContentOpen()\"\n (closedStart)=\"blurNavIconFocus()\"\n (closed)=\"closeLeftSideContent()\"\n restoreFocus=\"false\"\n >\n <div class=\"layout-col full elder-side-nav\">\n <ng-container *ngTemplateOutlet=\"sideContentLeft || fallbackSideContentLeft\"></ng-container>\n </div>\n </mat-sidenav>\n\n <!-- Main Content -->\n <mat-sidenav-content>\n <div class=\"layout-col full\">\n <ng-container *ngTemplateOutlet=\"centerContent || fallbackCenterContent\"></ng-container>\n </div>\n </mat-sidenav-content>\n\n <!-- Right Side Detail -->\n <mat-sidenav\n mode=\"over\"\n #rightSideDetail\n id=\"elder-right-side-detail\"\n position=\"end\"\n [fixedInViewport]=\"true\"\n [autoFocus]=\"rightSideAutoFocus()\"\n [disableClose]=\"true\"\n (keydown.escape)=\"onEscapeRightSide($event)\"\n >\n <div class=\"layout-col full\">\n <ng-container *ngTemplateOutlet=\"sideContentRight || fallbackSideContentRight\"></ng-container>\n </div>\n </mat-sidenav>\n</mat-sidenav-container>\n\n<ng-template #fallbackSideContentLeft>\n <div class=\"layout-col flex\">\n <p class=\"noselect\">No Left Side Content Defined!</p>\n </div>\n</ng-template>\n\n<ng-template #fallbackSideContentRight>\n <router-outlet name=\"side\" class=\"router-flex\"></router-outlet>\n</ng-template>\n\n<ng-template #fallbackCenterContent>\n <div class=\"layout-col full\">\n <!-- Header -->\n <ng-container *ngTemplateOutlet=\"headerTemplate() || defaultHeaderTemplate\"></ng-container>\n\n <!-- Center -->\n <div class=\"layout-row flex\">\n <!-- Static Nav -->\n <ng-container\n *ngTemplateOutlet=\"staticNavTemplate() || defaultStaticNavTemplate\"\n ></ng-container>\n <div class=\"layout-col flex\">\n <!-- Main Content -->\n <ng-container *ngTemplateOutlet=\"centerTemplate() || defaultCenterTemplate\"></ng-container>\n </div>\n </div>\n\n <!-- Footer -->\n <ng-container *ngTemplateOutlet=\"footerTemplate() || defaultFooterTemplate\"></ng-container>\n </div>\n</ng-template>\n\n<ng-template #defaultHeaderTemplate>\n <elder-toolbar\n [color]=\"color()\"\n class=\"elder-main-toolbar flex-none\"\n style=\"max-width: 100%; min-width: 100%\"\n >\n <!-- Toolbar Prefix: Sidenav Toggle -->\n @if (sideNavToggleEnabled()) {\n <mat-toolbar\n [color]=\"menuColor()\"\n class=\"flex-none elder-toolbar-main-nav-button-container pl-lg\"\n style=\"width: auto\"\n >\n <button\n class=\"elder-logo-btn elder-toolbar-main-nav-button\"\n mat-icon-button\n [color]=\"menuIconColor()\"\n type=\"button\"\n (click)=\"toggleSideNav()\"\n [class.elder-logo-btn]=\"!!navMenuSvgIcon\"\n >\n @if (navMenuSvgIcon()) {\n <mat-icon [svgIcon]=\"navMenuSvgIcon()\"></mat-icon>\n } @else {\n <mat-icon>menu</mat-icon>\n }\n </button>\n </mat-toolbar>\n }\n </elder-toolbar>\n</ng-template>\n\n<ng-template #defaultStaticNavTemplate>\n @if (staticNavOpen()) {\n <div class=\"layout-col elder-static-nav-container\">\n <ng-container *ngTemplateOutlet=\"staticNavContent\"></ng-container>\n </div>\n }\n</ng-template>\n\n<ng-template #defaultCenterTemplate>\n <div class=\"flex layout-row\">\n <!-- Primary Router Outlet -->\n <router-outlet class=\"router-flex\"></router-outlet>\n </div>\n</ng-template>\n\n<ng-template #defaultFooterTemplate>\n <!-- Default Footer is empty -->\n</ng-template>\n", styles: ["mat-sidenav{margin:0;height:100%;overflow:hidden}mat-sidenav .elder-side-nav{min-width:350px}mat-sidenav-container{margin:0;width:100%;height:100%;overflow:hidden}.elder-logo-btn{display:flex;justify-content:center;align-items:center;padding:0!important}.elder-logo-btn .mat-icon{--mat-icon-button-icon-size: 48px !important;height:var(--mat-icon-button-icon-size);width:var(--mat-icon-button-icon-size)}\n"] }]
29997
+ ], hostDirectives: [ElderScrollbarScopeDirective], template: "<mat-sidenav-container\n elderThemeApplier\n class=\"full-width\"\n (backdropClick)=\"onBackdropClick($event)\"\n>\n <!-- Left Side Nav -->\n <mat-sidenav\n position=\"start\"\n mode=\"over\"\n [fixedInViewport]=\"true\"\n [autoFocus]=\"leftSideAutoFocus()\"\n [opened]=\"leftSideContentOpen()\"\n (closedStart)=\"blurNavIconFocus()\"\n (closed)=\"closeLeftSideContent()\"\n restoreFocus=\"false\"\n >\n <div class=\"layout-col full elder-side-nav\">\n <ng-container *ngTemplateOutlet=\"sideContentLeft || fallbackSideContentLeft\"></ng-container>\n </div>\n </mat-sidenav>\n\n <!-- Main Content -->\n <mat-sidenav-content>\n <div class=\"layout-col full\">\n <ng-container *ngTemplateOutlet=\"centerContent || fallbackCenterContent\"></ng-container>\n </div>\n </mat-sidenav-content>\n\n <!-- Right Side Detail -->\n <mat-sidenav\n mode=\"over\"\n #rightSideDetail\n id=\"elder-right-side-detail\"\n position=\"end\"\n [fixedInViewport]=\"true\"\n [autoFocus]=\"rightSideAutoFocus()\"\n [disableClose]=\"true\"\n (keydown.escape)=\"onEscapeRightSide($event)\"\n >\n <div class=\"layout-col full\">\n <ng-container *ngTemplateOutlet=\"sideContentRight || fallbackSideContentRight\"></ng-container>\n </div>\n </mat-sidenav>\n</mat-sidenav-container>\n\n<ng-template #fallbackSideContentLeft>\n <div class=\"layout-col flex\">\n <p class=\"noselect\">No Left Side Content Defined!</p>\n </div>\n</ng-template>\n\n<ng-template #fallbackSideContentRight>\n <router-outlet name=\"side\" class=\"router-flex\"></router-outlet>\n</ng-template>\n\n<ng-template #fallbackCenterContent>\n <div class=\"layout-col full\">\n <!-- Header -->\n <ng-container *ngTemplateOutlet=\"headerTemplate() || defaultHeaderTemplate\"></ng-container>\n\n <!-- Center -->\n <div class=\"layout-row flex\">\n <!-- Static Nav -->\n <ng-container\n *ngTemplateOutlet=\"staticNavTemplate() || defaultStaticNavTemplate\"\n ></ng-container>\n <div class=\"layout-col flex\">\n <!-- Main Content -->\n <ng-container *ngTemplateOutlet=\"centerTemplate() || defaultCenterTemplate\"></ng-container>\n </div>\n </div>\n\n <!-- Footer -->\n <ng-container *ngTemplateOutlet=\"footerTemplate() || defaultFooterTemplate\"></ng-container>\n </div>\n</ng-template>\n\n<ng-template #defaultHeaderTemplate>\n <elder-toolbar\n [color]=\"color()\"\n class=\"elder-main-toolbar flex-none\"\n style=\"max-width: 100%; min-width: 100%\"\n >\n <!-- Toolbar Prefix: Sidenav Toggle -->\n @if (sideNavToggleEnabled()) {\n <mat-toolbar\n [color]=\"menuColor()\"\n class=\"flex-none elder-toolbar-main-nav-button-container pl-lg\"\n style=\"width: auto\"\n >\n <button\n class=\"elder-logo-btn elder-toolbar-main-nav-button\"\n mat-icon-button\n [color]=\"menuIconColor()\"\n type=\"button\"\n (click)=\"toggleSideNav()\"\n [class.elder-logo-btn]=\"!!navMenuSvgIcon\"\n >\n @if (navMenuSvgIcon()) {\n <mat-icon [svgIcon]=\"navMenuSvgIcon()\"></mat-icon>\n } @else {\n <mat-icon>menu</mat-icon>\n }\n </button>\n </mat-toolbar>\n }\n </elder-toolbar>\n</ng-template>\n\n<ng-template #defaultStaticNavTemplate>\n @if (staticNavOpen()) {\n <div class=\"layout-col elder-static-nav-container\">\n <ng-container *ngTemplateOutlet=\"staticNavContent\"></ng-container>\n </div>\n }\n</ng-template>\n\n<ng-template #defaultCenterTemplate>\n <div class=\"flex layout-row\">\n <!-- Primary Router Outlet -->\n <router-outlet class=\"router-flex\"></router-outlet>\n </div>\n</ng-template>\n\n<ng-template #defaultFooterTemplate>\n <!-- Default Footer is empty -->\n</ng-template>\n", styles: ["mat-sidenav{margin:0;height:100%;overflow:hidden}mat-sidenav .elder-side-nav{min-width:350px}mat-sidenav-container{margin:0;width:100%;height:100%;overflow:hidden}.elder-logo-btn{display:flex;justify-content:center;align-items:center;padding:0!important}.elder-logo-btn .mat-icon{--mat-icon-button-icon-size: 48px !important;height:var(--mat-icon-button-icon-size);width:var(--mat-icon-button-icon-size)}\n"] }]
30001
29998
  }], ctorParameters: () => [{ type: ElderServicesBootstrap }, { type: ElderShellService }, { type: ElderRouteOutletDrawerService }, { type: i0.ChangeDetectorRef }, { type: GlobalDragDropService }, { type: i0.Renderer2 }, { type: i0.DestroyRef }], propDecorators: { sideNavToggleEnabled: [{ type: i0.Input, args: [{ isSignal: true, alias: "sideNavToggleEnabled", required: false }] }], leftSideAutoFocus: [{ type: i0.Input, args: [{ isSignal: true, alias: "leftSideAutoFocus", required: false }] }], rightSideAutoFocus: [{ type: i0.Input, args: [{ isSignal: true, alias: "rightSideAutoFocus", required: false }] }], sideContentLeft: [{
30002
29999
  type: ContentChild,
30003
30000
  args: [ElderShellSideLeftDirective, { read: TemplateRef, static: true }]
@@ -32435,7 +32432,7 @@ class ElderIntervalPickerComponent {
32435
32432
  }
32436
32433
  }
32437
32434
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.15", ngImport: i0, type: ElderIntervalPickerComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
32438
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.15", type: ElderIntervalPickerComponent, isStandalone: true, selector: "elder-interval-picker", inputs: { emitType: { classPropertyName: "emitType", publicName: "emitType", isSignal: true, isRequired: false, transformFunction: null }, autoEmitMode: { classPropertyName: "autoEmitMode", publicName: "autoEmitMode", isSignal: true, isRequired: false, transformFunction: null }, intervalInputMode: { classPropertyName: "intervalInputMode", publicName: "intervalInputMode", isSignal: true, isRequired: false, transformFunction: null }, showAnchor: { classPropertyName: "showAnchor", publicName: "showAnchor", isSignal: true, isRequired: false, transformFunction: null }, anchorReadOnly: { classPropertyName: "anchorReadOnly", publicName: "anchorReadOnly", isSignal: true, isRequired: false, transformFunction: null }, externalAnchorDateTime: { classPropertyName: "externalAnchorDateTime", publicName: "externalAnchorDateTime", isSignal: true, isRequired: false, transformFunction: null }, externalInterval: { classPropertyName: "externalInterval", publicName: "externalInterval", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { intervalChange: "intervalChange" }, providers: [{ provide: DateAdapter, useClass: CustomDateAdapter }], viewQueries: [{ propertyName: "calendarStart", first: true, predicate: ["rangeCalendarStart"], descendants: true }, { propertyName: "calendarEnd", first: true, predicate: ["rangeCalendarEnd"], descendants: true }, { propertyName: "calendarStartElRef", first: true, predicate: ["rangeCalendarStart"], descendants: true, read: ElementRef }, { propertyName: "calendarEndElRef", first: true, predicate: ["rangeCalendarEnd"], descendants: true, read: ElementRef }, { propertyName: "startDateInput", first: true, predicate: ["startDateInput"], descendants: true }, { propertyName: "endDateInput", first: true, predicate: ["endDateInput"], descendants: true }], ngImport: i0, template: "<div class=\"interval-picker-component p-md layout-col gap-xxl\">\n <div class=\"layout-row gap-xxl place-between-start\" style=\"gap: 5%\">\n <div class=\"layout-col gap-md pt-xs\">\n <div class=\"layout-col\">\n <div class=\"layout-row select-buttons-container gap-sm\">\n <div class=\"layout-col gap-xs place-start-stretch\">\n <button mat-button type=\"button\" (click)=\"controller.select.selectCurrentDay()\">\n @if (presenter.isFixedAnchorDateSet()) {\n {{ 'intervalPicker.anchorDay' | translate }}\n } @else {\n {{ 'intervalPicker.today' | translate }}\n }\n </button>\n <button mat-button type=\"button\" (click)=\"controller.select.selectYesterday()\">\n @if (presenter.isFixedAnchorDateSet()) {\n {{ 'intervalPicker.last' | translate }} 1 {{ 'intervalPicker.day' | translate }}\n } @else {\n {{ 'intervalPicker.yesterday' | translate }}\n }\n </button>\n <button\n mat-button\n type=\"button\"\n (click)=\"controller.select.selectLastSevenDaysIncludingToday()\"\n >\n {{ 'intervalPicker.last' | translate }} 7\n {{ 'intervalPicker.days' | translate }}\n </button>\n <button\n mat-button\n type=\"button\"\n (click)=\"controller.select.selectLastThirtyDaysIncludingToday()\"\n >\n {{ 'intervalPicker.last' | translate }} 30\n {{ 'intervalPicker.days' | translate }}\n </button>\n <button\n mat-button\n type=\"button\"\n (click)=\"controller.select.selectLast365daysIncludingToday()\"\n >\n {{ 'intervalPicker.last' | translate }} 365\n {{ 'intervalPicker.days' | translate }}\n </button>\n @if (intervalInputMode() === 'date-time-range') {\n <div class=\"pt-sm\"></div>\n <button mat-button type=\"button\" (click)=\"controller.select.selectLastFiveMinutes()\">\n {{ 'intervalPicker.last' | translate }} 5\n {{ 'intervalPicker.minutes' | translate }}\n </button>\n <button mat-button type=\"button\" (click)=\"controller.select.selectLastHour()\">\n {{ 'intervalPicker.last' | translate }} {{ 'intervalPicker.hour' | translate }}\n </button>\n <button mat-button type=\"button\" (click)=\"controller.select.selectLast24Hours()\">\n {{ 'intervalPicker.last' | translate }} 24\n {{ 'intervalPicker.hours' | translate }}\n </button>\n }\n </div>\n </div>\n </div>\n </div>\n <div class=\"layout-col\">\n <!-- smart shift -->\n <div class=\"layout-row place-around-center\">\n <button\n type=\"button\"\n mat-icon-button\n (click)=\"controller.shift.smartShift(-1)\"\n [disabled]=\"!presenter.isValidIntervalSet()\"\n data-testid=\"interval-picker-smart-shift-left\"\n >\n <mat-icon>keyboard_double_arrow_left</mat-icon>\n </button>\n <span>{{ presenter.smartShiftMessage() }}</span>\n <button\n type=\"button\"\n mat-icon-button\n (click)=\"controller.shift.smartShift(1)\"\n [disabled]=\"!presenter.isValidIntervalSet()\"\n data-testid=\"interval-picker-smart-shift-right\"\n >\n <mat-icon>keyboard_double_arrow_right</mat-icon>\n </button>\n </div>\n <!-- calendars and input controls -->\n <div\n class=\"layout-row place-around-center\"\n style=\"align-items: flex-start; min-height: 280px\"\n >\n <mat-calendar\n #rangeCalendarStart\n style=\"width: 210px; max-width: 100%\"\n [selected]=\"presenter.dateRangeForCalendar()\"\n (selectedChange)=\"controller.calendar.setStartDateFromJSDate($event)\"\n [maxDate]=\"presenter.endDateTimeAsJSDate()\"\n [dateClass]=\"presenter.calendarAnchorDateCssClassFn\"\n >\n </mat-calendar>\n <mat-calendar\n #rangeCalendarEnd\n style=\"width: 210px; max-width: 100%\"\n [selected]=\"presenter.dateRangeForCalendar()\"\n (selectedChange)=\"controller.calendar.setEndDateFromJSDate($event)\"\n [minDate]=\"presenter.startDateTimeAsJSDate()\"\n [dateClass]=\"presenter.calendarAnchorDateCssClassFn\"\n >\n </mat-calendar>\n </div>\n <div class=\"layout-row place-around-center gap-xl pt-sm\">\n <div class=\"layout-row place-around-center\">\n <mat-form-field class=\"input-control-container\" [subscriptSizing]=\"'dynamic'\">\n <mat-label>{{ 'intervalPicker.startDate' | translate }}</mat-label>\n <input\n #startDateInput\n name=\"startDateInput\"\n matInput\n type=\"date\"\n [ngModel]=\"presenter.startDateHtmlString()\"\n (ngModelChange)=\"controller.form.setStartDateFromString($event)\"\n />\n </mat-form-field>\n </div>\n <div class=\"layout-row place-around-center\">\n <mat-form-field class=\"input-control-container\" [subscriptSizing]=\"'dynamic'\">\n <mat-label>{{ 'intervalPicker.endDate' | translate }}</mat-label>\n <input\n #endDateInput\n name=\"endDateInput\"\n matInput\n type=\"date\"\n [ngModel]=\"presenter.endDateHtmlString()\"\n (ngModelChange)=\"controller.form.setEndDateFromString($event)\"\n />\n </mat-form-field>\n </div>\n </div>\n @if (intervalInputMode() === 'date-time-range') {\n <div class=\"layout-row place-around-center gap-xl pt-sm\">\n <mat-form-field class=\"input-control-container\" [subscriptSizing]=\"'dynamic'\">\n <mat-label>{{ 'intervalPicker.startTime' | translate }}</mat-label>\n <input\n name=\"startTimeInput\"\n matInput\n type=\"time\"\n #startTimeControl=\"ngModel\"\n step=\"1\"\n [ngModel]=\"presenter.startTimeHtmlString()\"\n (ngModelChange)=\"controller.form.setStartTimeFromString($event)\"\n />\n <button\n type=\"button\"\n mat-icon-button\n matSuffix\n (click)=\"controller.clearStartTime()\"\n [disabled]=\"!presenter.isStartTimeSetAndNotMidnight()\"\n >\n <mat-icon>close</mat-icon>\n </button>\n </mat-form-field>\n <mat-form-field class=\"input-control-container\" [subscriptSizing]=\"'dynamic'\">\n <mat-label>{{ 'intervalPicker.endTime' | translate }}</mat-label>\n <input\n name=\"endTimeInput\"\n matInput\n type=\"time\"\n #endTimeControl=\"ngModel\"\n step=\"1\"\n [ngModel]=\"presenter.endTimeHtmlString()\"\n (ngModelChange)=\"controller.form.setEndTimeFromString($event)\"\n />\n <button\n type=\"button\"\n mat-icon-button\n matSuffix\n (click)=\"controller.clearEndTime()\"\n [disabled]=\"!presenter.isEndTimeSetAndNotMidnight()\"\n >\n <mat-icon>close</mat-icon>\n </button>\n </mat-form-field>\n </div>\n }\n <br />\n </div>\n <div class=\"pt-xs\" style=\"width: 25%\">\n <div class=\"layout-col gap-lg\">\n <div class=\"layout-col gap-xs place-start-start\">\n <!-- select current -->\n <button type=\"button\" mat-button (click)=\"controller.select.selectCurrentWeek()\">\n {{ 'intervalPicker.currentPeriod.week' | translate }}\n </button>\n <button type=\"button\" mat-button (click)=\"controller.select.selectCurrentMonth()\">\n {{ 'intervalPicker.currentPeriod.month' | translate }}\n </button>\n <button type=\"button\" mat-button (click)=\"controller.select.selectCurrentQuarter()\">\n {{ 'intervalPicker.currentPeriod.quarter' | translate }}\n </button>\n <button type=\"button\" mat-button (click)=\"controller.select.selectCurrentYear()\">\n {{ 'intervalPicker.currentPeriod.year' | translate }}\n </button>\n </div>\n <div class=\"fixed-shifts-container\">\n <div class=\"layout-col place-start-stretch\">\n <div class=\"layout-row place-between-center\">\n <button\n type=\"button\"\n mat-icon-button\n (click)=\"controller.shift.shiftDay(-1)\"\n [disabled]=\"!presenter.isValidIntervalSet()\"\n data-testid=\"interval-picker-shift-day-left\"\n >\n <mat-icon>keyboard_double_arrow_left</mat-icon>\n </button>\n <span>{{ 'intervalPicker.day' | translate }}</span>\n <button\n type=\"button\"\n mat-icon-button\n (click)=\"controller.shift.shiftDay(1)\"\n [disabled]=\"!presenter.isValidIntervalSet()\"\n data-testid=\"interval-picker-shift-day-right\"\n >\n <mat-icon>keyboard_double_arrow_right</mat-icon>\n </button>\n </div>\n <div class=\"layout-row place-between-center\">\n <button\n type=\"button\"\n mat-icon-button\n (click)=\"controller.shift.shiftMonth(-1)\"\n [disabled]=\"!presenter.isValidIntervalSet()\"\n data-testid=\"interval-picker-shift-month-left\"\n >\n <mat-icon>keyboard_double_arrow_left</mat-icon>\n </button>\n <span>{{ 'intervalPicker.month' | translate }}</span>\n <button\n type=\"button\"\n mat-icon-button\n (click)=\"controller.shift.shiftMonth(1)\"\n [disabled]=\"!presenter.isValidIntervalSet()\"\n data-testid=\"interval-picker-shift-month-right\"\n >\n <mat-icon>keyboard_double_arrow_right</mat-icon>\n </button>\n </div>\n <div class=\"layout-row place-between-center\">\n <button\n type=\"button\"\n mat-icon-button\n (click)=\"controller.shift.shiftYear(-1)\"\n [disabled]=\"!presenter.isValidIntervalSet()\"\n data-testid=\"interval-picker-shift-year-left\"\n >\n <mat-icon>keyboard_double_arrow_left</mat-icon>\n </button>\n <span>{{ 'intervalPicker.year' | translate }}</span>\n <button\n type=\"button\"\n mat-icon-button\n (click)=\"controller.shift.shiftYear(1)\"\n [disabled]=\"!presenter.isValidIntervalSet()\"\n data-testid=\"interval-picker-shift-year-right\"\n >\n <mat-icon>keyboard_double_arrow_right</mat-icon>\n </button>\n </div>\n\n @if (true) {\n <!-- shift minute -->\n <div class=\"layout-row place-between-center\">\n <button\n type=\"button\"\n mat-icon-button\n (click)=\"controller.shift.shiftMinute(-1)\"\n [disabled]=\"!presenter.isValidIntervalSet()\"\n data-testid=\"interval-picker-shift-minute-left\"\n >\n <mat-icon>keyboard_double_arrow_left</mat-icon>\n </button>\n <span>{{ 'intervalPicker.minute' | translate }}</span>\n <button\n type=\"button\"\n mat-icon-button\n (click)=\"controller.shift.shiftMinute(1)\"\n [disabled]=\"!presenter.isValidIntervalSet()\"\n data-testid=\"interval-picker-shift-minute-right\"\n >\n <mat-icon>keyboard_double_arrow_right</mat-icon>\n </button>\n </div>\n <!-- shift hour -->\n <div class=\"layout-row place-between-center\">\n <button\n type=\"button\"\n mat-icon-button\n (click)=\"controller.shift.shiftHour(-1)\"\n [disabled]=\"!presenter.isValidIntervalSet()\"\n data-testid=\"interval-picker-shift-hour-left\"\n >\n <mat-icon>keyboard_double_arrow_left</mat-icon>\n </button>\n <span>{{ 'intervalPicker.hour' | translate }}</span>\n <button\n type=\"button\"\n mat-icon-button\n (click)=\"controller.shift.shiftHour(1)\"\n [disabled]=\"!presenter.isValidIntervalSet()\"\n data-testid=\"interval-picker-shift-hour-right\"\n >\n <mat-icon>keyboard_double_arrow_right</mat-icon>\n </button>\n </div>\n }\n </div>\n </div>\n </div>\n </div>\n </div>\n</div>\n<div class=\"layout-row place-between-center gap-xxl pt-sm\">\n <div>\n @if (showAnchor()) {\n <div class=\"layout-row flex-none gap-md\">\n <mat-menu #anchorMenu=\"matMenu\">\n @if (presenter.startDateHtmlString()) {\n <button\n type=\"button\"\n mat-menu-item\n (click)=\"controller.anchor.setFixedAnchorPointToEndDateTime()\"\n [disabled]=\"!presenter.startDateHtmlString()\"\n >\n <mat-icon class=\"material-symbols-outlined\">login</mat-icon>\n <span>{{ 'intervalPicker.endDate' | translate }}</span>\n </button>\n }\n @if (presenter.endDateHtmlString()) {\n <button\n type=\"button\"\n mat-menu-item\n (click)=\"controller.anchor.setFixedAnchorPointToStartDateTime()\"\n [disabled]=\"!presenter.endDateHtmlString()\"\n >\n <mat-icon class=\"material-symbols-outlined\">logout</mat-icon>\n <span>{{ 'intervalPicker.startDate' | translate }}</span>\n </button>\n }\n @if (presenter.isFixedAnchorDateSet()) {\n <button\n type=\"button\"\n mat-menu-item\n (click)=\"controller.anchor.resetAnchor()\"\n [disabled]=\"!presenter.isFixedAnchorDateSet() || anchorReadOnly()\"\n >\n <mat-icon>close</mat-icon>\n <span>{{ 'intervalPicker.clear' | translate }}</span>\n </button>\n }\n </mat-menu>\n\n <mat-form-field class=\"input-control-container\" [subscriptSizing]=\"'dynamic'\">\n <mat-label>{{ 'intervalPicker.anchorDate' | translate }}</mat-label>\n <input\n #startDateInput\n name=\"anchorDateInput\"\n matInput\n type=\"date\"\n [ngModel]=\"presenter.anchorDateHtmlString()\"\n (ngModelChange)=\"controller.form.setAnchorDateFromString($event)\"\n [readonly]=\"anchorReadOnly()\"\n />\n @if (!anchorReadOnly()) {\n <button\n type=\"button\"\n mat-icon-button\n matSuffix\n [matMenuTriggerFor]=\"anchorMenu\"\n [disabled]=\"presenter.isAnchorMenuDisabled()\"\n >\n <mat-icon class=\"material-symbols-outlined\">more_horiz</mat-icon>\n </button>\n }\n </mat-form-field>\n @if (intervalInputMode() === 'date-time-range') {\n <mat-form-field class=\"input-control-container-short\" [subscriptSizing]=\"'dynamic'\">\n <mat-label>{{ 'intervalPicker.anchorTime' | translate }}</mat-label>\n <input\n matInput\n name=\"anchorTimeInput\"\n type=\"time\"\n #anchorTimeControl=\"ngModel\"\n step=\"1\"\n [readonly]=\"anchorReadOnly()\"\n [ngModel]=\"presenter.anchorTimeHtmlString()\"\n (ngModelChange)=\"controller.form.setAnchorTimeFromString($event)\"\n />\n <button\n type=\"button\"\n mat-icon-button\n matSuffix\n (click)=\"controller.anchor.resetAnchorTime()\"\n [disabled]=\"anchorReadOnly() || presenter.isAnchorTimeMidnight()\"\n >\n <mat-icon>close</mat-icon>\n </button>\n </mat-form-field>\n }\n </div>\n }\n </div>\n <!-- result interval -->\n <div class=\"layout-col place-center-center\">\n <div class=\"date-interval mat-caption pt-xs\">\n @if (presenter.startDateTimeAsJSDate()) {\n {{ presenter.startDateTimeAsJSDate() | date: 'dd.MM. y, HH:mm:ss' }}\n } @else {\n {{ 'intervalPicker.startDateNotSet' | translate }}\n }\n <span> - </span>\n @if (presenter.endDateTimeAsJSDate()) {\n {{ presenter.endDateTimeAsJSDate() | date: 'dd.MM. y, HH:mm:ss' }}\n } @else {\n {{ 'intervalPicker.endDateNotSet' | translate }}\n }\n </div>\n <div>\n <span class=\"mat-caption\">{{ presenter.deltaHumanReadable() || '&nbsp;' }}</span>\n </div>\n </div>\n <div class=\"layout-row gap-lg\">\n <button\n type=\"button\"\n mat-flat-button\n color=\"primary\"\n (click)=\"controller.clearInterval()\"\n [disabled]=\"!presenter.isValidIntervalSet()\"\n >\n {{ 'intervalPicker.clear' | translate }}\n </button>\n\n @if (!this.autoEmitMode()) {\n <button type=\"button\" color=\"primary\" mat-flat-button (click)=\"controller.manualEmit()\">\n {{ 'actions.ok' | translate }}\n </button>\n }\n </div>\n</div>\n", styles: [".interval-picker-component{min-width:840px;max-width:100%}.fixed-shifts-container{max-width:160px}.input-control-container{width:192px;max-width:100%}.input-control-container-short{width:140px;max-width:100%}.select-buttons-container button{white-space:nowrap;text-align:left;justify-content:flex-start}::ng-deep .interval-picker-component .mat-calendar-body-cell.elder-custom-anchor-date .mat-calendar-body-cell-content{border-radius:50%;background-color:#def;background-color:#b4d2ebbf}\n"], dependencies: [{ kind: "ngmodule", type: MatDatepickerModule }, { kind: "component", type: i1$d.MatCalendar, selector: "mat-calendar", inputs: ["headerComponent", "startAt", "startView", "selected", "minDate", "maxDate", "dateFilter", "dateClass", "comparisonStart", "comparisonEnd", "startDateAccessibleName", "endDateAccessibleName"], outputs: ["selectedChange", "yearSelected", "monthSelected", "viewChanged", "_userSelection", "_userDragDrop"], exportAs: ["matCalendar"] }, { kind: "ngmodule", type: MatFormFieldModule }, { kind: "component", type: i2$3.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i2$3.MatLabel, selector: "mat-label" }, { kind: "directive", type: i2$3.MatSuffix, selector: "[matSuffix], [matIconSuffix], [matTextSuffix]", inputs: ["matTextSuffix"] }, { kind: "ngmodule", type: MatInputModule }, { kind: "directive", type: i2$3.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly", "disabledInteractive"], exportAs: ["matInput"] }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i1$e.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1$3.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1$3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$3.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: i5.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: "component", type: i5.MatIconButton, selector: "button[mat-icon-button], a[mat-icon-button], button[matIconButton], a[matIconButton]", exportAs: ["matButton", "matAnchor"] }, { kind: "ngmodule", type: MatMenuModule }, { kind: "component", type: i6.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: i6.MatMenuItem, selector: "[mat-menu-item]", inputs: ["role", "disabled", "disableRipple"], exportAs: ["matMenuItem"] }, { kind: "directive", type: i6.MatMenuTrigger, selector: "[mat-menu-trigger-for], [matMenuTriggerFor]", inputs: ["mat-menu-trigger-for", "matMenuTriggerFor", "matMenuTriggerData", "matMenuTriggerRestoreFocus"], outputs: ["menuOpened", "onMenuOpen", "menuClosed", "onMenuClose"], exportAs: ["matMenuTrigger"] }, { kind: "pipe", type: ElderTranslatePipe, name: "translate" }, { kind: "pipe", type: DatePipe, name: "date" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
32435
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.15", type: ElderIntervalPickerComponent, isStandalone: true, selector: "elder-interval-picker", inputs: { emitType: { classPropertyName: "emitType", publicName: "emitType", isSignal: true, isRequired: false, transformFunction: null }, autoEmitMode: { classPropertyName: "autoEmitMode", publicName: "autoEmitMode", isSignal: true, isRequired: false, transformFunction: null }, intervalInputMode: { classPropertyName: "intervalInputMode", publicName: "intervalInputMode", isSignal: true, isRequired: false, transformFunction: null }, showAnchor: { classPropertyName: "showAnchor", publicName: "showAnchor", isSignal: true, isRequired: false, transformFunction: null }, anchorReadOnly: { classPropertyName: "anchorReadOnly", publicName: "anchorReadOnly", isSignal: true, isRequired: false, transformFunction: null }, externalAnchorDateTime: { classPropertyName: "externalAnchorDateTime", publicName: "externalAnchorDateTime", isSignal: true, isRequired: false, transformFunction: null }, externalInterval: { classPropertyName: "externalInterval", publicName: "externalInterval", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { intervalChange: "intervalChange" }, providers: [{ provide: DateAdapter, useClass: CustomDateAdapter }], viewQueries: [{ propertyName: "calendarStart", first: true, predicate: ["rangeCalendarStart"], descendants: true }, { propertyName: "calendarEnd", first: true, predicate: ["rangeCalendarEnd"], descendants: true }, { propertyName: "calendarStartElRef", first: true, predicate: ["rangeCalendarStart"], descendants: true, read: ElementRef }, { propertyName: "calendarEndElRef", first: true, predicate: ["rangeCalendarEnd"], descendants: true, read: ElementRef }, { propertyName: "startDateInput", first: true, predicate: ["startDateInput"], descendants: true }, { propertyName: "endDateInput", first: true, predicate: ["endDateInput"], descendants: true }], ngImport: i0, template: "<div class=\"interval-picker-component p-md layout-col gap-xxl\">\n <div class=\"layout-row gap-xxl place-between-start\" style=\"gap: 5%\">\n <div class=\"layout-col gap-md pt-xs\">\n <div class=\"layout-col\">\n <div class=\"layout-row select-buttons-container gap-sm\">\n <div class=\"layout-col gap-xs place-start-stretch\">\n <button mat-button type=\"button\" (click)=\"controller.select.selectCurrentDay()\">\n @if (presenter.isFixedAnchorDateSet()) {\n {{ 'intervalPicker.anchorDay' | translate }}\n } @else {\n {{ 'intervalPicker.today' | translate }}\n }\n </button>\n <button mat-button type=\"button\" (click)=\"controller.select.selectYesterday()\">\n @if (presenter.isFixedAnchorDateSet()) {\n {{ 'intervalPicker.last' | translate }} 1 {{ 'intervalPicker.day' | translate }}\n } @else {\n {{ 'intervalPicker.yesterday' | translate }}\n }\n </button>\n <button\n mat-button\n type=\"button\"\n (click)=\"controller.select.selectLastSevenDaysIncludingToday()\"\n >\n {{ 'intervalPicker.last' | translate }} 7\n {{ 'intervalPicker.days' | translate }}\n </button>\n <button\n mat-button\n type=\"button\"\n (click)=\"controller.select.selectLastThirtyDaysIncludingToday()\"\n >\n {{ 'intervalPicker.last' | translate }} 30\n {{ 'intervalPicker.days' | translate }}\n </button>\n <button\n mat-button\n type=\"button\"\n (click)=\"controller.select.selectLast365daysIncludingToday()\"\n >\n {{ 'intervalPicker.last' | translate }} 365\n {{ 'intervalPicker.days' | translate }}\n </button>\n @if (intervalInputMode() === 'date-time-range') {\n <div class=\"pt-sm\"></div>\n <button mat-button type=\"button\" (click)=\"controller.select.selectLastFiveMinutes()\">\n {{ 'intervalPicker.last' | translate }} 5\n {{ 'intervalPicker.minutes' | translate }}\n </button>\n <button mat-button type=\"button\" (click)=\"controller.select.selectLastHour()\">\n {{ 'intervalPicker.last' | translate }} {{ 'intervalPicker.hour' | translate }}\n </button>\n <button mat-button type=\"button\" (click)=\"controller.select.selectLast24Hours()\">\n {{ 'intervalPicker.last' | translate }} 24\n {{ 'intervalPicker.hours' | translate }}\n </button>\n }\n </div>\n </div>\n </div>\n </div>\n <div class=\"layout-col\">\n <!-- smart shift -->\n <div class=\"layout-row place-around-center\">\n <button\n type=\"button\"\n mat-icon-button\n (click)=\"controller.shift.smartShift(-1)\"\n [disabled]=\"!presenter.isValidIntervalSet()\"\n data-testid=\"interval-picker-smart-shift-left\"\n >\n <mat-icon>keyboard_double_arrow_left</mat-icon>\n </button>\n <span>{{ presenter.smartShiftMessage() }}</span>\n <button\n type=\"button\"\n mat-icon-button\n (click)=\"controller.shift.smartShift(1)\"\n [disabled]=\"!presenter.isValidIntervalSet()\"\n data-testid=\"interval-picker-smart-shift-right\"\n >\n <mat-icon>keyboard_double_arrow_right</mat-icon>\n </button>\n </div>\n <!-- calendars and input controls -->\n <div\n class=\"layout-row place-around-center\"\n style=\"align-items: flex-start; min-height: 280px\"\n >\n <mat-calendar\n #rangeCalendarStart\n style=\"width: 210px; max-width: 100%\"\n [selected]=\"presenter.dateRangeForCalendar()\"\n (selectedChange)=\"controller.calendar.setStartDateFromJSDate($event)\"\n [maxDate]=\"presenter.endDateTimeAsJSDate()\"\n [dateClass]=\"presenter.calendarAnchorDateCssClassFn\"\n >\n </mat-calendar>\n <mat-calendar\n #rangeCalendarEnd\n style=\"width: 210px; max-width: 100%\"\n [selected]=\"presenter.dateRangeForCalendar()\"\n (selectedChange)=\"controller.calendar.setEndDateFromJSDate($event)\"\n [minDate]=\"presenter.startDateTimeAsJSDate()\"\n [dateClass]=\"presenter.calendarAnchorDateCssClassFn\"\n >\n </mat-calendar>\n </div>\n <div class=\"layout-row place-around-center gap-xl pt-sm\">\n <div class=\"layout-row place-around-center\">\n <mat-form-field class=\"input-control-container\" [subscriptSizing]=\"'dynamic'\">\n <mat-label>{{ 'intervalPicker.startDate' | translate }}</mat-label>\n <input\n #startDateInput\n name=\"startDateInput\"\n matInput\n type=\"date\"\n [ngModel]=\"presenter.startDateHtmlString()\"\n (ngModelChange)=\"controller.form.setStartDateFromString($event)\"\n />\n </mat-form-field>\n </div>\n <div class=\"layout-row place-around-center\">\n <mat-form-field class=\"input-control-container\" [subscriptSizing]=\"'dynamic'\">\n <mat-label>{{ 'intervalPicker.endDate' | translate }}</mat-label>\n <input\n #endDateInput\n name=\"endDateInput\"\n matInput\n type=\"date\"\n [ngModel]=\"presenter.endDateHtmlString()\"\n (ngModelChange)=\"controller.form.setEndDateFromString($event)\"\n />\n </mat-form-field>\n </div>\n </div>\n @if (intervalInputMode() === 'date-time-range') {\n <div class=\"layout-row place-around-center gap-xl pt-sm\">\n <mat-form-field class=\"input-control-container\" [subscriptSizing]=\"'dynamic'\">\n <mat-label>{{ 'intervalPicker.startTime' | translate }}</mat-label>\n <input\n name=\"startTimeInput\"\n matInput\n type=\"time\"\n #startTimeControl=\"ngModel\"\n step=\"1\"\n [ngModel]=\"presenter.startTimeHtmlString()\"\n (ngModelChange)=\"controller.form.setStartTimeFromString($event)\"\n />\n <button\n type=\"button\"\n mat-icon-button\n matSuffix\n (click)=\"controller.clearStartTime()\"\n [disabled]=\"!presenter.isStartTimeSetAndNotMidnight()\"\n >\n <mat-icon>close</mat-icon>\n </button>\n </mat-form-field>\n <mat-form-field class=\"input-control-container\" [subscriptSizing]=\"'dynamic'\">\n <mat-label>{{ 'intervalPicker.endTime' | translate }}</mat-label>\n <input\n name=\"endTimeInput\"\n matInput\n type=\"time\"\n #endTimeControl=\"ngModel\"\n step=\"1\"\n [ngModel]=\"presenter.endTimeHtmlString()\"\n (ngModelChange)=\"controller.form.setEndTimeFromString($event)\"\n />\n <button\n type=\"button\"\n mat-icon-button\n matSuffix\n (click)=\"controller.clearEndTime()\"\n [disabled]=\"!presenter.isEndTimeSetAndNotMidnight()\"\n >\n <mat-icon>close</mat-icon>\n </button>\n </mat-form-field>\n </div>\n }\n <br />\n </div>\n <div class=\"pt-xs\" style=\"width: 25%\">\n <div class=\"layout-col gap-lg\">\n <div class=\"layout-col gap-xs place-start-start\">\n <!-- select current -->\n <button type=\"button\" mat-button (click)=\"controller.select.selectCurrentWeek()\">\n {{ 'intervalPicker.currentPeriod.week' | translate }}\n </button>\n <button type=\"button\" mat-button (click)=\"controller.select.selectCurrentMonth()\">\n {{ 'intervalPicker.currentPeriod.month' | translate }}\n </button>\n <button type=\"button\" mat-button (click)=\"controller.select.selectCurrentQuarter()\">\n {{ 'intervalPicker.currentPeriod.quarter' | translate }}\n </button>\n <button type=\"button\" mat-button (click)=\"controller.select.selectCurrentYear()\">\n {{ 'intervalPicker.currentPeriod.year' | translate }}\n </button>\n </div>\n <div class=\"fixed-shifts-container\">\n <div class=\"layout-col place-start-stretch\">\n <div class=\"layout-row place-between-center\">\n <button\n type=\"button\"\n mat-icon-button\n (click)=\"controller.shift.shiftDay(-1)\"\n [disabled]=\"!presenter.isValidIntervalSet()\"\n data-testid=\"interval-picker-shift-day-left\"\n >\n <mat-icon>keyboard_double_arrow_left</mat-icon>\n </button>\n <span>{{ 'intervalPicker.day' | translate }}</span>\n <button\n type=\"button\"\n mat-icon-button\n (click)=\"controller.shift.shiftDay(1)\"\n [disabled]=\"!presenter.isValidIntervalSet()\"\n data-testid=\"interval-picker-shift-day-right\"\n >\n <mat-icon>keyboard_double_arrow_right</mat-icon>\n </button>\n </div>\n <div class=\"layout-row place-between-center\">\n <button\n type=\"button\"\n mat-icon-button\n (click)=\"controller.shift.shiftMonth(-1)\"\n [disabled]=\"!presenter.isValidIntervalSet()\"\n data-testid=\"interval-picker-shift-month-left\"\n >\n <mat-icon>keyboard_double_arrow_left</mat-icon>\n </button>\n <span>{{ 'intervalPicker.month' | translate }}</span>\n <button\n type=\"button\"\n mat-icon-button\n (click)=\"controller.shift.shiftMonth(1)\"\n [disabled]=\"!presenter.isValidIntervalSet()\"\n data-testid=\"interval-picker-shift-month-right\"\n >\n <mat-icon>keyboard_double_arrow_right</mat-icon>\n </button>\n </div>\n <div class=\"layout-row place-between-center\">\n <button\n type=\"button\"\n mat-icon-button\n (click)=\"controller.shift.shiftYear(-1)\"\n [disabled]=\"!presenter.isValidIntervalSet()\"\n data-testid=\"interval-picker-shift-year-left\"\n >\n <mat-icon>keyboard_double_arrow_left</mat-icon>\n </button>\n <span>{{ 'intervalPicker.year' | translate }}</span>\n <button\n type=\"button\"\n mat-icon-button\n (click)=\"controller.shift.shiftYear(1)\"\n [disabled]=\"!presenter.isValidIntervalSet()\"\n data-testid=\"interval-picker-shift-year-right\"\n >\n <mat-icon>keyboard_double_arrow_right</mat-icon>\n </button>\n </div>\n\n @if (true) {\n <!-- shift minute -->\n <div class=\"layout-row place-between-center\">\n <button\n type=\"button\"\n mat-icon-button\n (click)=\"controller.shift.shiftMinute(-1)\"\n [disabled]=\"!presenter.isValidIntervalSet()\"\n data-testid=\"interval-picker-shift-minute-left\"\n >\n <mat-icon>keyboard_double_arrow_left</mat-icon>\n </button>\n <span>{{ 'intervalPicker.minute' | translate }}</span>\n <button\n type=\"button\"\n mat-icon-button\n (click)=\"controller.shift.shiftMinute(1)\"\n [disabled]=\"!presenter.isValidIntervalSet()\"\n data-testid=\"interval-picker-shift-minute-right\"\n >\n <mat-icon>keyboard_double_arrow_right</mat-icon>\n </button>\n </div>\n <!-- shift hour -->\n <div class=\"layout-row place-between-center\">\n <button\n type=\"button\"\n mat-icon-button\n (click)=\"controller.shift.shiftHour(-1)\"\n [disabled]=\"!presenter.isValidIntervalSet()\"\n data-testid=\"interval-picker-shift-hour-left\"\n >\n <mat-icon>keyboard_double_arrow_left</mat-icon>\n </button>\n <span>{{ 'intervalPicker.hour' | translate }}</span>\n <button\n type=\"button\"\n mat-icon-button\n (click)=\"controller.shift.shiftHour(1)\"\n [disabled]=\"!presenter.isValidIntervalSet()\"\n data-testid=\"interval-picker-shift-hour-right\"\n >\n <mat-icon>keyboard_double_arrow_right</mat-icon>\n </button>\n </div>\n }\n </div>\n </div>\n </div>\n </div>\n </div>\n</div>\n<div class=\"layout-row place-between-center gap-xxl pt-sm\">\n <div>\n @if (showAnchor()) {\n <div class=\"layout-row flex-none gap-md\">\n <mat-menu #anchorMenu=\"matMenu\">\n @if (presenter.startDateHtmlString()) {\n <button\n type=\"button\"\n mat-menu-item\n (click)=\"controller.anchor.setFixedAnchorPointToEndDateTime()\"\n [disabled]=\"!presenter.startDateHtmlString()\"\n >\n <mat-icon class=\"material-symbols-outlined\">login</mat-icon>\n <span>{{ 'intervalPicker.endDate' | translate }}</span>\n </button>\n }\n @if (presenter.endDateHtmlString()) {\n <button\n type=\"button\"\n mat-menu-item\n (click)=\"controller.anchor.setFixedAnchorPointToStartDateTime()\"\n [disabled]=\"!presenter.endDateHtmlString()\"\n >\n <mat-icon class=\"material-symbols-outlined\">logout</mat-icon>\n <span>{{ 'intervalPicker.startDate' | translate }}</span>\n </button>\n }\n @if (presenter.isFixedAnchorDateSet()) {\n <button\n type=\"button\"\n mat-menu-item\n (click)=\"controller.anchor.resetAnchor()\"\n [disabled]=\"!presenter.isFixedAnchorDateSet() || anchorReadOnly()\"\n >\n <mat-icon>close</mat-icon>\n <span>{{ 'intervalPicker.clear' | translate }}</span>\n </button>\n }\n </mat-menu>\n\n <mat-form-field class=\"input-control-container\" [subscriptSizing]=\"'dynamic'\">\n <mat-label>{{ 'intervalPicker.anchorDate' | translate }}</mat-label>\n <input\n #startDateInput\n name=\"anchorDateInput\"\n matInput\n type=\"date\"\n [ngModel]=\"presenter.anchorDateHtmlString()\"\n (ngModelChange)=\"controller.form.setAnchorDateFromString($event)\"\n [readonly]=\"anchorReadOnly()\"\n />\n @if (!anchorReadOnly()) {\n <button\n type=\"button\"\n mat-icon-button\n matSuffix\n [matMenuTriggerFor]=\"anchorMenu\"\n [disabled]=\"presenter.isAnchorMenuDisabled()\"\n >\n <mat-icon class=\"material-symbols-outlined\">more_horiz</mat-icon>\n </button>\n }\n </mat-form-field>\n @if (intervalInputMode() === 'date-time-range') {\n <mat-form-field class=\"input-control-container-short\" [subscriptSizing]=\"'dynamic'\">\n <mat-label>{{ 'intervalPicker.anchorTime' | translate }}</mat-label>\n <input\n matInput\n name=\"anchorTimeInput\"\n type=\"time\"\n #anchorTimeControl=\"ngModel\"\n step=\"1\"\n [readonly]=\"anchorReadOnly()\"\n [ngModel]=\"presenter.anchorTimeHtmlString()\"\n (ngModelChange)=\"controller.form.setAnchorTimeFromString($event)\"\n />\n <button\n type=\"button\"\n mat-icon-button\n matSuffix\n (click)=\"controller.anchor.resetAnchorTime()\"\n [disabled]=\"anchorReadOnly() || presenter.isAnchorTimeMidnight()\"\n >\n <mat-icon>close</mat-icon>\n </button>\n </mat-form-field>\n }\n </div>\n }\n </div>\n <!-- result interval -->\n <div class=\"layout-col place-center-center\">\n <div class=\"date-interval mat-caption pt-xs\">\n @if (presenter.startDateTimeAsJSDate()) {\n {{ presenter.startDateTimeAsJSDate() | date: 'dd.MM. y, HH:mm:ss' }}\n } @else {\n {{ 'intervalPicker.startDateNotSet' | translate }}\n }\n <span> - </span>\n @if (presenter.endDateTimeAsJSDate()) {\n {{ presenter.endDateTimeAsJSDate() | date: 'dd.MM. y, HH:mm:ss' }}\n } @else {\n {{ 'intervalPicker.endDateNotSet' | translate }}\n }\n </div>\n <div>\n <span class=\"mat-caption\">{{ presenter.deltaHumanReadable() || '&nbsp;' }}</span>\n </div>\n </div>\n <div class=\"layout-row gap-lg\">\n <button\n type=\"button\"\n mat-flat-button\n color=\"primary\"\n (click)=\"controller.clearInterval()\"\n [disabled]=\"!presenter.isValidIntervalSet()\"\n >\n {{ 'intervalPicker.clear' | translate }}\n </button>\n\n @if (!this.autoEmitMode()) {\n <button type=\"button\" color=\"primary\" mat-flat-button (click)=\"controller.manualEmit()\">\n {{ 'actions.ok' | translate }}\n </button>\n }\n </div>\n</div>\n", styles: [".interval-picker-component{min-width:840px;max-width:100%}.fixed-shifts-container{max-width:160px}.input-control-container{width:192px;max-width:100%}.input-control-container-short{width:140px;max-width:100%}.select-buttons-container button{white-space:nowrap;text-align:left;justify-content:flex-start}::ng-deep .interval-picker-component .mat-calendar-body-cell.elder-custom-anchor-date .mat-calendar-body-cell-content{border-radius:50%;background-color:#def;background-color:#b4d2ebbf}\n"], dependencies: [{ kind: "ngmodule", type: MatDatepickerModule }, { kind: "component", type: i1$d.MatCalendar, selector: "mat-calendar", inputs: ["headerComponent", "startAt", "startView", "selected", "minDate", "maxDate", "dateFilter", "dateClass", "comparisonStart", "comparisonEnd", "startDateAccessibleName", "endDateAccessibleName"], outputs: ["selectedChange", "yearSelected", "monthSelected", "viewChanged", "_userSelection", "_userDragDrop"], exportAs: ["matCalendar"] }, { kind: "ngmodule", type: MatFormFieldModule }, { kind: "component", type: i2$2.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i2$2.MatLabel, selector: "mat-label" }, { kind: "directive", type: i2$2.MatSuffix, selector: "[matSuffix], [matIconSuffix], [matTextSuffix]", inputs: ["matTextSuffix"] }, { kind: "ngmodule", type: MatInputModule }, { kind: "directive", type: i2$2.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly", "disabledInteractive"], exportAs: ["matInput"] }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i1$e.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1$3.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1$3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$3.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: i5.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: "component", type: i5.MatIconButton, selector: "button[mat-icon-button], a[mat-icon-button], button[matIconButton], a[matIconButton]", exportAs: ["matButton", "matAnchor"] }, { kind: "ngmodule", type: MatMenuModule }, { kind: "component", type: i6.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: i6.MatMenuItem, selector: "[mat-menu-item]", inputs: ["role", "disabled", "disableRipple"], exportAs: ["matMenuItem"] }, { kind: "directive", type: i6.MatMenuTrigger, selector: "[mat-menu-trigger-for], [matMenuTriggerFor]", inputs: ["mat-menu-trigger-for", "matMenuTriggerFor", "matMenuTriggerData", "matMenuTriggerRestoreFocus"], outputs: ["menuOpened", "onMenuOpen", "menuClosed", "onMenuClose"], exportAs: ["matMenuTrigger"] }, { kind: "pipe", type: ElderTranslatePipe, name: "translate" }, { kind: "pipe", type: DatePipe, name: "date" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
32439
32436
  }
32440
32437
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.15", ngImport: i0, type: ElderIntervalPickerComponent, decorators: [{
32441
32438
  type: Component,
@@ -33868,6 +33865,7 @@ class ElderSearchPanelComponent {
33868
33865
  this.overlay = signal(undefined, ...(ngDevMode ? [{ debugName: "overlay" }] : /* istanbul ignore next */ []));
33869
33866
  const overlay$ = toObservable(this.overlay).pipe(filter((overlay) => !!overlay));
33870
33867
  this.open$ = overlay$.pipe(switchMap((overlay) => overlay.attachedChange.pipe(startWith(overlay.attached))));
33868
+ this.isOpen = toSignal(this.open$);
33871
33869
  }
33872
33870
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.15", ngImport: i0, type: ElderSearchPanelComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
33873
33871
  static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.2.15", type: ElderSearchPanelComponent, isStandalone: true, selector: "elder-search-panel", ngImport: i0, template: "<ng-content></ng-content>\n", styles: [""], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
@@ -35558,74 +35556,33 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.15", ngImpo
35558
35556
  }] });
35559
35557
 
35560
35558
  /**
35561
- * Set scrollbar width. Will only work in webkit-based browsers.
35559
+ * Directive that activates wide scrollbar mode.
35560
+ * Typically the ScrollbarScope is the global scope on the elder-shell,
35561
+ * but alternatively an ElderWideScrollbarDirective can be used to activate
35562
+ * targeted wide scrollbar.
35562
35563
  */
35563
- class ElderScrollbarDirective extends ElderClassHostBindingBase {
35564
- static { this.DEFAULT_WIDTH = 'lg'; }
35565
- /***************************************************************************
35566
- * *
35567
- * Constructor *
35568
- * *
35569
- **************************************************************************/
35564
+ class ElderWideScrollbarDirective {
35570
35565
  constructor() {
35571
- super(ElderScrollbarDirective.buildClass(ElderScrollbarDirective.DEFAULT_WIDTH));
35572
- /***************************************************************************
35573
- * *
35574
- * Fields *
35575
- * *
35576
- **************************************************************************/
35577
- this._size = ElderScrollbarDirective.DEFAULT_WIDTH;
35578
- this.enabled = true; // no size input is needed, we have a default
35566
+ this.scrollbarScope = inject(ElderScrollbarScopeDirective);
35579
35567
  }
35580
35568
  /***************************************************************************
35581
35569
  * *
35582
- * Properties *
35583
- * *
35584
- **************************************************************************/
35585
- /**
35586
- * Optional input to select a specific {@link ElderSize}
35587
- * @return size with default value lg
35588
- */
35589
- get size() {
35590
- return this._size;
35591
- }
35592
- set size(value) {
35593
- this._size = value;
35594
- this.elementClass = this.buildClass(value);
35595
- }
35596
- /***************************************************************************
35597
- * *
35598
- * Private Methods *
35570
+ * Lifecycle methods *
35599
35571
  * *
35600
35572
  **************************************************************************/
35601
- buildClass(size) {
35602
- return ElderScrollbarDirective.buildClass(size);
35573
+ ngOnInit() {
35574
+ this.scrollbarScope.activateWideScrollbarMode();
35603
35575
  }
35604
- static buildClass(size) {
35605
- return `scrollbar-${size}`;
35576
+ ngOnDestroy() {
35577
+ this.scrollbarScope.deactivateWideScrollbarMode();
35606
35578
  }
35607
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.15", ngImport: i0, type: ElderScrollbarDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
35608
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "21.2.15", type: ElderScrollbarDirective, isStandalone: true, selector: "[elderScrollbar]", inputs: { size: "size" }, usesInheritance: true, ngImport: i0 }); }
35579
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.15", ngImport: i0, type: ElderWideScrollbarDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
35580
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "21.2.15", type: ElderWideScrollbarDirective, isStandalone: true, selector: "[elderWideScrollbar]", ngImport: i0 }); }
35609
35581
  }
35610
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.15", ngImport: i0, type: ElderScrollbarDirective, decorators: [{
35582
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.15", ngImport: i0, type: ElderWideScrollbarDirective, decorators: [{
35611
35583
  type: Directive,
35612
35584
  args: [{
35613
- selector: '[elderScrollbar]',
35614
- }]
35615
- }], ctorParameters: () => [], propDecorators: { size: [{
35616
- type: Input
35617
- }] } });
35618
-
35619
- class ElderScrollbarModule {
35620
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.15", ngImport: i0, type: ElderScrollbarModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
35621
- static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "21.2.15", ngImport: i0, type: ElderScrollbarModule, imports: [ElderScrollbarDirective], exports: [ElderScrollbarDirective] }); }
35622
- static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "21.2.15", ngImport: i0, type: ElderScrollbarModule }); }
35623
- }
35624
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.15", ngImport: i0, type: ElderScrollbarModule, decorators: [{
35625
- type: NgModule,
35626
- args: [{
35627
- imports: [ElderScrollbarDirective],
35628
- exports: [ElderScrollbarDirective],
35585
+ selector: '[elderWideScrollbar]',
35629
35586
  }]
35630
35587
  }] });
35631
35588
 
@@ -39653,5 +39610,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.15", ngImpo
39653
39610
  * Generated bundle index. Do not edit.
39654
39611
  */
39655
39612
 
39656
- 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, 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, ElderPopoverContentDirective, 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, ElderSelectSelectionKeysDirective, 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, ElderWordAutocompleteDirective, 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, isLocalDataSource, isLocalListDataSource, isLocalPagedDataSource, isPagedDataSource, lazySample, lazySampleTime, naturalValueComparator, newElderTableModel, provideElderBrandAssets, provideElderDefaults, provideElderLanguage, provideElderTranslate, proxyControlContainer, registerLocale, runInZone, someSignal, themeInit };
39613
+ 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, 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, ElderPopoverContentDirective, ElderPopoverTriggerDirective, ElderProgressBarComponent, ElderProgressBarModule, ElderProjectedColumnsDirective, ElderQuantityFormFieldComponent, ElderQuantityInputControlComponent, ElderQuantityPipe, ElderQuantityRangeValidator, ElderQuantityService, ElderQuantityTransformPipe, ElderQuestionDialogComponent, ElderRailNavDirective, ElderRepeatPipe, ElderRequiredDimensionsValidator, ElderRequiredIgnoreZeroValidator, ElderRequiredQuantityValidator, ElderResizableDirective, ElderResizablePaneLayoutComponent, ElderResizeBehaviorDirective, ElderResizeContainerComponent, ElderRoundPipe, ElderRouteOutletDrawerService, ElderRouterOutletService, ElderRouterService, ElderSafeUrlPipe, ElderScrollContainerComponent, ElderScrollbarScopeDirective, 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, 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, ElderWideScrollbarDirective, ElderWordAutocompleteDirective, 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, isLocalDataSource, isLocalListDataSource, isLocalPagedDataSource, isPagedDataSource, lazySample, lazySampleTime, naturalValueComparator, newElderTableModel, provideElderBrandAssets, provideElderDefaults, provideElderLanguage, provideElderTranslate, proxyControlContainer, registerLocale, runInZone, someSignal, themeInit };
39657
39614
  //# sourceMappingURL=elderbyte-ngx-starter.mjs.map