mat-table-ext 0.0.9 → 0.0.10

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 (89) hide show
  1. package/esm2020/lib/components/column-pinning/column-pinning.component.mjs +58 -0
  2. package/esm2020/lib/components/editing/editing.component.mjs +122 -0
  3. package/esm2020/lib/components/filter-columns-component/filter-columns-component.component.mjs +68 -0
  4. package/esm2020/lib/directives/resize-column.directive.mjs +99 -0
  5. package/esm2020/lib/mat-table-ext.component.mjs +1020 -0
  6. package/esm2020/lib/mat-table-ext.module.mjs +237 -0
  7. package/esm2020/lib/mat-table-ext.service.mjs +20 -0
  8. package/esm2020/lib/models/tableExtModels.mjs +2 -0
  9. package/esm2020/mat-table-ext.mjs +5 -0
  10. package/esm2020/public-api.mjs +11 -0
  11. package/fesm2015/mat-table-ext.mjs +1584 -0
  12. package/fesm2015/mat-table-ext.mjs.map +1 -0
  13. package/fesm2020/mat-table-ext.mjs +1581 -0
  14. package/fesm2020/mat-table-ext.mjs.map +1 -0
  15. package/index.d.ts +5 -0
  16. package/lib/components/column-pinning/column-pinning.component.d.ts +27 -0
  17. package/lib/components/editing/editing.component.d.ts +42 -0
  18. package/lib/components/filter-columns-component/filter-columns-component.component.d.ts +26 -0
  19. package/lib/directives/resize-column.directive.d.ts +27 -0
  20. package/lib/mat-table-ext.component.d.ts +348 -0
  21. package/lib/mat-table-ext.module.d.ts +58 -0
  22. package/lib/mat-table-ext.service.d.ts +11 -0
  23. package/lib/models/tableExtModels.d.ts +76 -0
  24. package/package.json +58 -46
  25. package/{projects/mat-table-ext/src/public-api.ts → public-api.d.ts} +1 -5
  26. package/.editorconfig +0 -16
  27. package/.vscode/extensions.json +0 -4
  28. package/.vscode/launch.json +0 -20
  29. package/.vscode/tasks.json +0 -42
  30. package/LICENSE +0 -21
  31. package/angular.json +0 -150
  32. package/projects/mat-table-ext/.browserslistrc +0 -16
  33. package/projects/mat-table-ext/README.md +0 -57
  34. package/projects/mat-table-ext/karma.conf.js +0 -44
  35. package/projects/mat-table-ext/ng-package.json +0 -9
  36. package/projects/mat-table-ext/package.json +0 -38
  37. package/projects/mat-table-ext/src/lib/components/column-pinning/column-pinning.component.html +0 -7
  38. package/projects/mat-table-ext/src/lib/components/column-pinning/column-pinning.component.scss +0 -9
  39. package/projects/mat-table-ext/src/lib/components/column-pinning/column-pinning.component.spec.ts +0 -23
  40. package/projects/mat-table-ext/src/lib/components/column-pinning/column-pinning.component.ts +0 -48
  41. package/projects/mat-table-ext/src/lib/components/editing/editing.component.html +0 -55
  42. package/projects/mat-table-ext/src/lib/components/editing/editing.component.scss +0 -19
  43. package/projects/mat-table-ext/src/lib/components/editing/editing.component.spec.ts +0 -23
  44. package/projects/mat-table-ext/src/lib/components/editing/editing.component.ts +0 -110
  45. package/projects/mat-table-ext/src/lib/components/filter-columns-component/filter-columns-component.component.html +0 -26
  46. package/projects/mat-table-ext/src/lib/components/filter-columns-component/filter-columns-component.component.scss +0 -0
  47. package/projects/mat-table-ext/src/lib/components/filter-columns-component/filter-columns-component.component.spec.ts +0 -23
  48. package/projects/mat-table-ext/src/lib/components/filter-columns-component/filter-columns-component.component.ts +0 -54
  49. package/projects/mat-table-ext/src/lib/directives/resize-column.directive.ts +0 -103
  50. package/projects/mat-table-ext/src/lib/mat-table-ext.component.html +0 -285
  51. package/projects/mat-table-ext/src/lib/mat-table-ext.component.spec.ts +0 -25
  52. package/projects/mat-table-ext/src/lib/mat-table-ext.component.ts +0 -985
  53. package/projects/mat-table-ext/src/lib/mat-table-ext.module.ts +0 -127
  54. package/projects/mat-table-ext/src/lib/mat-table-ext.scss +0 -181
  55. package/projects/mat-table-ext/src/lib/mat-table-ext.service.spec.ts +0 -16
  56. package/projects/mat-table-ext/src/lib/mat-table-ext.service.ts +0 -12
  57. package/projects/mat-table-ext/src/lib/models/tableExtModels.ts +0 -85
  58. package/projects/mat-table-ext/src/test.ts +0 -27
  59. package/projects/mat-table-ext/tsconfig.lib.json +0 -15
  60. package/projects/mat-table-ext/tsconfig.lib.prod.json +0 -10
  61. package/projects/mat-table-ext/tsconfig.spec.json +0 -17
  62. package/projects/mat-table-ext-example/.browserslistrc +0 -16
  63. package/projects/mat-table-ext-example/karma.conf.js +0 -44
  64. package/projects/mat-table-ext-example/src/app/app.component.html +0 -576
  65. package/projects/mat-table-ext-example/src/app/app.component.scss +0 -0
  66. package/projects/mat-table-ext-example/src/app/app.component.spec.ts +0 -31
  67. package/projects/mat-table-ext-example/src/app/app.component.ts +0 -173
  68. package/projects/mat-table-ext-example/src/app/app.module.ts +0 -40
  69. package/projects/mat-table-ext-example/src/app/service/custom-table.service.spec.ts +0 -16
  70. package/projects/mat-table-ext-example/src/app/service/custom-table.service.ts +0 -18
  71. package/projects/mat-table-ext-example/src/assets/.gitkeep +0 -0
  72. package/projects/mat-table-ext-example/src/assets/data.json +0 -100003
  73. package/projects/mat-table-ext-example/src/environments/environment.prod.ts +0 -3
  74. package/projects/mat-table-ext-example/src/environments/environment.ts +0 -16
  75. package/projects/mat-table-ext-example/src/favicon.ico +0 -0
  76. package/projects/mat-table-ext-example/src/index.html +0 -14
  77. package/projects/mat-table-ext-example/src/main.ts +0 -12
  78. package/projects/mat-table-ext-example/src/polyfills.ts +0 -53
  79. package/projects/mat-table-ext-example/src/styles.scss +0 -23
  80. package/projects/mat-table-ext-example/src/test.ts +0 -26
  81. package/projects/mat-table-ext-example/tsconfig.app.json +0 -15
  82. package/projects/mat-table-ext-example/tsconfig.spec.json +0 -18
  83. package/tsconfig.json +0 -38
  84. /package/{projects/mat-table-ext/assets → assets}/_theming.scss +0 -0
  85. /package/{projects/mat-table-ext/assets → assets}/pinIcon.svg +0 -0
  86. /package/{projects/mat-table-ext/assets → assets}/pinLeft.svg +0 -0
  87. /package/{projects/mat-table-ext/assets → assets}/pinNone.svg +0 -0
  88. /package/{projects/mat-table-ext/assets → assets}/pinRight.svg +0 -0
  89. /package/{projects/mat-table-ext/assets → assets}/pinned.svg +0 -0
@@ -0,0 +1,58 @@
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
@@ -0,0 +1,122 @@
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=
@@ -0,0 +1,68 @@
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==
@@ -0,0 +1,99 @@
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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVzaXplLWNvbHVtbi5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9tYXQtdGFibGUtZXh0L3NyYy9saWIvZGlyZWN0aXZlcy9yZXNpemUtY29sdW1uLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFxQixLQUFLLEVBQXlCLE1BQU0sZUFBZSxDQUFDOztBQUszRixNQUFNLE9BQU8scUJBQXFCO0lBZTlCLFlBQW9CLFFBQW1CLEVBQVUsRUFBYztRQUEzQyxhQUFRLEdBQVIsUUFBUSxDQUFXO1FBQVUsT0FBRSxHQUFGLEVBQUUsQ0FBWTtRQWQvRCxzQkFBaUIsR0FBWSxLQUFLLENBQUM7UUFzRG5DLGdCQUFXLEdBQUcsQ0FBQyxLQUFpQixFQUFFLEVBQUU7WUFDaEMsSUFBSSxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUM7WUFDcEIsSUFBSSxDQUFDLE1BQU0sR0FBRyxLQUFLLENBQUMsS0FBSyxDQUFDO1lBQzFCLElBQUksQ0FBQyxVQUFVLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxXQUFXLENBQUM7UUFDOUMsQ0FBQyxDQUFDO1FBRUYsZ0JBQVcsR0FBRyxDQUFDLEtBQWlCLEVBQUUsRUFBRTtZQUNoQyxNQUFNLE1BQU0sR0FBRyxDQUFDLENBQUM7WUFDakIsSUFBSSxJQUFJLENBQUMsT0FBTyxJQUFJLEtBQUssQ0FBQyxPQUFPLEVBQUU7Z0JBQy9CLElBQUksQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUUsVUFBVSxDQUFDLENBQUM7Z0JBQy9DLDRCQUE0QjtnQkFDNUIsSUFBSSxLQUFLLEdBQ0wsSUFBSSxDQUFDLFVBQVUsR0FBRyxDQUFDLEtBQUssQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDLE1BQU0sR0FBRyxNQUFNLENBQUMsQ0FBQztnQkFDM0QsTUFBTSxVQUFVLEdBQUcsS0FBSyxDQUFD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QzFDLElBQUksQ0FBQyxRQUFRLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUUsR0FBRyxDQUFDLENBQUM7U0FDL0M7SUFDTCxDQUFDOzttSEEvRlEscUJBQXFCO3VHQUFyQixxQkFBcUI7NEZBQXJCLHFCQUFxQjtrQkFIakMsU0FBUzttQkFBQztvQkFDUCxRQUFRLEVBQUUsb0JBQW9CO2lCQUNqQzt5SEFHZ0IsZ0JBQWdCO3NCQUE1QixLQUFLO2dCQU1HLEtBQUs7c0JBQWIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERpcmVjdGl2ZSwgT25Jbml0LCBSZW5kZXJlcjIsIElucHV0LCBFbGVtZW50UmVmLCBPbkNoYW5nZXMgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xyXG5cclxuQERpcmVjdGl2ZSh7XHJcbiAgICBzZWxlY3RvcjogXCJbY29sdW1uc1Jlc2l6YWJsZV1cIlxyXG59KVxyXG5leHBvcnQgY2xhc3MgUmVzaXplQ29sdW1uRGlyZWN0aXZlIGltcGxlbWVudHMgT25Jbml0LCBPbkNoYW5nZXMge1xyXG4gICAgY29sdW1uc1Jlc2l6YWJsZSQ6IGJvb2xlYW4gPSBmYWxzZTtcclxuICAgIEBJbnB1dCgpIHNldCBjb2x1bW5zUmVzaXphYmxlKHZhbDogYm9vbGVhbikge1xyXG4gICAgICAgIHRoaXMuY29sdW1uc1Jlc2l6YWJsZSQgPSB2YWw7XHJcbiAgICB9XHJcbiAgICBnZXQgY29sdW1uc1Jlc2l6YWJsZSgpIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5jb2x1bW5zUmVzaXphYmxlJDtcclxuICAgIH1cclxuICAgIEBJbnB1dCgpIGluZGV4ITogbnVtYmVyO1xyXG4gICAgcHJpdmF0ZSBzdGFydFghOiBudW1iZXI7XHJcbiAgICBwcml2YXRlIHN0YXJ0V2lkdGghOiBudW1iZXI7XHJcbiAgICBwcml2YXRlIGNvbHVtbjogSFRNTEVsZW1lbnQ7XHJcbiAgICBwcml2YXRlIHRhYmxlITogSFRNTEVsZW1lbnQ7XHJcbiAgICBwcml2YXRlIHByZXNzZWQhOiBib29sZWFuO1xyXG5cclxuICAgIGNvbnN0cnVjdG9yKHByaXZhdGUgcmVuZGVyZXI6IFJlbmRlcmVyMiwgcHJpdmF0ZSBlbDogRWxlbWVudFJlZikge1xyXG4gICAgICAgIHRoaXMuY29sdW1uID0gdGhpcy5lbC5uYXRpdmVFbGVtZW50O1xyXG4gICAgfVxyXG5cclxuICAgIG5nT25Jbml0KCkge1xyXG4gICAgICAgIGlmICh0aGlzLmNvbHVtbnNSZXNpemFibGUkKSB7XHJcbiAgICAgICAgICAgIGNvbnN0IHJvdyA9IHRoaXMucmVuZGVyZXIucGFyZW50Tm9kZSh0aGlzLmNvbHVtbik7XHJcbiAgICAgICAgICAgIGNvbnN0IHRoZWFkID0gdGhpcy5yZW5kZXJlci5wYXJlbnROb2RlKHJvdyk7XHJcbiAgICAgICAgICAgIHRoaXMudGFibGUgPSB0aGlzLnJlbmRlcmVyLnBhcmVudE5vZGUodGhlYWQpO1xyXG5cclxuICAgICAgICAgICAgY29uc3QgcmVzaXplciA9IHRoaXMucmVuZGVyZXIuY3JlYXRlRWxlbWVudChcInNwYW5cIik7XHJcbiAgICAgICAgICAgIHRoaXMucmVuZGVyZXIuYWRkQ2xhc3MocmVzaXplciwgXCJyZXNpemUtaG9sZGVyXCIpO1xyXG4gICAgICAgICAgICB0aGlzLnJlbmRlcmVyLnNldEF0dHJpYnV0ZShyZXNpemVyLCAnaWQnLCBcInJlc2l6ZUhvbGRlclNwYW5cIik7XHJcbiAgICAgICAgICAgIHRoaXMucmVuZGVyZXIuYXBwZW5kQ2hpbGQodGhpcy5jb2x1bW4sIHJlc2l6ZXIpO1xyXG4gICAgICAgICAgICB0aGlzLnJlbmRlcmVyLmxpc3RlbihyZXNpemVyLCBcIm1vdXNlZG93blwiLCB0aGlzLm9uTW91c2VEb3duKTtcclxuICAgICAgICAgICAgdGhpcy5yZW5kZXJlci5saXN0ZW4odGhpcy50YWJsZSwgXCJtb3VzZW1vdmVcIiwgdGhpcy5vbk1vdXNlTW92ZSk7XHJcbiAgICAgICAgICAgIHRoaXMucmVuZGVyZXIubGlzdGVuKFwiZG9jdW1lbnRcIiwgXCJtb3VzZXVwXCIsIHRoaXMub25Nb3VzZVVwKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgZWxzZSB7XHJcbiAgICAgICAgICAgIHRoaXMucmVtb3ZlRHJhZ0VsZW1lbnRGcm9tRG9tKCk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG4gICAgbmdPbkNoYW5nZXMoKSB7XHJcbiAgICAgICAgaWYgKHRoaXMuY29sdW1uc1Jlc2l6YWJsZSQpIHtcclxuICAgICAgICAgICAgY29uc3Qgcm93ID0gdGhpcy5yZW5kZXJlci5wYXJlbnROb2RlKHRoaXMuY29sdW1uKTtcclxuICAgICAgICAgICAgY29uc3QgdGhlYWQgPSB0aGlzLnJlbmRlcmVyLnBhcmVudE5vZGUocm93KTtcclxuICAgICAgICAgICAgY29uc3QgcmVzaXplciA9IHRoaXMucmVuZGVyZXIuY3JlYXRlRWxlbWVudChcInNwYW5cIik7XHJcbiAgICAgICAgICAgIHRoaXMudGFibGUgPSB0aGlzLnJlbmRlcmVyLnBhcmVudE5vZGUodGhlYWQpO1xyXG4gICAgICAgICAgICB0aGlzLnJlbmRlcmVyLmFkZENsYXNzKHJlc2l6ZXIsIFwicmVzaXplLWhvbGRlclwiKTtcclxuICAgICAgICAgICAgdGhpcy5yZW5kZXJlci5zZXRBdHRyaWJ1dGUocmVzaXplciwgJ2lkJywgXCJyZXNpemVIb2xkZXJTcGFuXCIpO1xyXG4gICAgICAgICAgICB0aGlzLnJlbmRlcmVyLmFwcGVuZENoaWxkKHRoaXMuY29sdW1uLCByZXNpemVyKTtcclxuICAgICAgICAgICAgdGhpcy5yZW5kZXJlci5saXN0ZW4ocmVzaXplciwgXCJtb3VzZWRvd25cIiwgdGhpcy5vbk1vdXNlRG93bik7XHJcbiAgICAgICAgICAgIHRoaXMucmVuZGVyZXIubGlzdGVuKHRoaXMudGFibGUsIFwibW91c2Vtb3ZlXCIsIHRoaXMub25Nb3VzZU1vdmUpO1xyXG4gICAgICAgICAgICB0aGlzLnJlbmRlcmVyLmxpc3RlbihcImRvY3VtZW50XCIsIFwibW91c2V1cFwiLCB0aGlzLm9uTW91c2VVcCk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgICB0aGlzLnJlbW92ZURyYWdFbGVtZW50RnJvbURvbSgpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuICAgIFxyXG4gICAgb25Nb3VzZURvd24gPSAoZXZlbnQ6IE1vdXNlRXZlbnQpID0+IHtcclxuICAgICAgICB0aGlzLnByZXNzZWQgPSB0cnVlO1xyXG4gICAgICAgIHRoaXMuc3RhcnRYID0gZXZlbnQucGFnZVg7XHJcbiAgICAgICAgdGhpcy5zdGFydFdpZHRoID0gdGhpcy5jb2x1bW4ub2Zmc2V0V2lkdGg7XHJcbiAgICB9O1xyXG5cclxuICAgIG9uTW91c2VNb3ZlID0gKGV2ZW50OiBNb3VzZUV2ZW50KSA9PiB7XHJcbiAgICAgICAgY29uc3Qgb2Zmc2V0ID0gNTtcclxuICAgICAgICBpZiAodGhpcy5wcmVzc2VkICYmIGV2ZW50LmJ1dHRvbnMpIHtcclxuICAgICAgICAgICAgdGhpcy5yZW5kZXJlci5hZGRDbGFzcyh0aGlzLnRhYmxlLCBcInJlc2l6aW5nXCIpO1xyXG4gICAgICAgICAgICAvLyBDYWxjdWxhdGUgd2lkdGggb2YgY29sdW1uXHJcbiAgICAgICAgICAgIGxldCB3aWR0aCA9XHJcbiAgICAgICAgICAgICAgICB0aGlzLnN0YXJ0V2lkdGggKyAoZXZlbnQucGFnZVggLSB0aGlzLnN0YXJ0WCAtIG9mZnNldCk7XHJcbiAgICAgICAgICAgIGNvbnN0IHRhYmxlQ2VsbHMgPSBBcnJheS5mcm9tKHRoaXMudGFibGUucXVlcnlTZWxlY3RvckFsbChcIi5tYXQtcm93XCIpKS5tYXAoXHJcbiAgICAgICAgICAgICAgICAocm93OiBhbnkpID0+IHJvdy5xdWVyeVNlbGVjdG9yQWxsKFwiLm1hdC1jZWxsXCIpLml0ZW0odGhpcy5pbmRleClcclxuICAgICAgICAgICAgKTtcclxuICAgICAgICAgICAgLy8gU2V0IHRhYmxlIGhlYWRlciB3aWR0aFxyXG4gICAgICAgICAgICB0aGlzLnJlbmRlcmVyLnNldFN0eWxlKHRoaXMuY29sdW1uLCBcIndpZHRoXCIsIGAke3dpZHRofXB4YCk7XHJcbiAgICAgICAgICAgIC8vIFNldCB0YWJsZSBjZWxscyB3aWR0aFxyXG4gICAgICAgICAgICBmb3IgKGNvbnN0IGNlbGwgb2YgdGFibGVDZWxscykge1xyXG4gICAgICAgICAgICAgICAgaWYgKGNlbGwgJiYgY2VsbCAhPT0gbnVsbClcclxuICAgICAgICAgICAgICAgIHRoaXMucmVuZGVyZXIuc2V0U3R5bGUoY2VsbCwgXCJ3aWR0aFwiLCBgJHt3aWR0aH1weGApO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgfTtcclxuXHJcbiAgICBvbk1vdXNlVXAgPSAoZXZlbnQ6IE1vdXNlRXZlbnQpID0+IHtcclxuICAgICAgICBpZiAodGhpcy5wcmVzc2VkKSB7XHJcbiAgICAgICAgICAgIHRoaXMucHJlc3NlZCA9IGZhbHNlO1xyXG4gICAgICAgICAgICB0aGlzLnJlbmRlcmVyLnJlbW92ZUNsYXNzKHRoaXMudGFibGUsIFwicmVzaXppbmdcIik7XHJcbiAgICAgICAgfVxyXG4gICAgfTtcclxuICAgIC8qKlxyXG4gICAgICogQGRlc2NyaXB0aW9uIFRoaXMgbWV0aG9kIGlzIHVzZWQgcmVtb3ZlIHJlc2l6aW5nIGhhbmRsZXJzIGZyb20gdGhlIHRhYmxlIGhlYWRlcnMgd2hlbiBjb2x1bW4gcmVzaXppbmcgaXMgZGlzYWJsZWQuXHJcbiAgICAgKi9cclxuICAgIHJlbW92ZURyYWdFbGVtZW50RnJvbURvbSgpIHtcclxuICAgICAgICBsZXQgZWxlID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Jlc2l6ZUhvbGRlclNwYW4nKVxyXG4gICAgICAgIGlmIChlbGUgJiYgZWxlICE9PSBudWxsICYmIGVsZSAhPT0gdW5kZWZpbmVkKSB7XHJcbiAgICAgICAgICAgIHRoaXMucmVuZGVyZXIucmVtb3ZlQ2hpbGQodGhpcy5jb2x1bW4sIGVsZSk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG59XHJcblxyXG4iXX0=