@coolon/angular-ui-powerups 13.5.2 → 13.6.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/esm2020/lib/angular-ui-powerups.module.mjs +8 -4
- package/esm2020/lib/components/components.module.mjs +6 -6
- package/esm2020/lib/components/exports.mjs +2 -2
- package/esm2020/lib/components/tables/abstract-table-model.mjs +10 -5
- package/esm2020/lib/components/tables/abstract-table.component.mjs +14 -60
- package/esm2020/lib/components/tables/column/list-propery-column-model.mjs +5 -5
- package/esm2020/lib/components/tables/column/property-column-model.mjs +2 -2
- package/esm2020/lib/components/tables/paginator/paginator.component.mjs +2 -2
- package/esm2020/lib/components/tables/renderer/default-cell-renderer/default-cell-renderer.component.mjs +3 -11
- package/esm2020/lib/components/tables/renderer/table-body/table-body.component.mjs +112 -0
- package/esm2020/lib/components/tables/table/table-model.mjs +20 -1
- package/esm2020/lib/components/tables/table/table.component.mjs +29 -16
- package/esm2020/lib/components/tables/tree-table/tree-table-component.mjs +9 -12
- package/fesm2015/coolon-angular-ui-powerups.mjs +458 -397
- package/fesm2015/coolon-angular-ui-powerups.mjs.map +1 -1
- package/fesm2020/coolon-angular-ui-powerups.mjs +497 -436
- package/fesm2020/coolon-angular-ui-powerups.mjs.map +1 -1
- package/lib/angular-ui-powerups.module.d.ts +4 -3
- package/lib/components/components.module.d.ts +31 -31
- package/lib/components/exports.d.ts +1 -1
- package/lib/components/tables/abstract-table-model.d.ts +5 -3
- package/lib/components/tables/abstract-table.component.d.ts +7 -13
- package/lib/components/tables/renderer/table-body/table-body.component.d.ts +35 -0
- package/lib/components/tables/table/table-model.d.ts +6 -1
- package/lib/components/tables/table/table.component.d.ts +7 -5
- package/lib/components/tables/tree-table/tree-table-component.d.ts +2 -2
- package/package.json +2 -2
- package/esm2020/lib/components/tables/renderer/default-list-cell-renderer/default-list-cell-renderer.component.mjs +0 -40
- package/lib/components/tables/renderer/default-list-cell-renderer/default-list-cell-renderer.component.d.ts +0 -12
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { ObserversModule } from '@angular/cdk/observers';
|
|
1
2
|
import * as i4 from '@angular/common';
|
|
2
3
|
import { DOCUMENT, CommonModule } from '@angular/common';
|
|
3
4
|
import * as i0 from '@angular/core';
|
|
@@ -40,7 +41,7 @@ import { MatTooltipModule } from '@angular/material/tooltip';
|
|
|
40
41
|
import * as i1$5 from '@fortawesome/angular-fontawesome';
|
|
41
42
|
import { FontAwesomeModule } from '@fortawesome/angular-fontawesome';
|
|
42
43
|
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, Functions, MultipleSelectionModel, AbstractComputedListModel, DelegatingSelectionModel, DirtyTrackingForm,
|
|
44
|
+
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, TransactionObserver, PagedListModel, PageController, Trace, ComputedListModel, Deferred } from '@coolon/pectin';
|
|
44
45
|
import { __decorate, __param, __metadata } from 'tslib';
|
|
45
46
|
import * as i1$2 from '@angular/platform-browser';
|
|
46
47
|
import * as _ from 'lodash';
|
|
@@ -50,9 +51,10 @@ import { Memoize } from '@typescript-plus/fast-memoize-decorator';
|
|
|
50
51
|
import { Enum } from 'typescript-string-enums';
|
|
51
52
|
import { lang as lang$1, assert as assert$1, Stringy, Klass, Opts } from '@coolon/typescript-utilities';
|
|
52
53
|
import * as i3 from '@angular/material/core';
|
|
53
|
-
import ResizeObserver from 'resize-observer-polyfill';
|
|
54
54
|
import produce from 'immer';
|
|
55
55
|
import escapeStringRegexp from 'escape-string-regexp';
|
|
56
|
+
import { isNil as isNil$1, isEmpty as isEmpty$1 } from 'lodash-es';
|
|
57
|
+
import ResizeObserver from 'resize-observer-polyfill';
|
|
56
58
|
import { fas } from '@fortawesome/free-solid-svg-icons';
|
|
57
59
|
import * as i6$1 from '@angular/cdk/a11y';
|
|
58
60
|
import { A11yModule } from '@angular/cdk/a11y';
|
|
@@ -62,7 +64,6 @@ import * as i1$e from '@angular/material/dialog';
|
|
|
62
64
|
import { MatDialogModule, MAT_DIALOG_DEFAULT_OPTIONS } from '@angular/material/dialog';
|
|
63
65
|
import * as i1$c from '@angular/router';
|
|
64
66
|
import { UrlSegment, NavigationStart, NavigationEnd, NavigationError, NavigationCancel, RouterModule, ActivatedRouteSnapshot } from '@angular/router';
|
|
65
|
-
import { isEmpty as isEmpty$1 } from 'lodash-es';
|
|
66
67
|
import * as i1$d from '@angular/cdk/overlay';
|
|
67
68
|
import * as i2$5 from '@angular/material/list';
|
|
68
69
|
import { MatListModule } from '@angular/material/list';
|
|
@@ -2343,90 +2344,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.3", ngImpor
|
|
|
2343
2344
|
args: [SwitchCaseOption]
|
|
2344
2345
|
}] } });
|
|
2345
2346
|
|
|
2346
|
-
class Dimension {
|
|
2347
|
-
constructor(width, height) {
|
|
2348
|
-
this.width = width;
|
|
2349
|
-
this.height = height;
|
|
2350
|
-
}
|
|
2351
|
-
}
|
|
2352
|
-
|
|
2353
|
-
class Point {
|
|
2354
|
-
constructor(x, y) {
|
|
2355
|
-
this.x = x;
|
|
2356
|
-
this.y = y;
|
|
2357
|
-
}
|
|
2358
|
-
static from(data) {
|
|
2359
|
-
return new Point(data.x, data.y);
|
|
2360
|
-
}
|
|
2361
|
-
translate(x, y) {
|
|
2362
|
-
return new Point(this.x + x, this.y + y);
|
|
2363
|
-
}
|
|
2364
|
-
}
|
|
2365
|
-
|
|
2366
|
-
class Bounds extends Dimension {
|
|
2367
|
-
constructor(top, left, width, height) {
|
|
2368
|
-
super(width, height);
|
|
2369
|
-
this.top = top;
|
|
2370
|
-
this.left = left;
|
|
2371
|
-
this.width = width;
|
|
2372
|
-
this.height = height;
|
|
2373
|
-
}
|
|
2374
|
-
relativePositionOf(point) {
|
|
2375
|
-
if (point instanceof MouseEvent) {
|
|
2376
|
-
return new Point(point.clientX - this.left, point.clientY - this.top);
|
|
2377
|
-
}
|
|
2378
|
-
else {
|
|
2379
|
-
return new Point(point.x - this.left, point.y - this.top);
|
|
2380
|
-
}
|
|
2381
|
-
}
|
|
2382
|
-
}
|
|
2383
|
-
(function (Bounds) {
|
|
2384
|
-
function ofElement(element) {
|
|
2385
|
-
const rect = element.getBoundingClientRect();
|
|
2386
|
-
return new Bounds(rect.top, rect.left, rect.width, rect.height);
|
|
2387
|
-
}
|
|
2388
|
-
Bounds.ofElement = ofElement;
|
|
2389
|
-
})(Bounds || (Bounds = {}));
|
|
2390
|
-
|
|
2391
|
-
class ResizeAwareComponent extends DisposableComponent {
|
|
2392
|
-
constructor(elementRef, ngZone) {
|
|
2393
|
-
super();
|
|
2394
|
-
this.elementRef = elementRef;
|
|
2395
|
-
this.ngZone = ngZone;
|
|
2396
|
-
this._boundsModel = new MutableValueModel(new Bounds(0, 0, 0, 0));
|
|
2397
|
-
}
|
|
2398
|
-
ngAfterViewInit() {
|
|
2399
|
-
const element = this.elementRef.nativeElement;
|
|
2400
|
-
const ro = new ResizeObserver((entries, observer) => {
|
|
2401
|
-
this.ngZone.run(() => this._updateBounds());
|
|
2402
|
-
});
|
|
2403
|
-
ro.observe(element);
|
|
2404
|
-
this.onDispose(() => ro.disconnect());
|
|
2405
|
-
setTimeout(() => this._updateBounds());
|
|
2406
|
-
}
|
|
2407
|
-
get boundsModel() {
|
|
2408
|
-
return this._boundsModel.readonly;
|
|
2409
|
-
}
|
|
2410
|
-
get nativeElement() {
|
|
2411
|
-
return this.elementRef.nativeElement;
|
|
2412
|
-
}
|
|
2413
|
-
// TODO: Make this handle body scroll
|
|
2414
|
-
relativePositionOf(point) {
|
|
2415
|
-
return this.bounds.relativePositionOf(point);
|
|
2416
|
-
}
|
|
2417
|
-
get bounds() {
|
|
2418
|
-
return this._boundsModel.value;
|
|
2419
|
-
}
|
|
2420
|
-
_updateBounds() {
|
|
2421
|
-
this._boundsModel.value = Bounds.ofElement(this.nativeElement);
|
|
2422
|
-
}
|
|
2423
|
-
}
|
|
2424
|
-
ResizeAwareComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.3", ngImport: i0, type: ResizeAwareComponent, deps: [{ token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Directive });
|
|
2425
|
-
ResizeAwareComponent.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.2.3", type: ResizeAwareComponent, usesInheritance: true, ngImport: i0 });
|
|
2426
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.3", ngImport: i0, type: ResizeAwareComponent, decorators: [{
|
|
2427
|
-
type: Directive
|
|
2428
|
-
}], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i0.NgZone }]; } });
|
|
2429
|
-
|
|
2430
2347
|
const HEADER_CELL_RENDERER_PORTAL = Symbol('aup-cell-header-renderer-component-ref');
|
|
2431
2348
|
const CELL_RENDERER_PORTAL = Symbol('aup-cell-renderer-component-ref');
|
|
2432
2349
|
const CELL_EDITOR_PORTAL = Symbol('aup-cell-editor-component-ref');
|
|
@@ -2827,9 +2744,9 @@ class CustomTemplateColumnModel extends ColumnModel {
|
|
|
2827
2744
|
* }
|
|
2828
2745
|
* }
|
|
2829
2746
|
*/
|
|
2830
|
-
class AbstractTableComponent extends
|
|
2831
|
-
constructor(
|
|
2832
|
-
super(
|
|
2747
|
+
class AbstractTableComponent extends DisposableComponent {
|
|
2748
|
+
constructor(injector) {
|
|
2749
|
+
super();
|
|
2833
2750
|
this.injector = injector;
|
|
2834
2751
|
/**
|
|
2835
2752
|
* Set to true to enable scrolling. Once enabled the table will have 0 implicit height. You will either
|
|
@@ -2842,33 +2759,14 @@ class AbstractTableComponent extends ResizeAwareComponent {
|
|
|
2842
2759
|
this.rowHeight = new MutableValueModel(48);
|
|
2843
2760
|
this.baseCssClass = 'aup-table-component';
|
|
2844
2761
|
const { chain, when } = Dsl.disposeWith(this);
|
|
2845
|
-
const actualHeaderHeight = chain(this.showHeaderModel).map(show => {
|
|
2846
|
-
return show ? this.headerHeight.value : 0;
|
|
2847
|
-
}, { dependsOn: this.headerHeight });
|
|
2848
|
-
this.visibleRowCount = chain(this.boundsModel).map(bounds => {
|
|
2849
|
-
// TODO: this doesn't take into account any css styling adjustments etc. Will investigate if it's an issue.
|
|
2850
|
-
const rawRowCount = (bounds.height - actualHeaderHeight.value) / this.rowHeight.value;
|
|
2851
|
-
return rawRowCount < 1 ? 0 : Math.floor(rawRowCount);
|
|
2852
|
-
}, {
|
|
2853
|
-
dependsOn: [actualHeaderHeight, this.rowHeight],
|
|
2854
|
-
postponeWhile: chain(this.boundsModel).pluckNumeric('height').isLessThan(1)
|
|
2855
|
-
});
|
|
2856
|
-
}
|
|
2857
|
-
get hideHeader() {
|
|
2858
|
-
return !this.showHeader;
|
|
2859
|
-
}
|
|
2860
|
-
getModel() {
|
|
2861
|
-
return lang$1.abstractMethod(this.constructor);
|
|
2862
2762
|
}
|
|
2863
2763
|
ngOnInit() {
|
|
2864
2764
|
const { chain, valueOf, before, when, after, observe, switchOn } = Dsl.disposeWith(this);
|
|
2865
2765
|
this.getModel().initialise(this.injector);
|
|
2866
|
-
this.
|
|
2867
|
-
this.columnIds = chain(this.columns).pluck('columnId');
|
|
2868
|
-
this.columnsById = chain(this.columns).indexBy('columnId');
|
|
2766
|
+
this.columnsById = chain(this.getModel().columns).indexBy('columnId');
|
|
2869
2767
|
}
|
|
2870
|
-
|
|
2871
|
-
return
|
|
2768
|
+
getModel() {
|
|
2769
|
+
return lang$1.abstractMethod(this.constructor);
|
|
2872
2770
|
}
|
|
2873
2771
|
registerColumnTemplate(columnId, templateRef, viewContainer, fillCell, padChild) {
|
|
2874
2772
|
const column = this.columnsById.get(columnId);
|
|
@@ -2876,36 +2774,15 @@ class AbstractTableComponent extends ResizeAwareComponent {
|
|
|
2876
2774
|
column.setTemplate(templateRef, viewContainer, fillCell, padChild);
|
|
2877
2775
|
}
|
|
2878
2776
|
}
|
|
2879
|
-
notifyCellClicked(columnModel, row) {
|
|
2880
|
-
this.getModel()._notifyCellClicked(columnModel, row);
|
|
2881
|
-
}
|
|
2882
|
-
// @Trace()
|
|
2883
|
-
isFirstVisibleColumn(columnId) {
|
|
2884
|
-
return this.getModel().firstVisibleColumn$.query().value?.columnId === columnId;
|
|
2885
|
-
}
|
|
2886
|
-
// @Trace()
|
|
2887
|
-
isLastVisibleColumn(columnId) {
|
|
2888
|
-
return this.getModel().lastVisibleColumn$.query().value?.columnId === columnId;
|
|
2889
|
-
}
|
|
2890
|
-
getColumnClasses(columnId) {
|
|
2891
|
-
const classes = [`aup-col-${this.columnsById.get(columnId).dasherisedColumnId}`];
|
|
2892
|
-
if (this.isFirstVisibleColumn(columnId)) {
|
|
2893
|
-
classes.push('first-visible-column');
|
|
2894
|
-
}
|
|
2895
|
-
if (this.isLastVisibleColumn(columnId)) {
|
|
2896
|
-
classes.push('last-visible-column');
|
|
2897
|
-
}
|
|
2898
|
-
return classes;
|
|
2899
|
-
}
|
|
2900
2777
|
}
|
|
2901
|
-
AbstractTableComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.3", ngImport: i0, type: AbstractTableComponent, deps: [{ token: i0.
|
|
2902
|
-
AbstractTableComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.2.3", type: AbstractTableComponent, selector: "aup-abstract-table", inputs: {
|
|
2778
|
+
AbstractTableComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.3", ngImport: i0, type: AbstractTableComponent, deps: [{ token: i0.Injector }], target: i0.ɵɵFactoryTarget.Component });
|
|
2779
|
+
AbstractTableComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.2.3", type: AbstractTableComponent, selector: "aup-abstract-table", inputs: { showHeader$: "showHeader$", showHeader: "showHeader", enableScrolling: "enableScrolling" }, host: { properties: { "class": "this.baseCssClass" } }, usesInheritance: true, ngImport: i0, template: '', isInline: true });
|
|
2903
2780
|
__decorate([
|
|
2904
2781
|
TrackExternal({ defaultValue: true }),
|
|
2905
2782
|
__metadata("design:type", ValueModel)
|
|
2906
|
-
], AbstractTableComponent.prototype, "
|
|
2783
|
+
], AbstractTableComponent.prototype, "showHeader$", void 0);
|
|
2907
2784
|
__decorate([
|
|
2908
|
-
StoreInValueModel(
|
|
2785
|
+
StoreInValueModel("showHeader$"),
|
|
2909
2786
|
__metadata("design:type", Boolean)
|
|
2910
2787
|
], AbstractTableComponent.prototype, "showHeader", void 0);
|
|
2911
2788
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.3", ngImport: i0, type: AbstractTableComponent, decorators: [{
|
|
@@ -2914,21 +2791,15 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.3", ngImpor
|
|
|
2914
2791
|
selector: 'aup-abstract-table',
|
|
2915
2792
|
template: ''
|
|
2916
2793
|
}]
|
|
2917
|
-
}], ctorParameters: function () { return [{ type: i0.
|
|
2794
|
+
}], ctorParameters: function () { return [{ type: i0.Injector }]; }, propDecorators: { showHeader$: [{
|
|
2918
2795
|
type: Input
|
|
2919
2796
|
}], showHeader: [{
|
|
2920
2797
|
type: Input
|
|
2921
2798
|
}], enableScrolling: [{
|
|
2922
2799
|
type: Input
|
|
2923
|
-
}, {
|
|
2924
|
-
type: HostBinding,
|
|
2925
|
-
args: ['class.enable-scrolling']
|
|
2926
2800
|
}], baseCssClass: [{
|
|
2927
2801
|
type: HostBinding,
|
|
2928
2802
|
args: ['class']
|
|
2929
|
-
}], hideHeader: [{
|
|
2930
|
-
type: HostBinding,
|
|
2931
|
-
args: ['class.hide-header']
|
|
2932
2803
|
}] } });
|
|
2933
2804
|
|
|
2934
2805
|
class ColumnTemplateDirective {
|
|
@@ -2961,34 +2832,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.3", ngImpor
|
|
|
2961
2832
|
type: Input
|
|
2962
2833
|
}] } });
|
|
2963
2834
|
|
|
2964
|
-
|
|
2965
|
-
const Keys = Enum("useFunction", "useInstance", "useClass");
|
|
2966
|
-
function EnableCellTextSearch(options) {
|
|
2967
|
-
assert$1.notNil(options);
|
|
2968
|
-
return (constructor) => {
|
|
2969
|
-
const klass = Klass.get(constructor);
|
|
2970
|
-
assert$1.isFalsey(klass.hasOwnMetadata(TEXT_SEARCH_FORMATTER_KEY), "class already decorated with @EnableCellTextSearch");
|
|
2971
|
-
klass.defineMetadata(TEXT_SEARCH_FORMATTER_KEY, options);
|
|
2972
|
-
};
|
|
2973
|
-
}
|
|
2974
|
-
(function (EnableCellTextSearch) {
|
|
2975
|
-
function getFormatter(renderer, useDefault) {
|
|
2976
|
-
const options = Klass.get(renderer).getMetadata(TEXT_SEARCH_FORMATTER_KEY) ?? {};
|
|
2977
|
-
if (options[Keys.useFunction]) {
|
|
2978
|
-
return ColumnTextSearchFormatter.forFormatter(options[Keys.useFunction]);
|
|
2979
|
-
}
|
|
2980
|
-
if (options[Keys.useInstance]) {
|
|
2981
|
-
return options[Keys.useInstance];
|
|
2982
|
-
}
|
|
2983
|
-
if (options[Keys.useClass]) {
|
|
2984
|
-
return new ColumnTextSearchFormatter.Delegating(options[Keys.useClass]);
|
|
2985
|
-
}
|
|
2986
|
-
return useDefault();
|
|
2987
|
-
}
|
|
2988
|
-
EnableCellTextSearch.getFormatter = getFormatter;
|
|
2989
|
-
})(EnableCellTextSearch || (EnableCellTextSearch = {}));
|
|
2990
|
-
|
|
2991
|
-
let DefaultCellRendererComponent = class DefaultCellRendererComponent {
|
|
2835
|
+
class DefaultCellRendererComponent {
|
|
2992
2836
|
constructor() {
|
|
2993
2837
|
}
|
|
2994
2838
|
set value(value) {
|
|
@@ -2997,13 +2841,9 @@ let DefaultCellRendererComponent = class DefaultCellRendererComponent {
|
|
|
2997
2841
|
get value() {
|
|
2998
2842
|
return this._value;
|
|
2999
2843
|
}
|
|
3000
|
-
}
|
|
2844
|
+
}
|
|
3001
2845
|
DefaultCellRendererComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.3", ngImport: i0, type: DefaultCellRendererComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
3002
2846
|
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 } });
|
|
3003
|
-
DefaultCellRendererComponent = __decorate([
|
|
3004
|
-
EnableCellTextSearch({ useClass: ColumnTextSearchFormatter.DefaultValueFormatter }),
|
|
3005
|
-
__metadata("design:paramtypes", [])
|
|
3006
|
-
], DefaultCellRendererComponent);
|
|
3007
2847
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.3", ngImport: i0, type: DefaultCellRendererComponent, decorators: [{
|
|
3008
2848
|
type: Component,
|
|
3009
2849
|
args: [{ selector: "aup-default-cell-renderer", template: "<span [innerHTML]=\"value| aupHighlight\"></span>\n", styles: [""] }]
|
|
@@ -3077,37 +2917,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.3", ngImpor
|
|
|
3077
2917
|
type: Input
|
|
3078
2918
|
}] } });
|
|
3079
2919
|
|
|
3080
|
-
let formatter = (row) => row.map(e => e?.toString()).join(", ");
|
|
3081
|
-
let DefaultListCellRendererComponent = class DefaultListCellRendererComponent extends DisposableComponent {
|
|
3082
|
-
constructor() {
|
|
3083
|
-
super();
|
|
3084
|
-
const { chain } = Dsl.disposeWith(this);
|
|
3085
|
-
this.text$ = chain(this.value$).reduce(formatter);
|
|
3086
|
-
}
|
|
3087
|
-
};
|
|
3088
|
-
DefaultListCellRendererComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.3", ngImport: i0, type: DefaultListCellRendererComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
3089
|
-
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 } });
|
|
3090
|
-
__decorate([
|
|
3091
|
-
TrackExternal(),
|
|
3092
|
-
__metadata("design:type", ListModel)
|
|
3093
|
-
], DefaultListCellRendererComponent.prototype, "value$", void 0);
|
|
3094
|
-
__decorate([
|
|
3095
|
-
StoreInListModel("value$"),
|
|
3096
|
-
__metadata("design:type", Array)
|
|
3097
|
-
], DefaultListCellRendererComponent.prototype, "value", void 0);
|
|
3098
|
-
DefaultListCellRendererComponent = __decorate([
|
|
3099
|
-
EnableCellTextSearch({ useClass: ColumnTextSearchFormatter.DefaultArrayFormatter }),
|
|
3100
|
-
__metadata("design:paramtypes", [])
|
|
3101
|
-
], DefaultListCellRendererComponent);
|
|
3102
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.3", ngImport: i0, type: DefaultListCellRendererComponent, decorators: [{
|
|
3103
|
-
type: Component,
|
|
3104
|
-
args: [{ selector: "aup-default-list-cell-renderer", template: "<span [innerHTML]=\"text$.value| aupHighlight\"></span>\n", styles: [""] }]
|
|
3105
|
-
}], ctorParameters: function () { return []; }, propDecorators: { value$: [{
|
|
3106
|
-
type: Input
|
|
3107
|
-
}], value: [{
|
|
3108
|
-
type: Input
|
|
3109
|
-
}] } });
|
|
3110
|
-
|
|
3111
2920
|
class SelectionCellComponent extends DisposableComponent {
|
|
3112
2921
|
constructor() {
|
|
3113
2922
|
super();
|
|
@@ -3189,6 +2998,33 @@ class ColumnListModel extends AbstractComputedListModel {
|
|
|
3189
2998
|
}
|
|
3190
2999
|
}
|
|
3191
3000
|
|
|
3001
|
+
const TEXT_SEARCH_FORMATTER_KEY = `aup:table:textSearchFormatter`;
|
|
3002
|
+
const Keys = Enum("useFunction", "useInstance", "useClass");
|
|
3003
|
+
function EnableCellTextSearch(options) {
|
|
3004
|
+
assert$1.notNil(options);
|
|
3005
|
+
return (constructor) => {
|
|
3006
|
+
const klass = Klass.get(constructor);
|
|
3007
|
+
assert$1.isFalsey(klass.hasOwnMetadata(TEXT_SEARCH_FORMATTER_KEY), "class already decorated with @EnableCellTextSearch");
|
|
3008
|
+
klass.defineMetadata(TEXT_SEARCH_FORMATTER_KEY, options);
|
|
3009
|
+
};
|
|
3010
|
+
}
|
|
3011
|
+
(function (EnableCellTextSearch) {
|
|
3012
|
+
function getFormatter(renderer, useDefault) {
|
|
3013
|
+
const options = Klass.get(renderer).getMetadata(TEXT_SEARCH_FORMATTER_KEY) ?? {};
|
|
3014
|
+
if (options[Keys.useFunction]) {
|
|
3015
|
+
return ColumnTextSearchFormatter.forFormatter(options[Keys.useFunction]);
|
|
3016
|
+
}
|
|
3017
|
+
if (options[Keys.useInstance]) {
|
|
3018
|
+
return options[Keys.useInstance];
|
|
3019
|
+
}
|
|
3020
|
+
if (options[Keys.useClass]) {
|
|
3021
|
+
return new ColumnTextSearchFormatter.Delegating(options[Keys.useClass]);
|
|
3022
|
+
}
|
|
3023
|
+
return useDefault();
|
|
3024
|
+
}
|
|
3025
|
+
EnableCellTextSearch.getFormatter = getFormatter;
|
|
3026
|
+
})(EnableCellTextSearch || (EnableCellTextSearch = {}));
|
|
3027
|
+
|
|
3192
3028
|
class CustomValueColumnModel extends ColumnModel {
|
|
3193
3029
|
constructor(columnId, defaults, getValue) {
|
|
3194
3030
|
super(columnId, defaults);
|
|
@@ -3242,11 +3078,11 @@ class ListPropertyColumnModel extends ColumnModel {
|
|
|
3242
3078
|
constructor(id, property, defaults) {
|
|
3243
3079
|
super(id, defaults);
|
|
3244
3080
|
this.property = property;
|
|
3245
|
-
this._format = (value) => value
|
|
3246
|
-
this.cellRenderer(
|
|
3081
|
+
this._format = (value) => value?.map(v => v?.toString()).join(", ");
|
|
3082
|
+
this.cellRenderer(DefaultCellRendererComponent);
|
|
3247
3083
|
}
|
|
3248
3084
|
cellRenderer(componentType) {
|
|
3249
|
-
this.configureColumnTextSearch(EnableCellTextSearch.getFormatter(componentType, () =>
|
|
3085
|
+
this.configureColumnTextSearch(EnableCellTextSearch.getFormatter(componentType, () => ColumnTextSearchFormatter.forFormatter(value => this._format(value))), row => row[this.property]);
|
|
3250
3086
|
this.configureCellRenderer(new ComponentCellRendererPortalRef(componentType, (component, rowData) => {
|
|
3251
3087
|
let rowElement = rowData.row[this.property];
|
|
3252
3088
|
// @ts-ignore Started complaining in ts 4.5.. but I think my logic is correct...
|
|
@@ -3287,7 +3123,7 @@ class PropertyColumnModel extends ColumnModel {
|
|
|
3287
3123
|
this.cellRenderer(DefaultCellRendererComponent);
|
|
3288
3124
|
}
|
|
3289
3125
|
cellRenderer(componentType, onComponentInitOrOptions) {
|
|
3290
|
-
this.configureColumnTextSearch(EnableCellTextSearch.getFormatter(componentType, () =>
|
|
3126
|
+
this.configureColumnTextSearch(EnableCellTextSearch.getFormatter(componentType, () => ColumnTextSearchFormatter.forFormatter(value => this._format(value))), row => row[this.property]);
|
|
3291
3127
|
this.configureCellRenderer(new ComponentCellRendererPortalRef(componentType, (component, rowData, firstTime) => {
|
|
3292
3128
|
if (firstTime) {
|
|
3293
3129
|
if (isFunction(onComponentInitOrOptions)) {
|
|
@@ -3412,7 +3248,8 @@ class RowClass {
|
|
|
3412
3248
|
class AbstractTableModel extends GarbageCollector {
|
|
3413
3249
|
constructor() {
|
|
3414
3250
|
super();
|
|
3415
|
-
this.
|
|
3251
|
+
this._rawDataSource = this.registerDisposable(new DelegatingListModel());
|
|
3252
|
+
this._visibleRows$ = this.registerDisposable(new DelegatingListModel());
|
|
3416
3253
|
this._columnList = this.registerDisposable(new ColumnListModel());
|
|
3417
3254
|
this._editorSessions = new MutableListModel();
|
|
3418
3255
|
this.rowClassNamePredicates = [];
|
|
@@ -3437,11 +3274,12 @@ class AbstractTableModel extends GarbageCollector {
|
|
|
3437
3274
|
allowNil: true,
|
|
3438
3275
|
dependsOn: this.columns
|
|
3439
3276
|
});
|
|
3440
|
-
this.
|
|
3277
|
+
this._filteredRows$ = chain(this._rawDataSource)
|
|
3441
3278
|
.reduceToList(items => this._textSearchPredicate$.value(items), {
|
|
3442
3279
|
dependsOn: this._textSearchPredicate$
|
|
3443
3280
|
})
|
|
3444
3281
|
.replaceAll(this.rowsBeingEdited$);
|
|
3282
|
+
this._visibleRows$.setDelegate(this._filteredRows$);
|
|
3445
3283
|
this.firstEditableColumn$ = chain(this.columns).select(c => c.hasEditorPortal()).first();
|
|
3446
3284
|
this.firstVisibleColumn$ = chain(this._columnList).first();
|
|
3447
3285
|
this.lastVisibleColumn$ = chain(this._columnList).last();
|
|
@@ -3465,15 +3303,18 @@ class AbstractTableModel extends GarbageCollector {
|
|
|
3465
3303
|
});
|
|
3466
3304
|
this.columns.value.forEach(c => c.initialise(customInjector));
|
|
3467
3305
|
}
|
|
3306
|
+
get visibleRows$() {
|
|
3307
|
+
return this._visibleRows$.readonly;
|
|
3308
|
+
}
|
|
3468
3309
|
setDataSource(sourceOfTruth) {
|
|
3469
|
-
this.
|
|
3310
|
+
this._rawDataSource.setDelegate(sourceOfTruth);
|
|
3470
3311
|
}
|
|
3471
3312
|
setTextSearch(searchText$, throttleDelayMilliseconds = 100) {
|
|
3472
3313
|
const { chain } = Dsl.disposeWith(this);
|
|
3473
3314
|
this._searchText$.setDelegate(chain(searchText$).throttle(throttleDelayMilliseconds));
|
|
3474
3315
|
}
|
|
3475
3316
|
identityOf(row) {
|
|
3476
|
-
return this.
|
|
3317
|
+
return this._rawDataSource.identityOf(row);
|
|
3477
3318
|
}
|
|
3478
3319
|
get rowsBeingEdited$() {
|
|
3479
3320
|
return this._rowsBeingEdited$.readonly;
|
|
@@ -3702,98 +3543,425 @@ class TableHeaderCellComponent {
|
|
|
3702
3543
|
this.column.attachHeaderCell(this);
|
|
3703
3544
|
}
|
|
3704
3545
|
// @Trace()
|
|
3705
|
-
initialiseHeader(ref) {
|
|
3706
|
-
this.column.onHeaderAttached(this, ref);
|
|
3546
|
+
initialiseHeader(ref) {
|
|
3547
|
+
this.column.onHeaderAttached(this, ref);
|
|
3548
|
+
}
|
|
3549
|
+
getPortal() {
|
|
3550
|
+
return this[HEADER_CELL_RENDERER_PORTAL];
|
|
3551
|
+
}
|
|
3552
|
+
}
|
|
3553
|
+
TableHeaderCellComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.3", ngImport: i0, type: TableHeaderCellComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
3554
|
+
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"] }] });
|
|
3555
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.3", ngImport: i0, type: TableHeaderCellComponent, decorators: [{
|
|
3556
|
+
type: Component,
|
|
3557
|
+
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"] }]
|
|
3558
|
+
}], ctorParameters: function () { return []; }, propDecorators: { column: [{
|
|
3559
|
+
type: Input
|
|
3560
|
+
}], defaultClassNames: [{
|
|
3561
|
+
type: HostBinding,
|
|
3562
|
+
args: ['class']
|
|
3563
|
+
}] } });
|
|
3564
|
+
|
|
3565
|
+
class MenuItemData {
|
|
3566
|
+
constructor(factory, face) {
|
|
3567
|
+
this.factory = factory;
|
|
3568
|
+
this.face = face;
|
|
3569
|
+
}
|
|
3570
|
+
}
|
|
3571
|
+
/**
|
|
3572
|
+
*
|
|
3573
|
+
*/
|
|
3574
|
+
class TableRowMenuComponent extends DisposableComponent {
|
|
3575
|
+
constructor() {
|
|
3576
|
+
super();
|
|
3577
|
+
this.actions = [];
|
|
3578
|
+
this.moreActions = [];
|
|
3579
|
+
}
|
|
3580
|
+
registerAction(commandFactory, properties) {
|
|
3581
|
+
this.actions.push(new MenuItemData(commandFactory, properties));
|
|
3582
|
+
}
|
|
3583
|
+
registerMoreAction(commandFactory, properties) {
|
|
3584
|
+
this.moreActions.push(new MenuItemData(commandFactory, properties));
|
|
3585
|
+
}
|
|
3586
|
+
createMoreMenuCommand(item, value) {
|
|
3587
|
+
const { when } = Dsl.disposeWith(this);
|
|
3588
|
+
const command = item.factory.create(value);
|
|
3589
|
+
when(command.busy).becomesFalsey(() => {
|
|
3590
|
+
this.closeMoreMenu();
|
|
3591
|
+
});
|
|
3592
|
+
return command;
|
|
3593
|
+
}
|
|
3594
|
+
closeMoreMenu() {
|
|
3595
|
+
this.menu.closeMenu();
|
|
3596
|
+
}
|
|
3597
|
+
}
|
|
3598
|
+
TableRowMenuComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.3", ngImport: i0, type: TableRowMenuComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
3599
|
+
TableRowMenuComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.2.3", type: TableRowMenuComponent, selector: "aup-table-row-menu", inputs: { value: "value" }, viewQueries: [{ propertyName: "menu", first: true, predicate: MatMenuTrigger, descendants: true }], usesInheritance: true, ngImport: i0, template: `
|
|
3600
|
+
<aup-tool-bar>
|
|
3601
|
+
<aup-command *ngFor="let action of actions" [command]="action.factory.create(value)"
|
|
3602
|
+
[face]="action.face"></aup-command>
|
|
3603
|
+
</aup-tool-bar>
|
|
3604
|
+
<ng-container *ngIf="moreActions.length > 0">
|
|
3605
|
+
<aup-more-menu>
|
|
3606
|
+
<aup-command *ngFor="let action of moreActions" [command]="action.factory.create(value)"
|
|
3607
|
+
[face]="action.face"></aup-command>
|
|
3608
|
+
</aup-more-menu>
|
|
3609
|
+
</ng-container>
|
|
3610
|
+
`, isInline: true, styles: [":host{display:inline-flex;flex-direction:row;align-items:center}\n"], components: [{ type: ToolBarComponent, selector: "aup-tool-bar" }, { type: CommandComponent, selector: "aup-command", inputs: ["command", "faceModel", "face", "busyFaceModel", "busyFace", "alignFace"] }, { type: MoreMenuComponent, selector: "aup-more-menu", inputs: ["tooltip"] }], directives: [{ type: i4.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] });
|
|
3611
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.3", ngImport: i0, type: TableRowMenuComponent, decorators: [{
|
|
3612
|
+
type: Component,
|
|
3613
|
+
args: [{
|
|
3614
|
+
selector: 'aup-table-row-menu',
|
|
3615
|
+
template: `
|
|
3616
|
+
<aup-tool-bar>
|
|
3617
|
+
<aup-command *ngFor="let action of actions" [command]="action.factory.create(value)"
|
|
3618
|
+
[face]="action.face"></aup-command>
|
|
3619
|
+
</aup-tool-bar>
|
|
3620
|
+
<ng-container *ngIf="moreActions.length > 0">
|
|
3621
|
+
<aup-more-menu>
|
|
3622
|
+
<aup-command *ngFor="let action of moreActions" [command]="action.factory.create(value)"
|
|
3623
|
+
[face]="action.face"></aup-command>
|
|
3624
|
+
</aup-more-menu>
|
|
3625
|
+
</ng-container>
|
|
3626
|
+
`,
|
|
3627
|
+
styles: [`:host {
|
|
3628
|
+
display: inline-flex;
|
|
3629
|
+
flex-direction: row;
|
|
3630
|
+
align-items: center;
|
|
3631
|
+
}`]
|
|
3632
|
+
}]
|
|
3633
|
+
}], ctorParameters: function () { return []; }, propDecorators: { value: [{
|
|
3634
|
+
type: Input
|
|
3635
|
+
}], menu: [{
|
|
3636
|
+
type: ViewChild,
|
|
3637
|
+
args: [MatMenuTrigger]
|
|
3638
|
+
}] } });
|
|
3639
|
+
|
|
3640
|
+
/**
|
|
3641
|
+
* Example:
|
|
3642
|
+
* @example
|
|
3643
|
+
* const model = new TableModel(heroList, table => {
|
|
3644
|
+
* table.pluck("firstName");
|
|
3645
|
+
* table.pluck("lastName");
|
|
3646
|
+
* table.addCustomColumn("fullName", hero => `${hero.firstName} ${hero.lastName}`);
|
|
3647
|
+
* });
|
|
3648
|
+
*
|
|
3649
|
+
* Editable tables
|
|
3650
|
+
* @example
|
|
3651
|
+
* const saveCommand = UnaryCommand.create((form: Form<Hero>) => {
|
|
3652
|
+
* if (form.validate()) {
|
|
3653
|
+
* // normal form save stuff
|
|
3654
|
+
* return true; // finish editing
|
|
3655
|
+
* }
|
|
3656
|
+
* return false; // continue editiing
|
|
3657
|
+
* }
|
|
3658
|
+
* const colorsNames: ListModel<string> = ...;
|
|
3659
|
+
* const model = TableModel.fromList(heroList, table => {
|
|
3660
|
+
* table.pluck("firstName").cellEditor(StringInputComponent); <-- interface CellEditor { valueModel: DirtyTrackingForm.ValueModel<string> | ValueModel<string>; }
|
|
3661
|
+
* table.pluck("lastName").cellEditor(StringInputComponent, {
|
|
3662
|
+
* validators: [Validator.present("We need a last name")]
|
|
3663
|
+
* });
|
|
3664
|
+
* table.pluck("age").cellEditor(NumberInputComponent);
|
|
3665
|
+
* table.pluck("favoriteColor").cellEditor(SelectInputComponent, {
|
|
3666
|
+
* initialiseComponent(component: SelectInputComponent) {
|
|
3667
|
+
* selectInput.optionsModel = colorsNames; // <- initialise our component
|
|
3668
|
+
* }
|
|
3669
|
+
* });
|
|
3670
|
+
* table.addEditControls(saveCommand); // <- required to enable editing
|
|
3671
|
+
* });
|
|
3672
|
+
*
|
|
3673
|
+
* Selection models
|
|
3674
|
+
* @example
|
|
3675
|
+
* const model = new TableModel(heroList, table => {
|
|
3676
|
+
* table.addSelectionColumn(selectionModel); // <- can be single or multiple selection model
|
|
3677
|
+
* table.pluck("firstName");
|
|
3678
|
+
* table.pluck("lastName");
|
|
3679
|
+
* });
|
|
3680
|
+
*
|
|
3681
|
+
* Custom cell renderers and editors
|
|
3682
|
+
* @example
|
|
3683
|
+
* const model = new TableModel(heroList, table => {
|
|
3684
|
+
* table.pluck("favoriteColor")
|
|
3685
|
+
* .cellHeaderRenderer(CellHeaderRendererComponent, (component, column) => {
|
|
3686
|
+
* // configure your component with what ever you need.
|
|
3687
|
+
* });
|
|
3688
|
+
* .cellRenderer(CellRendererComponent) // <-- interface CellEditor { value: string; }
|
|
3689
|
+
* .cellEditor(CellEditorComponent.); // <-- interface CellEditor { valueModel: DirtyTrackingForm.ValueModel<string> | ValueModel<string>; }
|
|
3690
|
+
* table.addCustomColumn("fullName", hero => `${hero.firstName} ${hero.lastName}`);
|
|
3691
|
+
* });
|
|
3692
|
+
*
|
|
3693
|
+
* Template columns
|
|
3694
|
+
* @example
|
|
3695
|
+
* const model = new TableModel(heroList, table => {
|
|
3696
|
+
* table.addSelectionColumn(selectionModel); // <- can be single or multiple selection model
|
|
3697
|
+
* table.addTemplateColumn("myTemplate");
|
|
3698
|
+
* });
|
|
3699
|
+
*
|
|
3700
|
+
* <div *aupColumnTemplate="let hero; columnId: 'myTemplate'">{{hero.age}}</div>
|
|
3701
|
+
*
|
|
3702
|
+
* I18n
|
|
3703
|
+
* @example
|
|
3704
|
+
* [table.yml]
|
|
3705
|
+
* table:
|
|
3706
|
+
* columns(ColumnTextProperties[]):
|
|
3707
|
+
* firstName:
|
|
3708
|
+
* headerText: "First Name"
|
|
3709
|
+
* fullName:
|
|
3710
|
+
* headerText: "Full Name"
|
|
3711
|
+
*
|
|
3712
|
+
* const model = new TableModel(heroList, table => {
|
|
3713
|
+
* table.pluck("favoriteColor").cellRenderer(...).cellEditor(...);
|
|
3714
|
+
* table.addCustomColumn("fullName", hero => `${hero.firstName} ${hero.lastName}`);
|
|
3715
|
+
*
|
|
3716
|
+
* table.columnTextProperties(I18n.table.columns); // <- configures all columns
|
|
3717
|
+
* });
|
|
3718
|
+
*/
|
|
3719
|
+
class TableModel extends AbstractTableModel {
|
|
3720
|
+
constructor(sourceOfTruth, builder) {
|
|
3721
|
+
super();
|
|
3722
|
+
this._pageSize = new MutableValueModel();
|
|
3723
|
+
if (builder) {
|
|
3724
|
+
builder(this);
|
|
3725
|
+
}
|
|
3726
|
+
this.setDataSource(sourceOfTruth);
|
|
3727
|
+
const txo = new TransactionObserver({ verbose: true }).onEvent(e => console.log(e.name, e.payload));
|
|
3728
|
+
txo.observe("this.visibleRows$", this.visibleRows$);
|
|
3729
|
+
}
|
|
3730
|
+
get pageController() {
|
|
3731
|
+
return this._pageController;
|
|
3732
|
+
}
|
|
3733
|
+
enablePaging() {
|
|
3734
|
+
if (isNil$1(this.pageController)) {
|
|
3735
|
+
const pagedListModel = this.registerDisposable(PagedListModel.wrap(this._visibleRows$.getDelegate()));
|
|
3736
|
+
this._visibleRows$.setDelegate(pagedListModel);
|
|
3737
|
+
this._pageController = pagedListModel.pageController;
|
|
3738
|
+
this._pageController.setPageSize(this._pageSize);
|
|
3739
|
+
}
|
|
3740
|
+
}
|
|
3741
|
+
addSelectionColumn(selectionModel, showSelectionColumn) {
|
|
3742
|
+
return this._addSelectionColumn(selectionModel, showSelectionColumn);
|
|
3743
|
+
}
|
|
3744
|
+
updatePageSize(count) {
|
|
3745
|
+
this._pageSize.value = count;
|
|
3746
|
+
}
|
|
3747
|
+
}
|
|
3748
|
+
|
|
3749
|
+
class Dimension {
|
|
3750
|
+
constructor(width, height) {
|
|
3751
|
+
this.width = width;
|
|
3752
|
+
this.height = height;
|
|
3753
|
+
}
|
|
3754
|
+
}
|
|
3755
|
+
|
|
3756
|
+
class Point {
|
|
3757
|
+
constructor(x, y) {
|
|
3758
|
+
this.x = x;
|
|
3759
|
+
this.y = y;
|
|
3760
|
+
}
|
|
3761
|
+
static from(data) {
|
|
3762
|
+
return new Point(data.x, data.y);
|
|
3763
|
+
}
|
|
3764
|
+
translate(x, y) {
|
|
3765
|
+
return new Point(this.x + x, this.y + y);
|
|
3766
|
+
}
|
|
3767
|
+
}
|
|
3768
|
+
|
|
3769
|
+
class Bounds extends Dimension {
|
|
3770
|
+
constructor(top, left, width, height) {
|
|
3771
|
+
super(width, height);
|
|
3772
|
+
this.top = top;
|
|
3773
|
+
this.left = left;
|
|
3774
|
+
this.width = width;
|
|
3775
|
+
this.height = height;
|
|
3776
|
+
}
|
|
3777
|
+
relativePositionOf(point) {
|
|
3778
|
+
if (point instanceof MouseEvent) {
|
|
3779
|
+
return new Point(point.clientX - this.left, point.clientY - this.top);
|
|
3780
|
+
}
|
|
3781
|
+
else {
|
|
3782
|
+
return new Point(point.x - this.left, point.y - this.top);
|
|
3783
|
+
}
|
|
3784
|
+
}
|
|
3785
|
+
}
|
|
3786
|
+
(function (Bounds) {
|
|
3787
|
+
function ofElement(element) {
|
|
3788
|
+
const rect = element.getBoundingClientRect();
|
|
3789
|
+
return new Bounds(rect.top, rect.left, rect.width, rect.height);
|
|
3790
|
+
}
|
|
3791
|
+
Bounds.ofElement = ofElement;
|
|
3792
|
+
})(Bounds || (Bounds = {}));
|
|
3793
|
+
|
|
3794
|
+
class ResizeAwareComponent extends DisposableComponent {
|
|
3795
|
+
constructor(elementRef, ngZone) {
|
|
3796
|
+
super();
|
|
3797
|
+
this.elementRef = elementRef;
|
|
3798
|
+
this.ngZone = ngZone;
|
|
3799
|
+
this._boundsModel = new MutableValueModel(new Bounds(0, 0, 0, 0));
|
|
3800
|
+
}
|
|
3801
|
+
ngAfterViewInit() {
|
|
3802
|
+
const element = this.elementRef.nativeElement;
|
|
3803
|
+
const ro = new ResizeObserver((entries, observer) => {
|
|
3804
|
+
this.ngZone.run(() => this._updateBounds());
|
|
3805
|
+
});
|
|
3806
|
+
ro.observe(element);
|
|
3807
|
+
this.onDispose(() => ro.disconnect());
|
|
3808
|
+
setTimeout(() => this._updateBounds());
|
|
3809
|
+
}
|
|
3810
|
+
get boundsModel() {
|
|
3811
|
+
return this._boundsModel.readonly;
|
|
3812
|
+
}
|
|
3813
|
+
get nativeElement() {
|
|
3814
|
+
return this.elementRef.nativeElement;
|
|
3815
|
+
}
|
|
3816
|
+
// TODO: Make this handle body scroll
|
|
3817
|
+
relativePositionOf(point) {
|
|
3818
|
+
return this.bounds.relativePositionOf(point);
|
|
3819
|
+
}
|
|
3820
|
+
get bounds() {
|
|
3821
|
+
return this._boundsModel.value;
|
|
3822
|
+
}
|
|
3823
|
+
_updateBounds() {
|
|
3824
|
+
this._boundsModel.value = Bounds.ofElement(this.nativeElement);
|
|
3825
|
+
}
|
|
3826
|
+
}
|
|
3827
|
+
ResizeAwareComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.3", ngImport: i0, type: ResizeAwareComponent, deps: [{ token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Directive });
|
|
3828
|
+
ResizeAwareComponent.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.2.3", type: ResizeAwareComponent, usesInheritance: true, ngImport: i0 });
|
|
3829
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.3", ngImport: i0, type: ResizeAwareComponent, decorators: [{
|
|
3830
|
+
type: Directive
|
|
3831
|
+
}], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i0.NgZone }]; } });
|
|
3832
|
+
|
|
3833
|
+
class TableBodyComponent extends ResizeAwareComponent {
|
|
3834
|
+
constructor(elementRef, ngZone) {
|
|
3835
|
+
super(elementRef, ngZone);
|
|
3836
|
+
this.visibleRowCount = new EventEmitter();
|
|
3837
|
+
/**
|
|
3838
|
+
* Set to true to enable scrolling. Once enabled the table will have 0 implicit height. You will either
|
|
3839
|
+
* need to set it explicitly e.g. height: 400px; or by using flex or grid layout to make it fill it's
|
|
3840
|
+
* containment area.
|
|
3841
|
+
*/
|
|
3842
|
+
this.enableScrolling = false;
|
|
3843
|
+
// TODO: support user defined header and row heights via css vars.
|
|
3844
|
+
this.headerHeight = new MutableValueModel(56);
|
|
3845
|
+
this.rowHeight = new MutableValueModel(48);
|
|
3846
|
+
this.baseCssClass = "aup-table-component";
|
|
3847
|
+
const { chain, when } = Dsl.disposeWith(this);
|
|
3848
|
+
const actualHeaderHeight = chain(this.showHeader$).map(show => {
|
|
3849
|
+
return show ? this.headerHeight.value : 0;
|
|
3850
|
+
}, { dependsOn: this.headerHeight });
|
|
3851
|
+
this._visibleRowCount = chain(this.boundsModel).map(bounds => {
|
|
3852
|
+
// TODO: this doesn't take into account any css styling adjustments etc. Will investigate if it's an issue.
|
|
3853
|
+
const rawRowCount = (bounds.height - actualHeaderHeight.value) / this.rowHeight.value;
|
|
3854
|
+
return rawRowCount < 1 ? 0 : Math.floor(rawRowCount);
|
|
3855
|
+
}, {
|
|
3856
|
+
dependsOn: [actualHeaderHeight, this.rowHeight],
|
|
3857
|
+
postponeWhile: chain(this.boundsModel).pluckNumeric("height").isLessThan(1)
|
|
3858
|
+
});
|
|
3859
|
+
when(this._visibleRowCount).changes(visibleRows => {
|
|
3860
|
+
this.visibleRowCount.emit(visibleRows);
|
|
3861
|
+
}, { initialValue: "triggerChangeUnlessNil" });
|
|
3862
|
+
}
|
|
3863
|
+
get hideHeader() {
|
|
3864
|
+
return !this.showHeader;
|
|
3865
|
+
}
|
|
3866
|
+
ngOnInit() {
|
|
3867
|
+
const { chain } = Dsl.disposeWith(this);
|
|
3868
|
+
this.columns = chain(this.tableModel.columns);
|
|
3869
|
+
this.columnIds = chain(this.columns).pluck("columnId");
|
|
3870
|
+
this.columnsById = chain(this.columns).indexBy('columnId');
|
|
3871
|
+
}
|
|
3872
|
+
isEditing(row) {
|
|
3873
|
+
return !!this.tableModel.getEditSessionFor(row);
|
|
3874
|
+
}
|
|
3875
|
+
notifyCellClicked(columnModel, row) {
|
|
3876
|
+
this.tableModel._notifyCellClicked(columnModel, row);
|
|
3877
|
+
}
|
|
3878
|
+
// @Trace()
|
|
3879
|
+
isFirstVisibleColumn(columnId) {
|
|
3880
|
+
return this.tableModel.firstVisibleColumn$.query().value?.columnId === columnId;
|
|
3881
|
+
}
|
|
3882
|
+
// @Trace()
|
|
3883
|
+
isLastVisibleColumn(columnId) {
|
|
3884
|
+
return this.tableModel.lastVisibleColumn$.query().value?.columnId === columnId;
|
|
3707
3885
|
}
|
|
3708
|
-
|
|
3709
|
-
|
|
3886
|
+
getColumnClasses(columnId) {
|
|
3887
|
+
const classes = [`aup-col-${this.columnsById.get(columnId).dasherisedColumnId}`];
|
|
3888
|
+
if (this.isFirstVisibleColumn(columnId)) {
|
|
3889
|
+
classes.push("first-visible-column");
|
|
3890
|
+
}
|
|
3891
|
+
if (this.isLastVisibleColumn(columnId)) {
|
|
3892
|
+
classes.push("last-visible-column");
|
|
3893
|
+
}
|
|
3894
|
+
return classes;
|
|
3710
3895
|
}
|
|
3711
3896
|
}
|
|
3712
|
-
|
|
3713
|
-
|
|
3714
|
-
|
|
3897
|
+
TableBodyComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.3", ngImport: i0, type: TableBodyComponent, deps: [{ token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
|
|
3898
|
+
TableBodyComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.2.3", type: TableBodyComponent, selector: "aup-table-body", inputs: { tableModel: "tableModel", showHeader$: "showHeader$", showHeader: "showHeader", enableScrolling: "enableScrolling" }, outputs: { visibleRowCount: "visibleRowCount" }, host: { properties: { "class.enable-scrolling": "this.enableScrolling", "class": "this.baseCssClass", "class.hide-header": "this.hideHeader" } }, usesInheritance: true, ngImport: i0, template: "<div class=\"scroll-container\">\n <table mat-table [dataSource]=\"tableModel.visibleRows$.value\" [trackBy]=\"tableModel.trackBy\">\n\n <ng-container *ngFor=\"let column of columns.value; index as index; first as first; last as last\"\n matColumnDef=\"{{column.columnId}}\">\n <th mat-header-cell *matHeaderCellDef [class.flex]=\"column.isFlex()\" [class.hide]=\"!column.isVisible()\">\n <aup-table-header-cell [column]=\"column\"\n [attr.column-index]=\"index\"\n [attr.column-id]=\"column.columnId\"\n [class]=\"getColumnClasses(column.columnId)\"\n ></aup-table-header-cell>\n </th>\n <td mat-cell *matCellDef=\"let row\" (click)=\"notifyCellClicked(column, row)\"\n [class.enable-cursor]=\"tableModel.isCursorEnabled(column)\"\n [class.flex]=\"column.isFlex()\"\n [class.hide]=\"!column.isVisible()\"\n >\n <aup-table-cell [column]=\"column\"\n [row]=\"row\"\n [tableModel]=\"tableModel\"\n [editSession]=\"tableModel.getEditSessionFor(row)\"\n [attr.column-index]=\"index\"\n [attr.column-id]=\"column.columnId\"\n [class]=\"getColumnClasses(column.columnId)\"\n ></aup-table-cell>\n </td>\n </ng-container>\n\n <tr mat-header-row *matHeaderRowDef=\"columnIds.value\"></tr>\n <tr mat-row *matRowDef=\"let row; columns: columnIds.value; let i = index\"\n [ngClass]=\"tableModel.getRowClasses(row)\" [class.enable-hover]=\"tableModel.isHoverEnabled()\"\n [attr.aup-row-id]=\"tableModel.trackBy(i, row)\"\n ></tr>\n\n </table>\n</div>\n\n", styles: [":host{display:flex;flex-direction:column;align-items:stretch}:host table{width:100%}:host.enable-scrolling{min-height:0}:host.enable-scrolling .scroll-container{flex:1;flex-basis:0;overflow-y:auto;display:flex;flex-direction:column;align-items:stretch}\n"], 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"] }] });
|
|
3899
|
+
__decorate([
|
|
3900
|
+
TrackExternal(),
|
|
3901
|
+
__metadata("design:type", AbstractTableModel)
|
|
3902
|
+
], TableBodyComponent.prototype, "tableModel", void 0);
|
|
3903
|
+
__decorate([
|
|
3904
|
+
TrackExternal({ defaultValue: true }),
|
|
3905
|
+
__metadata("design:type", ValueModel)
|
|
3906
|
+
], TableBodyComponent.prototype, "showHeader$", void 0);
|
|
3907
|
+
__decorate([
|
|
3908
|
+
StoreInValueModel("showHeader$"),
|
|
3909
|
+
__metadata("design:type", Boolean)
|
|
3910
|
+
], TableBodyComponent.prototype, "showHeader", void 0);
|
|
3911
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.3", ngImport: i0, type: TableBodyComponent, decorators: [{
|
|
3715
3912
|
type: Component,
|
|
3716
|
-
args: [{ selector:
|
|
3717
|
-
}], ctorParameters: function () { return []; }, propDecorators: {
|
|
3913
|
+
args: [{ selector: "aup-table-body", template: "<div class=\"scroll-container\">\n <table mat-table [dataSource]=\"tableModel.visibleRows$.value\" [trackBy]=\"tableModel.trackBy\">\n\n <ng-container *ngFor=\"let column of columns.value; index as index; first as first; last as last\"\n matColumnDef=\"{{column.columnId}}\">\n <th mat-header-cell *matHeaderCellDef [class.flex]=\"column.isFlex()\" [class.hide]=\"!column.isVisible()\">\n <aup-table-header-cell [column]=\"column\"\n [attr.column-index]=\"index\"\n [attr.column-id]=\"column.columnId\"\n [class]=\"getColumnClasses(column.columnId)\"\n ></aup-table-header-cell>\n </th>\n <td mat-cell *matCellDef=\"let row\" (click)=\"notifyCellClicked(column, row)\"\n [class.enable-cursor]=\"tableModel.isCursorEnabled(column)\"\n [class.flex]=\"column.isFlex()\"\n [class.hide]=\"!column.isVisible()\"\n >\n <aup-table-cell [column]=\"column\"\n [row]=\"row\"\n [tableModel]=\"tableModel\"\n [editSession]=\"tableModel.getEditSessionFor(row)\"\n [attr.column-index]=\"index\"\n [attr.column-id]=\"column.columnId\"\n [class]=\"getColumnClasses(column.columnId)\"\n ></aup-table-cell>\n </td>\n </ng-container>\n\n <tr mat-header-row *matHeaderRowDef=\"columnIds.value\"></tr>\n <tr mat-row *matRowDef=\"let row; columns: columnIds.value; let i = index\"\n [ngClass]=\"tableModel.getRowClasses(row)\" [class.enable-hover]=\"tableModel.isHoverEnabled()\"\n [attr.aup-row-id]=\"tableModel.trackBy(i, row)\"\n ></tr>\n\n </table>\n</div>\n\n", styles: [":host{display:flex;flex-direction:column;align-items:stretch}:host table{width:100%}:host.enable-scrolling{min-height:0}:host.enable-scrolling .scroll-container{flex:1;flex-basis:0;overflow-y:auto;display:flex;flex-direction:column;align-items:stretch}\n"] }]
|
|
3914
|
+
}], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i0.NgZone }]; }, propDecorators: { tableModel: [{
|
|
3718
3915
|
type: Input
|
|
3719
|
-
}],
|
|
3916
|
+
}], showHeader$: [{
|
|
3917
|
+
type: Input
|
|
3918
|
+
}], showHeader: [{
|
|
3919
|
+
type: Input
|
|
3920
|
+
}], visibleRowCount: [{
|
|
3921
|
+
type: Output
|
|
3922
|
+
}], enableScrolling: [{
|
|
3923
|
+
type: Input
|
|
3924
|
+
}, {
|
|
3720
3925
|
type: HostBinding,
|
|
3721
|
-
args: [
|
|
3926
|
+
args: ["class.enable-scrolling"]
|
|
3927
|
+
}], baseCssClass: [{
|
|
3928
|
+
type: HostBinding,
|
|
3929
|
+
args: ["class"]
|
|
3930
|
+
}], hideHeader: [{
|
|
3931
|
+
type: HostBinding,
|
|
3932
|
+
args: ["class.hide-header"]
|
|
3722
3933
|
}] } });
|
|
3723
3934
|
|
|
3724
|
-
class
|
|
3725
|
-
constructor(factory, face) {
|
|
3726
|
-
this.factory = factory;
|
|
3727
|
-
this.face = face;
|
|
3728
|
-
}
|
|
3729
|
-
}
|
|
3730
|
-
/**
|
|
3731
|
-
*
|
|
3732
|
-
*/
|
|
3733
|
-
class TableRowMenuComponent extends DisposableComponent {
|
|
3935
|
+
class PaginatorComponent extends DisposableComponent {
|
|
3734
3936
|
constructor() {
|
|
3735
3937
|
super();
|
|
3736
|
-
this.actions = [];
|
|
3737
|
-
this.moreActions = [];
|
|
3738
3938
|
}
|
|
3739
|
-
|
|
3740
|
-
this.actions.push(new MenuItemData(commandFactory, properties));
|
|
3939
|
+
ngOnInit() {
|
|
3741
3940
|
}
|
|
3742
|
-
|
|
3743
|
-
this.
|
|
3941
|
+
get totalPages() {
|
|
3942
|
+
return this.pageController.totalPages.value;
|
|
3744
3943
|
}
|
|
3745
|
-
|
|
3746
|
-
|
|
3747
|
-
const command = item.factory.create(value);
|
|
3748
|
-
when(command.busy).becomesFalsey(() => {
|
|
3749
|
-
this.closeMoreMenu();
|
|
3750
|
-
});
|
|
3751
|
-
return command;
|
|
3944
|
+
get pageNumber() {
|
|
3945
|
+
return this.pageController.pageNumber.value;
|
|
3752
3946
|
}
|
|
3753
|
-
|
|
3754
|
-
this.
|
|
3947
|
+
get previousCommand() {
|
|
3948
|
+
return this.pageController.previousCommand;
|
|
3949
|
+
}
|
|
3950
|
+
get nextCommand() {
|
|
3951
|
+
return this.pageController.nextCommand;
|
|
3755
3952
|
}
|
|
3756
3953
|
}
|
|
3757
|
-
|
|
3758
|
-
|
|
3759
|
-
|
|
3760
|
-
|
|
3761
|
-
|
|
3762
|
-
|
|
3763
|
-
|
|
3764
|
-
<aup-more-menu>
|
|
3765
|
-
<aup-command *ngFor="let action of moreActions" [command]="action.factory.create(value)"
|
|
3766
|
-
[face]="action.face"></aup-command>
|
|
3767
|
-
</aup-more-menu>
|
|
3768
|
-
</ng-container>
|
|
3769
|
-
`, isInline: true, styles: [":host{display:inline-flex;flex-direction:row;align-items:center}\n"], components: [{ type: ToolBarComponent, selector: "aup-tool-bar" }, { type: CommandComponent, selector: "aup-command", inputs: ["command", "faceModel", "face", "busyFaceModel", "busyFace", "alignFace"] }, { type: MoreMenuComponent, selector: "aup-more-menu", inputs: ["tooltip"] }], directives: [{ type: i4.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] });
|
|
3770
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.3", ngImport: i0, type: TableRowMenuComponent, decorators: [{
|
|
3954
|
+
PaginatorComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.3", ngImport: i0, type: PaginatorComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
3955
|
+
PaginatorComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.2.3", type: PaginatorComponent, selector: "aup-paginator", inputs: { pageController: "pageController" }, usesInheritance: true, ngImport: i0, template: "<p>Page {{pageNumber}} of {{totalPages}}</p>\n<button mat-icon-button [pectinCommand]=\"previousCommand\"><aup-icon icon=\"mat:keyboard_arrow_left\"></aup-icon></button>\n<button mat-icon-button [pectinCommand]=\"nextCommand\"><aup-icon icon=\"mat:keyboard_arrow_right\"></aup-icon></button>\n\n", styles: [":host{display:flex;flex-direction:row;justify-content:flex-end;align-items:center;font-size:12px;padding:0 8px;color:#0009}:host p{color:inherit;margin:0 8px 0 0}:host button.md-button.md-icon-button{padding:0;margin:0;width:30px;height:30px}\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: CommandDirective, selector: "[pectinCommand]", inputs: ["pectinCommand", "commandParameter"] }] });
|
|
3956
|
+
__decorate([
|
|
3957
|
+
TrackExternal(),
|
|
3958
|
+
__metadata("design:type", PageController)
|
|
3959
|
+
], PaginatorComponent.prototype, "pageController", void 0);
|
|
3960
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.3", ngImport: i0, type: PaginatorComponent, decorators: [{
|
|
3771
3961
|
type: Component,
|
|
3772
|
-
args: [{
|
|
3773
|
-
|
|
3774
|
-
template: `
|
|
3775
|
-
<aup-tool-bar>
|
|
3776
|
-
<aup-command *ngFor="let action of actions" [command]="action.factory.create(value)"
|
|
3777
|
-
[face]="action.face"></aup-command>
|
|
3778
|
-
</aup-tool-bar>
|
|
3779
|
-
<ng-container *ngIf="moreActions.length > 0">
|
|
3780
|
-
<aup-more-menu>
|
|
3781
|
-
<aup-command *ngFor="let action of moreActions" [command]="action.factory.create(value)"
|
|
3782
|
-
[face]="action.face"></aup-command>
|
|
3783
|
-
</aup-more-menu>
|
|
3784
|
-
</ng-container>
|
|
3785
|
-
`,
|
|
3786
|
-
styles: [`:host {
|
|
3787
|
-
display: inline-flex;
|
|
3788
|
-
flex-direction: row;
|
|
3789
|
-
align-items: center;
|
|
3790
|
-
}`]
|
|
3791
|
-
}]
|
|
3792
|
-
}], ctorParameters: function () { return []; }, propDecorators: { value: [{
|
|
3962
|
+
args: [{ selector: 'aup-paginator', template: "<p>Page {{pageNumber}} of {{totalPages}}</p>\n<button mat-icon-button [pectinCommand]=\"previousCommand\"><aup-icon icon=\"mat:keyboard_arrow_left\"></aup-icon></button>\n<button mat-icon-button [pectinCommand]=\"nextCommand\"><aup-icon icon=\"mat:keyboard_arrow_right\"></aup-icon></button>\n\n", styles: [":host{display:flex;flex-direction:row;justify-content:flex-end;align-items:center;font-size:12px;padding:0 8px;color:#0009}:host p{color:inherit;margin:0 8px 0 0}:host button.md-button.md-icon-button{padding:0;margin:0;width:30px;height:30px}\n"] }]
|
|
3963
|
+
}], ctorParameters: function () { return []; }, propDecorators: { pageController: [{
|
|
3793
3964
|
type: Input
|
|
3794
|
-
}], menu: [{
|
|
3795
|
-
type: ViewChild,
|
|
3796
|
-
args: [MatMenuTrigger]
|
|
3797
3965
|
}] } });
|
|
3798
3966
|
|
|
3799
3967
|
/**
|
|
@@ -3857,29 +4025,43 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.3", ngImpor
|
|
|
3857
4025
|
* }
|
|
3858
4026
|
*/
|
|
3859
4027
|
class TableComponent extends AbstractTableComponent {
|
|
3860
|
-
constructor(
|
|
3861
|
-
super(
|
|
4028
|
+
constructor() {
|
|
4029
|
+
super(...arguments);
|
|
4030
|
+
this._footerContentAdded = false;
|
|
3862
4031
|
}
|
|
3863
4032
|
getModel() {
|
|
3864
4033
|
return this.tableModel;
|
|
3865
4034
|
}
|
|
4035
|
+
footerContentChanged($event) {
|
|
4036
|
+
console.log($event);
|
|
4037
|
+
this._footerContentAdded = true;
|
|
4038
|
+
}
|
|
4039
|
+
updatePageSize(count) {
|
|
4040
|
+
this.tableModel.updatePageSize(count);
|
|
4041
|
+
}
|
|
3866
4042
|
}
|
|
3867
|
-
TableComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.3", ngImport: i0, type: TableComponent, deps:
|
|
4043
|
+
TableComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.3", ngImport: i0, type: TableComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
|
|
3868
4044
|
TableComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.2.3", type: TableComponent, selector: "aup-table", inputs: { tableModel: "tableModel" }, providers: [
|
|
3869
4045
|
{ provide: AbstractTableComponent, useExisting: TableComponent }
|
|
3870
|
-
], usesInheritance: true, ngImport: i0, template: "<
|
|
4046
|
+
], usesInheritance: true, ngImport: i0, template: "<aup-table-body [tableModel]=\"tableModel\"\n [showHeader$]=\"showHeader$\"\n [enableScrolling]=\"enableScrolling\"\n (visibleRowCount)=\"updatePageSize($event)\"\n></aup-table-body>\n<section class=\"table-footer\">\n <div class=\"footer-content\"><ng-content select=\"[footer]\"></ng-content></div>\n <aup-paginator *ngIf=\"tableModel.pageController\" [pageController]=\"tableModel.pageController\"></aup-paginator>\n</section>\n", styles: [":host{display:flex;flex-direction:column;align-items:stretch}aup-table-body{flex:1}.table-footer{display:flex;flex-direction:row;align-items:center}.table-footer .footer-content{flex:1}\n"], components: [{ type: TableBodyComponent, selector: "aup-table-body", inputs: ["tableModel", "showHeader$", "showHeader", "enableScrolling"], outputs: ["visibleRowCount"] }, { type: PaginatorComponent, selector: "aup-paginator", inputs: ["pageController"] }], directives: [{ type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] });
|
|
3871
4047
|
__decorate([
|
|
3872
4048
|
TrackExternal(),
|
|
3873
|
-
__metadata("design:type",
|
|
4049
|
+
__metadata("design:type", TableModel)
|
|
3874
4050
|
], TableComponent.prototype, "tableModel", void 0);
|
|
4051
|
+
__decorate([
|
|
4052
|
+
Trace(),
|
|
4053
|
+
__metadata("design:type", Function),
|
|
4054
|
+
__metadata("design:paramtypes", [Number]),
|
|
4055
|
+
__metadata("design:returntype", void 0)
|
|
4056
|
+
], TableComponent.prototype, "updatePageSize", null);
|
|
3875
4057
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.3", ngImport: i0, type: TableComponent, decorators: [{
|
|
3876
4058
|
type: Component,
|
|
3877
4059
|
args: [{ selector: 'aup-table', providers: [
|
|
3878
4060
|
{ provide: AbstractTableComponent, useExisting: TableComponent }
|
|
3879
|
-
], template: "<
|
|
3880
|
-
}],
|
|
4061
|
+
], template: "<aup-table-body [tableModel]=\"tableModel\"\n [showHeader$]=\"showHeader$\"\n [enableScrolling]=\"enableScrolling\"\n (visibleRowCount)=\"updatePageSize($event)\"\n></aup-table-body>\n<section class=\"table-footer\">\n <div class=\"footer-content\"><ng-content select=\"[footer]\"></ng-content></div>\n <aup-paginator *ngIf=\"tableModel.pageController\" [pageController]=\"tableModel.pageController\"></aup-paginator>\n</section>\n", styles: [":host{display:flex;flex-direction:column;align-items:stretch}aup-table-body{flex:1}.table-footer{display:flex;flex-direction:row;align-items:center}.table-footer .footer-content{flex:1}\n"] }]
|
|
4062
|
+
}], propDecorators: { tableModel: [{
|
|
3881
4063
|
type: Input
|
|
3882
|
-
}] } });
|
|
4064
|
+
}], updatePageSize: [] } });
|
|
3883
4065
|
|
|
3884
4066
|
const SVG_HEIGHT = 60;
|
|
3885
4067
|
class TreeInheritanceIconComponent {
|
|
@@ -4456,17 +4638,17 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.3", ngImpor
|
|
|
4456
4638
|
* }
|
|
4457
4639
|
*/
|
|
4458
4640
|
class TreeTableComponent extends AbstractTableComponent {
|
|
4459
|
-
constructor(
|
|
4460
|
-
super(
|
|
4641
|
+
constructor(injector) {
|
|
4642
|
+
super(injector);
|
|
4461
4643
|
}
|
|
4462
4644
|
getModel() {
|
|
4463
4645
|
return this.treeTableModel;
|
|
4464
4646
|
}
|
|
4465
4647
|
}
|
|
4466
|
-
TreeTableComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.3", ngImport: i0, type: TreeTableComponent, deps: [{ token: i0.
|
|
4648
|
+
TreeTableComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.3", ngImport: i0, type: TreeTableComponent, deps: [{ token: i0.Injector }], target: i0.ɵɵFactoryTarget.Component });
|
|
4467
4649
|
TreeTableComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.2.3", type: TreeTableComponent, selector: "aup-tree-table", inputs: { treeTableModel: "treeTableModel" }, providers: [
|
|
4468
4650
|
{ provide: AbstractTableComponent, useExisting: TreeTableComponent }
|
|
4469
|
-
], usesInheritance: true, ngImport: i0, template: "<
|
|
4651
|
+
], usesInheritance: true, ngImport: i0, template: "<aup-table-body [tableModel]=\"treeTableModel\"\n [showHeader$]=\"showHeader$\"\n [enableScrolling]=\"enableScrolling\"\n></aup-table-body>\n", styles: [":host{display:flex;flex-direction:column;align-items:stretch}:host::ng-deep td.mat-cell{border-top-width:0!important;border-bottom-width:0!important}:host::ng-deep td.mat-column-tree-label,:host::ng-deep td.mat-column-tree-label{width:1px}:host::ng-deep aup-table-cell-renderer[column-id=tree-label]{padding-left:8px!important}:host::ng-deep aup-tree-label-cell-renderer{flex:1}\n"], components: [{ type: TableBodyComponent, selector: "aup-table-body", inputs: ["tableModel", "showHeader$", "showHeader", "enableScrolling"], outputs: ["visibleRowCount"] }] });
|
|
4470
4652
|
__decorate([
|
|
4471
4653
|
TrackExternal(),
|
|
4472
4654
|
__metadata("design:type", TreeTableModel)
|
|
@@ -4475,8 +4657,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.3", ngImpor
|
|
|
4475
4657
|
type: Component,
|
|
4476
4658
|
args: [{ selector: 'aup-tree-table', providers: [
|
|
4477
4659
|
{ provide: AbstractTableComponent, useExisting: TreeTableComponent }
|
|
4478
|
-
], template: "<
|
|
4479
|
-
}], ctorParameters: function () { return [{ type: i0.
|
|
4660
|
+
], template: "<aup-table-body [tableModel]=\"treeTableModel\"\n [showHeader$]=\"showHeader$\"\n [enableScrolling]=\"enableScrolling\"\n></aup-table-body>\n", styles: [":host{display:flex;flex-direction:column;align-items:stretch}:host::ng-deep td.mat-cell{border-top-width:0!important;border-bottom-width:0!important}:host::ng-deep td.mat-column-tree-label,:host::ng-deep td.mat-column-tree-label{width:1px}:host::ng-deep aup-table-cell-renderer[column-id=tree-label]{padding-left:8px!important}:host::ng-deep aup-tree-label-cell-renderer{flex:1}\n"] }]
|
|
4661
|
+
}], ctorParameters: function () { return [{ type: i0.Injector }]; }, propDecorators: { treeTableModel: [{
|
|
4480
4662
|
type: Input
|
|
4481
4663
|
}] } });
|
|
4482
4664
|
|
|
@@ -4551,38 +4733,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.3", ngImpor
|
|
|
4551
4733
|
args: ['keyup.arrowUp', ['$event']]
|
|
4552
4734
|
}] } });
|
|
4553
4735
|
|
|
4554
|
-
class PaginatorComponent extends DisposableComponent {
|
|
4555
|
-
constructor() {
|
|
4556
|
-
super();
|
|
4557
|
-
}
|
|
4558
|
-
ngOnInit() {
|
|
4559
|
-
}
|
|
4560
|
-
get totalPages() {
|
|
4561
|
-
return this.pageController.totalPages.value;
|
|
4562
|
-
}
|
|
4563
|
-
get pageNumber() {
|
|
4564
|
-
return this.pageController.pageNumber.value;
|
|
4565
|
-
}
|
|
4566
|
-
get previousCommand() {
|
|
4567
|
-
return this.pageController.previousCommand;
|
|
4568
|
-
}
|
|
4569
|
-
get nextCommand() {
|
|
4570
|
-
return this.pageController.nextCommand;
|
|
4571
|
-
}
|
|
4572
|
-
}
|
|
4573
|
-
PaginatorComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.3", ngImport: i0, type: PaginatorComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
4574
|
-
PaginatorComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.2.3", type: PaginatorComponent, selector: "aup-paginator", inputs: { pageController: "pageController" }, usesInheritance: true, ngImport: i0, template: "<p>Page {{pageNumber}} of {{totalPages}}</p>\n<button mat-icon-button [pectinCommand]=\"previousCommand\"><aup-icon icon=\"mat:keyboard_arrow_left\"></aup-icon></button>\n<button mat-icon-button [pectinCommand]=\"nextCommand\"><aup-icon icon=\"mat:keyboard_arrow_right\"></aup-icon></button>\n\n", styles: [":host{display:flex;flex-direction:row;justify-content:flex-end;align-items:center;font-size:12px;padding:0 8px;color:#0009}:host p{color:inherit;margin-right:8px}:host button.md-button.md-icon-button{padding:0;margin:0;width:30px;height:30px}\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: CommandDirective, selector: "[pectinCommand]", inputs: ["pectinCommand", "commandParameter"] }] });
|
|
4575
|
-
__decorate([
|
|
4576
|
-
TrackExternal(),
|
|
4577
|
-
__metadata("design:type", PageController)
|
|
4578
|
-
], PaginatorComponent.prototype, "pageController", void 0);
|
|
4579
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.3", ngImport: i0, type: PaginatorComponent, decorators: [{
|
|
4580
|
-
type: Component,
|
|
4581
|
-
args: [{ selector: 'aup-paginator', template: "<p>Page {{pageNumber}} of {{totalPages}}</p>\n<button mat-icon-button [pectinCommand]=\"previousCommand\"><aup-icon icon=\"mat:keyboard_arrow_left\"></aup-icon></button>\n<button mat-icon-button [pectinCommand]=\"nextCommand\"><aup-icon icon=\"mat:keyboard_arrow_right\"></aup-icon></button>\n\n", styles: [":host{display:flex;flex-direction:row;justify-content:flex-end;align-items:center;font-size:12px;padding:0 8px;color:#0009}:host p{color:inherit;margin-right:8px}:host button.md-button.md-icon-button{padding:0;margin:0;width:30px;height:30px}\n"] }]
|
|
4582
|
-
}], ctorParameters: function () { return []; }, propDecorators: { pageController: [{
|
|
4583
|
-
type: Input
|
|
4584
|
-
}] } });
|
|
4585
|
-
|
|
4586
4736
|
class LabelledValueComponent extends DisposableComponent {
|
|
4587
4737
|
constructor() {
|
|
4588
4738
|
super();
|
|
@@ -4700,7 +4850,6 @@ ComponentsModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", versio
|
|
|
4700
4850
|
EditRowControls,
|
|
4701
4851
|
ColumnTemplateDirective,
|
|
4702
4852
|
DefaultCellRendererComponent,
|
|
4703
|
-
DefaultListCellRendererComponent,
|
|
4704
4853
|
TableCellComponent,
|
|
4705
4854
|
SelectionCellComponent,
|
|
4706
4855
|
SelectionHeaderCellComponent,
|
|
@@ -4729,7 +4878,8 @@ ComponentsModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", versio
|
|
|
4729
4878
|
CardStackComponent,
|
|
4730
4879
|
LabelledValueComponent,
|
|
4731
4880
|
LoadingContainerComponent,
|
|
4732
|
-
MarkdownComponent
|
|
4881
|
+
MarkdownComponent,
|
|
4882
|
+
TableBodyComponent], imports: [CommonModule,
|
|
4733
4883
|
BrowserAnimationsModule,
|
|
4734
4884
|
FormsModule,
|
|
4735
4885
|
MatInputModule,
|
|
@@ -4864,7 +5014,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.3", ngImpor
|
|
|
4864
5014
|
EditRowControls,
|
|
4865
5015
|
ColumnTemplateDirective,
|
|
4866
5016
|
DefaultCellRendererComponent,
|
|
4867
|
-
DefaultListCellRendererComponent,
|
|
4868
5017
|
TableCellComponent,
|
|
4869
5018
|
SelectionCellComponent,
|
|
4870
5019
|
SelectionHeaderCellComponent,
|
|
@@ -4893,7 +5042,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.3", ngImpor
|
|
|
4893
5042
|
CardStackComponent,
|
|
4894
5043
|
LabelledValueComponent,
|
|
4895
5044
|
LoadingContainerComponent,
|
|
4896
|
-
MarkdownComponent
|
|
5045
|
+
MarkdownComponent,
|
|
5046
|
+
TableBodyComponent
|
|
4897
5047
|
],
|
|
4898
5048
|
exports: [
|
|
4899
5049
|
NumberInputComponent,
|
|
@@ -8170,98 +8320,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.3", ngImpor
|
|
|
8170
8320
|
}]
|
|
8171
8321
|
}] });
|
|
8172
8322
|
|
|
8173
|
-
/**
|
|
8174
|
-
* Example:
|
|
8175
|
-
* @example
|
|
8176
|
-
* const model = new TableModel(heroList, table => {
|
|
8177
|
-
* table.pluck("firstName");
|
|
8178
|
-
* table.pluck("lastName");
|
|
8179
|
-
* table.addCustomColumn("fullName", hero => `${hero.firstName} ${hero.lastName}`);
|
|
8180
|
-
* });
|
|
8181
|
-
*
|
|
8182
|
-
* Editable tables
|
|
8183
|
-
* @example
|
|
8184
|
-
* const saveCommand = UnaryCommand.create((form: Form<Hero>) => {
|
|
8185
|
-
* if (form.validate()) {
|
|
8186
|
-
* // normal form save stuff
|
|
8187
|
-
* return true; // finish editing
|
|
8188
|
-
* }
|
|
8189
|
-
* return false; // continue editiing
|
|
8190
|
-
* }
|
|
8191
|
-
* const colorsNames: ListModel<string> = ...;
|
|
8192
|
-
* const model = TableModel.fromList(heroList, table => {
|
|
8193
|
-
* table.pluck("firstName").cellEditor(StringInputComponent); <-- interface CellEditor { valueModel: DirtyTrackingForm.ValueModel<string> | ValueModel<string>; }
|
|
8194
|
-
* table.pluck("lastName").cellEditor(StringInputComponent, {
|
|
8195
|
-
* validators: [Validator.present("We need a last name")]
|
|
8196
|
-
* });
|
|
8197
|
-
* table.pluck("age").cellEditor(NumberInputComponent);
|
|
8198
|
-
* table.pluck("favoriteColor").cellEditor(SelectInputComponent, {
|
|
8199
|
-
* initialiseComponent(component: SelectInputComponent) {
|
|
8200
|
-
* selectInput.optionsModel = colorsNames; // <- initialise our component
|
|
8201
|
-
* }
|
|
8202
|
-
* });
|
|
8203
|
-
* table.addEditControls(saveCommand); // <- required to enable editing
|
|
8204
|
-
* });
|
|
8205
|
-
*
|
|
8206
|
-
* Selection models
|
|
8207
|
-
* @example
|
|
8208
|
-
* const model = new TableModel(heroList, table => {
|
|
8209
|
-
* table.addSelectionColumn(selectionModel); // <- can be single or multiple selection model
|
|
8210
|
-
* table.pluck("firstName");
|
|
8211
|
-
* table.pluck("lastName");
|
|
8212
|
-
* });
|
|
8213
|
-
*
|
|
8214
|
-
* Custom cell renderers and editors
|
|
8215
|
-
* @example
|
|
8216
|
-
* const model = new TableModel(heroList, table => {
|
|
8217
|
-
* table.pluck("favoriteColor")
|
|
8218
|
-
* .cellHeaderRenderer(CellHeaderRendererComponent, (component, column) => {
|
|
8219
|
-
* // configure your component with what ever you need.
|
|
8220
|
-
* });
|
|
8221
|
-
* .cellRenderer(CellRendererComponent) // <-- interface CellEditor { value: string; }
|
|
8222
|
-
* .cellEditor(CellEditorComponent.); // <-- interface CellEditor { valueModel: DirtyTrackingForm.ValueModel<string> | ValueModel<string>; }
|
|
8223
|
-
* table.addCustomColumn("fullName", hero => `${hero.firstName} ${hero.lastName}`);
|
|
8224
|
-
* });
|
|
8225
|
-
*
|
|
8226
|
-
* Template columns
|
|
8227
|
-
* @example
|
|
8228
|
-
* const model = new TableModel(heroList, table => {
|
|
8229
|
-
* table.addSelectionColumn(selectionModel); // <- can be single or multiple selection model
|
|
8230
|
-
* table.addTemplateColumn("myTemplate");
|
|
8231
|
-
* });
|
|
8232
|
-
*
|
|
8233
|
-
* <div *aupColumnTemplate="let hero; columnId: 'myTemplate'">{{hero.age}}</div>
|
|
8234
|
-
*
|
|
8235
|
-
* I18n
|
|
8236
|
-
* @example
|
|
8237
|
-
* [table.yml]
|
|
8238
|
-
* table:
|
|
8239
|
-
* columns(ColumnTextProperties[]):
|
|
8240
|
-
* firstName:
|
|
8241
|
-
* headerText: "First Name"
|
|
8242
|
-
* fullName:
|
|
8243
|
-
* headerText: "Full Name"
|
|
8244
|
-
*
|
|
8245
|
-
* const model = new TableModel(heroList, table => {
|
|
8246
|
-
* table.pluck("favoriteColor").cellRenderer(...).cellEditor(...);
|
|
8247
|
-
* table.addCustomColumn("fullName", hero => `${hero.firstName} ${hero.lastName}`);
|
|
8248
|
-
*
|
|
8249
|
-
* table.columnTextProperties(I18n.table.columns); // <- configures all columns
|
|
8250
|
-
* });
|
|
8251
|
-
*/
|
|
8252
|
-
class TableModel extends AbstractTableModel {
|
|
8253
|
-
constructor(sourceOfTruth, builder) {
|
|
8254
|
-
super();
|
|
8255
|
-
if (builder) {
|
|
8256
|
-
builder(this);
|
|
8257
|
-
}
|
|
8258
|
-
this.setDataSource(sourceOfTruth);
|
|
8259
|
-
}
|
|
8260
|
-
addSelectionColumn(selectionModel, showSelectionColumn) {
|
|
8261
|
-
return this._addSelectionColumn(selectionModel, showSelectionColumn);
|
|
8262
|
-
}
|
|
8263
|
-
}
|
|
8264
|
-
|
|
8265
8323
|
/**
|
|
8266
8324
|
* @file Automatically generated by barrelsby.
|
|
8267
8325
|
*/
|
|
@@ -9671,7 +9729,8 @@ AngularUiPowerupsModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0",
|
|
|
9671
9729
|
DirectivesModule,
|
|
9672
9730
|
ComponentsModule,
|
|
9673
9731
|
PlaceModule,
|
|
9674
|
-
InteractionModule
|
|
9732
|
+
InteractionModule,
|
|
9733
|
+
ObserversModule], exports: [InteractionModule,
|
|
9675
9734
|
PlaceModule,
|
|
9676
9735
|
DirectivesModule,
|
|
9677
9736
|
ComponentsModule,
|
|
@@ -9688,7 +9747,8 @@ AngularUiPowerupsModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0",
|
|
|
9688
9747
|
DirectivesModule,
|
|
9689
9748
|
ComponentsModule,
|
|
9690
9749
|
PlaceModule,
|
|
9691
|
-
InteractionModule
|
|
9750
|
+
InteractionModule,
|
|
9751
|
+
ObserversModule
|
|
9692
9752
|
], InteractionModule,
|
|
9693
9753
|
PlaceModule,
|
|
9694
9754
|
DirectivesModule,
|
|
@@ -9708,7 +9768,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.3", ngImpor
|
|
|
9708
9768
|
DirectivesModule,
|
|
9709
9769
|
ComponentsModule,
|
|
9710
9770
|
PlaceModule,
|
|
9711
|
-
InteractionModule
|
|
9771
|
+
InteractionModule,
|
|
9772
|
+
ObserversModule
|
|
9712
9773
|
],
|
|
9713
9774
|
exports: [
|
|
9714
9775
|
InteractionModule,
|
|
@@ -10198,5 +10259,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.3", ngImpor
|
|
|
10198
10259
|
* Generated bundle index. Do not edit.
|
|
10199
10260
|
*/
|
|
10200
10261
|
|
|
10201
|
-
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,
|
|
10262
|
+
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, 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, TableBodyComponent, 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 };
|
|
10202
10263
|
//# sourceMappingURL=coolon-angular-ui-powerups.mjs.map
|