@coolon/angular-ui-powerups 16.1.0-aplpha.52 → 16.1.0-aplpha.53

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.
@@ -17,7 +17,7 @@ import { BrowserAnimationsModule } from '@angular/platform-browser/animations';
17
17
  import * as i3$2 from '@angular/cdk/portal';
18
18
  import { ComponentPortal, TemplatePortal, PortalModule } from '@angular/cdk/portal';
19
19
  import * as i1$2 from '@angular/cdk/scrolling';
20
- import { CdkScrollableModule, ScrollingModule } from '@angular/cdk/scrolling';
20
+ import { FixedSizeVirtualScrollStrategy, CdkScrollableModule, ScrollingModule } from '@angular/cdk/scrolling';
21
21
  import * as i7 from '@angular/material/autocomplete';
22
22
  import { MatAutocompleteModule } from '@angular/material/autocomplete';
23
23
  import * as i2 from '@angular/material/button';
@@ -38,8 +38,10 @@ import * as i2$6 from '@angular/material/table';
38
38
  import { MatTableModule } from '@angular/material/table';
39
39
  import * as i4$1 from '@angular/material/tooltip';
40
40
  import { MatTooltipModule } from '@angular/material/tooltip';
41
+ import * as i4$5 from 'ng-table-virtual-scroll';
42
+ import { TableVirtualScrollDataSource, TableVirtualScrollModule } from 'ng-table-virtual-scroll';
41
43
  import * as i1$3 from '@coolon/pectin';
42
- import { GarbageCollector, DelegatingValueModel, assert, UnaryCommand, lang, Dsl, Logger, proxify, ValueModel, Proxify, StoreInValueModel, Command, MutableListModel, StoreInListModel, Disposable, DelegatingListModel, MutableValueModel, DelegateToValueModel, FocusManager, EventListenerList, Guard, DelegatingFormListModel, Binding, DebugContext, DelegateToListModel, DelegatingFormValueModel, ListModel, Functions, PageController, SelectionModel, CanProxy, MultipleSelectionModel, WatchList, DirtyTrackingForm, ProxyRegistry, DelegatingCommand, PagedListModel, ComputedListModel, Deferred, ReducingValueModel, AndValueModel } from '@coolon/pectin';
44
+ import { GarbageCollector, DelegatingValueModel, assert, UnaryCommand, lang, Dsl, Logger, proxify, ValueModel, Proxify, StoreInValueModel, Command, MutableListModel, StoreInListModel, Disposable, DelegatingListModel, MutableValueModel, DelegateToValueModel, FocusManager, EventListenerList, Guard, DelegatingFormListModel, Binding, DebugContext, DelegateToListModel, DelegatingFormValueModel, ListModel, Functions, PageController, SelectionModel, CanProxy, MultipleSelectionModel, WatchList, DirtyTrackingForm, ProxyRegistry, TransactionObserver, DelegatingCommand, ComputedListModel, Deferred, ReducingValueModel, AndValueModel } from '@coolon/pectin';
43
45
  import { __decorate, __param, __metadata } from 'tslib';
44
46
  import * as i1 from '@angular/platform-browser';
45
47
  import escapeStringRegexp from 'escape-string-regexp';
@@ -50,6 +52,8 @@ import { Enum } from 'typescript-string-enums';
50
52
  import { lang as lang$1, assert as assert$1, Stringy, Klass, Opts } from '@coolon/typescript-utilities';
51
53
  import * as i5 from '@angular/material/core';
52
54
  import { produce } from 'immer';
55
+ import { DataSource } from '@angular/cdk/collections';
56
+ import { BehaviorSubject } from 'rxjs';
53
57
  import ResizeObserver from 'resize-observer-polyfill';
54
58
  import { isFunction as isFunction$1, isNil as isNil$1, isEmpty as isEmpty$1, last, findLast } from 'lodash-es';
55
59
  import { generateKeyBetween } from 'fractional-indexing';
@@ -570,7 +574,7 @@ const markdownPillExtension = (renderPill) => {
570
574
  return index;
571
575
  },
572
576
  tokenizer: function (src) {
573
- const rule = /^(\(\((([^)])+)\)\))/; // Regex for the complete tok`en
577
+ const rule = /^(\(\((([^)])+)\)\))/; // Regex for the complete token
574
578
  const match = rule.exec(src);
575
579
  if (match) {
576
580
  const token = {
@@ -3104,12 +3108,17 @@ class AbstractTableComponent extends DisposableComponent {
3104
3108
  #showHeader_accessor_storage = true;
3105
3109
  get showHeader() { return this.#showHeader_accessor_storage; }
3106
3110
  set showHeader(value) { this.#showHeader_accessor_storage = value; }
3111
+ #enableScrolling$_accessor_storage = proxify((ValueModel));
3107
3112
  /**
3108
3113
  * Set to true to enable scrolling. Once enabled the table will have 0 implicit height. You will either
3109
3114
  * need to set it explicitly e.g. height: 400px; or by using flex or grid layout to make it fill it's
3110
3115
  * containment area.
3111
3116
  */
3112
- enableScrolling = false;
3117
+ get enableScrolling$() { return this.#enableScrolling$_accessor_storage; }
3118
+ set enableScrolling$(value) { this.#enableScrolling$_accessor_storage = value; }
3119
+ #enableScrolling_accessor_storage = false;
3120
+ get enableScrolling() { return this.#enableScrolling_accessor_storage; }
3121
+ set enableScrolling(value) { this.#enableScrolling_accessor_storage = value; }
3113
3122
  columns;
3114
3123
  columnIds;
3115
3124
  columnsById;
@@ -3164,7 +3173,7 @@ class AbstractTableComponent extends DisposableComponent {
3164
3173
  }
3165
3174
  }
3166
3175
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.9", ngImport: i0, type: AbstractTableComponent, deps: [{ token: i0.Injector }], target: i0.ɵɵFactoryTarget.Component });
3167
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.9", type: AbstractTableComponent, selector: "aup-abstract-table", inputs: { showHeader$: "showHeader$", showHeader: "showHeader", enableScrolling: "enableScrolling" }, host: { properties: { "class": "this.baseCssClass" } }, usesInheritance: true, ngImport: i0, template: '', isInline: true });
3176
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.9", type: AbstractTableComponent, selector: "aup-abstract-table", inputs: { showHeader$: "showHeader$", showHeader: "showHeader", enableScrolling$: "enableScrolling$", enableScrolling: "enableScrolling" }, host: { properties: { "class": "this.baseCssClass" } }, usesInheritance: true, ngImport: i0, template: '', isInline: true });
3168
3177
  }
3169
3178
  __decorate([
3170
3179
  Proxify(),
@@ -3174,6 +3183,14 @@ __decorate([
3174
3183
  StoreInValueModel(),
3175
3184
  __metadata("design:type", Object)
3176
3185
  ], AbstractTableComponent.prototype, "showHeader", null);
3186
+ __decorate([
3187
+ Proxify(),
3188
+ __metadata("design:type", ValueModel)
3189
+ ], AbstractTableComponent.prototype, "enableScrolling$", null);
3190
+ __decorate([
3191
+ StoreInValueModel(),
3192
+ __metadata("design:type", Boolean)
3193
+ ], AbstractTableComponent.prototype, "enableScrolling", null);
3177
3194
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.9", ngImport: i0, type: AbstractTableComponent, decorators: [{
3178
3195
  type: Component,
3179
3196
  args: [{
@@ -3184,6 +3201,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.9", ngImpor
3184
3201
  type: Input
3185
3202
  }], showHeader: [{
3186
3203
  type: Input
3204
+ }], enableScrolling$: [{
3205
+ type: Input
3187
3206
  }], enableScrolling: [{
3188
3207
  type: Input
3189
3208
  }], baseCssClass: [{
@@ -4348,6 +4367,94 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.9", ngImpor
4348
4367
  args: ['class']
4349
4368
  }] } });
4350
4369
 
4370
+ /**
4371
+ * Virtual Scroll Strategy
4372
+ */
4373
+ class CustomVirtualScrollStrategy extends FixedSizeVirtualScrollStrategy {
4374
+ garbage = new GarbageCollector();
4375
+ constructor(rowHeight$, minBufferPx, maxBufferPx) {
4376
+ super(rowHeight$.value, minBufferPx, maxBufferPx);
4377
+ const { chain, when } = Dsl.disposeWith(this.garbage);
4378
+ when(rowHeight$).changes(h => {
4379
+ this.updateItemAndBufferSize(h, minBufferPx, maxBufferPx);
4380
+ }, { initialValue: "triggerChangeUnlessNil" });
4381
+ }
4382
+ }
4383
+ class VirtualScrollDataSource extends DataSource {
4384
+ viewport;
4385
+ rowHeight$;
4386
+ garbage = new GarbageCollector();
4387
+ virtualScrollRowRange$;
4388
+ virtualScrollSpacerSize$;
4389
+ totalContentSize$;
4390
+ showVirtualScrollOffset;
4391
+ virtualRowsObservable$ = new BehaviorSubject([]);
4392
+ virtualScrollPixelOffset$ = new MutableValueModel(0);
4393
+ constructor(viewport, data$, rowHeight$, pageSize$) {
4394
+ super();
4395
+ this.viewport = viewport;
4396
+ this.rowHeight$ = rowHeight$;
4397
+ const { chain, when, observe } = Dsl.disposeWith(this);
4398
+ observe.valuesFrom(viewport.elementScrolled()).subscribe((ev) => {
4399
+ this.virtualScrollPixelOffset$.value = ev.currentTarget.scrollTop;
4400
+ });
4401
+ this.virtualScrollRowRange$ = chain(this.virtualScrollPixelOffset$).map(rawPixelOffset => {
4402
+ const startIndex = Math.floor(rawPixelOffset / this.rowHeight$.value);
4403
+ console.log(rawPixelOffset, startIndex);
4404
+ // const prevExtraData = startIndex > 5 ? 5 : 0;
4405
+ const prevExtraData = 0;
4406
+ // return rows.slice(startIndex - prevExtraData, startIndex + (pageSize$.value - prevExtraData));
4407
+ return {
4408
+ start: startIndex - prevExtraData,
4409
+ end: startIndex + (pageSize$.value - prevExtraData)
4410
+ };
4411
+ }, {
4412
+ dependsOn: [this.rowHeight$, pageSize$],
4413
+ postponeWhile: chain.numericValue(pageSize$).isLessThan(1),
4414
+ changed: (is, was) => {
4415
+ return was?.start !== is?.start || was?.end !== is?.end;
4416
+ }
4417
+ });
4418
+ this.virtualScrollSpacerSize$ = chain(this.virtualScrollRowRange$).map(range => {
4419
+ const pixelOffset = this.rowHeight$.value * range.start;
4420
+ return pixelOffset;
4421
+ }, { dependsOn: this.rowHeight$ });
4422
+ this.totalContentSize$ = chain(data$).count().map(rowCount => {
4423
+ return this.rowHeight$.value * rowCount;
4424
+ }, { dependsOn: rowHeight$ });
4425
+ chain(this.virtualScrollRowRange$).mapToList(range => {
4426
+ return data$.value.slice(range.start, range.end);
4427
+ }, {
4428
+ dependsOn: data$
4429
+ }).subscribe(visibleRows => {
4430
+ console.log(visibleRows);
4431
+ this.virtualRowsObservable$.next(visibleRows);
4432
+ });
4433
+ when(this.virtualScrollSpacerSize$).changes(scrollTop => {
4434
+ viewport.setRenderedContentOffset(scrollTop, "to-start");
4435
+ }, { initialValue: "triggerChangeUnlessNil" });
4436
+ when(this.totalContentSize$).changes(totalSize => {
4437
+ viewport.setTotalContentSize(totalSize);
4438
+ }, { initialValue: "triggerChangeUnlessNil" });
4439
+ this.showVirtualScrollOffset = (index, rowData) => {
4440
+ const haveScrolled = this.virtualScrollSpacerSize$.value > 0;
4441
+ const firstRow = index === 0;
4442
+ return index === 0 && haveScrolled;
4443
+ };
4444
+ }
4445
+ dispose() {
4446
+ this.garbage.dispose();
4447
+ }
4448
+ registerDisposable(disposable) {
4449
+ return this.garbage.registerDisposable(disposable);
4450
+ }
4451
+ connect(collectionViewer) {
4452
+ return this.virtualRowsObservable$;
4453
+ }
4454
+ disconnect(collectionViewer) {
4455
+ // noop
4456
+ }
4457
+ }
4351
4458
  class TableBodyComponent extends ResizeAwareComponent {
4352
4459
  #data$_accessor_storage = proxify((ListModel));
4353
4460
  get data$() { return this.#data$_accessor_storage; }
@@ -4361,44 +4468,51 @@ class TableBodyComponent extends ResizeAwareComponent {
4361
4468
  #showHeader_accessor_storage = true;
4362
4469
  get showHeader() { return this.#showHeader_accessor_storage; }
4363
4470
  set showHeader(value) { this.#showHeader_accessor_storage = value; }
4364
- visibleRowCount = new EventEmitter();
4365
4471
  trackBy;
4366
- /**
4367
- * Set to true to enable scrolling. Once enabled the table will have 0 implicit height. You will either
4368
- * need to set it explicitly e.g. height: 400px; or by using flex or grid layout to make it fill it's
4369
- * containment area.
4370
- */
4371
- enableScrolling = false;
4472
+ #scrollMode$_accessor_storage = proxify((ValueModel));
4473
+ get scrollMode$() { return this.#scrollMode$_accessor_storage; }
4474
+ set scrollMode$(value) { this.#scrollMode$_accessor_storage = value; }
4475
+ #scrollMode_accessor_storage = "none";
4476
+ get scrollMode() { return this.#scrollMode_accessor_storage; }
4477
+ set scrollMode(value) { this.#scrollMode_accessor_storage = value; }
4372
4478
  columns$;
4373
4479
  columnIds$;
4374
4480
  columnsById$;
4375
- _visibleRowCount$;
4376
4481
  // TODO: support user defined header and row heights via css vars.
4377
4482
  headerHeight$ = new MutableValueModel(29);
4378
4483
  rowHeight$ = new MutableValueModel(40);
4379
4484
  baseCssClass = "aup-table-component";
4485
+ virtualScrollDataSource = new TableVirtualScrollDataSource();
4380
4486
  constructor() {
4381
4487
  super();
4382
- const { chain, when } = Dsl.disposeWith(this);
4488
+ const { chain, when, observe } = Dsl.disposeWith(this);
4383
4489
  const actualHeaderHeight$ = chain(this.showHeader$).map(show => {
4384
4490
  return show ? this.headerHeight$.value : 0;
4385
4491
  }, { dependsOn: this.headerHeight$ });
4386
- this._visibleRowCount$ = chain(this.bounds$).map(bounds => {
4387
- // TODO: this doesn't take into account any css styling adjustments etc. Will investigate if it's an issue.
4388
- const rawRowCount = (bounds.height - actualHeaderHeight$.value) / this.rowHeight$.value;
4389
- return rawRowCount < 1 ? 0 : Math.floor(rawRowCount);
4390
- }, {
4391
- dependsOn: [actualHeaderHeight$, this.rowHeight$],
4392
- postponeWhile: chain(this.bounds$).pluckNumeric("height").isLessThan(1)
4492
+ // const visibleRowCount$ = chain(this.bounds$).map(bounds => {
4493
+ // // TODO: this doesn't take into account any css styling adjustments etc. Will investigate if it's an issue.
4494
+ // const rawRowCount = (bounds.height - actualHeaderHeight$.value) / this.rowHeight$.value;
4495
+ // return rawRowCount < 1 ? 0 : Math.floor(rawRowCount);
4496
+ // }, {
4497
+ // dependsOn: [actualHeaderHeight$, this.rowHeight$],
4498
+ // postponeWhile: chain(this.bounds$).pluckNumeric("height").isLessThan(1)
4499
+ // });
4500
+ //
4501
+ // // const pageSize$ = chain(visibleRowCount$)
4502
+ // // .map(count => 2 * count).otherwise(0)
4503
+ // const pageSize$ = ValueModel.constant(12)
4504
+ when(this.data$).changes(is => {
4505
+ this.virtualScrollDataSource.data = is;
4393
4506
  });
4394
- when(this._visibleRowCount$).changes(visibleRows => {
4395
- this.visibleRowCount.emit(visibleRows);
4396
- }, { initialValue: "triggerChangeUnlessNil" });
4397
4507
  this.onInit(() => {
4398
4508
  this.columns$ = chain(this.tableModel.columns);
4399
4509
  this.columnIds$ = chain(this.columns$).pluck("columnId");
4400
4510
  this.columnsById$ = chain(this.columns$).indexBy('columnId');
4401
4511
  });
4512
+ const txo = new TransactionObserver({ verbose: false }).onEvent(e => console.log(e.name, e.payload));
4513
+ // txo.observe('this.virtualScrollRowRange$', this.virtualScrollRowRange$);
4514
+ // txo.observe('this.virtualScrollSpacerSize$', this.virtualScrollSpacerSize$);
4515
+ // txo.observe('this.virtualRows$', this.virtualRows$);
4402
4516
  }
4403
4517
  get hideHeader() {
4404
4518
  return !this.showHeader;
@@ -4428,7 +4542,7 @@ class TableBodyComponent extends ResizeAwareComponent {
4428
4542
  return classes;
4429
4543
  }
4430
4544
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.9", ngImport: i0, type: TableBodyComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
4431
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.9", type: TableBodyComponent, selector: "aup-table-body", inputs: { data$: "data$", tableModel: "tableModel", showHeader$: "showHeader$", showHeader: "showHeader", trackBy: "trackBy", enableScrolling: "enableScrolling" }, outputs: { visibleRowCount: "visibleRowCount" }, host: { properties: { "class.enable-scrolling": "this.enableScrolling", "class": "this.baseCssClass", "class.hide-header": "this.hideHeader" } }, usesInheritance: true, ngImport: i0, template: "<div class=\"scroll-container\">\n <table mat-table [dataSource]=\"data$.value\" [trackBy]=\"trackBy\">\n\n <ng-container *ngFor=\"let column of columns$.value; index as index; first as first; last as last\"\n matColumnDef=\"{{column.columnId}}\">\n <th mat-header-cell *matHeaderCellDef [class.flex]=\"column.isFlex()\" [class.hide]=\"!column.isVisible()\">\n <aup-table-header-cell [column]=\"column\"\n [attr.column-index]=\"index\"\n [attr.column-id]=\"column.columnId\"\n [class]=\"getColumnClasses(column.columnId)\"\n ></aup-table-header-cell>\n </th>\n <td mat-cell *matCellDef=\"let row\" (click)=\"notifyCellClicked(column, row)\"\n [class.enable-cursor]=\"tableModel.isCursorEnabled(column)\"\n [class.flex]=\"column.isFlex()\"\n [class.hide]=\"!column.isVisible()\"\n >\n <aup-table-cell [column]=\"column\"\n [row]=\"row\"\n [tableModel]=\"tableModel\"\n [editSession]=\"tableModel.getEditSessionFor(row)\"\n [attr.column-index]=\"index\"\n [attr.column-id]=\"column.columnId\"\n [class]=\"getColumnClasses(column.columnId)\"\n ></aup-table-cell>\n </td>\n </ng-container>\n\n <tr mat-header-row *matHeaderRowDef=\"columnIds$.value; sticky: true\"></tr>\n <tr mat-row *matRowDef=\"let row; columns: columnIds$.value; let i = index\"\n [ngClass]=\"tableModel.getRowClasses(row)\"\n [class.enable-hover]=\"tableModel.isHoverEnabled()\"\n [attr.aup-row-id]=\"trackBy(i, row)\"\n ></tr>\n\n </table>\n</div>\n\n", styles: [":host{display:flex;flex-direction:column;align-items:stretch}:host table{width:100%}:host.enable-scrolling{min-height:0}:host.enable-scrolling .scroll-container{flex:1;flex-basis:0;overflow-y:auto;display:flex;flex-direction:column;align-items:stretch}\n"], dependencies: [{ kind: "directive", type: i1$1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1$1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "component", type: i2$6.MatTable, selector: "mat-table, table[mat-table]", exportAs: ["matTable"] }, { kind: "directive", type: i2$6.MatHeaderCellDef, selector: "[matHeaderCellDef]" }, { kind: "directive", type: i2$6.MatHeaderRowDef, selector: "[matHeaderRowDef]", inputs: ["matHeaderRowDef", "matHeaderRowDefSticky"] }, { kind: "directive", type: i2$6.MatColumnDef, selector: "[matColumnDef]", inputs: ["sticky", "matColumnDef"] }, { kind: "directive", type: i2$6.MatCellDef, selector: "[matCellDef]" }, { kind: "directive", type: i2$6.MatRowDef, selector: "[matRowDef]", inputs: ["matRowDefColumns", "matRowDefWhen"] }, { kind: "directive", type: i2$6.MatHeaderCell, selector: "mat-header-cell, th[mat-header-cell]" }, { kind: "directive", type: i2$6.MatCell, selector: "mat-cell, td[mat-cell]" }, { kind: "component", type: i2$6.MatHeaderRow, selector: "mat-header-row, tr[mat-header-row]", exportAs: ["matHeaderRow"] }, { kind: "component", type: i2$6.MatRow, selector: "mat-row, tr[mat-row]", exportAs: ["matRow"] }, { kind: "component", type: TableCellComponent, selector: "aup-table-cell", inputs: ["row", "column", "editSession", "tableModel"] }, { kind: "component", type: TableHeaderCellComponent, selector: "aup-table-header-cell", inputs: ["column"] }] });
4545
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.9", type: TableBodyComponent, selector: "aup-table-body", inputs: { data$: "data$", tableModel: "tableModel", showHeader$: "showHeader$", showHeader: "showHeader", trackBy: "trackBy", scrollMode$: "scrollMode$", scrollMode: "scrollMode" }, host: { properties: { "attr.scrollMode": "this.scrollMode", "class": "this.baseCssClass", "class.hide-header": "this.hideHeader" } }, usesInheritance: true, ngImport: i0, template: "\n<div class=\"classic-scroll-container\" *ngIf=\"scrollMode$.value !== 'virtual'\">\n <table mat-table [dataSource]=\"data$.value\" [trackBy]=\"trackBy\" [multiTemplateDataRows]>\n\n <ng-container *ngFor=\"let column of columns$.value; index as index; first as first; last as last\"\n matColumnDef=\"{{column.columnId}}\">\n <th mat-header-cell *matHeaderCellDef [class.flex]=\"column.isFlex()\" [class.hide]=\"!column.isVisible()\">\n <aup-table-header-cell [column]=\"column\"\n [attr.column-index]=\"index\"\n [attr.column-id]=\"column.columnId\"\n [class]=\"getColumnClasses(column.columnId)\"\n ></aup-table-header-cell>\n </th>\n <td mat-cell *matCellDef=\"let row\" (click)=\"notifyCellClicked(column, row)\"\n [class.enable-cursor]=\"tableModel.isCursorEnabled(column)\"\n [class.flex]=\"column.isFlex()\"\n [class.hide]=\"!column.isVisible()\"\n >\n <aup-table-cell [column]=\"$any(column)\"\n [row]=\"row\"\n [tableModel]=\"$any(tableModel)\"\n [editSession]=\"$any(tableModel.getEditSessionFor(row))\"\n [attr.column-index]=\"index\"\n [attr.column-id]=\"column.columnId\"\n [class]=\"getColumnClasses(column.columnId)\"\n ></aup-table-cell>\n </td>\n </ng-container>\n\n <tr mat-header-row *matHeaderRowDef=\"columnIds$.value; sticky: true\"></tr>\n <tr mat-row *matRowDef=\"let row; columns: columnIds$.value; let i = index\"\n [ngClass]=\"tableModel.getRowClasses(row)\"\n [class.enable-hover]=\"tableModel.isHoverEnabled()\"\n [attr.aup-row-id]=\"trackBy(i, row)\"\n ></tr>\n\n </table>\n</div>\n\n<cdk-virtual-scroll-viewport *ngIf=\"scrollMode$.value === 'virtual'\" class=\"virtual-scroll-container\" [tvsItemSize]=\"rowHeight$.value\" [headerHeight]=\"headerHeight$.value\">\n <table mat-table [dataSource]=\"virtualScrollDataSource\" [trackBy]=\"trackBy\">\n\n <ng-container *ngFor=\"let column of columns$.value; index as index; first as first; last as last\"\n matColumnDef=\"{{column.columnId}}\">\n <th mat-header-cell *matHeaderCellDef [class.flex]=\"column.isFlex()\" [class.hide]=\"!column.isVisible()\">\n <aup-table-header-cell [column]=\"column\"\n [attr.column-index]=\"index\"\n [attr.column-id]=\"column.columnId\"\n [class]=\"getColumnClasses(column.columnId)\"\n ></aup-table-header-cell>\n </th>\n <td mat-cell *matCellDef=\"let row\" (click)=\"notifyCellClicked(column, row)\"\n [class.enable-cursor]=\"tableModel.isCursorEnabled(column)\"\n [class.flex]=\"column.isFlex()\"\n [class.hide]=\"!column.isVisible()\"\n >\n <aup-table-cell [column]=\"$any(column)\"\n [row]=\"row\"\n [tableModel]=\"$any(tableModel)\"\n [editSession]=\"$any(tableModel.getEditSessionFor(row))\"\n [attr.column-index]=\"index\"\n [attr.column-id]=\"column.columnId\"\n [class]=\"getColumnClasses(column.columnId)\"\n ></aup-table-cell>\n </td>\n </ng-container>\n\n <tr mat-header-row *matHeaderRowDef=\"columnIds$.value; sticky: true\"></tr>\n <tr mat-row *matRowDef=\"let row; columns: columnIds$.value; let i = index\"\n [ngClass]=\"tableModel.getRowClasses(row)\"\n [class.enable-hover]=\"tableModel.isHoverEnabled()\"\n [attr.aup-row-id]=\"trackBy(i, row)\"\n ></tr>\n\n </table>\n</cdk-virtual-scroll-viewport>\n\n", styles: [":host{display:flex;flex-direction:column;align-items:stretch}:host table{width:100%}:host[scrollMode=virtual] cdk-virtual-scroll-viewport{flex:1}:host[scrollMode=classic]{min-height:0}:host[scrollMode=classic] .classic-scroll-container{flex:1;flex-basis:0;overflow-y:auto;display:flex;flex-direction:column;align-items:stretch}\n"], dependencies: [{ kind: "directive", type: i1$1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1$1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i2$6.MatTable, selector: "mat-table, table[mat-table]", exportAs: ["matTable"] }, { kind: "directive", type: i2$6.MatHeaderCellDef, selector: "[matHeaderCellDef]" }, { kind: "directive", type: i2$6.MatHeaderRowDef, selector: "[matHeaderRowDef]", inputs: ["matHeaderRowDef", "matHeaderRowDefSticky"] }, { kind: "directive", type: i2$6.MatColumnDef, selector: "[matColumnDef]", inputs: ["sticky", "matColumnDef"] }, { kind: "directive", type: i2$6.MatCellDef, selector: "[matCellDef]" }, { kind: "directive", type: i2$6.MatRowDef, selector: "[matRowDef]", inputs: ["matRowDefColumns", "matRowDefWhen"] }, { kind: "directive", type: i2$6.MatHeaderCell, selector: "mat-header-cell, th[mat-header-cell]" }, { kind: "directive", type: i2$6.MatCell, selector: "mat-cell, td[mat-cell]" }, { kind: "component", type: i2$6.MatHeaderRow, selector: "mat-header-row, tr[mat-header-row]", exportAs: ["matHeaderRow"] }, { kind: "component", type: i2$6.MatRow, selector: "mat-row, tr[mat-row]", exportAs: ["matRow"] }, { kind: "component", type: i1$2.CdkVirtualScrollViewport, selector: "cdk-virtual-scroll-viewport", inputs: ["orientation", "appendOnly"], outputs: ["scrolledIndexChange"] }, { kind: "directive", type: i4$5.TableItemSizeDirective, selector: "cdk-virtual-scroll-viewport[tvsItemSize]", inputs: ["tvsItemSize", "headerEnabled", "headerHeight", "footerEnabled", "footerHeight", "bufferMultiplier"] }, { kind: "component", type: TableCellComponent, selector: "aup-table-cell", inputs: ["row", "column", "editSession", "tableModel"] }, { kind: "component", type: TableHeaderCellComponent, selector: "aup-table-header-cell", inputs: ["column"] }] });
4432
4546
  }
4433
4547
  __decorate([
4434
4548
  Proxify(),
@@ -4446,9 +4560,17 @@ __decorate([
4446
4560
  StoreInValueModel(),
4447
4561
  __metadata("design:type", Object)
4448
4562
  ], TableBodyComponent.prototype, "showHeader", null);
4563
+ __decorate([
4564
+ Proxify(),
4565
+ __metadata("design:type", ValueModel)
4566
+ ], TableBodyComponent.prototype, "scrollMode$", null);
4567
+ __decorate([
4568
+ StoreInValueModel(),
4569
+ __metadata("design:type", String)
4570
+ ], TableBodyComponent.prototype, "scrollMode", null);
4449
4571
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.9", ngImport: i0, type: TableBodyComponent, decorators: [{
4450
4572
  type: Component,
4451
- args: [{ selector: "aup-table-body", template: "<div class=\"scroll-container\">\n <table mat-table [dataSource]=\"data$.value\" [trackBy]=\"trackBy\">\n\n <ng-container *ngFor=\"let column of columns$.value; index as index; first as first; last as last\"\n matColumnDef=\"{{column.columnId}}\">\n <th mat-header-cell *matHeaderCellDef [class.flex]=\"column.isFlex()\" [class.hide]=\"!column.isVisible()\">\n <aup-table-header-cell [column]=\"column\"\n [attr.column-index]=\"index\"\n [attr.column-id]=\"column.columnId\"\n [class]=\"getColumnClasses(column.columnId)\"\n ></aup-table-header-cell>\n </th>\n <td mat-cell *matCellDef=\"let row\" (click)=\"notifyCellClicked(column, row)\"\n [class.enable-cursor]=\"tableModel.isCursorEnabled(column)\"\n [class.flex]=\"column.isFlex()\"\n [class.hide]=\"!column.isVisible()\"\n >\n <aup-table-cell [column]=\"column\"\n [row]=\"row\"\n [tableModel]=\"tableModel\"\n [editSession]=\"tableModel.getEditSessionFor(row)\"\n [attr.column-index]=\"index\"\n [attr.column-id]=\"column.columnId\"\n [class]=\"getColumnClasses(column.columnId)\"\n ></aup-table-cell>\n </td>\n </ng-container>\n\n <tr mat-header-row *matHeaderRowDef=\"columnIds$.value; sticky: true\"></tr>\n <tr mat-row *matRowDef=\"let row; columns: columnIds$.value; let i = index\"\n [ngClass]=\"tableModel.getRowClasses(row)\"\n [class.enable-hover]=\"tableModel.isHoverEnabled()\"\n [attr.aup-row-id]=\"trackBy(i, row)\"\n ></tr>\n\n </table>\n</div>\n\n", styles: [":host{display:flex;flex-direction:column;align-items:stretch}:host table{width:100%}:host.enable-scrolling{min-height:0}:host.enable-scrolling .scroll-container{flex:1;flex-basis:0;overflow-y:auto;display:flex;flex-direction:column;align-items:stretch}\n"] }]
4573
+ args: [{ selector: "aup-table-body", template: "\n<div class=\"classic-scroll-container\" *ngIf=\"scrollMode$.value !== 'virtual'\">\n <table mat-table [dataSource]=\"data$.value\" [trackBy]=\"trackBy\" [multiTemplateDataRows]>\n\n <ng-container *ngFor=\"let column of columns$.value; index as index; first as first; last as last\"\n matColumnDef=\"{{column.columnId}}\">\n <th mat-header-cell *matHeaderCellDef [class.flex]=\"column.isFlex()\" [class.hide]=\"!column.isVisible()\">\n <aup-table-header-cell [column]=\"column\"\n [attr.column-index]=\"index\"\n [attr.column-id]=\"column.columnId\"\n [class]=\"getColumnClasses(column.columnId)\"\n ></aup-table-header-cell>\n </th>\n <td mat-cell *matCellDef=\"let row\" (click)=\"notifyCellClicked(column, row)\"\n [class.enable-cursor]=\"tableModel.isCursorEnabled(column)\"\n [class.flex]=\"column.isFlex()\"\n [class.hide]=\"!column.isVisible()\"\n >\n <aup-table-cell [column]=\"$any(column)\"\n [row]=\"row\"\n [tableModel]=\"$any(tableModel)\"\n [editSession]=\"$any(tableModel.getEditSessionFor(row))\"\n [attr.column-index]=\"index\"\n [attr.column-id]=\"column.columnId\"\n [class]=\"getColumnClasses(column.columnId)\"\n ></aup-table-cell>\n </td>\n </ng-container>\n\n <tr mat-header-row *matHeaderRowDef=\"columnIds$.value; sticky: true\"></tr>\n <tr mat-row *matRowDef=\"let row; columns: columnIds$.value; let i = index\"\n [ngClass]=\"tableModel.getRowClasses(row)\"\n [class.enable-hover]=\"tableModel.isHoverEnabled()\"\n [attr.aup-row-id]=\"trackBy(i, row)\"\n ></tr>\n\n </table>\n</div>\n\n<cdk-virtual-scroll-viewport *ngIf=\"scrollMode$.value === 'virtual'\" class=\"virtual-scroll-container\" [tvsItemSize]=\"rowHeight$.value\" [headerHeight]=\"headerHeight$.value\">\n <table mat-table [dataSource]=\"virtualScrollDataSource\" [trackBy]=\"trackBy\">\n\n <ng-container *ngFor=\"let column of columns$.value; index as index; first as first; last as last\"\n matColumnDef=\"{{column.columnId}}\">\n <th mat-header-cell *matHeaderCellDef [class.flex]=\"column.isFlex()\" [class.hide]=\"!column.isVisible()\">\n <aup-table-header-cell [column]=\"column\"\n [attr.column-index]=\"index\"\n [attr.column-id]=\"column.columnId\"\n [class]=\"getColumnClasses(column.columnId)\"\n ></aup-table-header-cell>\n </th>\n <td mat-cell *matCellDef=\"let row\" (click)=\"notifyCellClicked(column, row)\"\n [class.enable-cursor]=\"tableModel.isCursorEnabled(column)\"\n [class.flex]=\"column.isFlex()\"\n [class.hide]=\"!column.isVisible()\"\n >\n <aup-table-cell [column]=\"$any(column)\"\n [row]=\"row\"\n [tableModel]=\"$any(tableModel)\"\n [editSession]=\"$any(tableModel.getEditSessionFor(row))\"\n [attr.column-index]=\"index\"\n [attr.column-id]=\"column.columnId\"\n [class]=\"getColumnClasses(column.columnId)\"\n ></aup-table-cell>\n </td>\n </ng-container>\n\n <tr mat-header-row *matHeaderRowDef=\"columnIds$.value; sticky: true\"></tr>\n <tr mat-row *matRowDef=\"let row; columns: columnIds$.value; let i = index\"\n [ngClass]=\"tableModel.getRowClasses(row)\"\n [class.enable-hover]=\"tableModel.isHoverEnabled()\"\n [attr.aup-row-id]=\"trackBy(i, row)\"\n ></tr>\n\n </table>\n</cdk-virtual-scroll-viewport>\n\n", styles: [":host{display:flex;flex-direction:column;align-items:stretch}:host table{width:100%}:host[scrollMode=virtual] cdk-virtual-scroll-viewport{flex:1}:host[scrollMode=classic]{min-height:0}:host[scrollMode=classic] .classic-scroll-container{flex:1;flex-basis:0;overflow-y:auto;display:flex;flex-direction:column;align-items:stretch}\n"] }]
4452
4574
  }], ctorParameters: function () { return []; }, propDecorators: { data$: [{
4453
4575
  type: Input
4454
4576
  }], tableModel: [{
@@ -4457,15 +4579,15 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.9", ngImpor
4457
4579
  type: Input
4458
4580
  }], showHeader: [{
4459
4581
  type: Input
4460
- }], visibleRowCount: [{
4461
- type: Output
4462
4582
  }], trackBy: [{
4463
4583
  type: Input
4464
- }], enableScrolling: [{
4584
+ }], scrollMode$: [{
4585
+ type: Input
4586
+ }], scrollMode: [{
4465
4587
  type: Input
4466
4588
  }, {
4467
4589
  type: HostBinding,
4468
- args: ["class.enable-scrolling"]
4590
+ args: ["attr.scrollMode"]
4469
4591
  }], baseCssClass: [{
4470
4592
  type: HostBinding,
4471
4593
  args: ["class"]
@@ -4801,28 +4923,13 @@ class TableComponent extends AbstractTableComponent {
4801
4923
  #filterModel_accessor_storage = proxify((TableFilterModel));
4802
4924
  get filterModel() { return this.#filterModel_accessor_storage; }
4803
4925
  set filterModel(value) { this.#filterModel_accessor_storage = value; }
4804
- #enablePaging$_accessor_storage = proxify((ValueModel));
4805
- get enablePaging$() { return this.#enablePaging$_accessor_storage; }
4806
- set enablePaging$(value) { this.#enablePaging$_accessor_storage = value; }
4807
- #enablePaging_accessor_storage = false;
4808
- get enablePaging() { return this.#enablePaging_accessor_storage; }
4809
- set enablePaging(value) { this.#enablePaging_accessor_storage = value; }
4810
- // enablePaging() {
4811
- // if (isNil(this.pageController)) {
4812
- // const pagedListModel = this.registerDisposable(PagedListModel.create(this._visibleRows$.getDelegate(), this._pageSize));
4813
- // this._visibleRows$.setDelegate(pagedListModel);
4814
- // this._pageController = pagedListModel.pageController;
4815
- // }
4816
- // }
4817
4926
  _footerContentAdded = false;
4818
4927
  _filteredRows$ = this.registerDisposable(new DelegatingListModel());
4819
- _pageSize = new MutableValueModel();
4820
- pagedListModel;
4928
+ scrollMode$;
4821
4929
  constructor(injector) {
4822
4930
  super(injector);
4823
- const { when } = Dsl.disposeWith(this);
4824
- this.onDispose(() => this.disposeOfPagedListModel());
4825
- when(this.enablePaging$).changes(enabled => this.configurePaging(enabled));
4931
+ const { chain, when } = Dsl.disposeWith(this);
4932
+ this.scrollMode$ = chain(this.enableScrolling$).map(enabled => enabled ? "virtual" : "none");
4826
4933
  }
4827
4934
  ngOnInit() {
4828
4935
  super.ngOnInit();
@@ -4834,76 +4941,37 @@ class TableComponent extends AbstractTableComponent {
4834
4941
  else {
4835
4942
  this._filteredRows$.setDelegate(this._dataSource$);
4836
4943
  }
4837
- this.configurePaging(this.enablePaging$.value);
4838
4944
  this.tableModel.bindToTable(this._filteredRows$, this._visibleRows$);
4839
4945
  }
4840
4946
  getModel() {
4841
4947
  return this.tableModel;
4842
4948
  }
4843
- get pageController() {
4844
- // TODO: need to support external page controllers if the paging occurs to our primary data source.
4845
- return this.pagedListModel.pageController;
4846
- }
4847
- configurePaging(enable) {
4848
- if (enable) {
4849
- if (!this.pagedListModel) {
4850
- this.pagedListModel = PagedListModel.create(this._filteredRows$, this._pageSize);
4851
- }
4852
- this._visibleRows$.setDelegate(this.pagedListModel);
4853
- }
4854
- else {
4855
- this.disposeOfPagedListModel();
4856
- this._visibleRows$.setDelegate(this._filteredRows$);
4857
- }
4858
- }
4859
- disposeOfPagedListModel() {
4860
- if (this.pagedListModel) {
4861
- this.pagedListModel.dispose();
4862
- this.pagedListModel = null;
4863
- }
4864
- }
4865
4949
  footerContentChanged($event) {
4866
4950
  // console.log($event);
4867
4951
  this._footerContentAdded = true;
4868
4952
  }
4869
- //@Trace()
4870
- updatePageSize(count) {
4871
- this._pageSize.value = count;
4872
- }
4873
4953
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.9", ngImport: i0, type: TableComponent, deps: [{ token: i0.Injector }], target: i0.ɵɵFactoryTarget.Component });
4874
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.9", type: TableComponent, selector: "aup-table", inputs: { tableModel: "tableModel", filterModel: "filterModel", enablePaging$: "enablePaging$", enablePaging: "enablePaging" }, providers: [
4954
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.9", type: TableComponent, selector: "aup-table", inputs: { tableModel: "tableModel", filterModel: "filterModel" }, providers: [
4875
4955
  { provide: AbstractTableComponent, useExisting: TableComponent }
4876
- ], usesInheritance: true, ngImport: i0, template: "<aup-table-body [data$]=\"visibleRows$\"\n [tableModel]=\"tableModel\"\n [showHeader$]=\"showHeader$\"\n [enableScrolling]=\"enableScrolling\"\n [trackBy]=\"trackBy\"\n (visibleRowCount)=\"updatePageSize($event)\"\n [aupHighlightTextModel]=\"highlightText$\"\n></aup-table-body>\n<section class=\"table-footer\">\n <div class=\"footer-content\"><ng-content select=\"[footer]\"></ng-content></div>\n <aup-paginator *ngIf=\"enablePaging$.value\" [pageController]=\"pageController\"></aup-paginator>\n</section>\n", styles: [":host{display:flex;flex-direction:column;align-items:stretch}aup-table-body{flex:1}.table-footer{display:flex;flex-direction:row;align-items:center}.table-footer .footer-content{flex:1}\n"], dependencies: [{ kind: "directive", type: i1$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: HighlightTextModelDirective, selector: "[aupHighlightTextModel]", inputs: ["aupHighlightTextModel"] }, { kind: "component", type: PaginatorComponent, selector: "aup-paginator", inputs: ["pageController"] }, { kind: "component", type: TableBodyComponent, selector: "aup-table-body", inputs: ["data$", "tableModel", "showHeader$", "showHeader", "trackBy", "enableScrolling"], outputs: ["visibleRowCount"] }] });
4956
+ ], usesInheritance: true, ngImport: i0, template: "<aup-table-body [data$]=\"visibleRows$\"\n [tableModel]=\"tableModel\"\n [showHeader$]=\"showHeader$\"\n [scrollMode$]=\"scrollMode$\"\n [trackBy]=\"trackBy\"\n [aupHighlightTextModel]=\"highlightText$\"\n></aup-table-body>\n<section class=\"table-footer\">\n <div class=\"footer-content\"><ng-content select=\"[footer]\"></ng-content></div>\n</section>\n", styles: [":host{display:flex;flex-direction:column;align-items:stretch}aup-table-body{flex:1}.table-footer{display:flex;flex-direction:row;align-items:center}.table-footer .footer-content{flex:1}\n"], dependencies: [{ kind: "directive", type: HighlightTextModelDirective, selector: "[aupHighlightTextModel]", inputs: ["aupHighlightTextModel"] }, { kind: "component", type: TableBodyComponent, selector: "aup-table-body", inputs: ["data$", "tableModel", "showHeader$", "showHeader", "trackBy", "scrollMode$", "scrollMode"] }] });
4877
4957
  }
4878
4958
  __decorate([
4879
4959
  Proxify(),
4880
- __metadata("design:type", Object)
4960
+ __metadata("design:type", TableModel)
4881
4961
  ], TableComponent.prototype, "tableModel", null);
4882
4962
  __decorate([
4883
4963
  Proxify(),
4884
4964
  __metadata("design:type", Object)
4885
4965
  ], TableComponent.prototype, "filterModel", null);
4886
- __decorate([
4887
- Proxify(),
4888
- __metadata("design:type", Object)
4889
- ], TableComponent.prototype, "enablePaging$", null);
4890
- __decorate([
4891
- StoreInValueModel(),
4892
- __metadata("design:type", Object)
4893
- ], TableComponent.prototype, "enablePaging", null);
4894
4966
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.9", ngImport: i0, type: TableComponent, decorators: [{
4895
4967
  type: Component,
4896
4968
  args: [{ selector: 'aup-table', providers: [
4897
4969
  { provide: AbstractTableComponent, useExisting: TableComponent }
4898
- ], template: "<aup-table-body [data$]=\"visibleRows$\"\n [tableModel]=\"tableModel\"\n [showHeader$]=\"showHeader$\"\n [enableScrolling]=\"enableScrolling\"\n [trackBy]=\"trackBy\"\n (visibleRowCount)=\"updatePageSize($event)\"\n [aupHighlightTextModel]=\"highlightText$\"\n></aup-table-body>\n<section class=\"table-footer\">\n <div class=\"footer-content\"><ng-content select=\"[footer]\"></ng-content></div>\n <aup-paginator *ngIf=\"enablePaging$.value\" [pageController]=\"pageController\"></aup-paginator>\n</section>\n", styles: [":host{display:flex;flex-direction:column;align-items:stretch}aup-table-body{flex:1}.table-footer{display:flex;flex-direction:row;align-items:center}.table-footer .footer-content{flex:1}\n"] }]
4970
+ ], template: "<aup-table-body [data$]=\"visibleRows$\"\n [tableModel]=\"tableModel\"\n [showHeader$]=\"showHeader$\"\n [scrollMode$]=\"scrollMode$\"\n [trackBy]=\"trackBy\"\n [aupHighlightTextModel]=\"highlightText$\"\n></aup-table-body>\n<section class=\"table-footer\">\n <div class=\"footer-content\"><ng-content select=\"[footer]\"></ng-content></div>\n</section>\n", styles: [":host{display:flex;flex-direction:column;align-items:stretch}aup-table-body{flex:1}.table-footer{display:flex;flex-direction:row;align-items:center}.table-footer .footer-content{flex:1}\n"] }]
4899
4971
  }], ctorParameters: function () { return [{ type: i0.Injector }]; }, propDecorators: { tableModel: [{
4900
4972
  type: Input
4901
4973
  }], filterModel: [{
4902
4974
  type: Input
4903
- }], enablePaging$: [{
4904
- type: Input
4905
- }], enablePaging: [{
4906
- type: Input
4907
4975
  }] } });
4908
4976
 
4909
4977
  const SVG_HEIGHT = 60;
@@ -5543,8 +5611,11 @@ class TreeTableComponent extends AbstractTableComponent {
5543
5611
  #expansionModel_accessor_storage = proxify((TreeExpansionModel));
5544
5612
  get expansionModel() { return this.#expansionModel_accessor_storage; }
5545
5613
  set expansionModel(value) { this.#expansionModel_accessor_storage = value; }
5614
+ scrollMode$;
5546
5615
  constructor(injector) {
5547
5616
  super(injector);
5617
+ const { chain } = Dsl.disposeWith(this);
5618
+ this.scrollMode$ = chain(this.enableScrolling$).map(enabled => enabled ? "virtual" : "none");
5548
5619
  }
5549
5620
  ngOnInit() {
5550
5621
  super.ngOnInit();
@@ -5564,7 +5635,7 @@ class TreeTableComponent extends AbstractTableComponent {
5564
5635
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.9", ngImport: i0, type: TreeTableComponent, deps: [{ token: i0.Injector }], target: i0.ɵɵFactoryTarget.Component });
5565
5636
  static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.9", type: TreeTableComponent, selector: "aup-tree-table", inputs: { treeTableModel: "treeTableModel", expansionModel: "expansionModel" }, providers: [
5566
5637
  { provide: AbstractTableComponent, useExisting: TreeTableComponent }
5567
- ], usesInheritance: true, ngImport: i0, template: "<aup-table-body [data$]=\"visibleRows$\"\n [tableModel]=\"treeTableModel\"\n [showHeader$]=\"showHeader$\"\n [enableScrolling]=\"enableScrolling\"\n [aupHighlightTextModel]=\"highlightText$\"\n [trackBy]=\"trackBy\"\n></aup-table-body>\n", styles: [":host{display:flex;flex-direction:column;align-items:stretch}:host::ng-deep td.mat-mdc-cell{border-top-width:0!important;border-bottom-width:0!important}:host::ng-deep td.mat-column-tree-label{width:1px}:host::ng-deep aup-table-cell-renderer[column-id=tree-label]{padding-left:8px!important}:host::ng-deep aup-tree-label-cell-renderer{flex:1}aup-table-body{flex:1}\n"], dependencies: [{ kind: "directive", type: HighlightTextModelDirective, selector: "[aupHighlightTextModel]", inputs: ["aupHighlightTextModel"] }, { kind: "component", type: TableBodyComponent, selector: "aup-table-body", inputs: ["data$", "tableModel", "showHeader$", "showHeader", "trackBy", "enableScrolling"], outputs: ["visibleRowCount"] }] });
5638
+ ], usesInheritance: true, ngImport: i0, template: "<aup-table-body [data$]=\"visibleRows$\"\n [tableModel]=\"treeTableModel\"\n [showHeader$]=\"showHeader$\"\n [scrollMode$]=\"scrollMode$\"\n [aupHighlightTextModel]=\"highlightText$\"\n [trackBy]=\"trackBy\"\n></aup-table-body>\n", styles: [":host{display:flex;flex-direction:column;align-items:stretch}:host::ng-deep td.mat-mdc-cell{border-top-width:0!important;border-bottom-width:0!important}:host::ng-deep td.mat-column-tree-label{width:1px}:host::ng-deep aup-table-cell-renderer[column-id=tree-label]{padding-left:8px!important}:host::ng-deep aup-tree-label-cell-renderer{flex:1}aup-table-body{flex:1}\n"], dependencies: [{ kind: "directive", type: HighlightTextModelDirective, selector: "[aupHighlightTextModel]", inputs: ["aupHighlightTextModel"] }, { kind: "component", type: TableBodyComponent, selector: "aup-table-body", inputs: ["data$", "tableModel", "showHeader$", "showHeader", "trackBy", "scrollMode$", "scrollMode"] }] });
5568
5639
  }
5569
5640
  __decorate([
5570
5641
  Proxify(),
@@ -5578,7 +5649,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.9", ngImpor
5578
5649
  type: Component,
5579
5650
  args: [{ selector: 'aup-tree-table', providers: [
5580
5651
  { provide: AbstractTableComponent, useExisting: TreeTableComponent }
5581
- ], template: "<aup-table-body [data$]=\"visibleRows$\"\n [tableModel]=\"treeTableModel\"\n [showHeader$]=\"showHeader$\"\n [enableScrolling]=\"enableScrolling\"\n [aupHighlightTextModel]=\"highlightText$\"\n [trackBy]=\"trackBy\"\n></aup-table-body>\n", styles: [":host{display:flex;flex-direction:column;align-items:stretch}:host::ng-deep td.mat-mdc-cell{border-top-width:0!important;border-bottom-width:0!important}:host::ng-deep td.mat-column-tree-label{width:1px}:host::ng-deep aup-table-cell-renderer[column-id=tree-label]{padding-left:8px!important}:host::ng-deep aup-tree-label-cell-renderer{flex:1}aup-table-body{flex:1}\n"] }]
5652
+ ], template: "<aup-table-body [data$]=\"visibleRows$\"\n [tableModel]=\"treeTableModel\"\n [showHeader$]=\"showHeader$\"\n [scrollMode$]=\"scrollMode$\"\n [aupHighlightTextModel]=\"highlightText$\"\n [trackBy]=\"trackBy\"\n></aup-table-body>\n", styles: [":host{display:flex;flex-direction:column;align-items:stretch}:host::ng-deep td.mat-mdc-cell{border-top-width:0!important;border-bottom-width:0!important}:host::ng-deep td.mat-column-tree-label{width:1px}:host::ng-deep aup-table-cell-renderer[column-id=tree-label]{padding-left:8px!important}:host::ng-deep aup-tree-label-cell-renderer{flex:1}aup-table-body{flex:1}\n"] }]
5582
5653
  }], ctorParameters: function () { return [{ type: i0.Injector }]; }, propDecorators: { treeTableModel: [{
5583
5654
  type: Input
5584
5655
  }], expansionModel: [{
@@ -5814,7 +5885,8 @@ class ComponentsModule {
5814
5885
  MatDividerModule,
5815
5886
  MatProgressSpinnerModule,
5816
5887
  MatProgressBarModule,
5817
- ScrollingModule], exports: [NumberInputComponent,
5888
+ ScrollingModule,
5889
+ TableVirtualScrollModule], exports: [NumberInputComponent,
5818
5890
  StringInputComponent,
5819
5891
  TextInputComponent,
5820
5892
  PasswordInputComponent,
@@ -5877,7 +5949,8 @@ class ComponentsModule {
5877
5949
  MatDividerModule,
5878
5950
  MatProgressSpinnerModule,
5879
5951
  MatProgressBarModule,
5880
- ScrollingModule] });
5952
+ ScrollingModule,
5953
+ TableVirtualScrollModule] });
5881
5954
  }
5882
5955
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.9", ngImport: i0, type: ComponentsModule, decorators: [{
5883
5956
  type: NgModule,
@@ -5903,7 +5976,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.9", ngImpor
5903
5976
  MatDividerModule,
5904
5977
  MatProgressSpinnerModule,
5905
5978
  MatProgressBarModule,
5906
- ScrollingModule
5979
+ ScrollingModule,
5980
+ TableVirtualScrollModule
5907
5981
  ],
5908
5982
  declarations: [
5909
5983
  AbstractInputComponent,
@@ -6150,7 +6224,7 @@ class ActivityActionsComponent extends DisposableComponent {
6150
6224
  this.cancelCommandComponent.requestFocus();
6151
6225
  }
6152
6226
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.9", ngImport: i0, type: ActivityActionsComponent, deps: [{ token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
6153
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.9", type: ActivityActionsComponent, selector: "aup-activity-actions", inputs: { confirmCommand: "confirmCommand", cancelCommand: "cancelCommand", faces: "faces", confirmFace: "confirmFace", cancelFace: "cancelFace", style: "style", layout: "layout", align: "align" }, host: { properties: { "attr.layout": "this.layout", "attr.align": "this.align" } }, viewQueries: [{ propertyName: "confirmCommandComponent", first: true, predicate: ["confirmCommandComponent"], descendants: true }, { propertyName: "cancelCommandComponent", first: true, predicate: ["cancelCommandComponent"], descendants: true }], usesInheritance: true, ngImport: i0, template: "<div class=\"content\">\n <ng-content></ng-content>\n</div>\n<ng-container *ngIf=\"hasConfirmFace()\">\n <aup-command #confirmCommandComponent class=\"confirm\" [command]=\"confirmCommand\" [face]=\"confirmFace\" data-cy=\"confirm-command\"></aup-command>\n</ng-container>\n<ng-container *ngIf=\"hasCancelFace()\">\n <aup-command #cancelCommandComponent class=\"cancel\" [command]=\"cancelCommand\" [face]=\"cancelFace\" data-cy=\"cancel-command\"></aup-command>\n</ng-container>\n", styles: [":host{display:grid;grid-template-rows:auto;align-items:center;justify-content:end;--resolved-activity-actions-gap: var(--activity-actions-gap, 8px)}:host[layout=block][align=start]{grid-template-areas:\"cancel confirm content\";grid-template-columns:auto auto 1fr}:host[layout=block][align=start] .confirm{margin-left:var(--resolved-activity-actions-gap)}:host[layout=block][align=end]{grid-template-areas:\"content cancel confirm\";grid-template-columns:1fr auto auto}:host[layout=block][align=end] .confirm{margin-left:var(--resolved-activity-actions-gap)}:host[layout=block][align=stretch]{grid-template-areas:\"cancel content confirm\";grid-template-columns:auto 1fr auto}:host[layout=inline]{grid-template-areas:\"confirm cancel content\";grid-template-columns:auto auto 1fr}:host[layout=inline] .cancel{margin-left:var(--resolved-activity-actions-gap)}.cancel{grid-area:cancel}.confirm{grid-area:confirm}.content{grid-area:content;text-align:left}\n"], dependencies: [{ kind: "directive", type: i1$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: CommandComponent, selector: "aup-command", inputs: ["command", "face$", "face", "busyFace$", "busyFace", "alignFace"] }] });
6227
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.9", type: ActivityActionsComponent, selector: "aup-activity-actions", inputs: { confirmCommand: "confirmCommand", cancelCommand: "cancelCommand", faces: "faces", confirmFace: "confirmFace", cancelFace: "cancelFace", style: "style", layout: "layout", align: "align" }, host: { properties: { "attr.layout": "this.layout", "attr.align": "this.align" } }, viewQueries: [{ propertyName: "confirmCommandComponent", first: true, predicate: ["confirmCommandComponent"], descendants: true }, { propertyName: "cancelCommandComponent", first: true, predicate: ["cancelCommandComponent"], descendants: true }], usesInheritance: true, ngImport: i0, template: "<div class=\"content\">\n <ng-content></ng-content>\n</div>\n<ng-container *ngIf=\"hasCancelFace()\">\n <aup-command #cancelCommandComponent class=\"cancel\" [command]=\"cancelCommand\" [face]=\"cancelFace\" data-cy=\"cancel-command\"></aup-command>\n</ng-container>\n<ng-container *ngIf=\"hasConfirmFace()\">\n <aup-command #confirmCommandComponent class=\"confirm\" [command]=\"confirmCommand\" [face]=\"confirmFace\" data-cy=\"confirm-command\"></aup-command>\n</ng-container>\n", styles: [":host{display:grid;grid-template-rows:auto;align-items:center;justify-content:end;--resolved-activity-actions-gap: var(--activity-actions-gap, 8px)}:host[layout=block][align=start]{grid-template-areas:\"cancel confirm content\";grid-template-columns:auto auto 1fr}:host[layout=block][align=start] .confirm{margin-left:var(--resolved-activity-actions-gap)}:host[layout=block][align=end]{grid-template-areas:\"content cancel confirm\";grid-template-columns:1fr auto auto}:host[layout=block][align=end] .confirm{margin-left:var(--resolved-activity-actions-gap)}:host[layout=block][align=stretch]{grid-template-areas:\"cancel content confirm\";grid-template-columns:auto 1fr auto}:host[layout=inline]{grid-template-areas:\"confirm cancel content\";grid-template-columns:auto auto 1fr}:host[layout=inline] .cancel{margin-left:var(--resolved-activity-actions-gap)}.cancel{grid-area:cancel}.confirm{grid-area:confirm}.content{grid-area:content;text-align:left}\n"], dependencies: [{ kind: "directive", type: i1$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: CommandComponent, selector: "aup-command", inputs: ["command", "face$", "face", "busyFace$", "busyFace", "alignFace"] }] });
6154
6228
  }
6155
6229
  __decorate([
6156
6230
  Proxify(),
@@ -6162,7 +6236,7 @@ __decorate([
6162
6236
  ], ActivityActionsComponent.prototype, "cancelCommand", null);
6163
6237
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.9", ngImport: i0, type: ActivityActionsComponent, decorators: [{
6164
6238
  type: Component,
6165
- args: [{ selector: 'aup-activity-actions', template: "<div class=\"content\">\n <ng-content></ng-content>\n</div>\n<ng-container *ngIf=\"hasConfirmFace()\">\n <aup-command #confirmCommandComponent class=\"confirm\" [command]=\"confirmCommand\" [face]=\"confirmFace\" data-cy=\"confirm-command\"></aup-command>\n</ng-container>\n<ng-container *ngIf=\"hasCancelFace()\">\n <aup-command #cancelCommandComponent class=\"cancel\" [command]=\"cancelCommand\" [face]=\"cancelFace\" data-cy=\"cancel-command\"></aup-command>\n</ng-container>\n", styles: [":host{display:grid;grid-template-rows:auto;align-items:center;justify-content:end;--resolved-activity-actions-gap: var(--activity-actions-gap, 8px)}:host[layout=block][align=start]{grid-template-areas:\"cancel confirm content\";grid-template-columns:auto auto 1fr}:host[layout=block][align=start] .confirm{margin-left:var(--resolved-activity-actions-gap)}:host[layout=block][align=end]{grid-template-areas:\"content cancel confirm\";grid-template-columns:1fr auto auto}:host[layout=block][align=end] .confirm{margin-left:var(--resolved-activity-actions-gap)}:host[layout=block][align=stretch]{grid-template-areas:\"cancel content confirm\";grid-template-columns:auto 1fr auto}:host[layout=inline]{grid-template-areas:\"confirm cancel content\";grid-template-columns:auto auto 1fr}:host[layout=inline] .cancel{margin-left:var(--resolved-activity-actions-gap)}.cancel{grid-area:cancel}.confirm{grid-area:confirm}.content{grid-area:content;text-align:left}\n"] }]
6239
+ args: [{ selector: 'aup-activity-actions', template: "<div class=\"content\">\n <ng-content></ng-content>\n</div>\n<ng-container *ngIf=\"hasCancelFace()\">\n <aup-command #cancelCommandComponent class=\"cancel\" [command]=\"cancelCommand\" [face]=\"cancelFace\" data-cy=\"cancel-command\"></aup-command>\n</ng-container>\n<ng-container *ngIf=\"hasConfirmFace()\">\n <aup-command #confirmCommandComponent class=\"confirm\" [command]=\"confirmCommand\" [face]=\"confirmFace\" data-cy=\"confirm-command\"></aup-command>\n</ng-container>\n", styles: [":host{display:grid;grid-template-rows:auto;align-items:center;justify-content:end;--resolved-activity-actions-gap: var(--activity-actions-gap, 8px)}:host[layout=block][align=start]{grid-template-areas:\"cancel confirm content\";grid-template-columns:auto auto 1fr}:host[layout=block][align=start] .confirm{margin-left:var(--resolved-activity-actions-gap)}:host[layout=block][align=end]{grid-template-areas:\"content cancel confirm\";grid-template-columns:1fr auto auto}:host[layout=block][align=end] .confirm{margin-left:var(--resolved-activity-actions-gap)}:host[layout=block][align=stretch]{grid-template-areas:\"cancel content confirm\";grid-template-columns:auto 1fr auto}:host[layout=inline]{grid-template-areas:\"confirm cancel content\";grid-template-columns:auto auto 1fr}:host[layout=inline] .cancel{margin-left:var(--resolved-activity-actions-gap)}.cancel{grid-area:cancel}.confirm{grid-area:confirm}.content{grid-area:content;text-align:left}\n"] }]
6166
6240
  }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }]; }, propDecorators: { confirmCommandComponent: [{
6167
6241
  type: ViewChild,
6168
6242
  args: ["confirmCommandComponent"]
@@ -11987,5 +12061,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.9", ngImpor
11987
12061
  * Generated bundle index. Do not edit.
11988
12062
  */
11989
12063
 
11990
- export { ACTIVITY_DATA, ALERT_CONFIG, AUP_PLACE_CONFIG, AUP_UNAUTHORISED_PLACE_NOTICE_COMPONENT, AbstractActivityTriggerComponent, AbstractCardContainerComponent, AbstractConfirmDialogComponent, AbstractDialogComponent, AbstractInputComponent, AbstractInteractionContext, AbstractListInputComponent, AbstractPlaceNavigationComponent, AbstractPopStateNavigation, AbstractPopupMenuComponent, AbstractTableComponent, AbstractTableModel, AbstractValueInputComponent, Activity, ActivityActionsComponent, ActivityBodyComponent, ActivityContainerComponent, ActivityOutletComponent, ActivityRef, ActivityTitleComponent, AddCardActivityComponent, AddItemInteractionContextComponent, Alert, AlertDialogComponent, AngularUiPowerupsModule, AutocompleteInputComponent, Bounds, BusyOverlayComponent, CELL_EDITOR_PORTAL, CELL_RENDERER_PORTAL, CardContainerComponent, CellEditorPortalRef, CellHeaderPortalRef, CellPortalRef, CellRendererPortalRef, CheckboxInputComponent, ColumnManager, ColumnModel, ColumnOrderManager, ColumnTemplateDirective, ColumnTextSearchFormatter, CommandComponent, CommandContainer, CommandDirective, CommandFace, CommandFaceComponent, ComponentCellRendererPortalRef, ComponentsModule, ConfirmThenDialogComponent, ConfirmThenExecuteDialogComponent, ConfirmationDialogComponent, ConsolidatedParameterMap, CustomTemplateColumnModel, CustomValueColumnModel, DEFINITION_META_DATA_KEY, DIALOG_INTERACTION_SERVICE_DEFAULTS, DecoratedTreeNode, DefaultCellRendererComponent, DefaultHeaderCellRendererComponent, DialogInteractionContext, DialogInteractionContextFactory, Dimension, DirectivesModule, DisposableComponent, EditRowControlsComponent, EditSession, EditorControlColumnModel, EmptyStateComponent, EnableCellTextSearch, EventCleanUpSession, FlattenedTreeListModel, FlexComponent, FocusBinding, FocusBindingDirective, FocusBindingFactory, FocusContainerComponent, FocusableComponent, Formatter, GarbageCollectorDirective, HEADER_CELL_RENDERER_PORTAL, HighlightPipe, HighlightTextModelDirective, HorizontalAlignment, IconComponent, InPlaceInteractionContextComponent, InlineActivityTriggerComponent, InlineEditorModel, InlineStringEditorComponent, InputActivity, InteractionContextTriggerForDirective, InteractionModule, InteractionService, InteractionServiceRoutingAdapter, Keys, LEFT_RIGHT_PLACE_ANIMATION, LabelledValueComponent, ListPlaceNavComponent, ListPropertyColumnModel, LoadableComponent, LoadingContainerComponent, MarkdownComponent, MarkdownService, ModalActivityTriggerComponent, ModalInteractionContextFactory, MoreMenuComponent, MultipleSelectInputComponent, Navigating, NavigatingDuringInteraction, NavigationContext, NavigationSession, NoopAuthGuard, NoopComponent, NotAuthorisedNoticeComponent, NumberInputComponent, POPUP_CONTAINER, PORTAL_EDITOR_COMPONENT, PORTAL_RENDERER_COMPONENT, PaginatorComponent, ParameterDefinition, PasswordInputComponent, Place, PlaceAccessGuard, PlaceAuthService, PlaceComponent, PlaceComponentDeactivationHandler, PlaceDefinition, PlaceGuard, PlaceHistory, PlaceModule, PlaceOutletComponent, PlaceRouter, Point, PopStateDuringInteractionNavigation, PopStateNavigation, PopupActivityTriggerComponent, PopupAwareComponent, PopupInteractionContextComponent, PopupMenuComponent, PopupMenuRendererComponent, PropertyColumnModel, ROUTE_PARAMETER_LIST_KEY, RemoveLastInteractionFromUrlNavigationSession, ResizeAwareComponent, ResizeObserverDirective, RouteId, ScrollContainerComponent, SearchInputComponent, SectionHeaderComponent, SelectInputActivity, SelectInputComponent, SelectionCellComponent, SelectionColumnModel, SelectionHeaderCellComponent, SeparatorComponent, SidePlaceNavigationComponent, StringInputActivity, StringInputComponent, SwitchCaseComponent, SwitchCaseDefaultDirective, SwitchCaseOption, SwitchCaseWhenDirective, SynchroniseInteractionContextIdsWithRoute, TabbedPlaceNavigationComponent, TableBodyComponent, TableCellComponent, TableComponent, TableFilterModel, TableHeaderCellComponent, TableModel, TableMoreMenuComponent, TableMoreMenuPopupComponent, TableRowMenuComponent, TemplateCellRendererPortalRef, TextInputComponent, TextSearchContext, ToolBarComponent, Track, TreeExpansionModel, TreeInheritanceIconComponent, TreeLabelCellRendererComponent, TreeLabelColumnModel, TreeTableComponent, TreeTableModel, UrlService, UrlSnapshot, VerticalFocusContainerComponent, VisibilityService, Visit, VisitParameter, VisitParameterList, VisitSegment, VisitSegmentSanitiser, WaitUntilLeavingInteractionTransitionCancelled, WaitUntilLinkTriggeredNavigationInteractionCancellationTypeDetermined, WaitUntilPopStateDuringCanDeactivateInteractionFinishes, leftRightPlaceAnimation, markdownPillExtension, slideDownAndRightOnEnterAnimation, slideDownOnEnterAnimation, slideRightOnEnterAnimation, treeNodeDecorator };
12064
+ export { ACTIVITY_DATA, ALERT_CONFIG, AUP_PLACE_CONFIG, AUP_UNAUTHORISED_PLACE_NOTICE_COMPONENT, AbstractActivityTriggerComponent, AbstractCardContainerComponent, AbstractConfirmDialogComponent, AbstractDialogComponent, AbstractInputComponent, AbstractInteractionContext, AbstractListInputComponent, AbstractPlaceNavigationComponent, AbstractPopStateNavigation, AbstractPopupMenuComponent, AbstractTableComponent, AbstractTableModel, AbstractValueInputComponent, Activity, ActivityActionsComponent, ActivityBodyComponent, ActivityContainerComponent, ActivityOutletComponent, ActivityRef, ActivityTitleComponent, AddCardActivityComponent, AddItemInteractionContextComponent, Alert, AlertDialogComponent, AngularUiPowerupsModule, AutocompleteInputComponent, Bounds, BusyOverlayComponent, CELL_EDITOR_PORTAL, CELL_RENDERER_PORTAL, CardContainerComponent, CellEditorPortalRef, CellHeaderPortalRef, CellPortalRef, CellRendererPortalRef, CheckboxInputComponent, ColumnManager, ColumnModel, ColumnOrderManager, ColumnTemplateDirective, ColumnTextSearchFormatter, CommandComponent, CommandContainer, CommandDirective, CommandFace, CommandFaceComponent, ComponentCellRendererPortalRef, ComponentsModule, ConfirmThenDialogComponent, ConfirmThenExecuteDialogComponent, ConfirmationDialogComponent, ConsolidatedParameterMap, CustomTemplateColumnModel, CustomValueColumnModel, CustomVirtualScrollStrategy, DEFINITION_META_DATA_KEY, DIALOG_INTERACTION_SERVICE_DEFAULTS, DecoratedTreeNode, DefaultCellRendererComponent, DefaultHeaderCellRendererComponent, DialogInteractionContext, DialogInteractionContextFactory, Dimension, DirectivesModule, DisposableComponent, EditRowControlsComponent, EditSession, EditorControlColumnModel, EmptyStateComponent, EnableCellTextSearch, EventCleanUpSession, FlattenedTreeListModel, FlexComponent, FocusBinding, FocusBindingDirective, FocusBindingFactory, FocusContainerComponent, FocusableComponent, Formatter, GarbageCollectorDirective, HEADER_CELL_RENDERER_PORTAL, HighlightPipe, HighlightTextModelDirective, HorizontalAlignment, IconComponent, InPlaceInteractionContextComponent, InlineActivityTriggerComponent, InlineEditorModel, InlineStringEditorComponent, InputActivity, InteractionContextTriggerForDirective, InteractionModule, InteractionService, InteractionServiceRoutingAdapter, Keys, LEFT_RIGHT_PLACE_ANIMATION, LabelledValueComponent, ListPlaceNavComponent, ListPropertyColumnModel, LoadableComponent, LoadingContainerComponent, MarkdownComponent, MarkdownService, ModalActivityTriggerComponent, ModalInteractionContextFactory, MoreMenuComponent, MultipleSelectInputComponent, Navigating, NavigatingDuringInteraction, NavigationContext, NavigationSession, NoopAuthGuard, NoopComponent, NotAuthorisedNoticeComponent, NumberInputComponent, POPUP_CONTAINER, PORTAL_EDITOR_COMPONENT, PORTAL_RENDERER_COMPONENT, PaginatorComponent, ParameterDefinition, PasswordInputComponent, Place, PlaceAccessGuard, PlaceAuthService, PlaceComponent, PlaceComponentDeactivationHandler, PlaceDefinition, PlaceGuard, PlaceHistory, PlaceModule, PlaceOutletComponent, PlaceRouter, Point, PopStateDuringInteractionNavigation, PopStateNavigation, PopupActivityTriggerComponent, PopupAwareComponent, PopupInteractionContextComponent, PopupMenuComponent, PopupMenuRendererComponent, PropertyColumnModel, ROUTE_PARAMETER_LIST_KEY, RemoveLastInteractionFromUrlNavigationSession, ResizeAwareComponent, ResizeObserverDirective, RouteId, ScrollContainerComponent, SearchInputComponent, SectionHeaderComponent, SelectInputActivity, SelectInputComponent, SelectionCellComponent, SelectionColumnModel, SelectionHeaderCellComponent, SeparatorComponent, SidePlaceNavigationComponent, StringInputActivity, StringInputComponent, SwitchCaseComponent, SwitchCaseDefaultDirective, SwitchCaseOption, SwitchCaseWhenDirective, SynchroniseInteractionContextIdsWithRoute, TabbedPlaceNavigationComponent, TableBodyComponent, TableCellComponent, TableComponent, TableFilterModel, TableHeaderCellComponent, TableModel, TableMoreMenuComponent, TableMoreMenuPopupComponent, TableRowMenuComponent, TemplateCellRendererPortalRef, TextInputComponent, TextSearchContext, ToolBarComponent, Track, TreeExpansionModel, TreeInheritanceIconComponent, TreeLabelCellRendererComponent, TreeLabelColumnModel, TreeTableComponent, TreeTableModel, UrlService, UrlSnapshot, VerticalFocusContainerComponent, VirtualScrollDataSource, VisibilityService, Visit, VisitParameter, VisitParameterList, VisitSegment, VisitSegmentSanitiser, WaitUntilLeavingInteractionTransitionCancelled, WaitUntilLinkTriggeredNavigationInteractionCancellationTypeDetermined, WaitUntilPopStateDuringCanDeactivateInteractionFinishes, leftRightPlaceAnimation, markdownPillExtension, slideDownAndRightOnEnterAnimation, slideDownOnEnterAnimation, slideRightOnEnterAnimation, treeNodeDecorator };
11991
12065
  //# sourceMappingURL=coolon-angular-ui-powerups.mjs.map