@coolon/angular-ui-powerups 13.1.6 → 13.2.1
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.
- package/assets/table.scss +2 -2
- package/esm2020/lib/components/components.module.mjs +22 -19
- package/esm2020/lib/components/exports.mjs +28 -21
- package/esm2020/lib/components/tables/abstract-table-model.mjs +70 -29
- package/esm2020/lib/components/tables/abstract-table.component.mjs +12 -10
- package/esm2020/lib/components/tables/column/column-list-model.mjs +39 -0
- package/esm2020/lib/components/tables/column/column-model.mjs +180 -0
- package/esm2020/lib/components/tables/column/column-template/column-template.directive.mjs +35 -0
- package/esm2020/lib/components/tables/column/column-text-properties.mjs +2 -0
- package/esm2020/lib/components/tables/column/custom-template-column-model.mjs +16 -0
- package/esm2020/lib/components/tables/column/custom-value-column-model.mjs +37 -0
- package/esm2020/lib/components/tables/column/editor-controls-column-model.mjs +21 -0
- package/esm2020/lib/components/tables/column/list-propery-column-model.mjs +48 -0
- package/esm2020/lib/components/tables/column/property-column-model.mjs +92 -0
- package/esm2020/lib/components/tables/column/selection-column-model.mjs +40 -0
- package/esm2020/lib/components/tables/editor/edit-row-controls/edit-row-controls.component.mjs +55 -0
- package/esm2020/lib/components/tables/editor/edit-session.mjs +23 -0
- package/esm2020/lib/components/tables/editor/editable-cell-renderer.mjs +2 -0
- package/esm2020/lib/components/tables/{table/paginator → paginator}/paginator.component.mjs +4 -4
- package/esm2020/lib/components/tables/renderer/cell-editors.mjs +2 -0
- package/esm2020/lib/components/tables/renderer/cell-portal-ref.mjs +93 -0
- package/esm2020/lib/components/tables/renderer/cell-renderer.mjs +2 -0
- package/esm2020/lib/components/tables/renderer/default-cell-renderer/default-cell-renderer.component.mjs +30 -0
- package/esm2020/lib/components/tables/{table → renderer}/default-header-cell-renderer/default-header-cell-renderer.component.mjs +1 -1
- package/esm2020/lib/components/tables/renderer/default-list-cell-renderer/default-list-cell-renderer.component.mjs +40 -0
- package/esm2020/lib/components/tables/renderer/select-header-cell/selection-header-cell.component.mjs +31 -0
- package/esm2020/lib/components/tables/renderer/selection-cell/selection-cell.component.mjs +26 -0
- package/esm2020/lib/components/tables/renderer/table-cell/table-cell.component.mjs +93 -0
- package/esm2020/lib/components/tables/renderer/table-header-cell/table-header-cell.component.mjs +32 -0
- package/esm2020/lib/components/tables/search/column-text-search-formatter.mjs +52 -0
- package/esm2020/lib/components/tables/search/enable-cell-text-search.decorator.mjs +30 -0
- package/esm2020/lib/components/tables/table/table-model.mjs +2 -10
- package/esm2020/lib/components/tables/table/table.component.mjs +12 -12
- package/esm2020/lib/components/tables/table-row-menu/table-row-menu.component.mjs +84 -0
- package/esm2020/lib/components/tables/tree-table/tree-label-cell-renderer/tree-label-cell-renderer.component.mjs +1 -1
- package/esm2020/lib/components/tables/tree-table/tree-label-column-model.mjs +3 -3
- package/esm2020/lib/components/tables/tree-table/tree-table-component.mjs +10 -10
- package/esm2020/lib/components/tables/tree-table/tree-table-model.mjs +1 -1
- package/fesm2015/coolon-angular-ui-powerups.mjs +608 -450
- package/fesm2015/coolon-angular-ui-powerups.mjs.map +1 -1
- package/fesm2020/coolon-angular-ui-powerups.mjs +740 -583
- package/fesm2020/coolon-angular-ui-powerups.mjs.map +1 -1
- package/lib/components/components.module.d.ts +55 -54
- package/lib/components/exports.d.ts +27 -20
- package/lib/components/tables/abstract-table-model.d.ts +24 -13
- package/lib/components/tables/abstract-table.component.d.ts +6 -5
- package/lib/components/tables/{column-list-model.d.ts → column/column-list-model.d.ts} +4 -4
- package/lib/components/tables/column/column-model.d.ts +77 -0
- package/lib/components/tables/column/custom-template-column-model.d.ts +8 -0
- package/lib/components/tables/column/custom-value-column-model.d.ts +10 -0
- package/lib/components/tables/column/editor-controls-column-model.d.ts +13 -0
- package/lib/components/tables/column/list-propery-column-model.d.ts +15 -0
- package/lib/components/tables/column/property-column-model.d.ts +24 -0
- package/lib/components/tables/column/selection-column-model.d.ts +12 -0
- package/lib/components/tables/{table → editor}/edit-row-controls/edit-row-controls.component.d.ts +1 -1
- package/lib/components/tables/{edit-session.d.ts → editor/edit-session.d.ts} +2 -2
- package/lib/components/tables/{table/mutable-cell-renderer.d.ts → editor/editable-cell-renderer.d.ts} +2 -2
- package/lib/components/tables/{table/paginator → paginator}/paginator.component.d.ts +1 -1
- package/lib/components/tables/{table → renderer}/cell-portal-ref.d.ts +18 -18
- package/lib/components/tables/renderer/cell-renderer.d.ts +3 -0
- package/lib/components/tables/{table → renderer}/default-cell-renderer/default-cell-renderer.component.d.ts +1 -1
- package/lib/components/tables/renderer/default-list-cell-renderer/default-list-cell-renderer.component.d.ts +12 -0
- package/lib/components/tables/{table/select-header-cell-renderer/select-header-cell-renderer.component.d.ts → renderer/select-header-cell/selection-header-cell.component.d.ts} +3 -3
- package/lib/components/tables/{table/select-cell-renderer/select-cell-renderer.component.d.ts → renderer/selection-cell/selection-cell.component.d.ts} +3 -3
- package/lib/components/tables/{table/table-cell-renderer/table-cell-renderer.component.d.ts → renderer/table-cell/table-cell.component.d.ts} +5 -5
- package/lib/components/tables/{table/table-header-cell-renderer/table-header-cell-renderer.component.d.ts → renderer/table-header-cell/table-header-cell.component.d.ts} +4 -4
- package/lib/components/tables/search/column-text-search-formatter.d.ts +28 -0
- package/lib/components/tables/search/enable-cell-text-search.decorator.d.ts +25 -0
- package/lib/components/tables/table/table-model.d.ts +3 -9
- package/lib/components/tables/table/table.component.d.ts +4 -4
- package/lib/components/tables/{table/table-row-menu → table-row-menu}/table-row-menu.component.d.ts +3 -3
- package/lib/components/tables/tree-table/tree-label-cell-renderer/tree-label-cell-renderer.component.d.ts +1 -1
- package/lib/components/tables/tree-table/tree-label-column-model.d.ts +1 -1
- package/lib/components/tables/tree-table/tree-table-component.d.ts +2 -2
- package/lib/components/tables/tree-table/tree-table-model.d.ts +1 -1
- package/package.json +2 -1
- package/esm2020/lib/components/tables/column-list-model.mjs +0 -39
- package/esm2020/lib/components/tables/edit-session.mjs +0 -23
- package/esm2020/lib/components/tables/table/cell-editors.mjs +0 -2
- package/esm2020/lib/components/tables/table/cell-portal-ref.mjs +0 -93
- package/esm2020/lib/components/tables/table/cell-renderer.mjs +0 -2
- package/esm2020/lib/components/tables/table/column-model.mjs +0 -395
- package/esm2020/lib/components/tables/table/column-template/column-template.directive.mjs +0 -35
- package/esm2020/lib/components/tables/table/column-text-properties.mjs +0 -2
- package/esm2020/lib/components/tables/table/default-cell-renderer/default-cell-renderer.component.mjs +0 -22
- package/esm2020/lib/components/tables/table/edit-row-controls/edit-row-controls.component.mjs +0 -55
- package/esm2020/lib/components/tables/table/mutable-cell-renderer.mjs +0 -2
- package/esm2020/lib/components/tables/table/select-cell-renderer/select-cell-renderer.component.mjs +0 -26
- package/esm2020/lib/components/tables/table/select-header-cell-renderer/select-header-cell-renderer.component.mjs +0 -31
- package/esm2020/lib/components/tables/table/table-cell-renderer/table-cell-renderer.component.mjs +0 -93
- package/esm2020/lib/components/tables/table/table-def.mjs +0 -2
- package/esm2020/lib/components/tables/table/table-header-cell-renderer/table-header-cell-renderer.component.mjs +0 -32
- package/esm2020/lib/components/tables/table/table-row-menu/table-row-menu.component.mjs +0 -84
- package/esm2020/lib/components/tables/table/text-search-predicate.mjs +0 -2
- package/lib/components/tables/table/cell-renderer.d.ts +0 -5
- package/lib/components/tables/table/column-model.d.ts +0 -145
- package/lib/components/tables/table/table-def.d.ts +0 -7
- package/lib/components/tables/table/text-search-predicate.d.ts +0 -1
- /package/lib/components/tables/{table → column}/column-template/column-template.directive.d.ts +0 -0
- /package/lib/components/tables/{table → column}/column-text-properties.d.ts +0 -0
- /package/lib/components/tables/{table → renderer}/cell-editors.d.ts +0 -0
- /package/lib/components/tables/{table → renderer}/default-header-cell-renderer/default-header-cell-renderer.component.d.ts +0 -0
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import * as i4 from '@angular/common';
|
|
2
2
|
import { DOCUMENT, CommonModule } from '@angular/common';
|
|
3
3
|
import * as i0 from '@angular/core';
|
|
4
|
-
import { ElementRef, Directive, Inject, Host, Optional, Input, HostListener, NgZone, Injectable, Pipe, NgModule, Component, ContentChild, ViewEncapsulation, HostBinding, InjectionToken, ViewChildren, EventEmitter, ViewChild, Output, SkipSelf, Self, ContentChildren, ComponentRef,
|
|
4
|
+
import { ElementRef, Directive, Inject, Host, Optional, Input, HostListener, NgZone, Injectable, Pipe, NgModule, Component, ContentChild, ViewEncapsulation, HostBinding, InjectionToken, ViewChildren, EventEmitter, ViewChild, Output, SkipSelf, Self, ContentChildren, ComponentRef, Injector, PLATFORM_ID } from '@angular/core';
|
|
5
5
|
import * as i4$1 from '@angular/forms';
|
|
6
6
|
import { FormsModule } from '@angular/forms';
|
|
7
7
|
import * as i1$8 from '@angular/material/form-field';
|
|
@@ -40,17 +40,19 @@ import { MatTooltipModule } from '@angular/material/tooltip';
|
|
|
40
40
|
import * as i1$5 from '@fortawesome/angular-fontawesome';
|
|
41
41
|
import { FontAwesomeModule } from '@fortawesome/angular-fontawesome';
|
|
42
42
|
import * as i1$7 from '@coolon/pectin';
|
|
43
|
-
import { GarbageCollector, DelegatingValueModel, assert, UnaryCommand, lang, Dsl, Logger, TrackExternal, ValueModel, StoreInValueModel, Command, MutableListModel, StoreInListModel, Disposable, DelegatingListModel, MutableValueModel, FocusManager, EventListenerList, Form, Guard, Binding, DebugContext, ListModel,
|
|
43
|
+
import { GarbageCollector, DelegatingValueModel, assert, UnaryCommand, lang, Dsl, Logger, TrackExternal, ValueModel, StoreInValueModel, Command, MutableListModel, StoreInListModel, Disposable, DelegatingListModel, MutableValueModel, FocusManager, EventListenerList, Form, Guard, Binding, DebugContext, ListModel, Functions, MultipleSelectionModel, AbstractComputedListModel, DelegatingSelectionModel, DirtyTrackingForm, ComputedListModel, PageController, Trace, Deferred } from '@coolon/pectin';
|
|
44
44
|
import { __decorate, __param, __metadata } from 'tslib';
|
|
45
45
|
import * as i1$2 from '@angular/platform-browser';
|
|
46
|
+
import * as _ from 'lodash';
|
|
46
47
|
import { isEmpty, isString, isFunction, isNil, isInteger, isEqual, first, uniq, findLast, isObject, isNumber, isNaN as isNaN$1 } from 'lodash';
|
|
47
48
|
import { marked } from 'marked';
|
|
48
49
|
import { Memoize } from '@typescript-plus/fast-memoize-decorator';
|
|
49
50
|
import { Enum } from 'typescript-string-enums';
|
|
50
|
-
import { lang as lang$1, assert as assert$1, Stringy,
|
|
51
|
+
import { lang as lang$1, assert as assert$1, Stringy, Klass, Opts } from '@coolon/typescript-utilities';
|
|
51
52
|
import * as i3 from '@angular/material/core';
|
|
52
53
|
import ResizeObserver from 'resize-observer-polyfill';
|
|
53
54
|
import produce from 'immer';
|
|
55
|
+
import escapeStringRegexp from 'escape-string-regexp';
|
|
54
56
|
import { fas } from '@fortawesome/free-solid-svg-icons';
|
|
55
57
|
import * as i6$1 from '@angular/cdk/a11y';
|
|
56
58
|
import { A11yModule } from '@angular/cdk/a11y';
|
|
@@ -2510,25 +2512,6 @@ class TemplateCellRendererPortalRef extends CellRendererPortalRef {
|
|
|
2510
2512
|
}
|
|
2511
2513
|
}
|
|
2512
2514
|
|
|
2513
|
-
class DefaultCellRendererComponent {
|
|
2514
|
-
constructor() {
|
|
2515
|
-
}
|
|
2516
|
-
set value(value) {
|
|
2517
|
-
this._value = value;
|
|
2518
|
-
}
|
|
2519
|
-
get value() {
|
|
2520
|
-
return this._value;
|
|
2521
|
-
}
|
|
2522
|
-
}
|
|
2523
|
-
DefaultCellRendererComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.3", ngImport: i0, type: DefaultCellRendererComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
2524
|
-
DefaultCellRendererComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.2.3", type: DefaultCellRendererComponent, selector: "aup-default-cell-renderer", inputs: { value: "value" }, ngImport: i0, template: "<span [innerHTML]=\"value| aupHighlight\"></span>\n", styles: [""], pipes: { "aupHighlight": HighlightPipe } });
|
|
2525
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.3", ngImport: i0, type: DefaultCellRendererComponent, decorators: [{
|
|
2526
|
-
type: Component,
|
|
2527
|
-
args: [{ selector: 'aup-default-cell-renderer', template: "<span [innerHTML]=\"value| aupHighlight\"></span>\n", styles: [""] }]
|
|
2528
|
-
}], ctorParameters: function () { return []; }, propDecorators: { value: [{
|
|
2529
|
-
type: Input
|
|
2530
|
-
}] } });
|
|
2531
|
-
|
|
2532
2515
|
class DefaultHeaderCellRendererComponent {
|
|
2533
2516
|
constructor() {
|
|
2534
2517
|
}
|
|
@@ -2542,120 +2525,81 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.3", ngImpor
|
|
|
2542
2525
|
type: Input
|
|
2543
2526
|
}] } });
|
|
2544
2527
|
|
|
2545
|
-
class
|
|
2546
|
-
constructor(rowId, row, form, saveCommand) {
|
|
2547
|
-
super();
|
|
2548
|
-
this.rowId = rowId;
|
|
2549
|
-
this.form = form;
|
|
2550
|
-
this.saveCommand = saveCommand;
|
|
2551
|
-
this._liveRowValue = new MutableValueModel();
|
|
2552
|
-
this.liveRowValue = this._liveRowValue.readonly;
|
|
2553
|
-
this.form.load(row);
|
|
2554
|
-
this._liveRowValue.value = row;
|
|
2555
|
-
this.form.onEdit(() => {
|
|
2556
|
-
// if (!this._liveRowValue.value[immerable]) {
|
|
2557
|
-
// console.warn()
|
|
2558
|
-
// }
|
|
2559
|
-
this._liveRowValue.value = produce(this._liveRowValue.value, draft => {
|
|
2560
|
-
this.form.writeDirtyStateTo(draft);
|
|
2561
|
-
});
|
|
2562
|
-
});
|
|
2563
|
-
}
|
|
2528
|
+
class ColumnTextSearchFormatter {
|
|
2564
2529
|
}
|
|
2565
|
-
|
|
2566
|
-
class
|
|
2567
|
-
constructor() {
|
|
2568
|
-
super();
|
|
2569
|
-
this.saveCommand = Command.create(async () => {
|
|
2570
|
-
const finished = await this.editSession.saveCommand.execute();
|
|
2571
|
-
if (finished) {
|
|
2572
|
-
this.editSession.dispose();
|
|
2573
|
-
}
|
|
2574
|
-
});
|
|
2575
|
-
this.cancelCommand = Command.create(() => {
|
|
2576
|
-
this.editSession.dispose();
|
|
2577
|
-
}).disableWhile(this.saveCommand.busy);
|
|
2530
|
+
(function (ColumnTextSearchFormatter) {
|
|
2531
|
+
class Delegate extends ColumnTextSearchFormatter {
|
|
2578
2532
|
}
|
|
2579
|
-
|
|
2580
|
-
|
|
2581
|
-
|
|
2533
|
+
ColumnTextSearchFormatter.Delegate = Delegate;
|
|
2534
|
+
class Delegating extends ColumnTextSearchFormatter.Delegate {
|
|
2535
|
+
constructor(delegateClass) {
|
|
2536
|
+
super();
|
|
2537
|
+
this.delegateClass = delegateClass;
|
|
2538
|
+
}
|
|
2539
|
+
initialise(injector) {
|
|
2540
|
+
this._delegate = injector.get(this.delegateClass);
|
|
2541
|
+
if (this._delegate instanceof Delegating) {
|
|
2542
|
+
this._delegate.initialise(injector);
|
|
2543
|
+
}
|
|
2544
|
+
}
|
|
2545
|
+
format(row) {
|
|
2546
|
+
return this._delegate ? this._delegate.format(row) : "";
|
|
2582
2547
|
}
|
|
2583
|
-
this._session = session;
|
|
2584
|
-
}
|
|
2585
|
-
get editSession() {
|
|
2586
|
-
return this._session;
|
|
2587
2548
|
}
|
|
2588
|
-
|
|
2549
|
+
ColumnTextSearchFormatter.Delegating = Delegating;
|
|
2550
|
+
function forFormatter(formatter) {
|
|
2551
|
+
return new class extends ColumnTextSearchFormatter {
|
|
2552
|
+
format(value) {
|
|
2553
|
+
return formatter(value);
|
|
2554
|
+
}
|
|
2555
|
+
};
|
|
2589
2556
|
}
|
|
2590
|
-
|
|
2591
|
-
|
|
2557
|
+
ColumnTextSearchFormatter.forFormatter = forFormatter;
|
|
2558
|
+
class Null extends ColumnTextSearchFormatter {
|
|
2559
|
+
format(value) {
|
|
2560
|
+
return "";
|
|
2561
|
+
}
|
|
2592
2562
|
}
|
|
2593
|
-
|
|
2594
|
-
|
|
2595
|
-
|
|
2596
|
-
|
|
2597
|
-
|
|
2598
|
-
|
|
2599
|
-
|
|
2600
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.3", ngImport: i0, type: EditRowControls, decorators: [{
|
|
2601
|
-
type: Component,
|
|
2602
|
-
args: [{ selector: 'aup-row-editor-controls', template: "<button *ngIf=\"!editSession\" mat-icon-button [pectinCommand]=\"editRowCommand\" class=\"edit-button\"><aup-icon icon=\"mat:edit\"></aup-icon></button>\n<button *ngIf=\"editSession\" mat-icon-button [pectinCommand]=\"saveCommand\"><aup-icon icon=\"mat:done\"></aup-icon></button>\n<button *ngIf=\"editSession\" mat-icon-button [pectinCommand]=\"cancelCommand\"><aup-icon icon=\"mat:clear\"></aup-icon></button>\n", styles: [":host{display:block;width:80px}.edit-button{visibility:hidden}:host-context(tr:hover) .edit-button{visibility:visible}\n"] }]
|
|
2603
|
-
}], ctorParameters: function () { return []; }, propDecorators: { row: [{
|
|
2604
|
-
type: Input
|
|
2605
|
-
}], editRowCommand: [{
|
|
2606
|
-
type: Input
|
|
2607
|
-
}], editSession: [{
|
|
2608
|
-
type: Input
|
|
2609
|
-
}] } });
|
|
2610
|
-
|
|
2611
|
-
class SelectCellRendererComponent extends DisposableComponent {
|
|
2612
|
-
constructor() {
|
|
2613
|
-
super();
|
|
2614
|
-
this.selectCommand = Command.create(() => {
|
|
2615
|
-
this.selectionModel?.selectCommand.execute(this.row);
|
|
2616
|
-
});
|
|
2563
|
+
ColumnTextSearchFormatter.Null = Null;
|
|
2564
|
+
class DefaultValueFormatter extends ColumnTextSearchFormatter {
|
|
2565
|
+
format(value) {
|
|
2566
|
+
let s = value?.toString() ?? "";
|
|
2567
|
+
console.log("DefaultValueFormatter", { value, text: s });
|
|
2568
|
+
return s;
|
|
2569
|
+
}
|
|
2617
2570
|
}
|
|
2618
|
-
|
|
2619
|
-
|
|
2571
|
+
ColumnTextSearchFormatter.DefaultValueFormatter = DefaultValueFormatter;
|
|
2572
|
+
class DefaultArrayFormatter extends ColumnTextSearchFormatter {
|
|
2573
|
+
format(value) {
|
|
2574
|
+
return value ? value.map(it => it?.toString()).join(",") : "";
|
|
2575
|
+
}
|
|
2620
2576
|
}
|
|
2621
|
-
|
|
2622
|
-
|
|
2623
|
-
SelectCellRendererComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.2.3", type: SelectCellRendererComponent, selector: "aup-select-cell-renderer", inputs: { row: "row" }, usesInheritance: true, ngImport: i0, template: "<mat-checkbox [pectinCommand]=\"selectCommand\" [checked]=\"isSelected()\"></mat-checkbox>\n", styles: [""], components: [{ type: i1$9.MatCheckbox, selector: "mat-checkbox", inputs: ["disableRipple", "color", "tabIndex", "aria-label", "aria-labelledby", "aria-describedby", "id", "required", "labelPosition", "name", "value", "checked", "disabled", "indeterminate"], outputs: ["change", "indeterminateChange"], exportAs: ["matCheckbox"] }], directives: [{ type: CommandDirective, selector: "[pectinCommand]", inputs: ["pectinCommand", "commandParameter"] }] });
|
|
2624
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.3", ngImport: i0, type: SelectCellRendererComponent, decorators: [{
|
|
2625
|
-
type: Component,
|
|
2626
|
-
args: [{ selector: 'aup-select-cell-renderer', template: "<mat-checkbox [pectinCommand]=\"selectCommand\" [checked]=\"isSelected()\"></mat-checkbox>\n", styles: [""] }]
|
|
2627
|
-
}], ctorParameters: function () { return []; }, propDecorators: { row: [{
|
|
2628
|
-
type: Input
|
|
2629
|
-
}] } });
|
|
2577
|
+
ColumnTextSearchFormatter.DefaultArrayFormatter = DefaultArrayFormatter;
|
|
2578
|
+
})(ColumnTextSearchFormatter || (ColumnTextSearchFormatter = {}));
|
|
2630
2579
|
|
|
2631
|
-
|
|
2580
|
+
const noop = () => {
|
|
2581
|
+
};
|
|
2582
|
+
class ColumnTextSearchWrapper extends ColumnTextSearchFormatter.Delegate {
|
|
2632
2583
|
constructor() {
|
|
2633
|
-
super();
|
|
2634
|
-
this.
|
|
2635
|
-
this.selectionModel.toggleAllCommand.execute();
|
|
2636
|
-
});
|
|
2584
|
+
super(...arguments);
|
|
2585
|
+
this._map = Functions.identity;
|
|
2637
2586
|
}
|
|
2638
|
-
|
|
2639
|
-
|
|
2587
|
+
initialise(injector) {
|
|
2588
|
+
if (this._delegate instanceof ColumnTextSearchFormatter.Delegate) {
|
|
2589
|
+
this._delegate.initialise(injector);
|
|
2590
|
+
}
|
|
2640
2591
|
}
|
|
2641
|
-
|
|
2642
|
-
|
|
2592
|
+
format(row) {
|
|
2593
|
+
let value = this._map(row);
|
|
2594
|
+
let result = this._delegate ? this._delegate.format(value) : "";
|
|
2595
|
+
console.log({ format: row, value, text: result });
|
|
2596
|
+
return result;
|
|
2643
2597
|
}
|
|
2644
|
-
|
|
2645
|
-
|
|
2598
|
+
setDelegate(formatter, mapper) {
|
|
2599
|
+
this._delegate = formatter;
|
|
2600
|
+
this._map = mapper ?? Functions.identity;
|
|
2646
2601
|
}
|
|
2647
2602
|
}
|
|
2648
|
-
SelectHeaderCellRendererComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.3", ngImport: i0, type: SelectHeaderCellRendererComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
2649
|
-
SelectHeaderCellRendererComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.2.3", type: SelectHeaderCellRendererComponent, selector: "aup-select-header-cell-renderer", usesInheritance: true, ngImport: i0, template: "<mat-checkbox *ngIf=\"isVisible()\" [pectinCommand]=\"selectCommand\" [checked]=\"isSelected()\" [indeterminate]=\"this.isIntermediate()\"></mat-checkbox>\n", styles: [""], components: [{ type: i1$9.MatCheckbox, selector: "mat-checkbox", inputs: ["disableRipple", "color", "tabIndex", "aria-label", "aria-labelledby", "aria-describedby", "id", "required", "labelPosition", "name", "value", "checked", "disabled", "indeterminate"], outputs: ["change", "indeterminateChange"], exportAs: ["matCheckbox"] }], directives: [{ type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: CommandDirective, selector: "[pectinCommand]", inputs: ["pectinCommand", "commandParameter"] }] });
|
|
2650
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.3", ngImport: i0, type: SelectHeaderCellRendererComponent, decorators: [{
|
|
2651
|
-
type: Component,
|
|
2652
|
-
args: [{ selector: 'aup-select-header-cell-renderer', template: "<mat-checkbox *ngIf=\"isVisible()\" [pectinCommand]=\"selectCommand\" [checked]=\"isSelected()\" [indeterminate]=\"this.isIntermediate()\"></mat-checkbox>\n", styles: [""] }]
|
|
2653
|
-
}], ctorParameters: function () { return []; } });
|
|
2654
|
-
|
|
2655
|
-
const noop = () => {
|
|
2656
|
-
};
|
|
2657
|
-
const CELL_RENDERER_COMPONENT_ROW_CACHE = Symbol('aup-cell-renderer:row-data-cache');
|
|
2658
|
-
const DEFAULT_TEXT_SEARCH_PREDICATE = (row, text) => false;
|
|
2659
2603
|
class ColumnModel extends GarbageCollector {
|
|
2660
2604
|
constructor(columnId, textPropertiesProvider) {
|
|
2661
2605
|
super();
|
|
@@ -2663,10 +2607,9 @@ class ColumnModel extends GarbageCollector {
|
|
|
2663
2607
|
this.textPropertiesProvider = textPropertiesProvider;
|
|
2664
2608
|
this._enableRowSelection = true;
|
|
2665
2609
|
this._flex = false;
|
|
2666
|
-
this._defaultVisibility = this.registerDisposable(new DelegatingValueModel().withDefault(true));
|
|
2667
|
-
this._visible = this.registerDisposable(new DelegatingValueModel().withDefault(this._defaultVisibility));
|
|
2668
|
-
this.
|
|
2669
|
-
this._cellRendererTextSearchPredicate = undefined;
|
|
2610
|
+
this._defaultVisibility$ = this.registerDisposable(new DelegatingValueModel().withDefault(true));
|
|
2611
|
+
this._visible$ = this.registerDisposable(new DelegatingValueModel().withDefault(this._defaultVisibility$));
|
|
2612
|
+
this.textSearchDelegate = new ColumnTextSearchWrapper();
|
|
2670
2613
|
this.installHeaderRenderer();
|
|
2671
2614
|
this.dasherisedColumnId = Stringy.from(columnId).dasherize().toString();
|
|
2672
2615
|
}
|
|
@@ -2679,32 +2622,21 @@ class ColumnModel extends GarbageCollector {
|
|
|
2679
2622
|
return this.getColumnTextProperties()?.headerText() || this.getDefaultHeaderText();
|
|
2680
2623
|
}
|
|
2681
2624
|
isVisible() {
|
|
2682
|
-
return this.visible
|
|
2625
|
+
return this.visible$.value;
|
|
2683
2626
|
}
|
|
2684
|
-
get visible() {
|
|
2685
|
-
return this._visible
|
|
2627
|
+
get visible$() {
|
|
2628
|
+
return this._visible$.readonly;
|
|
2686
2629
|
}
|
|
2687
2630
|
visibleWhile(visible) {
|
|
2688
|
-
this._visible
|
|
2631
|
+
this._visible$.setDelegate(visible);
|
|
2689
2632
|
return this;
|
|
2690
2633
|
}
|
|
2691
2634
|
setDefaultVisibility(visible) {
|
|
2692
|
-
this._defaultVisibility
|
|
2635
|
+
this._defaultVisibility$.setDelegate(visible);
|
|
2693
2636
|
}
|
|
2694
2637
|
getDefaultHeaderText() {
|
|
2695
2638
|
return this.columnId;
|
|
2696
2639
|
}
|
|
2697
|
-
get isTextMatch() {
|
|
2698
|
-
return this._cellRendererTextSearchPredicate ?? this._columnModelTextSearchPredicate ?? DEFAULT_TEXT_SEARCH_PREDICATE;
|
|
2699
|
-
}
|
|
2700
|
-
/**
|
|
2701
|
-
* Sets the predicate to use when checking if the specified row is a text match for this column.
|
|
2702
|
-
* @param predicate
|
|
2703
|
-
*/
|
|
2704
|
-
useTextSearchPredicate(predicate) {
|
|
2705
|
-
this._columnModelTextSearchPredicate = predicate;
|
|
2706
|
-
return this;
|
|
2707
|
-
}
|
|
2708
2640
|
getColumnTextProperties() {
|
|
2709
2641
|
return this._columnTextProperties || this.textPropertiesProvider();
|
|
2710
2642
|
}
|
|
@@ -2719,6 +2651,14 @@ class ColumnModel extends GarbageCollector {
|
|
|
2719
2651
|
this._columnTextProperties = columnTextProperties;
|
|
2720
2652
|
return this;
|
|
2721
2653
|
}
|
|
2654
|
+
getSearchTextFor(row) {
|
|
2655
|
+
return this.textSearchDelegate.format(row);
|
|
2656
|
+
}
|
|
2657
|
+
configureColumnTextSearch(formatter, mapper) {
|
|
2658
|
+
assert$1.notNil(formatter);
|
|
2659
|
+
console.log({ col: this.columnId, formatter });
|
|
2660
|
+
this.textSearchDelegate.setDelegate(formatter, mapper);
|
|
2661
|
+
}
|
|
2722
2662
|
configureHeaderRenderer(config) {
|
|
2723
2663
|
this._columnHeaderPortalRef = config;
|
|
2724
2664
|
}
|
|
@@ -2757,15 +2697,6 @@ class ColumnModel extends GarbageCollector {
|
|
|
2757
2697
|
onRendererAttached(host, ref) {
|
|
2758
2698
|
const component = this.getComponentOrEmbeddedView(ref);
|
|
2759
2699
|
this._cellRendererPortalRef.onPortalAttached(host, component);
|
|
2760
|
-
if (ref instanceof CellRendererPortalRef && isFunction(component?.matches)) {
|
|
2761
|
-
// we've had the case where we were calling matches on disposed components, so we have
|
|
2762
|
-
// to make sure we only handle matches on components that we can track destroys.
|
|
2763
|
-
this._cellRendererTextSearchPredicate = (row, text) => component.matches(row, text);
|
|
2764
|
-
ref.onDestroy(() => this._cellRendererTextSearchPredicate = undefined);
|
|
2765
|
-
}
|
|
2766
|
-
else {
|
|
2767
|
-
this._cellRendererTextSearchPredicate = undefined;
|
|
2768
|
-
}
|
|
2769
2700
|
}
|
|
2770
2701
|
// @Trace()
|
|
2771
2702
|
onEditorAttached(host, ref) {
|
|
@@ -2798,6 +2729,9 @@ class ColumnModel extends GarbageCollector {
|
|
|
2798
2729
|
return ref;
|
|
2799
2730
|
}
|
|
2800
2731
|
}
|
|
2732
|
+
initialise(injector) {
|
|
2733
|
+
this.textSearchDelegate.initialise(injector);
|
|
2734
|
+
}
|
|
2801
2735
|
}
|
|
2802
2736
|
__decorate([
|
|
2803
2737
|
Memoize(),
|
|
@@ -2811,143 +2745,453 @@ __decorate([
|
|
|
2811
2745
|
__metadata("design:paramtypes", []),
|
|
2812
2746
|
__metadata("design:returntype", Object)
|
|
2813
2747
|
], ColumnModel.prototype, "getColumnTextProperties", null);
|
|
2814
|
-
|
|
2815
|
-
|
|
2816
|
-
|
|
2817
|
-
|
|
2818
|
-
|
|
2819
|
-
|
|
2820
|
-
|
|
2821
|
-
|
|
2822
|
-
|
|
2823
|
-
}
|
|
2824
|
-
cellRenderer(componentType, onComponentInitOrOptions) {
|
|
2825
|
-
this.configureCellRenderer(new ComponentCellRendererPortalRef(componentType, (component, rowData, firstTime) => {
|
|
2826
|
-
if (firstTime) {
|
|
2827
|
-
if (isFunction(onComponentInitOrOptions)) {
|
|
2828
|
-
onComponentInitOrOptions(component);
|
|
2829
|
-
}
|
|
2830
|
-
else {
|
|
2831
|
-
if (isFunction(onComponentInitOrOptions?.onComponentInit)) {
|
|
2832
|
-
onComponentInitOrOptions.onComponentInit(component);
|
|
2833
|
-
}
|
|
2834
|
-
}
|
|
2835
|
-
}
|
|
2836
|
-
component.value = this._format(rowData.row[this.property]);
|
|
2837
|
-
}));
|
|
2838
|
-
return this;
|
|
2839
|
-
}
|
|
2840
|
-
liveEditCellRenderer(componentType, options) {
|
|
2841
|
-
return this.mutableCellRenderer(componentType, options);
|
|
2842
|
-
}
|
|
2843
|
-
/**
|
|
2844
|
-
* Deprecated. Use #liveEditCellRenderer instead.
|
|
2845
|
-
* @param componentType
|
|
2846
|
-
* @param options
|
|
2847
|
-
*/
|
|
2848
|
-
mutableCellRenderer(componentType, options) {
|
|
2849
|
-
this.configureCellRenderer(new ComponentCellRendererPortalRef(componentType, (component, rowData, firstTime) => {
|
|
2850
|
-
// keep a local copy most recent row value so it's available to teh
|
|
2851
|
-
// edit callback without having to add/remove subscribers all the time.
|
|
2852
|
-
component[CELL_RENDERER_COMPONENT_ROW_CACHE] = rowData.row;
|
|
2853
|
-
let disableEditCallback = false;
|
|
2854
|
-
if (firstTime) {
|
|
2855
|
-
if (isFunction(options?.onComponentInit)) {
|
|
2856
|
-
options.onComponentInit(component);
|
|
2857
|
-
}
|
|
2858
|
-
// install our edit callback
|
|
2859
|
-
component.onValueEdited((is, was) => {
|
|
2860
|
-
if (!disableEditCallback) {
|
|
2861
|
-
options.onValueEdit(component[CELL_RENDERER_COMPONENT_ROW_CACHE], is, was);
|
|
2862
|
-
}
|
|
2863
|
-
});
|
|
2864
|
-
}
|
|
2865
|
-
// now push the value the component and disable the callback just incase the component misbehaves
|
|
2866
|
-
// and fires a value change during the operation.
|
|
2867
|
-
disableEditCallback = true;
|
|
2868
|
-
component.value = rowData.row[this.property];
|
|
2869
|
-
disableEditCallback = false;
|
|
2870
|
-
if (!isFunction(options) && isFunction(options?.onRowUpdate)) {
|
|
2871
|
-
options.onRowUpdate(component, rowData.row);
|
|
2872
|
-
}
|
|
2873
|
-
}));
|
|
2874
|
-
return this;
|
|
2875
|
-
}
|
|
2876
|
-
cellEditor(editor, validatorsOrInitialiser, onComponentInit) {
|
|
2877
|
-
const validators = Array.isArray(validatorsOrInitialiser) ? validatorsOrInitialiser : undefined;
|
|
2878
|
-
const initialiser = isFunction(validatorsOrInitialiser) ? validatorsOrInitialiser : onComponentInit;
|
|
2879
|
-
this.configureCellEditor(new CellEditorPortalRef(editor, (component, editSession) => {
|
|
2880
|
-
const formValueModel = editSession.form.pluck(this.property);
|
|
2881
|
-
if (validators) {
|
|
2882
|
-
formValueModel.validateUsing(validators);
|
|
2883
|
-
}
|
|
2884
|
-
component.valueModel = formValueModel;
|
|
2885
|
-
if (initialiser) {
|
|
2886
|
-
initialiser(component);
|
|
2887
|
-
}
|
|
2888
|
-
}));
|
|
2889
|
-
return this;
|
|
2748
|
+
(function (ColumnModel) {
|
|
2749
|
+
ColumnModel.CELL_RENDERER_COMPONENT_ROW_CACHE = Symbol('aup-cell-renderer:row-data-cache');
|
|
2750
|
+
})(ColumnModel || (ColumnModel = {}));
|
|
2751
|
+
|
|
2752
|
+
class CustomTemplateColumnModel extends ColumnModel {
|
|
2753
|
+
constructor(columnId, defaults) {
|
|
2754
|
+
super(columnId, defaults);
|
|
2755
|
+
this.config = new TemplateCellRendererPortalRef();
|
|
2756
|
+
this.configureCellRenderer(this.config);
|
|
2890
2757
|
}
|
|
2891
|
-
|
|
2892
|
-
|
|
2893
|
-
this._format = formatter;
|
|
2894
|
-
return this;
|
|
2758
|
+
setTemplate(templateRef, viewContainer, fillCell, padChild) {
|
|
2759
|
+
this.config.registerPortal(templateRef, viewContainer, fillCell, padChild);
|
|
2895
2760
|
}
|
|
2896
2761
|
selectRowOnClick(selectOnRowClick) {
|
|
2897
2762
|
return this._selectRowOnClick(selectOnRowClick);
|
|
2898
2763
|
}
|
|
2899
2764
|
}
|
|
2900
|
-
|
|
2901
|
-
|
|
2902
|
-
|
|
2903
|
-
|
|
2904
|
-
|
|
2905
|
-
|
|
2906
|
-
|
|
2907
|
-
|
|
2908
|
-
|
|
2909
|
-
|
|
2910
|
-
|
|
2911
|
-
|
|
2912
|
-
|
|
2913
|
-
|
|
2914
|
-
|
|
2915
|
-
|
|
2916
|
-
|
|
2917
|
-
|
|
2918
|
-
|
|
2919
|
-
|
|
2920
|
-
|
|
2921
|
-
|
|
2922
|
-
|
|
2923
|
-
|
|
2924
|
-
|
|
2925
|
-
|
|
2926
|
-
|
|
2927
|
-
|
|
2928
|
-
|
|
2929
|
-
|
|
2930
|
-
|
|
2931
|
-
|
|
2932
|
-
|
|
2933
|
-
|
|
2934
|
-
|
|
2935
|
-
|
|
2936
|
-
|
|
2937
|
-
|
|
2938
|
-
|
|
2939
|
-
|
|
2940
|
-
|
|
2941
|
-
|
|
2942
|
-
|
|
2943
|
-
|
|
2944
|
-
|
|
2945
|
-
|
|
2765
|
+
|
|
2766
|
+
/**
|
|
2767
|
+
* Create your model:
|
|
2768
|
+
* @example
|
|
2769
|
+
* this.heroTableModel = new TableModel(heroList, table => {
|
|
2770
|
+
* table.pluck("firstName");
|
|
2771
|
+
* table.pluck("lastName");
|
|
2772
|
+
* table.addCustomColumn("fullName", hero => `${hero.firstName} ${hero.lastName}`);
|
|
2773
|
+
* });
|
|
2774
|
+
*
|
|
2775
|
+
* Create your table
|
|
2776
|
+
* @example
|
|
2777
|
+
* <aup-table [tableModel]="heroTableModel"></aup-table>
|
|
2778
|
+
*
|
|
2779
|
+
* Column templates
|
|
2780
|
+
* @example
|
|
2781
|
+
* this.heroTableModel = new TableModel(heroList, table => {
|
|
2782
|
+
* table.pluck("firstName");
|
|
2783
|
+
* table.pluck("lastName");
|
|
2784
|
+
* table.addTemplateColumn("specialColumn");
|
|
2785
|
+
* });
|
|
2786
|
+
* <aup-table [tableModel]="heroTableModel">
|
|
2787
|
+
* <div *aupColumnTemplate="let hero; columnId: 'specialColumn'; fillCell: true; padChild:false">
|
|
2788
|
+
* {{hero.name}}
|
|
2789
|
+
* </div>
|
|
2790
|
+
* </aup-table>
|
|
2791
|
+
*
|
|
2792
|
+
* Styling
|
|
2793
|
+
* @example
|
|
2794
|
+
* // global settings
|
|
2795
|
+
* :root {
|
|
2796
|
+
* --aup-table-column-gap: 10px; // defaults to 24px
|
|
2797
|
+
* --aup-table-row-hover-background-color, rgba(0, 0, 0, 0.05)
|
|
2798
|
+
* --aup-table-row-selected-background-color: rebeccapurple; // defaults to transparent
|
|
2799
|
+
* --aup-table-first-column-padding-left: 18px // defaults to --column-gap
|
|
2800
|
+
* --aup-table-last-column-padding-right: 18px // defaults to --column-gap
|
|
2801
|
+
* }
|
|
2802
|
+
*
|
|
2803
|
+
* // per table settings.
|
|
2804
|
+
* aup-table {
|
|
2805
|
+
* --column-gap: 10px; // defaults to 24px
|
|
2806
|
+
* --row-hover-background-color, rgba(0, 0, 0, 0.05)
|
|
2807
|
+
* --row-selected-background-color: rebeccapurple; // defaults to transparent
|
|
2808
|
+
* --first-column-padding-left: 18px // defaults to --column-gap
|
|
2809
|
+
* --last-column-padding-right: 18px // defaults to --column-gap
|
|
2810
|
+
*
|
|
2811
|
+
* aup-table-header-cell-renderer,
|
|
2812
|
+
* aup-table-cell-renderer {
|
|
2813
|
+
* &.aup-col-my-dasherised-column-id {
|
|
2814
|
+
* // do stuff
|
|
2815
|
+
* }
|
|
2816
|
+
* &.first-visible-column {
|
|
2817
|
+
* // do stuff
|
|
2818
|
+
* }
|
|
2819
|
+
* &.last-visible-column {
|
|
2820
|
+
* // do stuff
|
|
2821
|
+
* }
|
|
2822
|
+
* }
|
|
2823
|
+
* }
|
|
2824
|
+
*/
|
|
2825
|
+
class AbstractTableComponent extends ResizeAwareComponent {
|
|
2826
|
+
constructor(elementRef, ngZone, injector) {
|
|
2827
|
+
super(elementRef, ngZone);
|
|
2828
|
+
this.injector = injector;
|
|
2829
|
+
/**
|
|
2830
|
+
* Set to true to enable scrolling. Once enabled the table will have 0 implicit height. You will either
|
|
2831
|
+
* need to set it explicitly e.g. height: 400px; or by using flex or grid layout to make it fill it's
|
|
2832
|
+
* containment area.
|
|
2833
|
+
*/
|
|
2834
|
+
this.enableScrolling = false;
|
|
2835
|
+
// TODO: support user defined header and row heights via css vars.
|
|
2836
|
+
this.headerHeight = new MutableValueModel(56);
|
|
2837
|
+
this.rowHeight = new MutableValueModel(48);
|
|
2838
|
+
this.baseCssClass = 'aup-table-component';
|
|
2839
|
+
const { chain, when } = Dsl.disposeWith(this);
|
|
2840
|
+
const actualHeaderHeight = chain(this.showHeaderModel).map(show => {
|
|
2841
|
+
return show ? this.headerHeight.value : 0;
|
|
2842
|
+
}, { dependsOn: this.headerHeight });
|
|
2843
|
+
this.visibleRowCount = chain(this.boundsModel).map(bounds => {
|
|
2844
|
+
// TODO: this doesn't take into account any css styling adjustments etc. Will investigate if it's an issue.
|
|
2845
|
+
const rawRowCount = (bounds.height - actualHeaderHeight.value) / this.rowHeight.value;
|
|
2846
|
+
return rawRowCount < 1 ? 0 : Math.floor(rawRowCount);
|
|
2847
|
+
}, {
|
|
2848
|
+
dependsOn: [actualHeaderHeight, this.rowHeight],
|
|
2849
|
+
postponeWhile: chain(this.boundsModel).pluckNumeric('height').isLessThan(1)
|
|
2850
|
+
});
|
|
2851
|
+
}
|
|
2852
|
+
get hideHeader() {
|
|
2853
|
+
return !this.showHeader;
|
|
2854
|
+
}
|
|
2855
|
+
getModel() {
|
|
2856
|
+
return lang$1.abstractMethod(this.constructor);
|
|
2857
|
+
}
|
|
2858
|
+
ngOnInit() {
|
|
2859
|
+
const { chain, valueOf, before, when, after, observe, switchOn } = Dsl.disposeWith(this);
|
|
2860
|
+
this.getModel().initialise(this.injector);
|
|
2861
|
+
this.columns = chain(this.getModel().columns);
|
|
2862
|
+
this.columnIds = chain(this.columns).pluck('columnId');
|
|
2863
|
+
this.columnsById = chain(this.columns).indexBy('columnId');
|
|
2864
|
+
}
|
|
2865
|
+
isEditing(row) {
|
|
2866
|
+
return !!this.getModel().getEditSessionFor(row);
|
|
2867
|
+
}
|
|
2868
|
+
registerColumnTemplate(columnId, templateRef, viewContainer, fillCell, padChild) {
|
|
2869
|
+
const column = this.columnsById.get(columnId);
|
|
2870
|
+
if (column instanceof CustomTemplateColumnModel) {
|
|
2871
|
+
column.setTemplate(templateRef, viewContainer, fillCell, padChild);
|
|
2872
|
+
}
|
|
2873
|
+
}
|
|
2874
|
+
notifyCellClicked(columnModel, row) {
|
|
2875
|
+
this.getModel()._notifyCellClicked(columnModel, row);
|
|
2876
|
+
}
|
|
2877
|
+
// @Trace()
|
|
2878
|
+
isFirstVisibleColumn(columnId) {
|
|
2879
|
+
return this.getModel().firstVisibleColumn$.query().value?.columnId === columnId;
|
|
2880
|
+
}
|
|
2881
|
+
// @Trace()
|
|
2882
|
+
isLastVisibleColumn(columnId) {
|
|
2883
|
+
return this.getModel().lastVisibleColumn$.query().value?.columnId === columnId;
|
|
2884
|
+
}
|
|
2885
|
+
getColumnClasses(columnId) {
|
|
2886
|
+
const classes = [`aup-col-${this.columnsById.get(columnId).dasherisedColumnId}`];
|
|
2887
|
+
if (this.isFirstVisibleColumn(columnId)) {
|
|
2888
|
+
classes.push('first-visible-column');
|
|
2889
|
+
}
|
|
2890
|
+
if (this.isLastVisibleColumn(columnId)) {
|
|
2891
|
+
classes.push('last-visible-column');
|
|
2892
|
+
}
|
|
2893
|
+
return classes;
|
|
2894
|
+
}
|
|
2895
|
+
}
|
|
2896
|
+
AbstractTableComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.3", ngImport: i0, type: AbstractTableComponent, deps: [{ token: i0.ElementRef }, { token: i0.NgZone }, { token: i0.Injector }], target: i0.ɵɵFactoryTarget.Component });
|
|
2897
|
+
AbstractTableComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.2.3", type: AbstractTableComponent, selector: "aup-abstract-table", inputs: { showHeaderModel: "showHeaderModel", showHeader: "showHeader", enableScrolling: "enableScrolling" }, host: { properties: { "class.enable-scrolling": "this.enableScrolling", "class": "this.baseCssClass", "class.hide-header": "this.hideHeader" } }, usesInheritance: true, ngImport: i0, template: '', isInline: true });
|
|
2898
|
+
__decorate([
|
|
2899
|
+
TrackExternal({ defaultValue: true }),
|
|
2900
|
+
__metadata("design:type", ValueModel)
|
|
2901
|
+
], AbstractTableComponent.prototype, "showHeaderModel", void 0);
|
|
2902
|
+
__decorate([
|
|
2903
|
+
StoreInValueModel('showHeaderModel'),
|
|
2904
|
+
__metadata("design:type", Boolean)
|
|
2905
|
+
], AbstractTableComponent.prototype, "showHeader", void 0);
|
|
2906
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.3", ngImport: i0, type: AbstractTableComponent, decorators: [{
|
|
2907
|
+
type: Component,
|
|
2908
|
+
args: [{
|
|
2909
|
+
selector: 'aup-abstract-table',
|
|
2910
|
+
template: ''
|
|
2911
|
+
}]
|
|
2912
|
+
}], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i0.NgZone }, { type: i0.Injector }]; }, propDecorators: { showHeaderModel: [{
|
|
2913
|
+
type: Input
|
|
2914
|
+
}], showHeader: [{
|
|
2915
|
+
type: Input
|
|
2916
|
+
}], enableScrolling: [{
|
|
2917
|
+
type: Input
|
|
2918
|
+
}, {
|
|
2919
|
+
type: HostBinding,
|
|
2920
|
+
args: ['class.enable-scrolling']
|
|
2921
|
+
}], baseCssClass: [{
|
|
2922
|
+
type: HostBinding,
|
|
2923
|
+
args: ['class']
|
|
2924
|
+
}], hideHeader: [{
|
|
2925
|
+
type: HostBinding,
|
|
2926
|
+
args: ['class.hide-header']
|
|
2927
|
+
}] } });
|
|
2928
|
+
|
|
2929
|
+
class ColumnTemplateDirective {
|
|
2930
|
+
constructor(host, templateRef, viewContainer) {
|
|
2931
|
+
this.host = host;
|
|
2932
|
+
this.templateRef = templateRef;
|
|
2933
|
+
this.viewContainer = viewContainer;
|
|
2934
|
+
this.aupColumnTemplateFillCell = false;
|
|
2935
|
+
this.aupColumnTemplateAutoPadChild = undefined;
|
|
2936
|
+
}
|
|
2937
|
+
ngOnInit() {
|
|
2938
|
+
assert.isTruthy(this.aupColumnTemplateColumnId);
|
|
2939
|
+
this.host.registerColumnTemplate(this.aupColumnTemplateColumnId, this.templateRef, this.viewContainer, this.aupColumnTemplateFillCell, this.aupColumnTemplateAutoPadChild ?? this.aupColumnTemplateFillCell);
|
|
2940
|
+
}
|
|
2941
|
+
}
|
|
2942
|
+
ColumnTemplateDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.3", ngImport: i0, type: ColumnTemplateDirective, deps: [{ token: AbstractTableComponent }, { token: i0.TemplateRef }, { token: i0.ViewContainerRef }], target: i0.ɵɵFactoryTarget.Directive });
|
|
2943
|
+
ColumnTemplateDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.2.3", type: ColumnTemplateDirective, selector: "[aupColumnTemplate]", inputs: { aupColumnTemplate: "aupColumnTemplate", aupColumnTemplateColumnId: "aupColumnTemplateColumnId", aupColumnTemplateFillCell: "aupColumnTemplateFillCell", aupColumnTemplateAutoPadChild: "aupColumnTemplateAutoPadChild" }, ngImport: i0 });
|
|
2944
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.3", ngImport: i0, type: ColumnTemplateDirective, decorators: [{
|
|
2945
|
+
type: Directive,
|
|
2946
|
+
args: [{
|
|
2947
|
+
selector: '[aupColumnTemplate]'
|
|
2948
|
+
}]
|
|
2949
|
+
}], ctorParameters: function () { return [{ type: AbstractTableComponent }, { type: i0.TemplateRef }, { type: i0.ViewContainerRef }]; }, propDecorators: { aupColumnTemplate: [{
|
|
2950
|
+
type: Input
|
|
2951
|
+
}], aupColumnTemplateColumnId: [{
|
|
2952
|
+
type: Input
|
|
2953
|
+
}], aupColumnTemplateFillCell: [{
|
|
2954
|
+
type: Input
|
|
2955
|
+
}], aupColumnTemplateAutoPadChild: [{
|
|
2956
|
+
type: Input
|
|
2957
|
+
}] } });
|
|
2958
|
+
|
|
2959
|
+
const TEXT_SEARCH_FORMATTER_KEY = `aup:table:textSearchFormatter`;
|
|
2960
|
+
const Keys = Enum("useFunction", "useInstance", "useClass");
|
|
2961
|
+
function EnableCellTextSearch(options) {
|
|
2962
|
+
assert$1.notNil(options);
|
|
2963
|
+
return (constructor) => {
|
|
2964
|
+
const klass = Klass.get(constructor);
|
|
2965
|
+
assert$1.isFalsey(klass.hasOwnMetadata(TEXT_SEARCH_FORMATTER_KEY), "class already decorated with @EnableCellTextSearch");
|
|
2966
|
+
klass.defineMetadata(TEXT_SEARCH_FORMATTER_KEY, options);
|
|
2967
|
+
};
|
|
2968
|
+
}
|
|
2969
|
+
(function (EnableCellTextSearch) {
|
|
2970
|
+
function getFormatter(renderer, useDefault) {
|
|
2971
|
+
const options = Klass.get(renderer).getMetadata(TEXT_SEARCH_FORMATTER_KEY) ?? {};
|
|
2972
|
+
if (options[Keys.useFunction]) {
|
|
2973
|
+
return ColumnTextSearchFormatter.forFormatter(options[Keys.useFunction]);
|
|
2974
|
+
}
|
|
2975
|
+
if (options[Keys.useInstance]) {
|
|
2976
|
+
return options[Keys.useInstance];
|
|
2977
|
+
}
|
|
2978
|
+
if (options[Keys.useClass]) {
|
|
2979
|
+
return new ColumnTextSearchFormatter.Delegating(options[Keys.useClass]);
|
|
2980
|
+
}
|
|
2981
|
+
return useDefault();
|
|
2982
|
+
}
|
|
2983
|
+
EnableCellTextSearch.getFormatter = getFormatter;
|
|
2984
|
+
})(EnableCellTextSearch || (EnableCellTextSearch = {}));
|
|
2985
|
+
|
|
2986
|
+
let DefaultCellRendererComponent = class DefaultCellRendererComponent {
|
|
2987
|
+
constructor() {
|
|
2988
|
+
}
|
|
2989
|
+
set value(value) {
|
|
2990
|
+
this._value = value;
|
|
2991
|
+
}
|
|
2992
|
+
get value() {
|
|
2993
|
+
return this._value;
|
|
2994
|
+
}
|
|
2995
|
+
};
|
|
2996
|
+
DefaultCellRendererComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.3", ngImport: i0, type: DefaultCellRendererComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
2997
|
+
DefaultCellRendererComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.2.3", type: DefaultCellRendererComponent, selector: "aup-default-cell-renderer", inputs: { value: "value" }, ngImport: i0, template: "<span [innerHTML]=\"value| aupHighlight\"></span>\n", styles: [""], pipes: { "aupHighlight": HighlightPipe } });
|
|
2998
|
+
DefaultCellRendererComponent = __decorate([
|
|
2999
|
+
EnableCellTextSearch({ useClass: ColumnTextSearchFormatter.DefaultValueFormatter }),
|
|
3000
|
+
__metadata("design:paramtypes", [])
|
|
3001
|
+
], DefaultCellRendererComponent);
|
|
3002
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.3", ngImport: i0, type: DefaultCellRendererComponent, decorators: [{
|
|
3003
|
+
type: Component,
|
|
3004
|
+
args: [{ selector: "aup-default-cell-renderer", template: "<span [innerHTML]=\"value| aupHighlight\"></span>\n", styles: [""] }]
|
|
3005
|
+
}], ctorParameters: function () { return []; }, propDecorators: { value: [{
|
|
3006
|
+
type: Input
|
|
3007
|
+
}] } });
|
|
3008
|
+
|
|
3009
|
+
class EditSession extends GarbageCollector {
|
|
3010
|
+
constructor(rowId, row, form, saveCommand) {
|
|
3011
|
+
super();
|
|
3012
|
+
this.rowId = rowId;
|
|
3013
|
+
this.form = form;
|
|
3014
|
+
this.saveCommand = saveCommand;
|
|
3015
|
+
this._liveRowValue$ = new MutableValueModel();
|
|
3016
|
+
this.liveRowValue$ = this._liveRowValue$.readonly;
|
|
3017
|
+
this.form.load(row);
|
|
3018
|
+
this._liveRowValue$.value = row;
|
|
3019
|
+
this.form.onEdit(() => {
|
|
3020
|
+
// if (!this._liveRowValue.value[immerable]) {
|
|
3021
|
+
// console.warn()
|
|
3022
|
+
// }
|
|
3023
|
+
this._liveRowValue$.value = produce(this._liveRowValue$.value, draft => {
|
|
3024
|
+
this.form.writeDirtyStateTo(draft);
|
|
3025
|
+
});
|
|
3026
|
+
});
|
|
3027
|
+
}
|
|
3028
|
+
}
|
|
3029
|
+
|
|
3030
|
+
class EditRowControls extends DisposableComponent {
|
|
3031
|
+
constructor() {
|
|
3032
|
+
super();
|
|
3033
|
+
this.saveCommand = Command.create(async () => {
|
|
3034
|
+
const finished = await this.editSession.saveCommand.execute();
|
|
3035
|
+
if (finished) {
|
|
3036
|
+
this.editSession.dispose();
|
|
3037
|
+
}
|
|
3038
|
+
});
|
|
3039
|
+
this.cancelCommand = Command.create(() => {
|
|
3040
|
+
this.editSession.dispose();
|
|
3041
|
+
}).disableWhile(this.saveCommand.busy);
|
|
3042
|
+
}
|
|
3043
|
+
set editSession(session) {
|
|
3044
|
+
if (session) {
|
|
3045
|
+
session.form.disableWhile(this.saveCommand.busy);
|
|
3046
|
+
}
|
|
3047
|
+
this._session = session;
|
|
3048
|
+
}
|
|
3049
|
+
get editSession() {
|
|
3050
|
+
return this._session;
|
|
3051
|
+
}
|
|
3052
|
+
ngOnInit() {
|
|
3053
|
+
}
|
|
3054
|
+
get form() {
|
|
3055
|
+
return this.editSession?.form;
|
|
3056
|
+
}
|
|
3057
|
+
}
|
|
3058
|
+
EditRowControls.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.3", ngImport: i0, type: EditRowControls, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
3059
|
+
EditRowControls.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.2.3", type: EditRowControls, selector: "aup-row-editor-controls", inputs: { row: "row", editRowCommand: "editRowCommand", editSession: "editSession" }, usesInheritance: true, ngImport: i0, template: "<button *ngIf=\"!editSession\" mat-icon-button [pectinCommand]=\"editRowCommand\" class=\"edit-button\"><aup-icon icon=\"mat:edit\"></aup-icon></button>\n<button *ngIf=\"editSession\" mat-icon-button [pectinCommand]=\"saveCommand\"><aup-icon icon=\"mat:done\"></aup-icon></button>\n<button *ngIf=\"editSession\" mat-icon-button [pectinCommand]=\"cancelCommand\"><aup-icon icon=\"mat:clear\"></aup-icon></button>\n", styles: [":host{display:block;width:80px}.edit-button{visibility:hidden}:host-context(tr:hover) .edit-button{visibility:visible}\n"], components: [{ type: i1.MatButton, selector: "button[mat-button], button[mat-raised-button], button[mat-icon-button], button[mat-fab], button[mat-mini-fab], button[mat-stroked-button], button[mat-flat-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { type: IconComponent, selector: "aup-icon", inputs: ["icon"] }], directives: [{ type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: CommandDirective, selector: "[pectinCommand]", inputs: ["pectinCommand", "commandParameter"] }] });
|
|
3060
|
+
__decorate([
|
|
3061
|
+
TrackExternal(),
|
|
3062
|
+
__metadata("design:type", Command)
|
|
3063
|
+
], EditRowControls.prototype, "editRowCommand", void 0);
|
|
3064
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.3", ngImport: i0, type: EditRowControls, decorators: [{
|
|
3065
|
+
type: Component,
|
|
3066
|
+
args: [{ selector: 'aup-row-editor-controls', template: "<button *ngIf=\"!editSession\" mat-icon-button [pectinCommand]=\"editRowCommand\" class=\"edit-button\"><aup-icon icon=\"mat:edit\"></aup-icon></button>\n<button *ngIf=\"editSession\" mat-icon-button [pectinCommand]=\"saveCommand\"><aup-icon icon=\"mat:done\"></aup-icon></button>\n<button *ngIf=\"editSession\" mat-icon-button [pectinCommand]=\"cancelCommand\"><aup-icon icon=\"mat:clear\"></aup-icon></button>\n", styles: [":host{display:block;width:80px}.edit-button{visibility:hidden}:host-context(tr:hover) .edit-button{visibility:visible}\n"] }]
|
|
3067
|
+
}], ctorParameters: function () { return []; }, propDecorators: { row: [{
|
|
3068
|
+
type: Input
|
|
3069
|
+
}], editRowCommand: [{
|
|
3070
|
+
type: Input
|
|
3071
|
+
}], editSession: [{
|
|
3072
|
+
type: Input
|
|
3073
|
+
}] } });
|
|
3074
|
+
|
|
3075
|
+
let formatter = (row) => row.map(e => e?.toString()).join(", ");
|
|
3076
|
+
let DefaultListCellRendererComponent = class DefaultListCellRendererComponent extends DisposableComponent {
|
|
3077
|
+
constructor() {
|
|
3078
|
+
super();
|
|
3079
|
+
const { chain } = Dsl.disposeWith(this);
|
|
3080
|
+
this.text$ = chain(this.value$).reduce(formatter);
|
|
3081
|
+
}
|
|
3082
|
+
};
|
|
3083
|
+
DefaultListCellRendererComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.3", ngImport: i0, type: DefaultListCellRendererComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
3084
|
+
DefaultListCellRendererComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.2.3", type: DefaultListCellRendererComponent, selector: "aup-default-list-cell-renderer", inputs: { value$: "value$", value: "value" }, usesInheritance: true, ngImport: i0, template: "<span [innerHTML]=\"text$.value| aupHighlight\"></span>\n", styles: [""], pipes: { "aupHighlight": HighlightPipe } });
|
|
3085
|
+
__decorate([
|
|
3086
|
+
TrackExternal(),
|
|
3087
|
+
__metadata("design:type", ListModel)
|
|
3088
|
+
], DefaultListCellRendererComponent.prototype, "value$", void 0);
|
|
3089
|
+
__decorate([
|
|
3090
|
+
StoreInListModel("value$"),
|
|
3091
|
+
__metadata("design:type", Array)
|
|
3092
|
+
], DefaultListCellRendererComponent.prototype, "value", void 0);
|
|
3093
|
+
DefaultListCellRendererComponent = __decorate([
|
|
3094
|
+
EnableCellTextSearch({ useClass: ColumnTextSearchFormatter.DefaultArrayFormatter }),
|
|
3095
|
+
__metadata("design:paramtypes", [])
|
|
3096
|
+
], DefaultListCellRendererComponent);
|
|
3097
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.3", ngImport: i0, type: DefaultListCellRendererComponent, decorators: [{
|
|
3098
|
+
type: Component,
|
|
3099
|
+
args: [{ selector: "aup-default-list-cell-renderer", template: "<span [innerHTML]=\"text$.value| aupHighlight\"></span>\n", styles: [""] }]
|
|
3100
|
+
}], ctorParameters: function () { return []; }, propDecorators: { value$: [{
|
|
3101
|
+
type: Input
|
|
3102
|
+
}], value: [{
|
|
3103
|
+
type: Input
|
|
3104
|
+
}] } });
|
|
3105
|
+
|
|
3106
|
+
class SelectionCellComponent extends DisposableComponent {
|
|
3107
|
+
constructor() {
|
|
3108
|
+
super();
|
|
3109
|
+
this.selectCommand = Command.create(() => {
|
|
3110
|
+
this.selectionModel?.selectCommand.execute(this.row);
|
|
3111
|
+
});
|
|
3112
|
+
}
|
|
3113
|
+
isSelected() {
|
|
3114
|
+
return this.selectionModel?.isSelected(this.row);
|
|
3115
|
+
}
|
|
3116
|
+
}
|
|
3117
|
+
SelectionCellComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.3", ngImport: i0, type: SelectionCellComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
3118
|
+
SelectionCellComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.2.3", type: SelectionCellComponent, selector: "aup-selection-cell", inputs: { row: "row" }, usesInheritance: true, ngImport: i0, template: "<mat-checkbox [pectinCommand]=\"selectCommand\" [checked]=\"isSelected()\"></mat-checkbox>\n", styles: [""], components: [{ type: i1$9.MatCheckbox, selector: "mat-checkbox", inputs: ["disableRipple", "color", "tabIndex", "aria-label", "aria-labelledby", "aria-describedby", "id", "required", "labelPosition", "name", "value", "checked", "disabled", "indeterminate"], outputs: ["change", "indeterminateChange"], exportAs: ["matCheckbox"] }], directives: [{ type: CommandDirective, selector: "[pectinCommand]", inputs: ["pectinCommand", "commandParameter"] }] });
|
|
3119
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.3", ngImport: i0, type: SelectionCellComponent, decorators: [{
|
|
3120
|
+
type: Component,
|
|
3121
|
+
args: [{ selector: 'aup-selection-cell', template: "<mat-checkbox [pectinCommand]=\"selectCommand\" [checked]=\"isSelected()\"></mat-checkbox>\n", styles: [""] }]
|
|
3122
|
+
}], ctorParameters: function () { return []; }, propDecorators: { row: [{
|
|
3123
|
+
type: Input
|
|
3124
|
+
}] } });
|
|
3125
|
+
|
|
3126
|
+
class SelectionHeaderCellComponent extends DisposableComponent {
|
|
3127
|
+
constructor() {
|
|
3128
|
+
super();
|
|
3129
|
+
this.selectCommand = Command.create(() => {
|
|
3130
|
+
this.selectionModel.toggleAllCommand.execute();
|
|
3131
|
+
});
|
|
3132
|
+
}
|
|
3133
|
+
isSelected() {
|
|
3134
|
+
return this.selectionModel?.allSelected.value || false;
|
|
3135
|
+
}
|
|
3136
|
+
isIntermediate() {
|
|
3137
|
+
return this.selectionModel?.someSelected.value || false;
|
|
3138
|
+
}
|
|
3139
|
+
isVisible() {
|
|
3140
|
+
return this.enableHeaderControls && this.selectionModel.getDelegate() instanceof MultipleSelectionModel;
|
|
3141
|
+
}
|
|
3142
|
+
}
|
|
3143
|
+
SelectionHeaderCellComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.3", ngImport: i0, type: SelectionHeaderCellComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
3144
|
+
SelectionHeaderCellComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.2.3", type: SelectionHeaderCellComponent, selector: "aup-selection-header-cell", usesInheritance: true, ngImport: i0, template: "<mat-checkbox *ngIf=\"isVisible()\" [pectinCommand]=\"selectCommand\" [checked]=\"isSelected()\" [indeterminate]=\"this.isIntermediate()\"></mat-checkbox>\n", styles: [""], components: [{ type: i1$9.MatCheckbox, selector: "mat-checkbox", inputs: ["disableRipple", "color", "tabIndex", "aria-label", "aria-labelledby", "aria-describedby", "id", "required", "labelPosition", "name", "value", "checked", "disabled", "indeterminate"], outputs: ["change", "indeterminateChange"], exportAs: ["matCheckbox"] }], directives: [{ type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: CommandDirective, selector: "[pectinCommand]", inputs: ["pectinCommand", "commandParameter"] }] });
|
|
3145
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.3", ngImport: i0, type: SelectionHeaderCellComponent, decorators: [{
|
|
3146
|
+
type: Component,
|
|
3147
|
+
args: [{ selector: 'aup-selection-header-cell', template: "<mat-checkbox *ngIf=\"isVisible()\" [pectinCommand]=\"selectCommand\" [checked]=\"isSelected()\" [indeterminate]=\"this.isIntermediate()\"></mat-checkbox>\n", styles: [""] }]
|
|
3148
|
+
}], ctorParameters: function () { return []; } });
|
|
3149
|
+
|
|
3150
|
+
class ColumnListModel extends AbstractComputedListModel {
|
|
3151
|
+
constructor() {
|
|
3152
|
+
super();
|
|
3153
|
+
this._allColumns$ = new MutableListModel();
|
|
3154
|
+
const { chain } = Dsl.disposeWith(this);
|
|
3155
|
+
this.columnsById$ = chain(this._allColumns$).indexBy('columnId');
|
|
3156
|
+
}
|
|
3157
|
+
get allColumns$() {
|
|
3158
|
+
return this._allColumns$.readonly;
|
|
3159
|
+
}
|
|
3160
|
+
getColumn(id) {
|
|
3161
|
+
return this.columnsById$.get(id);
|
|
3162
|
+
}
|
|
3163
|
+
hasColumn(id) {
|
|
3164
|
+
return !!this.columnsById$.get(id);
|
|
3165
|
+
}
|
|
3166
|
+
addColumn(column, index) {
|
|
3167
|
+
if (this.hasColumn(column.columnId)) {
|
|
3168
|
+
lang.illegalState(`Column with id=${column.columnId} already exists`);
|
|
3169
|
+
}
|
|
3170
|
+
this.registerDisposable(column);
|
|
3171
|
+
this.runInTransaction(() => {
|
|
3172
|
+
if (!isNil(index)) {
|
|
3173
|
+
this._allColumns$.insert(index, column);
|
|
3174
|
+
}
|
|
3175
|
+
else {
|
|
3176
|
+
this._allColumns$.push(column);
|
|
3177
|
+
}
|
|
3178
|
+
this.registerDisposable(this.trackSource(column.visible$));
|
|
3179
|
+
});
|
|
3180
|
+
return column;
|
|
3181
|
+
}
|
|
3182
|
+
doComputeValue() {
|
|
3183
|
+
return this._allColumns$.value.filter(c => c.visible$.value);
|
|
3184
|
+
}
|
|
3185
|
+
}
|
|
3186
|
+
|
|
3187
|
+
class CustomValueColumnModel extends ColumnModel {
|
|
3188
|
+
constructor(columnId, defaults, getValue) {
|
|
2946
3189
|
super(columnId, defaults);
|
|
2947
3190
|
this.getValue = getValue;
|
|
2948
3191
|
this.cellRenderer(DefaultCellRendererComponent);
|
|
2949
3192
|
}
|
|
2950
3193
|
cellRenderer(componentType, onComponentInitOrOptions) {
|
|
3194
|
+
this.configureColumnTextSearch(EnableCellTextSearch.getFormatter(componentType, () => new ColumnTextSearchFormatter.Null()), row => this.getValue(row));
|
|
2951
3195
|
this.configureCellRenderer(new ComponentCellRendererPortalRef(componentType, (component, rowData, firstTime) => {
|
|
2952
3196
|
if (firstTime) {
|
|
2953
3197
|
if (isFunction(onComponentInitOrOptions)) {
|
|
@@ -2970,6 +3214,7 @@ class CustomValueColumnModel extends ColumnModel {
|
|
|
2970
3214
|
return this._selectRowOnClick(selectOnRowClick);
|
|
2971
3215
|
}
|
|
2972
3216
|
}
|
|
3217
|
+
|
|
2973
3218
|
class EditorControlColumnModel extends ColumnModel {
|
|
2974
3219
|
constructor(columnId, saveCommandFactory, defaults) {
|
|
2975
3220
|
super(columnId, defaults);
|
|
@@ -2983,34 +3228,148 @@ class EditorControlColumnModel extends ColumnModel {
|
|
|
2983
3228
|
}));
|
|
2984
3229
|
return this;
|
|
2985
3230
|
}
|
|
2986
|
-
getDefaultHeaderText() {
|
|
2987
|
-
return '';
|
|
2988
|
-
}
|
|
2989
|
-
}
|
|
2990
|
-
|
|
2991
|
-
|
|
2992
|
-
|
|
2993
|
-
|
|
2994
|
-
this.
|
|
2995
|
-
|
|
2996
|
-
|
|
2997
|
-
|
|
3231
|
+
getDefaultHeaderText() {
|
|
3232
|
+
return '';
|
|
3233
|
+
}
|
|
3234
|
+
}
|
|
3235
|
+
|
|
3236
|
+
class ListPropertyColumnModel extends ColumnModel {
|
|
3237
|
+
constructor(id, property, defaults) {
|
|
3238
|
+
super(id, defaults);
|
|
3239
|
+
this.property = property;
|
|
3240
|
+
this._format = (value) => value.map(v => v?.toString()).join(", ");
|
|
3241
|
+
this.cellRenderer(DefaultListCellRendererComponent);
|
|
3242
|
+
}
|
|
3243
|
+
cellRenderer(componentType) {
|
|
3244
|
+
this.configureColumnTextSearch(EnableCellTextSearch.getFormatter(componentType, () => new ColumnTextSearchFormatter.DefaultArrayFormatter()), row => row[this.property]);
|
|
3245
|
+
this.configureCellRenderer(new ComponentCellRendererPortalRef(componentType, (component, rowData) => {
|
|
3246
|
+
let rowElement = rowData.row[this.property];
|
|
3247
|
+
// @ts-ignore Started complaining in ts 4.5.. but I think my logic is correct...
|
|
3248
|
+
component.value = this._format(rowElement);
|
|
3249
|
+
}));
|
|
3250
|
+
return this;
|
|
3251
|
+
}
|
|
3252
|
+
cellEditor(editor, validatorsOrInitialiser, initialiseComponent) {
|
|
3253
|
+
const validators = Array.isArray(validatorsOrInitialiser) ? validatorsOrInitialiser : undefined;
|
|
3254
|
+
const initialiser = isFunction(validatorsOrInitialiser) ? validatorsOrInitialiser : initialiseComponent;
|
|
3255
|
+
this.configureCellEditor(new CellEditorPortalRef(editor, (component, editSession) => {
|
|
3256
|
+
const formListModel = editSession.form.pluckList(this.property);
|
|
3257
|
+
if (validators) {
|
|
3258
|
+
formListModel.validateUsing(validators);
|
|
3259
|
+
}
|
|
3260
|
+
component.listModel = formListModel;
|
|
3261
|
+
if (initialiser) {
|
|
3262
|
+
initialiser(component);
|
|
3263
|
+
}
|
|
3264
|
+
}));
|
|
3265
|
+
return this;
|
|
3266
|
+
}
|
|
3267
|
+
format(formatter) {
|
|
3268
|
+
assert$1.isFunction(formatter);
|
|
3269
|
+
this._format = formatter;
|
|
3270
|
+
return this;
|
|
3271
|
+
}
|
|
3272
|
+
selectRowOnClick(selectRowOnClick) {
|
|
3273
|
+
return this._selectRowOnClick(selectRowOnClick);
|
|
3274
|
+
}
|
|
3275
|
+
}
|
|
3276
|
+
|
|
3277
|
+
class PropertyColumnModel extends ColumnModel {
|
|
3278
|
+
constructor(id, property, defaults) {
|
|
3279
|
+
super(id, defaults);
|
|
3280
|
+
this.property = property;
|
|
3281
|
+
this._format = (value) => value?.toString();
|
|
3282
|
+
this.cellRenderer(DefaultCellRendererComponent);
|
|
3283
|
+
}
|
|
3284
|
+
cellRenderer(componentType, onComponentInitOrOptions) {
|
|
3285
|
+
this.configureColumnTextSearch(EnableCellTextSearch.getFormatter(componentType, () => new ColumnTextSearchFormatter.DefaultValueFormatter()), row => row[this.property]);
|
|
3286
|
+
this.configureCellRenderer(new ComponentCellRendererPortalRef(componentType, (component, rowData, firstTime) => {
|
|
3287
|
+
if (firstTime) {
|
|
3288
|
+
if (isFunction(onComponentInitOrOptions)) {
|
|
3289
|
+
onComponentInitOrOptions(component);
|
|
3290
|
+
}
|
|
3291
|
+
else {
|
|
3292
|
+
if (isFunction(onComponentInitOrOptions?.onComponentInit)) {
|
|
3293
|
+
onComponentInitOrOptions.onComponentInit(component);
|
|
3294
|
+
}
|
|
3295
|
+
}
|
|
3296
|
+
}
|
|
3297
|
+
component.value = this._format(rowData.row[this.property]);
|
|
3298
|
+
}));
|
|
3299
|
+
return this;
|
|
3300
|
+
}
|
|
3301
|
+
liveEditCellRenderer(componentType, options) {
|
|
3302
|
+
return this.mutableCellRenderer(componentType, options);
|
|
3303
|
+
}
|
|
3304
|
+
/**
|
|
3305
|
+
* Deprecated. Use #liveEditCellRenderer instead.
|
|
3306
|
+
* @param componentType
|
|
3307
|
+
* @param options
|
|
3308
|
+
*/
|
|
3309
|
+
mutableCellRenderer(componentType, options) {
|
|
3310
|
+
this.configureCellRenderer(new ComponentCellRendererPortalRef(componentType, (component, rowData, firstTime) => {
|
|
3311
|
+
// keep a local copy most recent row value so it's available to teh
|
|
3312
|
+
// edit callback without having to add/remove subscribers all the time.
|
|
3313
|
+
component[ColumnModel.CELL_RENDERER_COMPONENT_ROW_CACHE] = rowData.row;
|
|
3314
|
+
let disableEditCallback = false;
|
|
3315
|
+
if (firstTime) {
|
|
3316
|
+
if (isFunction(options?.onComponentInit)) {
|
|
3317
|
+
options.onComponentInit(component);
|
|
3318
|
+
}
|
|
3319
|
+
// install our edit callback
|
|
3320
|
+
component.onValueEdited((is, was) => {
|
|
3321
|
+
if (!disableEditCallback) {
|
|
3322
|
+
options.onValueEdit(component[ColumnModel.CELL_RENDERER_COMPONENT_ROW_CACHE], is, was);
|
|
3323
|
+
}
|
|
3324
|
+
});
|
|
3325
|
+
}
|
|
3326
|
+
// now push the value the component and disable the callback just incase the component misbehaves
|
|
3327
|
+
// and fires a value change during the operation.
|
|
3328
|
+
disableEditCallback = true;
|
|
3329
|
+
component.value = rowData.row[this.property];
|
|
3330
|
+
disableEditCallback = false;
|
|
3331
|
+
if (!isFunction(options) && isFunction(options?.onRowUpdate)) {
|
|
3332
|
+
options.onRowUpdate(component, rowData.row);
|
|
3333
|
+
}
|
|
3334
|
+
}));
|
|
3335
|
+
return this;
|
|
3336
|
+
}
|
|
3337
|
+
cellEditor(editor, validatorsOrInitialiser, onComponentInit) {
|
|
3338
|
+
const validators = Array.isArray(validatorsOrInitialiser) ? validatorsOrInitialiser : undefined;
|
|
3339
|
+
const initialiser = isFunction(validatorsOrInitialiser) ? validatorsOrInitialiser : onComponentInit;
|
|
3340
|
+
this.configureCellEditor(new CellEditorPortalRef(editor, (component, editSession) => {
|
|
3341
|
+
const formValueModel = editSession.form.pluck(this.property);
|
|
3342
|
+
if (validators) {
|
|
3343
|
+
formValueModel.validateUsing(validators);
|
|
3344
|
+
}
|
|
3345
|
+
component.valueModel = formValueModel;
|
|
3346
|
+
if (initialiser) {
|
|
3347
|
+
initialiser(component);
|
|
3348
|
+
}
|
|
3349
|
+
}));
|
|
3350
|
+
return this;
|
|
3351
|
+
}
|
|
3352
|
+
format(formatter) {
|
|
3353
|
+
assert$1.isFunction(formatter);
|
|
3354
|
+
this._format = formatter;
|
|
3355
|
+
return this;
|
|
2998
3356
|
}
|
|
2999
3357
|
selectRowOnClick(selectOnRowClick) {
|
|
3000
3358
|
return this._selectRowOnClick(selectOnRowClick);
|
|
3001
3359
|
}
|
|
3002
3360
|
}
|
|
3361
|
+
|
|
3003
3362
|
class SelectionColumnModel extends ColumnModel {
|
|
3004
3363
|
constructor(columnId, defaults, selectionModel) {
|
|
3005
3364
|
super(columnId, defaults);
|
|
3006
3365
|
this._enableHeaderControls = true;
|
|
3007
3366
|
this.selectionModel = DelegatingSelectionModel.createDelegate();
|
|
3008
3367
|
this._selectRowOnClick(false);
|
|
3009
|
-
this.cellHeaderRenderer(
|
|
3368
|
+
this.cellHeaderRenderer(SelectionHeaderCellComponent, (component) => {
|
|
3010
3369
|
component.selectionModel = this.selectionModel;
|
|
3011
3370
|
component.enableHeaderControls = this._enableHeaderControls;
|
|
3012
3371
|
});
|
|
3013
|
-
this.configureCellRenderer(new ComponentCellRendererPortalRef(
|
|
3372
|
+
this.configureCellRenderer(new ComponentCellRendererPortalRef(SelectionCellComponent, (component, rowData) => {
|
|
3014
3373
|
component.row = rowData.row;
|
|
3015
3374
|
component.selectionModel = this.selectionModel;
|
|
3016
3375
|
}));
|
|
@@ -3035,234 +3394,8 @@ class SelectionColumnModel extends ColumnModel {
|
|
|
3035
3394
|
}
|
|
3036
3395
|
}
|
|
3037
3396
|
|
|
3038
|
-
|
|
3039
|
-
|
|
3040
|
-
* @example
|
|
3041
|
-
* this.heroTableModel = TableModel.fromList(heroList, table => {
|
|
3042
|
-
* table.pluck("firstName");
|
|
3043
|
-
* table.pluck("lastName");
|
|
3044
|
-
* table.addCustomColumn("fullName", hero => `${hero.firstName} ${hero.lastName}`);
|
|
3045
|
-
* });
|
|
3046
|
-
*
|
|
3047
|
-
* Create your table
|
|
3048
|
-
* @example
|
|
3049
|
-
* <aup-table [tableModel]="heroTableModel"></aup-table>
|
|
3050
|
-
*
|
|
3051
|
-
* Column templates
|
|
3052
|
-
* @example
|
|
3053
|
-
* this.heroTableModel = TableModel.fromList(heroList, table => {
|
|
3054
|
-
* table.pluck("firstName");
|
|
3055
|
-
* table.pluck("lastName");
|
|
3056
|
-
* table.addTemplateColumn("specialColumn");
|
|
3057
|
-
* });
|
|
3058
|
-
* <aup-table [tableModel]="heroTableModel">
|
|
3059
|
-
* <div *aupColumnTemplate="let hero; columnId: 'specialColumn'; fillCell: true; padChild:false">
|
|
3060
|
-
* {{hero.name}}
|
|
3061
|
-
* </div>
|
|
3062
|
-
* </aup-table>
|
|
3063
|
-
*
|
|
3064
|
-
* Styling
|
|
3065
|
-
* @example
|
|
3066
|
-
* // global settings
|
|
3067
|
-
* :root {
|
|
3068
|
-
* --aup-table-column-gap: 10px; // defaults to 24px
|
|
3069
|
-
* --aup-table-row-hover-background-color, rgba(0, 0, 0, 0.05)
|
|
3070
|
-
* --aup-table-row-selected-background-color: rebeccapurple; // defaults to transparent
|
|
3071
|
-
* --aup-table-first-column-padding-left: 18px // defaults to --column-gap
|
|
3072
|
-
* --aup-table-last-column-padding-right: 18px // defaults to --column-gap
|
|
3073
|
-
* }
|
|
3074
|
-
*
|
|
3075
|
-
* // per table settings.
|
|
3076
|
-
* aup-table {
|
|
3077
|
-
* --column-gap: 10px; // defaults to 24px
|
|
3078
|
-
* --row-hover-background-color, rgba(0, 0, 0, 0.05)
|
|
3079
|
-
* --row-selected-background-color: rebeccapurple; // defaults to transparent
|
|
3080
|
-
* --first-column-padding-left: 18px // defaults to --column-gap
|
|
3081
|
-
* --last-column-padding-right: 18px // defaults to --column-gap
|
|
3082
|
-
*
|
|
3083
|
-
* aup-table-header-cell-renderer,
|
|
3084
|
-
* aup-table-cell-renderer {
|
|
3085
|
-
* &.aup-col-my-dasherised-column-id {
|
|
3086
|
-
* // do stuff
|
|
3087
|
-
* }
|
|
3088
|
-
* &.first-visible-column {
|
|
3089
|
-
* // do stuff
|
|
3090
|
-
* }
|
|
3091
|
-
* &.last-visible-column {
|
|
3092
|
-
* // do stuff
|
|
3093
|
-
* }
|
|
3094
|
-
* }
|
|
3095
|
-
* }
|
|
3096
|
-
*/
|
|
3097
|
-
class AbstractTableComponent extends ResizeAwareComponent {
|
|
3098
|
-
constructor(elementRef, ngZone) {
|
|
3099
|
-
super(elementRef, ngZone);
|
|
3100
|
-
/**
|
|
3101
|
-
* Set to true to enable scrolling. Once enabled the table will have 0 implicit height. You will either
|
|
3102
|
-
* need to set it explicitly e.g. height: 400px; or by using flex or grid layout to make it fill it's
|
|
3103
|
-
* containment area.
|
|
3104
|
-
*/
|
|
3105
|
-
this.enableScrolling = false;
|
|
3106
|
-
// TODO: support user defined header and row heights via css vars.
|
|
3107
|
-
this.headerHeight = new MutableValueModel(56);
|
|
3108
|
-
this.rowHeight = new MutableValueModel(48);
|
|
3109
|
-
this.baseCssClass = 'aup-table-component';
|
|
3110
|
-
const { chain, when } = Dsl.disposeWith(this);
|
|
3111
|
-
const actualHeaderHeight = chain(this.showHeaderModel).map(show => {
|
|
3112
|
-
return show ? this.headerHeight.value : 0;
|
|
3113
|
-
}, { dependsOn: this.headerHeight });
|
|
3114
|
-
this.visibleRowCount = chain(this.boundsModel).map(bounds => {
|
|
3115
|
-
// TODO: this doesn't take into account any css styling adjustments etc. Will investigate if it's an issue.
|
|
3116
|
-
const rawRowCount = (bounds.height - actualHeaderHeight.value) / this.rowHeight.value;
|
|
3117
|
-
return rawRowCount < 1 ? 0 : Math.floor(rawRowCount);
|
|
3118
|
-
}, {
|
|
3119
|
-
dependsOn: [actualHeaderHeight, this.rowHeight],
|
|
3120
|
-
postponeWhile: chain(this.boundsModel).pluckNumeric('height').isLessThan(1)
|
|
3121
|
-
});
|
|
3122
|
-
}
|
|
3123
|
-
get hideHeader() {
|
|
3124
|
-
return !this.showHeader;
|
|
3125
|
-
}
|
|
3126
|
-
getModel() {
|
|
3127
|
-
return lang$1.abstractMethod(this.constructor);
|
|
3128
|
-
}
|
|
3129
|
-
ngOnInit() {
|
|
3130
|
-
const { chain, valueOf, before, when, after, observe, switchOn } = Dsl.disposeWith(this);
|
|
3131
|
-
this.columns = chain(this.getModel().columns);
|
|
3132
|
-
this.columnIds = chain(this.columns).pluck('columnId');
|
|
3133
|
-
this.columnsById = chain(this.columns).indexBy('columnId');
|
|
3134
|
-
}
|
|
3135
|
-
isEditing(row) {
|
|
3136
|
-
return !!this.getModel().getEditSessionFor(row);
|
|
3137
|
-
}
|
|
3138
|
-
registerColumnTemplate(columnId, templateRef, viewContainer, fillCell, padChild) {
|
|
3139
|
-
const column = this.columnsById.get(columnId);
|
|
3140
|
-
if (column instanceof CustomTemplateColumnModel) {
|
|
3141
|
-
column.setTemplate(templateRef, viewContainer, fillCell, padChild);
|
|
3142
|
-
}
|
|
3143
|
-
}
|
|
3144
|
-
notifyCellClicked(columnModel, row) {
|
|
3145
|
-
this.getModel()._notifyCellClicked(columnModel, row);
|
|
3146
|
-
}
|
|
3147
|
-
// @Trace()
|
|
3148
|
-
isFirstVisibleColumn(columnId) {
|
|
3149
|
-
return this.getModel().firstVisibleColumn.query().value?.columnId === columnId;
|
|
3150
|
-
}
|
|
3151
|
-
// @Trace()
|
|
3152
|
-
isLastVisibleColumn(columnId) {
|
|
3153
|
-
return this.getModel().lastVisibleColumn.query().value?.columnId === columnId;
|
|
3154
|
-
}
|
|
3155
|
-
getColumnClasses(columnId) {
|
|
3156
|
-
const classes = [`aup-col-${this.columnsById.get(columnId).dasherisedColumnId}`];
|
|
3157
|
-
if (this.isFirstVisibleColumn(columnId)) {
|
|
3158
|
-
classes.push('first-visible-column');
|
|
3159
|
-
}
|
|
3160
|
-
if (this.isLastVisibleColumn(columnId)) {
|
|
3161
|
-
classes.push('last-visible-column');
|
|
3162
|
-
}
|
|
3163
|
-
return classes;
|
|
3164
|
-
}
|
|
3165
|
-
}
|
|
3166
|
-
AbstractTableComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.3", ngImport: i0, type: AbstractTableComponent, deps: [{ token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
|
|
3167
|
-
AbstractTableComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.2.3", type: AbstractTableComponent, selector: "aup-abstract-table", inputs: { showHeaderModel: "showHeaderModel", showHeader: "showHeader", enableScrolling: "enableScrolling" }, host: { properties: { "class.enable-scrolling": "this.enableScrolling", "class": "this.baseCssClass", "class.hide-header": "this.hideHeader" } }, usesInheritance: true, ngImport: i0, template: '', isInline: true });
|
|
3168
|
-
__decorate([
|
|
3169
|
-
TrackExternal({ defaultValue: true }),
|
|
3170
|
-
__metadata("design:type", ValueModel)
|
|
3171
|
-
], AbstractTableComponent.prototype, "showHeaderModel", void 0);
|
|
3172
|
-
__decorate([
|
|
3173
|
-
StoreInValueModel('showHeaderModel'),
|
|
3174
|
-
__metadata("design:type", Boolean)
|
|
3175
|
-
], AbstractTableComponent.prototype, "showHeader", void 0);
|
|
3176
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.3", ngImport: i0, type: AbstractTableComponent, decorators: [{
|
|
3177
|
-
type: Component,
|
|
3178
|
-
args: [{
|
|
3179
|
-
selector: 'aup-abstract-table',
|
|
3180
|
-
template: ''
|
|
3181
|
-
}]
|
|
3182
|
-
}], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i0.NgZone }]; }, propDecorators: { showHeaderModel: [{
|
|
3183
|
-
type: Input
|
|
3184
|
-
}], showHeader: [{
|
|
3185
|
-
type: Input
|
|
3186
|
-
}], enableScrolling: [{
|
|
3187
|
-
type: Input
|
|
3188
|
-
}, {
|
|
3189
|
-
type: HostBinding,
|
|
3190
|
-
args: ['class.enable-scrolling']
|
|
3191
|
-
}], baseCssClass: [{
|
|
3192
|
-
type: HostBinding,
|
|
3193
|
-
args: ['class']
|
|
3194
|
-
}], hideHeader: [{
|
|
3195
|
-
type: HostBinding,
|
|
3196
|
-
args: ['class.hide-header']
|
|
3197
|
-
}] } });
|
|
3198
|
-
|
|
3199
|
-
class ColumnTemplateDirective {
|
|
3200
|
-
constructor(host, templateRef, viewContainer) {
|
|
3201
|
-
this.host = host;
|
|
3202
|
-
this.templateRef = templateRef;
|
|
3203
|
-
this.viewContainer = viewContainer;
|
|
3204
|
-
this.aupColumnTemplateFillCell = false;
|
|
3205
|
-
this.aupColumnTemplateAutoPadChild = undefined;
|
|
3206
|
-
}
|
|
3207
|
-
ngOnInit() {
|
|
3208
|
-
assert.isTruthy(this.aupColumnTemplateColumnId);
|
|
3209
|
-
this.host.registerColumnTemplate(this.aupColumnTemplateColumnId, this.templateRef, this.viewContainer, this.aupColumnTemplateFillCell, this.aupColumnTemplateAutoPadChild ?? this.aupColumnTemplateFillCell);
|
|
3210
|
-
}
|
|
3211
|
-
}
|
|
3212
|
-
ColumnTemplateDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.3", ngImport: i0, type: ColumnTemplateDirective, deps: [{ token: AbstractTableComponent }, { token: i0.TemplateRef }, { token: i0.ViewContainerRef }], target: i0.ɵɵFactoryTarget.Directive });
|
|
3213
|
-
ColumnTemplateDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.2.3", type: ColumnTemplateDirective, selector: "[aupColumnTemplate]", inputs: { aupColumnTemplate: "aupColumnTemplate", aupColumnTemplateColumnId: "aupColumnTemplateColumnId", aupColumnTemplateFillCell: "aupColumnTemplateFillCell", aupColumnTemplateAutoPadChild: "aupColumnTemplateAutoPadChild" }, ngImport: i0 });
|
|
3214
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.3", ngImport: i0, type: ColumnTemplateDirective, decorators: [{
|
|
3215
|
-
type: Directive,
|
|
3216
|
-
args: [{
|
|
3217
|
-
selector: '[aupColumnTemplate]'
|
|
3218
|
-
}]
|
|
3219
|
-
}], ctorParameters: function () { return [{ type: AbstractTableComponent }, { type: i0.TemplateRef }, { type: i0.ViewContainerRef }]; }, propDecorators: { aupColumnTemplate: [{
|
|
3220
|
-
type: Input
|
|
3221
|
-
}], aupColumnTemplateColumnId: [{
|
|
3222
|
-
type: Input
|
|
3223
|
-
}], aupColumnTemplateFillCell: [{
|
|
3224
|
-
type: Input
|
|
3225
|
-
}], aupColumnTemplateAutoPadChild: [{
|
|
3226
|
-
type: Input
|
|
3227
|
-
}] } });
|
|
3228
|
-
|
|
3229
|
-
class ColumnListModel extends AbstractComputedListModel {
|
|
3230
|
-
constructor() {
|
|
3231
|
-
super();
|
|
3232
|
-
this._allColumns = new MutableListModel();
|
|
3233
|
-
const { chain } = Dsl.disposeWith(this);
|
|
3234
|
-
this.columnsById = chain(this._allColumns).indexBy('columnId');
|
|
3235
|
-
}
|
|
3236
|
-
get allColumns() {
|
|
3237
|
-
return this._allColumns.readonly;
|
|
3238
|
-
}
|
|
3239
|
-
getColumn(id) {
|
|
3240
|
-
return this.columnsById.get(id);
|
|
3241
|
-
}
|
|
3242
|
-
hasColumn(id) {
|
|
3243
|
-
return !!this.columnsById.get(id);
|
|
3244
|
-
}
|
|
3245
|
-
addColumn(column, index) {
|
|
3246
|
-
if (this.hasColumn(column.columnId)) {
|
|
3247
|
-
lang.illegalState(`Column with id=${column.columnId} already exists`);
|
|
3248
|
-
}
|
|
3249
|
-
this.registerDisposable(column);
|
|
3250
|
-
this.runInTransaction(() => {
|
|
3251
|
-
if (!isNil(index)) {
|
|
3252
|
-
this._allColumns.insert(index, column);
|
|
3253
|
-
}
|
|
3254
|
-
else {
|
|
3255
|
-
this._allColumns.push(column);
|
|
3256
|
-
}
|
|
3257
|
-
this.registerDisposable(this.trackSource(column.visible));
|
|
3258
|
-
});
|
|
3259
|
-
return column;
|
|
3260
|
-
}
|
|
3261
|
-
doComputeValue() {
|
|
3262
|
-
return this._allColumns.value.filter(c => c.visible.value);
|
|
3263
|
-
}
|
|
3264
|
-
}
|
|
3265
|
-
|
|
3397
|
+
var DefaultValueFormatter = ColumnTextSearchFormatter.DefaultValueFormatter;
|
|
3398
|
+
var DefaultArrayFormatter = ColumnTextSearchFormatter.DefaultArrayFormatter;
|
|
3266
3399
|
// export type StringPropertiesOf<T> = { [K in keyof T]: T[K] extends string ? K : never }[keyof T];
|
|
3267
3400
|
// export type NumberPropertiesOf<T> = { [K in keyof T]: T[K] extends number ? K : never }[keyof T];
|
|
3268
3401
|
class RowClass {
|
|
@@ -3279,39 +3412,69 @@ class AbstractTableModel extends GarbageCollector {
|
|
|
3279
3412
|
this._editorSessions = new MutableListModel();
|
|
3280
3413
|
this.rowClassNamePredicates = [];
|
|
3281
3414
|
this.rowClickListeners = new EventListenerList();
|
|
3415
|
+
this._searchText$ = new DelegatingValueModel();
|
|
3282
3416
|
this._createForm = (row) => new DirtyTrackingForm();
|
|
3283
3417
|
this.trackBy = (index, item) => {
|
|
3284
3418
|
return this.identityOf ? this.identityOf(item) : index;
|
|
3285
3419
|
};
|
|
3286
3420
|
const { chain, valueOf, before, when, after, observe, switchOn } = Dsl.disposeWith(this);
|
|
3287
|
-
this._rowsBeingEdited = new MutableListModel([], {
|
|
3421
|
+
this._rowsBeingEdited$ = new MutableListModel([], {
|
|
3288
3422
|
identifiedWith: row => this.identityOf(row)
|
|
3289
3423
|
});
|
|
3290
|
-
this._editorSessionByRowId = chain(this._editorSessions).indexBy(
|
|
3291
|
-
this.editing = chain(this._editorSessions).count().isGreaterThan(0);
|
|
3292
|
-
this.
|
|
3293
|
-
|
|
3294
|
-
|
|
3295
|
-
|
|
3296
|
-
|
|
3424
|
+
this._editorSessionByRowId = chain(this._editorSessions).indexBy("rowId");
|
|
3425
|
+
this.editing$ = chain(this._editorSessions).count().isGreaterThan(0);
|
|
3426
|
+
this._textSearchPredicate$ = chain(this._searchText$).map(text => {
|
|
3427
|
+
return _.isEmpty(text) ? Functions.identity : (rows) => {
|
|
3428
|
+
const regex = new RegExp(escapeStringRegexp(text), "i");
|
|
3429
|
+
return rows.filter(row => this.hasMatchingColumn(row, regex));
|
|
3430
|
+
};
|
|
3431
|
+
}, {
|
|
3432
|
+
allowNil: true,
|
|
3433
|
+
dependsOn: this.columns
|
|
3434
|
+
});
|
|
3435
|
+
this.dataSource = chain(this._dataSource)
|
|
3436
|
+
.reduceToList(items => this._textSearchPredicate$.value(items), {
|
|
3437
|
+
dependsOn: this._textSearchPredicate$
|
|
3438
|
+
})
|
|
3439
|
+
.replaceAll(this.rowsBeingEdited$);
|
|
3440
|
+
this.firstEditableColumn$ = chain(this.columns).select(c => c.hasEditorPortal()).first();
|
|
3441
|
+
this.firstVisibleColumn$ = chain(this._columnList).first();
|
|
3442
|
+
this.lastVisibleColumn$ = chain(this._columnList).last();
|
|
3443
|
+
this.rowSelectionDisabledOnAllColumns$ = chain(this._columnList).select(column => column.isRowSelectionEnabled()).count().equals(0);
|
|
3297
3444
|
}
|
|
3298
3445
|
findMatchingColumns(row, regex) {
|
|
3299
|
-
return this.columns.value.filter(c => c.
|
|
3446
|
+
return this.columns.value.filter(c => regex.test(c.getSearchTextFor(row)));
|
|
3300
3447
|
}
|
|
3448
|
+
// @Trace()
|
|
3301
3449
|
hasMatchingColumn(row, regex) {
|
|
3302
|
-
return !!this.columns.value.find(c => c.
|
|
3450
|
+
return !!this.columns.value.find(c => regex.test(c.getSearchTextFor(row)));
|
|
3451
|
+
}
|
|
3452
|
+
initialise(injector) {
|
|
3453
|
+
// not sure if I should define these at the module level or not...
|
|
3454
|
+
const customInjector = Injector.create({
|
|
3455
|
+
providers: [
|
|
3456
|
+
{ provide: DefaultValueFormatter },
|
|
3457
|
+
{ provide: DefaultArrayFormatter }
|
|
3458
|
+
],
|
|
3459
|
+
parent: injector
|
|
3460
|
+
});
|
|
3461
|
+
this.columns.value.forEach(c => c.initialise(customInjector));
|
|
3303
3462
|
}
|
|
3304
3463
|
setDataSource(sourceOfTruth) {
|
|
3305
3464
|
this._dataSource.setDelegate(sourceOfTruth);
|
|
3306
3465
|
}
|
|
3466
|
+
setTextSearch(searchText$, throttleDelayMilliseconds = 100) {
|
|
3467
|
+
const { chain } = Dsl.disposeWith(this);
|
|
3468
|
+
this._searchText$.setDelegate(chain(searchText$).throttle(throttleDelayMilliseconds));
|
|
3469
|
+
}
|
|
3307
3470
|
identityOf(row) {
|
|
3308
3471
|
return this._dataSource.identityOf(row);
|
|
3309
3472
|
}
|
|
3310
|
-
get rowsBeingEdited() {
|
|
3311
|
-
return this._rowsBeingEdited
|
|
3473
|
+
get rowsBeingEdited$() {
|
|
3474
|
+
return this._rowsBeingEdited$.readonly;
|
|
3312
3475
|
}
|
|
3313
3476
|
get columns() {
|
|
3314
|
-
return this._columnList.allColumns
|
|
3477
|
+
return this._columnList.allColumns$;
|
|
3315
3478
|
}
|
|
3316
3479
|
get visibleColumns() {
|
|
3317
3480
|
return this._columnList.readonly;
|
|
@@ -3326,9 +3489,9 @@ class AbstractTableModel extends GarbageCollector {
|
|
|
3326
3489
|
}
|
|
3327
3490
|
_addSelectionColumn(selectionModel, visible) {
|
|
3328
3491
|
assert.isNil(this.selectionColumnModel);
|
|
3329
|
-
const columnId =
|
|
3492
|
+
const columnId = "selection-column";
|
|
3330
3493
|
this.selectionColumnModel = new SelectionColumnModel(columnId, () => this.getColumnTextProperties(columnId), selectionModel);
|
|
3331
|
-
this.addRowClass(
|
|
3494
|
+
this.addRowClass("aup-row-selected", row => this.selectionColumnModel.isSelected(row));
|
|
3332
3495
|
const selectionColumnModel = this.addColumn(this.selectionColumnModel, 0);
|
|
3333
3496
|
if (!isNil(visible)) {
|
|
3334
3497
|
selectionColumnModel.visibleWhile(visible instanceof ValueModel ? visible : ValueModel.constant(visible));
|
|
@@ -3340,7 +3503,7 @@ class AbstractTableModel extends GarbageCollector {
|
|
|
3340
3503
|
if (isFunction(formFactory)) {
|
|
3341
3504
|
this._createForm = formFactory;
|
|
3342
3505
|
}
|
|
3343
|
-
const columnId =
|
|
3506
|
+
const columnId = "editControls";
|
|
3344
3507
|
return this.addColumn(new EditorControlColumnModel(columnId, saveCommandFactory, () => this.getColumnTextProperties(columnId)));
|
|
3345
3508
|
}
|
|
3346
3509
|
addCustomColumn(columnId, dataAccessor) {
|
|
@@ -3382,7 +3545,7 @@ class AbstractTableModel extends GarbageCollector {
|
|
|
3382
3545
|
}
|
|
3383
3546
|
startEditSession(row) {
|
|
3384
3547
|
const rowId = this.identityOf(row);
|
|
3385
|
-
if (this._rowsBeingEdited
|
|
3548
|
+
if (this._rowsBeingEdited$.query().indexOf(row) > -1) {
|
|
3386
3549
|
return lang.illegalState(`Row with id=${rowId} already being edited`);
|
|
3387
3550
|
}
|
|
3388
3551
|
// todo: pass the factories to the edit session so we can make the whole lot pluggable?
|
|
@@ -3390,12 +3553,12 @@ class AbstractTableModel extends GarbageCollector {
|
|
|
3390
3553
|
const saveCommand = this.saveCommandFactory.create(form);
|
|
3391
3554
|
const editSession = new EditSession(rowId, row, form, saveCommand);
|
|
3392
3555
|
const { when } = Dsl.disposeWith(editSession);
|
|
3393
|
-
when(editSession.liveRowValue).changes((editedValue) => {
|
|
3394
|
-
this._rowsBeingEdited
|
|
3395
|
-
}, { initialValue:
|
|
3556
|
+
when(editSession.liveRowValue$).changes((editedValue) => {
|
|
3557
|
+
this._rowsBeingEdited$.replaceOrPush(editedValue);
|
|
3558
|
+
}, { initialValue: "triggerChangeUnlessNil" });
|
|
3396
3559
|
this._editorSessions.push(editSession);
|
|
3397
3560
|
editSession.onDispose(() => {
|
|
3398
|
-
this._rowsBeingEdited
|
|
3561
|
+
this._rowsBeingEdited$.remove(editSession.liveRowValue$.value);
|
|
3399
3562
|
this._editorSessions.remove(editSession);
|
|
3400
3563
|
});
|
|
3401
3564
|
return editSession;
|
|
@@ -3405,7 +3568,7 @@ class AbstractTableModel extends GarbageCollector {
|
|
|
3405
3568
|
}
|
|
3406
3569
|
cancelAllEditorSessions() {
|
|
3407
3570
|
this._editorSessions.runInTransaction((draft) => {
|
|
3408
|
-
this._rowsBeingEdited
|
|
3571
|
+
this._rowsBeingEdited$.runInTransaction(() => {
|
|
3409
3572
|
draft.value.forEach(session => session.dispose());
|
|
3410
3573
|
});
|
|
3411
3574
|
});
|
|
@@ -3414,7 +3577,7 @@ class AbstractTableModel extends GarbageCollector {
|
|
|
3414
3577
|
return this.isRowSelectionEnabled() && column.isRowSelectionEnabled();
|
|
3415
3578
|
}
|
|
3416
3579
|
isRowSelectionEnabled() {
|
|
3417
|
-
return this.hasUserSelectionModel() && !this.rowSelectionDisabledOnAllColumns
|
|
3580
|
+
return this.hasUserSelectionModel() && !this.rowSelectionDisabledOnAllColumns$.value;
|
|
3418
3581
|
}
|
|
3419
3582
|
hasUserSelectionModel() {
|
|
3420
3583
|
return !!this.selectionColumnModel?.selectionModel.getDelegate();
|
|
@@ -3443,7 +3606,7 @@ class AbstractTableModel extends GarbageCollector {
|
|
|
3443
3606
|
}
|
|
3444
3607
|
TrackExternal.oneTimeBinding(AbstractTableModel);
|
|
3445
3608
|
|
|
3446
|
-
class
|
|
3609
|
+
class TableCellComponent extends DisposableComponent {
|
|
3447
3610
|
constructor() {
|
|
3448
3611
|
super();
|
|
3449
3612
|
this.defaultClassNames = 'aup-cell-renderer';
|
|
@@ -3455,7 +3618,7 @@ class TableCellRendererComponent extends DisposableComponent {
|
|
|
3455
3618
|
}
|
|
3456
3619
|
ngOnInit() {
|
|
3457
3620
|
const { chain, valueOf, before, when, after, observe, switchOn } = Dsl.disposeWith(this);
|
|
3458
|
-
this.firstEditableColumn = chain(this.tableModel.firstEditableColumn).equals(this.column); // this would break if the column changed.
|
|
3621
|
+
this.firstEditableColumn = chain(this.tableModel.firstEditableColumn$).equals(this.column); // this would break if the column changed.
|
|
3459
3622
|
this.column.attachCell(this);
|
|
3460
3623
|
}
|
|
3461
3624
|
hasActiveEditor() {
|
|
@@ -3502,11 +3665,11 @@ class TableCellRendererComponent extends DisposableComponent {
|
|
|
3502
3665
|
};
|
|
3503
3666
|
}
|
|
3504
3667
|
}
|
|
3505
|
-
|
|
3506
|
-
|
|
3507
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.3", ngImport: i0, type:
|
|
3668
|
+
TableCellComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.3", ngImport: i0, type: TableCellComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
3669
|
+
TableCellComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.2.3", type: TableCellComponent, selector: "aup-table-cell", inputs: { row: "row", column: "column", editSession: "editSession", tableModel: "tableModel" }, host: { properties: { "class": "this.defaultClassNames", "class.fillCell": "this.fillCell", "class.padChild": "this.padChild" } }, usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "<ng-container *ngIf=\"!hasActiveEditor()\" [cdkPortalOutlet]=\"getRendererPortal()\" (attached)=\"initialiseRenderer($event)\"></ng-container>\n<ng-container *ngIf=\"hasActiveEditor()\" [cdkPortalOutlet]=\"getEditorPortal()\" (attached)=\"initialiseEditor($event)\"></ng-container>\n", styles: [""], directives: [{ type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i2$4.CdkPortalOutlet, selector: "[cdkPortalOutlet]", inputs: ["cdkPortalOutlet"], outputs: ["attached"], exportAs: ["cdkPortalOutlet"] }] });
|
|
3670
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.3", ngImport: i0, type: TableCellComponent, decorators: [{
|
|
3508
3671
|
type: Component,
|
|
3509
|
-
args: [{ selector: 'aup-table-cell
|
|
3672
|
+
args: [{ selector: 'aup-table-cell', template: "<ng-container *ngIf=\"!hasActiveEditor()\" [cdkPortalOutlet]=\"getRendererPortal()\" (attached)=\"initialiseRenderer($event)\"></ng-container>\n<ng-container *ngIf=\"hasActiveEditor()\" [cdkPortalOutlet]=\"getEditorPortal()\" (attached)=\"initialiseEditor($event)\"></ng-container>\n", styles: [""] }]
|
|
3510
3673
|
}], ctorParameters: function () { return []; }, propDecorators: { row: [{
|
|
3511
3674
|
type: Input
|
|
3512
3675
|
}], column: [{
|
|
@@ -3526,7 +3689,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.3", ngImpor
|
|
|
3526
3689
|
args: ['class.padChild']
|
|
3527
3690
|
}] } });
|
|
3528
3691
|
|
|
3529
|
-
class
|
|
3692
|
+
class TableHeaderCellComponent {
|
|
3530
3693
|
constructor() {
|
|
3531
3694
|
this.defaultClassNames = 'aup-header-cell-renderer';
|
|
3532
3695
|
}
|
|
@@ -3541,11 +3704,11 @@ class TableHeaderCellRendererComponent {
|
|
|
3541
3704
|
return this[HEADER_CELL_RENDERER_PORTAL];
|
|
3542
3705
|
}
|
|
3543
3706
|
}
|
|
3544
|
-
|
|
3545
|
-
|
|
3546
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.3", ngImport: i0, type:
|
|
3707
|
+
TableHeaderCellComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.3", ngImport: i0, type: TableHeaderCellComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
3708
|
+
TableHeaderCellComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.2.3", type: TableHeaderCellComponent, selector: "aup-table-header-cell", inputs: { column: "column" }, host: { properties: { "class": "this.defaultClassNames" } }, ngImport: i0, template: "<ng-container [cdkPortalOutlet]=\"getPortal()\" (attached)=\"initialiseHeader($event)\"></ng-container>\n", styles: [":host{display:flex;flex-direction:column;align-items:stretch;justify-content:center;height:100%}\n"], directives: [{ type: i2$4.CdkPortalOutlet, selector: "[cdkPortalOutlet]", inputs: ["cdkPortalOutlet"], outputs: ["attached"], exportAs: ["cdkPortalOutlet"] }] });
|
|
3709
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.3", ngImport: i0, type: TableHeaderCellComponent, decorators: [{
|
|
3547
3710
|
type: Component,
|
|
3548
|
-
args: [{ selector: 'aup-table-header-cell
|
|
3711
|
+
args: [{ selector: 'aup-table-header-cell', template: "<ng-container [cdkPortalOutlet]=\"getPortal()\" (attached)=\"initialiseHeader($event)\"></ng-container>\n", styles: [":host{display:flex;flex-direction:column;align-items:stretch;justify-content:center;height:100%}\n"] }]
|
|
3549
3712
|
}], ctorParameters: function () { return []; }, propDecorators: { column: [{
|
|
3550
3713
|
type: Input
|
|
3551
3714
|
}], defaultClassNames: [{
|
|
@@ -3631,7 +3794,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.3", ngImpor
|
|
|
3631
3794
|
/**
|
|
3632
3795
|
* Create your model:
|
|
3633
3796
|
* @example
|
|
3634
|
-
* this.heroTableModel = TableModel
|
|
3797
|
+
* this.heroTableModel = new TableModel(heroList, table => {
|
|
3635
3798
|
* table.pluck("firstName");
|
|
3636
3799
|
* table.pluck("lastName");
|
|
3637
3800
|
* table.addCustomColumn("fullName", hero => `${hero.firstName} ${hero.lastName}`);
|
|
@@ -3643,7 +3806,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.3", ngImpor
|
|
|
3643
3806
|
*
|
|
3644
3807
|
* Column templates
|
|
3645
3808
|
* @example
|
|
3646
|
-
* this.heroTableModel = TableModel
|
|
3809
|
+
* this.heroTableModel = new TableModel(heroList, table => {
|
|
3647
3810
|
* table.pluck("firstName");
|
|
3648
3811
|
* table.pluck("lastName");
|
|
3649
3812
|
* table.addTemplateColumn("specialColumn");
|
|
@@ -3689,17 +3852,17 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.3", ngImpor
|
|
|
3689
3852
|
* }
|
|
3690
3853
|
*/
|
|
3691
3854
|
class TableComponent extends AbstractTableComponent {
|
|
3692
|
-
constructor(elementRef, ngZone) {
|
|
3693
|
-
super(elementRef, ngZone);
|
|
3855
|
+
constructor(elementRef, ngZone, injector) {
|
|
3856
|
+
super(elementRef, ngZone, injector);
|
|
3694
3857
|
}
|
|
3695
3858
|
getModel() {
|
|
3696
3859
|
return this.tableModel;
|
|
3697
3860
|
}
|
|
3698
3861
|
}
|
|
3699
|
-
TableComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.3", ngImport: i0, type: TableComponent, deps: [{ token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
|
|
3862
|
+
TableComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.3", ngImport: i0, type: TableComponent, deps: [{ token: i0.ElementRef }, { token: i0.NgZone }, { token: i0.Injector }], target: i0.ɵɵFactoryTarget.Component });
|
|
3700
3863
|
TableComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.2.3", type: TableComponent, selector: "aup-table", inputs: { tableModel: "tableModel" }, providers: [
|
|
3701
3864
|
{ provide: AbstractTableComponent, useExisting: TableComponent }
|
|
3702
|
-
], usesInheritance: true, ngImport: i0, template: "<div class=\"scroll-container\">\n <table mat-table [dataSource]=\"getModel().dataSource.value\" [trackBy]=\"getModel().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
|
|
3865
|
+
], usesInheritance: true, ngImport: i0, template: "<div class=\"scroll-container\">\n <table mat-table [dataSource]=\"getModel().dataSource.value\" [trackBy]=\"getModel().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]=\"getModel().isCursorEnabled(column)\"\n [class.flex]=\"column.isFlex()\"\n [class.hide]=\"!column.isVisible()\"\n >\n <aup-table-cell [column]=\"column\"\n [row]=\"row\"\n [tableModel]=\"getModel()\"\n [editSession]=\"getModel().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\"></tr>\n <tr mat-row *matRowDef=\"let row; columns: columnIds.value; let i = index\"\n [ngClass]=\"getModel().getRowClasses(row)\" [class.enable-hover]=\"getModel().isHoverEnabled()\"\n [attr.aup-row-id]=\"getModel().trackBy(i, row)\"\n ></tr>\n\n </table>\n</div>\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"], components: [{ type: i1$b.MatTable, selector: "mat-table, table[mat-table]", exportAs: ["matTable"] }, { type: TableHeaderCellComponent, selector: "aup-table-header-cell", inputs: ["column"] }, { type: TableCellComponent, selector: "aup-table-cell", inputs: ["row", "column", "editSession", "tableModel"] }, { type: i1$b.MatHeaderRow, selector: "mat-header-row, tr[mat-header-row]", exportAs: ["matHeaderRow"] }, { type: i1$b.MatRow, selector: "mat-row, tr[mat-row]", exportAs: ["matRow"] }], directives: [{ type: i4.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i1$b.MatColumnDef, selector: "[matColumnDef]", inputs: ["sticky", "matColumnDef"] }, { type: i1$b.MatHeaderCellDef, selector: "[matHeaderCellDef]" }, { type: i1$b.MatHeaderCell, selector: "mat-header-cell, th[mat-header-cell]" }, { type: i1$b.MatCellDef, selector: "[matCellDef]" }, { type: i1$b.MatCell, selector: "mat-cell, td[mat-cell]" }, { type: i1$b.MatHeaderRowDef, selector: "[matHeaderRowDef]", inputs: ["matHeaderRowDef", "matHeaderRowDefSticky"] }, { type: i1$b.MatRowDef, selector: "[matRowDef]", inputs: ["matRowDefColumns", "matRowDefWhen"] }, { type: i4.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }] });
|
|
3703
3866
|
__decorate([
|
|
3704
3867
|
TrackExternal(),
|
|
3705
3868
|
__metadata("design:type", AbstractTableModel)
|
|
@@ -3708,8 +3871,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.3", ngImpor
|
|
|
3708
3871
|
type: Component,
|
|
3709
3872
|
args: [{ selector: 'aup-table', providers: [
|
|
3710
3873
|
{ provide: AbstractTableComponent, useExisting: TableComponent }
|
|
3711
|
-
], template: "<div class=\"scroll-container\">\n <table mat-table [dataSource]=\"getModel().dataSource.value\" [trackBy]=\"getModel().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
|
|
3712
|
-
}], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i0.NgZone }]; }, propDecorators: { tableModel: [{
|
|
3874
|
+
], template: "<div class=\"scroll-container\">\n <table mat-table [dataSource]=\"getModel().dataSource.value\" [trackBy]=\"getModel().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]=\"getModel().isCursorEnabled(column)\"\n [class.flex]=\"column.isFlex()\"\n [class.hide]=\"!column.isVisible()\"\n >\n <aup-table-cell [column]=\"column\"\n [row]=\"row\"\n [tableModel]=\"getModel()\"\n [editSession]=\"getModel().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\"></tr>\n <tr mat-row *matRowDef=\"let row; columns: columnIds.value; let i = index\"\n [ngClass]=\"getModel().getRowClasses(row)\" [class.enable-hover]=\"getModel().isHoverEnabled()\"\n [attr.aup-row-id]=\"getModel().trackBy(i, row)\"\n ></tr>\n\n </table>\n</div>\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"] }]
|
|
3875
|
+
}], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i0.NgZone }, { type: i0.Injector }]; }, propDecorators: { tableModel: [{
|
|
3713
3876
|
type: Input
|
|
3714
3877
|
}] } });
|
|
3715
3878
|
|
|
@@ -4288,17 +4451,17 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.3", ngImpor
|
|
|
4288
4451
|
* }
|
|
4289
4452
|
*/
|
|
4290
4453
|
class TreeTableComponent extends AbstractTableComponent {
|
|
4291
|
-
constructor(elementRef, ngZone) {
|
|
4292
|
-
super(elementRef, ngZone);
|
|
4454
|
+
constructor(elementRef, ngZone, injector) {
|
|
4455
|
+
super(elementRef, ngZone, injector);
|
|
4293
4456
|
}
|
|
4294
4457
|
getModel() {
|
|
4295
4458
|
return this.treeTableModel;
|
|
4296
4459
|
}
|
|
4297
4460
|
}
|
|
4298
|
-
TreeTableComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.3", ngImport: i0, type: TreeTableComponent, deps: [{ token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
|
|
4461
|
+
TreeTableComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.3", ngImport: i0, type: TreeTableComponent, deps: [{ token: i0.ElementRef }, { token: i0.NgZone }, { token: i0.Injector }], target: i0.ɵɵFactoryTarget.Component });
|
|
4299
4462
|
TreeTableComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.2.3", type: TreeTableComponent, selector: "aup-tree-table", inputs: { treeTableModel: "treeTableModel" }, providers: [
|
|
4300
4463
|
{ provide: AbstractTableComponent, useExisting: TreeTableComponent }
|
|
4301
|
-
], usesInheritance: true, ngImport: i0, template: "<div class=\"scroll-container\">\n <table mat-table [dataSource]=\"getModel().dataSource.value\" [trackBy]=\"getModel().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
|
|
4464
|
+
], usesInheritance: true, ngImport: i0, template: "<div class=\"scroll-container\">\n <table mat-table [dataSource]=\"getModel().dataSource.value\" [trackBy]=\"getModel().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]=\"getModel().isCursorEnabled(column)\"\n [class.flex]=\"column.isFlex()\"\n [class.hide]=\"!column.isVisible()\"\n >\n <aup-table-cell [column]=\"column\"\n [row]=\"row\"\n [tableModel]=\"getModel()\"\n [editSession]=\"getModel().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\"></tr>\n <tr mat-row *matRowDef=\"let row; columns: columnIds.value; let i = index\"\n [ngClass]=\"getModel().getRowClasses(row)\" [class.enable-hover]=\"getModel().isHoverEnabled()\"\n [attr.aup-row-id]=\"getModel().trackBy(i, row)\"\n ></tr>\n\n </table>\n</div>\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", "td.mat-cell{border-top-width:0!important;border-bottom-width:0!important}td.mat-column-tree-label,td.mat-column-tree-label{width:1px}aup-table-cell-renderer[column-id=tree-label]{padding-left:8px!important}aup-tree-label-cell-renderer{flex:1}\n"], components: [{ type: i1$b.MatTable, selector: "mat-table, table[mat-table]", exportAs: ["matTable"] }, { type: TableHeaderCellComponent, selector: "aup-table-header-cell", inputs: ["column"] }, { type: TableCellComponent, selector: "aup-table-cell", inputs: ["row", "column", "editSession", "tableModel"] }, { type: i1$b.MatHeaderRow, selector: "mat-header-row, tr[mat-header-row]", exportAs: ["matHeaderRow"] }, { type: i1$b.MatRow, selector: "mat-row, tr[mat-row]", exportAs: ["matRow"] }], directives: [{ type: i4.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i1$b.MatColumnDef, selector: "[matColumnDef]", inputs: ["sticky", "matColumnDef"] }, { type: i1$b.MatHeaderCellDef, selector: "[matHeaderCellDef]" }, { type: i1$b.MatHeaderCell, selector: "mat-header-cell, th[mat-header-cell]" }, { type: i1$b.MatCellDef, selector: "[matCellDef]" }, { type: i1$b.MatCell, selector: "mat-cell, td[mat-cell]" }, { type: i1$b.MatHeaderRowDef, selector: "[matHeaderRowDef]", inputs: ["matHeaderRowDef", "matHeaderRowDefSticky"] }, { type: i1$b.MatRowDef, selector: "[matRowDef]", inputs: ["matRowDefColumns", "matRowDefWhen"] }, { type: i4.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }] });
|
|
4302
4465
|
__decorate([
|
|
4303
4466
|
TrackExternal(),
|
|
4304
4467
|
__metadata("design:type", TreeTableModel)
|
|
@@ -4307,8 +4470,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.3", ngImpor
|
|
|
4307
4470
|
type: Component,
|
|
4308
4471
|
args: [{ selector: 'aup-tree-table', providers: [
|
|
4309
4472
|
{ provide: AbstractTableComponent, useExisting: TreeTableComponent }
|
|
4310
|
-
], template: "<div class=\"scroll-container\">\n <table mat-table [dataSource]=\"getModel().dataSource.value\" [trackBy]=\"getModel().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
|
|
4311
|
-
}], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i0.NgZone }]; }, propDecorators: { treeTableModel: [{
|
|
4473
|
+
], template: "<div class=\"scroll-container\">\n <table mat-table [dataSource]=\"getModel().dataSource.value\" [trackBy]=\"getModel().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]=\"getModel().isCursorEnabled(column)\"\n [class.flex]=\"column.isFlex()\"\n [class.hide]=\"!column.isVisible()\"\n >\n <aup-table-cell [column]=\"column\"\n [row]=\"row\"\n [tableModel]=\"getModel()\"\n [editSession]=\"getModel().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\"></tr>\n <tr mat-row *matRowDef=\"let row; columns: columnIds.value; let i = index\"\n [ngClass]=\"getModel().getRowClasses(row)\" [class.enable-hover]=\"getModel().isHoverEnabled()\"\n [attr.aup-row-id]=\"getModel().trackBy(i, row)\"\n ></tr>\n\n </table>\n</div>\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", "td.mat-cell{border-top-width:0!important;border-bottom-width:0!important}td.mat-column-tree-label,td.mat-column-tree-label{width:1px}aup-table-cell-renderer[column-id=tree-label]{padding-left:8px!important}aup-tree-label-cell-renderer{flex:1}\n"] }]
|
|
4474
|
+
}], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i0.NgZone }, { type: i0.Injector }]; }, propDecorators: { treeTableModel: [{
|
|
4312
4475
|
type: Input
|
|
4313
4476
|
}] } });
|
|
4314
4477
|
|
|
@@ -4532,11 +4695,12 @@ ComponentsModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", versio
|
|
|
4532
4695
|
EditRowControls,
|
|
4533
4696
|
ColumnTemplateDirective,
|
|
4534
4697
|
DefaultCellRendererComponent,
|
|
4535
|
-
|
|
4536
|
-
|
|
4537
|
-
|
|
4698
|
+
DefaultListCellRendererComponent,
|
|
4699
|
+
TableCellComponent,
|
|
4700
|
+
SelectionCellComponent,
|
|
4701
|
+
SelectionHeaderCellComponent,
|
|
4538
4702
|
DefaultHeaderCellRendererComponent,
|
|
4539
|
-
|
|
4703
|
+
TableHeaderCellComponent,
|
|
4540
4704
|
IconComponent,
|
|
4541
4705
|
SectionHeaderComponent,
|
|
4542
4706
|
TableRowMenuComponent,
|
|
@@ -4695,11 +4859,12 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.3", ngImpor
|
|
|
4695
4859
|
EditRowControls,
|
|
4696
4860
|
ColumnTemplateDirective,
|
|
4697
4861
|
DefaultCellRendererComponent,
|
|
4698
|
-
|
|
4699
|
-
|
|
4700
|
-
|
|
4862
|
+
DefaultListCellRendererComponent,
|
|
4863
|
+
TableCellComponent,
|
|
4864
|
+
SelectionCellComponent,
|
|
4865
|
+
SelectionHeaderCellComponent,
|
|
4701
4866
|
DefaultHeaderCellRendererComponent,
|
|
4702
|
-
|
|
4867
|
+
TableHeaderCellComponent,
|
|
4703
4868
|
IconComponent,
|
|
4704
4869
|
SectionHeaderComponent,
|
|
4705
4870
|
TableRowMenuComponent,
|
|
@@ -8045,14 +8210,6 @@ class TableModel extends AbstractTableModel {
|
|
|
8045
8210
|
}
|
|
8046
8211
|
this.setDataSource(sourceOfTruth);
|
|
8047
8212
|
}
|
|
8048
|
-
/**
|
|
8049
|
-
* @deprecated use new TableModel(sourceOfTruth, table => {...}); instead.
|
|
8050
|
-
* @param sourceOfTruth
|
|
8051
|
-
* @param builder
|
|
8052
|
-
*/
|
|
8053
|
-
static fromList(sourceOfTruth, builder) {
|
|
8054
|
-
return new TableModel(sourceOfTruth, builder);
|
|
8055
|
-
}
|
|
8056
8213
|
addSelectionColumn(selectionModel, showSelectionColumn) {
|
|
8057
8214
|
return this._addSelectionColumn(selectionModel, showSelectionColumn);
|
|
8058
8215
|
}
|
|
@@ -9994,5 +10151,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.3", ngImpor
|
|
|
9994
10151
|
* Generated bundle index. Do not edit.
|
|
9995
10152
|
*/
|
|
9996
10153
|
|
|
9997
|
-
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, CardStackComponent, CellEditorPortalRef, CellHeaderPortalRef, CellPortalRef, CellRendererPortalRef, CheckboxInputComponent, ColumnListModel, ColumnModel, ColumnTemplateDirective, 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, EditRowControls, EditSession, EditorControlColumnModel, EmptyStateComponent, EventCleanUpSession, FlattenedTreeListModel, FlexComponent, FocusBinding, FocusBindingDirective, FocusBindingFactory, FocusContainerComponent, FocusableComponent, Formatter, HEADER_CELL_RENDERER_PORTAL, HighlightPipe, HighlightTextModelDirective, HorizontalAlignment, IconComponent, InPlaceInteractionContextComponent, InlineActivityTriggerComponent, InlineEditorModel, InlineStringEditorComponent, InputActivity, InteractionContextTriggerFor, InteractionModule, InteractionService, InteractionServiceRoutingAdapter, LEFT_RIGHT_PLACE_ANIMATION, LabelledValueComponent, ListPlaceNavComponent, ListPropertyColumnModel, 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, PlaceComponent, PlaceComponentDeactivationHandler, PlaceDefinition, PlaceGuard, PlaceHistory, PlaceModule, PlaceOutletComponent, PlaceRouter, Point, PopStateDuringInteractionNavigation, PopStateNavigation, PopupActivityTriggerComponent, PopupAwareComponent, PopupInteractionContextComponent, PopupMenuComponent, PopupMenuRendererComponent, PropertyColumnModel, ROUTE_PARAMETER_LIST_KEY, RemoveLastInteractionFromUrlNavigationSession, ResizeAwareComponent, RouteId, ScrollContainerComponent, SectionHeaderComponent,
|
|
10154
|
+
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, CardStackComponent, CellEditorPortalRef, CellHeaderPortalRef, CellPortalRef, CellRendererPortalRef, CheckboxInputComponent, ColumnListModel, ColumnModel, 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, DefaultListCellRendererComponent, DialogInteractionContext, DialogInteractionContextFactory, Dimension, DirectivesModule, DisposableComponent, EditRowControls, EditSession, EditorControlColumnModel, EmptyStateComponent, EnableCellTextSearch, EventCleanUpSession, FlattenedTreeListModel, FlexComponent, FocusBinding, FocusBindingDirective, FocusBindingFactory, FocusContainerComponent, FocusableComponent, Formatter, HEADER_CELL_RENDERER_PORTAL, HighlightPipe, HighlightTextModelDirective, HorizontalAlignment, IconComponent, InPlaceInteractionContextComponent, InlineActivityTriggerComponent, InlineEditorModel, InlineStringEditorComponent, InputActivity, InteractionContextTriggerFor, InteractionModule, InteractionService, InteractionServiceRoutingAdapter, Keys, LEFT_RIGHT_PLACE_ANIMATION, LabelledValueComponent, ListPlaceNavComponent, ListPropertyColumnModel, 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, PlaceComponent, PlaceComponentDeactivationHandler, PlaceDefinition, PlaceGuard, PlaceHistory, PlaceModule, PlaceOutletComponent, PlaceRouter, Point, PopStateDuringInteractionNavigation, PopStateNavigation, PopupActivityTriggerComponent, PopupAwareComponent, PopupInteractionContextComponent, PopupMenuComponent, PopupMenuRendererComponent, PropertyColumnModel, ROUTE_PARAMETER_LIST_KEY, RemoveLastInteractionFromUrlNavigationSession, ResizeAwareComponent, RouteId, ScrollContainerComponent, SectionHeaderComponent, SelectInputActivity, SelectInputComponent, SelectionCellComponent, SelectionColumnModel, SelectionHeaderCellComponent, SeparatorComponent, SidePlaceNavigationComponent, StringInputActivity, StringInputComponent, SwitchCaseComponent, SwitchCaseDefaultDirective, SwitchCaseOption, SwitchCaseWhenDirective, SynchroniseInteractionContextIdsWithRoute, TabbedPlaceNavigationComponent, TableCellComponent, TableComponent, TableHeaderCellComponent, TableModel, TableRowMenuComponent, TemplateCellRendererPortalRef, TextInputComponent, ToolBarComponent, TrackBy, TreeExpansionModel, TreeInheritanceIconComponent, TreeLabelCellRendererComponent, TreeLabelColumnModel, TreeTableComponent, TreeTableModel, UrlService, UrlSnapshot, VerticalFocusContainerComponent, VisibilityService, Visit, VisitParameter, VisitParameterList, VisitSanitiser, WaitUntilLeavingInteractionTransitionCancelled, WaitUntilLinkTriggeredNavigationInteractionCancellationTypeDetermined, WaitUntilPopStateDuringCanDeactivateInteractionFinishes, leftRightPlaceAnimation, markdownPillExtension, slideDownOnEnterAnimation, slideRightOnEnterAnimation, treeNodeDecorator };
|
|
9998
10155
|
//# sourceMappingURL=coolon-angular-ui-powerups.mjs.map
|