mat-table-ext 0.0.11 → 1.0.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.
Files changed (33) hide show
  1. package/README.md +63 -57
  2. package/assets/_theming.scss +7 -7
  3. package/assets/pinLeft.svg +11 -11
  4. package/assets/pinNone.svg +5 -5
  5. package/assets/pinRight.svg +11 -11
  6. package/assets/pinned.svg +6 -2
  7. package/fesm2022/mat-table-ext.mjs +3040 -0
  8. package/fesm2022/mat-table-ext.mjs.map +1 -0
  9. package/index.d.ts +858 -5
  10. package/package.json +16 -22
  11. package/esm2020/lib/components/column-pinning/column-pinning.component.mjs +0 -58
  12. package/esm2020/lib/components/editing/editing.component.mjs +0 -122
  13. package/esm2020/lib/components/filter-columns-component/filter-columns-component.component.mjs +0 -68
  14. package/esm2020/lib/directives/resize-column.directive.mjs +0 -99
  15. package/esm2020/lib/mat-table-ext.component.mjs +0 -1020
  16. package/esm2020/lib/mat-table-ext.module.mjs +0 -237
  17. package/esm2020/lib/mat-table-ext.service.mjs +0 -20
  18. package/esm2020/lib/models/tableExtModels.mjs +0 -2
  19. package/esm2020/mat-table-ext.mjs +0 -5
  20. package/esm2020/public-api.mjs +0 -11
  21. package/fesm2015/mat-table-ext.mjs +0 -1584
  22. package/fesm2015/mat-table-ext.mjs.map +0 -1
  23. package/fesm2020/mat-table-ext.mjs +0 -1581
  24. package/fesm2020/mat-table-ext.mjs.map +0 -1
  25. package/lib/components/column-pinning/column-pinning.component.d.ts +0 -27
  26. package/lib/components/editing/editing.component.d.ts +0 -42
  27. package/lib/components/filter-columns-component/filter-columns-component.component.d.ts +0 -26
  28. package/lib/directives/resize-column.directive.d.ts +0 -27
  29. package/lib/mat-table-ext.component.d.ts +0 -348
  30. package/lib/mat-table-ext.module.d.ts +0 -58
  31. package/lib/mat-table-ext.service.d.ts +0 -11
  32. package/lib/models/tableExtModels.d.ts +0 -76
  33. package/public-api.d.ts +0 -7
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "mat-table-ext",
3
- "version": "0.0.11",
3
+ "version": "1.0.0",
4
4
  "description": "The mat-table-ext is a powerful material table extension component used to display tabular data with extra features.",
5
5
  "homepage": "https://fastcode-inc.github.io/custom-table-doc",
6
6
  "keywords": [
@@ -19,27 +19,25 @@
19
19
  "url": "https://github.com/fastcode-inc/custom-table"
20
20
  },
21
21
  "peerDependencies": {
22
- "@angular/animations": "^14.2.0",
23
- "@angular/cdk": "^14.2.4",
24
- "@angular/common": "^14.2.0",
25
- "@angular/compiler": "^14.2.0",
26
- "@angular/core": "^14.2.0",
27
- "@angular/forms": "^14.2.0",
28
- "@angular/material": "^14.2.4",
29
- "@angular/platform-browser": "^14.2.0",
30
- "@angular/platform-browser-dynamic": "^14.2.0",
31
- "@angular/router": "^14.2.0",
22
+ "@angular/animations": "^20.2.0",
23
+ "@angular/cdk": "^20.2.0",
24
+ "@angular/common": "^20.2.0",
25
+ "@angular/compiler": "^20.2.0",
26
+ "@angular/core": "^20.2.0",
27
+ "@angular/forms": "^20.2.0",
28
+ "@angular/material": "^20.2.0",
29
+ "@angular/platform-browser": "^20.2.0",
30
+ "@angular/platform-browser-dynamic": "^20.2.0",
31
+ "@angular/router": "^20.2.0",
32
32
  "@ngx-translate/core": "^14.0.0",
33
- "xlsx": "^0.18.5"
33
+ "xlsx": "^0.18.5",
34
+ "jspdf": "^3.0.4",
35
+ "jspdf-autotable": "^5.0.2"
34
36
  },
35
37
  "dependencies": {
36
38
  "tslib": "^2.3.0"
37
39
  },
38
- "module": "fesm2015/mat-table-ext.mjs",
39
- "es2020": "fesm2020/mat-table-ext.mjs",
40
- "esm2020": "esm2020/mat-table-ext.mjs",
41
- "fesm2020": "fesm2020/mat-table-ext.mjs",
42
- "fesm2015": "fesm2015/mat-table-ext.mjs",
40
+ "module": "fesm2022/mat-table-ext.mjs",
43
41
  "typings": "index.d.ts",
44
42
  "exports": {
45
43
  "./package.json": {
@@ -47,11 +45,7 @@
47
45
  },
48
46
  ".": {
49
47
  "types": "./index.d.ts",
50
- "esm2020": "./esm2020/mat-table-ext.mjs",
51
- "es2020": "./fesm2020/mat-table-ext.mjs",
52
- "es2015": "./fesm2015/mat-table-ext.mjs",
53
- "node": "./fesm2015/mat-table-ext.mjs",
54
- "default": "./fesm2020/mat-table-ext.mjs"
48
+ "default": "./fesm2022/mat-table-ext.mjs"
55
49
  }
56
50
  },
57
51
  "sideEffects": false
@@ -1,58 +0,0 @@
1
- import { Component, EventEmitter, Input, Output } from '@angular/core';
2
- import * as i0 from "@angular/core";
3
- import * as i1 from "@angular/common";
4
- import * as i2 from "@angular/material/button";
5
- import * as i3 from "@angular/material/icon";
6
- import * as i4 from "@angular/material/tooltip";
7
- export class ColumnPinningComponent {
8
- constructor() {
9
- this.columnsChanged = new EventEmitter();
10
- this.icons = {
11
- left: 'pinLeft',
12
- right: 'pinRight',
13
- none: 'pinNone',
14
- };
15
- }
16
- ngOnInit() { }
17
- /**
18
- * @description This method is called when pin value changes for a column.
19
- * @param column column of which to set the pin value
20
- */
21
- changeValue(column) {
22
- if (column.pinned) {
23
- if (column.pinned == 'left') {
24
- this.setColumnPinValue(column, 'right');
25
- }
26
- else if (column.pinned == 'right') {
27
- this.setColumnPinValue(column, undefined);
28
- }
29
- }
30
- else {
31
- this.setColumnPinValue(column, 'left');
32
- }
33
- this.columnsChanged.emit(this.columns);
34
- }
35
- /**
36
- * @description This method is used to set the column pin value.
37
- * @param column column of which to set the pin value
38
- * @param value pin value to set
39
- */
40
- setColumnPinValue(column, value) {
41
- this.columns.forEach((col) => {
42
- if (column?.header == col.header) {
43
- col.pinned = value;
44
- }
45
- });
46
- }
47
- }
48
- ColumnPinningComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: ColumnPinningComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
49
- ColumnPinningComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.12", type: ColumnPinningComponent, selector: "app-column-pinning", inputs: { columns: "columns" }, outputs: { columnsChanged: "columnsChanged" }, ngImport: i0, template: "<div class=\"pinning-list-item\" *ngFor=\"let column of columns\" style=\"display: flex; \">\r\n <button mat-icon-button >\r\n <mat-icon (click)=\"changeValue(column)\" matTooltip=\"{{column['pinned'] ? (column['pinned'] | titlecase):'None'}}\"\r\n svgIcon=\"{{column['pinned'] =='left'|| column['pinned'] =='right' ? icons[column['pinned']]:'pinNone'}}\" class=\"pinning-icon\"></mat-icon>\r\n </button>\r\n <span class=\"column-headers\">{{column.header}}</span>\r\n</div>", styles: [".pinning-list-item{display:flex;justify-content:flex-start;align-items:baseline;height:3em}.column-headers{font-family:Roboto,Helvetica Neue,sans-serif}\n"], dependencies: [{ kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "component", type: i2.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"] }, { kind: "component", type: i3.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "directive", type: i4.MatTooltip, selector: "[matTooltip]", exportAs: ["matTooltip"] }, { kind: "pipe", type: i1.TitleCasePipe, name: "titlecase" }] });
50
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: ColumnPinningComponent, decorators: [{
51
- type: Component,
52
- args: [{ selector: 'app-column-pinning', template: "<div class=\"pinning-list-item\" *ngFor=\"let column of columns\" style=\"display: flex; \">\r\n <button mat-icon-button >\r\n <mat-icon (click)=\"changeValue(column)\" matTooltip=\"{{column['pinned'] ? (column['pinned'] | titlecase):'None'}}\"\r\n svgIcon=\"{{column['pinned'] =='left'|| column['pinned'] =='right' ? icons[column['pinned']]:'pinNone'}}\" class=\"pinning-icon\"></mat-icon>\r\n </button>\r\n <span class=\"column-headers\">{{column.header}}</span>\r\n</div>", styles: [".pinning-list-item{display:flex;justify-content:flex-start;align-items:baseline;height:3em}.column-headers{font-family:Roboto,Helvetica Neue,sans-serif}\n"] }]
53
- }], ctorParameters: function () { return []; }, propDecorators: { columns: [{
54
- type: Input
55
- }], columnsChanged: [{
56
- type: Output
57
- }] } });
58
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29sdW1uLXBpbm5pbmcuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbWF0LXRhYmxlLWV4dC9zcmMvbGliL2NvbXBvbmVudHMvY29sdW1uLXBpbm5pbmcvY29sdW1uLXBpbm5pbmcuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbWF0LXRhYmxlLWV4dC9zcmMvbGliL2NvbXBvbmVudHMvY29sdW1uLXBpbm5pbmcvY29sdW1uLXBpbm5pbmcuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFVLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQzs7Ozs7O0FBUS9FLE1BQU0sT0FBTyxzQkFBc0I7SUFTakM7UUFQVSxtQkFBYyxHQUErQixJQUFJLFlBQVksRUFBRSxDQUFDO1FBQ25FLFVBQUssR0FBRztZQUNiLElBQUksRUFBRSxTQUFTO1lBQ2YsS0FBSyxFQUFFLFVBQVU7WUFDakIsSUFBSSxFQUFFLFNBQVM7U0FDaEIsQ0FBQztJQUVhLENBQUM7SUFDaEIsUUFBUSxLQUFVLENBQUM7SUFDbkI7OztPQUdHO0lBQ0gsV0FBVyxDQUFDLE1BQWtCO1FBQzVCLElBQUksTUFBTSxDQUFDLE1BQU0sRUFBRTtZQUNqQixJQUFJLE1BQU0sQ0FBQyxNQUFNLElBQUksTUFBTSxFQUFFO2dCQUMzQixJQUFJLENBQUMsaUJBQWlCLENBQUMsTUFBTSxFQUFFLE9BQU8sQ0FBQyxDQUFDO2FBQ3pDO2lCQUFNLElBQUksTUFBTSxDQUFDLE1BQU0sSUFBSSxPQUFPLEVBQUU7Z0JBQ25DLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxNQUFNLEVBQUUsU0FBUyxDQUFDLENBQUM7YUFDM0M7U0FDRjthQUFNO1lBQ0wsSUFBSSxDQUFDLGlCQUFpQixDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQztTQUN4QztRQUNELElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUN6QyxDQUFDO0lBQ0Q7Ozs7T0FJRztJQUNILGlCQUFpQixDQUFDLE1BQWtCLEVBQUUsS0FBbUM7UUFDdkUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsQ0FBQyxHQUFHLEVBQUUsRUFBRTtZQUMzQixJQUFJLE1BQU0sRUFBRSxNQUFNLElBQUksR0FBRyxDQUFDLE1BQU0sRUFBRTtnQkFDaEMsR0FBRyxDQUFDLE1BQU0sR0FBRyxLQUFLLENBQUM7YUFDcEI7UUFDSCxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7O29IQXRDVSxzQkFBc0I7d0dBQXRCLHNCQUFzQix5SUNSbkMsdWZBTU07NEZERU8sc0JBQXNCO2tCQUxsQyxTQUFTOytCQUNFLG9CQUFvQjswRUFLckIsT0FBTztzQkFBZixLQUFLO2dCQUNJLGNBQWM7c0JBQXZCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE9uSW5pdCwgT3V0cHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IE1URXhDb2x1bW4gfSBmcm9tICcuLi8uLi9tb2RlbHMvdGFibGVFeHRNb2RlbHMnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdhcHAtY29sdW1uLXBpbm5pbmcnLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9jb2x1bW4tcGlubmluZy5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vY29sdW1uLXBpbm5pbmcuY29tcG9uZW50LnNjc3MnXSxcclxufSlcclxuZXhwb3J0IGNsYXNzIENvbHVtblBpbm5pbmdDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xyXG4gIEBJbnB1dCgpIGNvbHVtbnMhOiBNVEV4Q29sdW1uW107XHJcbiAgQE91dHB1dCgpIGNvbHVtbnNDaGFuZ2VkOiBFdmVudEVtaXR0ZXI8TVRFeENvbHVtbltdPiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuICBwdWJsaWMgaWNvbnMgPSB7XHJcbiAgICBsZWZ0OiAncGluTGVmdCcsXHJcbiAgICByaWdodDogJ3BpblJpZ2h0JyxcclxuICAgIG5vbmU6ICdwaW5Ob25lJyxcclxuICB9O1xyXG5cclxuICBjb25zdHJ1Y3RvcigpIHt9XHJcbiAgbmdPbkluaXQoKTogdm9pZCB7fVxyXG4gIC8qKlxyXG4gICAqIEBkZXNjcmlwdGlvbiBUaGlzIG1ldGhvZCBpcyBjYWxsZWQgd2hlbiBwaW4gdmFsdWUgY2hhbmdlcyBmb3IgYSBjb2x1bW4uXHJcbiAgICogQHBhcmFtIGNvbHVtbiBjb2x1bW4gb2Ygd2hpY2ggdG8gc2V0IHRoZSBwaW4gdmFsdWVcclxuICAgKi9cclxuICBjaGFuZ2VWYWx1ZShjb2x1bW46IE1URXhDb2x1bW4pIHtcclxuICAgIGlmIChjb2x1bW4ucGlubmVkKSB7XHJcbiAgICAgIGlmIChjb2x1bW4ucGlubmVkID09ICdsZWZ0Jykge1xyXG4gICAgICAgIHRoaXMuc2V0Q29sdW1uUGluVmFsdWUoY29sdW1uLCAncmlnaHQnKTtcclxuICAgICAgfSBlbHNlIGlmIChjb2x1bW4ucGlubmVkID09ICdyaWdodCcpIHtcclxuICAgICAgICB0aGlzLnNldENvbHVtblBpblZhbHVlKGNvbHVtbiwgdW5kZWZpbmVkKTtcclxuICAgICAgfVxyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5zZXRDb2x1bW5QaW5WYWx1ZShjb2x1bW4sICdsZWZ0Jyk7XHJcbiAgICB9XHJcbiAgICB0aGlzLmNvbHVtbnNDaGFuZ2VkLmVtaXQodGhpcy5jb2x1bW5zKTtcclxuICB9XHJcbiAgLyoqXHJcbiAgICogQGRlc2NyaXB0aW9uIFRoaXMgbWV0aG9kIGlzIHVzZWQgdG8gc2V0IHRoZSBjb2x1bW4gcGluIHZhbHVlLlxyXG4gICAqIEBwYXJhbSBjb2x1bW4gY29sdW1uIG9mIHdoaWNoIHRvIHNldCB0aGUgcGluIHZhbHVlXHJcbiAgICogQHBhcmFtIHZhbHVlIHBpbiB2YWx1ZSB0byBzZXRcclxuICAgKi9cclxuICBzZXRDb2x1bW5QaW5WYWx1ZShjb2x1bW46IE1URXhDb2x1bW4sIHZhbHVlOiAnbGVmdCcgfCAncmlnaHQnIHwgdW5kZWZpbmVkKSB7XHJcbiAgICB0aGlzLmNvbHVtbnMuZm9yRWFjaCgoY29sKSA9PiB7XHJcbiAgICAgIGlmIChjb2x1bW4/LmhlYWRlciA9PSBjb2wuaGVhZGVyKSB7XHJcbiAgICAgICAgY29sLnBpbm5lZCA9IHZhbHVlO1xyXG4gICAgICB9XHJcbiAgICB9KTtcclxuICB9XHJcbn1cclxuIiwiPGRpdiBjbGFzcz1cInBpbm5pbmctbGlzdC1pdGVtXCIgKm5nRm9yPVwibGV0IGNvbHVtbiBvZiBjb2x1bW5zXCIgc3R5bGU9XCJkaXNwbGF5OiBmbGV4OyBcIj5cclxuICAgIDxidXR0b24gbWF0LWljb24tYnV0dG9uID5cclxuICAgICAgICA8bWF0LWljb24gKGNsaWNrKT1cImNoYW5nZVZhbHVlKGNvbHVtbilcIiBtYXRUb29sdGlwPVwie3tjb2x1bW5bJ3Bpbm5lZCddID8gKGNvbHVtblsncGlubmVkJ10gfCB0aXRsZWNhc2UpOidOb25lJ319XCJcclxuICAgICAgICAgICAgc3ZnSWNvbj1cInt7Y29sdW1uWydwaW5uZWQnXSA9PSdsZWZ0J3x8IGNvbHVtblsncGlubmVkJ10gPT0ncmlnaHQnID8gaWNvbnNbY29sdW1uWydwaW5uZWQnXV06J3Bpbk5vbmUnfX1cIiBjbGFzcz1cInBpbm5pbmctaWNvblwiPjwvbWF0LWljb24+XHJcbiAgICA8L2J1dHRvbj5cclxuICAgIDxzcGFuIGNsYXNzPVwiY29sdW1uLWhlYWRlcnNcIj57e2NvbHVtbi5oZWFkZXJ9fTwvc3Bhbj5cclxuPC9kaXY+Il19
@@ -1,122 +0,0 @@
1
- import { Component, Inject } from '@angular/core';
2
- import { MAT_DIALOG_DATA } from '@angular/material/dialog';
3
- import * as i0 from "@angular/core";
4
- import * as i1 from "@angular/material/dialog";
5
- import * as i2 from "../../mat-table-ext.service";
6
- import * as i3 from "@angular/common";
7
- import * as i4 from "@angular/forms";
8
- import * as i5 from "@angular/material/core";
9
- import * as i6 from "@angular/material/button";
10
- import * as i7 from "@angular/material/checkbox";
11
- import * as i8 from "@angular/material/icon";
12
- import * as i9 from "@angular/material/form-field";
13
- import * as i10 from "@angular/material/input";
14
- import * as i11 from "@angular/material/select";
15
- export class EditingComponent {
16
- constructor(dialogRef, dialogData, service) {
17
- this.dialogRef = dialogRef;
18
- this.dialogData = dialogData;
19
- this.service = service;
20
- this.keys = [];
21
- this.templateKeys = [];
22
- this.types = {};
23
- this.templateTypes = {};
24
- this.columns = [];
25
- this.templateRow = {};
26
- }
27
- ngOnInit() {
28
- this.setData(this.dialogData);
29
- }
30
- /**
31
- * @description This method is used to set data for editing.
32
- * @param value dialog Data
33
- */
34
- setData(value) {
35
- let row = value.row;
36
- let types = {};
37
- this.keys = [];
38
- this.columns = value.columns;
39
- this.columns.forEach((column) => {
40
- this.keys.push(column.field);
41
- if (column.type == 'selection') {
42
- types[column.field] = column.type;
43
- let temp = row[column.field];
44
- row[column.field] = {
45
- value: temp,
46
- options: column.options,
47
- };
48
- }
49
- else {
50
- types[column.field] = column.type;
51
- }
52
- });
53
- this.types = types;
54
- this.setTemplateRef(value);
55
- }
56
- /**
57
- * @description This method is used to set the data when data comes in from cus template.
58
- * @param value template value
59
- */
60
- setTemplateRef(value) {
61
- if (value.templateRef !== undefined) {
62
- this.templateRow = { ...value.row };
63
- let types = {};
64
- this.templateKeys = [];
65
- this.columns.forEach((column) => {
66
- this.templateKeys.push(column.field);
67
- if (column.type == 'selection') {
68
- types[column.field] = column.type;
69
- let temp = this.templateRow[column.field];
70
- this.templateRow[column.field] = {
71
- value: temp,
72
- options: column.options,
73
- };
74
- }
75
- else {
76
- types[column.field] = column.type;
77
- }
78
- });
79
- this.templateTypes = types;
80
- this.templateRef = value.templateRef;
81
- }
82
- }
83
- /**
84
- * @description This method is triggered when dialog is closed and also emits the dialog closed event data.
85
- */
86
- closeDialog() {
87
- let rowData = { ...this.dialogData.row };
88
- this.keys.forEach((key) => {
89
- if (this.types[key] === 'selection') {
90
- let temp = rowData[key].value;
91
- rowData[key] = temp;
92
- }
93
- });
94
- this.dialogRef.close(rowData);
95
- }
96
- /**
97
- * @description This method is called when the dialog is closed custom template action.
98
- * @param row row to be edited.
99
- * @param keys keys of columns
100
- * @param types column types
101
- */
102
- closeTemplateDialog(row, keys, types) {
103
- let rowData = { ...row };
104
- keys.forEach((key) => {
105
- if (types[key] === 'selection') {
106
- let temp = rowData[key].value;
107
- rowData[key] = temp;
108
- }
109
- });
110
- this.dialogRef.close(rowData);
111
- }
112
- }
113
- EditingComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: EditingComponent, deps: [{ token: i1.MatDialogRef }, { token: MAT_DIALOG_DATA }, { token: i2.MatTableExtService }], target: i0.ɵɵFactoryTarget.Component });
114
- EditingComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.12", type: EditingComponent, selector: "app-editing", ngImport: i0, template: "<div *ngIf=\"!templateRef\" style=\"height: 100%;\" class=\"main-dialog-container\">\r\n <div mat-dialog-title class=\"dialog-title-container\">\r\n <h2 style=\"margin: 0;\">Edit Row</h2>\r\n <span class=\"example-spacer\"></span>\r\n <button mat-icon-button aria-label=\"Example icon button with a vertical three dot icon\">\r\n <mat-icon mat-dialog-close style=\"cursor: pointer;\" fxFlex=\"5\">close</mat-icon>\r\n </button>\r\n </div>\r\n <mat-dialog-content style=\"margin-right: 20px;\">\r\n <div style=\"display: flex; flex-direction: column;\">\r\n <ng-container *ngFor=\"let key of keys\">\r\n <!-- Number Type -->\r\n <mat-form-field *ngIf=\"types[key] == 'number'\" appearance=\"outline\" class=\"inline-editing-field\">\r\n <mat-label>{{key | titlecase}}</mat-label>\r\n <input matInput type=\"number\" [(ngModel)]=\"dialogData['row'][key]\" [ngModelOptions]=\"{standalone: true}\">\r\n </mat-form-field>\r\n \r\n <!-- String Type -->\r\n \r\n <mat-form-field *ngIf=\"types[key] == 'string'\" appearance=\"outline\" class=\"inline-editing-field\">\r\n <mat-label>{{key | titlecase}}</mat-label>\r\n <input matInput type=\"text\" [(ngModel)]=\"dialogData['row'][key]\" [ngModelOptions]=\"{standalone: true}\">\r\n </mat-form-field>\r\n <mat-form-field *ngIf=\"types[key] == 'date'\" appearance=\"outline\" class=\"inline-editing-field\">\r\n <mat-label>{{key | titlecase}}</mat-label>\r\n <input matInput type=\"text\" [(ngModel)]=\"dialogData['row'][key]\" [ngModelOptions]=\"{standalone: true}\">\r\n </mat-form-field>\r\n <!-- Selection Type -->\r\n \r\n <mat-form-field *ngIf=\"types[key] == 'selection'\" appearance=\"outline\" class=\"inline-editing-field\">\r\n <mat-label>{{key | titlecase}}</mat-label>\r\n <mat-select [value]=\"dialogData['row'][key].value\" [(ngModel)]=\"dialogData['row'][key].value\">\r\n <mat-option *ngFor=\"let option of dialogData['row'][key].options\" [value]=\"option\">\r\n {{option}}\r\n </mat-option>\r\n </mat-select>\r\n </mat-form-field>\r\n <!-- Boolean Type -->\r\n <p>\r\n <mat-checkbox *ngIf=\"types[key] == 'boolean'\" color=\"primary\" [(ngModel)]=\"dialogData['row'][key]\">\r\n <mat-label>{{key | titlecase}}</mat-label>\r\n </mat-checkbox>\r\n </p>\r\n </ng-container>\r\n </div>\r\n </mat-dialog-content>\r\n <div class=\"spacer\"></div>\r\n <mat-dialog-actions style=\"margin-top: 20px;\" align=\"end\">\r\n <button mat-raised-button color=\"warn\" mat-dialog-close>\r\n Cancel\r\n </button>\r\n <button mat-raised-button color=\"primary\" (click)=\"closeDialog()\">Save</button>\r\n </mat-dialog-actions>\r\n</div>\r\n<ng-container *ngIf=\"templateRef\" [ngTemplateOutlet]=\"templateRef\" [ngTemplateOutletContext]=\"{data:{row:templateRow,columns:columns,columnKeys:templateKeys,columnTypes:templateTypes,closeDialog:closeTemplateDialog}}\"></ng-container>", styles: [".main-dialog-container{display:flex;flex-direction:column}.main-dialog-container mat-dialog-content{overflow-y:auto;margin:0;padding:0 0 0 20px}.dialog-title-container{display:flex;align-items:center}.spacer{flex-grow:1}\n"], dependencies: [{ kind: "directive", type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i3.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i4.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i4.NumberValueAccessor, selector: "input[type=number][formControlName],input[type=number][formControl],input[type=number][ngModel]" }, { kind: "directive", type: i4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i4.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i5.MatOption, selector: "mat-option", exportAs: ["matOption"] }, { kind: "component", type: i6.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"] }, { kind: "component", type: i7.MatCheckbox, selector: "mat-checkbox", inputs: ["disableRipple", "color", "tabIndex"], exportAs: ["matCheckbox"] }, { kind: "directive", type: i1.MatDialogClose, selector: "[mat-dialog-close], [matDialogClose]", inputs: ["aria-label", "type", "mat-dialog-close", "matDialogClose"], exportAs: ["matDialogClose"] }, { kind: "directive", type: i1.MatDialogTitle, selector: "[mat-dialog-title], [matDialogTitle]", inputs: ["id"], exportAs: ["matDialogTitle"] }, { kind: "directive", type: i1.MatDialogContent, selector: "[mat-dialog-content], mat-dialog-content, [matDialogContent]" }, { kind: "directive", type: i1.MatDialogActions, selector: "[mat-dialog-actions], mat-dialog-actions, [matDialogActions]", inputs: ["align"] }, { kind: "component", type: i8.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: i9.MatFormField, selector: "mat-form-field", inputs: ["color", "appearance", "hideRequiredMarker", "hintLabel", "floatLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i9.MatLabel, selector: "mat-label" }, { kind: "directive", type: i10.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly"], exportAs: ["matInput"] }, { kind: "component", type: i11.MatSelect, selector: "mat-select", inputs: ["disabled", "disableRipple", "tabIndex"], exportAs: ["matSelect"] }, { kind: "pipe", type: i3.TitleCasePipe, name: "titlecase" }] });
115
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: EditingComponent, decorators: [{
116
- type: Component,
117
- args: [{ selector: 'app-editing', template: "<div *ngIf=\"!templateRef\" style=\"height: 100%;\" class=\"main-dialog-container\">\r\n <div mat-dialog-title class=\"dialog-title-container\">\r\n <h2 style=\"margin: 0;\">Edit Row</h2>\r\n <span class=\"example-spacer\"></span>\r\n <button mat-icon-button aria-label=\"Example icon button with a vertical three dot icon\">\r\n <mat-icon mat-dialog-close style=\"cursor: pointer;\" fxFlex=\"5\">close</mat-icon>\r\n </button>\r\n </div>\r\n <mat-dialog-content style=\"margin-right: 20px;\">\r\n <div style=\"display: flex; flex-direction: column;\">\r\n <ng-container *ngFor=\"let key of keys\">\r\n <!-- Number Type -->\r\n <mat-form-field *ngIf=\"types[key] == 'number'\" appearance=\"outline\" class=\"inline-editing-field\">\r\n <mat-label>{{key | titlecase}}</mat-label>\r\n <input matInput type=\"number\" [(ngModel)]=\"dialogData['row'][key]\" [ngModelOptions]=\"{standalone: true}\">\r\n </mat-form-field>\r\n \r\n <!-- String Type -->\r\n \r\n <mat-form-field *ngIf=\"types[key] == 'string'\" appearance=\"outline\" class=\"inline-editing-field\">\r\n <mat-label>{{key | titlecase}}</mat-label>\r\n <input matInput type=\"text\" [(ngModel)]=\"dialogData['row'][key]\" [ngModelOptions]=\"{standalone: true}\">\r\n </mat-form-field>\r\n <mat-form-field *ngIf=\"types[key] == 'date'\" appearance=\"outline\" class=\"inline-editing-field\">\r\n <mat-label>{{key | titlecase}}</mat-label>\r\n <input matInput type=\"text\" [(ngModel)]=\"dialogData['row'][key]\" [ngModelOptions]=\"{standalone: true}\">\r\n </mat-form-field>\r\n <!-- Selection Type -->\r\n \r\n <mat-form-field *ngIf=\"types[key] == 'selection'\" appearance=\"outline\" class=\"inline-editing-field\">\r\n <mat-label>{{key | titlecase}}</mat-label>\r\n <mat-select [value]=\"dialogData['row'][key].value\" [(ngModel)]=\"dialogData['row'][key].value\">\r\n <mat-option *ngFor=\"let option of dialogData['row'][key].options\" [value]=\"option\">\r\n {{option}}\r\n </mat-option>\r\n </mat-select>\r\n </mat-form-field>\r\n <!-- Boolean Type -->\r\n <p>\r\n <mat-checkbox *ngIf=\"types[key] == 'boolean'\" color=\"primary\" [(ngModel)]=\"dialogData['row'][key]\">\r\n <mat-label>{{key | titlecase}}</mat-label>\r\n </mat-checkbox>\r\n </p>\r\n </ng-container>\r\n </div>\r\n </mat-dialog-content>\r\n <div class=\"spacer\"></div>\r\n <mat-dialog-actions style=\"margin-top: 20px;\" align=\"end\">\r\n <button mat-raised-button color=\"warn\" mat-dialog-close>\r\n Cancel\r\n </button>\r\n <button mat-raised-button color=\"primary\" (click)=\"closeDialog()\">Save</button>\r\n </mat-dialog-actions>\r\n</div>\r\n<ng-container *ngIf=\"templateRef\" [ngTemplateOutlet]=\"templateRef\" [ngTemplateOutletContext]=\"{data:{row:templateRow,columns:columns,columnKeys:templateKeys,columnTypes:templateTypes,closeDialog:closeTemplateDialog}}\"></ng-container>", styles: [".main-dialog-container{display:flex;flex-direction:column}.main-dialog-container mat-dialog-content{overflow-y:auto;margin:0;padding:0 0 0 20px}.dialog-title-container{display:flex;align-items:center}.spacer{flex-grow:1}\n"] }]
118
- }], ctorParameters: function () { return [{ type: i1.MatDialogRef }, { type: undefined, decorators: [{
119
- type: Inject,
120
- args: [MAT_DIALOG_DATA]
121
- }] }, { type: i2.MatTableExtService }]; } });
122
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWRpdGluZy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9tYXQtdGFibGUtZXh0L3NyYy9saWIvY29tcG9uZW50cy9lZGl0aW5nL2VkaXRpbmcuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbWF0LXRhYmxlLWV4dC9zcmMvbGliL2NvbXBvbmVudHMvZWRpdGluZy9lZGl0aW5nLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUF1QixNQUFNLGVBQWUsQ0FBQztBQUN2RSxPQUFPLEVBQWdCLGVBQWUsRUFBRSxNQUFNLDBCQUEwQixDQUFDOzs7Ozs7Ozs7Ozs7O0FBU3pFLE1BQU0sT0FBTyxnQkFBZ0I7SUFTM0IsWUFDUyxTQUF5QyxFQUNoQixVQUFlLEVBQ3hDLE9BQTJCO1FBRjNCLGNBQVMsR0FBVCxTQUFTLENBQWdDO1FBQ2hCLGVBQVUsR0FBVixVQUFVLENBQUs7UUFDeEMsWUFBTyxHQUFQLE9BQU8sQ0FBb0I7UUFWN0IsU0FBSSxHQUFhLEVBQUUsQ0FBQztRQUNwQixpQkFBWSxHQUFhLEVBQUUsQ0FBQztRQUM1QixVQUFLLEdBQVEsRUFBRSxDQUFDO1FBQ2hCLGtCQUFhLEdBQVEsRUFBRSxDQUFDO1FBQ3hCLFlBQU8sR0FBaUIsRUFBRSxDQUFDO1FBQzNCLGdCQUFXLEdBQVEsRUFBRSxDQUFDO0lBTXpCLENBQUM7SUFFTCxRQUFRO1FBQ04sSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUM7SUFDaEMsQ0FBQztJQUNIOzs7T0FHRztJQUNELE9BQU8sQ0FBQyxLQUFVO1FBQ2hCLElBQUksR0FBRyxHQUFHLEtBQUssQ0FBQyxHQUFHLENBQUM7UUFDcEIsSUFBSSxLQUFLLEdBQVEsRUFBRSxDQUFDO1FBQ3BCLElBQUksQ0FBQyxJQUFJLEdBQUcs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O0lBQ2hDLENBQUM7SUFFRDs7Ozs7T0FLRztJQUNILG1CQUFtQixDQUFDLEdBQVEsRUFBRSxJQUFjLEVBQUUsS0FBZTtRQUMzRCxJQUFJLE9BQU8sR0FBRyxFQUFFLEdBQUcsR0FBRyxFQUFFLENBQUM7UUFDekIsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDLEdBQVEsRUFBRSxFQUFFO1lBQ3hCLElBQUksS0FBSyxDQUFDLEdBQUcsQ0FBQyxLQUFLLFdBQVcsRUFBRTtnQkFDOUIsSUFBSSxJQUFJLEdBQUcsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEtBQUssQ0FBQztnQkFDOUIsT0FBTyxDQUFDLEdBQUcsQ0FBQyxHQUFHLElBQUksQ0FBQzthQUNyQjtRQUNILENBQUMsQ0FBQyxDQUFDO1FBQ0gsSUFBSSxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDaEMsQ0FBQzs7OEdBbEdVLGdCQUFnQiw4Q0FXakIsZUFBZTtrR0FYZCxnQkFBZ0IsbURDVjdCLGc2R0FzRHlPOzRGRDVDNU4sZ0JBQWdCO2tCQUw1QixTQUFTOytCQUNFLGFBQWE7OzBCQWVwQixNQUFNOzJCQUFDLGVBQWUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEluamVjdCwgT25Jbml0LCBUZW1wbGF0ZVJlZiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBNYXREaWFsb2dSZWYsIE1BVF9ESUFMT0dfREFUQSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2RpYWxvZyc7XHJcbmltcG9ydCB7IE1URXhDb2x1bW4gfSBmcm9tICcuLi8uLi9tb2RlbHMvdGFibGVFeHRNb2RlbHMnO1xyXG5pbXBvcnQgeyBNYXRUYWJsZUV4dFNlcnZpY2UgfSBmcm9tICcuLi8uLi9tYXQtdGFibGUtZXh0LnNlcnZpY2UnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdhcHAtZWRpdGluZycsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL2VkaXRpbmcuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL2VkaXRpbmcuY29tcG9uZW50LnNjc3MnXSxcclxufSlcclxuZXhwb3J0IGNsYXNzIEVkaXRpbmdDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xyXG4gIHB1YmxpYyB0ZW1wbGF0ZVJlZiE6IFRlbXBsYXRlUmVmPGFueT47XHJcbiAgcHVibGljIGtleXM6IHN0cmluZ1tdID0gW107XHJcbiAgcHVibGljIHRlbXBsYXRlS2V5czogc3RyaW5nW10gPSBbXTtcclxuICBwdWJsaWMgdHlwZXM6IGFueSA9IHt9O1xyXG4gIHB1YmxpYyB0ZW1wbGF0ZVR5cGVzOiBhbnkgPSB7fTtcclxuICBwdWJsaWMgY29sdW1uczogTVRFeENvbHVtbltdID0gW107XHJcbiAgcHVibGljIHRlbXBsYXRlUm93OiBhbnkgPSB7fTtcclxuICBcclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHB1YmxpYyBkaWFsb2dSZWY6IE1hdERpYWxvZ1JlZjxFZGl0aW5nQ29tcG9uZW50PixcclxuICAgIEBJbmplY3QoTUFUX0RJQUxPR19EQVRBKSBwdWJsaWMgZGlhbG9nRGF0YTogYW55LFxyXG4gICAgcHVibGljIHNlcnZpY2U6IE1hdFRhYmxlRXh0U2VydmljZVxyXG4gICkgeyB9XHJcbiAgXHJcbiAgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgICB0aGlzLnNldERhdGEodGhpcy5kaWFsb2dEYXRhKTtcclxuICB9XHJcbi8qKlxyXG4gKiBAZGVzY3JpcHRpb24gVGhpcyBtZXRob2QgaXMgdXNlZCB0byBzZXQgZGF0YSBmb3IgZWRpdGluZy5cclxuICogQHBhcmFtIHZhbHVlIGRpYWxvZyBEYXRhXHJcbiAqL1xyXG4gIHNldERhdGEodmFsdWU6IGFueSkge1xyXG4gICAgbGV0IHJvdyA9IHZhbHVlLnJvdztcclxuICAgIGxldCB0eXBlczogYW55ID0ge307XHJcbiAgICB0aGlzLmtleXMgPSBbXTtcclxuICAgIHRoaXMuY29sdW1ucyA9IHZhbHVlLmNvbHVtbnM7XHJcbiAgICB0aGlzLmNvbHVtbnMuZm9yRWFjaCgoY29sdW1uKSA9PiB7XHJcbiAgICAgIHRoaXMua2V5cy5wdXNoKGNvbHVtbi5maWVsZCk7XHJcbiAgICAgIGlmIChjb2x1bW4udHlwZSA9PSAnc2VsZWN0aW9uJykge1xyXG4gICAgICAgIHR5cGVzW2NvbHVtbi5maWVsZF0gPSBjb2x1bW4udHlwZTtcclxuICAgICAgICBsZXQgdGVtcCA9IHJvd1tjb2x1bW4uZmllbGRdO1xyXG4gICAgICAgIHJvd1tjb2x1bW4uZmllbGRdID0ge1xyXG4gICAgICAgICAgdmFsdWU6IHRlbXAsXHJcbiAgICAgICAgICBvcHRpb25zOiBjb2x1bW4ub3B0aW9ucyxcclxuICAgICAgICB9O1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIHR5cGVzW2NvbHVtbi5maWVsZF0gPSBjb2x1bW4udHlwZTtcclxuICAgICAgfVxyXG4gICAgfSk7XHJcbiAgICB0aGlzLnR5cGVzID0gdHlwZXM7XHJcbiAgICB0aGlzLnNldFRlbXBsYXRlUmVmKHZhbHVlKTtcclxuICB9XHJcbi8qKlxyXG4gKiBAZGVzY3JpcHRpb24gVGhpcyBtZXRob2QgaXMgdXNlZCB0byBzZXQgdGhlIGRhdGEgd2hlbiBkYXRhIGNvbWVzIGluIGZyb20gY3VzIHRlbXBsYXRlLlxyXG4gKiBAcGFyYW0gdmFsdWUgdGVtcGxhdGUgdmFsdWVcclxuICovXHJcbiAgc2V0VGVtcGxhdGVSZWYodmFsdWU6IGFueSkge1xyXG4gICAgaWYgKHZhbHVlLnRlbXBsYXRlUmVmICE9PSB1bmRlZmluZWQpIHtcclxuICAgICAgdGhpcy50ZW1wbGF0ZVJvdyA9IHsgLi4udmFsdWUucm93IH07XHJcbiAgICAgIGxldCB0eXBlczogYW55ID0ge307XHJcbiAgICAgIHRoaXMudGVtcGxhdGVLZXlzID0gW107XHJcbiAgICAgIHRoaXMuY29sdW1ucy5mb3JFYWNoKChjb2x1bW4pID0+IHtcclxuICAgICAgICB0aGlzLnRlbXBsYXRlS2V5cy5wdXNoKGNvbHVtbi5maWVsZCk7XHJcbiAgICAgICAgaWYgKGNvbHVtbi50eXBlID09ICdzZWxlY3Rpb24nKSB7XHJcbiAgICAgICAgICB0eXBlc1tjb2x1bW4uZmllbGRdID0gY29sdW1uLnR5cGU7XHJcbiAgICAgICAgICBsZXQgdGVtcCA9IHRoaXMudGVtcGxhdGVSb3dbY29sdW1uLmZpZWxkXTtcclxuICAgICAgICAgIHRoaXMudGVtcGxhdGVSb3dbY29sdW1uLmZpZWxkXSA9IHtcclxuICAgICAgICAgICAgdmFsdWU6IHRlbXAsXHJcbiAgICAgICAgICAgIG9wdGlvbnM6IGNvbHVtbi5vcHRpb25zLFxyXG4gICAgICAgICAgfTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgdHlwZXNbY29sdW1uLmZpZWxkXSA9IGNvbHVtbi50eXBlO1xyXG4gICAgICAgIH1cclxuICAgICAgfSk7XHJcbiAgICAgIHRoaXMudGVtcGxhdGVUeXBlcyA9IHR5cGVzO1xyXG4gICAgICB0aGlzLnRlbXBsYXRlUmVmID0gdmFsdWUudGVtcGxhdGVSZWY7XHJcbiAgICB9XHJcbiAgfVxyXG4vKipcclxuICogQGRlc2NyaXB0aW9uIFRoaXMgbWV0aG9kIGlzIHRyaWdnZXJlZCB3aGVuIGRpYWxvZyBpcyBjbG9zZWQgYW5kIGFsc28gZW1pdHMgdGhlIGRpYWxvZyBjbG9zZWQgZXZlbnQgZGF0YS5cclxuICovXHJcbiAgY2xvc2VEaWFsb2coKSB7XHJcbiAgICBsZXQgcm93RGF0YSA9IHsgLi4udGhpcy5kaWFsb2dEYXRhLnJvdyB9O1xyXG4gICAgdGhpcy5rZXlzLmZvckVhY2goKGtleTogYW55KSA9PiB7XHJcbiAgICAgIGlmICh0aGlzLnR5cGVzW2tleV0gPT09ICdzZWxlY3Rpb24nKSB7XHJcbiAgICAgICAgbGV0IHRlbXAgPSByb3dEYXRhW2tleV0udmFsdWU7XHJcbiAgICAgICAgcm93RGF0YVtrZXldID0gdGVtcDtcclxuICAgICAgfVxyXG4gICAgfSk7XHJcbiAgICB0aGlzLmRpYWxvZ1JlZi5jbG9zZShyb3dEYXRhKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEBkZXNjcmlwdGlvbiBUaGlzIG1ldGhvZCBpcyBjYWxsZWQgd2hlbiB0aGUgZGlhbG9nIGlzIGNsb3NlZCBjdXN0b20gdGVtcGxhdGUgYWN0aW9uLlxyXG4gICAqIEBwYXJhbSByb3cgcm93IHRvIGJlIGVkaXRlZC5cclxuICAgKiBAcGFyYW0ga2V5cyBrZXlzIG9mIGNvbHVtbnNcclxuICAgKiBAcGFyYW0gdHlwZXMgY29sdW1uIHR5cGVzXHJcbiAgICovXHJcbiAgY2xvc2VUZW1wbGF0ZURpYWxvZyhyb3c6IGFueSwga2V5czogc3RyaW5nW10sIHR5cGVzOiBzdHJpbmdbXSkge1xyXG4gICAgbGV0IHJvd0RhdGEgPSB7IC4uLnJvdyB9O1xyXG4gICAga2V5cy5mb3JFYWNoKChrZXk6IGFueSkgPT4ge1xyXG4gICAgICBpZiAodHlwZXNba2V5XSA9PT0gJ3NlbGVjdGlvbicpIHtcclxuICAgICAgICBsZXQgdGVtcCA9IHJvd0RhdGFba2V5XS52YWx1ZTtcclxuICAgICAgICByb3dEYXRhW2tleV0gPSB0ZW1wO1xyXG4gICAgICB9XHJcbiAgICB9KTtcclxuICAgIHRoaXMuZGlhbG9nUmVmLmNsb3NlKHJvd0RhdGEpO1xyXG4gIH1cclxufVxyXG4iLCI8ZGl2ICpuZ0lmPVwiIXRlbXBsYXRlUmVmXCIgc3R5bGU9XCJoZWlnaHQ6IDEwMCU7XCIgY2xhc3M9XCJtYWluLWRpYWxvZy1jb250YWluZXJcIj5cclxuICAgIDxkaXYgbWF0LWRpYWxvZy10aXRsZSBjbGFzcz1cImRpYWxvZy10aXRsZS1jb250YWluZXJcIj5cclxuICAgICAgICA8aDIgc3R5bGU9XCJtYXJnaW46IDA7XCI+RWRpdCBSb3c8L2gyPlxyXG4gICAgICAgIDxzcGFuIGNsYXNzPVwiZXhhbXBsZS1zcGFjZXJcIj48L3NwYW4+XHJcbiAgICAgICAgPGJ1dHRvbiBtYXQtaWNvbi1idXR0b24gYXJpYS1sYWJlbD1cIkV4YW1wbGUgaWNvbiBidXR0b24gd2l0aCBhIHZlcnRpY2FsIHRocmVlIGRvdCBpY29uXCI+XHJcbiAgICAgICAgICAgIDxtYXQtaWNvbiBtYXQtZGlhbG9nLWNsb3NlIHN0eWxlPVwiY3Vyc29yOiBwb2ludGVyO1wiIGZ4RmxleD1cIjVcIj5jbG9zZTwvbWF0LWljb24+XHJcbiAgICAgICAgPC9idXR0b24+XHJcbiAgICA8L2Rpdj5cclxuICAgIDxtYXQtZGlhbG9nLWNvbnRlbnQgc3R5bGU9XCJtYXJnaW4tcmlnaHQ6IDIwcHg7XCI+XHJcbiAgICAgICAgPGRpdiBzdHlsZT1cImRpc3BsYXk6IGZsZXg7IGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XCI+XHJcbiAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IGtleSBvZiBrZXlzXCI+XHJcbiAgICAgICAgICAgICAgICA8IS0tIE51bWJlciBUeXBlIC0tPlxyXG4gICAgICAgICAgICAgICAgPG1hdC1mb3JtLWZpZWxkICpuZ0lmPVwidHlwZXNba2V5XSA9PSAnbnVtYmVyJ1wiIGFwcGVhcmFuY2U9XCJvdXRsaW5lXCIgY2xhc3M9XCJpbmxpbmUtZWRpdGluZy1maWVsZFwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxtYXQtbGFiZWw+e3trZXkgfCB0aXRsZWNhc2V9fTwvbWF0LWxhYmVsPlxyXG4gICAgICAgICAgICAgICAgICAgIDxpbnB1dCBtYXRJbnB1dCB0eXBlPVwibnVtYmVyXCIgWyhuZ01vZGVsKV09XCJkaWFsb2dEYXRhWydyb3cnXVtrZXldXCIgW25nTW9kZWxPcHRpb25zXT1cIntzdGFuZGFsb25lOiB0cnVlfVwiPlxyXG4gICAgICAgICAgICAgICAgPC9tYXQtZm9ybS1maWVsZD5cclxuICAgICAgICBcclxuICAgICAgICAgICAgICAgIDwhLS0gU3RyaW5nIFR5cGUgLS0+XHJcbiAgICAgICAgXHJcbiAgICAgICAgICAgICAgICA8bWF0LWZvcm0tZmllbGQgKm5nSWY9XCJ0eXBlc1trZXldID09ICdzdHJpbmcnXCIgYXBwZWFyYW5jZT1cIm91dGxpbmVcIiBjbGFzcz1cImlubGluZS1lZGl0aW5nLWZpZWxkXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPG1hdC1sYWJlbD57e2tleSB8IHRpdGxlY2FzZX19PC9tYXQtbGFiZWw+XHJcbiAgICAgICAgICAgICAgICAgICAgPGlucHV0IG1hdElucHV0IHR5cGU9XCJ0ZXh0XCIgWyhuZ01vZGVsKV09XCJkaWFsb2dEYXRhWydyb3cnXVtrZXldXCIgW25nTW9kZWxPcHRpb25zXT1cIntzdGFuZGFsb25lOiB0cnVlfVwiPlxyXG4gICAgICAgICAgICAgICAgPC9tYXQtZm9ybS1maWVsZD5cclxuICAgICAgICAgICAgICAgIDxtYXQtZm9ybS1maWVsZCAqbmdJZj1cInR5cGVzW2tleV0gPT0gJ2RhdGUnXCIgYXBwZWFyYW5jZT1cIm91dGxpbmVcIiBjbGFzcz1cImlubGluZS1lZGl0aW5nLWZpZWxkXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPG1hdC1sYWJlbD57e2tleSB8IHRpdGxlY2FzZX19PC9tYXQtbGFiZWw+XHJcbiAgICAgICAgICAgICAgICAgICAgPGlucHV0IG1hdElucHV0IHR5cGU9XCJ0ZXh0XCIgWyhuZ01vZGVsKV09XCJkaWFsb2dEYXRhWydyb3cnXVtrZXldXCIgW25nTW9kZWxPcHRpb25zXT1cIntzdGFuZGFsb25lOiB0cnVlfVwiPlxyXG4gICAgICAgICAgICAgICAgPC9tYXQtZm9ybS1maWVsZD5cclxuICAgICAgICAgICAgICAgIDwhLS0gU2VsZWN0aW9uIFR5cGUgLS0+XHJcbiAgICAgICAgXHJcbiAgICAgICAgICAgICAgICA8bWF0LWZvcm0tZmllbGQgKm5nSWY9XCJ0eXBlc1trZXldID09ICdzZWxlY3Rpb24nXCIgYXBwZWFyYW5jZT1cIm91dGxpbmVcIiBjbGFzcz1cImlubGluZS1lZGl0aW5nLWZpZWxkXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPG1hdC1sYWJlbD57e2tleSB8IHRpdGxlY2FzZX19PC9tYXQtbGFiZWw+XHJcbiAgICAgICAgICAgICAgICAgICAgPG1hdC1zZWxlY3QgW3ZhbHVlXT1cImRpYWxvZ0RhdGFbJ3JvdyddW2tleV0udmFsdWVcIiBbKG5nTW9kZWwpXT1cImRpYWxvZ0RhdGFbJ3JvdyddW2tleV0udmFsdWVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPG1hdC1vcHRpb24gKm5nRm9yPVwibGV0IG9wdGlvbiBvZiBkaWFsb2dEYXRhWydyb3cnXVtrZXldLm9wdGlvbnNcIiBbdmFsdWVdPVwib3B0aW9uXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7e29wdGlvbn19XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvbWF0LW9wdGlvbj5cclxuICAgICAgICAgICAgICAgICAgICA8L21hdC1zZWxlY3Q+XHJcbiAgICAgICAgICAgICAgICA8L21hdC1mb3JtLWZpZWxkPlxyXG4gICAgICAgICAgICAgICAgPCEtLSBCb29sZWFuIFR5cGUgLS0+XHJcbiAgICAgICAgICAgICAgICA8cD5cclxuICAgICAgICAgICAgICAgICAgICA8bWF0LWNoZWNrYm94ICpuZ0lmPVwidHlwZXNba2V5XSA9PSAnYm9vbGVhbidcIiBjb2xvcj1cInByaW1hcnlcIiBbKG5nTW9kZWwpXT1cImRpYWxvZ0RhdGFbJ3JvdyddW2tleV1cIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPG1hdC1sYWJlbD57e2tleSB8IHRpdGxlY2FzZX19PC9tYXQtbGFiZWw+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9tYXQtY2hlY2tib3g+XHJcbiAgICAgICAgICAgICAgICA8L3A+XHJcbiAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgPC9tYXQtZGlhbG9nLWNvbnRlbnQ+XHJcbiAgICA8ZGl2IGNsYXNzPVwic3BhY2VyXCI+PC9kaXY+XHJcbiAgICA8bWF0LWRpYWxvZy1hY3Rpb25zIHN0eWxlPVwibWFyZ2luLXRvcDogMjBweDtcIiBhbGlnbj1cImVuZFwiPlxyXG4gICAgICAgIDxidXR0b24gbWF0LXJhaXNlZC1idXR0b24gY29sb3I9XCJ3YXJuXCIgbWF0LWRpYWxvZy1jbG9zZT5cclxuICAgICAgICAgICAgQ2FuY2VsXHJcbiAgICAgICAgPC9idXR0b24+XHJcbiAgICAgICAgPGJ1dHRvbiBtYXQtcmFpc2VkLWJ1dHRvbiBjb2xvcj1cInByaW1hcnlcIiAoY2xpY2spPVwiY2xvc2VEaWFsb2coKVwiPlNhdmU8L2J1dHRvbj5cclxuICAgIDwvbWF0LWRpYWxvZy1hY3Rpb25zPlxyXG48L2Rpdj5cclxuPG5nLWNvbnRhaW5lciAqbmdJZj1cInRlbXBsYXRlUmVmXCIgW25nVGVtcGxhdGVPdXRsZXRdPVwidGVtcGxhdGVSZWZcIiBbbmdUZW1wbGF0ZU91dGxldENvbnRleHRdPVwie2RhdGE6e3Jvdzp0ZW1wbGF0ZVJvdyxjb2x1bW5zOmNvbHVtbnMsY29sdW1uS2V5czp0ZW1wbGF0ZUtleXMsY29sdW1uVHlwZXM6dGVtcGxhdGVUeXBlcyxjbG9zZURpYWxvZzpjbG9zZVRlbXBsYXRlRGlhbG9nfX1cIj48L25nLWNvbnRhaW5lcj4iXX0=
@@ -1,68 +0,0 @@
1
- import { Component, EventEmitter, Input, Output } from '@angular/core';
2
- import { FormControl } from '@angular/forms';
3
- import * as i0 from "@angular/core";
4
- import * as i1 from "@angular/common";
5
- import * as i2 from "@angular/forms";
6
- import * as i3 from "@angular/material/core";
7
- import * as i4 from "@angular/material/checkbox";
8
- import * as i5 from "@angular/material/form-field";
9
- import * as i6 from "@angular/material/input";
10
- import * as i7 from "@angular/material/select";
11
- export class FilterColumnsComponentComponent {
12
- constructor() {
13
- this.filterOutput = new EventEmitter();
14
- this.stringCtrl = new FormControl();
15
- this.numberCtrl = new FormControl();
16
- this.dateCtrl = new FormControl();
17
- this.booleanCtrl = new FormControl();
18
- this.selectionCtrl = new FormControl();
19
- }
20
- ngOnInit() {
21
- this.stringCtrl.valueChanges.subscribe((value) => {
22
- this.checkValue(value);
23
- });
24
- this.dateCtrl.valueChanges.subscribe((value) => {
25
- this.checkValue(value);
26
- });
27
- this.numberCtrl.valueChanges.subscribe((value) => {
28
- this.checkValue(value);
29
- });
30
- this.booleanCtrl.valueChanges.subscribe((value) => {
31
- this.checkValue(value);
32
- });
33
- this.selectionCtrl.valueChanges.subscribe((value) => {
34
- this.checkValue(value);
35
- });
36
- }
37
- /**
38
- * @description This method is make value is valid and not null.
39
- * @param value value to check its type.
40
- */
41
- checkValue(value) {
42
- if (value || value == '') {
43
- this.emitOutput(value);
44
- }
45
- else if (value == null) {
46
- this.emitOutput('');
47
- }
48
- }
49
- /**
50
- * @description This method will emit seach value to parent component.
51
- * @param value value on which base table rows are filtered.
52
- */
53
- emitOutput(value) {
54
- let obj = { [this.obj.field]: value };
55
- this.filterOutput.emit(obj);
56
- }
57
- }
58
- FilterColumnsComponentComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: FilterColumnsComponentComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
59
- FilterColumnsComponentComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.12", type: FilterColumnsComponentComponent, selector: "app-filter-columns-component", inputs: { obj: "obj" }, outputs: { filterOutput: "filterOutput" }, ngImport: i0, template: "\r\n <ng-container *ngIf=\"obj\">\r\n <!-- Number Type -->\r\n <mat-form-field *ngIf=\"obj.type == 'number'\" appearance=\"outline\" class=\"inline-editing-field\" >\r\n <input matInput type=\"number\" [formControl]=\"numberCtrl\">\r\n </mat-form-field>\r\n \r\n <!-- String Type -->\r\n <mat-form-field *ngIf=\"obj.type == 'string'\" appearance=\"outline\" class=\"inline-editing-field\">\r\n <input matInput type=\"text\" [formControl]=\"stringCtrl\">\r\n </mat-form-field>\r\n <mat-form-field *ngIf=\"obj.type == 'date'\" appearance=\"outline\" class=\"inline-editing-field\">\r\n <input matInput type=\"date\" [formControl]=\"dateCtrl\">\r\n </mat-form-field>\r\n <!-- Selection Type -->\r\n <mat-form-field *ngIf=\"obj.type == 'selection'\" appearance=\"outline\" class=\"inline-editing-field\">\r\n <mat-select [value]=\"\" [formControl]=\"selectionCtrl\">\r\n <mat-option *ngFor=\"let option of obj.options\" [value]=\"option\">\r\n {{option}}\r\n </mat-option>\r\n </mat-select>\r\n </mat-form-field>\r\n <!-- Boolean Type -->\r\n <mat-checkbox (click)=\"$event.stopPropagation()\" *ngIf=\"obj.type == 'boolean'\" color=\"primary\" [formControl]=\"booleanCtrl\"></mat-checkbox>\r\n\r\n </ng-container>", styles: [""], dependencies: [{ kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i2.NumberValueAccessor, selector: "input[type=number][formControlName],input[type=number][formControl],input[type=number][ngModel]" }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "component", type: i3.MatOption, selector: "mat-option", exportAs: ["matOption"] }, { kind: "component", type: i4.MatCheckbox, selector: "mat-checkbox", inputs: ["disableRipple", "color", "tabIndex"], exportAs: ["matCheckbox"] }, { kind: "component", type: i5.MatFormField, selector: "mat-form-field", inputs: ["color", "appearance", "hideRequiredMarker", "hintLabel", "floatLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i6.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly"], exportAs: ["matInput"] }, { kind: "component", type: i7.MatSelect, selector: "mat-select", inputs: ["disabled", "disableRipple", "tabIndex"], exportAs: ["matSelect"] }] });
60
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: FilterColumnsComponentComponent, decorators: [{
61
- type: Component,
62
- args: [{ selector: 'app-filter-columns-component', template: "\r\n <ng-container *ngIf=\"obj\">\r\n <!-- Number Type -->\r\n <mat-form-field *ngIf=\"obj.type == 'number'\" appearance=\"outline\" class=\"inline-editing-field\" >\r\n <input matInput type=\"number\" [formControl]=\"numberCtrl\">\r\n </mat-form-field>\r\n \r\n <!-- String Type -->\r\n <mat-form-field *ngIf=\"obj.type == 'string'\" appearance=\"outline\" class=\"inline-editing-field\">\r\n <input matInput type=\"text\" [formControl]=\"stringCtrl\">\r\n </mat-form-field>\r\n <mat-form-field *ngIf=\"obj.type == 'date'\" appearance=\"outline\" class=\"inline-editing-field\">\r\n <input matInput type=\"date\" [formControl]=\"dateCtrl\">\r\n </mat-form-field>\r\n <!-- Selection Type -->\r\n <mat-form-field *ngIf=\"obj.type == 'selection'\" appearance=\"outline\" class=\"inline-editing-field\">\r\n <mat-select [value]=\"\" [formControl]=\"selectionCtrl\">\r\n <mat-option *ngFor=\"let option of obj.options\" [value]=\"option\">\r\n {{option}}\r\n </mat-option>\r\n </mat-select>\r\n </mat-form-field>\r\n <!-- Boolean Type -->\r\n <mat-checkbox (click)=\"$event.stopPropagation()\" *ngIf=\"obj.type == 'boolean'\" color=\"primary\" [formControl]=\"booleanCtrl\"></mat-checkbox>\r\n\r\n </ng-container>" }]
63
- }], ctorParameters: function () { return []; }, propDecorators: { obj: [{
64
- type: Input
65
- }], filterOutput: [{
66
- type: Output
67
- }] } });
68
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsdGVyLWNvbHVtbnMtY29tcG9uZW50LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL21hdC10YWJsZS1leHQvc3JjL2xpYi9jb21wb25lbnRzL2ZpbHRlci1jb2x1bW5zLWNvbXBvbmVudC9maWx0ZXItY29sdW1ucy1jb21wb25lbnQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbWF0LXRhYmxlLWV4dC9zcmMvbGliL2NvbXBvbmVudHMvZmlsdGVyLWNvbHVtbnMtY29tcG9uZW50L2ZpbHRlci1jb2x1bW5zLWNvbXBvbmVudC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQVUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQy9FLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQzs7Ozs7Ozs7O0FBTzdDLE1BQU0sT0FBTywrQkFBK0I7SUFRMUM7UUFOVSxpQkFBWSxHQUFzQixJQUFJLFlBQVksRUFBTyxDQUFDO1FBQ3BFLGVBQVUsR0FBZ0IsSUFBSSxXQUFXLEVBQUUsQ0FBQztRQUM1QyxlQUFVLEdBQWdCLElBQUksV0FBVyxFQUFFLENBQUM7UUFDNUMsYUFBUSxHQUFnQixJQUFJLFdBQVcsRUFBRSxDQUFDO1FBQzFDLGdCQUFXLEdBQWdCLElBQUksV0FBVyxFQUFFLENBQUM7UUFDN0Msa0JBQWEsR0FBZ0IsSUFBSSxXQUFXLEVBQUUsQ0FBQztJQUNoQyxDQUFDO0lBQ2hCLFFBQVE7UUFDTixJQUFJLENBQUMsVUFBVSxDQUFDLFlBQVksQ0FBQyxTQUFTLENBQUMsQ0FBQyxLQUFLLEVBQUUsRUFBRTtZQUMvQyxJQUFJLENBQUMsVUFBVSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ3pCLENBQUMsQ0FBQyxDQUFDO1FBQ0gsSUFBSSxDQUFDLFFBQVEsQ0FBQyxZQUFZLENBQUMsU0FBUyxDQUFDLENBQUMsS0FBSyxFQUFFLEVBQUU7WUFDN0MsSUFBSSxDQUFDLFVBQVUsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUN6QixDQUFDLENBQUMsQ0FBQztRQUNILElBQUksQ0FBQyxVQUFVLENBQUMsWUFBWSxDQUFDLFNBQVMsQ0FBQyxDQUFDLEtBQUssRUFBRSxFQUFFO1lBQy9DLElBQUksQ0FBQyxVQUFVLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDekIsQ0FBQyxDQUFDLENBQUM7UUFDSCxJQUFJLENBQUMsV0FBVyxDQUFDLFlBQVksQ0FBQyxTQUFTLENBQUMsQ0FBQyxLQUFLLEVBQUUsRUFBRTtZQUNoRCxJQUFJLENBQUMsVUFBVSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ3pCLENBQUMsQ0FBQyxDQUFDO1FBQ0gsSUFBSSxDQUFDLGFBQWEsQ0FBQyxZQUFZLENBQUMsU0FBUyxDQUFDLENBQUMsS0FBSyxFQUFFLEVBQUU7WUFDbEQsSUFBSSxDQUFDLFVBQVUsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUN6QixDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFDRDs7O09BR0c7SUFDSCxVQUFVLENBQUMsS0FBVTtRQUNuQixJQUFJLEtBQUssSUFBSSxLQUFLLElBQUksRUFBRSxFQUFFO1lBQ3hCLElBQUksQ0FBQyxVQUFVLENBQUMsS0FBSyxDQUFDLENBQUM7U0FDeEI7YUFBTSxJQUFJLEtBQUssSUFBSSxJQUFJLEVBQUU7WUFDeEIsSUFBSSxDQUFDLFVBQVUsQ0FBQyxFQUFFLENBQUMsQ0FBQztTQUNyQjtJQUNILENBQUM7SUFDSDs7O09BR0c7SUFDRCxVQUFVLENBQUMsS0FBVTtRQUNuQixJQUFJLEdBQUcsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsRUFBRSxLQUFLLEVBQUUsQ0FBQztRQUN0QyxJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUM5QixDQUFDOzs2SEE1Q1UsK0JBQStCO2lIQUEvQiwrQkFBK0IsdUlDUjVDLDI0Q0F5Qm1COzRGRGpCTiwrQkFBK0I7a0JBTDNDLFNBQVM7K0JBQ0UsOEJBQThCOzBFQUsvQixHQUFHO3NCQUFYLEtBQUs7Z0JBQ0ksWUFBWTtzQkFBckIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT25Jbml0LCBPdXRwdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgRm9ybUNvbnRyb2wgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2FwcC1maWx0ZXItY29sdW1ucy1jb21wb25lbnQnLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9maWx0ZXItY29sdW1ucy1jb21wb25lbnQuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL2ZpbHRlci1jb2x1bW5zLWNvbXBvbmVudC5jb21wb25lbnQuc2NzcyddLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgRmlsdGVyQ29sdW1uc0NvbXBvbmVudENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XHJcbiAgQElucHV0KCkgb2JqITogYW55O1xyXG4gIEBPdXRwdXQoKSBmaWx0ZXJPdXRwdXQ6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XHJcbiAgc3RyaW5nQ3RybDogRm9ybUNvbnRyb2wgPSBuZXcgRm9ybUNvbnRyb2woKTtcclxuICBudW1iZXJDdHJsOiBGb3JtQ29udHJvbCA9IG5ldyBGb3JtQ29udHJvbCgpO1xyXG4gIGRhdGVDdHJsOiBGb3JtQ29udHJvbCA9IG5ldyBGb3JtQ29udHJvbCgpO1xyXG4gIGJvb2xlYW5DdHJsOiBGb3JtQ29udHJvbCA9IG5ldyBGb3JtQ29udHJvbCgpO1xyXG4gIHNlbGVjdGlvbkN0cmw6IEZvcm1Db250cm9sID0gbmV3IEZvcm1Db250cm9sKCk7XHJcbiAgY29uc3RydWN0b3IoKSB7fVxyXG4gIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gICAgdGhpcy5zdHJpbmdDdHJsLnZhbHVlQ2hhbmdlcy5zdWJzY3JpYmUoKHZhbHVlKSA9PiB7XHJcbiAgICAgIHRoaXMuY2hlY2tWYWx1ZSh2YWx1ZSk7XHJcbiAgICB9KTtcclxuICAgIHRoaXMuZGF0ZUN0cmwudmFsdWVDaGFuZ2VzLnN1YnNjcmliZSgodmFsdWUpID0+IHtcclxuICAgICAgdGhpcy5jaGVja1ZhbHVlKHZhbHVlKTtcclxuICAgIH0pO1xyXG4gICAgdGhpcy5udW1iZXJDdHJsLnZhbHVlQ2hhbmdlcy5zdWJzY3JpYmUoKHZhbHVlKSA9PiB7XHJcbiAgICAgIHRoaXMuY2hlY2tWYWx1ZSh2YWx1ZSk7XHJcbiAgICB9KTtcclxuICAgIHRoaXMuYm9vbGVhbkN0cmwudmFsdWVDaGFuZ2VzLnN1YnNjcmliZSgodmFsdWUpID0+IHtcclxuICAgICAgdGhpcy5jaGVja1ZhbHVlKHZhbHVlKTtcclxuICAgIH0pO1xyXG4gICAgdGhpcy5zZWxlY3Rpb25DdHJsLnZhbHVlQ2hhbmdlcy5zdWJzY3JpYmUoKHZhbHVlKSA9PiB7XHJcbiAgICAgIHRoaXMuY2hlY2tWYWx1ZSh2YWx1ZSk7XHJcbiAgICB9KTtcclxuICB9XHJcbiAgLyoqXHJcbiAgICogQGRlc2NyaXB0aW9uIFRoaXMgbWV0aG9kIGlzIG1ha2UgdmFsdWUgaXMgdmFsaWQgYW5kIG5vdCBudWxsLlxyXG4gICAqIEBwYXJhbSB2YWx1ZSB2YWx1ZSB0byBjaGVjayBpdHMgdHlwZS5cclxuICAgKi9cclxuICBjaGVja1ZhbHVlKHZhbHVlOiBhbnkpIHtcclxuICAgIGlmICh2YWx1ZSB8fCB2YWx1ZSA9PSAnJykge1xyXG4gICAgICB0aGlzLmVtaXRPdXRwdXQodmFsdWUpO1xyXG4gICAgfSBlbHNlIGlmICh2YWx1ZSA9PSBudWxsKSB7XHJcbiAgICAgIHRoaXMuZW1pdE91dHB1dCgnJyk7XHJcbiAgICB9XHJcbiAgfVxyXG4vKipcclxuICogQGRlc2NyaXB0aW9uIFRoaXMgbWV0aG9kIHdpbGwgZW1pdCBzZWFjaCB2YWx1ZSB0byBwYXJlbnQgY29tcG9uZW50LlxyXG4gKiBAcGFyYW0gdmFsdWUgdmFsdWUgb24gd2hpY2ggYmFzZSB0YWJsZSByb3dzIGFyZSBmaWx0ZXJlZC4gXHJcbiAqL1xyXG4gIGVtaXRPdXRwdXQodmFsdWU6IGFueSkge1xyXG4gICAgbGV0IG9iaiA9IHsgW3RoaXMub2JqLmZpZWxkXTogdmFsdWUgfTtcclxuICAgIHRoaXMuZmlsdGVyT3V0cHV0LmVtaXQob2JqKTtcclxuICB9XHJcbn1cclxuIiwiXHJcbiAgICA8bmctY29udGFpbmVyICpuZ0lmPVwib2JqXCI+XHJcbiAgICAgICAgPCEtLSBOdW1iZXIgVHlwZSAtLT5cclxuICAgICAgICA8bWF0LWZvcm0tZmllbGQgKm5nSWY9XCJvYmoudHlwZSA9PSAnbnVtYmVyJ1wiIGFwcGVhcmFuY2U9XCJvdXRsaW5lXCIgY2xhc3M9XCJpbmxpbmUtZWRpdGluZy1maWVsZFwiID5cclxuICAgICAgICAgICAgPGlucHV0IG1hdElucHV0IHR5cGU9XCJudW1iZXJcIiBbZm9ybUNvbnRyb2xdPVwibnVtYmVyQ3RybFwiPlxyXG4gICAgICAgIDwvbWF0LWZvcm0tZmllbGQ+XHJcbiAgICAgICAgXHJcbiAgICAgICAgPCEtLSBTdHJpbmcgVHlwZSAtLT5cclxuICAgICAgICA8bWF0LWZvcm0tZmllbGQgKm5nSWY9XCJvYmoudHlwZSA9PSAnc3RyaW5nJ1wiIGFwcGVhcmFuY2U9XCJvdXRsaW5lXCIgY2xhc3M9XCJpbmxpbmUtZWRpdGluZy1maWVsZFwiPlxyXG4gICAgICAgICAgICA8aW5wdXQgbWF0SW5wdXQgdHlwZT1cInRleHRcIiBbZm9ybUNvbnRyb2xdPVwic3RyaW5nQ3RybFwiPlxyXG4gICAgICAgIDwvbWF0LWZvcm0tZmllbGQ+XHJcbiAgICAgICAgPG1hdC1mb3JtLWZpZWxkICpuZ0lmPVwib2JqLnR5cGUgPT0gJ2RhdGUnXCIgYXBwZWFyYW5jZT1cIm91dGxpbmVcIiBjbGFzcz1cImlubGluZS1lZGl0aW5nLWZpZWxkXCI+XHJcbiAgICAgICAgICAgIDxpbnB1dCBtYXRJbnB1dCB0eXBlPVwiZGF0ZVwiIFtmb3JtQ29udHJvbF09XCJkYXRlQ3RybFwiPlxyXG4gICAgICAgIDwvbWF0LWZvcm0tZmllbGQ+XHJcbiAgICAgICAgPCEtLSBTZWxlY3Rpb24gVHlwZSAtLT5cclxuICAgICAgICA8bWF0LWZvcm0tZmllbGQgKm5nSWY9XCJvYmoudHlwZSA9PSAnc2VsZWN0aW9uJ1wiIGFwcGVhcmFuY2U9XCJvdXRsaW5lXCIgY2xhc3M9XCJpbmxpbmUtZWRpdGluZy1maWVsZFwiPlxyXG4gICAgICAgICAgICA8bWF0LXNlbGVjdCBbdmFsdWVdPVwiXCIgW2Zvcm1Db250cm9sXT1cInNlbGVjdGlvbkN0cmxcIj5cclxuICAgICAgICAgICAgICAgIDxtYXQtb3B0aW9uICpuZ0Zvcj1cImxldCBvcHRpb24gb2Ygb2JqLm9wdGlvbnNcIiBbdmFsdWVdPVwib3B0aW9uXCI+XHJcbiAgICAgICAgICAgICAgICAgICAge3tvcHRpb259fVxyXG4gICAgICAgICAgICAgICAgPC9tYXQtb3B0aW9uPlxyXG4gICAgICAgICAgICA8L21hdC1zZWxlY3Q+XHJcbiAgICAgICAgPC9tYXQtZm9ybS1maWVsZD5cclxuICAgICAgICA8IS0tIEJvb2xlYW4gVHlwZSAtLT5cclxuICAgICAgICA8bWF0LWNoZWNrYm94IChjbGljayk9XCIkZXZlbnQuc3RvcFByb3BhZ2F0aW9uKClcIiAqbmdJZj1cIm9iai50eXBlID09ICdib29sZWFuJ1wiIGNvbG9yPVwicHJpbWFyeVwiIFtmb3JtQ29udHJvbF09XCJib29sZWFuQ3RybFwiPjwvbWF0LWNoZWNrYm94PlxyXG5cclxuICAgIDwvbmctY29udGFpbmVyPiJdfQ==
@@ -1,99 +0,0 @@
1
- import { Directive, Input } from "@angular/core";
2
- import * as i0 from "@angular/core";
3
- export class ResizeColumnDirective {
4
- constructor(renderer, el) {
5
- this.renderer = renderer;
6
- this.el = el;
7
- this.columnsResizable$ = false;
8
- this.onMouseDown = (event) => {
9
- this.pressed = true;
10
- this.startX = event.pageX;
11
- this.startWidth = this.column.offsetWidth;
12
- };
13
- this.onMouseMove = (event) => {
14
- const offset = 5;
15
- if (this.pressed && event.buttons) {
16
- this.renderer.addClass(this.table, "resizing");
17
- // Calculate width of column
18
- let width = this.startWidth + (event.pageX - this.startX - offset);
19
- const tableCells = Array.from(this.table.querySelectorAll(".mat-row")).map((row) => row.querySelectorAll(".mat-cell").item(this.index));
20
- // Set table header width
21
- this.renderer.setStyle(this.column, "width", `${width}px`);
22
- // Set table cells width
23
- for (const cell of tableCells) {
24
- if (cell && cell !== null)
25
- this.renderer.setStyle(cell, "width", `${width}px`);
26
- }
27
- }
28
- };
29
- this.onMouseUp = (event) => {
30
- if (this.pressed) {
31
- this.pressed = false;
32
- this.renderer.removeClass(this.table, "resizing");
33
- }
34
- };
35
- this.column = this.el.nativeElement;
36
- }
37
- set columnsResizable(val) {
38
- this.columnsResizable$ = val;
39
- }
40
- get columnsResizable() {
41
- return this.columnsResizable$;
42
- }
43
- ngOnInit() {
44
- if (this.columnsResizable$) {
45
- const row = this.renderer.parentNode(this.column);
46
- const thead = this.renderer.parentNode(row);
47
- this.table = this.renderer.parentNode(thead);
48
- const resizer = this.renderer.createElement("span");
49
- this.renderer.addClass(resizer, "resize-holder");
50
- this.renderer.setAttribute(resizer, 'id', "resizeHolderSpan");
51
- this.renderer.appendChild(this.column, resizer);
52
- this.renderer.listen(resizer, "mousedown", this.onMouseDown);
53
- this.renderer.listen(this.table, "mousemove", this.onMouseMove);
54
- this.renderer.listen("document", "mouseup", this.onMouseUp);
55
- }
56
- else {
57
- this.removeDragElementFromDom();
58
- }
59
- }
60
- ngOnChanges() {
61
- if (this.columnsResizable$) {
62
- const row = this.renderer.parentNode(this.column);
63
- const thead = this.renderer.parentNode(row);
64
- const resizer = this.renderer.createElement("span");
65
- this.table = this.renderer.parentNode(thead);
66
- this.renderer.addClass(resizer, "resize-holder");
67
- this.renderer.setAttribute(resizer, 'id', "resizeHolderSpan");
68
- this.renderer.appendChild(this.column, resizer);
69
- this.renderer.listen(resizer, "mousedown", this.onMouseDown);
70
- this.renderer.listen(this.table, "mousemove", this.onMouseMove);
71
- this.renderer.listen("document", "mouseup", this.onMouseUp);
72
- }
73
- else {
74
- this.removeDragElementFromDom();
75
- }
76
- }
77
- /**
78
- * @description This method is used remove resizing handlers from the table headers when column resizing is disabled.
79
- */
80
- removeDragElementFromDom() {
81
- let ele = document.getElementById('resizeHolderSpan');
82
- if (ele && ele !== null && ele !== undefined) {
83
- this.renderer.removeChild(this.column, ele);
84
- }
85
- }
86
- }
87
- ResizeColumnDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: ResizeColumnDirective, deps: [{ token: i0.Renderer2 }, { token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive });
88
- ResizeColumnDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "14.2.12", type: ResizeColumnDirective, selector: "[columnsResizable]", inputs: { columnsResizable: "columnsResizable", index: "index" }, usesOnChanges: true, ngImport: i0 });
89
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: ResizeColumnDirective, decorators: [{
90
- type: Directive,
91
- args: [{
92
- selector: "[columnsResizable]"
93
- }]
94
- }], ctorParameters: function () { return [{ type: i0.Renderer2 }, { type: i0.ElementRef }]; }, propDecorators: { columnsResizable: [{
95
- type: Input
96
- }], index: [{
97
- type: Input
98
- }] } });
99
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVzaXplLWNvbHVtbi5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9tYXQtdGFibGUtZXh0L3NyYy9saWIvZGlyZWN0aXZlcy9yZXNpemUtY29sdW1uLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFxQixLQUFLLEVBQXlCLE1BQU0sZUFBZSxDQUFDOztBQUszRixNQUFNLE9BQU8scUJBQXFCO0lBZTlCLFlBQW9CLFFBQW1CLEVBQVUsRUFBYztRQUEzQyxhQUFRLEdBQVIsUUFBUSxDQUFXO1FBQVUsT0FBRSxHQUFGLEVBQUUsQ0FBWTtRQWQvRCxzQkFBaUIsR0FBWSxLQUFLLENBQUM7UUFzRG5DLGdCQUFXLEdBQUcsQ0FBQyxLQUFpQixFQUFFLEVBQUU7WUFDaEMsSUFBSSxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUM7WUFDcEIsSUFBSSxDQUFDLE1BQU0sR0FBRyxLQUFLLENBQUMsS0FBSyxDQUFDO1lBQzFCLElBQUksQ0FBQyxVQUFVLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxXQUFXLENBQUM7UUFDOUMsQ0FBQyxDQUFDO1FBRUYsZ0JBQVcsR0FBRyxDQUFDLEtBQWlCLEVBQUUsRUFBRTtZQUNoQyxNQUFNLE1BQU0sR0FBRyxDQUFDLENBQUM7WUFDakIsSUFBSSxJQUFJLENBQUMsT0FBTyxJQUFJLEtBQUssQ0FBQyxPQUFPLEVBQUU7Z0JBQy9CLElBQUksQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUUsVUFBVSxDQUFDLENBQUM7Z0JBQy9DLDRCQUE0QjtnQkFDNUIsSUFBSSxLQUFLLEdBQ0wsSUFBSSxDQUFDLFVBQVUsR0FBRyxDQUFDLEtBQUssQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDLE1BQU0sR0FBRyxNQUFNLENBQUMsQ0FBQztnQkFDM0QsTUFBTSxVQUFVLEdBQUcsS0FBSyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLGdCQUFnQixDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUN0RSxDQUFDLEdBQVEsRUFBRSxFQUFFLENBQUMsR0FBRyxDQUFDLGdCQUFnQixDQUFDLFdBQVcsQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQ25FLENBQUM7Z0JBQ0YseUJBQXlCO2dCQUN6QixJQUFJLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFLE9BQU8sRUFBRSxHQUFHLEtBQUssSUFBSSxDQUFDLENBQUM7Z0JBQzNELHdCQUF3QjtnQkFDeEIsS0FBSyxNQUFNLElBQUksSUFBSSxVQUFVLEVBQUU7b0JBQzNCLElBQUksSUFBSSxJQUFJLElBQUksS0FBSyxJQUFJO3dCQUN6QixJQUFJLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxJQUFJLEVBQUUsT0FBTyxFQUFFLEdBQUcsS0FBSyxJQUFJLENBQUMsQ0FBQztpQkFDdkQ7YUFDSjtRQUNMLENBQUMsQ0FBQztRQUVGLGNBQVMsR0FBRyxDQUFDLEtBQWlCLEVBQUUsRUFBRTtZQUM5QixJQUFJLElBQUksQ0FBQyxPQUFPLEVBQUU7Z0JBQ2QsSUFBSSxDQUFDLE9BQU8sR0FBRyxLQUFLLENBQUM7Z0JBQ3JCLElBQUksQ0FBQyxRQUFRLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUUsVUFBVSxDQUFDLENBQUM7YUFDckQ7UUFDTCxDQUFDLENBQUM7UUF0RUUsSUFBSSxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUMsRUFBRSxDQUFDLGFBQWEsQ0FBQztJQUN4QyxDQUFDO0lBZkQsSUFBYSxnQkFBZ0IsQ0FBQyxHQUFZO1FBQ3RDLElBQUksQ0FBQyxpQkFBaUIsR0FBRyxHQUFHLENBQUM7SUFDakMsQ0FBQztJQUNELElBQUksZ0JBQWdCO1FBQ2hCLE9BQU8sSUFBSSxDQUFDLGlCQUFpQixDQUFDO0lBQ2xDLENBQUM7SUFZRCxRQUFRO1FBQ0osSUFBSSxJQUFJLENBQUMsaUJBQWlCLEVBQUU7WUFDeEIsTUFBTSxHQUFHLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1lBQ2xELE1BQU0sS0FBSyxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1lBQzVDLElBQUksQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxVQUFVLENBQUMsS0FBSyxDQUFDLENBQUM7WUFFN0MsTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxhQUFhLENBQUMsTUFBTSxDQUFDLENBQUM7WUFDcEQsSUFBSSxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLGVBQWUsQ0FBQyxDQUFDO1lBQ2pELElBQUksQ0FBQyxRQUFRLENBQUMsWUFBWSxDQUFDLE9BQU8sRUFBRSxJQUFJLEVBQUUsa0JBQWtCLENBQUMsQ0FBQztZQUM5RCxJQUFJLENBQUMsUUFBUSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFLE9BQU8sQ0FBQyxDQUFDO1lBQ2hELElBQUksQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLE9BQU8sRUFBRSxXQUFXLEVBQUUsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDO1lBQzdELElBQUksQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUUsV0FBVyxFQUFFLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQztZQUNoRSxJQUFJLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxVQUFVLEVBQUUsU0FBUyxFQUFFLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQztTQUMvRDthQUNJO1lBQ0QsSUFBSSxDQUFDLHdCQUF3QixFQUFFLENBQUM7U0FDbkM7SUFDTCxDQUFDO0lBQ0QsV0FBVztRQUNQLElBQUksSUFBSSxDQUFDLGlCQUFpQixFQUFFO1lBQ3hCLE1BQU0sR0FBRyxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztZQUNsRCxNQUFNLEtBQUssR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsQ0FBQztZQUM1QyxNQUFNLE9BQU8sR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLGFBQWEsQ0FBQyxNQUFNLENBQUMsQ0FBQztZQUNwRCxJQUFJLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsVUFBVSxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQzdDLElBQUksQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxlQUFlLENBQUMsQ0FBQztZQUNqRCxJQUFJLENBQUMsUUFBUSxDQUFDLFlBQVksQ0FBQyxPQUFPLEVBQUUsSUFBSSxFQUFFLGtCQUFrQixDQUFDLENBQUM7WUFDOUQsSUFBSSxDQUFDLFFBQVEsQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRSxPQUFPLENBQUMsQ0FBQztZQUNoRCxJQUFJLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxPQUFPLEVBQUUsV0FBVyxFQUFFLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQztZQUM3RCxJQUFJLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFLFdBQVcsRUFBRSxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUM7WUFDaEUsSUFBSSxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsVUFBVSxFQUFFLFNBQVMsRUFBRSxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUM7U0FDL0Q7YUFDSTtZQUNELElBQUksQ0FBQyx3QkFBd0IsRUFBRSxDQUFDO1NBQ25DO0lBQ0wsQ0FBQztJQWtDRDs7T0FFRztJQUNILHdCQUF3QjtRQUNwQixJQUFJLEdBQUcsR0FBRyxRQUFRLENBQUMsY0FBYyxDQUFDLGtCQUFrQixDQUFDLENBQUE7UUFDckQsSUFBSSxHQUFHLElBQUksR0FBRyxLQUFLLElBQUksSUFBSSxHQUFHLEtBQUssU0FBUyxFQUFFO1lBQzFDLElBQUksQ0FBQyxRQUFRLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUUsR0FBRyxDQUFDLENBQUM7U0FDL0M7SUFDTCxDQUFDOzttSEEvRlEscUJBQXFCO3VHQUFyQixxQkFBcUI7NEZBQXJCLHFCQUFxQjtrQkFIakMsU0FBUzttQkFBQztvQkFDUCxRQUFRLEVBQUUsb0JBQW9CO2lCQUNqQzt5SEFHZ0IsZ0JBQWdCO3NCQUE1QixLQUFLO2dCQU1HLEtBQUs7c0JBQWIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERpcmVjdGl2ZSwgT25Jbml0LCBSZW5kZXJlcjIsIElucHV0LCBFbGVtZW50UmVmLCBPbkNoYW5nZXMgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xyXG5cclxuQERpcmVjdGl2ZSh7XHJcbiAgICBzZWxlY3RvcjogXCJbY29sdW1uc1Jlc2l6YWJsZV1cIlxyXG59KVxyXG5leHBvcnQgY2xhc3MgUmVzaXplQ29sdW1uRGlyZWN0aXZlIGltcGxlbWVudHMgT25Jbml0LCBPbkNoYW5nZXMge1xyXG4gICAgY29sdW1uc1Jlc2l6YWJsZSQ6IGJvb2xlYW4gPSBmYWxzZTtcclxuICAgIEBJbnB1dCgpIHNldCBjb2x1bW5zUmVzaXphYmxlKHZhbDogYm9vbGVhbikge1xyXG4gICAgICAgIHRoaXMuY29sdW1uc1Jlc2l6YWJsZSQgPSB2YWw7XHJcbiAgICB9XHJcbiAgICBnZXQgY29sdW1uc1Jlc2l6YWJsZSgpIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5jb2x1bW5zUmVzaXphYmxlJDtcclxuICAgIH1cclxuICAgIEBJbnB1dCgpIGluZGV4ITogbnVtYmVyO1xyXG4gICAgcHJpdmF0ZSBzdGFydFghOiBudW1iZXI7XHJcbiAgICBwcml2YXRlIHN0YXJ0V2lkdGghOiBudW1iZXI7XHJcbiAgICBwcml2YXRlIGNvbHVtbjogSFRNTEVsZW1lbnQ7XHJcbiAgICBwcml2YXRlIHRhYmxlITogSFRNTEVsZW1lbnQ7XHJcbiAgICBwcml2YXRlIHByZXNzZWQhOiBib29sZWFuO1xyXG5cclxuICAgIGNvbnN0cnVjdG9yKHByaXZhdGUgcmVuZGVyZXI6IFJlbmRlcmVyMiwgcHJpdmF0ZSBlbDogRWxlbWVudFJlZikge1xyXG4gICAgICAgIHRoaXMuY29sdW1uID0gdGhpcy5lbC5uYXRpdmVFbGVtZW50O1xyXG4gICAgfVxyXG5cclxuICAgIG5nT25Jbml0KCkge1xyXG4gICAgICAgIGlmICh0aGlzLmNvbHVtbnNSZXNpemFibGUkKSB7XHJcbiAgICAgICAgICAgIGNvbnN0IHJvdyA9IHRoaXMucmVuZGVyZXIucGFyZW50Tm9kZSh0aGlzLmNvbHVtbik7XHJcbiAgICAgICAgICAgIGNvbnN0IHRoZWFkID0gdGhpcy5yZW5kZXJlci5wYXJlbnROb2RlKHJvdyk7XHJcbiAgICAgICAgICAgIHRoaXMudGFibGUgPSB0aGlzLnJlbmRlcmVyLnBhcmVudE5vZGUodGhlYWQpO1xyXG5cclxuICAgICAgICAgICAgY29uc3QgcmVzaXplciA9IHRoaXMucmVuZGVyZXIuY3JlYXRlRWxlbWVudChcInNwYW5cIik7XHJcbiAgICAgICAgICAgIHRoaXMucmVuZGVyZXIuYWRkQ2xhc3MocmVzaXplciwgXCJyZXNpemUtaG9sZGVyXCIpO1xyXG4gICAgICAgICAgICB0aGlzLnJlbmRlcmVyLnNldEF0dHJpYnV0ZShyZXNpemVyLCAnaWQnLCBcInJlc2l6ZUhvbGRlclNwYW5cIik7XHJcbiAgICAgICAgICAgIHRoaXMucmVuZGVyZXIuYXBwZW5kQ2hpbGQodGhpcy5jb2x1bW4sIHJlc2l6ZXIpO1xyXG4gICAgICAgICAgICB0aGlzLnJlbmRlcmVyLmxpc3RlbihyZXNpemVyLCBcIm1vdXNlZG93blwiLCB0aGlzLm9uTW91c2VEb3duKTtcclxuICAgICAgICAgICAgdGhpcy5yZW5kZXJlci5saXN0ZW4odGhpcy50YWJsZSwgXCJtb3VzZW1vdmVcIiwgdGhpcy5vbk1vdXNlTW92ZSk7XHJcbiAgICAgICAgICAgIHRoaXMucmVuZGVyZXIubGlzdGVuKFwiZG9jdW1lbnRcIiwgXCJtb3VzZXVwXCIsIHRoaXMub25Nb3VzZVVwKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgZWxzZSB7XHJcbiAgICAgICAgICAgIHRoaXMucmVtb3ZlRHJhZ0VsZW1lbnRGcm9tRG9tKCk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG4gICAgbmdPbkNoYW5nZXMoKSB7XHJcbiAgICAgICAgaWYgKHRoaXMuY29sdW1uc1Jlc2l6YWJsZSQpIHtcclxuICAgICAgICAgICAgY29uc3Qgcm93ID0gdGhpcy5yZW5kZXJlci5wYXJlbnROb2RlKHRoaXMuY29sdW1uKTtcclxuICAgICAgICAgICAgY29uc3QgdGhlYWQgPSB0aGlzLnJlbmRlcmVyLnBhcmVudE5vZGUocm93KTtcclxuICAgICAgICAgICAgY29uc3QgcmVzaXplciA9IHRoaXMucmVuZGVyZXIuY3JlYXRlRWxlbWVudChcInNwYW5cIik7XHJcbiAgICAgICAgICAgIHRoaXMudGFibGUgPSB0aGlzLnJlbmRlcmVyLnBhcmVudE5vZGUodGhlYWQpO1xyXG4gICAgICAgICAgICB0aGlzLnJlbmRlcmVyLmFkZENsYXNzKHJlc2l6ZXIsIFwicmVzaXplLWhvbGRlclwiKTtcclxuICAgICAgICAgICAgdGhpcy5yZW5kZXJlci5zZXRBdHRyaWJ1dGUocmVzaXplciwgJ2lkJywgXCJyZXNpemVIb2xkZXJTcGFuXCIpO1xyXG4gICAgICAgICAgICB0aGlzLnJlbmRlcmVyLmFwcGVuZENoaWxkKHRoaXMuY29sdW1uLCByZXNpemVyKTtcclxuICAgICAgICAgICAgdGhpcy5yZW5kZXJlci5saXN0ZW4ocmVzaXplciwgXCJtb3VzZWRvd25cIiwgdGhpcy5vbk1vdXNlRG93bik7XHJcbiAgICAgICAgICAgIHRoaXMucmVuZGVyZXIubGlzdGVuKHRoaXMudGFibGUsIFwibW91c2Vtb3ZlXCIsIHRoaXMub25Nb3VzZU1vdmUpO1xyXG4gICAgICAgICAgICB0aGlzLnJlbmRlcmVyLmxpc3RlbihcImRvY3VtZW50XCIsIFwibW91c2V1cFwiLCB0aGlzLm9uTW91c2VVcCk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgICB0aGlzLnJlbW92ZURyYWdFbGVtZW50RnJvbURvbSgpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuICAgIFxyXG4gICAgb25Nb3VzZURvd24gPSAoZXZlbnQ6IE1vdXNlRXZlbnQpID0+IHtcclxuICAgICAgICB0aGlzLnByZXNzZWQgPSB0cnVlO1xyXG4gICAgICAgIHRoaXMuc3RhcnRYID0gZXZlbnQucGFnZVg7XHJcbiAgICAgICAgdGhpcy5zdGFydFdpZHRoID0gdGhpcy5jb2x1bW4ub2Zmc2V0V2lkdGg7XHJcbiAgICB9O1xyXG5cclxuICAgIG9uTW91c2VNb3ZlID0gKGV2ZW50OiBNb3VzZUV2ZW50KSA9PiB7XHJcbiAgICAgICAgY29uc3Qgb2Zmc2V0ID0gNTtcclxuICAgICAgICBpZiAodGhpcy5wcmVzc2VkICYmIGV2ZW50LmJ1dHRvbnMpIHtcclxuICAgICAgICAgICAgdGhpcy5yZW5kZXJlci5hZGRDbGFzcyh0aGlzLnRhYmxlLCBcInJlc2l6aW5nXCIpO1xyXG4gICAgICAgICAgICAvLyBDYWxjdWxhdGUgd2lkdGggb2YgY29sdW1uXHJcbiAgICAgICAgICAgIGxldCB3aWR0aCA9XHJcbiAgICAgICAgICAgICAgICB0aGlzLnN0YXJ0V2lkdGggKyAoZXZlbnQucGFnZVggLSB0aGlzLnN0YXJ0WCAtIG9mZnNldCk7XHJcbiAgICAgICAgICAgIGNvbnN0IHRhYmxlQ2VsbHMgPSBBcnJheS5mcm9tKHRoaXMudGFibGUucXVlcnlTZWxlY3RvckFsbChcIi5tYXQtcm93XCIpKS5tYXAoXHJcbiAgICAgICAgICAgICAgICAocm93OiBhbnkpID0+IHJvdy5xdWVyeVNlbGVjdG9yQWxsKFwiLm1hdC1jZWxsXCIpLml0ZW0odGhpcy5pbmRleClcclxuICAgICAgICAgICAgKTtcclxuICAgICAgICAgICAgLy8gU2V0IHRhYmxlIGhlYWRlciB3aWR0aFxyXG4gICAgICAgICAgICB0aGlzLnJlbmRlcmVyLnNldFN0eWxlKHRoaXMuY29sdW1uLCBcIndpZHRoXCIsIGAke3dpZHRofXB4YCk7XHJcbiAgICAgICAgICAgIC8vIFNldCB0YWJsZSBjZWxscyB3aWR0aFxyXG4gICAgICAgICAgICBmb3IgKGNvbnN0IGNlbGwgb2YgdGFibGVDZWxscykge1xyXG4gICAgICAgICAgICAgICAgaWYgKGNlbGwgJiYgY2VsbCAhPT0gbnVsbClcclxuICAgICAgICAgICAgICAgIHRoaXMucmVuZGVyZXIuc2V0U3R5bGUoY2VsbCwgXCJ3aWR0aFwiLCBgJHt3aWR0aH1weGApO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgfTtcclxuXHJcbiAgICBvbk1vdXNlVXAgPSAoZXZlbnQ6IE1vdXNlRXZlbnQpID0+IHtcclxuICAgICAgICBpZiAodGhpcy5wcmVzc2VkKSB7XHJcbiAgICAgICAgICAgIHRoaXMucHJlc3NlZCA9IGZhbHNlO1xyXG4gICAgICAgICAgICB0aGlzLnJlbmRlcmVyLnJlbW92ZUNsYXNzKHRoaXMudGFibGUsIFwicmVzaXppbmdcIik7XHJcbiAgICAgICAgfVxyXG4gICAgfTtcclxuICAgIC8qKlxyXG4gICAgICogQGRlc2NyaXB0aW9uIFRoaXMgbWV0aG9kIGlzIHVzZWQgcmVtb3ZlIHJlc2l6aW5nIGhhbmRsZXJzIGZyb20gdGhlIHRhYmxlIGhlYWRlcnMgd2hlbiBjb2x1bW4gcmVzaXppbmcgaXMgZGlzYWJsZWQuXHJcbiAgICAgKi9cclxuICAgIHJlbW92ZURyYWdFbGVtZW50RnJvbURvbSgpIHtcclxuICAgICAgICBsZXQgZWxlID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Jlc2l6ZUhvbGRlclNwYW4nKVxyXG4gICAgICAgIGlmIChlbGUgJiYgZWxlICE9PSBudWxsICYmIGVsZSAhPT0gdW5kZWZpbmVkKSB7XHJcbiAgICAgICAgICAgIHRoaXMucmVuZGVyZXIucmVtb3ZlQ2hpbGQodGhpcy5jb2x1bW4sIGVsZSk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG59XHJcblxyXG4iXX0=