@one-grid-core/angular 0.1.0-beta.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +168 -0
- package/esm2022/lib/components/one-grid/one-grid.component.mjs +388 -0
- package/esm2022/lib/components/one-grid-body/one-grid-body.component.mjs +570 -0
- package/esm2022/lib/components/one-grid-cell-currency/one-grid-cell-currency.component.mjs +90 -0
- package/esm2022/lib/components/one-grid-cell-group-renderer/one-grid-cell-group-renderer.component.mjs +31 -0
- package/esm2022/lib/components/one-grid-cell-option-menu/one-grid-cell-option-menu.component.mjs +67 -0
- package/esm2022/lib/components/one-grid-checkbox/one-grid-checkbox.component.mjs +47 -0
- package/esm2022/lib/components/one-grid-checkbox-header/one-grid-checkbox-header.component.mjs +62 -0
- package/esm2022/lib/components/one-grid-header/one-grid-header.component.mjs +140 -0
- package/esm2022/lib/components/one-grid-pagination/one-grid-pagination.component.mjs +76 -0
- package/esm2022/lib/components/one-grid-row-action/one-grid-row-action.component.mjs +193 -0
- package/esm2022/lib/components/one-grid-status/one-grid-status.component.mjs +35 -0
- package/esm2022/lib/core/directives/one-cell-input-validator.directive.mjs +71 -0
- package/esm2022/lib/core/directives/one-cell-renderer-component.directive.mjs +77 -0
- package/esm2022/lib/core/directives/one-cell-text-expand.directive.mjs +82 -0
- package/esm2022/lib/core/instants/one-grid-api.class.mjs +591 -0
- package/esm2022/lib/core/instants/one-row-node.class.mjs +90 -0
- package/esm2022/lib/core/models/constants/one-pagination.constant.mjs +2 -0
- package/esm2022/lib/core/models/one-column-def-types.model.mjs +2 -0
- package/esm2022/lib/core/models/one-event-types.model.mjs +2 -0
- package/esm2022/lib/core/models/one-filter.model.mjs +2 -0
- package/esm2022/lib/core/models/one-grid-types.model.mjs +2 -0
- package/esm2022/lib/core/models/one-master-detail.model.mjs +2 -0
- package/esm2022/lib/core/models/one-pagination-types.model.mjs +2 -0
- package/esm2022/lib/core/models/one-row.model.mjs +13 -0
- package/esm2022/lib/core/models/one-tree-data.model.mjs +2 -0
- package/esm2022/lib/core/models/one-validation.model.mjs +2 -0
- package/esm2022/lib/core/pipes/cell-action-button-enable.pipe.mjs +21 -0
- package/esm2022/lib/core/pipes/cell-action-button-visible.pipe.mjs +17 -0
- package/esm2022/lib/core/pipes/cell-disable-resolver.pipe.mjs +26 -0
- package/esm2022/lib/core/pipes/cell-editable.pipe.mjs +30 -0
- package/esm2022/lib/core/pipes/cell-field-value-empty.pipe.mjs +21 -0
- package/esm2022/lib/core/pipes/cell-field-value.pipe.mjs +25 -0
- package/esm2022/lib/core/pipes/cell-field.pipe.mjs +20 -0
- package/esm2022/lib/core/pipes/cell-invalid.pipe.mjs +21 -0
- package/esm2022/lib/core/pipes/cell-key.pipe.mjs +21 -0
- package/esm2022/lib/core/pipes/cell-level-padding.pipe.mjs +18 -0
- package/esm2022/lib/core/pipes/cell-number-value.pipe.mjs +19 -0
- package/esm2022/lib/core/pipes/cell-selected.pipe.mjs +20 -0
- package/esm2022/lib/core/pipes/cell-state-group-renderer.pipe.mjs +21 -0
- package/esm2022/lib/core/pipes/cell-state-renderer.pipe.mjs +24 -0
- package/esm2022/lib/core/pipes/cell-value-getter.pipe.mjs +23 -0
- package/esm2022/lib/core/pipes/column-sort-state.pipe.mjs +19 -0
- package/esm2022/lib/core/pipes/header-checkbox-checked.pipe.mjs +17 -0
- package/esm2022/lib/core/pipes/header-checkbox-disabled.pipe.mjs +17 -0
- package/esm2022/lib/core/pipes/header-checkbox-indeterminate.pipe.mjs +17 -0
- package/esm2022/lib/core/services/og-column.service.mjs +81 -0
- package/esm2022/lib/core/services/one-grid-cell.service.mjs +88 -0
- package/esm2022/lib/core/services/one-grid-event.service.mjs +42 -0
- package/esm2022/lib/core/services/one-grid-expansion.service.mjs +40 -0
- package/esm2022/lib/core/services/one-grid-row.service.mjs +29 -0
- package/esm2022/lib/core/services/one-grid-selection.service.mjs +54 -0
- package/esm2022/lib/core/services/one-grid-tree-data.service.mjs +59 -0
- package/esm2022/lib/helpers/one-cell.helper.mjs +42 -0
- package/esm2022/lib/helpers/one-column-def.helper.mjs +28 -0
- package/esm2022/lib/helpers/one-filter.helper.mjs +52 -0
- package/esm2022/lib/helpers/one-validation.helper.mjs +95 -0
- package/esm2022/lib/index.mjs +19 -0
- package/esm2022/lib/one-grid.module.mjs +142 -0
- package/esm2022/one-grid-core-angular.mjs +5 -0
- package/esm2022/public-api.mjs +5 -0
- package/fesm2022/one-grid-core-angular.mjs +3573 -0
- package/fesm2022/one-grid-core-angular.mjs.map +1 -0
- package/index.d.ts +5 -0
- package/lib/components/one-grid/one-grid.component.d.ts +139 -0
- package/lib/components/one-grid-body/one-grid-body.component.d.ts +176 -0
- package/lib/components/one-grid-cell-currency/one-grid-cell-currency.component.d.ts +27 -0
- package/lib/components/one-grid-cell-group-renderer/one-grid-cell-group-renderer.component.d.ts +16 -0
- package/lib/components/one-grid-cell-option-menu/one-grid-cell-option-menu.component.d.ts +21 -0
- package/lib/components/one-grid-checkbox/one-grid-checkbox.component.d.ts +19 -0
- package/lib/components/one-grid-checkbox-header/one-grid-checkbox-header.component.d.ts +24 -0
- package/lib/components/one-grid-header/one-grid-header.component.d.ts +41 -0
- package/lib/components/one-grid-pagination/one-grid-pagination.component.d.ts +21 -0
- package/lib/components/one-grid-row-action/one-grid-row-action.component.d.ts +59 -0
- package/lib/components/one-grid-status/one-grid-status.component.d.ts +15 -0
- package/lib/core/directives/one-cell-input-validator.directive.d.ts +15 -0
- package/lib/core/directives/one-cell-renderer-component.directive.d.ts +20 -0
- package/lib/core/directives/one-cell-text-expand.directive.d.ts +21 -0
- package/lib/core/instants/one-grid-api.class.d.ts +161 -0
- package/lib/core/instants/one-row-node.class.d.ts +49 -0
- package/lib/core/models/constants/one-pagination.constant.d.ts +1 -0
- package/lib/core/models/one-column-def-types.model.d.ts +139 -0
- package/lib/core/models/one-event-types.model.d.ts +78 -0
- package/lib/core/models/one-filter.model.d.ts +15 -0
- package/lib/core/models/one-grid-types.model.d.ts +48 -0
- package/lib/core/models/one-master-detail.model.d.ts +18 -0
- package/lib/core/models/one-pagination-types.model.d.ts +9 -0
- package/lib/core/models/one-row.model.d.ts +38 -0
- package/lib/core/models/one-tree-data.model.d.ts +9 -0
- package/lib/core/models/one-validation.model.d.ts +9 -0
- package/lib/core/pipes/cell-action-button-enable.pipe.d.ts +8 -0
- package/lib/core/pipes/cell-action-button-visible.pipe.d.ts +9 -0
- package/lib/core/pipes/cell-disable-resolver.pipe.d.ts +9 -0
- package/lib/core/pipes/cell-editable.pipe.d.ts +9 -0
- package/lib/core/pipes/cell-field-value-empty.pipe.d.ts +7 -0
- package/lib/core/pipes/cell-field-value.pipe.d.ts +7 -0
- package/lib/core/pipes/cell-field.pipe.d.ts +7 -0
- package/lib/core/pipes/cell-invalid.pipe.d.ts +9 -0
- package/lib/core/pipes/cell-key.pipe.d.ts +7 -0
- package/lib/core/pipes/cell-level-padding.pipe.d.ts +7 -0
- package/lib/core/pipes/cell-number-value.pipe.d.ts +7 -0
- package/lib/core/pipes/cell-selected.pipe.d.ts +7 -0
- package/lib/core/pipes/cell-state-group-renderer.pipe.d.ts +9 -0
- package/lib/core/pipes/cell-state-renderer.pipe.d.ts +8 -0
- package/lib/core/pipes/cell-value-getter.pipe.d.ts +9 -0
- package/lib/core/pipes/column-sort-state.pipe.d.ts +8 -0
- package/lib/core/pipes/header-checkbox-checked.pipe.d.ts +9 -0
- package/lib/core/pipes/header-checkbox-disabled.pipe.d.ts +9 -0
- package/lib/core/pipes/header-checkbox-indeterminate.pipe.d.ts +9 -0
- package/lib/core/services/og-column.service.d.ts +22 -0
- package/lib/core/services/one-grid-cell.service.d.ts +29 -0
- package/lib/core/services/one-grid-event.service.d.ts +17 -0
- package/lib/core/services/one-grid-expansion.service.d.ts +13 -0
- package/lib/core/services/one-grid-row.service.d.ts +15 -0
- package/lib/core/services/one-grid-selection.service.d.ts +17 -0
- package/lib/core/services/one-grid-tree-data.service.d.ts +10 -0
- package/lib/helpers/one-cell.helper.d.ts +26 -0
- package/lib/helpers/one-column-def.helper.d.ts +17 -0
- package/lib/helpers/one-filter.helper.d.ts +20 -0
- package/lib/helpers/one-validation.helper.d.ts +21 -0
- package/lib/index.d.ts +18 -0
- package/lib/one-grid.module.d.ts +45 -0
- package/package.json +48 -0
- package/public-api.d.ts +1 -0
- package/scss/_one-grid.scss +999 -0
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
import { Component, EventEmitter, Input, Output } from '@angular/core';
|
|
2
|
+
import { OnePageSizeOption } from '../../core/models/constants/one-pagination.constant';
|
|
3
|
+
import * as i0 from "@angular/core";
|
|
4
|
+
import * as i1 from "@angular/forms";
|
|
5
|
+
import * as i2 from "lucide-angular";
|
|
6
|
+
export class OneGridPaginationComponent {
|
|
7
|
+
constructor() {
|
|
8
|
+
this.paginate = {
|
|
9
|
+
total: 0,
|
|
10
|
+
currentPage: 1,
|
|
11
|
+
lastPage: 1,
|
|
12
|
+
perPage: 25,
|
|
13
|
+
firstRowIndex: 1,
|
|
14
|
+
lastRowIndex: 1,
|
|
15
|
+
};
|
|
16
|
+
this.goToFirst = new EventEmitter();
|
|
17
|
+
this.goToPrevious = new EventEmitter();
|
|
18
|
+
this.goToNext = new EventEmitter();
|
|
19
|
+
this.goToLast = new EventEmitter();
|
|
20
|
+
this.pageSizeChange = new EventEmitter();
|
|
21
|
+
this.pageSize = OnePageSizeOption[0];
|
|
22
|
+
this.pageSizeOptions = OnePageSizeOption;
|
|
23
|
+
}
|
|
24
|
+
ngAfterViewInit() {
|
|
25
|
+
if (this.paginate?.pageSizeOptions) {
|
|
26
|
+
this.pageSizeOptions = this.paginate.pageSizeOptions;
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
goToFirstPage() {
|
|
30
|
+
if (!(this.paginate?.perPage < this.paginate?.total && this.paginate?.currentPage > 1))
|
|
31
|
+
return;
|
|
32
|
+
this.goToFirst.emit(this.paginate?.currentPage);
|
|
33
|
+
}
|
|
34
|
+
goToPreviousPage() {
|
|
35
|
+
if (!(this.paginate?.perPage < this.paginate?.total && this.paginate?.currentPage > 1))
|
|
36
|
+
return;
|
|
37
|
+
this.goToPrevious.emit(this.paginate?.currentPage);
|
|
38
|
+
}
|
|
39
|
+
goToNextPage() {
|
|
40
|
+
if (!(this.paginate?.perPage < this.paginate?.total && this.paginate?.currentPage < this.paginate?.lastPage))
|
|
41
|
+
return;
|
|
42
|
+
this.goToNext.emit(this.paginate?.currentPage);
|
|
43
|
+
}
|
|
44
|
+
goToLastPage() {
|
|
45
|
+
if (!(this.paginate?.perPage < this.paginate?.total && this.paginate?.currentPage < this.paginate?.lastPage))
|
|
46
|
+
return;
|
|
47
|
+
this.goToLast.emit(this.paginate?.currentPage);
|
|
48
|
+
}
|
|
49
|
+
onPageSizeChange(event) {
|
|
50
|
+
const select = event.target;
|
|
51
|
+
const newSize = Number(select.value);
|
|
52
|
+
if (newSize !== this.pageSize) {
|
|
53
|
+
this.pageSize = newSize;
|
|
54
|
+
this.pageSizeChange.emit(this.pageSize);
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: OneGridPaginationComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
58
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.12", type: OneGridPaginationComponent, selector: "one-grid-pagination", inputs: { paginate: "paginate" }, outputs: { goToFirst: "goToFirst", goToPrevious: "goToPrevious", goToNext: "goToNext", goToLast: "goToLast", pageSizeChange: "pageSizeChange" }, ngImport: i0, template: "<div class=\"one-grid-pagination\">\n <div class=\"one-pagination-row\">\n @if (paginate?.firstRowIndex > 0 && paginate?.lastRowIndex > 0 && paginate?.total > 0) {\n <div class=\"one-pagination-columns-group\">\n <div class=\"one-pagination-column\">\n <span>{{ paginate?.firstRowIndex }}</span>\n <span>-</span>\n <span>{{ paginate?.lastRowIndex }}</span>\n <span>/</span> \n <span>{{ paginate?.total }}</span>\n </div>\n </div>\n }\n <div class=\"one-pagination-columns-group\">\n <div class=\"one-pagination-column\">\n <button \n class=\"one-pagination-btn\"\n (click)=\"goToFirstPage()\"\n [class.disabled]=\"!(paginate?.perPage < paginate?.total && paginate?.currentPage > 1)\">\n <lucide-icon name=\"chevron-first\" [size]=\"16\" [strokeWidth]=\"2\"></lucide-icon>\n </button>\n <button\n class=\"one-pagination-btn\"\n (click)=\"goToPreviousPage()\"\n [class.disabled]=\"!(paginate?.perPage < paginate?.total && paginate?.currentPage > 1)\">\n <lucide-icon name=\"chevron-left\" [size]=\"16\" [strokeWidth]=\"2\"></lucide-icon>\n </button>\n </div>\n <div class=\"one-pagination-column\">\n {{ paginate?.currentPage }}<span>/</span>{{ paginate?.lastPage }} \n </div>\n <div class=\"one-pagination-column\">\n <button\n class=\"one-pagination-btn\"\n (click)=\"goToNextPage()\"\n [class.disabled]=\"!(paginate?.perPage < paginate?.total && paginate?.currentPage < paginate?.lastPage)\">\n <lucide-icon name=\"chevron-right\" [size]=\"16\" [strokeWidth]=\"2\"></lucide-icon>\n </button>\n <button\n class=\"one-pagination-btn\"\n (click)=\"goToLastPage()\"\n [class.disabled]=\"!(paginate?.perPage < paginate?.total && paginate?.currentPage < paginate?.lastPage)\">\n <lucide-icon name=\"chevron-last\" [size]=\"16\" [strokeWidth]=\"2\"></lucide-icon>\n </button>\n </div>\n <div class=\"one-pagination-columns-group\">\n <div class=\"one-pagination-column\">\n <select name=\"row-per-page\" [value]=\"pageSize\" (change)=\"onPageSizeChange($event)\">\n @for (size of pageSizeOptions; track $index) {\n <option [value]=\"size\">{{ size }} rows</option>\n }\n </select>\n </div>\n </div>\n </div>\n </div>\n</div>", styles: [""], dependencies: [{ kind: "directive", type: i1.NgSelectOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i1.ɵNgSelectMultipleOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "component", type: i2.LucideAngularComponent, selector: "lucide-angular, lucide-icon, i-lucide, span-lucide", inputs: ["class", "name", "img", "color", "absoluteStrokeWidth", "size", "strokeWidth"] }] }); }
|
|
59
|
+
}
|
|
60
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: OneGridPaginationComponent, decorators: [{
|
|
61
|
+
type: Component,
|
|
62
|
+
args: [{ standalone: false, selector: 'one-grid-pagination', template: "<div class=\"one-grid-pagination\">\n <div class=\"one-pagination-row\">\n @if (paginate?.firstRowIndex > 0 && paginate?.lastRowIndex > 0 && paginate?.total > 0) {\n <div class=\"one-pagination-columns-group\">\n <div class=\"one-pagination-column\">\n <span>{{ paginate?.firstRowIndex }}</span>\n <span>-</span>\n <span>{{ paginate?.lastRowIndex }}</span>\n <span>/</span> \n <span>{{ paginate?.total }}</span>\n </div>\n </div>\n }\n <div class=\"one-pagination-columns-group\">\n <div class=\"one-pagination-column\">\n <button \n class=\"one-pagination-btn\"\n (click)=\"goToFirstPage()\"\n [class.disabled]=\"!(paginate?.perPage < paginate?.total && paginate?.currentPage > 1)\">\n <lucide-icon name=\"chevron-first\" [size]=\"16\" [strokeWidth]=\"2\"></lucide-icon>\n </button>\n <button\n class=\"one-pagination-btn\"\n (click)=\"goToPreviousPage()\"\n [class.disabled]=\"!(paginate?.perPage < paginate?.total && paginate?.currentPage > 1)\">\n <lucide-icon name=\"chevron-left\" [size]=\"16\" [strokeWidth]=\"2\"></lucide-icon>\n </button>\n </div>\n <div class=\"one-pagination-column\">\n {{ paginate?.currentPage }}<span>/</span>{{ paginate?.lastPage }} \n </div>\n <div class=\"one-pagination-column\">\n <button\n class=\"one-pagination-btn\"\n (click)=\"goToNextPage()\"\n [class.disabled]=\"!(paginate?.perPage < paginate?.total && paginate?.currentPage < paginate?.lastPage)\">\n <lucide-icon name=\"chevron-right\" [size]=\"16\" [strokeWidth]=\"2\"></lucide-icon>\n </button>\n <button\n class=\"one-pagination-btn\"\n (click)=\"goToLastPage()\"\n [class.disabled]=\"!(paginate?.perPage < paginate?.total && paginate?.currentPage < paginate?.lastPage)\">\n <lucide-icon name=\"chevron-last\" [size]=\"16\" [strokeWidth]=\"2\"></lucide-icon>\n </button>\n </div>\n <div class=\"one-pagination-columns-group\">\n <div class=\"one-pagination-column\">\n <select name=\"row-per-page\" [value]=\"pageSize\" (change)=\"onPageSizeChange($event)\">\n @for (size of pageSizeOptions; track $index) {\n <option [value]=\"size\">{{ size }} rows</option>\n }\n </select>\n </div>\n </div>\n </div>\n </div>\n</div>" }]
|
|
63
|
+
}], propDecorators: { paginate: [{
|
|
64
|
+
type: Input
|
|
65
|
+
}], goToFirst: [{
|
|
66
|
+
type: Output
|
|
67
|
+
}], goToPrevious: [{
|
|
68
|
+
type: Output
|
|
69
|
+
}], goToNext: [{
|
|
70
|
+
type: Output
|
|
71
|
+
}], goToLast: [{
|
|
72
|
+
type: Output
|
|
73
|
+
}], pageSizeChange: [{
|
|
74
|
+
type: Output
|
|
75
|
+
}] } });
|
|
76
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib25lLWdyaWQtcGFnaW5hdGlvbi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9vbmUtZ3JpZC9zcmMvbGliL2NvbXBvbmVudHMvb25lLWdyaWQtcGFnaW5hdGlvbi9vbmUtZ3JpZC1wYWdpbmF0aW9uLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL29uZS1ncmlkL3NyYy9saWIvY29tcG9uZW50cy9vbmUtZ3JpZC1wYWdpbmF0aW9uL29uZS1ncmlkLXBhZ2luYXRpb24uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFpQixTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFdEYsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0scURBQXFELENBQUM7Ozs7QUFReEYsTUFBTSxPQUFPLDBCQUEwQjtJQU52QztRQVFXLGFBQVEsR0FBd0I7WUFDdkMsS0FBSyxFQUFFLENBQUM7WUFDUixXQUFXLEVBQUUsQ0FBQztZQUNkLFFBQVEsRUFBRSxDQUFDO1lBQ1gsT0FBTyxFQUFFLEVBQUU7WUFDWCxhQUFhLEVBQUUsQ0FBQztZQUNoQixZQUFZLEVBQUUsQ0FBQztTQUNoQixDQUFDO1FBRVEsY0FBUyxHQUFHLElBQUksWUFBWSxFQUFFLENBQUM7UUFDL0IsaUJBQVksR0FBRyxJQUFJLFlBQVksRUFBRSxDQUFDO1FBQ2xDLGFBQVEsR0FBRyxJQUFJLFlBQVksRUFBRSxDQUFDO1FBQzlCLGFBQVEsR0FBRyxJQUFJLFlBQVksRUFBRSxDQUFDO1FBQzlCLG1CQUFjLEdBQUcsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUV2QyxhQUFRLEdBQVcsaUJBQWlCLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDeEMsb0JBQWUsR0FBYSxpQkFBaUIsQ0FBQztLQW1EdEQ7SUFqREMsZUFBZTtRQUViLElBQUksSUFBSSxDQUFDLFFBQVEsRUFBRSxlQUFlLEVBQUUsQ0FBQztZQUVuQyxJQUFJLENBQUMsZUFBZSxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsZUFBZSxDQUFDO1FBQ3ZELENBQUM7SUFDSCxDQUFDO0lBRUQsYUFBYTtRQUVYLElBQUksQ0FBQyxDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUUsT0FBTyxHQUFHLElBQUksQ0FBQyxRQUFRLEVBQUUsS0FBSyxJQUFJLElBQUksQ0FBQyxRQUFRLEVBQUUsV0FBVyxHQUFHLENBQUMsQ0FBQztZQUFFLE9BQU87UUFFL0YsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRSxXQUFXLENBQUMsQ0FBQztJQUNsRCxDQUFDO0lBRUQsZ0JBQWdCO1FBRWQsSUFBSSxDQUFDLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRSxPQUFPLEdBQUcsSUFBSSxDQUFDLFFBQVEsRUFBRSxLQUFLLElBQUksSUFBSSxDQUFDLFFBQVEsRUFBRSxXQUFXLEdBQUcsQ0FBQyxDQUFDO1lBQUUsT0FBTztRQUUvRixJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFLFdBQVcsQ0FBQyxDQUFDO0lBQ3JELENBQUM7SUFFRCxZQUFZO1FBRVYsSUFBSSxDQUFDLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRSxPQUFPLEdBQUcsSUFBSSxDQUFDLFFBQVEsRUFBRSxLQUFLLElBQUksSUFBSSxDQUFDLFFBQVEsRUFBRSxXQUFXLEdBQUcsSUFBSSxDQUFDLFFBQVEsRUFBRSxRQUFRLENBQUM7WUFBRSxPQUFPO1FBRXJILElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUUsV0FBVyxDQUFDLENBQUM7SUFDakQsQ0FBQztJQUVELFlBQVk7UUFFVixJQUFJLENBQUMsQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFLE9BQU8sR0FBRyxJQUFJLENBQUMsUUFBUSxFQUFFLEtBQUssSUFBSSxJQUFJLENBQUMsUUFBUSxFQUFFLFdBQVcsR0FBRyxJQUFJLENBQUMsUUFBUSxFQUFFLFFBQVEsQ0FBQztZQUFFLE9BQU87UUFFckgsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRSxXQUFXLENBQUMsQ0FBQztJQUNqRCxDQUFDO0lBRUQsZ0JBQWdCLENBQUMsS0FBWTtRQUUzQixNQUFNLE1BQU0sR0FBRyxLQUFLLENBQUMsTUFBMkIsQ0FBQztRQUVqRCxNQUFNLE9BQU8sR0FBRyxNQUFNLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBRXJDLElBQUksT0FBTyxLQUFLLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQztZQUU5QixJQUFJLENBQUMsUUFBUSxHQUFHLE9BQU8sQ0FBQztZQUV4QixJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDMUMsQ0FBQztJQUNILENBQUM7K0dBcEVVLDBCQUEwQjttR0FBMUIsMEJBQTBCLDhPQ1Z2QyxpN0ZBd0RNOzs0RkQ5Q08sMEJBQTBCO2tCQU50QyxTQUFTO2lDQUNJLEtBQUssWUFDUCxxQkFBcUI7OEJBTXRCLFFBQVE7c0JBQWhCLEtBQUs7Z0JBU0ksU0FBUztzQkFBbEIsTUFBTTtnQkFDRyxZQUFZO3NCQUFyQixNQUFNO2dCQUNHLFFBQVE7c0JBQWpCLE1BQU07Z0JBQ0csUUFBUTtzQkFBakIsTUFBTTtnQkFDRyxjQUFjO3NCQUF2QixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQWZ0ZXJWaWV3SW5pdCwgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIElucHV0LCBPdXRwdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE9uZVBhZ2luYXRpb25QYXJhbXMgfSBmcm9tICcuLi8uLi9jb3JlL21vZGVscy9vbmUtcGFnaW5hdGlvbi10eXBlcy5tb2RlbCc7XG5pbXBvcnQgeyBPbmVQYWdlU2l6ZU9wdGlvbiB9IGZyb20gJy4uLy4uL2NvcmUvbW9kZWxzL2NvbnN0YW50cy9vbmUtcGFnaW5hdGlvbi5jb25zdGFudCc7XG5cbkBDb21wb25lbnQoe1xuICBzdGFuZGFsb25lOiBmYWxzZSxcbiAgc2VsZWN0b3I6ICdvbmUtZ3JpZC1wYWdpbmF0aW9uJyxcbiAgdGVtcGxhdGVVcmw6ICcuL29uZS1ncmlkLXBhZ2luYXRpb24uY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybDogJy4vb25lLWdyaWQtcGFnaW5hdGlvbi5jb21wb25lbnQuc2Nzcydcbn0pXG5leHBvcnQgY2xhc3MgT25lR3JpZFBhZ2luYXRpb25Db21wb25lbnQgaW1wbGVtZW50cyBBZnRlclZpZXdJbml0IHtcblxuICBASW5wdXQoKSBwYWdpbmF0ZTogT25lUGFnaW5hdGlvblBhcmFtcyA9IHtcbiAgICB0b3RhbDogMCxcbiAgICBjdXJyZW50UGFnZTogMSxcbiAgICBsYXN0UGFnZTogMSxcbiAgICBwZXJQYWdlOiAyNSxcbiAgICBmaXJzdFJvd0luZGV4OiAxLFxuICAgIGxhc3RSb3dJbmRleDogMSxcbiAgfTtcblxuICBAT3V0cHV0KCkgZ29Ub0ZpcnN0ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuICBAT3V0cHV0KCkgZ29Ub1ByZXZpb3VzID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuICBAT3V0cHV0KCkgZ29Ub05leHQgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG4gIEBPdXRwdXQoKSBnb1RvTGFzdCA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcbiAgQE91dHB1dCgpIHBhZ2VTaXplQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuICBcbiAgcHVibGljIHBhZ2VTaXplOiBudW1iZXIgPSBPbmVQYWdlU2l6ZU9wdGlvblswXTtcbiAgcHVibGljIHBhZ2VTaXplT3B0aW9uczogbnVtYmVyW10gPSBPbmVQYWdlU2l6ZU9wdGlvbjtcblxuICBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XG5cbiAgICBpZiAodGhpcy5wYWdpbmF0ZT8ucGFnZVNpemVPcHRpb25zKSB7XG5cbiAgICAgIHRoaXMucGFnZVNpemVPcHRpb25zID0gdGhpcy5wYWdpbmF0ZS5wYWdlU2l6ZU9wdGlvbnM7XG4gICAgfVxuICB9XG5cbiAgZ29Ub0ZpcnN0UGFnZSgpIHtcblxuICAgIGlmICghKHRoaXMucGFnaW5hdGU/LnBlclBhZ2UgPCB0aGlzLnBhZ2luYXRlPy50b3RhbCAmJiB0aGlzLnBhZ2luYXRlPy5jdXJyZW50UGFnZSA+IDEpKSByZXR1cm47XG5cbiAgICB0aGlzLmdvVG9GaXJzdC5lbWl0KHRoaXMucGFnaW5hdGU/LmN1cnJlbnRQYWdlKTtcbiAgfVxuXG4gIGdvVG9QcmV2aW91c1BhZ2UoKSB7XG5cbiAgICBpZiAoISh0aGlzLnBhZ2luYXRlPy5wZXJQYWdlIDwgdGhpcy5wYWdpbmF0ZT8udG90YWwgJiYgdGhpcy5wYWdpbmF0ZT8uY3VycmVudFBhZ2UgPiAxKSkgcmV0dXJuO1xuXG4gICAgdGhpcy5nb1RvUHJldmlvdXMuZW1pdCh0aGlzLnBhZ2luYXRlPy5jdXJyZW50UGFnZSk7XG4gIH1cblxuICBnb1RvTmV4dFBhZ2UoKSB7XG5cbiAgICBpZiAoISh0aGlzLnBhZ2luYXRlPy5wZXJQYWdlIDwgdGhpcy5wYWdpbmF0ZT8udG90YWwgJiYgdGhpcy5wYWdpbmF0ZT8uY3VycmVudFBhZ2UgPCB0aGlzLnBhZ2luYXRlPy5sYXN0UGFnZSkpIHJldHVybjtcblxuICAgIHRoaXMuZ29Ub05leHQuZW1pdCh0aGlzLnBhZ2luYXRlPy5jdXJyZW50UGFnZSk7XG4gIH1cblxuICBnb1RvTGFzdFBhZ2UoKSB7XG5cbiAgICBpZiAoISh0aGlzLnBhZ2luYXRlPy5wZXJQYWdlIDwgdGhpcy5wYWdpbmF0ZT8udG90YWwgJiYgdGhpcy5wYWdpbmF0ZT8uY3VycmVudFBhZ2UgPCB0aGlzLnBhZ2luYXRlPy5sYXN0UGFnZSkpIHJldHVybjtcblxuICAgIHRoaXMuZ29Ub0xhc3QuZW1pdCh0aGlzLnBhZ2luYXRlPy5jdXJyZW50UGFnZSk7XG4gIH1cblxuICBvblBhZ2VTaXplQ2hhbmdlKGV2ZW50OiBFdmVudCkge1xuXG4gICAgY29uc3Qgc2VsZWN0ID0gZXZlbnQudGFyZ2V0IGFzIEhUTUxTZWxlY3RFbGVtZW50O1xuXG4gICAgY29uc3QgbmV3U2l6ZSA9IE51bWJlcihzZWxlY3QudmFsdWUpO1xuXG4gICAgaWYgKG5ld1NpemUgIT09IHRoaXMucGFnZVNpemUpIHtcblxuICAgICAgdGhpcy5wYWdlU2l6ZSA9IG5ld1NpemU7XG5cbiAgICAgIHRoaXMucGFnZVNpemVDaGFuZ2UuZW1pdCh0aGlzLnBhZ2VTaXplKTtcbiAgICB9XG4gIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJvbmUtZ3JpZC1wYWdpbmF0aW9uXCI+XG4gICAgPGRpdiBjbGFzcz1cIm9uZS1wYWdpbmF0aW9uLXJvd1wiPlxuICAgICAgICBAaWYgKHBhZ2luYXRlPy5maXJzdFJvd0luZGV4ID4gMCAmJiBwYWdpbmF0ZT8ubGFzdFJvd0luZGV4ID4gMCAmJiBwYWdpbmF0ZT8udG90YWwgPiAwKSB7XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwib25lLXBhZ2luYXRpb24tY29sdW1ucy1ncm91cFwiPlxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJvbmUtcGFnaW5hdGlvbi1jb2x1bW5cIj5cbiAgICAgICAgICAgICAgICAgICAgPHNwYW4+e3sgcGFnaW5hdGU/LmZpcnN0Um93SW5kZXggfX08L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgIDxzcGFuPi08L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgIDxzcGFuPnt7IHBhZ2luYXRlPy5sYXN0Um93SW5kZXggfX08L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgICZuYnNwOzxzcGFuPi88L3NwYW4+Jm5ic3A7XG4gICAgICAgICAgICAgICAgICAgIDxzcGFuPnt7IHBhZ2luYXRlPy50b3RhbCB9fTwvc3Bhbj5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICB9XG4gICAgICAgIDxkaXYgY2xhc3M9XCJvbmUtcGFnaW5hdGlvbi1jb2x1bW5zLWdyb3VwXCI+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwib25lLXBhZ2luYXRpb24tY29sdW1uXCI+XG4gICAgICAgICAgICAgICAgPGJ1dHRvbiBcbiAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJvbmUtcGFnaW5hdGlvbi1idG5cIlxuICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwiZ29Ub0ZpcnN0UGFnZSgpXCJcbiAgICAgICAgICAgICAgICAgICAgW2NsYXNzLmRpc2FibGVkXT1cIiEocGFnaW5hdGU/LnBlclBhZ2UgPCBwYWdpbmF0ZT8udG90YWwgJiYgcGFnaW5hdGU/LmN1cnJlbnRQYWdlID4gMSlcIj5cbiAgICAgICAgICAgICAgICAgICAgPGx1Y2lkZS1pY29uIG5hbWU9XCJjaGV2cm9uLWZpcnN0XCIgW3NpemVdPVwiMTZcIiBbc3Ryb2tlV2lkdGhdPVwiMlwiPjwvbHVjaWRlLWljb24+XG4gICAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgICAgICAgICBjbGFzcz1cIm9uZS1wYWdpbmF0aW9uLWJ0blwiXG4gICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJnb1RvUHJldmlvdXNQYWdlKClcIlxuICAgICAgICAgICAgICAgICAgICBbY2xhc3MuZGlzYWJsZWRdPVwiIShwYWdpbmF0ZT8ucGVyUGFnZSA8IHBhZ2luYXRlPy50b3RhbCAmJiBwYWdpbmF0ZT8uY3VycmVudFBhZ2UgPiAxKVwiPlxuICAgICAgICAgICAgICAgICAgICA8bHVjaWRlLWljb24gbmFtZT1cImNoZXZyb24tbGVmdFwiIFtzaXplXT1cIjE2XCIgW3N0cm9rZVdpZHRoXT1cIjJcIj48L2x1Y2lkZS1pY29uPlxuICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwib25lLXBhZ2luYXRpb24tY29sdW1uXCI+XG4gICAgICAgICAgICAgICAgJm5ic3A7e3sgcGFnaW5hdGU/LmN1cnJlbnRQYWdlIH19PHNwYW4+Lzwvc3Bhbj57eyBwYWdpbmF0ZT8ubGFzdFBhZ2UgfX0mbmJzcDtcbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm9uZS1wYWdpbmF0aW9uLWNvbHVtblwiPlxuICAgICAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJvbmUtcGFnaW5hdGlvbi1idG5cIlxuICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwiZ29Ub05leHRQYWdlKClcIlxuICAgICAgICAgICAgICAgICAgICBbY2xhc3MuZGlzYWJsZWRdPVwiIShwYWdpbmF0ZT8ucGVyUGFnZSA8IHBhZ2luYXRlPy50b3RhbCAmJiBwYWdpbmF0ZT8uY3VycmVudFBhZ2UgPCBwYWdpbmF0ZT8ubGFzdFBhZ2UpXCI+XG4gICAgICAgICAgICAgICAgICAgICA8bHVjaWRlLWljb24gbmFtZT1cImNoZXZyb24tcmlnaHRcIiBbc2l6ZV09XCIxNlwiIFtzdHJva2VXaWR0aF09XCIyXCI+PC9sdWNpZGUtaWNvbj5cbiAgICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAgICAgICAgIGNsYXNzPVwib25lLXBhZ2luYXRpb24tYnRuXCJcbiAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cImdvVG9MYXN0UGFnZSgpXCJcbiAgICAgICAgICAgICAgICAgICAgW2NsYXNzLmRpc2FibGVkXT1cIiEocGFnaW5hdGU/LnBlclBhZ2UgPCBwYWdpbmF0ZT8udG90YWwgJiYgcGFnaW5hdGU/LmN1cnJlbnRQYWdlIDwgcGFnaW5hdGU/Lmxhc3RQYWdlKVwiPlxuICAgICAgICAgICAgICAgICAgICAgPGx1Y2lkZS1pY29uIG5hbWU9XCJjaGV2cm9uLWxhc3RcIiBbc2l6ZV09XCIxNlwiIFtzdHJva2VXaWR0aF09XCIyXCI+PC9sdWNpZGUtaWNvbj5cbiAgICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm9uZS1wYWdpbmF0aW9uLWNvbHVtbnMtZ3JvdXBcIj5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwib25lLXBhZ2luYXRpb24tY29sdW1uXCI+XG4gICAgICAgICAgICAgICAgICAgIDxzZWxlY3QgbmFtZT1cInJvdy1wZXItcGFnZVwiIFt2YWx1ZV09XCJwYWdlU2l6ZVwiIChjaGFuZ2UpPVwib25QYWdlU2l6ZUNoYW5nZSgkZXZlbnQpXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICBAZm9yIChzaXplIG9mIHBhZ2VTaXplT3B0aW9uczsgdHJhY2sgJGluZGV4KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPG9wdGlvbiBbdmFsdWVdPVwic2l6ZVwiPnt7IHNpemUgfX0gcm93czwvb3B0aW9uPlxuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICA8L3NlbGVjdD5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbjwvZGl2PiJdfQ==
|
|
@@ -0,0 +1,193 @@
|
|
|
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 "../../core/pipes/cell-disable-resolver.pipe";
|
|
5
|
+
export class OneGridRowActionComponent {
|
|
6
|
+
constructor() {
|
|
7
|
+
this.allowedEdit = false;
|
|
8
|
+
this.masterDetail = false;
|
|
9
|
+
this.masterNode = null;
|
|
10
|
+
this.gridType = null;
|
|
11
|
+
this.context = null;
|
|
12
|
+
/**
|
|
13
|
+
* Bind Event to Parent Component
|
|
14
|
+
*/
|
|
15
|
+
this.onRowGotoDetail = new EventEmitter();
|
|
16
|
+
this.onRowAddNew = new EventEmitter();
|
|
17
|
+
this.onRowView = new EventEmitter();
|
|
18
|
+
this.onRowLocation = new EventEmitter();
|
|
19
|
+
this.onRowDocument = new EventEmitter();
|
|
20
|
+
this.onRowCopy = new EventEmitter();
|
|
21
|
+
this.onRowDelete = new EventEmitter();
|
|
22
|
+
this.onRowGotoList = new EventEmitter();
|
|
23
|
+
this.onRowEdit = new EventEmitter();
|
|
24
|
+
this.onRowPrint = new EventEmitter();
|
|
25
|
+
this.onRowHistory = new EventEmitter();
|
|
26
|
+
this.onRowOption = new EventEmitter();
|
|
27
|
+
this.onRowLanguage = new EventEmitter();
|
|
28
|
+
this.onRowCellOption = new EventEmitter();
|
|
29
|
+
}
|
|
30
|
+
ngOnInit() {
|
|
31
|
+
this.detailActiveExcludeLevels = new Set(this.column.cellRendererParams?.detailActiveExcludeLevels ?? []);
|
|
32
|
+
this.gotoDetailExcludeLevels = new Set(this.column.cellRendererParams?.gotoDetailExcludeLevels ?? []);
|
|
33
|
+
this.addNewExcludeLevels = new Set(this.column.cellRendererParams?.addNewExcludeLevels ?? []);
|
|
34
|
+
}
|
|
35
|
+
/**
|
|
36
|
+
* Trigger Invoke Click Event
|
|
37
|
+
*/
|
|
38
|
+
invokeRowToggleDetailActiveExpand(node) {
|
|
39
|
+
node.detailActive = !node.detailActive;
|
|
40
|
+
}
|
|
41
|
+
invokeRowActionGotoDetail(node, column) {
|
|
42
|
+
let data = { node, column, data: node.data, rowIndex: node.rowIndex, gridType: null };
|
|
43
|
+
if (this.masterDetail) {
|
|
44
|
+
data = { ...data, gridType: this.gridType, masterNode: this.masterNode };
|
|
45
|
+
}
|
|
46
|
+
this.onRowGotoDetail.emit(data);
|
|
47
|
+
}
|
|
48
|
+
invokeRowActionAddNew(node, column) {
|
|
49
|
+
let data = { node, column, data: node.data, rowIndex: node.rowIndex, gridType: null };
|
|
50
|
+
if (this.masterDetail) {
|
|
51
|
+
data = { ...data, gridType: this.gridType, masterNode: this.masterNode };
|
|
52
|
+
}
|
|
53
|
+
this.onRowAddNew.emit(data);
|
|
54
|
+
}
|
|
55
|
+
invokeRowActionView(node, column) {
|
|
56
|
+
let data = { node, column, data: node.data, rowIndex: node.rowIndex, gridType: null };
|
|
57
|
+
if (this.masterDetail) {
|
|
58
|
+
data = { ...data, gridType: this.gridType, masterNode: this.masterNode };
|
|
59
|
+
}
|
|
60
|
+
this.onRowView.emit(data);
|
|
61
|
+
}
|
|
62
|
+
invokeRowActionLocation(node, column) {
|
|
63
|
+
let data = { node, column, data: node.data, rowIndex: node.rowIndex, gridType: null };
|
|
64
|
+
if (this.masterDetail) {
|
|
65
|
+
data = { ...data, gridType: this.gridType, masterNode: this.masterNode };
|
|
66
|
+
}
|
|
67
|
+
this.onRowLocation.emit(data);
|
|
68
|
+
}
|
|
69
|
+
invokeRowActionDocument(node, column) {
|
|
70
|
+
let data = { node, column, data: node.data, rowIndex: node.rowIndex, gridType: null };
|
|
71
|
+
if (this.masterDetail) {
|
|
72
|
+
data = { ...data, gridType: this.gridType, masterNode: this.masterNode };
|
|
73
|
+
}
|
|
74
|
+
this.onRowDocument.emit(data);
|
|
75
|
+
}
|
|
76
|
+
invokeRowActionCopy(node, column) {
|
|
77
|
+
let data = { node, column, data: node.data, rowIndex: node.rowIndex, gridType: null };
|
|
78
|
+
if (this.masterDetail) {
|
|
79
|
+
data = { ...data, gridType: this.gridType, masterNode: this.masterNode };
|
|
80
|
+
}
|
|
81
|
+
this.onRowCopy.emit(data);
|
|
82
|
+
}
|
|
83
|
+
invokeRowActionDelete(node, column) {
|
|
84
|
+
let data = { node, column, data: node.data, rowIndex: node.rowIndex, gridType: null };
|
|
85
|
+
if (this.masterDetail) {
|
|
86
|
+
data = { ...data, gridType: this.gridType, masterNode: this.masterNode };
|
|
87
|
+
}
|
|
88
|
+
this.onRowDelete.emit(data);
|
|
89
|
+
}
|
|
90
|
+
invokeRowActionGotoList(node, column) {
|
|
91
|
+
let data = { node, column, data: node.data, rowIndex: node.rowIndex, gridType: null };
|
|
92
|
+
if (this.masterDetail) {
|
|
93
|
+
data = { ...data, gridType: this.gridType, masterNode: this.masterNode };
|
|
94
|
+
}
|
|
95
|
+
this.onRowGotoList.emit(data);
|
|
96
|
+
}
|
|
97
|
+
invokeRowActionEdit(node, column) {
|
|
98
|
+
let data = { node, column, data: node.data, rowIndex: node.rowIndex, gridType: null };
|
|
99
|
+
if (this.masterDetail) {
|
|
100
|
+
data = { ...data, gridType: this.gridType, masterNode: this.masterNode };
|
|
101
|
+
}
|
|
102
|
+
this.onRowEdit.emit(data);
|
|
103
|
+
}
|
|
104
|
+
invokeRowActionPrint(node, column) {
|
|
105
|
+
let data = { node, column, data: node.data, rowIndex: node.rowIndex, gridType: null };
|
|
106
|
+
if (this.masterDetail) {
|
|
107
|
+
data = { ...data, gridType: this.gridType, masterNode: this.masterNode };
|
|
108
|
+
}
|
|
109
|
+
this.onRowPrint.emit(data);
|
|
110
|
+
}
|
|
111
|
+
invokeRowActionHistory(node, column) {
|
|
112
|
+
let data = { node, column, data: node.data, rowIndex: node.rowIndex, gridType: null };
|
|
113
|
+
if (this.masterDetail) {
|
|
114
|
+
data = { ...data, gridType: this.gridType, masterNode: this.masterNode };
|
|
115
|
+
}
|
|
116
|
+
this.onRowHistory.emit(data);
|
|
117
|
+
}
|
|
118
|
+
invokeRowActionOption(node, column) {
|
|
119
|
+
let data = { node, column, data: node.data, rowIndex: node.rowIndex, gridType: null };
|
|
120
|
+
if (this.masterDetail) {
|
|
121
|
+
data = { ...data, gridType: this.gridType, masterNode: this.masterNode };
|
|
122
|
+
}
|
|
123
|
+
this.onRowOption.emit(data);
|
|
124
|
+
}
|
|
125
|
+
invokeRowActionLanguage(node, column) {
|
|
126
|
+
let data = { node, column, data: node.data, rowIndex: node.rowIndex, gridType: null };
|
|
127
|
+
if (this.masterDetail) {
|
|
128
|
+
data = { ...data, gridType: this.gridType, masterNode: this.masterNode };
|
|
129
|
+
}
|
|
130
|
+
this.onRowLanguage.emit(data);
|
|
131
|
+
}
|
|
132
|
+
invokeRowActionCellOption(node, column) {
|
|
133
|
+
let data = { node, column, data: node.data, rowIndex: node.rowIndex, gridType: null };
|
|
134
|
+
if (this.masterDetail) {
|
|
135
|
+
data = { ...data, gridType: this.gridType, masterNode: this.masterNode };
|
|
136
|
+
}
|
|
137
|
+
this.onRowCellOption.emit(data);
|
|
138
|
+
}
|
|
139
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: OneGridRowActionComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
140
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.12", type: OneGridRowActionComponent, selector: "one-grid-row-action", inputs: { column: "column", node: "node", allowedEdit: "allowedEdit", masterDetail: "masterDetail", masterNode: "masterNode", cellRendererParams: "cellRendererParams", gridType: "gridType", context: "context" }, outputs: { onRowGotoDetail: "onRowGotoDetail", onRowAddNew: "onRowAddNew", onRowView: "onRowView", onRowLocation: "onRowLocation", onRowDocument: "onRowDocument", onRowCopy: "onRowCopy", onRowDelete: "onRowDelete", onRowGotoList: "onRowGotoList", onRowEdit: "onRowEdit", onRowPrint: "onRowPrint", onRowHistory: "onRowHistory", onRowOption: "onRowOption", onRowLanguage: "onRowLanguage", onRowCellOption: "onRowCellOption" }, ngImport: i0, template: "@if ((cellRendererParams && node?.leaf && !column?.autoGroupField && !(node.group && node.leafGroup)) || (column?.rowActionLevels?.includes(node.level) && column?.autoGroupField)) {\n <div class=\"btn-action-container\">\n\n <!-- Expansion Button Status -->\n @if ((cellRendererParams?.detailActiveButtonStatus == 1 && !(detailActiveExcludeLevels?.has(node.level)))) {\n <a\n class=\"me-2\"\n [attr.aria-label]=\"node.detailActive ? 'Collapse row' : 'Expand row'\"\n [title]=\"node.detailActive ? 'Collapse' : 'Expand'\"\n (click)=\"invokeRowToggleDetailActiveExpand(node)\">\n\n <i class=\"bi\" [ngClass]=\"{ 'bi-chevron-down': node.detailActive, 'bi-chevron-right': !node.detailActive }\"></i>\n </a>\n }\n\n <!-- Goto Detail Button Status -->\n @if ((cellRendererParams?.gotoDetailButtonStatus == 1 && !(gotoDetailExcludeLevels?.has(node.level))) && (!column?.hideActionButton || allowedEdit)) {\n <button\n type=\"button\"\n class=\"btn-action btn-action-primary\"\n (click)=\"invokeRowActionGotoDetail(node, column)\">\n\n <i class=\"bi bi-list-task\"></i>\n </button>\n }\n\n <!-- Add New Button Status -->\n @if ((cellRendererParams?.addNewButtonStatus == 1 && !(addNewExcludeLevels?.has(node.level))) && (!column?.hideActionButton || allowedEdit)) {\n <button\n type=\"button\"\n class=\"btn-action btn-action-primary\"\n [class.disabled]=\"!allowedEdit\"\n (click)=\"invokeRowActionAddNew(node, column)\">\n\n <i class=\"bi bi-plus\"></i>\n </button>\n }\n\n <!-- View Button Status -->\n @if (cellRendererParams?.viewButtonStatus == 1) {\n <button\n type=\"button\"\n class=\"btn-action btn-action-primary\"\n (click)=\"invokeRowActionView(node, column)\">\n\n <i class=\"bi bi-eye\"></i>\n </button>\n }\n @if (cellRendererParams?.locationButtonStatus == 1) {\n <button\n type=\"button\"\n class=\"btn-action btn-action-primary\"\n (click)=\"invokeRowActionLocation(node, column)\">\n\n <i class=\"bi bi-geo-alt\"></i>\n </button>\n }\n\n <!-- Document Button Status -->\n @if (cellRendererParams?.documentButtonStatus == 1) {\n <button\n type=\"button\"\n class=\"btn-action btn-action-primary\"\n (click)=\"invokeRowActionDocument(node, column)\">\n\n <i class=\"bi bi-file-earmark-text\"></i>\n </button>\n }\n\n <!-- Copy Button Status -->\n @if (cellRendererParams?.copyButtonStatus == 1) {\n <button\n type=\"button\"\n class=\"btn-action btn-action-primary\"\n (click)=\"invokeRowActionCopy(node, column)\">\n\n <i class=\"bi bi-files\"></i>\n </button>\n }\n\n\n <!-- Delete Button Status -->\n @if (cellRendererParams?.deleteButtonStatus == 1 && (!column?.hideActionButton || allowedEdit)) {\n <button\n type=\"button\"\n class=\"btn-action btn-action-danger\"\n [class.disabled]=\"!allowedEdit\"\n (click)=\"invokeRowActionDelete(node, column)\">\n\n <i class=\"bi bi-trash3\"></i>\n </button>\n }\n\n <!-- Goto List Button Status -->\n @if (cellRendererParams?.gotoListButtonStatus === 1) {\n <button\n type=\"button\"\n class=\"btn-action btn-action-success\"\n (click)=\"invokeRowActionGotoList(node, column)\">\n\n <i class=\"bi bi-list-ul\"></i>\n </button>\n }\n\n <!-- Edit Button Status -->\n @if (cellRendererParams?.editButtonStatus === 1) {\n <button\n type=\"button\"\n class=\"btn-action btn-action-primary\"\n [class.disabled]=\"node | cellDisableResolver:column:context:allowedEdit\"\n (click)=\"invokeRowActionEdit(node, column)\">\n\n <i class=\"bi bi-pencil\"></i>\n </button>\n }\n\n <!-- Print Button Status -->\n @if (cellRendererParams?.printButtonStatus === 1) {\n <button\n type=\"button\"\n class=\"btn-action btn-action-primary\"\n [class.disabled]=\"node | cellDisableResolver:column:context:allowedEdit\"\n (click)=\"invokeRowActionPrint(node, column)\">\n\n <i class=\"bi bi-printer\"></i>\n </button>\n }\n\n <!-- History Button Status -->\n @if (cellRendererParams?.historyButtonStatus === 1) {\n <button\n type=\"button\"\n class=\"btn-action btn-action-primary\"\n [class.disabled]=\"node | cellDisableResolver:column:context:allowedEdit\"\n (click)=\"invokeRowActionHistory(node, column)\">\n\n <i class=\"bi bi-clock-history\"></i>\n </button>\n }\n\n <!-- Option Button Status -->\n @if (cellRendererParams?.optionButtonStatus === 1) {\n <button\n type=\"button\"\n class=\"btn-action btn-action-primary\"\n [class.disabled]=\"node | cellDisableResolver:column:context:allowedEdit\"\n (click)=\"invokeRowActionOption(node, column)\">\n\n <i class=\"bi bi-three-dots-vertical\"></i>\n </button>\n }\n\n <!-- Language Button Status -->\n @if (cellRendererParams?.languageButtonStatus === 1) {\n <button\n type=\"button\"\n class=\"btn-action btn-action-primary\"\n [class.disabled]=\"node | cellDisableResolver:column:context:allowedEdit\"\n (click)=\"invokeRowActionLanguage(node, column)\">\n\n <i class=\"bi bi-translate\"></i>\n </button>\n }\n\n <!-- Cell Optoion Button Status (Context Menu) -->\n @if (cellRendererParams?.cellOptionButtonStatus === 1) {\n <button\n type=\"button\"\n class=\"btn-action btn-action-primary border-0 text-body\"\n [style.background]=\"'transparent'\"\n [class.disabled]=\"node | cellDisableResolver:column:context:allowedEdit\"\n (click)=\"invokeRowActionCellOption(node, column)\">\n\n <i class=\"bi bi-three-dots-vertical\"></i>\n </button>\n }\n </div>\n}", styles: [""], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "pipe", type: i2.CellDisableResolverPipe, name: "cellDisableResolver" }] }); }
|
|
141
|
+
}
|
|
142
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: OneGridRowActionComponent, decorators: [{
|
|
143
|
+
type: Component,
|
|
144
|
+
args: [{ standalone: false, selector: 'one-grid-row-action', template: "@if ((cellRendererParams && node?.leaf && !column?.autoGroupField && !(node.group && node.leafGroup)) || (column?.rowActionLevels?.includes(node.level) && column?.autoGroupField)) {\n <div class=\"btn-action-container\">\n\n <!-- Expansion Button Status -->\n @if ((cellRendererParams?.detailActiveButtonStatus == 1 && !(detailActiveExcludeLevels?.has(node.level)))) {\n <a\n class=\"me-2\"\n [attr.aria-label]=\"node.detailActive ? 'Collapse row' : 'Expand row'\"\n [title]=\"node.detailActive ? 'Collapse' : 'Expand'\"\n (click)=\"invokeRowToggleDetailActiveExpand(node)\">\n\n <i class=\"bi\" [ngClass]=\"{ 'bi-chevron-down': node.detailActive, 'bi-chevron-right': !node.detailActive }\"></i>\n </a>\n }\n\n <!-- Goto Detail Button Status -->\n @if ((cellRendererParams?.gotoDetailButtonStatus == 1 && !(gotoDetailExcludeLevels?.has(node.level))) && (!column?.hideActionButton || allowedEdit)) {\n <button\n type=\"button\"\n class=\"btn-action btn-action-primary\"\n (click)=\"invokeRowActionGotoDetail(node, column)\">\n\n <i class=\"bi bi-list-task\"></i>\n </button>\n }\n\n <!-- Add New Button Status -->\n @if ((cellRendererParams?.addNewButtonStatus == 1 && !(addNewExcludeLevels?.has(node.level))) && (!column?.hideActionButton || allowedEdit)) {\n <button\n type=\"button\"\n class=\"btn-action btn-action-primary\"\n [class.disabled]=\"!allowedEdit\"\n (click)=\"invokeRowActionAddNew(node, column)\">\n\n <i class=\"bi bi-plus\"></i>\n </button>\n }\n\n <!-- View Button Status -->\n @if (cellRendererParams?.viewButtonStatus == 1) {\n <button\n type=\"button\"\n class=\"btn-action btn-action-primary\"\n (click)=\"invokeRowActionView(node, column)\">\n\n <i class=\"bi bi-eye\"></i>\n </button>\n }\n @if (cellRendererParams?.locationButtonStatus == 1) {\n <button\n type=\"button\"\n class=\"btn-action btn-action-primary\"\n (click)=\"invokeRowActionLocation(node, column)\">\n\n <i class=\"bi bi-geo-alt\"></i>\n </button>\n }\n\n <!-- Document Button Status -->\n @if (cellRendererParams?.documentButtonStatus == 1) {\n <button\n type=\"button\"\n class=\"btn-action btn-action-primary\"\n (click)=\"invokeRowActionDocument(node, column)\">\n\n <i class=\"bi bi-file-earmark-text\"></i>\n </button>\n }\n\n <!-- Copy Button Status -->\n @if (cellRendererParams?.copyButtonStatus == 1) {\n <button\n type=\"button\"\n class=\"btn-action btn-action-primary\"\n (click)=\"invokeRowActionCopy(node, column)\">\n\n <i class=\"bi bi-files\"></i>\n </button>\n }\n\n\n <!-- Delete Button Status -->\n @if (cellRendererParams?.deleteButtonStatus == 1 && (!column?.hideActionButton || allowedEdit)) {\n <button\n type=\"button\"\n class=\"btn-action btn-action-danger\"\n [class.disabled]=\"!allowedEdit\"\n (click)=\"invokeRowActionDelete(node, column)\">\n\n <i class=\"bi bi-trash3\"></i>\n </button>\n }\n\n <!-- Goto List Button Status -->\n @if (cellRendererParams?.gotoListButtonStatus === 1) {\n <button\n type=\"button\"\n class=\"btn-action btn-action-success\"\n (click)=\"invokeRowActionGotoList(node, column)\">\n\n <i class=\"bi bi-list-ul\"></i>\n </button>\n }\n\n <!-- Edit Button Status -->\n @if (cellRendererParams?.editButtonStatus === 1) {\n <button\n type=\"button\"\n class=\"btn-action btn-action-primary\"\n [class.disabled]=\"node | cellDisableResolver:column:context:allowedEdit\"\n (click)=\"invokeRowActionEdit(node, column)\">\n\n <i class=\"bi bi-pencil\"></i>\n </button>\n }\n\n <!-- Print Button Status -->\n @if (cellRendererParams?.printButtonStatus === 1) {\n <button\n type=\"button\"\n class=\"btn-action btn-action-primary\"\n [class.disabled]=\"node | cellDisableResolver:column:context:allowedEdit\"\n (click)=\"invokeRowActionPrint(node, column)\">\n\n <i class=\"bi bi-printer\"></i>\n </button>\n }\n\n <!-- History Button Status -->\n @if (cellRendererParams?.historyButtonStatus === 1) {\n <button\n type=\"button\"\n class=\"btn-action btn-action-primary\"\n [class.disabled]=\"node | cellDisableResolver:column:context:allowedEdit\"\n (click)=\"invokeRowActionHistory(node, column)\">\n\n <i class=\"bi bi-clock-history\"></i>\n </button>\n }\n\n <!-- Option Button Status -->\n @if (cellRendererParams?.optionButtonStatus === 1) {\n <button\n type=\"button\"\n class=\"btn-action btn-action-primary\"\n [class.disabled]=\"node | cellDisableResolver:column:context:allowedEdit\"\n (click)=\"invokeRowActionOption(node, column)\">\n\n <i class=\"bi bi-three-dots-vertical\"></i>\n </button>\n }\n\n <!-- Language Button Status -->\n @if (cellRendererParams?.languageButtonStatus === 1) {\n <button\n type=\"button\"\n class=\"btn-action btn-action-primary\"\n [class.disabled]=\"node | cellDisableResolver:column:context:allowedEdit\"\n (click)=\"invokeRowActionLanguage(node, column)\">\n\n <i class=\"bi bi-translate\"></i>\n </button>\n }\n\n <!-- Cell Optoion Button Status (Context Menu) -->\n @if (cellRendererParams?.cellOptionButtonStatus === 1) {\n <button\n type=\"button\"\n class=\"btn-action btn-action-primary border-0 text-body\"\n [style.background]=\"'transparent'\"\n [class.disabled]=\"node | cellDisableResolver:column:context:allowedEdit\"\n (click)=\"invokeRowActionCellOption(node, column)\">\n\n <i class=\"bi bi-three-dots-vertical\"></i>\n </button>\n }\n </div>\n}" }]
|
|
145
|
+
}], propDecorators: { column: [{
|
|
146
|
+
type: Input,
|
|
147
|
+
args: [{ required: true }]
|
|
148
|
+
}], node: [{
|
|
149
|
+
type: Input,
|
|
150
|
+
args: [{ required: true }]
|
|
151
|
+
}], allowedEdit: [{
|
|
152
|
+
type: Input,
|
|
153
|
+
args: [{ required: true }]
|
|
154
|
+
}], masterDetail: [{
|
|
155
|
+
type: Input
|
|
156
|
+
}], masterNode: [{
|
|
157
|
+
type: Input
|
|
158
|
+
}], cellRendererParams: [{
|
|
159
|
+
type: Input
|
|
160
|
+
}], gridType: [{
|
|
161
|
+
type: Input
|
|
162
|
+
}], context: [{
|
|
163
|
+
type: Input
|
|
164
|
+
}], onRowGotoDetail: [{
|
|
165
|
+
type: Output
|
|
166
|
+
}], onRowAddNew: [{
|
|
167
|
+
type: Output
|
|
168
|
+
}], onRowView: [{
|
|
169
|
+
type: Output
|
|
170
|
+
}], onRowLocation: [{
|
|
171
|
+
type: Output
|
|
172
|
+
}], onRowDocument: [{
|
|
173
|
+
type: Output
|
|
174
|
+
}], onRowCopy: [{
|
|
175
|
+
type: Output
|
|
176
|
+
}], onRowDelete: [{
|
|
177
|
+
type: Output
|
|
178
|
+
}], onRowGotoList: [{
|
|
179
|
+
type: Output
|
|
180
|
+
}], onRowEdit: [{
|
|
181
|
+
type: Output
|
|
182
|
+
}], onRowPrint: [{
|
|
183
|
+
type: Output
|
|
184
|
+
}], onRowHistory: [{
|
|
185
|
+
type: Output
|
|
186
|
+
}], onRowOption: [{
|
|
187
|
+
type: Output
|
|
188
|
+
}], onRowLanguage: [{
|
|
189
|
+
type: Output
|
|
190
|
+
}], onRowCellOption: [{
|
|
191
|
+
type: Output
|
|
192
|
+
}] } });
|
|
193
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib25lLWdyaWQtcm93LWFjdGlvbi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9vbmUtZ3JpZC9zcmMvbGliL2NvbXBvbmVudHMvb25lLWdyaWQtcm93LWFjdGlvbi9vbmUtZ3JpZC1yb3ctYWN0aW9uLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL29uZS1ncmlkL3NyYy9saWIvY29tcG9uZW50cy9vbmUtZ3JpZC1yb3ctYWN0aW9uL29uZS1ncmlkLXJvdy1hY3Rpb24uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFVLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQzs7OztBQVcvRSxNQUFNLE9BQU8seUJBQXlCO0lBTnRDO1FBYTZCLGdCQUFXLEdBQVksS0FBSyxDQUFDO1FBQy9DLGlCQUFZLEdBQVksS0FBSyxDQUFDO1FBQzlCLGVBQVUsR0FBa0IsSUFBSSxDQUFDO1FBRWpDLGFBQVEsR0FBZ0IsSUFBSSxDQUFDO1FBQzdCLFlBQU8sR0FBUSxJQUFJLENBQUM7UUFFN0I7O1dBRUc7UUFDTyxvQkFBZSxHQUFHLElBQUksWUFBWSxFQUE0QixDQUFDO1FBQy9ELGdCQUFXLEdBQUcsSUFBSSxZQUFZLEVBQTRCLENBQUM7UUFDM0QsY0FBUyxHQUFHLElBQUksWUFBWSxFQUE0QixDQUFDO1FBQ3pELGtCQUFhLEdBQUcsSUFBSSxZQUFZLEVBQTRCLENBQUM7UUFDN0Qsa0JBQWEsR0FBRyxJQUFJLFlBQVksRUFBNEIsQ0FBQztRQUM3RCxjQUFTLEdBQUcsSUFBSSxZQUFZLEVBQTRCLENBQUM7UUFDekQsZ0JBQVcsR0FBRyxJQUFJLFlBQVksRUFBNEIsQ0FBQztRQUMzRCxrQkFBYSxHQUFHLElBQUksWUFBWSxFQUE0QixDQUFDO1FBQzdELGNBQVMsR0FBRyxJQUFJLFlBQVksRUFBNEIsQ0FBQztRQUN6RCxlQUFVLEdBQUcsSUFBSSxZQUFZLEVBQTRCLENBQUM7UUFDMUQsaUJBQVksR0FBRyxJQUFJLFlBQVksRUFBNEIsQ0FBQztRQUM1RCxnQkFBVyxHQUFHLElBQUksWUFBWSxFQUE0QixDQUFDO1FBQzNELGtCQUFhLEdBQUcsSUFBSSxZQUFZLEVBQTRCLENBQUM7UUFDN0Qsb0JBQWUsR0FBRyxJQUFJLFlBQVksRUFBNEIsQ0FBQztLQTRMMUU7SUF0TEMsUUFBUTtRQUVOLElBQUksQ0FBQyx5QkFBeUIsR0FBRyxJQUFJLEdBQUcsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLGtCQUFrQixFQUFFLHlCQUF5QixJQUFJLEVBQUUsQ0FBQyxDQUFBO1FBQ3pHLElBQUksQ0FBQyx1QkFBdUIsR0FBRyxJQUFJLEdBQUcsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLGtCQUFrQixFQUFFLHVCQUF1QixJQUFJLEVBQUUsQ0FBQyxDQUFBO1FBQ3JHLElBQUksQ0FBQyxtQkFBbUIsR0FBRyxJQUFJLEdBQUcsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLGtCQUFrQixFQUFFLG1CQUFtQixJQUFJLEVBQUUsQ0FBQyxDQUFDO0lBQ2hHLENBQUM7SUFFRDs7T0FFRztJQUNILGlDQUFpQyxDQUFDLElBQWdCO1FBRWhELElBQUksQ0FBQyxZQUFZLEdBQUcsQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDO0lBQ3pDLENBQUM7SUFFRCx5QkFBeUIsQ0FBQyxJQUFtQixFQUFFLE1BQXVCO1FBRXBFLElBQUksSUFBSSxHQUEwQixFQUFFLElBQUksRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFLElBQUksQ0FBQyxJQUFJLEVBQUUsUUFBUSxFQUFFLElBQUksQ0FBQyxRQUFRLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRSxDQUFDO1FBRTdHLElBQUksSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDO1lBRXRCLElBQUksR0FBRyxFQUFFLEdBQUcsSUFBSSxFQUFFLFFBQVEsRUFBRSxJQUFJLENBQUMsUUFBUSxFQUFFLFVBQVUsRUFBRSxJQUFJLENBQUMsVUFBVSxFQUFFLENBQUM7UUFDM0UsQ0FBQztRQUVELElBQUksQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ2xDLENBQUM7SUFFRCxxQkFBcUIsQ0FBQyxJQUFtQixFQUFFLE1BQXVCO1FBRWhFLElBQUksSUFBSSxHQUEwQixFQUFFLElBQUksRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFLElBQUksQ0FBQyxJQUFJLEVBQUUsUUFBUSxFQUFFLElBQUksQ0FBQyxRQUFRLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRSxDQUFDO1FBRTdHLElBQUksSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDO1lBRXRCLElBQUksR0FBRyxFQUFFLEdBQUcsSUFBSSxFQUFFLFFBQVEsRUFBRSxJQUFJLENBQUMsUUFBUSxFQUFFLFVBQVUsRUFBRSxJQUFJLENBQUMsVUFBVSxFQUFFLENBQUM7UUFDM0UsQ0FBQztRQUVELElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQzlCLENBQUM7SUFFRCxtQkFBbUIsQ0FBQyxJQUFtQixFQUFFLE1BQXVCO1FBRTlELElBQUksSUFBSSxHQUEwQixFQUFFLElBQUksRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFLElBQUksQ0FBQyxJQUFJLEVBQUUsUUFBUSxFQUFFLElBQUksQ0FBQyxRQUFRLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRSxDQUFDO1FBRTdHLElBQUksSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDO1lBRXRCLElBQUksR0FBRyxFQUFFLEdBQUcsSUFBSSxFQUFFLFFBQVEsRUFBRSxJQUFJLENBQUMsUUFBUSxFQUFFLFVBQVUsRUFBRSxJQUFJLENBQUMsVUFBVSxFQUFFLENBQUM7UUFDM0UsQ0FBQztRQUVELElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQzVCLENBQUM7SUFFRCx1QkFBdUIsQ0FBQyxJQUFtQixFQUFFLE1BQXVCO1FBRWxFLElBQUksSUFBSSxHQUEwQixFQUFFLElBQUksRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFLElBQUksQ0FBQyxJQUFJLEVBQUUsUUFBUSxFQUFFLElBQUksQ0FBQyxRQUFRLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRSxDQUFDO1FBRTdHLElBQUksSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDO1lBRXRCLElBQUksR0FBRyxFQUFFLEdBQUcsSUFBSSxFQUFFLFFBQVEsRUFBRSxJQUFJLENBQUMsUUFBUSxFQUFFLFVBQVUsRUFBRSxJQUFJLENBQUMsVUFBVSxFQUFFLENBQUM7UUFDM0UsQ0FBQztRQUVELElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ2hDLENBQUM7SUFFRCx1QkFBdUIsQ0FBQyxJQUFtQixFQUFFLE1BQXVCO1FBRWxFLElBQUksSUFBSSxHQUEwQixFQUFFLElBQUksRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFLElBQUksQ0FBQyxJQUFJLEVBQUUsUUFBUSxFQUFFLElBQUksQ0FBQyxRQUFRLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRSxDQUFDO1FBRTdHLElBQUksSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDO1lBRXRCLElBQUksR0FBRyxFQUFFLEdBQUcsSUFBSSxFQUFFLFFBQVEsRUFBRSxJQUFJLENBQUMsUUFBUSxFQUFFLFVBQVUsRUFBRSxJQUFJLENBQUMsVUFBVSxFQUFFLENBQUM7UUFDM0UsQ0FBQztRQUVELElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ2hDLENBQUM7SUFFRCxtQkFBbUIsQ0FBQyxJQUFtQixFQUFFLE1BQXVCO1FBRTlELElBQUksSUFBSSxHQUEwQixFQUFFLElBQUksRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFLElBQUksQ0FBQyxJQUFJLEVBQUUsUUFBUSxFQUFFLElBQUksQ0FBQyxRQUFRLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRSxDQUFDO1FBRTdHLElBQUksSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDO1lBRXRCLElBQUksR0FBRyxFQUFFLEdBQUcsSUFBSSxFQUFFLFFBQVEsRUFBRSxJQUFJLENBQUMsUUFBUSxFQUFFLFVBQVUsRUFBRSxJQUFJLENBQUMsVUFBVSxFQUFFLENBQUM7UUFDM0UsQ0FBQztRQUVELElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQzVCLENBQUM7SUFFRCxxQkFBcUIsQ0FBQyxJQUFtQixFQUFFLE1BQXVCO1FBRWhFLElBQUksSUFBSSxHQUEwQixFQUFFLElBQUksRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFLElBQUksQ0FBQyxJQUFJLEVBQUUsUUFBUSxFQUFFLElBQUksQ0FBQyxRQUFRLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRSxDQUFDO1FBRTdHLElBQUksSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDO1lBRXRCLElBQUksR0FBRyxFQUFFLEdBQUcsSUFBSSxFQUFFLFFBQVEsRUFBRSxJQUFJLENBQUMsUUFBUSxFQUFFLFVBQVUsRUFBRSxJQUFJLENBQUMsVUFBVSxFQUFFLENBQUM7UUFDM0UsQ0FBQztRQUVELElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQzlCLENBQUM7SUFFRCx1QkFBdUIsQ0FBQyxJQUFtQixFQUFFLE1BQXVCO1FBRWxFLElBQUksSUFBSSxHQUEwQixFQUFFLElBQUksRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFLElBQUksQ0FBQyxJQUFJLEVBQUUsUUFBUSxFQUFFLElBQUksQ0FBQyxRQUFRLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRSxDQUFDO1FBRTdHLElBQUksSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDO1lBRXRCLElBQUksR0FBRyxFQUFFLEdBQUcsSUFBSSxFQUFFLFFBQVEsRUFBRSxJQUFJLENBQUMsUUFBUSxFQUFFLFVBQVUsRUFBRSxJQUFJLENBQUMsVUFBVSxFQUFFLENBQUM7UUFDM0UsQ0FBQztRQUVELElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ2hDLENBQUM7SUFFRCxtQkFBbUIsQ0FBQyxJQUFtQixFQUFFLE1BQXVCO1FBRTlELElBQUksSUFBSSxHQUEwQixFQUFFLElBQUksRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFLElBQUksQ0FBQyxJQUFJLEVBQUUsUUFBUSxFQUFFLElBQUksQ0FBQyxRQUFRLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRSxDQUFDO1FBRTdHLElBQUksSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDO1lBRXRCLElBQUksR0FBRyxFQUFFLEdBQUcsSUFBSSxFQUFFLFFBQVEsRUFBRSxJQUFJLENBQUMsUUFBUSxFQUFFLFVBQVUsRUFBRSxJQUFJLENBQUMsVUFBVSxFQUFFLENBQUM7UUFDM0UsQ0FBQztRQUVELElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQzVCLENBQUM7SUFFRCxvQkFBb0IsQ0FBQyxJQUFtQixFQUFFLE1BQXVCO1FBRS9ELElBQUksSUFBSSxHQUEwQixFQUFFLElBQUksRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFLElBQUksQ0FBQyxJQUFJLEVBQUUsUUFBUSxFQUFFLElBQUksQ0FBQyxRQUFRLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRSxDQUFDO1FBRTdHLElBQUksSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDO1lBRXRCLElBQUksR0FBRyxFQUFFLEdBQUcsSUFBSSxFQUFFLFFBQVEsRUFBRSxJQUFJLENBQUMsUUFBUSxFQUFFLFVBQVUsRUFBRSxJQUFJLENBQUMsVUFBVSxFQUFFLENBQUM7UUFDM0UsQ0FBQztRQUVELElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQzdCLENBQUM7SUFFRCxzQkFBc0IsQ0FBQyxJQUFtQixFQUFFLE1BQXVCO1FBRWpFLElBQUksSUFBSSxHQUEwQixFQUFFLElBQUksRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFLElBQUksQ0FBQyxJQUFJLEVBQUUsUUFBUSxFQUFFLElBQUksQ0FBQyxRQUFRLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRSxDQUFDO1FBRTdHLElBQUksSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDO1lBRXRCLElBQUksR0FBRyxFQUFFLEdBQUcsSUFBSSxFQUFFLFFBQVEsRUFBRSxJQUFJLENBQUMsUUFBUSxFQUFFLFVBQVUsRUFBRSxJQUFJLENBQUMsVUFBVSxFQUFFLENBQUM7UUFDM0UsQ0FBQztRQUVELElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQy9CLENBQUM7SUFFRCxxQkFBcUIsQ0FBQyxJQUFtQixFQUFFLE1BQXVCO1FBRWhFLElBQUksSUFBSSxHQUEwQixFQUFFLElBQUksRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFLElBQUksQ0FBQyxJQUFJLEVBQUUsUUFBUSxFQUFFLElBQUksQ0FBQyxRQUFRLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRSxDQUFDO1FBRTdHLElBQUksSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDO1lBRXRCLElBQUksR0FBRyxFQUFFLEdBQUcsSUFBSSxFQUFFLFFBQVEsRUFBRSxJQUFJLENBQUMsUUFBUSxFQUFFLFVBQVUsRUFBRSxJQUFJLENBQUMsVUFBVSxFQUFFLENBQUM7UUFDM0UsQ0FBQztRQUVELElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQzlCLENBQUM7SUFFRCx1QkFBdUIsQ0FBQyxJQUFtQixFQUFFLE1BQXVCO1FBRWxFLElBQUksSUFBSSxHQUEwQixFQUFFLElBQUksRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFLElBQUksQ0FBQyxJQUFJLEVBQUUsUUFBUSxFQUFFLElBQUksQ0FBQyxRQUFRLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRSxDQUFDO1FBRTdHLElBQUksSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDO1lBRXRCLElBQUksR0FBRyxFQUFFLEdBQUcsSUFBSSxFQUFFLFFBQVEsRUFBRSxJQUFJLENBQUMsUUFBUSxFQUFFLFVBQVUsRUFBRSxJQUFJLENBQUMsVUFBVSxFQUFFLENBQUM7UUFDM0UsQ0FBQztRQUVELElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ2hDLENBQUM7SUFFRCx5QkFBeUIsQ0FBQyxJQUFtQixFQUFFLE1BQXVCO1FBRXBFLElBQUksSUFBSSxHQUEwQixFQUFFLElBQUksRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFLElBQUksQ0FBQyxJQUFJLEVBQUUsUUFBUSxFQUFFLElBQUksQ0FBQyxRQUFRLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRSxDQUFDO1FBRTdHLElBQUksSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDO1lBRXRCLElBQUksR0FBRyxFQUFFLEdBQUcsSUFBSSxFQUFFLFFBQVEsRUFBRSxJQUFJLENBQUMsUUFBUSxFQUFFLFVBQVUsRUFBRSxJQUFJLENBQUMsVUFBVSxFQUFFLENBQUM7UUFDM0UsQ0FBQztRQUVELElBQUksQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ2xDLENBQUM7K0dBek5VLHlCQUF5QjttR0FBekIseUJBQXlCLHdyQkNYdEMscXlOQWlMQzs7NEZEdEtZLHlCQUF5QjtrQkFOckMsU0FBUztpQ0FDSSxLQUFLLFlBQ1AscUJBQXFCOzhCQVNKLE1BQU07c0JBQWhDLEtBQUs7dUJBQUMsRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFO2dCQUNFLElBQUk7c0JBQTlCLEtBQUs7dUJBQUMsRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFO2dCQUNFLFdBQVc7c0JBQXJDLEtBQUs7dUJBQUMsRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFO2dCQUNoQixZQUFZO3NCQUFwQixLQUFLO2dCQUNHLFVBQVU7c0JBQWxCLEtBQUs7Z0JBQ0csa0JBQWtCO3NCQUExQixLQUFLO2dCQUNHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBQ0csT0FBTztzQkFBZixLQUFLO2dCQUtJLGVBQWU7c0JBQXhCLE1BQU07Z0JBQ0csV0FBVztzQkFBcEIsTUFBTTtnQkFDRyxTQUFTO3NCQUFsQixNQUFNO2dCQUNHLGFBQWE7c0JBQXRCLE1BQU07Z0JBQ0csYUFBYTtzQkFBdEIsTUFBTTtnQkFDRyxTQUFTO3NCQUFsQixNQUFNO2dCQUNHLFdBQVc7c0JBQXBCLE1BQU07Z0JBQ0csYUFBYTtzQkFBdEIsTUFBTTtnQkFDRyxTQUFTO3NCQUFsQixNQUFNO2dCQUNHLFVBQVU7c0JBQW5CLE1BQU07Z0JBQ0csWUFBWTtzQkFBckIsTUFBTTtnQkFDRyxXQUFXO3NCQUFwQixNQUFNO2dCQUNHLGFBQWE7c0JBQXRCLE1BQU07Z0JBQ0csZUFBZTtzQkFBeEIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT25Jbml0LCBPdXRwdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE9uZVJvd05vZGUgfSBmcm9tICcuLi8uLi9jb3JlL2luc3RhbnRzL29uZS1yb3ctbm9kZS5jbGFzcyc7XG5pbXBvcnQgeyBPbmVHcmlkUm93QWN0aW9uRXZlbnQsIE9uZUdyaWRUeXBlIH0gZnJvbSAnLi4vLi4vY29yZS9tb2RlbHMvb25lLWdyaWQtdHlwZXMubW9kZWwnO1xuaW1wb3J0IHsgT25lQ2VsbFJlbmRlcmVyUGFyYW1zLCBPbmVDb2x1bW5EZWYgfSBmcm9tICcuLi8uLi9jb3JlL21vZGVscy9vbmUtY29sdW1uLWRlZi10eXBlcy5tb2RlbCc7XG5cbkBDb21wb25lbnQoe1xuICBzdGFuZGFsb25lOiBmYWxzZSxcbiAgc2VsZWN0b3I6ICdvbmUtZ3JpZC1yb3ctYWN0aW9uJyxcbiAgdGVtcGxhdGVVcmw6ICcuL29uZS1ncmlkLXJvdy1hY3Rpb24uY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybDogJy4vb25lLWdyaWQtcm93LWFjdGlvbi5jb21wb25lbnQuc2Nzcydcbn0pXG5leHBvcnQgY2xhc3MgT25lR3JpZFJvd0FjdGlvbkNvbXBvbmVudDxUPiBpbXBsZW1lbnRzIE9uSW5pdCB7XG5cbiAgLyoqXG4gICAqIEdldCBOb2RlICYgQ2VsbCBSZW5kZXJlciBGcm9tIFBhcmVudCBDb21wb25lbnRcbiAgICovXG4gIEBJbnB1dCh7IHJlcXVpcmVkOiB0cnVlIH0pIGNvbHVtbjogT25lQ29sdW1uRGVmPFQ+O1xuICBASW5wdXQoeyByZXF1aXJlZDogdHJ1ZSB9KSBub2RlOiBPbmVSb3dOb2RlPFQ+O1xuICBASW5wdXQoeyByZXF1aXJlZDogdHJ1ZSB9KSBhbGxvd2VkRWRpdDogYm9vbGVhbiA9IGZhbHNlO1xuICBASW5wdXQoKSBtYXN0ZXJEZXRhaWw6IGJvb2xlYW4gPSBmYWxzZTtcbiAgQElucHV0KCkgbWFzdGVyTm9kZTogT25lUm93Tm9kZTxUPiA9IG51bGw7XG4gIEBJbnB1dCgpIGNlbGxSZW5kZXJlclBhcmFtczogT25lQ2VsbFJlbmRlcmVyUGFyYW1zPFQ+O1xuICBASW5wdXQoKSBncmlkVHlwZTogT25lR3JpZFR5cGUgPSBudWxsO1xuICBASW5wdXQoKSBjb250ZXh0OiBhbnkgPSBudWxsO1xuXG4gIC8qKlxuICAgKiBCaW5kIEV2ZW50IHRvIFBhcmVudCBDb21wb25lbnRcbiAgICovXG4gIEBPdXRwdXQoKSBvblJvd0dvdG9EZXRhaWwgPSBuZXcgRXZlbnRFbWl0dGVyPE9uZUdyaWRSb3dBY3Rpb25FdmVudDxUPj4oKTtcbiAgQE91dHB1dCgpIG9uUm93QWRkTmV3ID0gbmV3IEV2ZW50RW1pdHRlcjxPbmVHcmlkUm93QWN0aW9uRXZlbnQ8VD4+KCk7XG4gIEBPdXRwdXQoKSBvblJvd1ZpZXcgPSBuZXcgRXZlbnRFbWl0dGVyPE9uZUdyaWRSb3dBY3Rpb25FdmVudDxUPj4oKTtcbiAgQE91dHB1dCgpIG9uUm93TG9jYXRpb24gPSBuZXcgRXZlbnRFbWl0dGVyPE9uZUdyaWRSb3dBY3Rpb25FdmVudDxUPj4oKTtcbiAgQE91dHB1dCgpIG9uUm93RG9jdW1lbnQgPSBuZXcgRXZlbnRFbWl0dGVyPE9uZUdyaWRSb3dBY3Rpb25FdmVudDxUPj4oKTtcbiAgQE91dHB1dCgpIG9uUm93Q29weSA9IG5ldyBFdmVudEVtaXR0ZXI8T25lR3JpZFJvd0FjdGlvbkV2ZW50PFQ+PigpO1xuICBAT3V0cHV0KCkgb25Sb3dEZWxldGUgPSBuZXcgRXZlbnRFbWl0dGVyPE9uZUdyaWRSb3dBY3Rpb25FdmVudDxUPj4oKTtcbiAgQE91dHB1dCgpIG9uUm93R290b0xpc3QgPSBuZXcgRXZlbnRFbWl0dGVyPE9uZUdyaWRSb3dBY3Rpb25FdmVudDxUPj4oKTtcbiAgQE91dHB1dCgpIG9uUm93RWRpdCA9IG5ldyBFdmVudEVtaXR0ZXI8T25lR3JpZFJvd0FjdGlvbkV2ZW50PFQ+PigpO1xuICBAT3V0cHV0KCkgb25Sb3dQcmludCA9IG5ldyBFdmVudEVtaXR0ZXI8T25lR3JpZFJvd0FjdGlvbkV2ZW50PFQ+PigpO1xuICBAT3V0cHV0KCkgb25Sb3dIaXN0b3J5ID0gbmV3IEV2ZW50RW1pdHRlcjxPbmVHcmlkUm93QWN0aW9uRXZlbnQ8VD4+KCk7XG4gIEBPdXRwdXQoKSBvblJvd09wdGlvbiA9IG5ldyBFdmVudEVtaXR0ZXI8T25lR3JpZFJvd0FjdGlvbkV2ZW50PFQ+PigpO1xuICBAT3V0cHV0KCkgb25Sb3dMYW5ndWFnZSA9IG5ldyBFdmVudEVtaXR0ZXI8T25lR3JpZFJvd0FjdGlvbkV2ZW50PFQ+PigpO1xuICBAT3V0cHV0KCkgb25Sb3dDZWxsT3B0aW9uID0gbmV3IEV2ZW50RW1pdHRlcjxPbmVHcmlkUm93QWN0aW9uRXZlbnQ8VD4+KCk7XG5cbiAgcHJvdGVjdGVkIGRldGFpbEFjdGl2ZUV4Y2x1ZGVMZXZlbHM6IFNldDxudW1iZXI+O1xuICBwcm90ZWN0ZWQgZ290b0RldGFpbEV4Y2x1ZGVMZXZlbHM6IFNldDxudW1iZXI+O1xuICBwcm90ZWN0ZWQgYWRkTmV3RXhjbHVkZUxldmVsczogU2V0PG51bWJlcj47XG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG5cbiAgICB0aGlzLmRldGFpbEFjdGl2ZUV4Y2x1ZGVMZXZlbHMgPSBuZXcgU2V0KHRoaXMuY29sdW1uLmNlbGxSZW5kZXJlclBhcmFtcz8uZGV0YWlsQWN0aXZlRXhjbHVkZUxldmVscyA/PyBbXSlcbiAgICB0aGlzLmdvdG9EZXRhaWxFeGNsdWRlTGV2ZWxzID0gbmV3IFNldCh0aGlzLmNvbHVtbi5jZWxsUmVuZGVyZXJQYXJhbXM/LmdvdG9EZXRhaWxFeGNsdWRlTGV2ZWxzID8/IFtdKVxuICAgIHRoaXMuYWRkTmV3RXhjbHVkZUxldmVscyA9IG5ldyBTZXQodGhpcy5jb2x1bW4uY2VsbFJlbmRlcmVyUGFyYW1zPy5hZGROZXdFeGNsdWRlTGV2ZWxzID8/IFtdKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBUcmlnZ2VyIEludm9rZSBDbGljayBFdmVudFxuICAgKi9cbiAgaW52b2tlUm93VG9nZ2xlRGV0YWlsQWN0aXZlRXhwYW5kKG5vZGU6IE9uZVJvd05vZGUpOiB2b2lkIHtcblxuICAgIG5vZGUuZGV0YWlsQWN0aXZlID0gIW5vZGUuZGV0YWlsQWN0aXZlO1xuICB9XG5cbiAgaW52b2tlUm93QWN0aW9uR290b0RldGFpbChub2RlOiBPbmVSb3dOb2RlPFQ+LCBjb2x1bW46IE9uZUNvbHVtbkRlZjxUPikge1xuXG4gICAgbGV0IGRhdGE6IE9uZUdyaWRSb3dBY3Rpb25FdmVudCA9IHsgbm9kZSwgY29sdW1uLCBkYXRhOiBub2RlLmRhdGEsIHJvd0luZGV4OiBub2RlLnJvd0luZGV4LCBncmlkVHlwZTogbnVsbCB9O1xuXG4gICAgaWYgKHRoaXMubWFzdGVyRGV0YWlsKSB7XG5cbiAgICAgIGRhdGEgPSB7IC4uLmRhdGEsIGdyaWRUeXBlOiB0aGlzLmdyaWRUeXBlLCBtYXN0ZXJOb2RlOiB0aGlzLm1hc3Rlck5vZGUgfTtcbiAgICB9XG5cbiAgICB0aGlzLm9uUm93R290b0RldGFpbC5lbWl0KGRhdGEpO1xuICB9XG5cbiAgaW52b2tlUm93QWN0aW9uQWRkTmV3KG5vZGU6IE9uZVJvd05vZGU8VD4sIGNvbHVtbjogT25lQ29sdW1uRGVmPFQ+KSB7XG5cbiAgICBsZXQgZGF0YTogT25lR3JpZFJvd0FjdGlvbkV2ZW50ID0geyBub2RlLCBjb2x1bW4sIGRhdGE6IG5vZGUuZGF0YSwgcm93SW5kZXg6IG5vZGUucm93SW5kZXgsIGdyaWRUeXBlOiBudWxsIH07XG5cbiAgICBpZiAodGhpcy5tYXN0ZXJEZXRhaWwpIHtcblxuICAgICAgZGF0YSA9IHsgLi4uZGF0YSwgZ3JpZFR5cGU6IHRoaXMuZ3JpZFR5cGUsIG1hc3Rlck5vZGU6IHRoaXMubWFzdGVyTm9kZSB9O1xuICAgIH1cblxuICAgIHRoaXMub25Sb3dBZGROZXcuZW1pdChkYXRhKTtcbiAgfVxuXG4gIGludm9rZVJvd0FjdGlvblZpZXcobm9kZTogT25lUm93Tm9kZTxUPiwgY29sdW1uOiBPbmVDb2x1bW5EZWY8VD4pIHtcblxuICAgIGxldCBkYXRhOiBPbmVHcmlkUm93QWN0aW9uRXZlbnQgPSB7IG5vZGUsIGNvbHVtbiwgZGF0YTogbm9kZS5kYXRhLCByb3dJbmRleDogbm9kZS5yb3dJbmRleCwgZ3JpZFR5cGU6IG51bGwgfTtcblxuICAgIGlmICh0aGlzLm1hc3RlckRldGFpbCkge1xuXG4gICAgICBkYXRhID0geyAuLi5kYXRhLCBncmlkVHlwZTogdGhpcy5ncmlkVHlwZSwgbWFzdGVyTm9kZTogdGhpcy5tYXN0ZXJOb2RlIH07XG4gICAgfVxuXG4gICAgdGhpcy5vblJvd1ZpZXcuZW1pdChkYXRhKTtcbiAgfVxuXG4gIGludm9rZVJvd0FjdGlvbkxvY2F0aW9uKG5vZGU6IE9uZVJvd05vZGU8VD4sIGNvbHVtbjogT25lQ29sdW1uRGVmPFQ+KSB7XG5cbiAgICBsZXQgZGF0YTogT25lR3JpZFJvd0FjdGlvbkV2ZW50ID0geyBub2RlLCBjb2x1bW4sIGRhdGE6IG5vZGUuZGF0YSwgcm93SW5kZXg6IG5vZGUucm93SW5kZXgsIGdyaWRUeXBlOiBudWxsIH07XG5cbiAgICBpZiAodGhpcy5tYXN0ZXJEZXRhaWwpIHtcblxuICAgICAgZGF0YSA9IHsgLi4uZGF0YSwgZ3JpZFR5cGU6IHRoaXMuZ3JpZFR5cGUsIG1hc3Rlck5vZGU6IHRoaXMubWFzdGVyTm9kZSB9O1xuICAgIH1cblxuICAgIHRoaXMub25Sb3dMb2NhdGlvbi5lbWl0KGRhdGEpO1xuICB9XG5cbiAgaW52b2tlUm93QWN0aW9uRG9jdW1lbnQobm9kZTogT25lUm93Tm9kZTxUPiwgY29sdW1uOiBPbmVDb2x1bW5EZWY8VD4pIHtcblxuICAgIGxldCBkYXRhOiBPbmVHcmlkUm93QWN0aW9uRXZlbnQgPSB7IG5vZGUsIGNvbHVtbiwgZGF0YTogbm9kZS5kYXRhLCByb3dJbmRleDogbm9kZS5yb3dJbmRleCwgZ3JpZFR5cGU6IG51bGwgfTtcblxuICAgIGlmICh0aGlzLm1hc3RlckRldGFpbCkge1xuXG4gICAgICBkYXRhID0geyAuLi5kYXRhLCBncmlkVHlwZTogdGhpcy5ncmlkVHlwZSwgbWFzdGVyTm9kZTogdGhpcy5tYXN0ZXJOb2RlIH07XG4gICAgfVxuXG4gICAgdGhpcy5vblJvd0RvY3VtZW50LmVtaXQoZGF0YSk7XG4gIH1cblxuICBpbnZva2VSb3dBY3Rpb25Db3B5KG5vZGU6IE9uZVJvd05vZGU8VD4sIGNvbHVtbjogT25lQ29sdW1uRGVmPFQ+KSB7XG5cbiAgICBsZXQgZGF0YTogT25lR3JpZFJvd0FjdGlvbkV2ZW50ID0geyBub2RlLCBjb2x1bW4sIGRhdGE6IG5vZGUuZGF0YSwgcm93SW5kZXg6IG5vZGUucm93SW5kZXgsIGdyaWRUeXBlOiBudWxsIH07XG5cbiAgICBpZiAodGhpcy5tYXN0ZXJEZXRhaWwpIHtcblxuICAgICAgZGF0YSA9IHsgLi4uZGF0YSwgZ3JpZFR5cGU6IHRoaXMuZ3JpZFR5cGUsIG1hc3Rlck5vZGU6IHRoaXMubWFzdGVyTm9kZSB9O1xuICAgIH1cblxuICAgIHRoaXMub25Sb3dDb3B5LmVtaXQoZGF0YSk7XG4gIH1cblxuICBpbnZva2VSb3dBY3Rpb25EZWxldGUobm9kZTogT25lUm93Tm9kZTxUPiwgY29sdW1uOiBPbmVDb2x1bW5EZWY8VD4pIHtcblxuICAgIGxldCBkYXRhOiBPbmVHcmlkUm93QWN0aW9uRXZlbnQgPSB7IG5vZGUsIGNvbHVtbiwgZGF0YTogbm9kZS5kYXRhLCByb3dJbmRleDogbm9kZS5yb3dJbmRleCwgZ3JpZFR5cGU6IG51bGwgfTtcblxuICAgIGlmICh0aGlzLm1hc3RlckRldGFpbCkge1xuXG4gICAgICBkYXRhID0geyAuLi5kYXRhLCBncmlkVHlwZTogdGhpcy5ncmlkVHlwZSwgbWFzdGVyTm9kZTogdGhpcy5tYXN0ZXJOb2RlIH07XG4gICAgfVxuXG4gICAgdGhpcy5vblJvd0RlbGV0ZS5lbWl0KGRhdGEpO1xuICB9XG5cbiAgaW52b2tlUm93QWN0aW9uR290b0xpc3Qobm9kZTogT25lUm93Tm9kZTxUPiwgY29sdW1uOiBPbmVDb2x1bW5EZWY8VD4pIHtcblxuICAgIGxldCBkYXRhOiBPbmVHcmlkUm93QWN0aW9uRXZlbnQgPSB7IG5vZGUsIGNvbHVtbiwgZGF0YTogbm9kZS5kYXRhLCByb3dJbmRleDogbm9kZS5yb3dJbmRleCwgZ3JpZFR5cGU6IG51bGwgfTtcblxuICAgIGlmICh0aGlzLm1hc3RlckRldGFpbCkge1xuXG4gICAgICBkYXRhID0geyAuLi5kYXRhLCBncmlkVHlwZTogdGhpcy5ncmlkVHlwZSwgbWFzdGVyTm9kZTogdGhpcy5tYXN0ZXJOb2RlIH07XG4gICAgfVxuXG4gICAgdGhpcy5vblJvd0dvdG9MaXN0LmVtaXQoZGF0YSk7XG4gIH1cblxuICBpbnZva2VSb3dBY3Rpb25FZGl0KG5vZGU6IE9uZVJvd05vZGU8VD4sIGNvbHVtbjogT25lQ29sdW1uRGVmPFQ+KSB7XG5cbiAgICBsZXQgZGF0YTogT25lR3JpZFJvd0FjdGlvbkV2ZW50ID0geyBub2RlLCBjb2x1bW4sIGRhdGE6IG5vZGUuZGF0YSwgcm93SW5kZXg6IG5vZGUucm93SW5kZXgsIGdyaWRUeXBlOiBudWxsIH07XG5cbiAgICBpZiAodGhpcy5tYXN0ZXJEZXRhaWwpIHtcblxuICAgICAgZGF0YSA9IHsgLi4uZGF0YSwgZ3JpZFR5cGU6IHRoaXMuZ3JpZFR5cGUsIG1hc3Rlck5vZGU6IHRoaXMubWFzdGVyTm9kZSB9O1xuICAgIH1cblxuICAgIHRoaXMub25Sb3dFZGl0LmVtaXQoZGF0YSk7XG4gIH1cblxuICBpbnZva2VSb3dBY3Rpb25QcmludChub2RlOiBPbmVSb3dOb2RlPFQ+LCBjb2x1bW46IE9uZUNvbHVtbkRlZjxUPikge1xuXG4gICAgbGV0IGRhdGE6IE9uZUdyaWRSb3dBY3Rpb25FdmVudCA9IHsgbm9kZSwgY29sdW1uLCBkYXRhOiBub2RlLmRhdGEsIHJvd0luZGV4OiBub2RlLnJvd0luZGV4LCBncmlkVHlwZTogbnVsbCB9O1xuXG4gICAgaWYgKHRoaXMubWFzdGVyRGV0YWlsKSB7XG5cbiAgICAgIGRhdGEgPSB7IC4uLmRhdGEsIGdyaWRUeXBlOiB0aGlzLmdyaWRUeXBlLCBtYXN0ZXJOb2RlOiB0aGlzLm1hc3Rlck5vZGUgfTtcbiAgICB9XG5cbiAgICB0aGlzLm9uUm93UHJpbnQuZW1pdChkYXRhKTtcbiAgfVxuXG4gIGludm9rZVJvd0FjdGlvbkhpc3Rvcnkobm9kZTogT25lUm93Tm9kZTxUPiwgY29sdW1uOiBPbmVDb2x1bW5EZWY8VD4pIHtcblxuICAgIGxldCBkYXRhOiBPbmVHcmlkUm93QWN0aW9uRXZlbnQgPSB7IG5vZGUsIGNvbHVtbiwgZGF0YTogbm9kZS5kYXRhLCByb3dJbmRleDogbm9kZS5yb3dJbmRleCwgZ3JpZFR5cGU6IG51bGwgfTtcblxuICAgIGlmICh0aGlzLm1hc3RlckRldGFpbCkge1xuXG4gICAgICBkYXRhID0geyAuLi5kYXRhLCBncmlkVHlwZTogdGhpcy5ncmlkVHlwZSwgbWFzdGVyTm9kZTogdGhpcy5tYXN0ZXJOb2RlIH07XG4gICAgfVxuXG4gICAgdGhpcy5vblJvd0hpc3RvcnkuZW1pdChkYXRhKTtcbiAgfVxuXG4gIGludm9rZVJvd0FjdGlvbk9wdGlvbihub2RlOiBPbmVSb3dOb2RlPFQ+LCBjb2x1bW46IE9uZUNvbHVtbkRlZjxUPikge1xuXG4gICAgbGV0IGRhdGE6IE9uZUdyaWRSb3dBY3Rpb25FdmVudCA9IHsgbm9kZSwgY29sdW1uLCBkYXRhOiBub2RlLmRhdGEsIHJvd0luZGV4OiBub2RlLnJvd0luZGV4LCBncmlkVHlwZTogbnVsbCB9O1xuXG4gICAgaWYgKHRoaXMubWFzdGVyRGV0YWlsKSB7XG5cbiAgICAgIGRhdGEgPSB7IC4uLmRhdGEsIGdyaWRUeXBlOiB0aGlzLmdyaWRUeXBlLCBtYXN0ZXJOb2RlOiB0aGlzLm1hc3Rlck5vZGUgfTtcbiAgICB9XG5cbiAgICB0aGlzLm9uUm93T3B0aW9uLmVtaXQoZGF0YSk7XG4gIH1cblxuICBpbnZva2VSb3dBY3Rpb25MYW5ndWFnZShub2RlOiBPbmVSb3dOb2RlPFQ+LCBjb2x1bW46IE9uZUNvbHVtbkRlZjxUPikge1xuXG4gICAgbGV0IGRhdGE6IE9uZUdyaWRSb3dBY3Rpb25FdmVudCA9IHsgbm9kZSwgY29sdW1uLCBkYXRhOiBub2RlLmRhdGEsIHJvd0luZGV4OiBub2RlLnJvd0luZGV4LCBncmlkVHlwZTogbnVsbCB9O1xuXG4gICAgaWYgKHRoaXMubWFzdGVyRGV0YWlsKSB7XG5cbiAgICAgIGRhdGEgPSB7IC4uLmRhdGEsIGdyaWRUeXBlOiB0aGlzLmdyaWRUeXBlLCBtYXN0ZXJOb2RlOiB0aGlzLm1hc3Rlck5vZGUgfTtcbiAgICB9XG5cbiAgICB0aGlzLm9uUm93TGFuZ3VhZ2UuZW1pdChkYXRhKTtcbiAgfVxuXG4gIGludm9rZVJvd0FjdGlvbkNlbGxPcHRpb24obm9kZTogT25lUm93Tm9kZTxUPiwgY29sdW1uOiBPbmVDb2x1bW5EZWY8VD4pIHtcblxuICAgIGxldCBkYXRhOiBPbmVHcmlkUm93QWN0aW9uRXZlbnQgPSB7IG5vZGUsIGNvbHVtbiwgZGF0YTogbm9kZS5kYXRhLCByb3dJbmRleDogbm9kZS5yb3dJbmRleCwgZ3JpZFR5cGU6IG51bGwgfTtcblxuICAgIGlmICh0aGlzLm1hc3RlckRldGFpbCkge1xuXG4gICAgICBkYXRhID0geyAuLi5kYXRhLCBncmlkVHlwZTogdGhpcy5ncmlkVHlwZSwgbWFzdGVyTm9kZTogdGhpcy5tYXN0ZXJOb2RlIH07XG4gICAgfVxuXG4gICAgdGhpcy5vblJvd0NlbGxPcHRpb24uZW1pdChkYXRhKTtcbiAgfVxufVxuIiwiQGlmICgoY2VsbFJlbmRlcmVyUGFyYW1zICYmIG5vZGU/LmxlYWYgJiYgIWNvbHVtbj8uYXV0b0dyb3VwRmllbGQgJiYgIShub2RlLmdyb3VwICYmIG5vZGUubGVhZkdyb3VwKSkgfHwgKGNvbHVtbj8ucm93QWN0aW9uTGV2ZWxzPy5pbmNsdWRlcyhub2RlLmxldmVsKSAmJiBjb2x1bW4/LmF1dG9Hcm91cEZpZWxkKSkge1xuICAgIDxkaXYgY2xhc3M9XCJidG4tYWN0aW9uLWNvbnRhaW5lclwiPlxuXG4gICAgICAgIDwhLS0gRXhwYW5zaW9uIEJ1dHRvbiBTdGF0dXMgLS0+XG4gICAgICAgICBAaWYgKChjZWxsUmVuZGVyZXJQYXJhbXM/LmRldGFpbEFjdGl2ZUJ1dHRvblN0YXR1cyA9PSAxICYmICEoZGV0YWlsQWN0aXZlRXhjbHVkZUxldmVscz8uaGFzKG5vZGUubGV2ZWwpKSkpIHtcbiAgICAgICAgICAgIDxhXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJtZS0yXCJcbiAgICAgICAgICAgICAgICBbYXR0ci5hcmlhLWxhYmVsXT1cIm5vZGUuZGV0YWlsQWN0aXZlID8gJ0NvbGxhcHNlIHJvdycgOiAnRXhwYW5kIHJvdydcIlxuICAgICAgICAgICAgICAgIFt0aXRsZV09XCJub2RlLmRldGFpbEFjdGl2ZSA/ICdDb2xsYXBzZScgOiAnRXhwYW5kJ1wiXG4gICAgICAgICAgICAgICAgKGNsaWNrKT1cImludm9rZVJvd1RvZ2dsZURldGFpbEFjdGl2ZUV4cGFuZChub2RlKVwiPlxuXG4gICAgICAgICAgICAgICAgPGkgY2xhc3M9XCJiaVwiIFtuZ0NsYXNzXT1cInsgJ2JpLWNoZXZyb24tZG93bic6IG5vZGUuZGV0YWlsQWN0aXZlLCAnYmktY2hldnJvbi1yaWdodCc6ICFub2RlLmRldGFpbEFjdGl2ZSB9XCI+PC9pPlxuICAgICAgICAgICAgPC9hPlxuICAgICAgICB9XG5cbiAgICAgICAgPCEtLSBHb3RvIERldGFpbCBCdXR0b24gU3RhdHVzIC0tPlxuICAgICAgICBAaWYgKChjZWxsUmVuZGVyZXJQYXJhbXM/LmdvdG9EZXRhaWxCdXR0b25TdGF0dXMgPT0gMSAmJiAhKGdvdG9EZXRhaWxFeGNsdWRlTGV2ZWxzPy5oYXMobm9kZS5sZXZlbCkpKSAmJiAoIWNvbHVtbj8uaGlkZUFjdGlvbkJ1dHRvbiB8fCBhbGxvd2VkRWRpdCkpIHtcbiAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgICAgICBjbGFzcz1cImJ0bi1hY3Rpb24gYnRuLWFjdGlvbi1wcmltYXJ5XCJcbiAgICAgICAgICAgICAgICAoY2xpY2spPVwiaW52b2tlUm93QWN0aW9uR290b0RldGFpbChub2RlLCBjb2x1bW4pXCI+XG5cbiAgICAgICAgICAgICAgICA8aSBjbGFzcz1cImJpIGJpLWxpc3QtdGFza1wiPjwvaT5cbiAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICB9XG5cbiAgICAgICAgPCEtLSBBZGQgTmV3IEJ1dHRvbiBTdGF0dXMgLS0+XG4gICAgICAgIEBpZiAoKGNlbGxSZW5kZXJlclBhcmFtcz8uYWRkTmV3QnV0dG9uU3RhdHVzID09IDEgJiYgIShhZGROZXdFeGNsdWRlTGV2ZWxzPy5oYXMobm9kZS5sZXZlbCkpKSAmJiAoIWNvbHVtbj8uaGlkZUFjdGlvbkJ1dHRvbiB8fCBhbGxvd2VkRWRpdCkpIHtcbiAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgICAgICBjbGFzcz1cImJ0bi1hY3Rpb24gYnRuLWFjdGlvbi1wcmltYXJ5XCJcbiAgICAgICAgICAgICAgICBbY2xhc3MuZGlzYWJsZWRdPVwiIWFsbG93ZWRFZGl0XCJcbiAgICAgICAgICAgICAgICAoY2xpY2spPVwiaW52b2tlUm93QWN0aW9uQWRkTmV3KG5vZGUsIGNvbHVtbilcIj5cblxuICAgICAgICAgICAgICAgIDxpIGNsYXNzPVwiYmkgYmktcGx1c1wiPjwvaT5cbiAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICB9XG5cbiAgICAgICAgPCEtLSBWaWV3IEJ1dHRvbiBTdGF0dXMgLS0+XG4gICAgICAgIEBpZiAoY2VsbFJlbmRlcmVyUGFyYW1zPy52aWV3QnV0dG9uU3RhdHVzID09IDEpIHtcbiAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgICAgICBjbGFzcz1cImJ0bi1hY3Rpb24gYnRuLWFjdGlvbi1wcmltYXJ5XCJcbiAgICAgICAgICAgICAgICAoY2xpY2spPVwiaW52b2tlUm93QWN0aW9uVmlldyhub2RlLCBjb2x1bW4pXCI+XG5cbiAgICAgICAgICAgICAgICA8aSBjbGFzcz1cImJpIGJpLWV5ZVwiPjwvaT5cbiAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICB9XG4gICAgICAgIEBpZiAoY2VsbFJlbmRlcmVyUGFyYW1zPy5sb2NhdGlvbkJ1dHRvblN0YXR1cyA9PSAxKSB7XG4gICAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJidG4tYWN0aW9uIGJ0bi1hY3Rpb24tcHJpbWFyeVwiXG4gICAgICAgICAgICAgICAgKGNsaWNrKT1cImludm9rZVJvd0FjdGlvbkxvY2F0aW9uKG5vZGUsIGNvbHVtbilcIj5cblxuICAgICAgICAgICAgICAgIDxpIGNsYXNzPVwiYmkgYmktZ2VvLWFsdFwiPjwvaT5cbiAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICB9XG5cbiAgICAgICAgPCEtLSBEb2N1bWVudCBCdXR0b24gU3RhdHVzIC0tPlxuICAgICAgICBAaWYgKGNlbGxSZW5kZXJlclBhcmFtcz8uZG9jdW1lbnRCdXR0b25TdGF0dXMgPT0gMSkge1xuICAgICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAgICAgICAgIGNsYXNzPVwiYnRuLWFjdGlvbiBidG4tYWN0aW9uLXByaW1hcnlcIlxuICAgICAgICAgICAgICAgIChjbGljayk9XCJpbnZva2VSb3dBY3Rpb25Eb2N1bWVudChub2RlLCBjb2x1bW4pXCI+XG5cbiAgICAgICAgICAgICAgICA8aSBjbGFzcz1cImJpIGJpLWZpbGUtZWFybWFyay10ZXh0XCI+PC9pPlxuICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgIH1cblxuICAgICAgICA8IS0tIENvcHkgQnV0dG9uIFN0YXR1cyAtLT5cbiAgICAgICAgQGlmIChjZWxsUmVuZGVyZXJQYXJhbXM/LmNvcHlCdXR0b25TdGF0dXMgPT0gMSkge1xuICAgICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAgICAgICAgIGNsYXNzPVwiYnRuLWFjdGlvbiBidG4tYWN0aW9uLXByaW1hcnlcIlxuICAgICAgICAgICAgICAgIChjbGljayk9XCJpbnZva2VSb3dBY3Rpb25Db3B5KG5vZGUsIGNvbHVtbilcIj5cblxuICAgICAgICAgICAgICAgIDxpIGNsYXNzPVwiYmkgYmktZmlsZXNcIj48L2k+XG4gICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgfVxuXG5cbiAgICAgICAgPCEtLSBEZWxldGUgQnV0dG9uIFN0YXR1cyAtLT5cbiAgICAgICAgIEBpZiAoY2VsbFJlbmRlcmVyUGFyYW1zPy5kZWxldGVCdXR0b25TdGF0dXMgPT0gMSAmJiAoIWNvbHVtbj8uaGlkZUFjdGlvbkJ1dHRvbiB8fCBhbGxvd2VkRWRpdCkpIHtcbiAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgICAgICBjbGFzcz1cImJ0bi1hY3Rpb24gYnRuLWFjdGlvbi1kYW5nZXJcIlxuICAgICAgICAgICAgICAgIFtjbGFzcy5kaXNhYmxlZF09XCIhYWxsb3dlZEVkaXRcIlxuICAgICAgICAgICAgICAgIChjbGljayk9XCJpbnZva2VSb3dBY3Rpb25EZWxldGUobm9kZSwgY29sdW1uKVwiPlxuXG4gICAgICAgICAgICAgICAgPGkgY2xhc3M9XCJiaSBiaS10cmFzaDNcIj48L2k+XG4gICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgfVxuXG4gICAgICAgIDwhLS0gR290byBMaXN0IEJ1dHRvbiBTdGF0dXMgLS0+XG4gICAgICAgIEBpZiAoY2VsbFJlbmRlcmVyUGFyYW1zPy5nb3RvTGlzdEJ1dHRvblN0YXR1cyA9PT0gMSkge1xuICAgICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAgICAgICAgIGNsYXNzPVwiYnRuLWFjdGlvbiBidG4tYWN0aW9uLXN1Y2Nlc3NcIlxuICAgICAgICAgICAgICAgIChjbGljayk9XCJpbnZva2VSb3dBY3Rpb25Hb3RvTGlzdChub2RlLCBjb2x1bW4pXCI+XG5cbiAgICAgICAgICAgICAgICA8aSBjbGFzcz1cImJpIGJpLWxpc3QtdWxcIj48L2k+XG4gICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgfVxuXG4gICAgICAgIDwhLS0gRWRpdCBCdXR0b24gU3RhdHVzIC0tPlxuICAgICAgICBAaWYgKGNlbGxSZW5kZXJlclBhcmFtcz8uZWRpdEJ1dHRvblN0YXR1cyA9PT0gMSkge1xuICAgICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAgICAgICAgIGNsYXNzPVwiYnRuLWFjdGlvbiBidG4tYWN0aW9uLXByaW1hcnlcIlxuICAgICAgICAgICAgICAgIFtjbGFzcy5kaXNhYmxlZF09XCJub2RlIHwgY2VsbERpc2FibGVSZXNvbHZlcjpjb2x1bW46Y29udGV4dDphbGxvd2VkRWRpdFwiXG4gICAgICAgICAgICAgICAgKGNsaWNrKT1cImludm9rZVJvd0FjdGlvbkVkaXQobm9kZSwgY29sdW1uKVwiPlxuXG4gICAgICAgICAgICAgICAgPGkgY2xhc3M9XCJiaSBiaS1wZW5jaWxcIj48L2k+XG4gICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgfVxuXG4gICAgICAgIDwhLS0gUHJpbnQgQnV0dG9uIFN0YXR1cyAtLT5cbiAgICAgICAgQGlmIChjZWxsUmVuZGVyZXJQYXJhbXM/LnByaW50QnV0dG9uU3RhdHVzID09PSAxKSB7XG4gICAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJidG4tYWN0aW9uIGJ0bi1hY3Rpb24tcHJpbWFyeVwiXG4gICAgICAgICAgICAgICAgW2NsYXNzLmRpc2FibGVkXT1cIm5vZGUgfCBjZWxsRGlzYWJsZVJlc29sdmVyOmNvbHVtbjpjb250ZXh0OmFsbG93ZWRFZGl0XCJcbiAgICAgICAgICAgICAgICAoY2xpY2spPVwiaW52b2tlUm93QWN0aW9uUHJpbnQobm9kZSwgY29sdW1uKVwiPlxuXG4gICAgICAgICAgICAgICAgPGkgY2xhc3M9XCJiaSBiaS1wcmludGVyXCI+PC9pPlxuICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgIH1cblxuICAgICAgICA8IS0tIEhpc3RvcnkgQnV0dG9uIFN0YXR1cyAtLT5cbiAgICAgICAgQGlmIChjZWxsUmVuZGVyZXJQYXJhbXM/Lmhpc3RvcnlCdXR0b25TdGF0dXMgPT09IDEpIHtcbiAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgICAgICBjbGFzcz1cImJ0bi1hY3Rpb24gYnRuLWFjdGlvbi1wcmltYXJ5XCJcbiAgICAgICAgICAgICAgICBbY2xhc3MuZGlzYWJsZWRdPVwibm9kZSB8IGNlbGxEaXNhYmxlUmVzb2x2ZXI6Y29sdW1uOmNvbnRleHQ6YWxsb3dlZEVkaXRcIlxuICAgICAgICAgICAgICAgIChjbGljayk9XCJpbnZva2VSb3dBY3Rpb25IaXN0b3J5KG5vZGUsIGNvbHVtbilcIj5cblxuICAgICAgICAgICAgICAgIDxpIGNsYXNzPVwiYmkgYmktY2xvY2staGlzdG9yeVwiPjwvaT5cbiAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICB9XG5cbiAgICAgICAgPCEtLSBPcHRpb24gQnV0dG9uIFN0YXR1cyAtLT5cbiAgICAgICAgQGlmIChjZWxsUmVuZGVyZXJQYXJhbXM/Lm9wdGlvbkJ1dHRvblN0YXR1cyA9PT0gMSkge1xuICAgICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAgICAgICAgIGNsYXNzPVwiYnRuLWFjdGlvbiBidG4tYWN0aW9uLXByaW1hcnlcIlxuICAgICAgICAgICAgICAgIFtjbGFzcy5kaXNhYmxlZF09XCJub2RlIHwgY2VsbERpc2FibGVSZXNvbHZlcjpjb2x1bW46Y29udGV4dDphbGxvd2VkRWRpdFwiXG4gICAgICAgICAgICAgICAgKGNsaWNrKT1cImludm9rZVJvd0FjdGlvbk9wdGlvbihub2RlLCBjb2x1bW4pXCI+XG5cbiAgICAgICAgICAgICAgICA8aSBjbGFzcz1cImJpIGJpLXRocmVlLWRvdHMtdmVydGljYWxcIj48L2k+XG4gICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgfVxuXG4gICAgICAgIDwhLS0gTGFuZ3VhZ2UgQnV0dG9uIFN0YXR1cyAtLT5cbiAgICAgICAgQGlmIChjZWxsUmVuZGVyZXJQYXJhbXM/Lmxhbmd1YWdlQnV0dG9uU3RhdHVzID09PSAxKSB7XG4gICAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJidG4tYWN0aW9uIGJ0bi1hY3Rpb24tcHJpbWFyeVwiXG4gICAgICAgICAgICAgICAgW2NsYXNzLmRpc2FibGVkXT1cIm5vZGUgfCBjZWxsRGlzYWJsZVJlc29sdmVyOmNvbHVtbjpjb250ZXh0OmFsbG93ZWRFZGl0XCJcbiAgICAgICAgICAgICAgICAoY2xpY2spPVwiaW52b2tlUm93QWN0aW9uTGFuZ3VhZ2Uobm9kZSwgY29sdW1uKVwiPlxuXG4gICAgICAgICAgICAgICAgPGkgY2xhc3M9XCJiaSBiaS10cmFuc2xhdGVcIj48L2k+XG4gICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgfVxuXG4gICAgICAgIDwhLS0gQ2VsbCBPcHRvaW9uIEJ1dHRvbiBTdGF0dXMgKENvbnRleHQgTWVudSkgLS0+XG4gICAgICAgIEBpZiAoY2VsbFJlbmRlcmVyUGFyYW1zPy5jZWxsT3B0aW9uQnV0dG9uU3RhdHVzID09PSAxKSB7XG4gICAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJidG4tYWN0aW9uIGJ0bi1hY3Rpb24tcHJpbWFyeSBib3JkZXItMCB0ZXh0LWJvZHlcIlxuICAgICAgICAgICAgICAgIFtzdHlsZS5iYWNrZ3JvdW5kXT1cIid0cmFuc3BhcmVudCdcIlxuICAgICAgICAgICAgICAgIFtjbGFzcy5kaXNhYmxlZF09XCJub2RlIHwgY2VsbERpc2FibGVSZXNvbHZlcjpjb2x1bW46Y29udGV4dDphbGxvd2VkRWRpdFwiXG4gICAgICAgICAgICAgICAgKGNsaWNrKT1cImludm9rZVJvd0FjdGlvbkNlbGxPcHRpb24obm9kZSwgY29sdW1uKVwiPlxuXG4gICAgICAgICAgICAgICAgPGkgY2xhc3M9XCJiaSBiaS10aHJlZS1kb3RzLXZlcnRpY2FsXCI+PC9pPlxuICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgIH1cbiAgICA8L2Rpdj5cbn0iXX0=
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import { Component } from '@angular/core';
|
|
2
|
+
import * as i0 from "@angular/core";
|
|
3
|
+
import * as i1 from "@angular/common";
|
|
4
|
+
export class OneGridStatusComponent {
|
|
5
|
+
constructor() {
|
|
6
|
+
this.value = '';
|
|
7
|
+
this.label = 0;
|
|
8
|
+
this.type = null;
|
|
9
|
+
}
|
|
10
|
+
oneInit(params) {
|
|
11
|
+
this.params = params;
|
|
12
|
+
this.label = params?.value ?? 0;
|
|
13
|
+
this.type = this.getType(params.columnDef.field);
|
|
14
|
+
this.value = this.getLabel(this.type, this.label);
|
|
15
|
+
}
|
|
16
|
+
refresh(params) {
|
|
17
|
+
return false;
|
|
18
|
+
}
|
|
19
|
+
getType(field) {
|
|
20
|
+
return field === 'enableStatus' || field === 'activeStatus' || field === 'operationActiveStatus' ? field : null;
|
|
21
|
+
}
|
|
22
|
+
getLabel(type, status) {
|
|
23
|
+
if (!type)
|
|
24
|
+
return 'N/A';
|
|
25
|
+
const labels = { enableStatus: ['Disabled', 'Enabled'], activeStatus: ['Inactive', 'Active'], operationActiveStatus: ['Inactive', 'Active'] };
|
|
26
|
+
return labels[type][status === 1 ? 1 : 0];
|
|
27
|
+
}
|
|
28
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: OneGridStatusComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
29
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: OneGridStatusComponent, selector: "one-grid-status", ngImport: i0, template: "<span class=\"one-cell-status\"\n [style.width.px]=\"params.columnDef?.width\"\n [style.min-width.px]=\"params.columnDef?.minWidth\"\n [style.max-width.px]=\"params.columnDef?.maxWidth\"\n >\n <span class=\"one-cell-status-body\" [ngClass]=\"label === 1 ? 'one-success-bg' : 'one-warning-bg'\">\n {{ value }}\n </span>\n</span>\n", styles: [""], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }] }); }
|
|
30
|
+
}
|
|
31
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: OneGridStatusComponent, decorators: [{
|
|
32
|
+
type: Component,
|
|
33
|
+
args: [{ standalone: false, selector: 'one-grid-status', template: "<span class=\"one-cell-status\"\n [style.width.px]=\"params.columnDef?.width\"\n [style.min-width.px]=\"params.columnDef?.minWidth\"\n [style.max-width.px]=\"params.columnDef?.maxWidth\"\n >\n <span class=\"one-cell-status-body\" [ngClass]=\"label === 1 ? 'one-success-bg' : 'one-warning-bg'\">\n {{ value }}\n </span>\n</span>\n" }]
|
|
34
|
+
}] });
|
|
35
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib25lLWdyaWQtc3RhdHVzLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL29uZS1ncmlkL3NyYy9saWIvY29tcG9uZW50cy9vbmUtZ3JpZC1zdGF0dXMvb25lLWdyaWQtc3RhdHVzLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL29uZS1ncmlkL3NyYy9saWIvY29tcG9uZW50cy9vbmUtZ3JpZC1zdGF0dXMvb25lLWdyaWQtc3RhdHVzLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7OztBQVUxQyxNQUFNLE9BQU8sc0JBQXNCO0lBTm5DO1FBU1ksVUFBSyxHQUFHLEVBQUUsQ0FBQztRQUNYLFVBQUssR0FBRyxDQUFDLENBQUM7UUFDVixTQUFJLEdBQXFFLElBQUksQ0FBQztLQTZCekY7SUEzQkMsT0FBTyxDQUFDLE1BQTZCO1FBRW5DLElBQUksQ0FBQyxNQUFNLEdBQUcsTUFBTSxDQUFDO1FBQ3JCLElBQUksQ0FBQyxLQUFLLEdBQUcsTUFBTSxFQUFFLEtBQUssSUFBSSxDQUFDLENBQUM7UUFFaEMsSUFBSSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDakQsSUFBSSxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ3BELENBQUM7SUFFRCxPQUFPLENBQUMsTUFBNkI7UUFFbkMsT0FBTyxLQUFLLENBQUM7SUFDZixDQUFDO0lBRU8sT0FBTyxDQUFDLEtBQWE7UUFFM0IsT0FBTyxLQUFLLEtBQUssY0FBYyxJQUFJLEtBQUssS0FBSyxjQUFjLElBQUksS0FBSyxLQUFLLHVCQUF1QixDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQztJQUNsSCxDQUFDO0lBRU8sUUFBUSxDQUFDLElBQXNFLEVBQUUsTUFBYztRQUVyRyxJQUFJLENBQUMsSUFBSTtZQUFFLE9BQU8sS0FBSyxDQUFDO1FBRXhCLE1BQU0sTUFBTSxHQUFHLEVBQUUsWUFBWSxFQUFFLENBQUMsVUFBVSxFQUFFLFNBQVMsQ0FBQyxFQUFFLFlBQVksRUFBRSxDQUFDLFVBQVUsRUFBRSxRQUFRLENBQUMsRUFBRSxxQkFBcUIsRUFBRSxDQUFDLFVBQVUsRUFBRSxRQUFRLENBQUMsRUFBVyxDQUFDO1FBRXZKLE9BQU8sTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDLE1BQU0sS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDNUMsQ0FBQzsrR0FqQ1Usc0JBQXNCO21HQUF0QixzQkFBc0IsdURDVm5DLG9XQVNBOzs0RkRDYSxzQkFBc0I7a0JBTmxDLFNBQVM7aUNBQ0ksS0FBSyxZQUNQLGlCQUFpQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgT25lQ2VsbFJlbmRlcmVyQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vY29yZS9tb2RlbHMvb25lLXRyZWUtZGF0YS5tb2RlbCc7XG5pbXBvcnQgeyBPbmVDZWxsUmVuZGVyZXJQYXJhbXMgfSBmcm9tICcuLi8uLi9jb3JlL21vZGVscy9vbmUtY29sdW1uLWRlZi10eXBlcy5tb2RlbCc7XG5cbkBDb21wb25lbnQoe1xuICBzdGFuZGFsb25lOiBmYWxzZSxcbiAgc2VsZWN0b3I6ICdvbmUtZ3JpZC1zdGF0dXMnLFxuICB0ZW1wbGF0ZVVybDogJy4vb25lLWdyaWQtc3RhdHVzLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmw6ICcuL29uZS1ncmlkLXN0YXR1cy5jb21wb25lbnQuc2NzcycsXG59KVxuZXhwb3J0IGNsYXNzIE9uZUdyaWRTdGF0dXNDb21wb25lbnQgaW1wbGVtZW50cyBPbmVDZWxsUmVuZGVyZXJDb21wb25lbnQge1xuXG4gIHByb3RlY3RlZCBwYXJhbXMhOiBPbmVDZWxsUmVuZGVyZXJQYXJhbXM7XG4gIHByb3RlY3RlZCB2YWx1ZSA9ICcnO1xuICBwcm90ZWN0ZWQgbGFiZWwgPSAwO1xuICBwcm90ZWN0ZWQgdHlwZTogJ2VuYWJsZVN0YXR1cycgfCAnYWN0aXZlU3RhdHVzJyB8ICdvcGVyYXRpb25BY3RpdmVTdGF0dXMnIHwgbnVsbCA9IG51bGw7XG5cbiAgb25lSW5pdChwYXJhbXM6IE9uZUNlbGxSZW5kZXJlclBhcmFtcyk6IHZvaWQge1xuXG4gICAgdGhpcy5wYXJhbXMgPSBwYXJhbXM7XG4gICAgdGhpcy5sYWJlbCA9IHBhcmFtcz8udmFsdWUgPz8gMDtcblxuICAgIHRoaXMudHlwZSA9IHRoaXMuZ2V0VHlwZShwYXJhbXMuY29sdW1uRGVmLmZpZWxkKTtcbiAgICB0aGlzLnZhbHVlID0gdGhpcy5nZXRMYWJlbCh0aGlzLnR5cGUsIHRoaXMubGFiZWwpO1xuICB9XG5cbiAgcmVmcmVzaChwYXJhbXM6IE9uZUNlbGxSZW5kZXJlclBhcmFtcyk6IGJvb2xlYW4ge1xuXG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXRUeXBlKGZpZWxkOiBzdHJpbmcpOiAnZW5hYmxlU3RhdHVzJyB8ICdhY3RpdmVTdGF0dXMnIHwgJ29wZXJhdGlvbkFjdGl2ZVN0YXR1cycgfCBudWxsIHtcblxuICAgIHJldHVybiBmaWVsZCA9PT0gJ2VuYWJsZVN0YXR1cycgfHwgZmllbGQgPT09ICdhY3RpdmVTdGF0dXMnIHx8IGZpZWxkID09PSAnb3BlcmF0aW9uQWN0aXZlU3RhdHVzJyA/IGZpZWxkIDogbnVsbDtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0TGFiZWwodHlwZTogJ2VuYWJsZVN0YXR1cycgfCAnYWN0aXZlU3RhdHVzJyB8ICdvcGVyYXRpb25BY3RpdmVTdGF0dXMnIHwgbnVsbCwgc3RhdHVzOiBudW1iZXIpOiBzdHJpbmcge1xuXG4gICAgaWYgKCF0eXBlKSByZXR1cm4gJ04vQSc7XG5cbiAgICBjb25zdCBsYWJlbHMgPSB7IGVuYWJsZVN0YXR1czogWydEaXNhYmxlZCcsICdFbmFibGVkJ10sIGFjdGl2ZVN0YXR1czogWydJbmFjdGl2ZScsICdBY3RpdmUnXSwgb3BlcmF0aW9uQWN0aXZlU3RhdHVzOiBbJ0luYWN0aXZlJywgJ0FjdGl2ZSddIH0gYXMgY29uc3Q7XG5cbiAgICByZXR1cm4gbGFiZWxzW3R5cGVdW3N0YXR1cyA9PT0gMSA/IDEgOiAwXTtcbiAgfVxufVxuIiwiPHNwYW4gY2xhc3M9XCJvbmUtY2VsbC1zdGF0dXNcIlxuICAgIFtzdHlsZS53aWR0aC5weF09XCJwYXJhbXMuY29sdW1uRGVmPy53aWR0aFwiXG4gICAgW3N0eWxlLm1pbi13aWR0aC5weF09XCJwYXJhbXMuY29sdW1uRGVmPy5taW5XaWR0aFwiXG4gICAgW3N0eWxlLm1heC13aWR0aC5weF09XCJwYXJhbXMuY29sdW1uRGVmPy5tYXhXaWR0aFwiXG4gICAgPlxuICAgIDxzcGFuIGNsYXNzPVwib25lLWNlbGwtc3RhdHVzLWJvZHlcIiBbbmdDbGFzc109XCJsYWJlbCA9PT0gMSA/ICdvbmUtc3VjY2Vzcy1iZycgOiAnb25lLXdhcm5pbmctYmcnXCI+XG4gICAgICAgIHt7IHZhbHVlIH19XG4gICAgPC9zcGFuPlxuPC9zcGFuPlxuIl19
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
import { Directive, HostListener, Input } from '@angular/core';
|
|
2
|
+
import * as i0 from "@angular/core";
|
|
3
|
+
export class OneCellInputValidatorDirective {
|
|
4
|
+
constructor(el) {
|
|
5
|
+
this.el = el;
|
|
6
|
+
this.regex = '';
|
|
7
|
+
this.MAX_CODE_LENGTH = 36;
|
|
8
|
+
this.KHMER_CHARACTER_RANGE = /[\u1780-\u17FF]/;
|
|
9
|
+
}
|
|
10
|
+
onKeyPress(event) {
|
|
11
|
+
let isValid = false;
|
|
12
|
+
const char = event.key;
|
|
13
|
+
const inputElement = this.el.nativeElement;
|
|
14
|
+
switch (this.validationType) {
|
|
15
|
+
case 'disabled':
|
|
16
|
+
event.preventDefault();
|
|
17
|
+
return;
|
|
18
|
+
case 'integer':
|
|
19
|
+
isValid = /^\d+$/.test(char);
|
|
20
|
+
break;
|
|
21
|
+
case 'code':
|
|
22
|
+
isValid = /[a-zA-Z\d]/.test(char);
|
|
23
|
+
if (isValid) {
|
|
24
|
+
event.preventDefault();
|
|
25
|
+
if (inputElement.value.length < this.MAX_CODE_LENGTH) {
|
|
26
|
+
inputElement.value += char.toUpperCase();
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
return;
|
|
30
|
+
case 'title':
|
|
31
|
+
isValid = /^[a-zA-Z\s\d]+$/.test(char) || this.KHMER_CHARACTER_RANGE.test(char);
|
|
32
|
+
break;
|
|
33
|
+
case 'number':
|
|
34
|
+
isValid = /^[0-9.]$/.test(char) && !(char === '.' && inputElement.value.includes('.'));
|
|
35
|
+
break;
|
|
36
|
+
case 'regex':
|
|
37
|
+
isValid = this.regex ? new RegExp(this.regex).test(char) : false;
|
|
38
|
+
break;
|
|
39
|
+
default:
|
|
40
|
+
isValid = true;
|
|
41
|
+
}
|
|
42
|
+
if (!isValid) {
|
|
43
|
+
event.preventDefault();
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
onKeyDown(event) {
|
|
47
|
+
if (this.validationType === 'disabled') {
|
|
48
|
+
event.preventDefault();
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: OneCellInputValidatorDirective, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
52
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.3.12", type: OneCellInputValidatorDirective, selector: "[oneCellInputValidator]", inputs: { validationType: "validationType", regex: "regex" }, host: { listeners: { "keypress": "onKeyPress($event)", "keydown": "onKeyDown($event)" } }, ngImport: i0 }); }
|
|
53
|
+
}
|
|
54
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: OneCellInputValidatorDirective, decorators: [{
|
|
55
|
+
type: Directive,
|
|
56
|
+
args: [{
|
|
57
|
+
standalone: false,
|
|
58
|
+
selector: '[oneCellInputValidator]'
|
|
59
|
+
}]
|
|
60
|
+
}], ctorParameters: () => [{ type: i0.ElementRef }], propDecorators: { validationType: [{
|
|
61
|
+
type: Input
|
|
62
|
+
}], regex: [{
|
|
63
|
+
type: Input
|
|
64
|
+
}], onKeyPress: [{
|
|
65
|
+
type: HostListener,
|
|
66
|
+
args: ['keypress', ['$event']]
|
|
67
|
+
}], onKeyDown: [{
|
|
68
|
+
type: HostListener,
|
|
69
|
+
args: ['keydown', ['$event']]
|
|
70
|
+
}] } });
|
|
71
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib25lLWNlbGwtaW5wdXQtdmFsaWRhdG9yLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL29uZS1ncmlkL3NyYy9saWIvY29yZS9kaXJlY3RpdmVzL29uZS1jZWxsLWlucHV0LXZhbGlkYXRvci5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBYyxZQUFZLEVBQUUsS0FBSyxFQUFFLE1BQU0sZUFBZSxDQUFDOztBQU8zRSxNQUFNLE9BQU8sOEJBQThCO0lBUXpDLFlBQW9CLEVBQWdDO1FBQWhDLE9BQUUsR0FBRixFQUFFLENBQThCO1FBTDNDLFVBQUssR0FBWSxFQUFFLENBQUM7UUFFWixvQkFBZSxHQUFXLEVBQUUsQ0FBQztRQUM3QiwwQkFBcUIsR0FBRyxpQkFBaUIsQ0FBQztJQUVKLENBQUM7SUFHeEQsVUFBVSxDQUFDLEtBQW9CO1FBRTdCLElBQUksT0FBTyxHQUFHLEtBQUssQ0FBQztRQUNwQixNQUFNLElBQUksR0FBRyxLQUFLLENBQUMsR0FBRyxDQUFDO1FBQ3ZCLE1BQU0sWUFBWSxHQUFHLElBQUksQ0FBQyxFQUFFLENBQUMsYUFBYSxDQUFDO1FBRTNDLFFBQVEsSUFBSSxDQUFDLGNBQWMsRUFBRSxDQUFDO1lBRTVCLEtBQUssVUFBVTtnQkFDYixLQUFLLENBQUMsY0FBYyxFQUFFLENBQUM7Z0JBQ3ZCLE9BQU87WUFFVCxLQUFLLFNBQVM7Z0JBQ1osT0FBTyxHQUFHLE9BQU8sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7Z0JBQzdCLE1BQU07WUFFUixLQUFLLE1BQU07Z0JBQ1QsT0FBTyxHQUFHLFlBQVksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7Z0JBQ2xDLElBQUksT0FBTyxFQUFFLENBQUM7b0JBQ1osS0FBSyxDQUFDLGNBQWMsRUFBRSxDQUFDO29CQUN2QixJQUFJLFlBQVksQ0FBQyxLQUFLLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQyxlQUFlLEVBQUUsQ0FBQzt3QkFDckQsWUFBWSxDQUFDLEtBQUssSUFBSSxJQUFJLENBQUMsV0FBVyxFQUFFLENBQUM7b0JBQzNDLENBQUM7Z0JBQ0gsQ0FBQztnQkFDRCxPQUFPO1lBRVQsS0FBSyxPQUFPO2dCQUNWLE9BQU8sR0FBRyxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksSUFBSSxDQUFDLHFCQUFxQixDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztnQkFDaEYsTUFBTTtZQUVSLEtBQUssUUFBUTtnQkFDWCxPQUFPLEdBQUcsVUFBVSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsSUFBSSxLQUFLLEdBQUcsSUFBSSxZQUFZLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDO2dCQUN2RixNQUFNO1lBRVIsS0FBSyxPQUFPO2dCQUNWLE9BQU8sR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxJQUFJLE1BQU0sQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUM7Z0JBQ2pFLE1BQU07WUFFUjtnQkFDRSxPQUFPLEdBQUcsSUFBSSxDQUFDO1FBQ25CLENBQUM7UUFFRCxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUM7WUFDYixLQUFLLENBQUMsY0FBYyxFQUFFLENBQUM7UUFDekIsQ0FBQztJQUNILENBQUM7SUFHRCxTQUFTLENBQUMsS0FBb0I7UUFFNUIsSUFBSSxJQUFJLENBQUMsY0FBYyxLQUFLLFVBQVUsRUFBRSxDQUFDO1lBRXZDLEtBQUssQ0FBQyxjQUFjLEVBQUUsQ0FBQztRQUN6QixDQUFDO0lBQ0gsQ0FBQzsrR0FqRVUsOEJBQThCO21HQUE5Qiw4QkFBOEI7OzRGQUE5Qiw4QkFBOEI7a0JBSjFDLFNBQVM7bUJBQUM7b0JBQ1QsVUFBVSxFQUFFLEtBQUs7b0JBQ2pCLFFBQVEsRUFBRSx5QkFBeUI7aUJBQ3BDOytFQUdVLGNBQWM7c0JBQXRCLEtBQUs7Z0JBQ0csS0FBSztzQkFBYixLQUFLO2dCQVFOLFVBQVU7c0JBRFQsWUFBWTt1QkFBQyxVQUFVLEVBQUUsQ0FBQyxRQUFRLENBQUM7Z0JBaURwQyxTQUFTO3NCQURSLFlBQVk7dUJBQUMsU0FBUyxFQUFFLENBQUMsUUFBUSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGlyZWN0aXZlLCBFbGVtZW50UmVmLCBIb3N0TGlzdGVuZXIsIElucHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBPbmVDZWxsVmFsaWRhdGlvblR5cGUgfSBmcm9tICcuLi9tb2RlbHMvb25lLWNvbHVtbi1kZWYtdHlwZXMubW9kZWwnO1xuXG5ARGlyZWN0aXZlKHtcbiAgc3RhbmRhbG9uZTogZmFsc2UsXG4gIHNlbGVjdG9yOiAnW29uZUNlbGxJbnB1dFZhbGlkYXRvcl0nXG59KVxuZXhwb3J0IGNsYXNzIE9uZUNlbGxJbnB1dFZhbGlkYXRvckRpcmVjdGl2ZSB7XG5cbiAgQElucHV0KCkgdmFsaWRhdGlvblR5cGU/OiBPbmVDZWxsVmFsaWRhdGlvblR5cGU7XG4gIEBJbnB1dCgpIHJlZ2V4Pzogc3RyaW5nID0gJyc7XG5cbiAgcHJpdmF0ZSByZWFkb25seSBNQVhfQ09ERV9MRU5HVEg6IG51bWJlciA9IDM2O1xuICBwcml2YXRlIHJlYWRvbmx5IEtITUVSX0NIQVJBQ1RFUl9SQU5HRSA9IC9bXFx1MTc4MC1cXHUxN0ZGXS87XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBlbDogRWxlbWVudFJlZjxIVE1MSW5wdXRFbGVtZW50Pikge31cblxuICBASG9zdExpc3RlbmVyKCdrZXlwcmVzcycsIFsnJGV2ZW50J10pXG4gIG9uS2V5UHJlc3MoZXZlbnQ6IEtleWJvYXJkRXZlbnQpIHtcblxuICAgIGxldCBpc1ZhbGlkID0gZmFsc2U7XG4gICAgY29uc3QgY2hhciA9IGV2ZW50LmtleTtcbiAgICBjb25zdCBpbnB1dEVsZW1lbnQgPSB0aGlzLmVsLm5hdGl2ZUVsZW1lbnQ7XG5cbiAgICBzd2l0Y2ggKHRoaXMudmFsaWRhdGlvblR5cGUpIHtcblxuICAgICAgY2FzZSAnZGlzYWJsZWQnOlxuICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICByZXR1cm47XG5cbiAgICAgIGNhc2UgJ2ludGVnZXInOlxuICAgICAgICBpc1ZhbGlkID0gL15cXGQrJC8udGVzdChjaGFyKTtcbiAgICAgICAgYnJlYWs7XG5cbiAgICAgIGNhc2UgJ2NvZGUnOlxuICAgICAgICBpc1ZhbGlkID0gL1thLXpBLVpcXGRdLy50ZXN0KGNoYXIpO1xuICAgICAgICBpZiAoaXNWYWxpZCkge1xuICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgICAgaWYgKGlucHV0RWxlbWVudC52YWx1ZS5sZW5ndGggPCB0aGlzLk1BWF9DT0RFX0xFTkdUSCkge1xuICAgICAgICAgICAgaW5wdXRFbGVtZW50LnZhbHVlICs9IGNoYXIudG9VcHBlckNhc2UoKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuO1xuXG4gICAgICBjYXNlICd0aXRsZSc6XG4gICAgICAgIGlzVmFsaWQgPSAvXlthLXpBLVpcXHNcXGRdKyQvLnRlc3QoY2hhcikgfHwgdGhpcy5LSE1FUl9DSEFSQUNURVJfUkFOR0UudGVzdChjaGFyKTtcbiAgICAgICAgYnJlYWs7XG5cbiAgICAgIGNhc2UgJ251bWJlcic6XG4gICAgICAgIGlzVmFsaWQgPSAvXlswLTkuXSQvLnRlc3QoY2hhcikgJiYgIShjaGFyID09PSAnLicgJiYgaW5wdXRFbGVtZW50LnZhbHVlLmluY2x1ZGVzKCcuJykpO1xuICAgICAgICBicmVhaztcblxuICAgICAgY2FzZSAncmVnZXgnOlxuICAgICAgICBpc1ZhbGlkID0gdGhpcy5yZWdleCA/IG5ldyBSZWdFeHAodGhpcy5yZWdleCkudGVzdChjaGFyKSA6IGZhbHNlO1xuICAgICAgICBicmVhaztcblxuICAgICAgZGVmYXVsdDpcbiAgICAgICAgaXNWYWxpZCA9IHRydWU7XG4gICAgfVxuXG4gICAgaWYgKCFpc1ZhbGlkKSB7XG4gICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgIH1cbiAgfVxuXG4gIEBIb3N0TGlzdGVuZXIoJ2tleWRvd24nLCBbJyRldmVudCddKVxuICBvbktleURvd24oZXZlbnQ6IEtleWJvYXJkRXZlbnQpIHtcblxuICAgIGlmICh0aGlzLnZhbGlkYXRpb25UeXBlID09PSAnZGlzYWJsZWQnKSB7XG5cbiAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgfVxuICB9XG59Il19
|
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
import { Directive, Input } from '@angular/core';
|
|
2
|
+
import { getFieldValue } from '../../helpers/one-cell.helper';
|
|
3
|
+
import * as i0 from "@angular/core";
|
|
4
|
+
export class OneCellRendererComponentDirective {
|
|
5
|
+
constructor(vcr) {
|
|
6
|
+
this.vcr = vcr;
|
|
7
|
+
this.initialized = false;
|
|
8
|
+
}
|
|
9
|
+
ngOnInit() {
|
|
10
|
+
this.initialized = true;
|
|
11
|
+
this.createOrUpdateComponent(true);
|
|
12
|
+
}
|
|
13
|
+
ngOnChanges(changes) {
|
|
14
|
+
if (!this.initialized)
|
|
15
|
+
return;
|
|
16
|
+
const componentChanged = changes['cellRendererComponent'];
|
|
17
|
+
const paramsChanged = changes['params'];
|
|
18
|
+
if (componentChanged) {
|
|
19
|
+
this.destroyComponent();
|
|
20
|
+
this.createOrUpdateComponent(true);
|
|
21
|
+
}
|
|
22
|
+
else if (paramsChanged) {
|
|
23
|
+
this.updateComponentInputs();
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
createOrUpdateComponent(forceCreate = false) {
|
|
27
|
+
if (!this.cellRendererComponent)
|
|
28
|
+
return;
|
|
29
|
+
if (forceCreate || !this.compRef) {
|
|
30
|
+
this.vcr.clear();
|
|
31
|
+
this.compRef = this.vcr.createComponent(this.cellRendererComponent);
|
|
32
|
+
}
|
|
33
|
+
this.updateComponentInputs();
|
|
34
|
+
}
|
|
35
|
+
updateComponentInputs() {
|
|
36
|
+
if (!this.compRef?.instance)
|
|
37
|
+
return;
|
|
38
|
+
const instance = this.compRef.instance;
|
|
39
|
+
if (typeof instance.oneInit === 'function') {
|
|
40
|
+
const newParams = { ...this.params };
|
|
41
|
+
newParams.value = getFieldValue(this.params.data, this.params?.columnDef?.field) ?? null;
|
|
42
|
+
instance.oneInit(newParams);
|
|
43
|
+
}
|
|
44
|
+
else {
|
|
45
|
+
Object.assign(instance, this.params);
|
|
46
|
+
}
|
|
47
|
+
// Optional: call change detector if needed
|
|
48
|
+
// if (this.compRef.changeDetectorRef) {
|
|
49
|
+
// this.compRef.changeDetectorRef.detectChanges();
|
|
50
|
+
// }
|
|
51
|
+
}
|
|
52
|
+
destroyComponent() {
|
|
53
|
+
if (this.compRef) {
|
|
54
|
+
this.compRef.destroy();
|
|
55
|
+
this.compRef = undefined;
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
ngOnDestroy() {
|
|
59
|
+
this.destroyComponent();
|
|
60
|
+
}
|
|
61
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: OneCellRendererComponentDirective, deps: [{ token: i0.ViewContainerRef }], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
62
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.3.12", type: OneCellRendererComponentDirective, selector: "[oneCellRendererComponent]", inputs: { cellRendererComponent: "cellRendererComponent", params: "params" }, usesOnChanges: true, ngImport: i0 }); }
|
|
63
|
+
}
|
|
64
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: OneCellRendererComponentDirective, decorators: [{
|
|
65
|
+
type: Directive,
|
|
66
|
+
args: [{
|
|
67
|
+
standalone: false,
|
|
68
|
+
selector: '[oneCellRendererComponent]'
|
|
69
|
+
}]
|
|
70
|
+
}], ctorParameters: () => [{ type: i0.ViewContainerRef }], propDecorators: { cellRendererComponent: [{
|
|
71
|
+
type: Input,
|
|
72
|
+
args: [{ required: true }]
|
|
73
|
+
}], params: [{
|
|
74
|
+
type: Input,
|
|
75
|
+
args: [{ required: true }]
|
|
76
|
+
}] } });
|
|
77
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib25lLWNlbGwtcmVuZGVyZXItY29tcG9uZW50LmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL29uZS1ncmlkL3NyYy9saWIvY29yZS9kaXJlY3RpdmVzL29uZS1jZWxsLXJlbmRlcmVyLWNvbXBvbmVudC5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFnQixTQUFTLEVBQUUsS0FBSyxFQUF1RSxNQUFNLGVBQWUsQ0FBQztBQUdwSSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sK0JBQStCLENBQUM7O0FBTTlELE1BQU0sT0FBTyxpQ0FBaUM7SUFRNUMsWUFBb0IsR0FBcUI7UUFBckIsUUFBRyxHQUFILEdBQUcsQ0FBa0I7UUFGakMsZ0JBQVcsR0FBRyxLQUFLLENBQUM7SUFFZ0IsQ0FBQztJQUU3QyxRQUFRO1FBRU4sSUFBSSxDQUFDLFdBQVcsR0FBRyxJQUFJLENBQUM7UUFFeEIsSUFBSSxDQUFDLHVCQUF1QixDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ3JDLENBQUM7SUFFRCxXQUFXLENBQUMsT0FBc0I7UUFFaEMsSUFBSSxDQUFDLElBQUksQ0FBQyxXQUFXO1lBQUUsT0FBTztRQUU5QixNQUFNLGdCQUFnQixHQUFHLE9BQU8sQ0FBQyx1QkFBdUIsQ0FBQyxDQUFDO1FBRTFELE1BQU0sYUFBYSxHQUFHLE9BQU8sQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUV4QyxJQUFJLGdCQUFnQixFQUFFLENBQUM7WUFFckIsSUFBSSxDQUFDLGdCQUFnQixFQUFFLENBQUM7WUFFeEIsSUFBSSxDQUFDLHVCQUF1QixDQUFDLElBQUksQ0FBQyxDQUFDO1FBRXJDLENBQUM7YUFBTSxJQUFJLGFBQWEsRUFBRSxDQUFDO1lBRXpCLElBQUksQ0FBQyxxQkFBcUIsRUFBRSxDQUFDO1FBQy9CLENBQUM7SUFDSCxDQUFDO0lBRU8sdUJBQXVCLENBQUMsV0FBVyxHQUFHLEtBQUs7UUFFakQsSUFBSSxDQUFDLElBQUksQ0FBQyxxQkFBcUI7WUFBRSxPQUFPO1FBRXhDLElBQUksV0FBVyxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDO1lBQ2pDLElBQUksQ0FBQyxHQUFHLENBQUMsS0FBSyxFQUFFLENBQUM7WUFDakIsSUFBSSxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMscUJBQXFCLENBQUMsQ0FBQztRQUN0RSxDQUFDO1FBRUQsSUFBSSxDQUFDLHFCQUFxQixFQUFFLENBQUM7SUFDL0IsQ0FBQztJQUVPLHFCQUFxQjtRQUUzQixJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxRQUFRO1lBQUUsT0FBTztRQUVwQyxNQUFNLFFBQVEsR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLFFBQW9DLENBQUM7UUFFbkUsSUFBSSxPQUFPLFFBQVEsQ0FBQyxPQUFPLEtBQUssVUFBVSxFQUFFLENBQUM7WUFFM0MsTUFBTSxTQUFTLEdBQUcsRUFBRSxHQUFHLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQztZQUVyQyxTQUFTLENBQUMsS0FBSyxHQUFHLGFBQWEsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsTUFBTSxFQUFFLFNBQVMsRUFBRSxLQUFLLENBQUMsSUFBSSxJQUFJLENBQUM7WUFFekYsUUFBUSxDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUU5QixDQUFDO2FBQU0sQ0FBQztZQUVOLE1BQU0sQ0FBQyxNQUFNLENBQUMsUUFBUSxFQUFFLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUN2QyxDQUFDO1FBRUQsMkNBQTJDO1FBQzNDLHdDQUF3QztRQUV4QyxvREFBb0Q7UUFDcEQsSUFBSTtJQUNOLENBQUM7SUFFTyxnQkFBZ0I7UUFFdEIsSUFBSSxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUM7WUFFakIsSUFBSSxDQUFDLE9BQU8sQ0FBQyxPQUFPLEVBQUUsQ0FBQztZQUV2QixJQUFJLENBQUMsT0FBTyxHQUFHLFNBQVMsQ0FBQztRQUMzQixDQUFDO0lBQ0gsQ0FBQztJQUVELFdBQVc7UUFFVCxJQUFJLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQztJQUMxQixDQUFDOytHQXhGVSxpQ0FBaUM7bUdBQWpDLGlDQUFpQzs7NEZBQWpDLGlDQUFpQztrQkFKN0MsU0FBUzttQkFBQztvQkFDVCxVQUFVLEVBQUUsS0FBSztvQkFDakIsUUFBUSxFQUFFLDRCQUE0QjtpQkFDdkM7cUZBRzRCLHFCQUFxQjtzQkFBL0MsS0FBSzt1QkFBQyxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUU7Z0JBQ0UsTUFBTTtzQkFBaEMsS0FBSzt1QkFBQyxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnRSZWYsIERpcmVjdGl2ZSwgSW5wdXQsIE9uQ2hhbmdlcywgT25EZXN0cm95LCBPbkluaXQsIFNpbXBsZUNoYW5nZXMsIFR5cGUsIFZpZXdDb250YWluZXJSZWYgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE9uZUNlbGxSZW5kZXJlclBhcmFtcyB9IGZyb20gJy4uL21vZGVscy9vbmUtY29sdW1uLWRlZi10eXBlcy5tb2RlbCc7XG5pbXBvcnQgeyBPbmVDZWxsUmVuZGVyZXJDb21wb25lbnQgfSBmcm9tICcuLi9tb2RlbHMvb25lLXRyZWUtZGF0YS5tb2RlbCc7XG5pbXBvcnQgeyBnZXRGaWVsZFZhbHVlIH0gZnJvbSAnLi4vLi4vaGVscGVycy9vbmUtY2VsbC5oZWxwZXInO1xuXG5ARGlyZWN0aXZlKHtcbiAgc3RhbmRhbG9uZTogZmFsc2UsXG4gIHNlbGVjdG9yOiAnW29uZUNlbGxSZW5kZXJlckNvbXBvbmVudF0nXG59KVxuZXhwb3J0IGNsYXNzIE9uZUNlbGxSZW5kZXJlckNvbXBvbmVudERpcmVjdGl2ZSBpbXBsZW1lbnRzIE9uSW5pdCwgT25DaGFuZ2VzLCBPbkRlc3Ryb3kge1xuXG4gIEBJbnB1dCh7IHJlcXVpcmVkOiB0cnVlIH0pIGNlbGxSZW5kZXJlckNvbXBvbmVudCE6IFR5cGU8T25lQ2VsbFJlbmRlcmVyQ29tcG9uZW50PjtcbiAgQElucHV0KHsgcmVxdWlyZWQ6IHRydWUgfSkgcGFyYW1zOiBPbmVDZWxsUmVuZGVyZXJQYXJhbXM7XG5cbiAgcHJpdmF0ZSBjb21wUmVmPzogQ29tcG9uZW50UmVmPE9uZUNlbGxSZW5kZXJlckNvbXBvbmVudD47XG4gIHByaXZhdGUgaW5pdGlhbGl6ZWQgPSBmYWxzZTtcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHZjcjogVmlld0NvbnRhaW5lclJlZikge31cblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcblxuICAgIHRoaXMuaW5pdGlhbGl6ZWQgPSB0cnVlO1xuXG4gICAgdGhpcy5jcmVhdGVPclVwZGF0ZUNvbXBvbmVudCh0cnVlKTtcbiAgfVxuXG4gIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcblxuICAgIGlmICghdGhpcy5pbml0aWFsaXplZCkgcmV0dXJuO1xuXG4gICAgY29uc3QgY29tcG9uZW50Q2hhbmdlZCA9IGNoYW5nZXNbJ2NlbGxSZW5kZXJlckNvbXBvbmVudCddO1xuICAgIFxuICAgIGNvbnN0IHBhcmFtc0NoYW5nZWQgPSBjaGFuZ2VzWydwYXJhbXMnXTtcblxuICAgIGlmIChjb21wb25lbnRDaGFuZ2VkKSB7XG5cbiAgICAgIHRoaXMuZGVzdHJveUNvbXBvbmVudCgpO1xuXG4gICAgICB0aGlzLmNyZWF0ZU9yVXBkYXRlQ29tcG9uZW50KHRydWUpO1xuXG4gICAgfSBlbHNlIGlmIChwYXJhbXNDaGFuZ2VkKSB7XG5cbiAgICAgIHRoaXMudXBkYXRlQ29tcG9uZW50SW5wdXRzKCk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBjcmVhdGVPclVwZGF0ZUNvbXBvbmVudChmb3JjZUNyZWF0ZSA9IGZhbHNlKTogdm9pZCB7XG5cbiAgICBpZiAoIXRoaXMuY2VsbFJlbmRlcmVyQ29tcG9uZW50KSByZXR1cm47XG5cbiAgICBpZiAoZm9yY2VDcmVhdGUgfHwgIXRoaXMuY29tcFJlZikge1xuICAgICAgdGhpcy52Y3IuY2xlYXIoKTtcbiAgICAgIHRoaXMuY29tcFJlZiA9IHRoaXMudmNyLmNyZWF0ZUNvbXBvbmVudCh0aGlzLmNlbGxSZW5kZXJlckNvbXBvbmVudCk7XG4gICAgfVxuXG4gICAgdGhpcy51cGRhdGVDb21wb25lbnRJbnB1dHMoKTtcbiAgfVxuXG4gIHByaXZhdGUgdXBkYXRlQ29tcG9uZW50SW5wdXRzKCk6IHZvaWQge1xuXG4gICAgaWYgKCF0aGlzLmNvbXBSZWY/Lmluc3RhbmNlKSByZXR1cm47XG5cbiAgICBjb25zdCBpbnN0YW5jZSA9IHRoaXMuY29tcFJlZi5pbnN0YW5jZSBhcyBPbmVDZWxsUmVuZGVyZXJDb21wb25lbnQ7XG5cbiAgICBpZiAodHlwZW9mIGluc3RhbmNlLm9uZUluaXQgPT09ICdmdW5jdGlvbicpIHtcblxuICAgICAgY29uc3QgbmV3UGFyYW1zID0geyAuLi50aGlzLnBhcmFtcyB9O1xuXG4gICAgICBuZXdQYXJhbXMudmFsdWUgPSBnZXRGaWVsZFZhbHVlKHRoaXMucGFyYW1zLmRhdGEsIHRoaXMucGFyYW1zPy5jb2x1bW5EZWY/LmZpZWxkKSA/PyBudWxsO1xuXG4gICAgICBpbnN0YW5jZS5vbmVJbml0KG5ld1BhcmFtcyk7XG5cbiAgICB9IGVsc2Uge1xuXG4gICAgICBPYmplY3QuYXNzaWduKGluc3RhbmNlLCB0aGlzLnBhcmFtcyk7XG4gICAgfVxuXG4gICAgLy8gT3B0aW9uYWw6IGNhbGwgY2hhbmdlIGRldGVjdG9yIGlmIG5lZWRlZFxuICAgIC8vIGlmICh0aGlzLmNvbXBSZWYuY2hhbmdlRGV0ZWN0b3JSZWYpIHtcblxuICAgIC8vICAgdGhpcy5jb21wUmVmLmNoYW5nZURldGVjdG9yUmVmLmRldGVjdENoYW5nZXMoKTtcbiAgICAvLyB9XG4gIH1cblxuICBwcml2YXRlIGRlc3Ryb3lDb21wb25lbnQoKTogdm9pZCB7XG5cbiAgICBpZiAodGhpcy5jb21wUmVmKSB7XG5cbiAgICAgIHRoaXMuY29tcFJlZi5kZXN0cm95KCk7XG5cbiAgICAgIHRoaXMuY29tcFJlZiA9IHVuZGVmaW5lZDtcbiAgICB9XG4gIH1cblxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcblxuICAgIHRoaXMuZGVzdHJveUNvbXBvbmVudCgpO1xuICB9XG59Il19
|