@coolon/angular-ui-powerups 3.11.2 → 3.13.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/CHANGELOG.md +14 -0
- package/assets/table.scss +6 -0
- package/bundles/coolon-angular-ui-powerups.umd.js +156 -119
- package/bundles/coolon-angular-ui-powerups.umd.js.map +1 -1
- package/bundles/coolon-angular-ui-powerups.umd.min.js +1 -1
- package/bundles/coolon-angular-ui-powerups.umd.min.js.map +1 -1
- package/coolon-angular-ui-powerups.metadata.json +1 -1
- package/esm2015/lib/components/card-container/card-container.component.js +1 -1
- package/esm2015/lib/components/card-container/card-container.component.metadata.json +1 -1
- package/esm2015/lib/components/components.module.ngfactory.js.map +1 -1
- package/esm2015/lib/components/resize-aware.component.js +3 -3
- package/esm2015/lib/components/resize-aware.component.js.map +1 -1
- package/esm2015/lib/components/resize-aware.component.metadata.json +1 -1
- package/esm2015/lib/components/table/table.component.js +41 -9
- package/esm2015/lib/components/table/table.component.js.map +1 -1
- package/esm2015/lib/components/table/table.component.metadata.json +1 -1
- package/fesm2015/coolon-angular-ui-powerups.js +126 -94
- package/fesm2015/coolon-angular-ui-powerups.js.map +1 -1
- package/lib/components/resize-aware.component.d.ts +1 -1
- package/lib/components/table/table.component.d.ts +11 -5
- package/package.json +2 -2
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { __decorate, __metadata } from "tslib";
|
|
2
|
-
import { Component, Input } from '@angular/core';
|
|
3
|
-
import { Dsl, TrackExternal } from '@coolon/pectin';
|
|
4
|
-
import {
|
|
2
|
+
import { Component, ElementRef, HostBinding, Input, NgZone } from '@angular/core';
|
|
3
|
+
import { Dsl, MutableValueModel, StoreInValueModel, TrackExternal, ValueModel } from '@coolon/pectin';
|
|
4
|
+
import { ResizeAwareComponent } from '../resize-aware.component';
|
|
5
5
|
import { AbstractTableModel } from './abstract-table-model';
|
|
6
6
|
import { CustomTemplateColumnModel } from './column-model';
|
|
7
7
|
/**
|
|
@@ -33,9 +33,27 @@ import { CustomTemplateColumnModel } from './column-model';
|
|
|
33
33
|
* }
|
|
34
34
|
* }
|
|
35
35
|
*/
|
|
36
|
-
export class TableComponent extends
|
|
37
|
-
constructor() {
|
|
38
|
-
super();
|
|
36
|
+
export class TableComponent extends ResizeAwareComponent {
|
|
37
|
+
constructor(elementRef, ngZone) {
|
|
38
|
+
super(elementRef, ngZone);
|
|
39
|
+
// TODO: support user defined header and row heights via css vars.
|
|
40
|
+
this.headerHeight = new MutableValueModel(56);
|
|
41
|
+
this.rowHeight = new MutableValueModel(48);
|
|
42
|
+
const { chain, when } = Dsl.disposeWith(this);
|
|
43
|
+
const actualHeaderHeight = chain(this.showHeaderModel).map(show => {
|
|
44
|
+
return show ? this.headerHeight.value : 0;
|
|
45
|
+
}, { dependsOn: this.headerHeight });
|
|
46
|
+
this.visibleRowCount = chain(this.boundsModel).map(bounds => {
|
|
47
|
+
// TODO: this doesn't take into account any css styling adjustments etc. Will invistigate if it's an issue.
|
|
48
|
+
const rawRowCount = (bounds.height - actualHeaderHeight.value) / this.rowHeight.value;
|
|
49
|
+
return rawRowCount < 1 ? 0 : Math.floor(rawRowCount);
|
|
50
|
+
}, {
|
|
51
|
+
dependsOn: [actualHeaderHeight, this.rowHeight],
|
|
52
|
+
postponeWhile: chain(this.boundsModel).pluckNumeric('height').isLessThan(1)
|
|
53
|
+
});
|
|
54
|
+
}
|
|
55
|
+
get hideHeader() {
|
|
56
|
+
return !this.showHeader;
|
|
39
57
|
}
|
|
40
58
|
ngOnInit() {
|
|
41
59
|
const { chain, valueOf, before, when, after, observe, switchOn } = Dsl.disposeWith(this);
|
|
@@ -60,15 +78,29 @@ TableComponent.decorators = [
|
|
|
60
78
|
{ type: Component, args: [{
|
|
61
79
|
selector: 'aup-table',
|
|
62
80
|
template: "<table mat-table [dataSource]=\"tableModel.dataSource.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()\">\n <aup-table-header-cell-renderer [column]=\"column\"\n [attr.column-index]=\"index\"\n [attr.column-id]=\"column.columnId\"\n [class.first-column]=\"first\"\n [class.last-column]=\"last\"\n ></aup-table-header-cell-renderer>\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 >\n <aup-table-cell-renderer [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.first-column]=\"first\"\n [class.last-column]=\"last\"\n ></aup-table-cell-renderer>\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.trackBy]=\"tableModel.trackBy(i, row)\"\n ></tr>\n\n</table>\n",
|
|
63
|
-
styles: [":host{align-items:stretch;display:flex;flex-direction:column}:host table{
|
|
81
|
+
styles: [":host{align-items:stretch;display:flex;flex-direction:column}:host table{width:100%}"]
|
|
64
82
|
},] }
|
|
65
83
|
];
|
|
66
|
-
TableComponent.ctorParameters = () => [
|
|
84
|
+
TableComponent.ctorParameters = () => [
|
|
85
|
+
{ type: ElementRef },
|
|
86
|
+
{ type: NgZone }
|
|
87
|
+
];
|
|
67
88
|
TableComponent.propDecorators = {
|
|
68
|
-
tableModel: [{ type: Input }]
|
|
89
|
+
tableModel: [{ type: Input }],
|
|
90
|
+
showHeaderModel: [{ type: Input }],
|
|
91
|
+
showHeader: [{ type: Input }],
|
|
92
|
+
hideHeader: [{ type: HostBinding, args: ["class.hide-header",] }]
|
|
69
93
|
};
|
|
70
94
|
__decorate([
|
|
71
95
|
TrackExternal(),
|
|
72
96
|
__metadata("design:type", AbstractTableModel)
|
|
73
97
|
], TableComponent.prototype, "tableModel", void 0);
|
|
98
|
+
__decorate([
|
|
99
|
+
TrackExternal({ defaultValue: true }),
|
|
100
|
+
__metadata("design:type", ValueModel)
|
|
101
|
+
], TableComponent.prototype, "showHeaderModel", void 0);
|
|
102
|
+
__decorate([
|
|
103
|
+
StoreInValueModel("showHeaderModel"),
|
|
104
|
+
__metadata("design:type", Boolean)
|
|
105
|
+
], TableComponent.prototype, "showHeader", void 0);
|
|
74
106
|
//# sourceMappingURL=table.component.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"table.component.js","sourceRoot":"","sources":["../../../../../../../libs/angular-ui-powerups/src/lib/components/table/table.component.ts"],"names":[],"mappings":";AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"table.component.js","sourceRoot":"","sources":["../../../../../../../libs/angular-ui-powerups/src/lib/components/table/table.component.ts"],"names":[],"mappings":";AAAA,OAAO,EACL,SAAS,EACT,UAAU,EACV,WAAW,EACX,KAAK,EACL,MAAM,EAIP,MAAM,eAAe,CAAC;AACvB,OAAO,EACL,GAAG,EAGH,iBAAiB,EACjB,iBAAiB,EACjB,aAAa,EACb,UAAU,EACX,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAC;AACjE,OAAO,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;AAC5D,OAAO,EAAe,yBAAyB,EAAE,MAAM,gBAAgB,CAAC;AAExE;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AAMH,MAAM,OAAO,cAAoB,SAAQ,oBAAoB;IAwB3D,YAAY,UAAsB,EAAE,MAAc;QAChD,KAAK,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC;QAL5B,kEAAkE;QACjD,iBAAY,GAAG,IAAI,iBAAiB,CAAS,EAAE,CAAC,CAAC;QACjD,cAAS,GAAG,IAAI,iBAAiB,CAAS,EAAE,CAAC,CAAC;QAI7D,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,GAAG,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;QAE9C,MAAM,kBAAkB,GAAG,KAAK,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC,GAAG,CAAE,IAAI,CAAC,EAAE;YACjE,OAAO,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;QAC5C,CAAC,EAAE,EAAC,SAAS,EAAE,IAAI,CAAC,YAAY,EAAC,CAAC,CAAC;QAEnC,IAAI,CAAC,eAAe,GAAG,KAAK,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE;YAC1D,4GAA4G;YAC5G,MAAM,WAAW,GAAG,CAAC,MAAM,CAAC,MAAM,GAAG,kBAAkB,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC;YACtF,OAAO,WAAW,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;QACvD,CAAC,EAAE;YACD,SAAS,EAAE,CAAC,kBAAkB,EAAE,IAAI,CAAC,SAAS,CAAC;YAC/C,aAAa,EAAE,KAAK,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC;SAC5E,CAAC,CAAC;IACL,CAAC;IAED,IACI,UAAU;QACZ,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC;IAC1B,CAAC;IAGD,QAAQ;QACN,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,GAAG,GAAG,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;QACzF,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;QAC9C,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;QACvD,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;IAC7D,CAAC;IAED,SAAS,CAAC,GAAQ;QAChB,OAAO,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,iBAAiB,CAAC,GAAG,CAAC,CAAC;IAClD,CAAC;IAED,sBAAsB,CAAC,QAAgB,EAAE,WAA6B,EAAE,aAA+B,EAAE,QAAiB,EAAE,QAAiB;QAC3I,MAAM,MAAM,GAAG,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QAC9C,IAAI,MAAM,YAAY,yBAAyB,EAAE;YAC/C,MAAM,CAAC,WAAW,CAAC,WAAW,EAAE,aAAa,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAC;SACpE;IACH,CAAC;IAED,iBAAiB,CAAC,WAA6B,EAAE,GAAQ;QACvD,IAAI,CAAC,UAAU,CAAC,kBAAkB,CAAC,WAAW,EAAE,GAAG,CAAC,CAAC;IACvD,CAAC;;;YAzEF,SAAS,SAAC;gBACT,QAAQ,EAAE,WAAW;gBACrB,uyDAAqC;;aAEtC;;;YAtDC,UAAU;YAGV,MAAM;;;yBAsDL,KAAK;8BAIL,KAAK;yBAIL,KAAK;yBAgCL,WAAW,SAAC,mBAAmB;;AAtChC;IADC,aAAa,EAAE;8BACJ,kBAAkB;kDAAM;AAIpC;IADC,aAAa,CAAC,EAAC,YAAY,EAAE,IAAI,EAAC,CAAC;8BACnB,UAAU;uDAAU;AAIrC;IADC,iBAAiB,CAAC,iBAAiB,CAAC;;kDACjB","sourcesContent":["import {\n Component,\n ElementRef,\n HostBinding,\n Input,\n NgZone,\n OnInit,\n TemplateRef,\n ViewContainerRef\n} from '@angular/core';\nimport {\n Dsl,\n ListModelChain,\n MapModelChain,\n MutableValueModel,\n StoreInValueModel,\n TrackExternal,\n ValueModel\n} from '@coolon/pectin';\nimport { ResizeAwareComponent } from '../resize-aware.component';\nimport { AbstractTableModel } from './abstract-table-model';\nimport { ColumnModel, CustomTemplateColumnModel } from './column-model';\n\n/**\n * Create your model:\n * @example\n * this.heroTableModel = TableModel.fromList(heroList, table => {\n * table.pluck(\"firstName\");\n * table.pluck(\"lastName\");\n * table.addCustomColumn(\"fullName\", hero => `${hero.firstName} ${hero.lastName}`);\n * });\n *\n * Create your table\n * @example\n * <aup-table [tableModel]=\"heroTableModel\"></aup-table>\n *\n * Styling\n * @example\n * aup-table {\n * --column-gap: 10px; // defaults to 24px\n * --row-hover-background-color, rgba(0, 0, 0, 0.05)\n * --row-selected-background-color: rebeccapurple; // defaults to transparent\n * aup-table-cell-renderer {\n * &:first-column {\n * // do stuff\n * }\n * &:last-column {\n * // do stuff\n * }\n * }\n * }\n */\n@Component({\n selector: 'aup-table',\n templateUrl: './table.component.html',\n styleUrls: ['./table.component.scss']\n})\nexport class TableComponent<Row> extends ResizeAwareComponent implements OnInit {\n\n @Input()\n @TrackExternal()\n tableModel: AbstractTableModel<Row>;\n\n @Input()\n @TrackExternal({defaultValue: true})\n showHeaderModel: ValueModel<boolean>;\n\n @Input()\n @StoreInValueModel(\"showHeaderModel\")\n showHeader: boolean;\n\n columns: ListModelChain<ColumnModel<Row>>;\n columnIds: ListModelChain<string>;\n private columnsById: MapModelChain<string, ColumnModel<Row>>;\n\n readonly visibleRowCount: ValueModel<number>;\n\n // TODO: support user defined header and row heights via css vars.\n private readonly headerHeight = new MutableValueModel<number>(56);\n private readonly rowHeight = new MutableValueModel<number>(48);\n\n constructor(elementRef: ElementRef, ngZone: NgZone) {\n super(elementRef, ngZone);\n const { chain, when } = Dsl.disposeWith(this);\n\n const actualHeaderHeight = chain(this.showHeaderModel).map( show => {\n return show ? this.headerHeight.value : 0;\n }, {dependsOn: this.headerHeight});\n\n this.visibleRowCount = chain(this.boundsModel).map(bounds => {\n // TODO: this doesn't take into account any css styling adjustments etc. Will invistigate if it's an issue.\n const rawRowCount = (bounds.height - actualHeaderHeight.value) / this.rowHeight.value;\n return rawRowCount < 1 ? 0 : Math.floor(rawRowCount);\n }, {\n dependsOn: [actualHeaderHeight, this.rowHeight],\n postponeWhile: chain(this.boundsModel).pluckNumeric('height').isLessThan(1)\n });\n }\n\n @HostBinding(\"class.hide-header\")\n get hideHeader() {\n return !this.showHeader;\n }\n\n\n ngOnInit(): void {\n const { chain, valueOf, before, when, after, observe, switchOn } = Dsl.disposeWith(this);\n this.columns = chain(this.tableModel.columns);\n this.columnIds = chain(this.columns).pluck('columnId');\n this.columnsById = chain(this.columns).indexBy('columnId');\n }\n\n isEditing(row: Row): boolean {\n return !!this.tableModel.getEditSessionFor(row);\n }\n\n registerColumnTemplate(columnId: string, templateRef: TemplateRef<any>, viewContainer: ViewContainerRef, fillCell: boolean, padChild: boolean) {\n const column = this.columnsById.get(columnId);\n if (column instanceof CustomTemplateColumnModel) {\n column.setTemplate(templateRef, viewContainer, fillCell, padChild);\n }\n }\n\n notifyCellClicked(columnModel: ColumnModel<Row>, row: Row) {\n this.tableModel._notifyCellClicked(columnModel, row);\n }\n\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
[{"__symbolic":"module","version":4,"metadata":{"TableComponent":{"__symbolic":"class","extends":{"__symbolic":"reference","module":"../
|
|
1
|
+
[{"__symbolic":"module","version":4,"metadata":{"TableComponent":{"__symbolic":"class","extends":{"__symbolic":"reference","module":"../resize-aware.component","name":"ResizeAwareComponent","line":57,"character":41},"arity":1,"decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":52,"character":1},"arguments":[{"selector":"aup-table","template":"<table mat-table [dataSource]=\"tableModel.dataSource.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()\">\n <aup-table-header-cell-renderer [column]=\"column\"\n [attr.column-index]=\"index\"\n [attr.column-id]=\"column.columnId\"\n [class.first-column]=\"first\"\n [class.last-column]=\"last\"\n ></aup-table-header-cell-renderer>\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 >\n <aup-table-cell-renderer [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.first-column]=\"first\"\n [class.last-column]=\"last\"\n ></aup-table-cell-renderer>\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.trackBy]=\"tableModel.trackBy(i, row)\"\n ></tr>\n\n</table>\n","styles":[":host{align-items:stretch;display:flex;flex-direction:column}:host table{width:100%}"]}]}],"members":{"tableModel":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":59,"character":3}},{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@coolon/pectin","name":"TrackExternal","line":60,"character":3}}]}],"showHeaderModel":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":63,"character":3}},{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@coolon/pectin","name":"TrackExternal","line":64,"character":3},"arguments":[{"defaultValue":true}]}]}],"showHeader":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":67,"character":3}},{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@coolon/pectin","name":"StoreInValueModel","line":68,"character":3},"arguments":["showHeaderModel"]}]}],"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"@angular/core","name":"ElementRef","line":81,"character":26},{"__symbolic":"reference","module":"@angular/core","name":"NgZone","line":81,"character":46}]}],"hideHeader":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"HostBinding","line":99,"character":3},"arguments":["class.hide-header"]}]}],"ngOnInit":[{"__symbolic":"method"}],"isEditing":[{"__symbolic":"method"}],"registerColumnTemplate":[{"__symbolic":"method"}],"notifyCellClicked":[{"__symbolic":"method"}]}}}}]
|
|
@@ -24,13 +24,13 @@ import { __decorate, __metadata, __awaiter } from 'tslib';
|
|
|
24
24
|
import { Memoize } from '@typescript-plus/fast-memoize-decorator/dist/src';
|
|
25
25
|
import _, { find, filter, each, isNil, isEqual } from 'lodash';
|
|
26
26
|
import { Enum } from 'typescript-string-enums';
|
|
27
|
+
import ResizeObserver from 'resize-observer-polyfill';
|
|
27
28
|
import { assert as assert$1, Mixin, Opts, lang as lang$1, Klass } from '@coolon/typescript-utilities';
|
|
28
29
|
import produce from 'immer';
|
|
29
30
|
import { FlexModule, GridModule } from '@angular/flex-layout';
|
|
30
31
|
import { MatDialogModule, MatDialog, MAT_DIALOG_DEFAULT_OPTIONS, MatDialogConfig } from '@angular/material/dialog';
|
|
31
32
|
import { RouterModule, ActivatedRouteSnapshot, NavigationStart, NavigationCancel, UrlSegment, Router, UrlSerializer, NavigationEnd, NavigationError } from '@angular/router';
|
|
32
33
|
import { Overlay, CdkScrollable } from '@angular/cdk/overlay';
|
|
33
|
-
import ResizeObserver from 'resize-observer-polyfill';
|
|
34
34
|
import { MatListModule } from '@angular/material/list';
|
|
35
35
|
import { Memoize as Memoize$1 } from '@typescript-plus/fast-memoize-decorator';
|
|
36
36
|
import 'reflect-metadata';
|
|
@@ -520,7 +520,7 @@ CardContainerComponent.decorators = [
|
|
|
520
520
|
{ type: Component, args: [{
|
|
521
521
|
selector: 'aup-card-container',
|
|
522
522
|
template: "<div class=\"card-container\">\n <ng-content></ng-content>\n\n <div class=\"add-card-container\" *ngIf=\"addCardCommand.enabled.value\" [pectinCommand]=\"addCardCommand\">\n <aup-command-face *ngIf=\"addCardFace\" [faces]=\"[addCardFace]\"></aup-command-face>\n <aup-icon *ngIf=\"!addCardFace\" icon=\"mat:add\"></aup-icon>\n </div>\n\n <div class=\"add-card-template\" *ngIf=\"addCardTemplate\">\n <ng-container [ngTemplateOutlet]=\"addCardTemplate\"></ng-container>\n </div>\n\n</div>\n",
|
|
523
|
-
styles: [":root{--aup-default-background:#fff;--aup-default-padding:var(--default-padding,18px)}aup-activity-title{font-family:Roboto,Helvetica Neue,sans-serif;font-size:20px;letter-spacing:normal;line-height:32px;margin-bottom:var(--default-padding)}.router-outlet-container>*{bottom:0;left:0;position:absolute;right:0;top:0}[no-tab-header]>mat-tab-header{display:none}[full-height-tabs] .mat-tab-body-wrapper,mat-tab-group.full-height-tabs .mat-tab-body-wrapper{flex:1}[full-height-tabs] .mat-tab-body-wrapper .mat-tab-body-content,[full-height-tabs] .mat-tab-body-wrapper mat-tab-body,mat-tab-group.full-height-tabs .mat-tab-body-wrapper .mat-tab-body-content,mat-tab-group.full-height-tabs .mat-tab-body-wrapper mat-tab-body{display:flex;flex-direction:column;justify-content:stretch}.dialog-interaction-context,.dialog-interaction-context mat-dialog-container{max-height:95vh!important;max-width:95vw!important}.dialog-interaction-context mat-dialog-container{padding:0}.activity-outlet-wrapper{align-items:stretch;display:flex;flex-direction:column}.aup-popup-interaction-panel{background:var(--aup-default-background,#fff);box-shadow:0 2px 1px -1px rgba(0,0,0,.2),0 1px 1px 0 rgba(0,0,0,.14),0 1px 3px 0 rgba(0,0,0,.12);transition:box-shadow .28s cubic-bezier(.4,0,.2,1)}.aup-input-activity{padding:calc(var(--aup-default-padding)/2)}.aup-input-component{display:block}.aup-input-component input,.aup-input-component mat-form-field{width:100%}.aup-input-component input mat-hint.faux-error,.aup-input-component mat-form-field mat-hint.faux-error{color:#f44336}.aup-input-component.dense mat-form-field .mat-form-field-infix{border-top:none}.aup-input-component.dense mat-form-field .mat-form-field-flex{padding-top:0}.aup-input-component.dense mat-form-field .mat-form-field-wrapper{border-bottom:0;padding-bottom:0}.aup-input-component.dense mat-form-field .mat-form-field-underline{bottom:0}.aup-input-component.dense mat-form-field.mat-form-field-can-float.mat-form-field-should-float .mat-form-field-label-wrapper{display:none}.aup-input-component.dense mat-form-field.mat-form-field-appearance-standard.mat-form-field-has-label .mat-select:not(.mat-select-empty) .mat-select-arrow-wrapper{transform:translateY(0)}aup-table-cell-renderer>.aup-input-component .mat-form-field-flex{padding-top:0}aup-table-cell-renderer>.aup-input-component .mat-form-field-infix{width:0}aup-table-cell-renderer>.aup-input-component .mat-form-field-label-wrapper{display:none}aup-table{--default-column-gap:var(--column-gap,24px);--resolved-row-hover-background-color:var(--row-hover-background-color,rgba(0,0,0,0.05));--resolved-row-selected-background-color:var(--row-selected-background-color,rgba(0,0,255,0.04))}aup-table .mat-table td.mat-cell:first-of-type,aup-table .mat-table td.mat-footer-cell:first-of-type,aup-table .mat-table th.mat-header-cell:first-of-type{padding-left:0}aup-table .mat-table tr.enable-hover:hover{background-color:var(--resolved-row-hover-background-color)}aup-table .mat-table tr.aup-row-selected,aup-table .mat-table tr.aup-row-selected.enable-hover:hover{background-color:var(--resolved-row-selected-background-color)}aup-table .mat-table td.enable-cursor{cursor:pointer}aup-table .mat-table .mat-cell:not(.flex),aup-table .mat-table .mat-header-cell:not(.flex){white-space:nowrap;width:1px}aup-table aup-table-cell-renderer,aup-table aup-table-header-cell-renderer{align-items:stretch;display:flex;flex-direction:column;height:100%;justify-content:center;min-height:47px}aup-table aup-table-cell-renderer.first-column,aup-table aup-table-cell-renderer:not(.first-column),aup-table aup-table-header-cell-renderer.first-column,aup-table aup-table-header-cell-renderer:not(.first-column){padding-left:var(--default-column-gap)}aup-table aup-table-cell-renderer.fillCell{justify-content:stretch;padding-left:0!important}aup-table aup-table-cell-renderer.padChild>:first-child{flex:1;padding-left:var(--default-column-gap)}:root{--aup-command-face-icon-gap:8px;--aup-fa-icon-width:18px;--aup-icon-width:24px}aup-icon{--fa-icon-offset:calc((var(--aup-icon-width) - var(--aup-fa-icon-width))/2);position:relative}aup-icon fa-icon .svg-inline--fa{height:var(--aup-fa-icon-width)!important;left:var(--fa-icon-offset);position:absolute;top:var(--fa-icon-offset);width:var(--aup-fa-icon-width)!important}.mat-menu-panel aup-icon .svg-inline--fa{opacity:.54}:host{--resolved-card-background:var(--card-background,#fcfcfb);--resolved-card-gap:var(--card-gap,16px);--resolved-card-height:var(--card-height,auto);--resolved-card-min-height:var(--card-min-height,auto);--resolved-card-width:var(--card-width,300px);background:var(--resolved-card-background);display:block;flex:1}.card-container{box-sizing:border-box;display:-ms-grid;display:grid;grid-gap:var(--resolved-card-gap);grid-template-columns:repeat(auto-fill,var(--resolved-card-width));grid-template-rows:repeat(auto-fit,minmax(var(--resolved-card-min-height),var(--resolved-card-height)));max-width:100%;min-height:calc(var(--resolved-card-height) + 2*var(--resolved-card-gap));min-width:calc(var(--resolved-card-width) + 2*var(--resolved-card-gap));padding:var(--resolved-card-gap);width:calc((var(--resolved-card-width) + var(--resolved-card-gap))*2 + var(--grid-gap))}.add-card-container{align-items:center;background-color:hsla(0,0%,100%,.8);border:2px dashed rgba(0,0,0,.1);border-radius:6px;box-sizing:border-box;color:rgba(0,0,0,.54);cursor:pointer;display:flex;flex-direction:column;font-weight:300;height:var(--resolved-card-height);justify-content:center;min-height:var(--resolved-card-min-height);transition:all .28s cubic-bezier(.4,0,.2,1);width:var(--resolved-card-width)}.add-card-container mat-icon{font-size:200%}.add-card-container:hover{background-color:#fff;border-color:transparent;color:rgba(0,0,0,.54);transition:box-shadow .28s cubic-bezier(.4,0,.2,1);transition:all .28s cubic-bezier(.4,0,.2,1)}.add-card-container:hover:hover{box-shadow:0 2px 4px -1px rgba(0,0,0,.2),0 4px 5px 0 rgba(0,0,0,.14),0 1px 10px 0 rgba(0,0,0,.12)}.add-card-template-container{align-items:stretch;display:flex;flex-direction:column;height:var(--resolved-card-height);justify-content:stretch;width:var(--resolved-card-width)}"]
|
|
523
|
+
styles: [":root{--aup-default-background:#fff;--aup-default-padding:var(--default-padding,18px)}aup-activity-title{font-family:Roboto,Helvetica Neue,sans-serif;font-size:20px;letter-spacing:normal;line-height:32px;margin-bottom:var(--default-padding)}.router-outlet-container>*{bottom:0;left:0;position:absolute;right:0;top:0}[no-tab-header]>mat-tab-header{display:none}[full-height-tabs] .mat-tab-body-wrapper,mat-tab-group.full-height-tabs .mat-tab-body-wrapper{flex:1}[full-height-tabs] .mat-tab-body-wrapper .mat-tab-body-content,[full-height-tabs] .mat-tab-body-wrapper mat-tab-body,mat-tab-group.full-height-tabs .mat-tab-body-wrapper .mat-tab-body-content,mat-tab-group.full-height-tabs .mat-tab-body-wrapper mat-tab-body{display:flex;flex-direction:column;justify-content:stretch}.dialog-interaction-context,.dialog-interaction-context mat-dialog-container{max-height:95vh!important;max-width:95vw!important}.dialog-interaction-context mat-dialog-container{padding:0}.activity-outlet-wrapper{align-items:stretch;display:flex;flex-direction:column}.aup-popup-interaction-panel{background:var(--aup-default-background,#fff);box-shadow:0 2px 1px -1px rgba(0,0,0,.2),0 1px 1px 0 rgba(0,0,0,.14),0 1px 3px 0 rgba(0,0,0,.12);transition:box-shadow .28s cubic-bezier(.4,0,.2,1)}.aup-input-activity{padding:calc(var(--aup-default-padding)/2)}.aup-input-component{display:block}.aup-input-component input,.aup-input-component mat-form-field{width:100%}.aup-input-component input mat-hint.faux-error,.aup-input-component mat-form-field mat-hint.faux-error{color:#f44336}.aup-input-component.dense mat-form-field .mat-form-field-infix{border-top:none}.aup-input-component.dense mat-form-field .mat-form-field-flex{padding-top:0}.aup-input-component.dense mat-form-field .mat-form-field-wrapper{border-bottom:0;padding-bottom:0}.aup-input-component.dense mat-form-field .mat-form-field-underline{bottom:0}.aup-input-component.dense mat-form-field.mat-form-field-can-float.mat-form-field-should-float .mat-form-field-label-wrapper{display:none}.aup-input-component.dense mat-form-field.mat-form-field-appearance-standard.mat-form-field-has-label .mat-select:not(.mat-select-empty) .mat-select-arrow-wrapper{transform:translateY(0)}aup-table-cell-renderer>.aup-input-component .mat-form-field-flex{padding-top:0}aup-table-cell-renderer>.aup-input-component .mat-form-field-infix{width:0}aup-table-cell-renderer>.aup-input-component .mat-form-field-label-wrapper{display:none}aup-table{--default-column-gap:var(--column-gap,24px);--resolved-row-hover-background-color:var(--row-hover-background-color,rgba(0,0,0,0.05));--resolved-row-selected-background-color:var(--row-selected-background-color,rgba(0,0,255,0.04))}aup-table.hide-header .mat-table thead{display:none}aup-table .mat-table td.mat-cell:first-of-type,aup-table .mat-table td.mat-footer-cell:first-of-type,aup-table .mat-table th.mat-header-cell:first-of-type{padding-left:0}aup-table .mat-table tr.enable-hover:hover{background-color:var(--resolved-row-hover-background-color)}aup-table .mat-table tr.aup-row-selected,aup-table .mat-table tr.aup-row-selected.enable-hover:hover{background-color:var(--resolved-row-selected-background-color)}aup-table .mat-table td.enable-cursor{cursor:pointer}aup-table .mat-table .mat-cell:not(.flex),aup-table .mat-table .mat-header-cell:not(.flex){white-space:nowrap;width:1px}aup-table aup-table-cell-renderer,aup-table aup-table-header-cell-renderer{align-items:stretch;display:flex;flex-direction:column;height:100%;justify-content:center;min-height:47px}aup-table aup-table-cell-renderer.first-column,aup-table aup-table-cell-renderer:not(.first-column),aup-table aup-table-header-cell-renderer.first-column,aup-table aup-table-header-cell-renderer:not(.first-column){padding-left:var(--default-column-gap)}aup-table aup-table-cell-renderer.fillCell{justify-content:stretch;padding-left:0!important}aup-table aup-table-cell-renderer.padChild>:first-child{flex:1;padding-left:var(--default-column-gap)}:root{--aup-command-face-icon-gap:8px;--aup-fa-icon-width:18px;--aup-icon-width:24px}aup-icon{--fa-icon-offset:calc((var(--aup-icon-width) - var(--aup-fa-icon-width))/2);position:relative}aup-icon fa-icon .svg-inline--fa{height:var(--aup-fa-icon-width)!important;left:var(--fa-icon-offset);position:absolute;top:var(--fa-icon-offset);width:var(--aup-fa-icon-width)!important}.mat-menu-panel aup-icon .svg-inline--fa{opacity:.54}:host{--resolved-card-background:var(--card-background,#fcfcfb);--resolved-card-gap:var(--card-gap,16px);--resolved-card-height:var(--card-height,auto);--resolved-card-min-height:var(--card-min-height,auto);--resolved-card-width:var(--card-width,300px);background:var(--resolved-card-background);display:block;flex:1}.card-container{box-sizing:border-box;display:-ms-grid;display:grid;grid-gap:var(--resolved-card-gap);grid-template-columns:repeat(auto-fill,var(--resolved-card-width));grid-template-rows:repeat(auto-fit,minmax(var(--resolved-card-min-height),var(--resolved-card-height)));max-width:100%;min-height:calc(var(--resolved-card-height) + 2*var(--resolved-card-gap));min-width:calc(var(--resolved-card-width) + 2*var(--resolved-card-gap));padding:var(--resolved-card-gap);width:calc((var(--resolved-card-width) + var(--resolved-card-gap))*2 + var(--grid-gap))}.add-card-container{align-items:center;background-color:hsla(0,0%,100%,.8);border:2px dashed rgba(0,0,0,.1);border-radius:6px;box-sizing:border-box;color:rgba(0,0,0,.54);cursor:pointer;display:flex;flex-direction:column;font-weight:300;height:var(--resolved-card-height);justify-content:center;min-height:var(--resolved-card-min-height);transition:all .28s cubic-bezier(.4,0,.2,1);width:var(--resolved-card-width)}.add-card-container mat-icon{font-size:200%}.add-card-container:hover{background-color:#fff;border-color:transparent;color:rgba(0,0,0,.54);transition:box-shadow .28s cubic-bezier(.4,0,.2,1);transition:all .28s cubic-bezier(.4,0,.2,1)}.add-card-container:hover:hover{box-shadow:0 2px 4px -1px rgba(0,0,0,.2),0 4px 5px 0 rgba(0,0,0,.14),0 1px 10px 0 rgba(0,0,0,.12)}.add-card-template-container{align-items:stretch;display:flex;flex-direction:column;height:var(--resolved-card-height);justify-content:stretch;width:var(--resolved-card-width)}"]
|
|
524
524
|
},] }
|
|
525
525
|
];
|
|
526
526
|
CardContainerComponent.ctorParameters = () => [];
|
|
@@ -1812,6 +1812,92 @@ __decorate([
|
|
|
1812
1812
|
__metadata("design:type", Object)
|
|
1813
1813
|
], SwitchCaseComponent.prototype, "switch", void 0);
|
|
1814
1814
|
|
|
1815
|
+
class Dimension {
|
|
1816
|
+
constructor(width, height) {
|
|
1817
|
+
this.width = width;
|
|
1818
|
+
this.height = height;
|
|
1819
|
+
}
|
|
1820
|
+
}
|
|
1821
|
+
|
|
1822
|
+
class Point {
|
|
1823
|
+
constructor(x, y) {
|
|
1824
|
+
this.x = x;
|
|
1825
|
+
this.y = y;
|
|
1826
|
+
}
|
|
1827
|
+
static from(data) {
|
|
1828
|
+
return new Point(data.x, data.y);
|
|
1829
|
+
}
|
|
1830
|
+
translate(x, y) {
|
|
1831
|
+
return new Point(this.x + x, this.y + y);
|
|
1832
|
+
}
|
|
1833
|
+
}
|
|
1834
|
+
|
|
1835
|
+
class Bounds extends Dimension {
|
|
1836
|
+
constructor(top, left, width, height) {
|
|
1837
|
+
super(width, height);
|
|
1838
|
+
this.top = top;
|
|
1839
|
+
this.left = left;
|
|
1840
|
+
this.width = width;
|
|
1841
|
+
this.height = height;
|
|
1842
|
+
}
|
|
1843
|
+
relativePositionOf(point) {
|
|
1844
|
+
if (point instanceof MouseEvent) {
|
|
1845
|
+
return new Point(point.clientX - this.left, point.clientY - this.top);
|
|
1846
|
+
}
|
|
1847
|
+
else {
|
|
1848
|
+
return new Point(point.x - this.left, point.y - this.top);
|
|
1849
|
+
}
|
|
1850
|
+
}
|
|
1851
|
+
}
|
|
1852
|
+
(function (Bounds) {
|
|
1853
|
+
function ofElement(element) {
|
|
1854
|
+
const rect = element.getBoundingClientRect();
|
|
1855
|
+
return new Bounds(rect.top, rect.left, rect.width, rect.height);
|
|
1856
|
+
}
|
|
1857
|
+
Bounds.ofElement = ofElement;
|
|
1858
|
+
})(Bounds || (Bounds = {}));
|
|
1859
|
+
|
|
1860
|
+
class ResizeAwareComponent extends DisposableComponent {
|
|
1861
|
+
constructor(elementRef, ngZone) {
|
|
1862
|
+
super();
|
|
1863
|
+
this.elementRef = elementRef;
|
|
1864
|
+
this.ngZone = ngZone;
|
|
1865
|
+
this._boundsModel = new MutableValueModel(new Bounds(0, 0, 0, 0));
|
|
1866
|
+
}
|
|
1867
|
+
ngAfterViewInit() {
|
|
1868
|
+
this._updateBounds();
|
|
1869
|
+
const element = this.elementRef.nativeElement;
|
|
1870
|
+
const ro = new ResizeObserver((entries, observer) => {
|
|
1871
|
+
this.ngZone.run(() => this._updateBounds());
|
|
1872
|
+
});
|
|
1873
|
+
ro.observe(element);
|
|
1874
|
+
this.onDispose(() => ro.disconnect());
|
|
1875
|
+
}
|
|
1876
|
+
get boundsModel() {
|
|
1877
|
+
return this._boundsModel.readonly;
|
|
1878
|
+
}
|
|
1879
|
+
get nativeElement() {
|
|
1880
|
+
return this.elementRef.nativeElement;
|
|
1881
|
+
}
|
|
1882
|
+
// TODO: Make this handle body scroll
|
|
1883
|
+
relativePositionOf(point) {
|
|
1884
|
+
return this.bounds.relativePositionOf(point);
|
|
1885
|
+
}
|
|
1886
|
+
get bounds() {
|
|
1887
|
+
return this._boundsModel.value;
|
|
1888
|
+
}
|
|
1889
|
+
_updateBounds() {
|
|
1890
|
+
this._boundsModel.value = Bounds.ofElement(this.nativeElement);
|
|
1891
|
+
}
|
|
1892
|
+
}
|
|
1893
|
+
ResizeAwareComponent.decorators = [
|
|
1894
|
+
{ type: Directive }
|
|
1895
|
+
];
|
|
1896
|
+
ResizeAwareComponent.ctorParameters = () => [
|
|
1897
|
+
{ type: ElementRef },
|
|
1898
|
+
{ type: NgZone }
|
|
1899
|
+
];
|
|
1900
|
+
|
|
1815
1901
|
const HEADER_CELL_RENDERER_PORTAL = Symbol('aup-cell-header-renderer-component-ref');
|
|
1816
1902
|
const CELL_RENDERER_PORTAL = Symbol('aup-cell-renderer-component-ref');
|
|
1817
1903
|
const CELL_EDITOR_PORTAL = Symbol('aup-cell-editor-component-ref');
|
|
@@ -2568,9 +2654,27 @@ AbstractTableModel = __decorate([
|
|
|
2568
2654
|
* }
|
|
2569
2655
|
* }
|
|
2570
2656
|
*/
|
|
2571
|
-
class TableComponent extends
|
|
2572
|
-
constructor() {
|
|
2573
|
-
super();
|
|
2657
|
+
class TableComponent extends ResizeAwareComponent {
|
|
2658
|
+
constructor(elementRef, ngZone) {
|
|
2659
|
+
super(elementRef, ngZone);
|
|
2660
|
+
// TODO: support user defined header and row heights via css vars.
|
|
2661
|
+
this.headerHeight = new MutableValueModel(56);
|
|
2662
|
+
this.rowHeight = new MutableValueModel(48);
|
|
2663
|
+
const { chain, when } = Dsl.disposeWith(this);
|
|
2664
|
+
const actualHeaderHeight = chain(this.showHeaderModel).map(show => {
|
|
2665
|
+
return show ? this.headerHeight.value : 0;
|
|
2666
|
+
}, { dependsOn: this.headerHeight });
|
|
2667
|
+
this.visibleRowCount = chain(this.boundsModel).map(bounds => {
|
|
2668
|
+
// TODO: this doesn't take into account any css styling adjustments etc. Will invistigate if it's an issue.
|
|
2669
|
+
const rawRowCount = (bounds.height - actualHeaderHeight.value) / this.rowHeight.value;
|
|
2670
|
+
return rawRowCount < 1 ? 0 : Math.floor(rawRowCount);
|
|
2671
|
+
}, {
|
|
2672
|
+
dependsOn: [actualHeaderHeight, this.rowHeight],
|
|
2673
|
+
postponeWhile: chain(this.boundsModel).pluckNumeric('height').isLessThan(1)
|
|
2674
|
+
});
|
|
2675
|
+
}
|
|
2676
|
+
get hideHeader() {
|
|
2677
|
+
return !this.showHeader;
|
|
2574
2678
|
}
|
|
2575
2679
|
ngOnInit() {
|
|
2576
2680
|
const { chain, valueOf, before, when, after, observe, switchOn } = Dsl.disposeWith(this);
|
|
@@ -2595,17 +2699,31 @@ TableComponent.decorators = [
|
|
|
2595
2699
|
{ type: Component, args: [{
|
|
2596
2700
|
selector: 'aup-table',
|
|
2597
2701
|
template: "<table mat-table [dataSource]=\"tableModel.dataSource.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()\">\n <aup-table-header-cell-renderer [column]=\"column\"\n [attr.column-index]=\"index\"\n [attr.column-id]=\"column.columnId\"\n [class.first-column]=\"first\"\n [class.last-column]=\"last\"\n ></aup-table-header-cell-renderer>\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 >\n <aup-table-cell-renderer [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.first-column]=\"first\"\n [class.last-column]=\"last\"\n ></aup-table-cell-renderer>\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.trackBy]=\"tableModel.trackBy(i, row)\"\n ></tr>\n\n</table>\n",
|
|
2598
|
-
styles: [":host{align-items:stretch;display:flex;flex-direction:column}:host table{
|
|
2702
|
+
styles: [":host{align-items:stretch;display:flex;flex-direction:column}:host table{width:100%}"]
|
|
2599
2703
|
},] }
|
|
2600
2704
|
];
|
|
2601
|
-
TableComponent.ctorParameters = () => [
|
|
2705
|
+
TableComponent.ctorParameters = () => [
|
|
2706
|
+
{ type: ElementRef },
|
|
2707
|
+
{ type: NgZone }
|
|
2708
|
+
];
|
|
2602
2709
|
TableComponent.propDecorators = {
|
|
2603
|
-
tableModel: [{ type: Input }]
|
|
2710
|
+
tableModel: [{ type: Input }],
|
|
2711
|
+
showHeaderModel: [{ type: Input }],
|
|
2712
|
+
showHeader: [{ type: Input }],
|
|
2713
|
+
hideHeader: [{ type: HostBinding, args: ["class.hide-header",] }]
|
|
2604
2714
|
};
|
|
2605
2715
|
__decorate([
|
|
2606
2716
|
TrackExternal(),
|
|
2607
2717
|
__metadata("design:type", AbstractTableModel)
|
|
2608
2718
|
], TableComponent.prototype, "tableModel", void 0);
|
|
2719
|
+
__decorate([
|
|
2720
|
+
TrackExternal({ defaultValue: true }),
|
|
2721
|
+
__metadata("design:type", ValueModel)
|
|
2722
|
+
], TableComponent.prototype, "showHeaderModel", void 0);
|
|
2723
|
+
__decorate([
|
|
2724
|
+
StoreInValueModel("showHeaderModel"),
|
|
2725
|
+
__metadata("design:type", Boolean)
|
|
2726
|
+
], TableComponent.prototype, "showHeader", void 0);
|
|
2609
2727
|
|
|
2610
2728
|
class ColumnTemplateDirective {
|
|
2611
2729
|
constructor(host, templateRef, viewContainer) {
|
|
@@ -4678,92 +4796,6 @@ SelectInputActivity.decorators = [
|
|
|
4678
4796
|
},] }
|
|
4679
4797
|
];
|
|
4680
4798
|
|
|
4681
|
-
class Dimension {
|
|
4682
|
-
constructor(width, height) {
|
|
4683
|
-
this.width = width;
|
|
4684
|
-
this.height = height;
|
|
4685
|
-
}
|
|
4686
|
-
}
|
|
4687
|
-
|
|
4688
|
-
class Point {
|
|
4689
|
-
constructor(x, y) {
|
|
4690
|
-
this.x = x;
|
|
4691
|
-
this.y = y;
|
|
4692
|
-
}
|
|
4693
|
-
static from(data) {
|
|
4694
|
-
return new Point(data.x, data.y);
|
|
4695
|
-
}
|
|
4696
|
-
translate(x, y) {
|
|
4697
|
-
return new Point(this.x + x, this.y + y);
|
|
4698
|
-
}
|
|
4699
|
-
}
|
|
4700
|
-
|
|
4701
|
-
class Bounds extends Dimension {
|
|
4702
|
-
constructor(top, left, width, height) {
|
|
4703
|
-
super(width, height);
|
|
4704
|
-
this.top = top;
|
|
4705
|
-
this.left = left;
|
|
4706
|
-
this.width = width;
|
|
4707
|
-
this.height = height;
|
|
4708
|
-
}
|
|
4709
|
-
relativePositionOf(point) {
|
|
4710
|
-
if (point instanceof MouseEvent) {
|
|
4711
|
-
return new Point(point.clientX - this.left, point.clientY - this.top);
|
|
4712
|
-
}
|
|
4713
|
-
else {
|
|
4714
|
-
return new Point(point.x - this.left, point.y - this.top);
|
|
4715
|
-
}
|
|
4716
|
-
}
|
|
4717
|
-
}
|
|
4718
|
-
(function (Bounds) {
|
|
4719
|
-
function ofElement(element) {
|
|
4720
|
-
const rect = element.getBoundingClientRect();
|
|
4721
|
-
return new Bounds(rect.top, rect.left, rect.width, rect.height);
|
|
4722
|
-
}
|
|
4723
|
-
Bounds.ofElement = ofElement;
|
|
4724
|
-
})(Bounds || (Bounds = {}));
|
|
4725
|
-
|
|
4726
|
-
class ResizeAwareComponent extends DisposableComponent {
|
|
4727
|
-
constructor(elementRef, ngZone) {
|
|
4728
|
-
super();
|
|
4729
|
-
this.elementRef = elementRef;
|
|
4730
|
-
this.ngZone = ngZone;
|
|
4731
|
-
this._boundsModel = new MutableValueModel(new Bounds(0, 0, 0, 0));
|
|
4732
|
-
}
|
|
4733
|
-
ngAfterViewInit() {
|
|
4734
|
-
this.updateBounds();
|
|
4735
|
-
const element = this.elementRef.nativeElement;
|
|
4736
|
-
const ro = new ResizeObserver((entries, observer) => {
|
|
4737
|
-
this.ngZone.run(() => this.updateBounds());
|
|
4738
|
-
});
|
|
4739
|
-
ro.observe(element);
|
|
4740
|
-
this.onDispose(() => ro.disconnect());
|
|
4741
|
-
}
|
|
4742
|
-
get boundsModel() {
|
|
4743
|
-
return this._boundsModel.readonly;
|
|
4744
|
-
}
|
|
4745
|
-
get nativeElement() {
|
|
4746
|
-
return this.elementRef.nativeElement;
|
|
4747
|
-
}
|
|
4748
|
-
// TODO: Make this handle body scroll
|
|
4749
|
-
relativePositionOf(point) {
|
|
4750
|
-
return this.bounds.relativePositionOf(point);
|
|
4751
|
-
}
|
|
4752
|
-
get bounds() {
|
|
4753
|
-
return this._boundsModel.value;
|
|
4754
|
-
}
|
|
4755
|
-
updateBounds() {
|
|
4756
|
-
this._boundsModel.value = Bounds.ofElement(this.nativeElement);
|
|
4757
|
-
}
|
|
4758
|
-
}
|
|
4759
|
-
ResizeAwareComponent.decorators = [
|
|
4760
|
-
{ type: Directive }
|
|
4761
|
-
];
|
|
4762
|
-
ResizeAwareComponent.ctorParameters = () => [
|
|
4763
|
-
{ type: ElementRef },
|
|
4764
|
-
{ type: NgZone }
|
|
4765
|
-
];
|
|
4766
|
-
|
|
4767
4799
|
/**
|
|
4768
4800
|
* Example:
|
|
4769
4801
|
* @example
|