nira-falcon 0.1.8 → 0.1.9
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/esm2022/lib/core-table/core-table/core-table.component.mjs +3 -3
- package/esm2022/lib/core-table/core-table-card-manager/core-table-card-manager.component.mjs +6 -3
- package/esm2022/lib/core-table/core-table-column-manager/core-table-column-manager.component.mjs +6 -3
- package/esm2022/lib/core-table/core-table-row-selector-column/core-table-row-selector-column.component.mjs +29 -3
- package/fesm2022/nira-falcon.mjs +40 -8
- package/fesm2022/nira-falcon.mjs.map +1 -1
- package/lib/core-table/core-table-card-manager/core-table-card-manager.component.d.ts +2 -1
- package/lib/core-table/core-table-column-manager/core-table-column-manager.component.d.ts +2 -1
- package/lib/core-table/core-table-row-selector-column/core-table-row-selector-column.component.d.ts +3 -1
- package/package.json +1 -1
|
@@ -147,11 +147,11 @@ export class CoreTableComponent {
|
|
|
147
147
|
});
|
|
148
148
|
}
|
|
149
149
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: CoreTableComponent, deps: [{ token: i1.NgxIndexedDBService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
150
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: CoreTableComponent, selector: "core-table", inputs: { key: "key", columnsSchema: "columnsSchema", tableData: "tableData", responsive: "responsive", loading: "loading", canFilter: "canFilter", styleFilter: "styleFilter", rowSelector: "rowSelector" }, outputs: { onColumnClicked: "onColumnClicked" }, ngImport: i0, template: "<div class=\"p-2 overflow-x-auto\">\r\n <table *ngIf=\"!isRunningOnSmallScreen || !responsive; else smallDeviceCard\">\r\n <tr>\r\n <th\r\n class=\"cursor-pointer text-center\"\r\n *ngFor=\"let column of activeColumnsSchema()\"\r\n >\r\n <div\r\n class=\"grid\"\r\n [ngClass]=\"[canFilter ? 'grid-rows-2' : 'grid-rows-1']\"\r\n >\r\n <span\r\n class=\"p-2 relative\"\r\n (click)=\"sortByHeader(column)\"\r\n [ngStyle]=\"{\r\n minWidth:\r\n column.type === columnsTypes.ACTION_BUTTONS\r\n ? column.data.length * 30 + 'px'\r\n : '',\r\n display:\r\n column.type === columnsTypes.ACTION_BUTTONS\r\n ? 'inline-block'\r\n : ''\r\n }\"\r\n >{{ column.label }}\r\n <app-sort-down-icon\r\n class=\"sort-icon w-2 h-2 inline-block absolute top-3 right-[-3px]\"\r\n *ngIf=\"\r\n sortDetail?.key == column.key && sortDetail?.sort === 'asc'\r\n \"\r\n ></app-sort-down-icon>\r\n <app-sort-up-icon\r\n class=\"sort-icon w-2 h-2 inline-block absolute top-3 right-[-3px]\"\r\n *ngIf=\"\r\n sortDetail?.key == column.key && sortDetail?.sort === 'desc'\r\n \"\r\n ></app-sort-up-icon>\r\n <app-sort-solid-icon\r\n class=\"sort-icon w-2 h-2 inline-block absolute top-3 right-[-3px]\"\r\n *ngIf=\"sortDetail?.key !== column.key\"\r\n ></app-sort-solid-icon>\r\n </span>\r\n <core-column-date-picker\r\n *ngIf=\"canFilter && column.type == columnsTypes.SHAMSI_DATE\"\r\n [canSelectToday]=\"true\"\r\n (onChange)=\"tableDataFiltered($event, column)\"\r\n >\r\n </core-column-date-picker>\r\n <core-column-input\r\n *ngIf=\"\r\n canFilter &&\r\n column.type !== columnsTypes.ACTION &&\r\n column.type !== columnsTypes.STATUS &&\r\n column.type !== columnsTypes.SHAMSI_DATE &&\r\n column.type !== columnsTypes.ROW_SELECTOR &&\r\n column.type !== columnsTypes.STATUS_ACTIVE &&\r\n column.type !== columnsTypes.ACTION_BUTTONS\r\n \"\r\n (onChange)=\"tableDataFiltered($event, column)\"\r\n ></core-column-input>\r\n <core-column-selector\r\n *ngIf=\"\r\n (canFilter && column.type == columnsTypes.STATUS) ||\r\n (canFilter && column.type == columnsTypes.STATUS_ACTIVE)\r\n \"\r\n [titleKey]=\"'title'\"\r\n [valueKey]=\"'value'\"\r\n [items]=\"\r\n column.type == columnsTypes.STATUS\r\n ? ACTIVE_OPTIONS\r\n : YES_NO_OPTIONS\r\n \"\r\n (onItemSelected)=\"tableDataFiltered($event, column)\"\r\n ></core-column-selector>\r\n </div>\r\n </th>\r\n </tr>\r\n <tr *ngFor=\"let data of sortedTableData\">\r\n <td\r\n *ngFor=\"let column of activeColumnsSchema()\"\r\n [class]=\"styleFilter ? styleFilter(data) : ''\"\r\n >\r\n <app-core-table-column-manager\r\n *ngIf=\"column.type != columnsTypes.MULTI_COLUMN; else elseBlock\"\r\n [rowSelector]=\"rowSelector\"\r\n (onColumnClicked)=\"columnClicked($event)\"\r\n [data]=\"data\"\r\n [column]=\"column\"\r\n ></app-core-table-column-manager>\r\n <ng-template #elseBlock>\r\n <app-core-table-column-manager\r\n *ngFor=\"let childColumn of column.columns; let i = index\"\r\n [rowSelector]=\"rowSelector\"\r\n (onColumnClicked)=\"columnClicked($event)\"\r\n [data]=\"data\"\r\n [column]=\"childColumn\"\r\n >\r\n <span *ngIf=\"i > 0\">-</span>\r\n </app-core-table-column-manager>\r\n </ng-template>\r\n </td>\r\n </tr>\r\n </table>\r\n <ng-template #smallDeviceCard>\r\n <div>\r\n <core-card\r\n *ngFor=\"let data of sortedTableData\"\r\n [cardClass]=\"'background-card m-4 p-4 relative'\"\r\n >\r\n <div\r\n class=\"leading-8\"\r\n *ngFor=\"let column of activeColumnsSchema()\"\r\n [class]=\"\r\n column.type === columnsTypes.ACTION_BUTTONS\r\n ? 'actionButtons'\r\n : column.type === columnsTypes.ROW_SELECTOR\r\n ? 'selectRow'\r\n : ''\r\n \"\r\n >\r\n <span\r\n *ngIf=\"\r\n column.type !== columnsTypes.ACTION_BUTTONS &&\r\n column.type !== columnsTypes.ROW_SELECTOR\r\n \"\r\n class=\"secondary-text-color\"\r\n >\r\n {{ column.label }} :\r\n </span>\r\n <span class=\"primary-text-color font-semibold\">\r\n <app-core-table-card-manager\r\n *ngIf=\"\r\n column.type != columnsTypes.MULTI_COLUMN;\r\n else cardManagerElseBlock\r\n \"\r\n [rowSelector]=\"rowSelector\"\r\n (onColumnClicked)=\"columnClicked($event)\"\r\n [data]=\"data\"\r\n [column]=\"column\"\r\n >\r\n </app-core-table-card-manager>\r\n\r\n <ng-template #cardManagerElseBlock>\r\n <app-core-table-card-manager\r\n *ngFor=\"let childColumn of column.columns; let i = index\"\r\n [rowSelector]=\"rowSelector\"\r\n (onColumnClicked)=\"columnClicked($event)\"\r\n [data]=\"data\"\r\n [column]=\"childColumn\"\r\n >\r\n <span *ngIf=\"i > 0\">-</span>\r\n </app-core-table-card-manager>\r\n </ng-template>\r\n </span>\r\n </div>\r\n </core-card>\r\n </div>\r\n </ng-template>\r\n <core-table-no-content\r\n *ngIf=\"!loading\"\r\n [tableData]=\"sortedTableData\"\r\n [loading]=\"loading\"\r\n ></core-table-no-content>\r\n</div>\r\n", styles: ["table{border-collapse:collapse;width:100%;text-align:start}table td,table th{padding-top:12px;padding-bottom:12px;padding-inline-start:8px}table td{font-size:small;color:var(--default-table-td-text-color)}table tr:nth-child(2n){background-color:var(--default-table-tr-child-background-color)}table tr:hover{background-color:var(--default-table-tr-hover-background-color)}table th{background-color:var(--default-table-th-background-color);text-align:start;color:#1d1d1d}.actionButtons{position:absolute;bottom:0;background:var(--default-table-action-buttons-background-color);left:0;right:0;text-align:left;border-radius:.5rem;border-top-right-radius:0;border-top-left-radius:0;padding-top:4px;padding-left:16px}.selectRow{position:absolute;left:0;top:18px}.desc-sort-icon{transform:rotate(180deg)}.sort-icon{fill:var(--default-table-sort-icon-color)}.background-card{background-color:var(--default-table-background-card-color)}.secondary-text-color{color:var(--default-table-secondary-text-color)}.primary-text-color{color:var(--default-table-primary-text-color)}\n"], dependencies: [{ kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "component", type: i3.CoreCardComponent, selector: "core-card", inputs: ["cardClass"] }, { kind: "component", type: i4.CoreColumnDatePickerComponent, selector: "core-column-date-picker", inputs: ["canSelectToday", "defaultDate", "inputFormControl"], outputs: ["onChange"] }, { kind: "component", type: i5.CoreColumnInputComponent, selector: "core-column-input", inputs: ["showRemoveIcon", "placeholder", "value", "type", "maxLength"], outputs: ["onChange"] }, { kind: "component", type: i6.CoreColumnSelectorComponent, selector: "core-column-selector", inputs: ["items", "titleKey", "valueKey", "label", "inputFormControl"], outputs: ["onItemSelected"] }, { kind: "component", type: i7.CoreTableCardManagerComponent, selector: "app-core-table-card-manager", inputs: ["data", "column", "rowSelector"], outputs: ["onColumnClicked"] }, { kind: "component", type: i8.CoreTableColumnManagerComponent, selector: "app-core-table-column-manager", inputs: ["data", "column", "rowSelector"], outputs: ["onColumnClicked"] }, { kind: "component", type: i9.CoreTableNoContentComponent, selector: "core-table-no-content", inputs: ["tableData", "loading"] }, { kind: "component", type: i10.SortDownIconComponent, selector: "app-sort-down-icon" }, { kind: "component", type: i11.SortSolidIconComponent, selector: "app-sort-solid-icon" }, { kind: "component", type: i12.SortUpIconComponent, selector: "app-sort-up-icon" }] }); }
|
|
150
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: CoreTableComponent, selector: "core-table", inputs: { key: "key", columnsSchema: "columnsSchema", tableData: "tableData", responsive: "responsive", loading: "loading", canFilter: "canFilter", styleFilter: "styleFilter", rowSelector: "rowSelector" }, outputs: { onColumnClicked: "onColumnClicked" }, ngImport: i0, template: "<div class=\"p-2 overflow-x-auto\">\r\n <table *ngIf=\"!isRunningOnSmallScreen || !responsive; else smallDeviceCard\">\r\n <tr>\r\n <th\r\n class=\"cursor-pointer text-center\"\r\n *ngFor=\"let column of activeColumnsSchema()\"\r\n >\r\n <div\r\n class=\"grid\"\r\n [ngClass]=\"[canFilter ? 'grid-rows-2' : 'grid-rows-1']\"\r\n >\r\n <span\r\n class=\"p-2 relative\"\r\n (click)=\"sortByHeader(column)\"\r\n [ngStyle]=\"{\r\n minWidth:\r\n column.type === columnsTypes.ACTION_BUTTONS\r\n ? column.data.length * 30 + 'px'\r\n : '',\r\n display:\r\n column.type === columnsTypes.ACTION_BUTTONS\r\n ? 'inline-block'\r\n : ''\r\n }\"\r\n >{{ column.label }}\r\n <app-sort-down-icon\r\n class=\"sort-icon w-2 h-2 inline-block absolute top-3 right-[-3px]\"\r\n *ngIf=\"\r\n sortDetail?.key == column.key && sortDetail?.sort === 'asc'\r\n \"\r\n ></app-sort-down-icon>\r\n <app-sort-up-icon\r\n class=\"sort-icon w-2 h-2 inline-block absolute top-3 right-[-3px]\"\r\n *ngIf=\"\r\n sortDetail?.key == column.key && sortDetail?.sort === 'desc'\r\n \"\r\n ></app-sort-up-icon>\r\n <app-sort-solid-icon\r\n class=\"sort-icon w-2 h-2 inline-block absolute top-3 right-[-3px]\"\r\n *ngIf=\"sortDetail?.key !== column.key\"\r\n ></app-sort-solid-icon>\r\n </span>\r\n <core-column-date-picker\r\n *ngIf=\"canFilter && column.type == columnsTypes.SHAMSI_DATE\"\r\n [canSelectToday]=\"true\"\r\n (onChange)=\"tableDataFiltered($event, column)\"\r\n >\r\n </core-column-date-picker>\r\n <core-column-input\r\n *ngIf=\"\r\n canFilter &&\r\n column.type !== columnsTypes.ACTION &&\r\n column.type !== columnsTypes.STATUS &&\r\n column.type !== columnsTypes.SHAMSI_DATE &&\r\n column.type !== columnsTypes.ROW_SELECTOR &&\r\n column.type !== columnsTypes.STATUS_ACTIVE &&\r\n column.type !== columnsTypes.ACTION_BUTTONS\r\n \"\r\n (onChange)=\"tableDataFiltered($event, column)\"\r\n ></core-column-input>\r\n <core-column-selector\r\n *ngIf=\"\r\n (canFilter && column.type == columnsTypes.STATUS) ||\r\n (canFilter && column.type == columnsTypes.STATUS_ACTIVE)\r\n \"\r\n [titleKey]=\"'title'\"\r\n [valueKey]=\"'value'\"\r\n [items]=\"\r\n column.type == columnsTypes.STATUS\r\n ? ACTIVE_OPTIONS\r\n : YES_NO_OPTIONS\r\n \"\r\n (onItemSelected)=\"tableDataFiltered($event, column)\"\r\n ></core-column-selector>\r\n </div>\r\n </th>\r\n </tr>\r\n <tr *ngFor=\"let data of sortedTableData\">\r\n <td\r\n *ngFor=\"let column of activeColumnsSchema()\"\r\n [class]=\"styleFilter ? styleFilter(data) : ''\"\r\n >\r\n <app-core-table-column-manager\r\n *ngIf=\"column.type != columnsTypes.MULTI_COLUMN; else elseBlock\"\r\n [rowSelector]=\"rowSelector\"\r\n (onColumnClicked)=\"columnClicked($event)\"\r\n [allTableData]=\"sortedTableData\"\r\n [data]=\"data\"\r\n [column]=\"column\"\r\n ></app-core-table-column-manager>\r\n <ng-template #elseBlock>\r\n <app-core-table-column-manager\r\n *ngFor=\"let childColumn of column.columns; let i = index\"\r\n [rowSelector]=\"rowSelector\"\r\n (onColumnClicked)=\"columnClicked($event)\"\r\n [data]=\"data\"\r\n [allTableData]=\"sortedTableData\"\r\n [column]=\"childColumn\"\r\n >\r\n <span *ngIf=\"i > 0\">-</span>\r\n </app-core-table-column-manager>\r\n </ng-template>\r\n </td>\r\n </tr>\r\n </table>\r\n <ng-template #smallDeviceCard>\r\n <div>\r\n <core-card\r\n *ngFor=\"let data of sortedTableData\"\r\n [cardClass]=\"'background-card m-4 p-4 relative'\"\r\n >\r\n <div\r\n class=\"leading-8\"\r\n *ngFor=\"let column of activeColumnsSchema()\"\r\n [class]=\"\r\n column.type === columnsTypes.ACTION_BUTTONS\r\n ? 'actionButtons'\r\n : column.type === columnsTypes.ROW_SELECTOR\r\n ? 'selectRow'\r\n : ''\r\n \"\r\n >\r\n <span\r\n *ngIf=\"\r\n column.type !== columnsTypes.ACTION_BUTTONS &&\r\n column.type !== columnsTypes.ROW_SELECTOR\r\n \"\r\n class=\"secondary-text-color\"\r\n >\r\n {{ column.label }} :\r\n </span>\r\n <span class=\"primary-text-color font-semibold\">\r\n <app-core-table-card-manager\r\n *ngIf=\"\r\n column.type != columnsTypes.MULTI_COLUMN;\r\n else cardManagerElseBlock\r\n \"\r\n [rowSelector]=\"rowSelector\"\r\n (onColumnClicked)=\"columnClicked($event)\"\r\n [data]=\"data\"\r\n [allTableData]=\"sortedTableData\"\r\n [column]=\"column\"\r\n >\r\n </app-core-table-card-manager>\r\n\r\n <ng-template #cardManagerElseBlock>\r\n <app-core-table-card-manager\r\n *ngFor=\"let childColumn of column.columns; let i = index\"\r\n [rowSelector]=\"rowSelector\"\r\n (onColumnClicked)=\"columnClicked($event)\"\r\n [data]=\"data\"\r\n [allTableData]=\"sortedTableData\"\r\n [column]=\"childColumn\"\r\n >\r\n <span *ngIf=\"i > 0\">-</span>\r\n </app-core-table-card-manager>\r\n </ng-template>\r\n </span>\r\n </div>\r\n </core-card>\r\n </div>\r\n </ng-template>\r\n <core-table-no-content\r\n *ngIf=\"!loading\"\r\n [tableData]=\"sortedTableData\"\r\n [loading]=\"loading\"\r\n ></core-table-no-content>\r\n</div>\r\n", styles: ["table{border-collapse:collapse;width:100%;text-align:start}table td,table th{padding-top:12px;padding-bottom:12px;padding-inline-start:8px}table td{font-size:small;color:var(--default-table-td-text-color)}table tr:nth-child(2n){background-color:var(--default-table-tr-child-background-color)}table tr:hover{background-color:var(--default-table-tr-hover-background-color)}table th{background-color:var(--default-table-th-background-color);text-align:start;color:#1d1d1d}.actionButtons{position:absolute;bottom:0;background:var(--default-table-action-buttons-background-color);left:0;right:0;text-align:left;border-radius:.5rem;border-top-right-radius:0;border-top-left-radius:0;padding-top:4px;padding-left:16px}.selectRow{position:absolute;left:0;top:18px}.desc-sort-icon{transform:rotate(180deg)}.sort-icon{fill:var(--default-table-sort-icon-color)}.background-card{background-color:var(--default-table-background-card-color)}.secondary-text-color{color:var(--default-table-secondary-text-color)}.primary-text-color{color:var(--default-table-primary-text-color)}\n"], dependencies: [{ kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "component", type: i3.CoreCardComponent, selector: "core-card", inputs: ["cardClass"] }, { kind: "component", type: i4.CoreColumnDatePickerComponent, selector: "core-column-date-picker", inputs: ["canSelectToday", "defaultDate", "inputFormControl"], outputs: ["onChange"] }, { kind: "component", type: i5.CoreColumnInputComponent, selector: "core-column-input", inputs: ["showRemoveIcon", "placeholder", "value", "type", "maxLength"], outputs: ["onChange"] }, { kind: "component", type: i6.CoreColumnSelectorComponent, selector: "core-column-selector", inputs: ["items", "titleKey", "valueKey", "label", "inputFormControl"], outputs: ["onItemSelected"] }, { kind: "component", type: i7.CoreTableCardManagerComponent, selector: "app-core-table-card-manager", inputs: ["data", "column", "allTableData", "rowSelector"], outputs: ["onColumnClicked"] }, { kind: "component", type: i8.CoreTableColumnManagerComponent, selector: "app-core-table-column-manager", inputs: ["data", "column", "allTableData", "rowSelector"], outputs: ["onColumnClicked"] }, { kind: "component", type: i9.CoreTableNoContentComponent, selector: "core-table-no-content", inputs: ["tableData", "loading"] }, { kind: "component", type: i10.SortDownIconComponent, selector: "app-sort-down-icon" }, { kind: "component", type: i11.SortSolidIconComponent, selector: "app-sort-solid-icon" }, { kind: "component", type: i12.SortUpIconComponent, selector: "app-sort-up-icon" }] }); }
|
|
151
151
|
}
|
|
152
152
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: CoreTableComponent, decorators: [{
|
|
153
153
|
type: Component,
|
|
154
|
-
args: [{ selector: 'core-table', template: "<div class=\"p-2 overflow-x-auto\">\r\n <table *ngIf=\"!isRunningOnSmallScreen || !responsive; else smallDeviceCard\">\r\n <tr>\r\n <th\r\n class=\"cursor-pointer text-center\"\r\n *ngFor=\"let column of activeColumnsSchema()\"\r\n >\r\n <div\r\n class=\"grid\"\r\n [ngClass]=\"[canFilter ? 'grid-rows-2' : 'grid-rows-1']\"\r\n >\r\n <span\r\n class=\"p-2 relative\"\r\n (click)=\"sortByHeader(column)\"\r\n [ngStyle]=\"{\r\n minWidth:\r\n column.type === columnsTypes.ACTION_BUTTONS\r\n ? column.data.length * 30 + 'px'\r\n : '',\r\n display:\r\n column.type === columnsTypes.ACTION_BUTTONS\r\n ? 'inline-block'\r\n : ''\r\n }\"\r\n >{{ column.label }}\r\n <app-sort-down-icon\r\n class=\"sort-icon w-2 h-2 inline-block absolute top-3 right-[-3px]\"\r\n *ngIf=\"\r\n sortDetail?.key == column.key && sortDetail?.sort === 'asc'\r\n \"\r\n ></app-sort-down-icon>\r\n <app-sort-up-icon\r\n class=\"sort-icon w-2 h-2 inline-block absolute top-3 right-[-3px]\"\r\n *ngIf=\"\r\n sortDetail?.key == column.key && sortDetail?.sort === 'desc'\r\n \"\r\n ></app-sort-up-icon>\r\n <app-sort-solid-icon\r\n class=\"sort-icon w-2 h-2 inline-block absolute top-3 right-[-3px]\"\r\n *ngIf=\"sortDetail?.key !== column.key\"\r\n ></app-sort-solid-icon>\r\n </span>\r\n <core-column-date-picker\r\n *ngIf=\"canFilter && column.type == columnsTypes.SHAMSI_DATE\"\r\n [canSelectToday]=\"true\"\r\n (onChange)=\"tableDataFiltered($event, column)\"\r\n >\r\n </core-column-date-picker>\r\n <core-column-input\r\n *ngIf=\"\r\n canFilter &&\r\n column.type !== columnsTypes.ACTION &&\r\n column.type !== columnsTypes.STATUS &&\r\n column.type !== columnsTypes.SHAMSI_DATE &&\r\n column.type !== columnsTypes.ROW_SELECTOR &&\r\n column.type !== columnsTypes.STATUS_ACTIVE &&\r\n column.type !== columnsTypes.ACTION_BUTTONS\r\n \"\r\n (onChange)=\"tableDataFiltered($event, column)\"\r\n ></core-column-input>\r\n <core-column-selector\r\n *ngIf=\"\r\n (canFilter && column.type == columnsTypes.STATUS) ||\r\n (canFilter && column.type == columnsTypes.STATUS_ACTIVE)\r\n \"\r\n [titleKey]=\"'title'\"\r\n [valueKey]=\"'value'\"\r\n [items]=\"\r\n column.type == columnsTypes.STATUS\r\n ? ACTIVE_OPTIONS\r\n : YES_NO_OPTIONS\r\n \"\r\n (onItemSelected)=\"tableDataFiltered($event, column)\"\r\n ></core-column-selector>\r\n </div>\r\n </th>\r\n </tr>\r\n <tr *ngFor=\"let data of sortedTableData\">\r\n <td\r\n *ngFor=\"let column of activeColumnsSchema()\"\r\n [class]=\"styleFilter ? styleFilter(data) : ''\"\r\n >\r\n <app-core-table-column-manager\r\n *ngIf=\"column.type != columnsTypes.MULTI_COLUMN; else elseBlock\"\r\n [rowSelector]=\"rowSelector\"\r\n (onColumnClicked)=\"columnClicked($event)\"\r\n [data]=\"data\"\r\n [column]=\"column\"\r\n ></app-core-table-column-manager>\r\n <ng-template #elseBlock>\r\n <app-core-table-column-manager\r\n *ngFor=\"let childColumn of column.columns; let i = index\"\r\n [rowSelector]=\"rowSelector\"\r\n (onColumnClicked)=\"columnClicked($event)\"\r\n [data]=\"data\"\r\n [column]=\"childColumn\"\r\n >\r\n <span *ngIf=\"i > 0\">-</span>\r\n </app-core-table-column-manager>\r\n </ng-template>\r\n </td>\r\n </tr>\r\n </table>\r\n <ng-template #smallDeviceCard>\r\n <div>\r\n <core-card\r\n *ngFor=\"let data of sortedTableData\"\r\n [cardClass]=\"'background-card m-4 p-4 relative'\"\r\n >\r\n <div\r\n class=\"leading-8\"\r\n *ngFor=\"let column of activeColumnsSchema()\"\r\n [class]=\"\r\n column.type === columnsTypes.ACTION_BUTTONS\r\n ? 'actionButtons'\r\n : column.type === columnsTypes.ROW_SELECTOR\r\n ? 'selectRow'\r\n : ''\r\n \"\r\n >\r\n <span\r\n *ngIf=\"\r\n column.type !== columnsTypes.ACTION_BUTTONS &&\r\n column.type !== columnsTypes.ROW_SELECTOR\r\n \"\r\n class=\"secondary-text-color\"\r\n >\r\n {{ column.label }} :\r\n </span>\r\n <span class=\"primary-text-color font-semibold\">\r\n <app-core-table-card-manager\r\n *ngIf=\"\r\n column.type != columnsTypes.MULTI_COLUMN;\r\n else cardManagerElseBlock\r\n \"\r\n [rowSelector]=\"rowSelector\"\r\n (onColumnClicked)=\"columnClicked($event)\"\r\n [data]=\"data\"\r\n [column]=\"column\"\r\n >\r\n </app-core-table-card-manager>\r\n\r\n <ng-template #cardManagerElseBlock>\r\n <app-core-table-card-manager\r\n *ngFor=\"let childColumn of column.columns; let i = index\"\r\n [rowSelector]=\"rowSelector\"\r\n (onColumnClicked)=\"columnClicked($event)\"\r\n [data]=\"data\"\r\n [column]=\"childColumn\"\r\n >\r\n <span *ngIf=\"i > 0\">-</span>\r\n </app-core-table-card-manager>\r\n </ng-template>\r\n </span>\r\n </div>\r\n </core-card>\r\n </div>\r\n </ng-template>\r\n <core-table-no-content\r\n *ngIf=\"!loading\"\r\n [tableData]=\"sortedTableData\"\r\n [loading]=\"loading\"\r\n ></core-table-no-content>\r\n</div>\r\n", styles: ["table{border-collapse:collapse;width:100%;text-align:start}table td,table th{padding-top:12px;padding-bottom:12px;padding-inline-start:8px}table td{font-size:small;color:var(--default-table-td-text-color)}table tr:nth-child(2n){background-color:var(--default-table-tr-child-background-color)}table tr:hover{background-color:var(--default-table-tr-hover-background-color)}table th{background-color:var(--default-table-th-background-color);text-align:start;color:#1d1d1d}.actionButtons{position:absolute;bottom:0;background:var(--default-table-action-buttons-background-color);left:0;right:0;text-align:left;border-radius:.5rem;border-top-right-radius:0;border-top-left-radius:0;padding-top:4px;padding-left:16px}.selectRow{position:absolute;left:0;top:18px}.desc-sort-icon{transform:rotate(180deg)}.sort-icon{fill:var(--default-table-sort-icon-color)}.background-card{background-color:var(--default-table-background-card-color)}.secondary-text-color{color:var(--default-table-secondary-text-color)}.primary-text-color{color:var(--default-table-primary-text-color)}\n"] }]
|
|
154
|
+
args: [{ selector: 'core-table', template: "<div class=\"p-2 overflow-x-auto\">\r\n <table *ngIf=\"!isRunningOnSmallScreen || !responsive; else smallDeviceCard\">\r\n <tr>\r\n <th\r\n class=\"cursor-pointer text-center\"\r\n *ngFor=\"let column of activeColumnsSchema()\"\r\n >\r\n <div\r\n class=\"grid\"\r\n [ngClass]=\"[canFilter ? 'grid-rows-2' : 'grid-rows-1']\"\r\n >\r\n <span\r\n class=\"p-2 relative\"\r\n (click)=\"sortByHeader(column)\"\r\n [ngStyle]=\"{\r\n minWidth:\r\n column.type === columnsTypes.ACTION_BUTTONS\r\n ? column.data.length * 30 + 'px'\r\n : '',\r\n display:\r\n column.type === columnsTypes.ACTION_BUTTONS\r\n ? 'inline-block'\r\n : ''\r\n }\"\r\n >{{ column.label }}\r\n <app-sort-down-icon\r\n class=\"sort-icon w-2 h-2 inline-block absolute top-3 right-[-3px]\"\r\n *ngIf=\"\r\n sortDetail?.key == column.key && sortDetail?.sort === 'asc'\r\n \"\r\n ></app-sort-down-icon>\r\n <app-sort-up-icon\r\n class=\"sort-icon w-2 h-2 inline-block absolute top-3 right-[-3px]\"\r\n *ngIf=\"\r\n sortDetail?.key == column.key && sortDetail?.sort === 'desc'\r\n \"\r\n ></app-sort-up-icon>\r\n <app-sort-solid-icon\r\n class=\"sort-icon w-2 h-2 inline-block absolute top-3 right-[-3px]\"\r\n *ngIf=\"sortDetail?.key !== column.key\"\r\n ></app-sort-solid-icon>\r\n </span>\r\n <core-column-date-picker\r\n *ngIf=\"canFilter && column.type == columnsTypes.SHAMSI_DATE\"\r\n [canSelectToday]=\"true\"\r\n (onChange)=\"tableDataFiltered($event, column)\"\r\n >\r\n </core-column-date-picker>\r\n <core-column-input\r\n *ngIf=\"\r\n canFilter &&\r\n column.type !== columnsTypes.ACTION &&\r\n column.type !== columnsTypes.STATUS &&\r\n column.type !== columnsTypes.SHAMSI_DATE &&\r\n column.type !== columnsTypes.ROW_SELECTOR &&\r\n column.type !== columnsTypes.STATUS_ACTIVE &&\r\n column.type !== columnsTypes.ACTION_BUTTONS\r\n \"\r\n (onChange)=\"tableDataFiltered($event, column)\"\r\n ></core-column-input>\r\n <core-column-selector\r\n *ngIf=\"\r\n (canFilter && column.type == columnsTypes.STATUS) ||\r\n (canFilter && column.type == columnsTypes.STATUS_ACTIVE)\r\n \"\r\n [titleKey]=\"'title'\"\r\n [valueKey]=\"'value'\"\r\n [items]=\"\r\n column.type == columnsTypes.STATUS\r\n ? ACTIVE_OPTIONS\r\n : YES_NO_OPTIONS\r\n \"\r\n (onItemSelected)=\"tableDataFiltered($event, column)\"\r\n ></core-column-selector>\r\n </div>\r\n </th>\r\n </tr>\r\n <tr *ngFor=\"let data of sortedTableData\">\r\n <td\r\n *ngFor=\"let column of activeColumnsSchema()\"\r\n [class]=\"styleFilter ? styleFilter(data) : ''\"\r\n >\r\n <app-core-table-column-manager\r\n *ngIf=\"column.type != columnsTypes.MULTI_COLUMN; else elseBlock\"\r\n [rowSelector]=\"rowSelector\"\r\n (onColumnClicked)=\"columnClicked($event)\"\r\n [allTableData]=\"sortedTableData\"\r\n [data]=\"data\"\r\n [column]=\"column\"\r\n ></app-core-table-column-manager>\r\n <ng-template #elseBlock>\r\n <app-core-table-column-manager\r\n *ngFor=\"let childColumn of column.columns; let i = index\"\r\n [rowSelector]=\"rowSelector\"\r\n (onColumnClicked)=\"columnClicked($event)\"\r\n [data]=\"data\"\r\n [allTableData]=\"sortedTableData\"\r\n [column]=\"childColumn\"\r\n >\r\n <span *ngIf=\"i > 0\">-</span>\r\n </app-core-table-column-manager>\r\n </ng-template>\r\n </td>\r\n </tr>\r\n </table>\r\n <ng-template #smallDeviceCard>\r\n <div>\r\n <core-card\r\n *ngFor=\"let data of sortedTableData\"\r\n [cardClass]=\"'background-card m-4 p-4 relative'\"\r\n >\r\n <div\r\n class=\"leading-8\"\r\n *ngFor=\"let column of activeColumnsSchema()\"\r\n [class]=\"\r\n column.type === columnsTypes.ACTION_BUTTONS\r\n ? 'actionButtons'\r\n : column.type === columnsTypes.ROW_SELECTOR\r\n ? 'selectRow'\r\n : ''\r\n \"\r\n >\r\n <span\r\n *ngIf=\"\r\n column.type !== columnsTypes.ACTION_BUTTONS &&\r\n column.type !== columnsTypes.ROW_SELECTOR\r\n \"\r\n class=\"secondary-text-color\"\r\n >\r\n {{ column.label }} :\r\n </span>\r\n <span class=\"primary-text-color font-semibold\">\r\n <app-core-table-card-manager\r\n *ngIf=\"\r\n column.type != columnsTypes.MULTI_COLUMN;\r\n else cardManagerElseBlock\r\n \"\r\n [rowSelector]=\"rowSelector\"\r\n (onColumnClicked)=\"columnClicked($event)\"\r\n [data]=\"data\"\r\n [allTableData]=\"sortedTableData\"\r\n [column]=\"column\"\r\n >\r\n </app-core-table-card-manager>\r\n\r\n <ng-template #cardManagerElseBlock>\r\n <app-core-table-card-manager\r\n *ngFor=\"let childColumn of column.columns; let i = index\"\r\n [rowSelector]=\"rowSelector\"\r\n (onColumnClicked)=\"columnClicked($event)\"\r\n [data]=\"data\"\r\n [allTableData]=\"sortedTableData\"\r\n [column]=\"childColumn\"\r\n >\r\n <span *ngIf=\"i > 0\">-</span>\r\n </app-core-table-card-manager>\r\n </ng-template>\r\n </span>\r\n </div>\r\n </core-card>\r\n </div>\r\n </ng-template>\r\n <core-table-no-content\r\n *ngIf=\"!loading\"\r\n [tableData]=\"sortedTableData\"\r\n [loading]=\"loading\"\r\n ></core-table-no-content>\r\n</div>\r\n", styles: ["table{border-collapse:collapse;width:100%;text-align:start}table td,table th{padding-top:12px;padding-bottom:12px;padding-inline-start:8px}table td{font-size:small;color:var(--default-table-td-text-color)}table tr:nth-child(2n){background-color:var(--default-table-tr-child-background-color)}table tr:hover{background-color:var(--default-table-tr-hover-background-color)}table th{background-color:var(--default-table-th-background-color);text-align:start;color:#1d1d1d}.actionButtons{position:absolute;bottom:0;background:var(--default-table-action-buttons-background-color);left:0;right:0;text-align:left;border-radius:.5rem;border-top-right-radius:0;border-top-left-radius:0;padding-top:4px;padding-left:16px}.selectRow{position:absolute;left:0;top:18px}.desc-sort-icon{transform:rotate(180deg)}.sort-icon{fill:var(--default-table-sort-icon-color)}.background-card{background-color:var(--default-table-background-card-color)}.secondary-text-color{color:var(--default-table-secondary-text-color)}.primary-text-color{color:var(--default-table-primary-text-color)}\n"] }]
|
|
155
155
|
}], ctorParameters: function () { return [{ type: i1.NgxIndexedDBService }]; }, propDecorators: { key: [{
|
|
156
156
|
type: Input,
|
|
157
157
|
args: [{ required: false }]
|
|
@@ -178,4 +178,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
178
178
|
}], onColumnClicked: [{
|
|
179
179
|
type: Output
|
|
180
180
|
}] } });
|
|
181
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29yZS10YWJsZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9mYWxjb24tbGliL3NyYy9saWIvY29yZS10YWJsZS9jb3JlLXRhYmxlL2NvcmUtdGFibGUuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZmFsY29uLWxpYi9zcmMvbGliL2NvcmUtdGFibGUvY29yZS10YWJsZS9jb3JlLXRhYmxlLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFFTCxTQUFTLEVBQ1QsWUFBWSxFQUNaLEtBQUssRUFDTCxNQUFNLEdBQ1AsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUd2QyxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sUUFBUSxDQUFDO0FBQ2pDLE9BQU8sRUFDTCxjQUFjLEVBQ2QsYUFBYSxFQUNiLGNBQWMsR0FDZixNQUFNLDBCQUEwQixDQUFDO0FBQ2xDLE9BQU8sRUFBRSxJQUFJLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQzs7Ozs7Ozs7Ozs7Ozs7QUFNM0MsTUFBTSxPQUFPLGtCQUFrQjtJQWlCN0IsSUFBSSxZQUFZO1FBQ2QsT0FBTyxhQUFhLENBQUM7SUFDdkIsQ0FBQztJQUNELElBQUksc0JBQXNCO1FBQ3hCLE9BQU8sSUFBSSxDQUFDLHNCQUFzQixFQUFFLENBQUM7SUFDdkMsQ0FBQztJQUNELFlBQW9CLFNBQThCO1FBQTlCLGNBQVMsR0FBVCxTQUFTLENBQXFCO1FBcEJ2QixjQUFTLEdBQ2xDLElBQUksZUFBZSxDQUFRLEVBQUUsQ0FBQyxDQUFDO1FBQ0wsZUFBVSxHQUFZLElBQUksQ0FBQztRQUU5QyxjQUFTLEdBQVksS0FBSyxDQUFDO1FBRVIsZ0JBQVcsR0FDckMsU0FBUyxDQUFDO1FBQ0Ysb0JBQWUsR0FBc0IsSUFBSSxZQUFZLEVBQUUsQ0FB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QVEsRUFBRSxJQUFJLEVBQUU7Z0JBRUcsVUFBVTtzQkFBckMsS0FBSzt1QkFBQyxFQUFFLFFBQVEsRUFBRSxLQUFLLEVBQUU7Z0JBQ0MsT0FBTztzQkFBakMsS0FBSzt1QkFBQyxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUU7Z0JBQ2hCLFNBQVM7c0JBQWpCLEtBQUs7Z0JBQ3NCLFdBQVc7c0JBQXRDLEtBQUs7dUJBQUMsRUFBRSxRQUFRLEVBQUUsS0FBSyxFQUFFO2dCQUNFLFdBQVc7c0JBQXRDLEtBQUs7dUJBQUMsRUFBRSxRQUFRLEVBQUUsS0FBSyxFQUFFO2dCQUVoQixlQUFlO3NCQUF4QixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcclxuICBBZnRlckNvbnRlbnRDaGVja2VkLFxyXG4gIENvbXBvbmVudCxcclxuICBFdmVudEVtaXR0ZXIsXHJcbiAgSW5wdXQsXHJcbiAgT3V0cHV0LFxyXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QgfSBmcm9tICdyeGpzJztcclxuXHJcbmltcG9ydCB7IE5neEluZGV4ZWREQlNlcnZpY2UgfSBmcm9tICduZ3gtaW5kZXhlZC1kYic7XHJcbmltcG9ydCB7IG9yZGVyQnkgfSBmcm9tICdsb2Rhc2gnO1xyXG5pbXBvcnQge1xyXG4gIEFDVElWRV9PUFRJT05TLFxyXG4gIENPTFVNTlNfVFlQRVMsXHJcbiAgWUVTX05PX09QVElPTlMsXHJcbn0gZnJvbSAnLi4vLi4vLi4vdXRpbHMvY29uc3RhbnRzJztcclxuaW1wb3J0IHsgVXRpbCB9IGZyb20gJy4uLy4uLy4uL3V0aWxzL3V0aWwnO1xyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2NvcmUtdGFibGUnLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9jb3JlLXRhYmxlLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi9jb3JlLXRhYmxlLmNvbXBvbmVudC5zY3NzJ10sXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBDb3JlVGFibGVDb21wb25lbnQge1xyXG4gIEBJbnB1dCh7IHJlcXVpcmVkOiBmYWxzZSB9KSBrZXk6IHN0cmluZyB8IHVuZGVmaW5lZDtcclxuICBASW5wdXQoeyByZXF1aXJlZDogdHJ1ZSB9KSBjb2x1bW5zU2NoZW1hOiBhbnk7XHJcbiAgQElucHV0KHsgcmVxdWlyZWQ6IHRydWUgfSkgdGFibGVEYXRhOiBCZWhhdmlvclN1YmplY3Q8YW55W10+ID1cclxuICAgIG5ldyBCZWhhdmlvclN1YmplY3Q8YW55W10+KFtdKTtcclxuICBASW5wdXQoeyByZXF1aXJlZDogZmFsc2UgfSkgcmVzcG9uc2l2ZTogYm9vbGVhbiA9IHRydWU7XHJcbiAgQElucHV0KHsgcmVxdWlyZWQ6IHRydWUgfSkgbG9hZGluZzogYW55O1xyXG4gIEBJbnB1dCgpIGNhbkZpbHRlcjogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIEBJbnB1dCh7IHJlcXVpcmVkOiBmYWxzZSB9KSBzdHlsZUZpbHRlcjogKChkYXRhOiBhbnkpID0+IHN0cmluZykgfCB1bmRlZmluZWQ7XHJcbiAgQElucHV0KHsgcmVxdWlyZWQ6IGZhbHNlIH0pIHJvd1NlbGVjdG9yOiBCZWhhdmlvclN1YmplY3Q8YW55PiB8IHVuZGVmaW5lZCA9XHJcbiAgICB1bmRlZmluZWQ7XHJcbiAgQE91dHB1dCgpIG9uQ29sdW1uQ2xpY2tlZDogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcbiAgQUNUSVZFX09QVElPTlMgPSBBQ1RJVkVfT1BUSU9OUztcclxuICBZRVNfTk9fT1BUSU9OUyA9IFlFU19OT19PUFRJT05TO1xyXG4gIHNvcnREZXRhaWw6IHsga2V5OiBzdHJpbmc7IHNvcnQ6ICdhc2MnIHwgJ2Rlc2MnIH0gfCB1bmRlZmluZWQ7XHJcbiAgc29ydGVkVGFibGVEYXRhOiBhbnlbXSA9IFtdO1xyXG4gIGRiVGFibGVGaWx0ZXI6IGFueTtcclxuICBnZXQgY29sdW1uc1R5cGVzKCkge1xyXG4gICAgcmV0dXJuIENPTFVNTlNfVFlQRVM7XHJcbiAgfVxyXG4gIGdldCBpc1J1bm5pbmdPblNtYWxsU2NyZWVuKCkge1xyXG4gICAgcmV0dXJuIFV0aWwuaXNSdW5uaW5nT25TbWFsbFNjcmVlbigpO1xyXG4gIH1cclxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGRiU2VydmljZTogTmd4SW5kZXhlZERCU2VydmljZSkge31cclxuXHJcbiAgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgICB0aGlzLnRhYmxlRGF0YS5zdWJzY3JpYmUoKHZhbDogYW55KSA9PiB7XHJcbiAgICAgIHRoaXMuc29ydGVkVGFibGVEYXRhID0gdmFsO1xyXG4gICAgfSk7XHJcbiAgICBpZiAodGhpcy5rZXkpIHtcclxuICAgICAgdGhpcy5kYlNlcnZpY2VcclxuICAgICAgICAuZ2V0QnlJbmRleCgndGFibGVGaWx0ZXInLCAna2V5JywgdGhpcy5rZXkpXHJcbiAgICAgICAgLnN1YnNjcmliZSgoZGF0YTogYW55KSA9PiB7XHJcbiAgICAgICAgICB0aGlzLmRiVGFibGVGaWx0ZXIgPSBkYXRhO1xyXG4gICAgICAgICAgaWYgKHRoaXMuZGJUYWJsZUZpbHRlcikge1xyXG4gICAgICAgICAgICB0aGlzLnNldFRhYmxlRmlsdGVyKCk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfSk7XHJcbiAgICB9XHJcbiAgfVxyXG4gIHNldFRhYmxlRmlsdGVyKCkge1xyXG4gICAgdGhpcy5jb2x1bW5zU2NoZW1hLm1hcCgoY29sdW1uOiBhbnkpID0+IHtcclxuICAgICAgSlNPTi5wYXJzZSh0aGlzLmRiVGFibGVGaWx0ZXIuY29sdW1uc1NjaGVtYSkuZm9yRWFjaChcclxuICAgICAgICAoZGJDb2x1bW5zU2NoZW1hOiBhbnkpID0+IHtcclxuICAgICAgICAgIGlmIChkYkNvbHVtbnNTY2hlbWEua2V5ID09PSBjb2x1bW4ua2V5KSB7XHJcbiAgICAgICAgICAgIGNvbHVtbi5hY3RpdmUgPSBkYkNvbHVtbnNTY2hlbWEuYWN0aXZlO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgKTtcclxuICAgICAgcmV0dXJuIGNvbHVtbjtcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgY29sdW1uQ2xpY2tlZCh2YWw6IGFueSkge1xyXG4gICAgdGhpcy5vbkNvbHVtbkNsaWNrZWQuZW1pdCh2YWwpO1xyXG4gIH1cclxuICBzb3J0QnlIZWFkZXIoY29sdW1uOiBhbnkpIHtcclxuICAgIGlmICh0aGlzLnNvcnREZXRhaWwgJiYgdGhpcy5zb3J0RGV0YWlsLmtleSA9PSBjb2x1bW4ua2V5KSB7XHJcbiAgICAgIGlmICh0aGlzLnNvcnREZXRhaWwuc29ydCA9PSAnZGVzYycpIHtcclxuICAgICAgICB0aGlzLnNvcnREZXRhaWwgPSB7IGtleTogY29sdW1uLmtleSwgc29ydDogJ2FzYycgfTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICB0aGlzLnNvcnREZXRhaWwgPSB7IGtleTogY29sdW1uLmtleSwgc29ydDogJ2Rlc2MnIH07XHJcbiAgICAgIH1cclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMuc29ydERldGFpbCA9IHsga2V5OiBjb2x1bW4ua2V5LCBzb3J0OiAnYXNjJyB9O1xyXG4gICAgfVxyXG4gICAgaWYgKFxyXG4gICAgICBjb2x1bW4udHlwZSA9PSBDT0xVTU5TX1RZUEVTLlRFWFQgfHxcclxuICAgICAgY29sdW1uLnR5cGUgPT0gQ09MVU1OU19UWVBFUy5OVU1CRVJcclxuICAgICkge1xyXG4gICAgICB0aGlzLnNvcnRlZFRhYmxlRGF0YSA9IG9yZGVyQnkoXHJcbiAgICAgICAgdGhpcy5zb3J0ZWRUYWJsZURhdGEsXHJcbiAgICAgICAgW2NvbHVtbi5rZXldLFxyXG4gICAgICAgIFt0aGlzLnNvcnREZXRhaWwuc29ydF1cclxuICAgICAgKTtcclxuICAgIH0gZWxzZSBpZiAoY29sdW1uLnR5cGUgPT0gQ09MVU1OU19UWVBFUy5TRUxFQ1RPUikge1xyXG4gICAgICB0aGlzLnNvcnRlZFRhYmxlRGF0YSA9IG9yZGVyQnkoXHJcbiAgICAgICAgdGhpcy5zb3J0ZWRUYWJsZURhdGEsXHJcbiAgICAgICAgWyhjKSA9PiBjW2NvbHVtbi5rZXldW2NvbHVtbi5kYXRhLmtleV1dLFxyXG4gICAgICAgIFt0aGlzLnNvcnREZXRhaWwuc29ydF1cclxuICAgICAgKTtcclxuICAgIH0gZWxzZSBpZiAoY29sdW1uLnR5cGUgPT0gQ09MVU1OU19UWVBFUy5TSEFNU0lfREFURSkge1xyXG4gICAgICB0aGlzLnNvcnRlZFRhYmxlRGF0YSA9IG9yZGVyQnkoXHJcbiAgICAgICAgdGhpcy5zb3J0ZWRUYWJsZURhdGEsXHJcbiAgICAgICAgWyhjKSA9PiBuZXcgRGF0ZShjW2NvbHVtbi5rZXldKS5nZXRUaW1lKCldLFxyXG4gICAgICAgIFt0aGlzLnNvcnREZXRhaWwuc29ydF1cclxuICAgICAgKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGFjdGl2ZUNvbHVtbnNTY2hlbWEoKTogYW55W10ge1xyXG4gICAgcmV0dXJuIHRoaXMuY29sdW1uc1NjaGVtYS5maWx0ZXIoXHJcbiAgICAgIChjb2x1bW46IGFueSkgPT4gY29sdW1uLmFjdGl2ZSA9PT0gdW5kZWZpbmVkIHx8IGNvbHVtbi5hY3RpdmVcclxuICAgICk7XHJcbiAgfVxyXG5cclxuICB0YWJsZURhdGFGaWx0ZXJlZCh0ZXh0OiBTdHJpbmcgfCBib29sZWFuLCBjb2x1bW46IGFueSkge1xyXG4gICAgdGhpcy5jb2x1bW5zU2NoZW1hLm1hcCgoY29sdW1uU2NoZW1hOiBhbnkpID0+IHtcclxuICAgICAgaWYgKGNvbHVtblNjaGVtYS5rZXkgPT09IGNvbHVtbi5rZXkpIHtcclxuICAgICAgICBjb2x1bW5TY2hlbWEuY29sdW1uRmlsdGVyID0gdGV4dDtcclxuICAgICAgfVxyXG4gICAgICByZXR1cm4gY29sdW1uU2NoZW1hO1xyXG4gICAgfSk7XHJcbiAgICBjb25zdCB0YWJsZURhdGEgPSB0aGlzLnRhYmxlRGF0YS5nZXRWYWx1ZSgpO1xyXG4gICAgdGhpcy5zb3J0ZWRUYWJsZURhdGEgPSB0YWJsZURhdGEuZmlsdGVyKChkYXRhOiBhbnkpID0+IHtcclxuICAgICAgbGV0IHJlc3VsdCA9IHRydWU7XHJcbiAgICAgIHRoaXMuY29sdW1uc1NjaGVtYS5mb3JFYWNoKChjb2x1bW5TY2hlbWE6IGFueSkgPT4ge1xyXG4gICAgICAgIGlmIChcclxuICAgICAgICAgIGNvbHVtblNjaGVtYS50eXBlID09PSB0aGlzLmNvbHVtbnNUeXBlcy5ST1dfU0VMRUNUT1IgfHxcclxuICAgICAgICAgIGNvbHVtblNjaGVtYS50eXBlID09PSB0aGlzLmNvbHVtbnNUeXBlcy5BQ1RJT04gfHxcclxuICAgICAgICAgIGNvbHVtblNjaGVtYS50eXBlID09PSB0aGlzLmNvbHVtbnNUeXBlcy5BQ1RJT05fQlVUVE9OUyB8fFxyXG4gICAgICAgICAgY29sdW1uU2NoZW1hLmNvbHVtbkZpbHRlciA9PT0gdW5kZWZpbmVkIHx8XHJcbiAgICAgICAgICAhcmVzdWx0XHJcbiAgICAgICAgKSB7XHJcbiAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGlmIChjb2x1bW5TY2hlbWEudHlwZSA9PT0gdGhpcy5jb2x1bW5zVHlwZXMuU0VMRUNUT1IpIHtcclxuICAgICAgICAgIHJlc3VsdCA9IGRhdGFbY29sdW1uU2NoZW1hLmtleV1bY29sdW1uU2NoZW1hLmRhdGEua2V5XVxyXG4gICAgICAgICAgICAudG9Mb3dlckNhc2UoKVxyXG4gICAgICAgICAgICAuaW5jbHVkZXMoY29sdW1uU2NoZW1hLmNvbHVtbkZpbHRlci50b1N0cmluZygpLnRvTG93ZXJDYXNlKCkpO1xyXG4gICAgICAgIH0gZWxzZSBpZiAoY29sdW1uU2NoZW1hLnR5cGUgPT09IHRoaXMuY29sdW1uc1R5cGVzLlNIQU1TSV9EQVRFKSB7XHJcbiAgICAgICAgICBpZiAoY29sdW1uU2NoZW1hLmNvbHVtbkZpbHRlciA9PT0gJycpIHtcclxuICAgICAgICAgICAgcmVzdWx0ID0gdHJ1ZTtcclxuICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIHJlc3VsdCA9IGRhdGFbY29sdW1uU2NoZW1hLmtleV1cclxuICAgICAgICAgICAgICAudG9Mb3dlckNhc2UoKVxyXG4gICAgICAgICAgICAgIC5pbmNsdWRlcyhcclxuICAgICAgICAgICAgICAgIFV0aWwuc2hhbXNpVG9NaWxhZGkoXHJcbiAgICAgICAgICAgICAgICAgIGNvbHVtblNjaGVtYS5jb2x1bW5GaWx0ZXIudG9TdHJpbmcoKSxcclxuICAgICAgICAgICAgICAgICAgJ1lZWVktTU0tREQnXHJcbiAgICAgICAgICAgICAgICApXHJcbiAgICAgICAgICAgICAgKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9IGVsc2UgaWYgKGNvbHVtblNjaGVtYS50eXBlID09PSB0aGlzLmNvbHVtbnNUeXBlcy5NVUxUSV9DT0xVTU4pIHtcclxuICAgICAgICAgIHJlc3VsdCA9IGNvbHVtblNjaGVtYS5jb2x1bW5zLnNvbWUoKGl0ZW06IGFueSkgPT4ge1xyXG4gICAgICAgICAgICByZXR1cm4gZGF0YVtpdGVtLmtleV1baXRlbS5kYXRhLmtleV1cclxuICAgICAgICAgICAgICAudG9Mb3dlckNhc2UoKVxyXG4gICAgICAgICAgICAgIC5pbmNsdWRlcyhjb2x1bW5TY2hlbWEuY29sdW1uRmlsdGVyPy50b1N0cmluZygpPy50b0xvd2VyQ2FzZSgpKTtcclxuICAgICAgICAgIH0pO1xyXG4gICAgICAgIH0gZWxzZSBpZiAoY29sdW1uU2NoZW1hLnR5cGUgPT09IHRoaXMuY29sdW1uc1R5cGVzLlNUQVRVUykge1xyXG4gICAgICAgICAgaWYgKGNvbHVtblNjaGVtYS5jb2x1bW5GaWx0ZXIgPT09ICcnKSB7XHJcbiAgICAgICAgICAgIHJlc3VsdCA9IHRydWU7XHJcbiAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICByZXN1bHQgPSBkYXRhW2NvbHVtblNjaGVtYS5rZXldID09PSBjb2x1bW5TY2hlbWEuY29sdW1uRmlsdGVyO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICByZXN1bHQgPSBkYXRhW2NvbHVtblNjaGVtYS5rZXldXHJcbiAgICAgICAgICAgIC50b1N0cmluZygpXHJcbiAgICAgICAgICAgIC50b0xvd2VyQ2FzZSgpXHJcbiAgICAgICAgICAgIC5pbmNsdWRlcyhjb2x1bW5TY2hlbWEuY29sdW1uRmlsdGVyPy50b1N0cmluZygpPy50b0xvd2VyQ2FzZSgpKTtcclxuICAgICAgICB9XHJcbiAgICAgIH0pO1xyXG4gICAgICByZXR1cm4gcmVzdWx0O1xyXG4gICAgfSk7XHJcbiAgfVxyXG59XHJcbiIsIjxkaXYgY2xhc3M9XCJwLTIgb3ZlcmZsb3cteC1hdXRvXCI+XHJcbiAgPHRhYmxlICpuZ0lmPVwiIWlzUnVubmluZ09uU21hbGxTY3JlZW4gfHwgIXJlc3BvbnNpdmU7IGVsc2Ugc21hbGxEZXZpY2VDYXJkXCI+XHJcbiAgICA8dHI+XHJcbiAgICAgIDx0aFxyXG4gICAgICAgIGNsYXNzPVwiY3Vyc29yLXBvaW50ZXIgdGV4dC1jZW50ZXJcIlxyXG4gICAgICAgICpuZ0Zvcj1cImxldCBjb2x1bW4gb2YgYWN0aXZlQ29sdW1uc1NjaGVtYSgpXCJcclxuICAgICAgPlxyXG4gICAgICAgIDxkaXZcclxuICAgICAgICAgIGNsYXNzPVwiZ3JpZFwiXHJcbiAgICAgICAgICBbbmdDbGFzc109XCJbY2FuRmlsdGVyID8gJ2dyaWQtcm93cy0yJyA6ICdncmlkLXJvd3MtMSddXCJcclxuICAgICAgICA+XHJcbiAgICAgICAgICA8c3BhblxyXG4gICAgICAgICAgICBjbGFzcz1cInAtMiByZWxhdGl2ZVwiXHJcbiAgICAgICAgICAgIChjbGljayk9XCJzb3J0QnlIZWFkZXIoY29sdW1uKVwiXHJcbiAgICAgICAgICAgIFtuZ1N0eWxlXT1cIntcclxuICAgICAgICAgICAgICBtaW5XaWR0aDpcclxuICAgICAgICAgICAgICAgIGNvbHVtbi50eXBlID09PSBjb2x1bW5zVHlwZXMuQUNUSU9OX0JVVFRPTlNcclxuICAgICAgICAgICAgICAgICAgPyBjb2x1bW4uZGF0YS5sZW5ndGggKiAzMCArICdweCdcclxuICAgICAgICAgICAgICAgICAgOiAnJyxcclxuICAgICAgICAgICAgICBkaXNwbGF5OlxyXG4gICAgICAgICAgICAgICAgY29sdW1uLnR5cGUgPT09IGNvbHVtbnNUeXBlcy5BQ1RJT05fQlVUVE9OU1xyXG4gICAgICAgICAgICAgICAgICA/ICdpbmxpbmUtYmxvY2snXHJcbiAgICAgICAgICAgICAgICAgIDogJydcclxuICAgICAgICAgICAgfVwiXHJcbiAgICAgICAgICAgID57eyBjb2x1bW4ubGFiZWwgfX1cclxuICAgICAgICAgICAgPGFwcC1zb3J0LWRvd24taWNvblxyXG4gICAgICAgICAgICAgIGNsYXNzPVwic29ydC1pY29uIHctMiBoLTIgaW5saW5lLWJsb2NrIGFic29sdXRlIHRvcC0zIHJpZ2h0LVstM3B4XVwiXHJcbiAgICAgICAgICAgICAgKm5nSWY9XCJcclxuICAgICAgICAgICAgICAgIHNvcnREZXRhaWw/LmtleSA9PSBjb2x1bW4ua2V5ICYmIHNvcnREZXRhaWw/LnNvcnQgPT09ICdhc2MnXHJcbiAgICAgICAgICAgICAgXCJcclxuICAgICAgICAgICAgPjwvYXBwLXNvcnQtZG93bi1pY29uPlxyXG4gICAgICAgICAgICA8YXBwLXNvcnQtdXAtaWNvblxyXG4gICAgICAgICAgICAgIGNsYXNzPVwic29ydC1pY29uIHctMiBoLTIgaW5saW5lLWJsb2NrIGFic29sdXRlIHRvcC0zIHJpZ2h0LVstM3B4XVwiXHJcbiAgICAgICAgICAgICAgKm5nSWY9XCJcclxuICAgICAgICAgICAgICAgIHNvcnREZXRhaWw/LmtleSA9PSBjb2x1bW4ua2V5ICYmIHNvcnREZXRhaWw/LnNvcnQgPT09ICdkZXNjJ1xyXG4gICAgICAgICAgICAgIFwiXHJcbiAgICAgICAgICAgID48L2FwcC1zb3J0LXVwLWljb24+XHJcbiAgICAgICAgICAgIDxhcHAtc29ydC1zb2xpZC1pY29uXHJcbiAgICAgICAgICAgICAgY2xhc3M9XCJzb3J0LWljb24gdy0yIGgtMiBpbmxpbmUtYmxvY2sgYWJzb2x1dGUgdG9wLTMgcmlnaHQtWy0zcHhdXCJcclxuICAgICAgICAgICAgICAqbmdJZj1cInNvcnREZXRhaWw/LmtleSAhPT0gY29sdW1uLmtleVwiXHJcbiAgICAgICAgICAgID48L2FwcC1zb3J0LXNvbGlkLWljb24+XHJcbiAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICA8Y29yZS1jb2x1bW4tZGF0ZS1waWNrZXJcclxuICAgICAgICAgICAgKm5nSWY9XCJjYW5GaWx0ZXIgJiYgY29sdW1uLnR5cGUgPT0gY29sdW1uc1R5cGVzLlNIQU1TSV9EQVRFXCJcclxuICAgICAgICAgICAgW2NhblNlbGVjdFRvZGF5XT1cInRydWVcIlxyXG4gICAgICAgICAgICAob25DaGFuZ2UpPVwidGFibGVEYXRhRmlsdGVyZWQoJGV2ZW50LCBjb2x1bW4pXCJcclxuICAgICAgICAgID5cclxuICAgICAgICAgIDwvY29yZS1jb2x1bW4tZGF0ZS1waWNrZXI+XHJcbiAgICAgICAgICA8Y29yZS1jb2x1bW4taW5wdXRcclxuICAgICAgICAgICAgKm5nSWY9XCJcclxuICAgICAgICAgICAgICBjYW5GaWx0ZXIgJiZcclxuICAgICAgICAgICAgICBjb2x1bW4udHlwZSAhPT0gY29sdW1uc1R5cGVzLkFDVElPTiAmJlxyXG4gICAgICAgICAgICAgIGNvbHVtbi50eXBlICE9PSBjb2x1bW5zVHlwZXMuU1RBVFVTICYmXHJcbiAgICAgICAgICAgICAgY29sdW1uLnR5cGUgIT09IGNvbHVtbnNUeXBlcy5TSEFNU0lfREFURSAmJlxyXG4gICAgICAgICAgICAgIGNvbHVtbi50eXBlICE9PSBjb2x1bW5zVHlwZXMuUk9XX1NFTEVDVE9SICYmXHJcbiAgICAgICAgICAgICAgY29sdW1uLnR5cGUgIT09IGNvbHVtbnNUeXBlcy5TVEFUVVNfQUNUSVZFICYmXHJcbiAgICAgICAgICAgICAgY29sdW1uLnR5cGUgIT09IGNvbHVtbnNUeXBlcy5BQ1RJT05fQlVUVE9OU1xyXG4gICAgICAgICAgICBcIlxyXG4gICAgICAgICAgICAob25DaGFuZ2UpPVwidGFibGVEYXRhRmlsdGVyZWQoJGV2ZW50LCBjb2x1bW4pXCJcclxuICAgICAgICAgID48L2NvcmUtY29sdW1uLWlucHV0PlxyXG4gICAgICAgICAgPGNvcmUtY29sdW1uLXNlbGVjdG9yXHJcbiAgICAgICAgICAgICpuZ0lmPVwiXHJcbiAgICAgICAgICAgICAgKGNhbkZpbHRlciAmJiBjb2x1bW4udHlwZSA9PSBjb2x1bW5zVHlwZXMuU1RBVFVTKSB8fFxyXG4gICAgICAgICAgICAgIChjYW5GaWx0ZXIgJiYgY29sdW1uLnR5cGUgPT0gY29sdW1uc1R5cGVzLlNUQVRVU19BQ1RJVkUpXHJcbiAgICAgICAgICAgIFwiXHJcbiAgICAgICAgICAgIFt0aXRsZUtleV09XCIndGl0bGUnXCJcclxuICAgICAgICAgICAgW3ZhbHVlS2V5XT1cIid2YWx1ZSdcIlxyXG4gICAgICAgICAgICBbaXRlbXNdPVwiXHJcbiAgICAgICAgICAgICAgY29sdW1uLnR5cGUgPT0gY29sdW1uc1R5cGVzLlNUQVRVU1xyXG4gICAgICAgICAgICAgICAgPyBBQ1RJVkVfT1BUSU9OU1xyXG4gICAgICAgICAgICAgICAgOiBZRVNfTk9fT1BUSU9OU1xyXG4gICAgICAgICAgICBcIlxyXG4gICAgICAgICAgICAob25JdGVtU2VsZWN0ZWQpPVwidGFibGVEYXRhRmlsdGVyZWQoJGV2ZW50LCBjb2x1bW4pXCJcclxuICAgICAgICAgID48L2NvcmUtY29sdW1uLXNlbGVjdG9yPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICA8L3RoPlxyXG4gICAgPC90cj5cclxuICAgIDx0ciAqbmdGb3I9XCJsZXQgZGF0YSBvZiBzb3J0ZWRUYWJsZURhdGFcIj5cclxuICAgICAgPHRkXHJcbiAgICAgICAgKm5nRm9yPVwibGV0IGNvbHVtbiBvZiBhY3RpdmVDb2x1bW5zU2NoZW1hKClcIlxyXG4gICAgICAgIFtjbGFzc109XCJzdHlsZUZpbHRlciA/IHN0eWxlRmlsdGVyKGRhdGEpIDogJydcIlxyXG4gICAgICA+XHJcbiAgICAgICAgPGFwcC1jb3JlLXRhYmxlLWNvbHVtbi1tYW5hZ2VyXHJcbiAgICAgICAgICAqbmdJZj1cImNvbHVtbi50eXBlICE9IGNvbHVtbnNUeXBlcy5NVUxUSV9DT0xVTU47IGVsc2UgZWxzZUJsb2NrXCJcclxuICAgICAgICAgIFtyb3dTZWxlY3Rvcl09XCJyb3dTZWxlY3RvclwiXHJcbiAgICAgICAgICAob25Db2x1bW5DbGlja2VkKT1cImNvbHVtbkNsaWNrZWQoJGV2ZW50KVwiXHJcbiAgICAgICAgICBbZGF0YV09XCJkYXRhXCJcclxuICAgICAgICAgIFtjb2x1bW5dPVwiY29sdW1uXCJcclxuICAgICAgICA+PC9hcHAtY29yZS10YWJsZS1jb2x1bW4tbWFuYWdlcj5cclxuICAgICAgICA8bmctdGVtcGxhdGUgI2Vsc2VCbG9jaz5cclxuICAgICAgICAgIDxhcHAtY29yZS10YWJsZS1jb2x1bW4tbWFuYWdlclxyXG4gICAgICAgICAgICAqbmdGb3I9XCJsZXQgY2hpbGRDb2x1bW4gb2YgY29sdW1uLmNvbHVtbnM7IGxldCBpID0gaW5kZXhcIlxyXG4gICAgICAgICAgICBbcm93U2VsZWN0b3JdPVwicm93U2VsZWN0b3JcIlxyXG4gICAgICAgICAgICAob25Db2x1bW5DbGlja2VkKT1cImNvbHVtbkNsaWNrZWQoJGV2ZW50KVwiXHJcbiAgICAgICAgICAgIFtkYXRhXT1cImRhdGFcIlxyXG4gICAgICAgICAgICBbY29sdW1uXT1cImNoaWxkQ29sdW1uXCJcclxuICAgICAgICAgID5cclxuICAgICAgICAgICAgPHNwYW4gKm5nSWY9XCJpID4gMFwiPi08L3NwYW4+XHJcbiAgICAgICAgICA8L2FwcC1jb3JlLXRhYmxlLWNvbHVtbi1tYW5hZ2VyPlxyXG4gICAgICAgIDwvbmctdGVtcGxhdGU+XHJcbiAgICAgIDwvdGQ+XHJcbiAgICA8L3RyPlxyXG4gIDwvdGFibGU+XHJcbiAgPG5nLXRlbXBsYXRlICNzbWFsbERldmljZUNhcmQ+XHJcbiAgICA8ZGl2PlxyXG4gICAgICA8Y29yZS1jYXJkXHJcbiAgICAgICAgKm5nRm9yPVwibGV0IGRhdGEgb2Ygc29ydGVkVGFibGVEYXRhXCJcclxuICAgICAgICBbY2FyZENsYXNzXT1cIidiYWNrZ3JvdW5kLWNhcmQgbS00IHAtNCByZWxhdGl2ZSdcIlxyXG4gICAgICA+XHJcbiAgICAgICAgPGRpdlxyXG4gICAgICAgICAgY2xhc3M9XCJsZWFkaW5nLThcIlxyXG4gICAgICAgICAgKm5nRm9yPVwibGV0IGNvbHVtbiBvZiBhY3RpdmVDb2x1bW5zU2NoZW1hKClcIlxyXG4gICAgICAgICAgW2NsYXNzXT1cIlxyXG4gICAgICAgICAgICBjb2x1bW4udHlwZSA9PT0gY29sdW1uc1R5cGVzLkFDVElPTl9CVVRUT05TXHJcbiAgICAgICAgICAgICAgPyAnYWN0aW9uQnV0dG9ucydcclxuICAgICAgICAgICAgICA6IGNvbHVtbi50eXBlID09PSBjb2x1bW5zVHlwZXMuUk9XX1NFTEVDVE9SXHJcbiAgICAgICAgICAgICAgPyAnc2VsZWN0Um93J1xyXG4gICAgICAgICAgICAgIDogJydcclxuICAgICAgICAgIFwiXHJcbiAgICAgICAgPlxyXG4gICAgICAgICAgPHNwYW5cclxuICAgICAgICAgICAgKm5nSWY9XCJcclxuICAgICAgICAgICAgICBjb2x1bW4udHlwZSAhPT0gY29sdW1uc1R5cGVzLkFDVElPTl9CVVRUT05TICYmXHJcbiAgICAgICAgICAgICAgY29sdW1uLnR5cGUgIT09IGNvbHVtbnNUeXBlcy5ST1dfU0VMRUNUT1JcclxuICAgICAgICAgICAgXCJcclxuICAgICAgICAgICAgY2xhc3M9XCJzZWNvbmRhcnktdGV4dC1jb2xvclwiXHJcbiAgICAgICAgICA+XHJcbiAgICAgICAgICAgIHt7IGNvbHVtbi5sYWJlbCB9fSA6XHJcbiAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICA8c3BhbiBjbGFzcz1cInByaW1hcnktdGV4dC1jb2xvciBmb250LXNlbWlib2xkXCI+XHJcbiAgICAgICAgICAgIDxhcHAtY29yZS10YWJsZS1jYXJkLW1hbmFnZXJcclxuICAgICAgICAgICAgICAqbmdJZj1cIlxyXG4gICAgICAgICAgICAgICAgY29sdW1uLnR5cGUgIT0gY29sdW1uc1R5cGVzLk1VTFRJX0NPTFVNTjtcclxuICAgICAgICAgICAgICAgIGVsc2UgY2FyZE1hbmFnZXJFbHNlQmxvY2tcclxuICAgICAgICAgICAgICBcIlxyXG4gICAgICAgICAgICAgIFtyb3dTZWxlY3Rvcl09XCJyb3dTZWxlY3RvclwiXHJcbiAgICAgICAgICAgICAgKG9uQ29sdW1uQ2xpY2tlZCk9XCJjb2x1bW5DbGlja2VkKCRldmVudClcIlxyXG4gICAgICAgICAgICAgIFtkYXRhXT1cImRhdGFcIlxyXG4gICAgICAgICAgICAgIFtjb2x1bW5dPVwiY29sdW1uXCJcclxuICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICA8L2FwcC1jb3JlLXRhYmxlLWNhcmQtbWFuYWdlcj5cclxuXHJcbiAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSAjY2FyZE1hbmFnZXJFbHNlQmxvY2s+XHJcbiAgICAgICAgICAgICAgPGFwcC1jb3JlLXRhYmxlLWNhcmQtbWFuYWdlclxyXG4gICAgICAgICAgICAgICAgKm5nRm9yPVwibGV0IGNoaWxkQ29sdW1uIG9mIGNvbHVtbi5jb2x1bW5zOyBsZXQgaSA9IGluZGV4XCJcclxuICAgICAgICAgICAgICAgIFtyb3dTZWxlY3Rvcl09XCJyb3dTZWxlY3RvclwiXHJcbiAgICAgICAgICAgICAgICAob25Db2x1bW5DbGlja2VkKT1cImNvbHVtbkNsaWNrZWQoJGV2ZW50KVwiXHJcbiAgICAgICAgICAgICAgICBbZGF0YV09XCJkYXRhXCJcclxuICAgICAgICAgICAgICAgIFtjb2x1bW5dPVwiY2hpbGRDb2x1bW5cIlxyXG4gICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgIDxzcGFuICpuZ0lmPVwiaSA+IDBcIj4tPC9zcGFuPlxyXG4gICAgICAgICAgICAgIDwvYXBwLWNvcmUtdGFibGUtY2FyZC1tYW5hZ2VyPlxyXG4gICAgICAgICAgICA8L25nLXRlbXBsYXRlPlxyXG4gICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICA8L2NvcmUtY2FyZD5cclxuICAgIDwvZGl2PlxyXG4gIDwvbmctdGVtcGxhdGU+XHJcbiAgPGNvcmUtdGFibGUtbm8tY29udGVudFxyXG4gICAgKm5nSWY9XCIhbG9hZGluZ1wiXHJcbiAgICBbdGFibGVEYXRhXT1cInNvcnRlZFRhYmxlRGF0YVwiXHJcbiAgICBbbG9hZGluZ109XCJsb2FkaW5nXCJcclxuICA+PC9jb3JlLXRhYmxlLW5vLWNvbnRlbnQ+XHJcbjwvZGl2PlxyXG4iXX0=
|
|
181
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29yZS10YWJsZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9mYWxjb24tbGliL3NyYy9saWIvY29yZS10YWJsZS9jb3JlLXRhYmxlL2NvcmUtdGFibGUuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZmFsY29uLWxpYi9zcmMvbGliL2NvcmUtdGFibGUvY29yZS10YWJsZS9jb3JlLXRhYmxlLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFFTCxTQUFTLEVBQ1QsWUFBWSxFQUNaLEtBQUssRUFDTCxNQUFNLEdBQ1AsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUd2QyxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sUUFBUSxDQUFDO0FBQ2pDLE9BQU8sRUFDTCxjQUFjLEVBQ2QsYUFBYSxFQUNiLGNBQWMsR0FDZixNQUFNLDBCQUEwQixDQUFDO0FBQ2xDLE9BQU8sRUFBRSxJQUFJLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQzs7Ozs7Ozs7Ozs7Ozs7QUFNM0MsTUFBTSxPQUFPLGtCQUFrQjtJQWlCN0IsSUFBSSxZQUFZO1FBQ2QsT0FBTyxhQUFhLENBQUM7SUFDdkIsQ0FBQztJQUNELElBQUksc0JBQXNCO1FBQ3hCLE9BQU8sSUFBSSxDQUFDLHNCQUFzQixFQUFFLENBQUM7SUFDdkMsQ0FBQztJQUNELFlBQW9CLFNBQThCO1FBQTlCLGNBQVMsR0FBVCxTQUFTLENBQXFCO1FBcEJ2QixjQUFTLEdBQ2xDLElBQUksZUFBZSxDQUFRLEVBQUUsQ0FBQyxDQUFDO1FBQ0wsZUFBVSxHQUFZLElBQUksQ0FBQztRQUU5QyxjQUFTLEdBQVksS0FBSyxDQUFDO1FBRVIsZ0JBQVcsR0FDckMsU0FBUyxDQUFDO1FBQ0Ysb0JBQWUsR0FBc0IsSUFBSSxZQUFZLEVBQUUsQ0FB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QVEsRUFBRSxJQUFJLEVBQUU7Z0JBRUcsVUFBVTtzQkFBckMsS0FBSzt1QkFBQyxFQUFFLFFBQVEsRUFBRSxLQUFLLEVBQUU7Z0JBQ0MsT0FBTztzQkFBakMsS0FBSzt1QkFBQyxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUU7Z0JBQ2hCLFNBQVM7c0JBQWpCLEtBQUs7Z0JBQ3NCLFdBQVc7c0JBQXRDLEtBQUs7dUJBQUMsRUFBRSxRQUFRLEVBQUUsS0FBSyxFQUFFO2dCQUNFLFdBQVc7c0JBQXRDLEtBQUs7dUJBQUMsRUFBRSxRQUFRLEVBQUUsS0FBSyxFQUFFO2dCQUVoQixlQUFlO3NCQUF4QixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcclxuICBBZnRlckNvbnRlbnRDaGVja2VkLFxyXG4gIENvbXBvbmVudCxcclxuICBFdmVudEVtaXR0ZXIsXHJcbiAgSW5wdXQsXHJcbiAgT3V0cHV0LFxyXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QgfSBmcm9tICdyeGpzJztcclxuXHJcbmltcG9ydCB7IE5neEluZGV4ZWREQlNlcnZpY2UgfSBmcm9tICduZ3gtaW5kZXhlZC1kYic7XHJcbmltcG9ydCB7IG9yZGVyQnkgfSBmcm9tICdsb2Rhc2gnO1xyXG5pbXBvcnQge1xyXG4gIEFDVElWRV9PUFRJT05TLFxyXG4gIENPTFVNTlNfVFlQRVMsXHJcbiAgWUVTX05PX09QVElPTlMsXHJcbn0gZnJvbSAnLi4vLi4vLi4vdXRpbHMvY29uc3RhbnRzJztcclxuaW1wb3J0IHsgVXRpbCB9IGZyb20gJy4uLy4uLy4uL3V0aWxzL3V0aWwnO1xyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2NvcmUtdGFibGUnLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9jb3JlLXRhYmxlLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi9jb3JlLXRhYmxlLmNvbXBvbmVudC5zY3NzJ10sXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBDb3JlVGFibGVDb21wb25lbnQge1xyXG4gIEBJbnB1dCh7IHJlcXVpcmVkOiBmYWxzZSB9KSBrZXk6IHN0cmluZyB8IHVuZGVmaW5lZDtcclxuICBASW5wdXQoeyByZXF1aXJlZDogdHJ1ZSB9KSBjb2x1bW5zU2NoZW1hOiBhbnk7XHJcbiAgQElucHV0KHsgcmVxdWlyZWQ6IHRydWUgfSkgdGFibGVEYXRhOiBCZWhhdmlvclN1YmplY3Q8YW55W10+ID1cclxuICAgIG5ldyBCZWhhdmlvclN1YmplY3Q8YW55W10+KFtdKTtcclxuICBASW5wdXQoeyByZXF1aXJlZDogZmFsc2UgfSkgcmVzcG9uc2l2ZTogYm9vbGVhbiA9IHRydWU7XHJcbiAgQElucHV0KHsgcmVxdWlyZWQ6IHRydWUgfSkgbG9hZGluZzogYW55O1xyXG4gIEBJbnB1dCgpIGNhbkZpbHRlcjogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIEBJbnB1dCh7IHJlcXVpcmVkOiBmYWxzZSB9KSBzdHlsZUZpbHRlcjogKChkYXRhOiBhbnkpID0+IHN0cmluZykgfCB1bmRlZmluZWQ7XHJcbiAgQElucHV0KHsgcmVxdWlyZWQ6IGZhbHNlIH0pIHJvd1NlbGVjdG9yOiBCZWhhdmlvclN1YmplY3Q8YW55PiB8IHVuZGVmaW5lZCA9XHJcbiAgICB1bmRlZmluZWQ7XHJcbiAgQE91dHB1dCgpIG9uQ29sdW1uQ2xpY2tlZDogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcbiAgQUNUSVZFX09QVElPTlMgPSBBQ1RJVkVfT1BUSU9OUztcclxuICBZRVNfTk9fT1BUSU9OUyA9IFlFU19OT19PUFRJT05TO1xyXG4gIHNvcnREZXRhaWw6IHsga2V5OiBzdHJpbmc7IHNvcnQ6ICdhc2MnIHwgJ2Rlc2MnIH0gfCB1bmRlZmluZWQ7XHJcbiAgc29ydGVkVGFibGVEYXRhOiBhbnlbXSA9IFtdO1xyXG4gIGRiVGFibGVGaWx0ZXI6IGFueTtcclxuICBnZXQgY29sdW1uc1R5cGVzKCkge1xyXG4gICAgcmV0dXJuIENPTFVNTlNfVFlQRVM7XHJcbiAgfVxyXG4gIGdldCBpc1J1bm5pbmdPblNtYWxsU2NyZWVuKCkge1xyXG4gICAgcmV0dXJuIFV0aWwuaXNSdW5uaW5nT25TbWFsbFNjcmVlbigpO1xyXG4gIH1cclxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGRiU2VydmljZTogTmd4SW5kZXhlZERCU2VydmljZSkge31cclxuXHJcbiAgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgICB0aGlzLnRhYmxlRGF0YS5zdWJzY3JpYmUoKHZhbDogYW55KSA9PiB7XHJcbiAgICAgIHRoaXMuc29ydGVkVGFibGVEYXRhID0gdmFsO1xyXG4gICAgfSk7XHJcbiAgICBpZiAodGhpcy5rZXkpIHtcclxuICAgICAgdGhpcy5kYlNlcnZpY2VcclxuICAgICAgICAuZ2V0QnlJbmRleCgndGFibGVGaWx0ZXInLCAna2V5JywgdGhpcy5rZXkpXHJcbiAgICAgICAgLnN1YnNjcmliZSgoZGF0YTogYW55KSA9PiB7XHJcbiAgICAgICAgICB0aGlzLmRiVGFibGVGaWx0ZXIgPSBkYXRhO1xyXG4gICAgICAgICAgaWYgKHRoaXMuZGJUYWJsZUZpbHRlcikge1xyXG4gICAgICAgICAgICB0aGlzLnNldFRhYmxlRmlsdGVyKCk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfSk7XHJcbiAgICB9XHJcbiAgfVxyXG4gIHNldFRhYmxlRmlsdGVyKCkge1xyXG4gICAgdGhpcy5jb2x1bW5zU2NoZW1hLm1hcCgoY29sdW1uOiBhbnkpID0+IHtcclxuICAgICAgSlNPTi5wYXJzZSh0aGlzLmRiVGFibGVGaWx0ZXIuY29sdW1uc1NjaGVtYSkuZm9yRWFjaChcclxuICAgICAgICAoZGJDb2x1bW5zU2NoZW1hOiBhbnkpID0+IHtcclxuICAgICAgICAgIGlmIChkYkNvbHVtbnNTY2hlbWEua2V5ID09PSBjb2x1bW4ua2V5KSB7XHJcbiAgICAgICAgICAgIGNvbHVtbi5hY3RpdmUgPSBkYkNvbHVtbnNTY2hlbWEuYWN0aXZlO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgKTtcclxuICAgICAgcmV0dXJuIGNvbHVtbjtcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgY29sdW1uQ2xpY2tlZCh2YWw6IGFueSkge1xyXG4gICAgdGhpcy5vbkNvbHVtbkNsaWNrZWQuZW1pdCh2YWwpO1xyXG4gIH1cclxuICBzb3J0QnlIZWFkZXIoY29sdW1uOiBhbnkpIHtcclxuICAgIGlmICh0aGlzLnNvcnREZXRhaWwgJiYgdGhpcy5zb3J0RGV0YWlsLmtleSA9PSBjb2x1bW4ua2V5KSB7XHJcbiAgICAgIGlmICh0aGlzLnNvcnREZXRhaWwuc29ydCA9PSAnZGVzYycpIHtcclxuICAgICAgICB0aGlzLnNvcnREZXRhaWwgPSB7IGtleTogY29sdW1uLmtleSwgc29ydDogJ2FzYycgfTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICB0aGlzLnNvcnREZXRhaWwgPSB7IGtleTogY29sdW1uLmtleSwgc29ydDogJ2Rlc2MnIH07XHJcbiAgICAgIH1cclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMuc29ydERldGFpbCA9IHsga2V5OiBjb2x1bW4ua2V5LCBzb3J0OiAnYXNjJyB9O1xyXG4gICAgfVxyXG4gICAgaWYgKFxyXG4gICAgICBjb2x1bW4udHlwZSA9PSBDT0xVTU5TX1RZUEVTLlRFWFQgfHxcclxuICAgICAgY29sdW1uLnR5cGUgPT0gQ09MVU1OU19UWVBFUy5OVU1CRVJcclxuICAgICkge1xyXG4gICAgICB0aGlzLnNvcnRlZFRhYmxlRGF0YSA9IG9yZGVyQnkoXHJcbiAgICAgICAgdGhpcy5zb3J0ZWRUYWJsZURhdGEsXHJcbiAgICAgICAgW2NvbHVtbi5rZXldLFxyXG4gICAgICAgIFt0aGlzLnNvcnREZXRhaWwuc29ydF1cclxuICAgICAgKTtcclxuICAgIH0gZWxzZSBpZiAoY29sdW1uLnR5cGUgPT0gQ09MVU1OU19UWVBFUy5TRUxFQ1RPUikge1xyXG4gICAgICB0aGlzLnNvcnRlZFRhYmxlRGF0YSA9IG9yZGVyQnkoXHJcbiAgICAgICAgdGhpcy5zb3J0ZWRUYWJsZURhdGEsXHJcbiAgICAgICAgWyhjKSA9PiBjW2NvbHVtbi5rZXldW2NvbHVtbi5kYXRhLmtleV1dLFxyXG4gICAgICAgIFt0aGlzLnNvcnREZXRhaWwuc29ydF1cclxuICAgICAgKTtcclxuICAgIH0gZWxzZSBpZiAoY29sdW1uLnR5cGUgPT0gQ09MVU1OU19UWVBFUy5TSEFNU0lfREFURSkge1xyXG4gICAgICB0aGlzLnNvcnRlZFRhYmxlRGF0YSA9IG9yZGVyQnkoXHJcbiAgICAgICAgdGhpcy5zb3J0ZWRUYWJsZURhdGEsXHJcbiAgICAgICAgWyhjKSA9PiBuZXcgRGF0ZShjW2NvbHVtbi5rZXldKS5nZXRUaW1lKCldLFxyXG4gICAgICAgIFt0aGlzLnNvcnREZXRhaWwuc29ydF1cclxuICAgICAgKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGFjdGl2ZUNvbHVtbnNTY2hlbWEoKTogYW55W10ge1xyXG4gICAgcmV0dXJuIHRoaXMuY29sdW1uc1NjaGVtYS5maWx0ZXIoXHJcbiAgICAgIChjb2x1bW46IGFueSkgPT4gY29sdW1uLmFjdGl2ZSA9PT0gdW5kZWZpbmVkIHx8IGNvbHVtbi5hY3RpdmVcclxuICAgICk7XHJcbiAgfVxyXG5cclxuICB0YWJsZURhdGFGaWx0ZXJlZCh0ZXh0OiBTdHJpbmcgfCBib29sZWFuLCBjb2x1bW46IGFueSkge1xyXG4gICAgdGhpcy5jb2x1bW5zU2NoZW1hLm1hcCgoY29sdW1uU2NoZW1hOiBhbnkpID0+IHtcclxuICAgICAgaWYgKGNvbHVtblNjaGVtYS5rZXkgPT09IGNvbHVtbi5rZXkpIHtcclxuICAgICAgICBjb2x1bW5TY2hlbWEuY29sdW1uRmlsdGVyID0gdGV4dDtcclxuICAgICAgfVxyXG4gICAgICByZXR1cm4gY29sdW1uU2NoZW1hO1xyXG4gICAgfSk7XHJcbiAgICBjb25zdCB0YWJsZURhdGEgPSB0aGlzLnRhYmxlRGF0YS5nZXRWYWx1ZSgpO1xyXG4gICAgdGhpcy5zb3J0ZWRUYWJsZURhdGEgPSB0YWJsZURhdGEuZmlsdGVyKChkYXRhOiBhbnkpID0+IHtcclxuICAgICAgbGV0IHJlc3VsdCA9IHRydWU7XHJcbiAgICAgIHRoaXMuY29sdW1uc1NjaGVtYS5mb3JFYWNoKChjb2x1bW5TY2hlbWE6IGFueSkgPT4ge1xyXG4gICAgICAgIGlmIChcclxuICAgICAgICAgIGNvbHVtblNjaGVtYS50eXBlID09PSB0aGlzLmNvbHVtbnNUeXBlcy5ST1dfU0VMRUNUT1IgfHxcclxuICAgICAgICAgIGNvbHVtblNjaGVtYS50eXBlID09PSB0aGlzLmNvbHVtbnNUeXBlcy5BQ1RJT04gfHxcclxuICAgICAgICAgIGNvbHVtblNjaGVtYS50eXBlID09PSB0aGlzLmNvbHVtbnNUeXBlcy5BQ1RJT05fQlVUVE9OUyB8fFxyXG4gICAgICAgICAgY29sdW1uU2NoZW1hLmNvbHVtbkZpbHRlciA9PT0gdW5kZWZpbmVkIHx8XHJcbiAgICAgICAgICAhcmVzdWx0XHJcbiAgICAgICAgKSB7XHJcbiAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGlmIChjb2x1bW5TY2hlbWEudHlwZSA9PT0gdGhpcy5jb2x1bW5zVHlwZXMuU0VMRUNUT1IpIHtcclxuICAgICAgICAgIHJlc3VsdCA9IGRhdGFbY29sdW1uU2NoZW1hLmtleV1bY29sdW1uU2NoZW1hLmRhdGEua2V5XVxyXG4gICAgICAgICAgICAudG9Mb3dlckNhc2UoKVxyXG4gICAgICAgICAgICAuaW5jbHVkZXMoY29sdW1uU2NoZW1hLmNvbHVtbkZpbHRlci50b1N0cmluZygpLnRvTG93ZXJDYXNlKCkpO1xyXG4gICAgICAgIH0gZWxzZSBpZiAoY29sdW1uU2NoZW1hLnR5cGUgPT09IHRoaXMuY29sdW1uc1R5cGVzLlNIQU1TSV9EQVRFKSB7XHJcbiAgICAgICAgICBpZiAoY29sdW1uU2NoZW1hLmNvbHVtbkZpbHRlciA9PT0gJycpIHtcclxuICAgICAgICAgICAgcmVzdWx0ID0gdHJ1ZTtcclxuICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIHJlc3VsdCA9IGRhdGFbY29sdW1uU2NoZW1hLmtleV1cclxuICAgICAgICAgICAgICAudG9Mb3dlckNhc2UoKVxyXG4gICAgICAgICAgICAgIC5pbmNsdWRlcyhcclxuICAgICAgICAgICAgICAgIFV0aWwuc2hhbXNpVG9NaWxhZGkoXHJcbiAgICAgICAgICAgICAgICAgIGNvbHVtblNjaGVtYS5jb2x1bW5GaWx0ZXIudG9TdHJpbmcoKSxcclxuICAgICAgICAgICAgICAgICAgJ1lZWVktTU0tREQnXHJcbiAgICAgICAgICAgICAgICApXHJcbiAgICAgICAgICAgICAgKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9IGVsc2UgaWYgKGNvbHVtblNjaGVtYS50eXBlID09PSB0aGlzLmNvbHVtbnNUeXBlcy5NVUxUSV9DT0xVTU4pIHtcclxuICAgICAgICAgIHJlc3VsdCA9IGNvbHVtblNjaGVtYS5jb2x1bW5zLnNvbWUoKGl0ZW06IGFueSkgPT4ge1xyXG4gICAgICAgICAgICByZXR1cm4gZGF0YVtpdGVtLmtleV1baXRlbS5kYXRhLmtleV1cclxuICAgICAgICAgICAgICAudG9Mb3dlckNhc2UoKVxyXG4gICAgICAgICAgICAgIC5pbmNsdWRlcyhjb2x1bW5TY2hlbWEuY29sdW1uRmlsdGVyPy50b1N0cmluZygpPy50b0xvd2VyQ2FzZSgpKTtcclxuICAgICAgICAgIH0pO1xyXG4gICAgICAgIH0gZWxzZSBpZiAoY29sdW1uU2NoZW1hLnR5cGUgPT09IHRoaXMuY29sdW1uc1R5cGVzLlNUQVRVUykge1xyXG4gICAgICAgICAgaWYgKGNvbHVtblNjaGVtYS5jb2x1bW5GaWx0ZXIgPT09ICcnKSB7XHJcbiAgICAgICAgICAgIHJlc3VsdCA9IHRydWU7XHJcbiAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICByZXN1bHQgPSBkYXRhW2NvbHVtblNjaGVtYS5rZXldID09PSBjb2x1bW5TY2hlbWEuY29sdW1uRmlsdGVyO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICByZXN1bHQgPSBkYXRhW2NvbHVtblNjaGVtYS5rZXldXHJcbiAgICAgICAgICAgIC50b1N0cmluZygpXHJcbiAgICAgICAgICAgIC50b0xvd2VyQ2FzZSgpXHJcbiAgICAgICAgICAgIC5pbmNsdWRlcyhjb2x1bW5TY2hlbWEuY29sdW1uRmlsdGVyPy50b1N0cmluZygpPy50b0xvd2VyQ2FzZSgpKTtcclxuICAgICAgICB9XHJcbiAgICAgIH0pO1xyXG4gICAgICByZXR1cm4gcmVzdWx0O1xyXG4gICAgfSk7XHJcbiAgfVxyXG59XHJcbiIsIjxkaXYgY2xhc3M9XCJwLTIgb3ZlcmZsb3cteC1hdXRvXCI+XHJcbiAgPHRhYmxlICpuZ0lmPVwiIWlzUnVubmluZ09uU21hbGxTY3JlZW4gfHwgIXJlc3BvbnNpdmU7IGVsc2Ugc21hbGxEZXZpY2VDYXJkXCI+XHJcbiAgICA8dHI+XHJcbiAgICAgIDx0aFxyXG4gICAgICAgIGNsYXNzPVwiY3Vyc29yLXBvaW50ZXIgdGV4dC1jZW50ZXJcIlxyXG4gICAgICAgICpuZ0Zvcj1cImxldCBjb2x1bW4gb2YgYWN0aXZlQ29sdW1uc1NjaGVtYSgpXCJcclxuICAgICAgPlxyXG4gICAgICAgIDxkaXZcclxuICAgICAgICAgIGNsYXNzPVwiZ3JpZFwiXHJcbiAgICAgICAgICBbbmdDbGFzc109XCJbY2FuRmlsdGVyID8gJ2dyaWQtcm93cy0yJyA6ICdncmlkLXJvd3MtMSddXCJcclxuICAgICAgICA+XHJcbiAgICAgICAgICA8c3BhblxyXG4gICAgICAgICAgICBjbGFzcz1cInAtMiByZWxhdGl2ZVwiXHJcbiAgICAgICAgICAgIChjbGljayk9XCJzb3J0QnlIZWFkZXIoY29sdW1uKVwiXHJcbiAgICAgICAgICAgIFtuZ1N0eWxlXT1cIntcclxuICAgICAgICAgICAgICBtaW5XaWR0aDpcclxuICAgICAgICAgICAgICAgIGNvbHVtbi50eXBlID09PSBjb2x1bW5zVHlwZXMuQUNUSU9OX0JVVFRPTlNcclxuICAgICAgICAgICAgICAgICAgPyBjb2x1bW4uZGF0YS5sZW5ndGggKiAzMCArICdweCdcclxuICAgICAgICAgICAgICAgICAgOiAnJyxcclxuICAgICAgICAgICAgICBkaXNwbGF5OlxyXG4gICAgICAgICAgICAgICAgY29sdW1uLnR5cGUgPT09IGNvbHVtbnNUeXBlcy5BQ1RJT05fQlVUVE9OU1xyXG4gICAgICAgICAgICAgICAgICA/ICdpbmxpbmUtYmxvY2snXHJcbiAgICAgICAgICAgICAgICAgIDogJydcclxuICAgICAgICAgICAgfVwiXHJcbiAgICAgICAgICAgID57eyBjb2x1bW4ubGFiZWwgfX1cclxuICAgICAgICAgICAgPGFwcC1zb3J0LWRvd24taWNvblxyXG4gICAgICAgICAgICAgIGNsYXNzPVwic29ydC1pY29uIHctMiBoLTIgaW5saW5lLWJsb2NrIGFic29sdXRlIHRvcC0zIHJpZ2h0LVstM3B4XVwiXHJcbiAgICAgICAgICAgICAgKm5nSWY9XCJcclxuICAgICAgICAgICAgICAgIHNvcnREZXRhaWw/LmtleSA9PSBjb2x1bW4ua2V5ICYmIHNvcnREZXRhaWw/LnNvcnQgPT09ICdhc2MnXHJcbiAgICAgICAgICAgICAgXCJcclxuICAgICAgICAgICAgPjwvYXBwLXNvcnQtZG93bi1pY29uPlxyXG4gICAgICAgICAgICA8YXBwLXNvcnQtdXAtaWNvblxyXG4gICAgICAgICAgICAgIGNsYXNzPVwic29ydC1pY29uIHctMiBoLTIgaW5saW5lLWJsb2NrIGFic29sdXRlIHRvcC0zIHJpZ2h0LVstM3B4XVwiXHJcbiAgICAgICAgICAgICAgKm5nSWY9XCJcclxuICAgICAgICAgICAgICAgIHNvcnREZXRhaWw/LmtleSA9PSBjb2x1bW4ua2V5ICYmIHNvcnREZXRhaWw/LnNvcnQgPT09ICdkZXNjJ1xyXG4gICAgICAgICAgICAgIFwiXHJcbiAgICAgICAgICAgID48L2FwcC1zb3J0LXVwLWljb24+XHJcbiAgICAgICAgICAgIDxhcHAtc29ydC1zb2xpZC1pY29uXHJcbiAgICAgICAgICAgICAgY2xhc3M9XCJzb3J0LWljb24gdy0yIGgtMiBpbmxpbmUtYmxvY2sgYWJzb2x1dGUgdG9wLTMgcmlnaHQtWy0zcHhdXCJcclxuICAgICAgICAgICAgICAqbmdJZj1cInNvcnREZXRhaWw/LmtleSAhPT0gY29sdW1uLmtleVwiXHJcbiAgICAgICAgICAgID48L2FwcC1zb3J0LXNvbGlkLWljb24+XHJcbiAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICA8Y29yZS1jb2x1bW4tZGF0ZS1waWNrZXJcclxuICAgICAgICAgICAgKm5nSWY9XCJjYW5GaWx0ZXIgJiYgY29sdW1uLnR5cGUgPT0gY29sdW1uc1R5cGVzLlNIQU1TSV9EQVRFXCJcclxuICAgICAgICAgICAgW2NhblNlbGVjdFRvZGF5XT1cInRydWVcIlxyXG4gICAgICAgICAgICAob25DaGFuZ2UpPVwidGFibGVEYXRhRmlsdGVyZWQoJGV2ZW50LCBjb2x1bW4pXCJcclxuICAgICAgICAgID5cclxuICAgICAgICAgIDwvY29yZS1jb2x1bW4tZGF0ZS1waWNrZXI+XHJcbiAgICAgICAgICA8Y29yZS1jb2x1bW4taW5wdXRcclxuICAgICAgICAgICAgKm5nSWY9XCJcclxuICAgICAgICAgICAgICBjYW5GaWx0ZXIgJiZcclxuICAgICAgICAgICAgICBjb2x1bW4udHlwZSAhPT0gY29sdW1uc1R5cGVzLkFDVElPTiAmJlxyXG4gICAgICAgICAgICAgIGNvbHVtbi50eXBlICE9PSBjb2x1bW5zVHlwZXMuU1RBVFVTICYmXHJcbiAgICAgICAgICAgICAgY29sdW1uLnR5cGUgIT09IGNvbHVtbnNUeXBlcy5TSEFNU0lfREFURSAmJlxyXG4gICAgICAgICAgICAgIGNvbHVtbi50eXBlICE9PSBjb2x1bW5zVHlwZXMuUk9XX1NFTEVDVE9SICYmXHJcbiAgICAgICAgICAgICAgY29sdW1uLnR5cGUgIT09IGNvbHVtbnNUeXBlcy5TVEFUVVNfQUNUSVZFICYmXHJcbiAgICAgICAgICAgICAgY29sdW1uLnR5cGUgIT09IGNvbHVtbnNUeXBlcy5BQ1RJT05fQlVUVE9OU1xyXG4gICAgICAgICAgICBcIlxyXG4gICAgICAgICAgICAob25DaGFuZ2UpPVwidGFibGVEYXRhRmlsdGVyZWQoJGV2ZW50LCBjb2x1bW4pXCJcclxuICAgICAgICAgID48L2NvcmUtY29sdW1uLWlucHV0PlxyXG4gICAgICAgICAgPGNvcmUtY29sdW1uLXNlbGVjdG9yXHJcbiAgICAgICAgICAgICpuZ0lmPVwiXHJcbiAgICAgICAgICAgICAgKGNhbkZpbHRlciAmJiBjb2x1bW4udHlwZSA9PSBjb2x1bW5zVHlwZXMuU1RBVFVTKSB8fFxyXG4gICAgICAgICAgICAgIChjYW5GaWx0ZXIgJiYgY29sdW1uLnR5cGUgPT0gY29sdW1uc1R5cGVzLlNUQVRVU19BQ1RJVkUpXHJcbiAgICAgICAgICAgIFwiXHJcbiAgICAgICAgICAgIFt0aXRsZUtleV09XCIndGl0bGUnXCJcclxuICAgICAgICAgICAgW3ZhbHVlS2V5XT1cIid2YWx1ZSdcIlxyXG4gICAgICAgICAgICBbaXRlbXNdPVwiXHJcbiAgICAgICAgICAgICAgY29sdW1uLnR5cGUgPT0gY29sdW1uc1R5cGVzLlNUQVRVU1xyXG4gICAgICAgICAgICAgICAgPyBBQ1RJVkVfT1BUSU9OU1xyXG4gICAgICAgICAgICAgICAgOiBZRVNfTk9fT1BUSU9OU1xyXG4gICAgICAgICAgICBcIlxyXG4gICAgICAgICAgICAob25JdGVtU2VsZWN0ZWQpPVwidGFibGVEYXRhRmlsdGVyZWQoJGV2ZW50LCBjb2x1bW4pXCJcclxuICAgICAgICAgID48L2NvcmUtY29sdW1uLXNlbGVjdG9yPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICA8L3RoPlxyXG4gICAgPC90cj5cclxuICAgIDx0ciAqbmdGb3I9XCJsZXQgZGF0YSBvZiBzb3J0ZWRUYWJsZURhdGFcIj5cclxuICAgICAgPHRkXHJcbiAgICAgICAgKm5nRm9yPVwibGV0IGNvbHVtbiBvZiBhY3RpdmVDb2x1bW5zU2NoZW1hKClcIlxyXG4gICAgICAgIFtjbGFzc109XCJzdHlsZUZpbHRlciA/IHN0eWxlRmlsdGVyKGRhdGEpIDogJydcIlxyXG4gICAgICA+XHJcbiAgICAgICAgPGFwcC1jb3JlLXRhYmxlLWNvbHVtbi1tYW5hZ2VyXHJcbiAgICAgICAgICAqbmdJZj1cImNvbHVtbi50eXBlICE9IGNvbHVtbnNUeXBlcy5NVUxUSV9DT0xVTU47IGVsc2UgZWxzZUJsb2NrXCJcclxuICAgICAgICAgIFtyb3dTZWxlY3Rvcl09XCJyb3dTZWxlY3RvclwiXHJcbiAgICAgICAgICAob25Db2x1bW5DbGlja2VkKT1cImNvbHVtbkNsaWNrZWQoJGV2ZW50KVwiXHJcbiAgICAgICAgICBbYWxsVGFibGVEYXRhXT1cInNvcnRlZFRhYmxlRGF0YVwiXHJcbiAgICAgICAgICBbZGF0YV09XCJkYXRhXCJcclxuICAgICAgICAgIFtjb2x1bW5dPVwiY29sdW1uXCJcclxuICAgICAgICA+PC9hcHAtY29yZS10YWJsZS1jb2x1bW4tbWFuYWdlcj5cclxuICAgICAgICA8bmctdGVtcGxhdGUgI2Vsc2VCbG9jaz5cclxuICAgICAgICAgIDxhcHAtY29yZS10YWJsZS1jb2x1bW4tbWFuYWdlclxyXG4gICAgICAgICAgICAqbmdGb3I9XCJsZXQgY2hpbGRDb2x1bW4gb2YgY29sdW1uLmNvbHVtbnM7IGxldCBpID0gaW5kZXhcIlxyXG4gICAgICAgICAgICBbcm93U2VsZWN0b3JdPVwicm93U2VsZWN0b3JcIlxyXG4gICAgICAgICAgICAob25Db2x1bW5DbGlja2VkKT1cImNvbHVtbkNsaWNrZWQoJGV2ZW50KVwiXHJcbiAgICAgICAgICAgIFtkYXRhXT1cImRhdGFcIlxyXG4gICAgICAgICAgICBbYWxsVGFibGVEYXRhXT1cInNvcnRlZFRhYmxlRGF0YVwiXHJcbiAgICAgICAgICAgIFtjb2x1bW5dPVwiY2hpbGRDb2x1bW5cIlxyXG4gICAgICAgICAgPlxyXG4gICAgICAgICAgICA8c3BhbiAqbmdJZj1cImkgPiAwXCI+LTwvc3Bhbj5cclxuICAgICAgICAgIDwvYXBwLWNvcmUtdGFibGUtY29sdW1uLW1hbmFnZXI+XHJcbiAgICAgICAgPC9uZy10ZW1wbGF0ZT5cclxuICAgICAgPC90ZD5cclxuICAgIDwvdHI+XHJcbiAgPC90YWJsZT5cclxuICA8bmctdGVtcGxhdGUgI3NtYWxsRGV2aWNlQ2FyZD5cclxuICAgIDxkaXY+XHJcbiAgICAgIDxjb3JlLWNhcmRcclxuICAgICAgICAqbmdGb3I9XCJsZXQgZGF0YSBvZiBzb3J0ZWRUYWJsZURhdGFcIlxyXG4gICAgICAgIFtjYXJkQ2xhc3NdPVwiJ2JhY2tncm91bmQtY2FyZCBtLTQgcC00IHJlbGF0aXZlJ1wiXHJcbiAgICAgID5cclxuICAgICAgICA8ZGl2XHJcbiAgICAgICAgICBjbGFzcz1cImxlYWRpbmctOFwiXHJcbiAgICAgICAgICAqbmdGb3I9XCJsZXQgY29sdW1uIG9mIGFjdGl2ZUNvbHVtbnNTY2hlbWEoKVwiXHJcbiAgICAgICAgICBbY2xhc3NdPVwiXHJcbiAgICAgICAgICAgIGNvbHVtbi50eXBlID09PSBjb2x1bW5zVHlwZXMuQUNUSU9OX0JVVFRPTlNcclxuICAgICAgICAgICAgICA/ICdhY3Rpb25CdXR0b25zJ1xyXG4gICAgICAgICAgICAgIDogY29sdW1uLnR5cGUgPT09IGNvbHVtbnNUeXBlcy5ST1dfU0VMRUNUT1JcclxuICAgICAgICAgICAgICA/ICdzZWxlY3RSb3cnXHJcbiAgICAgICAgICAgICAgOiAnJ1xyXG4gICAgICAgICAgXCJcclxuICAgICAgICA+XHJcbiAgICAgICAgICA8c3BhblxyXG4gICAgICAgICAgICAqbmdJZj1cIlxyXG4gICAgICAgICAgICAgIGNvbHVtbi50eXBlICE9PSBjb2x1bW5zVHlwZXMuQUNUSU9OX0JVVFRPTlMgJiZcclxuICAgICAgICAgICAgICBjb2x1bW4udHlwZSAhPT0gY29sdW1uc1R5cGVzLlJPV19TRUxFQ1RPUlxyXG4gICAgICAgICAgICBcIlxyXG4gICAgICAgICAgICBjbGFzcz1cInNlY29uZGFyeS10ZXh0LWNvbG9yXCJcclxuICAgICAgICAgID5cclxuICAgICAgICAgICAge3sgY29sdW1uLmxhYmVsIH19IDpcclxuICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgIDxzcGFuIGNsYXNzPVwicHJpbWFyeS10ZXh0LWNvbG9yIGZvbnQtc2VtaWJvbGRcIj5cclxuICAgICAgICAgICAgPGFwcC1jb3JlLXRhYmxlLWNhcmQtbWFuYWdlclxyXG4gICAgICAgICAgICAgICpuZ0lmPVwiXHJcbiAgICAgICAgICAgICAgICBjb2x1bW4udHlwZSAhPSBjb2x1bW5zVHlwZXMuTVVMVElfQ09MVU1OO1xyXG4gICAgICAgICAgICAgICAgZWxzZSBjYXJkTWFuYWdlckVsc2VCbG9ja1xyXG4gICAgICAgICAgICAgIFwiXHJcbiAgICAgICAgICAgICAgW3Jvd1NlbGVjdG9yXT1cInJvd1NlbGVjdG9yXCJcclxuICAgICAgICAgICAgICAob25Db2x1bW5DbGlja2VkKT1cImNvbHVtbkNsaWNrZWQoJGV2ZW50KVwiXHJcbiAgICAgICAgICAgICAgW2RhdGFdPVwiZGF0YVwiXHJcbiAgICAgICAgICAgICAgW2FsbFRhYmxlRGF0YV09XCJzb3J0ZWRUYWJsZURhdGFcIlxyXG4gICAgICAgICAgICAgIFtjb2x1bW5dPVwiY29sdW1uXCJcclxuICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICA8L2FwcC1jb3JlLXRhYmxlLWNhcmQtbWFuYWdlcj5cclxuXHJcbiAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSAjY2FyZE1hbmFnZXJFbHNlQmxvY2s+XHJcbiAgICAgICAgICAgICAgPGFwcC1jb3JlLXRhYmxlLWNhcmQtbWFuYWdlclxyXG4gICAgICAgICAgICAgICAgKm5nRm9yPVwibGV0IGNoaWxkQ29sdW1uIG9mIGNvbHVtbi5jb2x1bW5zOyBsZXQgaSA9IGluZGV4XCJcclxuICAgICAgICAgICAgICAgIFtyb3dTZWxlY3Rvcl09XCJyb3dTZWxlY3RvclwiXHJcbiAgICAgICAgICAgICAgICAob25Db2x1bW5DbGlja2VkKT1cImNvbHVtbkNsaWNrZWQoJGV2ZW50KVwiXHJcbiAgICAgICAgICAgICAgICBbZGF0YV09XCJkYXRhXCJcclxuICAgICAgICAgICAgICAgIFthbGxUYWJsZURhdGFdPVwic29ydGVkVGFibGVEYXRhXCJcclxuICAgICAgICAgICAgICAgIFtjb2x1bW5dPVwiY2hpbGRDb2x1bW5cIlxyXG4gICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgIDxzcGFuICpuZ0lmPVwiaSA+IDBcIj4tPC9zcGFuPlxyXG4gICAgICAgICAgICAgIDwvYXBwLWNvcmUtdGFibGUtY2FyZC1tYW5hZ2VyPlxyXG4gICAgICAgICAgICA8L25nLXRlbXBsYXRlPlxyXG4gICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICA8L2NvcmUtY2FyZD5cclxuICAgIDwvZGl2PlxyXG4gIDwvbmctdGVtcGxhdGU+XHJcbiAgPGNvcmUtdGFibGUtbm8tY29udGVudFxyXG4gICAgKm5nSWY9XCIhbG9hZGluZ1wiXHJcbiAgICBbdGFibGVEYXRhXT1cInNvcnRlZFRhYmxlRGF0YVwiXHJcbiAgICBbbG9hZGluZ109XCJsb2FkaW5nXCJcclxuICA+PC9jb3JlLXRhYmxlLW5vLWNvbnRlbnQ+XHJcbjwvZGl2PlxyXG4iXX0=
|
package/esm2022/lib/core-table/core-table-card-manager/core-table-card-manager.component.mjs
CHANGED
|
@@ -60,21 +60,24 @@ export class CoreTableCardManagerComponent {
|
|
|
60
60
|
};
|
|
61
61
|
}
|
|
62
62
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: CoreTableCardManagerComponent, deps: [{ token: i1.NiraSnackBarService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
63
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: CoreTableCardManagerComponent, selector: "app-core-table-card-manager", inputs: { data: "data", column: "column", rowSelector: "rowSelector" }, outputs: { onColumnClicked: "onColumnClicked" }, ngImport: i0, template: "<container-element [ngSwitch]=\"column.type\">\r\n <ng-content></ng-content>\r\n\r\n <app-core-table-row-selector-column\r\n *ngSwitchCase=\"columnsTypes.ROW_SELECTOR\"\r\n [rowSelector]=\"rowSelector\"\r\n [data]=\"data\"\r\n [column]=\"column\"\r\n ></app-core-table-row-selector-column>\r\n <app-core-table-status-active-column\r\n *ngSwitchCase=\"columnsTypes.STATUS_ACTIVE\"\r\n [data]=\"data\"\r\n [column]=\"column\"\r\n ></app-core-table-status-active-column>\r\n <app-core-table-status-column\r\n *ngSwitchCase=\"columnsTypes.STATUS\"\r\n [data]=\"data\"\r\n [column]=\"column\"\r\n ></app-core-table-status-column>\r\n <app-core-table-action-column\r\n *ngSwitchCase=\"columnsTypes.ACTION\"\r\n [data]=\"data\"\r\n [column]=\"column\"\r\n ></app-core-table-action-column>\r\n <app-core-table-action-buttons-column\r\n *ngSwitchCase=\"columnsTypes.ACTION_BUTTONS\"\r\n (onClick)=\"clicked($event)\"\r\n [data]=\"data\"\r\n [column]=\"column\"\r\n ></app-core-table-action-buttons-column>\r\n <app-core-table-shamsi-date\r\n *ngSwitchCase=\"columnsTypes.SHAMSI_DATE\"\r\n [data]=\"data\"\r\n [column]=\"column\"\r\n >\r\n </app-core-table-shamsi-date>\r\n <app-core-row-pelak\r\n class=\"inline-block\"\r\n *ngSwitchCase=\"columnsTypes.PELAK\"\r\n [data]=\"data\"\r\n [column]=\"column\"\r\n ></app-core-row-pelak>\r\n <span\r\n *ngSwitchCase=\"columnsTypes.TEXT\"\r\n [ngClass]=\"{ 'cursor-pointer': column.coptToClipboard }\"\r\n (click)=\"onTextColumnClicked(column, data[column.key])\"\r\n tableDetailViewerManager\r\n [detailViewerData]=\"\r\n combinedData(column.detailViewer, data[column.detailViewer?.key])\r\n \"\r\n >{{ data[column.key] | persianDigits }}</span\r\n >\r\n <span\r\n *ngSwitchCase=\"columnsTypes.NUMBER\"\r\n [ngClass]=\"{\r\n 'cursor-pointer': column.copyToClipboard,\r\n green: data[column.key] > 0 && column.canColorfulNumber,\r\n red: data[column.key] < 0 && column.canColorfulNumber\r\n }\"\r\n (click)=\"onTextColumnClicked(column, data[column.key])\"\r\n tableDetailViewerManager\r\n dir=\"ltr\"\r\n [detailViewerData]=\"\r\n combinedData(column.detailViewer, data[column.detailViewer?.key])\r\n \"\r\n ><app-core-number\r\n [number]=\"data[column.key]\"\r\n [type]=\"'number'\"\r\n [canSplitNumbers]=\"true\"\r\n [canShowWordInToolTip]=\"true\"\r\n >\r\n </app-core-number>\r\n </span>\r\n <span *ngSwitchCase=\"columnsTypes.SELECTOR\">\r\n <span\r\n *ngIf=\"data[column.key.split('.')[0]]\"\r\n tableDetailViewerManager\r\n [detailViewerData]=\"\r\n combinedData(\r\n column.detailViewer,\r\n getSelectorData(\r\n data[column.key.split('.')[0]],\r\n column.detailViewer?.key\r\n )\r\n )\r\n \"\r\n >{{\r\n getSelectorData(data[column.key.split(\".\")[0]], column.data.key)\r\n | persianDigits\r\n }}</span\r\n >\r\n </span>\r\n</container-element>\r\n", styles: [""], dependencies: [{ kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { kind: "directive", type: i2.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { kind: "component", type: i3.CoreTableActionButtonsColumnComponent, selector: "app-core-table-action-buttons-column", inputs: ["data", "column"], outputs: ["onClick"] }, { kind: "component", type: i4.CoreTableActionColumnComponent, selector: "app-core-table-action-column", inputs: ["data", "column"] }, { kind: "component", type: i5.CoreTableRowSelectorColumnComponent, selector: "app-core-table-row-selector-column", inputs: ["data", "column", "rowSelector"] }, { kind: "component", type: i6.CoreTableShamsiDateComponent, selector: "app-core-table-shamsi-date", inputs: ["data", "column"], outputs: ["onClick"] }, { kind: "component", type: i7.CoreTableStatusColumnComponent, selector: "app-core-table-status-column", inputs: ["data", "column"] }, { kind: "component", type: i8.CoreNumberComponent, selector: "app-core-number", inputs: ["number", "type", "canSplitNumbers", "canShowWordInToolTip", "canShowIRR"] }, { kind: "directive", type: i9.TableDetailViewerManagerDirective, selector: "[tableDetailViewerManager]", inputs: ["detailViewerData"] }, { kind: "component", type: i10.CoreTableStatusActiveColumnComponent, selector: "app-core-table-status-active-column", inputs: ["data", "column"] }, { kind: "component", type: i11.CoreRowPelakComponent, selector: "app-core-row-pelak", inputs: ["data", "column"] }, { kind: "pipe", type: i12.PersianDigitsPipe, name: "persianDigits" }] }); }
|
|
63
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: CoreTableCardManagerComponent, selector: "app-core-table-card-manager", inputs: { data: "data", column: "column", allTableData: "allTableData", rowSelector: "rowSelector" }, outputs: { onColumnClicked: "onColumnClicked" }, ngImport: i0, template: "<container-element [ngSwitch]=\"column.type\">\r\n <ng-content></ng-content>\r\n\r\n <app-core-table-row-selector-column\r\n *ngSwitchCase=\"columnsTypes.ROW_SELECTOR\"\r\n [rowSelector]=\"rowSelector\"\r\n [data]=\"data\"\r\n [allTableData]=\"allTableData\"\r\n [column]=\"column\"\r\n ></app-core-table-row-selector-column>\r\n <app-core-table-status-active-column\r\n *ngSwitchCase=\"columnsTypes.STATUS_ACTIVE\"\r\n [data]=\"data\"\r\n [column]=\"column\"\r\n ></app-core-table-status-active-column>\r\n <app-core-table-status-column\r\n *ngSwitchCase=\"columnsTypes.STATUS\"\r\n [data]=\"data\"\r\n [column]=\"column\"\r\n ></app-core-table-status-column>\r\n <app-core-table-action-column\r\n *ngSwitchCase=\"columnsTypes.ACTION\"\r\n [data]=\"data\"\r\n [column]=\"column\"\r\n ></app-core-table-action-column>\r\n <app-core-table-action-buttons-column\r\n *ngSwitchCase=\"columnsTypes.ACTION_BUTTONS\"\r\n (onClick)=\"clicked($event)\"\r\n [data]=\"data\"\r\n [column]=\"column\"\r\n ></app-core-table-action-buttons-column>\r\n <app-core-table-shamsi-date\r\n *ngSwitchCase=\"columnsTypes.SHAMSI_DATE\"\r\n [data]=\"data\"\r\n [column]=\"column\"\r\n >\r\n </app-core-table-shamsi-date>\r\n <app-core-row-pelak\r\n class=\"inline-block\"\r\n *ngSwitchCase=\"columnsTypes.PELAK\"\r\n [data]=\"data\"\r\n [column]=\"column\"\r\n ></app-core-row-pelak>\r\n <span\r\n *ngSwitchCase=\"columnsTypes.TEXT\"\r\n [ngClass]=\"{ 'cursor-pointer': column.coptToClipboard }\"\r\n (click)=\"onTextColumnClicked(column, data[column.key])\"\r\n tableDetailViewerManager\r\n [detailViewerData]=\"\r\n combinedData(column.detailViewer, data[column.detailViewer?.key])\r\n \"\r\n >{{ data[column.key] | persianDigits }}</span\r\n >\r\n <span\r\n *ngSwitchCase=\"columnsTypes.NUMBER\"\r\n [ngClass]=\"{\r\n 'cursor-pointer': column.copyToClipboard,\r\n green: data[column.key] > 0 && column.canColorfulNumber,\r\n red: data[column.key] < 0 && column.canColorfulNumber\r\n }\"\r\n (click)=\"onTextColumnClicked(column, data[column.key])\"\r\n tableDetailViewerManager\r\n dir=\"ltr\"\r\n [detailViewerData]=\"\r\n combinedData(column.detailViewer, data[column.detailViewer?.key])\r\n \"\r\n ><app-core-number\r\n [number]=\"data[column.key]\"\r\n [type]=\"'number'\"\r\n [canSplitNumbers]=\"true\"\r\n [canShowWordInToolTip]=\"true\"\r\n >\r\n </app-core-number>\r\n </span>\r\n <span *ngSwitchCase=\"columnsTypes.SELECTOR\">\r\n <span\r\n *ngIf=\"data[column.key.split('.')[0]]\"\r\n tableDetailViewerManager\r\n [detailViewerData]=\"\r\n combinedData(\r\n column.detailViewer,\r\n getSelectorData(\r\n data[column.key.split('.')[0]],\r\n column.detailViewer?.key\r\n )\r\n )\r\n \"\r\n >{{\r\n getSelectorData(data[column.key.split(\".\")[0]], column.data.key)\r\n | persianDigits\r\n }}</span\r\n >\r\n </span>\r\n</container-element>\r\n", styles: [""], dependencies: [{ kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { kind: "directive", type: i2.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { kind: "component", type: i3.CoreTableActionButtonsColumnComponent, selector: "app-core-table-action-buttons-column", inputs: ["data", "column"], outputs: ["onClick"] }, { kind: "component", type: i4.CoreTableActionColumnComponent, selector: "app-core-table-action-column", inputs: ["data", "column"] }, { kind: "component", type: i5.CoreTableRowSelectorColumnComponent, selector: "app-core-table-row-selector-column", inputs: ["data", "column", "allTableData", "rowSelector"] }, { kind: "component", type: i6.CoreTableShamsiDateComponent, selector: "app-core-table-shamsi-date", inputs: ["data", "column"], outputs: ["onClick"] }, { kind: "component", type: i7.CoreTableStatusColumnComponent, selector: "app-core-table-status-column", inputs: ["data", "column"] }, { kind: "component", type: i8.CoreNumberComponent, selector: "app-core-number", inputs: ["number", "type", "canSplitNumbers", "canShowWordInToolTip", "canShowIRR"] }, { kind: "directive", type: i9.TableDetailViewerManagerDirective, selector: "[tableDetailViewerManager]", inputs: ["detailViewerData"] }, { kind: "component", type: i10.CoreTableStatusActiveColumnComponent, selector: "app-core-table-status-active-column", inputs: ["data", "column"] }, { kind: "component", type: i11.CoreRowPelakComponent, selector: "app-core-row-pelak", inputs: ["data", "column"] }, { kind: "pipe", type: i12.PersianDigitsPipe, name: "persianDigits" }] }); }
|
|
64
64
|
}
|
|
65
65
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: CoreTableCardManagerComponent, decorators: [{
|
|
66
66
|
type: Component,
|
|
67
|
-
args: [{ selector: 'app-core-table-card-manager', template: "<container-element [ngSwitch]=\"column.type\">\r\n <ng-content></ng-content>\r\n\r\n <app-core-table-row-selector-column\r\n *ngSwitchCase=\"columnsTypes.ROW_SELECTOR\"\r\n [rowSelector]=\"rowSelector\"\r\n [data]=\"data\"\r\n [column]=\"column\"\r\n ></app-core-table-row-selector-column>\r\n <app-core-table-status-active-column\r\n *ngSwitchCase=\"columnsTypes.STATUS_ACTIVE\"\r\n [data]=\"data\"\r\n [column]=\"column\"\r\n ></app-core-table-status-active-column>\r\n <app-core-table-status-column\r\n *ngSwitchCase=\"columnsTypes.STATUS\"\r\n [data]=\"data\"\r\n [column]=\"column\"\r\n ></app-core-table-status-column>\r\n <app-core-table-action-column\r\n *ngSwitchCase=\"columnsTypes.ACTION\"\r\n [data]=\"data\"\r\n [column]=\"column\"\r\n ></app-core-table-action-column>\r\n <app-core-table-action-buttons-column\r\n *ngSwitchCase=\"columnsTypes.ACTION_BUTTONS\"\r\n (onClick)=\"clicked($event)\"\r\n [data]=\"data\"\r\n [column]=\"column\"\r\n ></app-core-table-action-buttons-column>\r\n <app-core-table-shamsi-date\r\n *ngSwitchCase=\"columnsTypes.SHAMSI_DATE\"\r\n [data]=\"data\"\r\n [column]=\"column\"\r\n >\r\n </app-core-table-shamsi-date>\r\n <app-core-row-pelak\r\n class=\"inline-block\"\r\n *ngSwitchCase=\"columnsTypes.PELAK\"\r\n [data]=\"data\"\r\n [column]=\"column\"\r\n ></app-core-row-pelak>\r\n <span\r\n *ngSwitchCase=\"columnsTypes.TEXT\"\r\n [ngClass]=\"{ 'cursor-pointer': column.coptToClipboard }\"\r\n (click)=\"onTextColumnClicked(column, data[column.key])\"\r\n tableDetailViewerManager\r\n [detailViewerData]=\"\r\n combinedData(column.detailViewer, data[column.detailViewer?.key])\r\n \"\r\n >{{ data[column.key] | persianDigits }}</span\r\n >\r\n <span\r\n *ngSwitchCase=\"columnsTypes.NUMBER\"\r\n [ngClass]=\"{\r\n 'cursor-pointer': column.copyToClipboard,\r\n green: data[column.key] > 0 && column.canColorfulNumber,\r\n red: data[column.key] < 0 && column.canColorfulNumber\r\n }\"\r\n (click)=\"onTextColumnClicked(column, data[column.key])\"\r\n tableDetailViewerManager\r\n dir=\"ltr\"\r\n [detailViewerData]=\"\r\n combinedData(column.detailViewer, data[column.detailViewer?.key])\r\n \"\r\n ><app-core-number\r\n [number]=\"data[column.key]\"\r\n [type]=\"'number'\"\r\n [canSplitNumbers]=\"true\"\r\n [canShowWordInToolTip]=\"true\"\r\n >\r\n </app-core-number>\r\n </span>\r\n <span *ngSwitchCase=\"columnsTypes.SELECTOR\">\r\n <span\r\n *ngIf=\"data[column.key.split('.')[0]]\"\r\n tableDetailViewerManager\r\n [detailViewerData]=\"\r\n combinedData(\r\n column.detailViewer,\r\n getSelectorData(\r\n data[column.key.split('.')[0]],\r\n column.detailViewer?.key\r\n )\r\n )\r\n \"\r\n >{{\r\n getSelectorData(data[column.key.split(\".\")[0]], column.data.key)\r\n | persianDigits\r\n }}</span\r\n >\r\n </span>\r\n</container-element>\r\n" }]
|
|
67
|
+
args: [{ selector: 'app-core-table-card-manager', template: "<container-element [ngSwitch]=\"column.type\">\r\n <ng-content></ng-content>\r\n\r\n <app-core-table-row-selector-column\r\n *ngSwitchCase=\"columnsTypes.ROW_SELECTOR\"\r\n [rowSelector]=\"rowSelector\"\r\n [data]=\"data\"\r\n [allTableData]=\"allTableData\"\r\n [column]=\"column\"\r\n ></app-core-table-row-selector-column>\r\n <app-core-table-status-active-column\r\n *ngSwitchCase=\"columnsTypes.STATUS_ACTIVE\"\r\n [data]=\"data\"\r\n [column]=\"column\"\r\n ></app-core-table-status-active-column>\r\n <app-core-table-status-column\r\n *ngSwitchCase=\"columnsTypes.STATUS\"\r\n [data]=\"data\"\r\n [column]=\"column\"\r\n ></app-core-table-status-column>\r\n <app-core-table-action-column\r\n *ngSwitchCase=\"columnsTypes.ACTION\"\r\n [data]=\"data\"\r\n [column]=\"column\"\r\n ></app-core-table-action-column>\r\n <app-core-table-action-buttons-column\r\n *ngSwitchCase=\"columnsTypes.ACTION_BUTTONS\"\r\n (onClick)=\"clicked($event)\"\r\n [data]=\"data\"\r\n [column]=\"column\"\r\n ></app-core-table-action-buttons-column>\r\n <app-core-table-shamsi-date\r\n *ngSwitchCase=\"columnsTypes.SHAMSI_DATE\"\r\n [data]=\"data\"\r\n [column]=\"column\"\r\n >\r\n </app-core-table-shamsi-date>\r\n <app-core-row-pelak\r\n class=\"inline-block\"\r\n *ngSwitchCase=\"columnsTypes.PELAK\"\r\n [data]=\"data\"\r\n [column]=\"column\"\r\n ></app-core-row-pelak>\r\n <span\r\n *ngSwitchCase=\"columnsTypes.TEXT\"\r\n [ngClass]=\"{ 'cursor-pointer': column.coptToClipboard }\"\r\n (click)=\"onTextColumnClicked(column, data[column.key])\"\r\n tableDetailViewerManager\r\n [detailViewerData]=\"\r\n combinedData(column.detailViewer, data[column.detailViewer?.key])\r\n \"\r\n >{{ data[column.key] | persianDigits }}</span\r\n >\r\n <span\r\n *ngSwitchCase=\"columnsTypes.NUMBER\"\r\n [ngClass]=\"{\r\n 'cursor-pointer': column.copyToClipboard,\r\n green: data[column.key] > 0 && column.canColorfulNumber,\r\n red: data[column.key] < 0 && column.canColorfulNumber\r\n }\"\r\n (click)=\"onTextColumnClicked(column, data[column.key])\"\r\n tableDetailViewerManager\r\n dir=\"ltr\"\r\n [detailViewerData]=\"\r\n combinedData(column.detailViewer, data[column.detailViewer?.key])\r\n \"\r\n ><app-core-number\r\n [number]=\"data[column.key]\"\r\n [type]=\"'number'\"\r\n [canSplitNumbers]=\"true\"\r\n [canShowWordInToolTip]=\"true\"\r\n >\r\n </app-core-number>\r\n </span>\r\n <span *ngSwitchCase=\"columnsTypes.SELECTOR\">\r\n <span\r\n *ngIf=\"data[column.key.split('.')[0]]\"\r\n tableDetailViewerManager\r\n [detailViewerData]=\"\r\n combinedData(\r\n column.detailViewer,\r\n getSelectorData(\r\n data[column.key.split('.')[0]],\r\n column.detailViewer?.key\r\n )\r\n )\r\n \"\r\n >{{\r\n getSelectorData(data[column.key.split(\".\")[0]], column.data.key)\r\n | persianDigits\r\n }}</span\r\n >\r\n </span>\r\n</container-element>\r\n" }]
|
|
68
68
|
}], ctorParameters: function () { return [{ type: i1.NiraSnackBarService }]; }, propDecorators: { data: [{
|
|
69
69
|
type: Input,
|
|
70
70
|
args: [{ required: true }]
|
|
71
71
|
}], column: [{
|
|
72
72
|
type: Input,
|
|
73
73
|
args: [{ required: true }]
|
|
74
|
+
}], allTableData: [{
|
|
75
|
+
type: Input,
|
|
76
|
+
args: [{ required: true }]
|
|
74
77
|
}], rowSelector: [{
|
|
75
78
|
type: Input,
|
|
76
79
|
args: [{ required: false }]
|
|
77
80
|
}], onColumnClicked: [{
|
|
78
81
|
type: Output
|
|
79
82
|
}] } });
|
|
80
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
83
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29yZS10YWJsZS1jYXJkLW1hbmFnZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZmFsY29uLWxpYi9zcmMvbGliL2NvcmUtdGFibGUvY29yZS10YWJsZS1jYXJkLW1hbmFnZXIvY29yZS10YWJsZS1jYXJkLW1hbmFnZXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZmFsY29uLWxpYi9zcmMvbGliL2NvcmUtdGFibGUvY29yZS10YWJsZS1jYXJkLW1hbmFnZXIvY29yZS10YWJsZS1jYXJkLW1hbmFnZXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUV2RSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7Ozs7Ozs7Ozs7Ozs7O0FBUXpELE1BQU0sT0FBTyw2QkFBNkI7SUFPeEMsSUFBSSxZQUFZO1FBQ2QsT0FBTyxhQUFhLENBQUM7SUFDdkIsQ0FBQztJQUNELFlBQW9CLFlBQWlDO1FBQWpDLGlCQUFZLEdBQVosWUFBWSxDQUFxQjtRQU56QixnQkFBVyxHQUNyQyxTQUFTLENBQUM7UUFDRixvQkFBZSxHQUFzQixJQUFJLFlBQVksRUFBRSxDQUFDO0lBSVYsQ0FBQztJQUN6RCxlQUFlLENBQUMsSUFBUyxFQUFFLEdBQVc7UUFDcEMsSUFBSSxHQUFHLEVBQUU7WUFDUCxNQUFNLEtBQUssR0FBRyxHQUFHLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1lBQzdCLElBQUksS0FBSyxDQUFDLE1BQU0sS0FBSyxDQUFDLEVBQUU7Z0JBQ3RCLE9BQU8sSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO2FBQ2xCO2lCQUFNO2dCQUNMLElBQUksT0FBTyxHQUFHLElBQUksQ0FBQztnQkFDbkIsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDLE1BQU0sRUFBRSxFQUFFO29CQUN2QixPQUFPLEdBQUcsT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUFDO2dCQUM1QixDQUFDLENBQUMsQ0FBQztnQkFFSCxPQUFPLE9BQU8sQ0FBQzthQUNoQjtTQUNGO0lBQ0gsQ0FBQztJQUNELG1CQUFtQixDQUFDLE1BQVcsRUFBRSxJQUFZO1FBQzNDLElBQUksQ0FBQyxNQUFNLENBQUMsZUFBZTtZQUFFLE9BQU87UUFDcEMsU0FBUyxDQUFDLFNBQVM7YUFDaEIsU0FBUyxDQUFDLElBQUksQ0FBQzthQUNmLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFO1lBQ1YsSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsa0JBQWtCLEVBQUU7Z0JBQ3pDLFdBQVcsRUFBRSxTQUFTO2dCQUN0QixRQUFRLEVBQUUsSUFBSTthQUNmLENBQUMsQ0FBQztRQUNMLENBQUMsQ0FBQzthQUNELEtBQUssQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ3BDLENBQUM7SUFDRCxPQUFPLENBQUMsR0FBUTtRQUNkLElBQUksQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQ2pDLENBQUM7SUFDRCxZQUFZLENBQUMsWUFBaUIsRUFBRSxJQUFTO1FBQ3ZDLE9BQU87WUFDTCxZQUFZLEVBQUUsWUFBWTtZQUMxQixJQUFJLEVBQUUsSUFBSTtTQUNYLENBQUM7SUFDSixDQUFDOytHQTlDVSw2QkFBNkI7bUdBQTdCLDZCQUE2QiwwTkNWMUMsc2tHQThGQTs7NEZEcEZhLDZCQUE2QjtrQkFMekMsU0FBUzsrQkFDRSw2QkFBNkI7MEdBS1osSUFBSTtzQkFBOUIsS0FBSzt1QkFBQyxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUU7Z0JBQ0UsTUFBTTtzQkFBaEMsS0FBSzt1QkFBQyxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUU7Z0JBQ0UsWUFBWTtzQkFBdEMsS0FBSzt1QkFBQyxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUU7Z0JBQ0csV0FBVztzQkFBdEMsS0FBSzt1QkFBQyxFQUFFLFFBQVEsRUFBRSxLQUFLLEVBQUU7Z0JBRWhCLGVBQWU7c0JBQXhCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE91dHB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBOaXJhU25hY2tCYXJTZXJ2aWNlIH0gZnJvbSAnbmlyYS1zbmFjay1iYXInO1xyXG5pbXBvcnQgeyBDT0xVTU5TX1RZUEVTIH0gZnJvbSAnLi4vLi4vLi4vdXRpbHMvY29uc3RhbnRzJztcclxuaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0IH0gZnJvbSAncnhqcyc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2FwcC1jb3JlLXRhYmxlLWNhcmQtbWFuYWdlcicsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL2NvcmUtdGFibGUtY2FyZC1tYW5hZ2VyLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi9jb3JlLXRhYmxlLWNhcmQtbWFuYWdlci5jb21wb25lbnQuc2NzcyddLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgQ29yZVRhYmxlQ2FyZE1hbmFnZXJDb21wb25lbnQge1xyXG4gIEBJbnB1dCh7IHJlcXVpcmVkOiB0cnVlIH0pIGRhdGEhOiBhbnk7XHJcbiAgQElucHV0KHsgcmVxdWlyZWQ6IHRydWUgfSkgY29sdW1uITogYW55O1xyXG4gIEBJbnB1dCh7IHJlcXVpcmVkOiB0cnVlIH0pIGFsbFRhYmxlRGF0YSE6IGFueTtcclxuICBASW5wdXQoeyByZXF1aXJlZDogZmFsc2UgfSkgcm93U2VsZWN0b3I6IEJlaGF2aW9yU3ViamVjdDxhbnk+IHwgdW5kZWZpbmVkID1cclxuICAgIHVuZGVmaW5lZDtcclxuICBAT3V0cHV0KCkgb25Db2x1bW5DbGlja2VkOiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuICBnZXQgY29sdW1uc1R5cGVzKCkge1xyXG4gICAgcmV0dXJuIENPTFVNTlNfVFlQRVM7XHJcbiAgfVxyXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgbmlyYVNuYWNrQmFyOiBOaXJhU25hY2tCYXJTZXJ2aWNlKSB7fVxyXG4gIGdldFNlbGVjdG9yRGF0YShkYXRhOiBhbnksIGtleTogc3RyaW5nKSB7XHJcbiAgICBpZiAoa2V5KSB7XHJcbiAgICAgIGNvbnN0IHNwbGl0ID0ga2V5LnNwbGl0KCcuJyk7XHJcbiAgICAgIGlmIChzcGxpdC5sZW5ndGggPT09IDEpIHtcclxuICAgICAgICByZXR1cm4gZGF0YVtrZXldO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIGxldCBuZXdEYXRhID0gZGF0YTtcclxuICAgICAgICBzcGxpdC5mb3JFYWNoKChuZXdLYXkpID0+IHtcclxuICAgICAgICAgIG5ld0RhdGEgPSBuZXdEYXRhW25ld0theV07XHJcbiAgICAgICAgfSk7XHJcblxyXG4gICAgICAgIHJldHVybiBuZXdEYXRhO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG4gIG9uVGV4dENvbHVtbkNsaWNrZWQoY29sdW1uOiBhbnksIGRhdGE6IHN0cmluZykge1xyXG4gICAgaWYgKCFjb2x1bW4uY29wdFRvQ2xpcGJvYXJkKSByZXR1cm47XHJcbiAgICBuYXZpZ2F0b3IuY2xpcGJvYXJkXHJcbiAgICAgIC53cml0ZVRleHQoZGF0YSlcclxuICAgICAgLnRoZW4oKGUpID0+IHtcclxuICAgICAgICB0aGlzLm5pcmFTbmFja0Jhci5zaG93KCfYqNinINmF2YjZgdmC24zYqiDaqdm+24wg2LTYrycsIHtcclxuICAgICAgICAgIHN0YXR1c0NsYXNzOiAnc3VjY2VzcycsXHJcbiAgICAgICAgICBkdXJhdGlvbjogMzAwMCxcclxuICAgICAgICB9KTtcclxuICAgICAgfSlcclxuICAgICAgLmNhdGNoKChlKSA9PiBjb25zb2xlLmVycm9yKGUpKTtcclxuICB9XHJcbiAgY2xpY2tlZCh2YWw6IGFueSkge1xyXG4gICAgdGhpcy5vbkNvbHVtbkNsaWNrZWQuZW1pdCh2YWwpO1xyXG4gIH1cclxuICBjb21iaW5lZERhdGEoZGV0YWlsVmlld2VyOiBhbnksIGRhdGE6IGFueSkge1xyXG4gICAgcmV0dXJuIHtcclxuICAgICAgZGV0YWlsVmlld2VyOiBkZXRhaWxWaWV3ZXIsXHJcbiAgICAgIGRhdGE6IGRhdGEsXHJcbiAgICB9O1xyXG4gIH1cclxufVxyXG4iLCI8Y29udGFpbmVyLWVsZW1lbnQgW25nU3dpdGNoXT1cImNvbHVtbi50eXBlXCI+XHJcbiAgPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PlxyXG5cclxuICA8YXBwLWNvcmUtdGFibGUtcm93LXNlbGVjdG9yLWNvbHVtblxyXG4gICAgKm5nU3dpdGNoQ2FzZT1cImNvbHVtbnNUeXBlcy5ST1dfU0VMRUNUT1JcIlxyXG4gICAgW3Jvd1NlbGVjdG9yXT1cInJvd1NlbGVjdG9yXCJcclxuICAgIFtkYXRhXT1cImRhdGFcIlxyXG4gICAgW2FsbFRhYmxlRGF0YV09XCJhbGxUYWJsZURhdGFcIlxyXG4gICAgW2NvbHVtbl09XCJjb2x1bW5cIlxyXG4gID48L2FwcC1jb3JlLXRhYmxlLXJvdy1zZWxlY3Rvci1jb2x1bW4+XHJcbiAgPGFwcC1jb3JlLXRhYmxlLXN0YXR1cy1hY3RpdmUtY29sdW1uXHJcbiAgICAqbmdTd2l0Y2hDYXNlPVwiY29sdW1uc1R5cGVzLlNUQVRVU19BQ1RJVkVcIlxyXG4gICAgW2RhdGFdPVwiZGF0YVwiXHJcbiAgICBbY29sdW1uXT1cImNvbHVtblwiXHJcbiAgPjwvYXBwLWNvcmUtdGFibGUtc3RhdHVzLWFjdGl2ZS1jb2x1bW4+XHJcbiAgPGFwcC1jb3JlLXRhYmxlLXN0YXR1cy1jb2x1bW5cclxuICAgICpuZ1N3aXRjaENhc2U9XCJjb2x1bW5zVHlwZXMuU1RBVFVTXCJcclxuICAgIFtkYXRhXT1cImRhdGFcIlxyXG4gICAgW2NvbHVtbl09XCJjb2x1bW5cIlxyXG4gID48L2FwcC1jb3JlLXRhYmxlLXN0YXR1cy1jb2x1bW4+XHJcbiAgPGFwcC1jb3JlLXRhYmxlLWFjdGlvbi1jb2x1bW5cclxuICAgICpuZ1N3aXRjaENhc2U9XCJjb2x1bW5zVHlwZXMuQUNUSU9OXCJcclxuICAgIFtkYXRhXT1cImRhdGFcIlxyXG4gICAgW2NvbHVtbl09XCJjb2x1bW5cIlxyXG4gID48L2FwcC1jb3JlLXRhYmxlLWFjdGlvbi1jb2x1bW4+XHJcbiAgPGFwcC1jb3JlLXRhYmxlLWFjdGlvbi1idXR0b25zLWNvbHVtblxyXG4gICAgKm5nU3dpdGNoQ2FzZT1cImNvbHVtbnNUeXBlcy5BQ1RJT05fQlVUVE9OU1wiXHJcbiAgICAob25DbGljayk9XCJjbGlja2VkKCRldmVudClcIlxyXG4gICAgW2RhdGFdPVwiZGF0YVwiXHJcbiAgICBbY29sdW1uXT1cImNvbHVtblwiXHJcbiAgPjwvYXBwLWNvcmUtdGFibGUtYWN0aW9uLWJ1dHRvbnMtY29sdW1uPlxyXG4gIDxhcHAtY29yZS10YWJsZS1zaGFtc2ktZGF0ZVxyXG4gICAgKm5nU3dpdGNoQ2FzZT1cImNvbHVtbnNUeXBlcy5TSEFNU0lfREFURVwiXHJcbiAgICBbZGF0YV09XCJkYXRhXCJcclxuICAgIFtjb2x1bW5dPVwiY29sdW1uXCJcclxuICA+XHJcbiAgPC9hcHAtY29yZS10YWJsZS1zaGFtc2ktZGF0ZT5cclxuICA8YXBwLWNvcmUtcm93LXBlbGFrXHJcbiAgICBjbGFzcz1cImlubGluZS1ibG9ja1wiXHJcbiAgICAqbmdTd2l0Y2hDYXNlPVwiY29sdW1uc1R5cGVzLlBFTEFLXCJcclxuICAgIFtkYXRhXT1cImRhdGFcIlxyXG4gICAgW2NvbHVtbl09XCJjb2x1bW5cIlxyXG4gID48L2FwcC1jb3JlLXJvdy1wZWxhaz5cclxuICA8c3BhblxyXG4gICAgKm5nU3dpdGNoQ2FzZT1cImNvbHVtbnNUeXBlcy5URVhUXCJcclxuICAgIFtuZ0NsYXNzXT1cInsgJ2N1cnNvci1wb2ludGVyJzogY29sdW1uLmNvcHRUb0NsaXBib2FyZCB9XCJcclxuICAgIChjbGljayk9XCJvblRleHRDb2x1bW5DbGlja2VkKGNvbHVtbiwgZGF0YVtjb2x1bW4ua2V5XSlcIlxyXG4gICAgdGFibGVEZXRhaWxWaWV3ZXJNYW5hZ2VyXHJcbiAgICBbZGV0YWlsVmlld2VyRGF0YV09XCJcclxuICAgICAgY29tYmluZWREYXRhKGNvbHVtbi5kZXRhaWxWaWV3ZXIsIGRhdGFbY29sdW1uLmRldGFpbFZpZXdlcj8ua2V5XSlcclxuICAgIFwiXHJcbiAgICA+e3sgZGF0YVtjb2x1bW4ua2V5XSB8IHBlcnNpYW5EaWdpdHMgfX08L3NwYW5cclxuICA+XHJcbiAgPHNwYW5cclxuICAgICpuZ1N3aXRjaENhc2U9XCJjb2x1bW5zVHlwZXMuTlVNQkVSXCJcclxuICAgIFtuZ0NsYXNzXT1cIntcclxuICAgICAgJ2N1cnNvci1wb2ludGVyJzogY29sdW1uLmNvcHlUb0NsaXBib2FyZCxcclxuICAgICAgZ3JlZW46IGRhdGFbY29sdW1uLmtleV0gPiAwICYmIGNvbHVtbi5jYW5Db2xvcmZ1bE51bWJlcixcclxuICAgICAgcmVkOiBkYXRhW2NvbHVtbi5rZXldIDwgMCAmJiBjb2x1bW4uY2FuQ29sb3JmdWxOdW1iZXJcclxuICAgIH1cIlxyXG4gICAgKGNsaWNrKT1cIm9uVGV4dENvbHVtbkNsaWNrZWQoY29sdW1uLCBkYXRhW2NvbHVtbi5rZXldKVwiXHJcbiAgICB0YWJsZURldGFpbFZpZXdlck1hbmFnZXJcclxuICAgIGRpcj1cImx0clwiXHJcbiAgICBbZGV0YWlsVmlld2VyRGF0YV09XCJcclxuICAgICAgY29tYmluZWREYXRhKGNvbHVtbi5kZXRhaWxWaWV3ZXIsIGRhdGFbY29sdW1uLmRldGFpbFZpZXdlcj8ua2V5XSlcclxuICAgIFwiXHJcbiAgICA+PGFwcC1jb3JlLW51bWJlclxyXG4gICAgICBbbnVtYmVyXT1cImRhdGFbY29sdW1uLmtleV1cIlxyXG4gICAgICBbdHlwZV09XCInbnVtYmVyJ1wiXHJcbiAgICAgIFtjYW5TcGxpdE51bWJlcnNdPVwidHJ1ZVwiXHJcbiAgICAgIFtjYW5TaG93V29yZEluVG9vbFRpcF09XCJ0cnVlXCJcclxuICAgID5cclxuICAgIDwvYXBwLWNvcmUtbnVtYmVyPlxyXG4gIDwvc3Bhbj5cclxuICA8c3BhbiAqbmdTd2l0Y2hDYXNlPVwiY29sdW1uc1R5cGVzLlNFTEVDVE9SXCI+XHJcbiAgICA8c3BhblxyXG4gICAgICAqbmdJZj1cImRhdGFbY29sdW1uLmtleS5zcGxpdCgnLicpWzBdXVwiXHJcbiAgICAgIHRhYmxlRGV0YWlsVmlld2VyTWFuYWdlclxyXG4gICAgICBbZGV0YWlsVmlld2VyRGF0YV09XCJcclxuICAgICAgICBjb21iaW5lZERhdGEoXHJcbiAgICAgICAgICBjb2x1bW4uZGV0YWlsVmlld2VyLFxyXG4gICAgICAgICAgZ2V0U2VsZWN0b3JEYXRhKFxyXG4gICAgICAgICAgICBkYXRhW2NvbHVtbi5rZXkuc3BsaXQoJy4nKVswXV0sXHJcbiAgICAgICAgICAgIGNvbHVtbi5kZXRhaWxWaWV3ZXI/LmtleVxyXG4gICAgICAgICAgKVxyXG4gICAgICAgIClcclxuICAgICAgXCJcclxuICAgICAgPnt7XHJcbiAgICAgICAgZ2V0U2VsZWN0b3JEYXRhKGRhdGFbY29sdW1uLmtleS5zcGxpdChcIi5cIilbMF1dLCBjb2x1bW4uZGF0YS5rZXkpXHJcbiAgICAgICAgICB8IHBlcnNpYW5EaWdpdHNcclxuICAgICAgfX08L3NwYW5cclxuICAgID5cclxuICA8L3NwYW4+XHJcbjwvY29udGFpbmVyLWVsZW1lbnQ+XHJcbiJdfQ==
|
package/esm2022/lib/core-table/core-table-column-manager/core-table-column-manager.component.mjs
CHANGED
|
@@ -62,21 +62,24 @@ export class CoreTableColumnManagerComponent {
|
|
|
62
62
|
};
|
|
63
63
|
}
|
|
64
64
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: CoreTableColumnManagerComponent, deps: [{ token: i1.NiraSnackBarService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
65
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: CoreTableColumnManagerComponent, selector: "app-core-table-column-manager", inputs: { data: "data", column: "column", rowSelector: "rowSelector" }, outputs: { onColumnClicked: "onColumnClicked" }, ngImport: i0, template: "<container-element [ngSwitch]=\"column.type\">\r\n <ng-content></ng-content>\r\n\r\n <app-core-table-row-selector-column\r\n *ngSwitchCase=\"columnsTypes.ROW_SELECTOR\"\r\n [rowSelector]=\"rowSelector\"\r\n [data]=\"data\"\r\n [column]=\"column\"\r\n ></app-core-table-row-selector-column>\r\n <app-core-table-status-active-column\r\n *ngSwitchCase=\"columnsTypes.STATUS_ACTIVE\"\r\n [data]=\"data\"\r\n [column]=\"column\"\r\n ></app-core-table-status-active-column>\r\n <app-core-table-status-column\r\n *ngSwitchCase=\"columnsTypes.STATUS\"\r\n [data]=\"data\"\r\n [column]=\"column\"\r\n ></app-core-table-status-column>\r\n <app-core-table-action-column\r\n *ngSwitchCase=\"columnsTypes.ACTION\"\r\n [data]=\"data\"\r\n [column]=\"column\"\r\n ></app-core-table-action-column>\r\n <app-core-table-action-buttons-column\r\n *ngSwitchCase=\"columnsTypes.ACTION_BUTTONS\"\r\n (onClick)=\"clicked($event)\"\r\n [data]=\"data\"\r\n [column]=\"column\"\r\n ></app-core-table-action-buttons-column>\r\n <app-core-table-shamsi-date\r\n *ngSwitchCase=\"columnsTypes.SHAMSI_DATE\"\r\n [data]=\"data\"\r\n [column]=\"column\"\r\n >\r\n </app-core-table-shamsi-date>\r\n <app-core-row-pelak\r\n *ngSwitchCase=\"columnsTypes.PELAK\"\r\n [data]=\"data\"\r\n [column]=\"column\"\r\n ></app-core-row-pelak>\r\n <core-table-detail-viewer-for-report\r\n *ngSwitchCase=\"columnsTypes.DETAIL_VIEWER_FOR_REPORT\"\r\n [data]=\"data\"\r\n [column]=\"column\"\r\n ></core-table-detail-viewer-for-report>\r\n <span\r\n *ngSwitchCase=\"columnsTypes.TEXT\"\r\n [ngClass]=\"{ 'cursor-pointer': column.coptToClipboard }\"\r\n (click)=\"onTextColumnClicked(column, data[column.key])\"\r\n tableDetailViewerManager\r\n [detailViewerData]=\"\r\n combinedData(column.detailViewer, data[column.detailViewer?.key])\r\n \"\r\n >{{ data[column.key] | persianDigits }}</span\r\n >\r\n <span\r\n *ngSwitchCase=\"columnsTypes.NUMBER\"\r\n [ngClass]=\"{\r\n 'cursor-pointer': column.copyToClipboard,\r\n green: data[column.key] > 0 && column.canColorfulNumber,\r\n red: data[column.key] < 0 && column.canColorfulNumber\r\n }\"\r\n (click)=\"onTextColumnClicked(column, data[column.key])\"\r\n tableDetailViewerManager\r\n dir=\"ltr\"\r\n [detailViewerData]=\"\r\n combinedData(column.detailViewer, data[column.detailViewer?.key])\r\n \"\r\n ><app-core-number\r\n [number]=\"data[column.key]\"\r\n [type]=\"'number'\"\r\n [canSplitNumbers]=\"true\"\r\n [canShowWordInToolTip]=\"true\"\r\n >\r\n </app-core-number>\r\n </span>\r\n\r\n <span *ngSwitchCase=\"columnsTypes.SELECTOR\">\r\n <span\r\n *ngIf=\"data[column.key.split('.')[0]]\"\r\n tableDetailViewerManager\r\n [detailViewerData]=\"\r\n combinedData(\r\n column.detailViewer,\r\n getSelectorData(\r\n data[column.key.split('.')[0]],\r\n column.detailViewer?.key\r\n )\r\n )\r\n \"\r\n >{{\r\n getSelectorData(data[column.key.split(\".\")[0]], column.data.key)\r\n | persianDigits\r\n }}</span\r\n >\r\n </span>\r\n</container-element>\r\n", styles: [""], dependencies: [{ kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { kind: "directive", type: i2.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { kind: "component", type: i3.CoreTableActionButtonsColumnComponent, selector: "app-core-table-action-buttons-column", inputs: ["data", "column"], outputs: ["onClick"] }, { kind: "component", type: i4.CoreTableActionColumnComponent, selector: "app-core-table-action-column", inputs: ["data", "column"] }, { kind: "component", type: i5.CoreTableRowSelectorColumnComponent, selector: "app-core-table-row-selector-column", inputs: ["data", "column", "rowSelector"] }, { kind: "component", type: i6.CoreTableShamsiDateComponent, selector: "app-core-table-shamsi-date", inputs: ["data", "column"], outputs: ["onClick"] }, { kind: "component", type: i7.CoreTableStatusColumnComponent, selector: "app-core-table-status-column", inputs: ["data", "column"] }, { kind: "component", type: i8.CoreNumberComponent, selector: "app-core-number", inputs: ["number", "type", "canSplitNumbers", "canShowWordInToolTip", "canShowIRR"] }, { kind: "directive", type: i9.TableDetailViewerManagerDirective, selector: "[tableDetailViewerManager]", inputs: ["detailViewerData"] }, { kind: "component", type: i10.CoreTableStatusActiveColumnComponent, selector: "app-core-table-status-active-column", inputs: ["data", "column"] }, { kind: "component", type: i11.CoreRowPelakComponent, selector: "app-core-row-pelak", inputs: ["data", "column"] }, { kind: "component", type: i12.CoreTableDetailViewerForReportComponent, selector: "core-table-detail-viewer-for-report", inputs: ["data", "column"] }, { kind: "pipe", type: i13.PersianDigitsPipe, name: "persianDigits" }] }); }
|
|
65
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: CoreTableColumnManagerComponent, selector: "app-core-table-column-manager", inputs: { data: "data", column: "column", allTableData: "allTableData", rowSelector: "rowSelector" }, outputs: { onColumnClicked: "onColumnClicked" }, ngImport: i0, template: "<container-element [ngSwitch]=\"column.type\">\r\n <ng-content></ng-content>\r\n\r\n <app-core-table-row-selector-column\r\n *ngSwitchCase=\"columnsTypes.ROW_SELECTOR\"\r\n [rowSelector]=\"rowSelector\"\r\n [data]=\"data\"\r\n [allTableData]=\"allTableData\"\r\n [column]=\"column\"\r\n ></app-core-table-row-selector-column>\r\n <app-core-table-status-active-column\r\n *ngSwitchCase=\"columnsTypes.STATUS_ACTIVE\"\r\n [data]=\"data\"\r\n [column]=\"column\"\r\n ></app-core-table-status-active-column>\r\n <app-core-table-status-column\r\n *ngSwitchCase=\"columnsTypes.STATUS\"\r\n [data]=\"data\"\r\n [column]=\"column\"\r\n ></app-core-table-status-column>\r\n <app-core-table-action-column\r\n *ngSwitchCase=\"columnsTypes.ACTION\"\r\n [data]=\"data\"\r\n [column]=\"column\"\r\n ></app-core-table-action-column>\r\n <app-core-table-action-buttons-column\r\n *ngSwitchCase=\"columnsTypes.ACTION_BUTTONS\"\r\n (onClick)=\"clicked($event)\"\r\n [data]=\"data\"\r\n [column]=\"column\"\r\n ></app-core-table-action-buttons-column>\r\n <app-core-table-shamsi-date\r\n *ngSwitchCase=\"columnsTypes.SHAMSI_DATE\"\r\n [data]=\"data\"\r\n [column]=\"column\"\r\n >\r\n </app-core-table-shamsi-date>\r\n <app-core-row-pelak\r\n *ngSwitchCase=\"columnsTypes.PELAK\"\r\n [data]=\"data\"\r\n [column]=\"column\"\r\n ></app-core-row-pelak>\r\n <core-table-detail-viewer-for-report\r\n *ngSwitchCase=\"columnsTypes.DETAIL_VIEWER_FOR_REPORT\"\r\n [data]=\"data\"\r\n [column]=\"column\"\r\n ></core-table-detail-viewer-for-report>\r\n <span\r\n *ngSwitchCase=\"columnsTypes.TEXT\"\r\n [ngClass]=\"{ 'cursor-pointer': column.coptToClipboard }\"\r\n (click)=\"onTextColumnClicked(column, data[column.key])\"\r\n tableDetailViewerManager\r\n [detailViewerData]=\"\r\n combinedData(column.detailViewer, data[column.detailViewer?.key])\r\n \"\r\n >{{ data[column.key] | persianDigits }}</span\r\n >\r\n <span\r\n *ngSwitchCase=\"columnsTypes.NUMBER\"\r\n [ngClass]=\"{\r\n 'cursor-pointer': column.copyToClipboard,\r\n green: data[column.key] > 0 && column.canColorfulNumber,\r\n red: data[column.key] < 0 && column.canColorfulNumber\r\n }\"\r\n (click)=\"onTextColumnClicked(column, data[column.key])\"\r\n tableDetailViewerManager\r\n dir=\"ltr\"\r\n [detailViewerData]=\"\r\n combinedData(column.detailViewer, data[column.detailViewer?.key])\r\n \"\r\n ><app-core-number\r\n [number]=\"data[column.key]\"\r\n [type]=\"'number'\"\r\n [canSplitNumbers]=\"true\"\r\n [canShowWordInToolTip]=\"true\"\r\n >\r\n </app-core-number>\r\n </span>\r\n\r\n <span *ngSwitchCase=\"columnsTypes.SELECTOR\">\r\n <span\r\n *ngIf=\"data[column.key.split('.')[0]]\"\r\n tableDetailViewerManager\r\n [detailViewerData]=\"\r\n combinedData(\r\n column.detailViewer,\r\n getSelectorData(\r\n data[column.key.split('.')[0]],\r\n column.detailViewer?.key\r\n )\r\n )\r\n \"\r\n >{{\r\n getSelectorData(data[column.key.split(\".\")[0]], column.data.key)\r\n | persianDigits\r\n }}</span\r\n >\r\n </span>\r\n</container-element>\r\n", styles: [""], dependencies: [{ kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { kind: "directive", type: i2.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { kind: "component", type: i3.CoreTableActionButtonsColumnComponent, selector: "app-core-table-action-buttons-column", inputs: ["data", "column"], outputs: ["onClick"] }, { kind: "component", type: i4.CoreTableActionColumnComponent, selector: "app-core-table-action-column", inputs: ["data", "column"] }, { kind: "component", type: i5.CoreTableRowSelectorColumnComponent, selector: "app-core-table-row-selector-column", inputs: ["data", "column", "allTableData", "rowSelector"] }, { kind: "component", type: i6.CoreTableShamsiDateComponent, selector: "app-core-table-shamsi-date", inputs: ["data", "column"], outputs: ["onClick"] }, { kind: "component", type: i7.CoreTableStatusColumnComponent, selector: "app-core-table-status-column", inputs: ["data", "column"] }, { kind: "component", type: i8.CoreNumberComponent, selector: "app-core-number", inputs: ["number", "type", "canSplitNumbers", "canShowWordInToolTip", "canShowIRR"] }, { kind: "directive", type: i9.TableDetailViewerManagerDirective, selector: "[tableDetailViewerManager]", inputs: ["detailViewerData"] }, { kind: "component", type: i10.CoreTableStatusActiveColumnComponent, selector: "app-core-table-status-active-column", inputs: ["data", "column"] }, { kind: "component", type: i11.CoreRowPelakComponent, selector: "app-core-row-pelak", inputs: ["data", "column"] }, { kind: "component", type: i12.CoreTableDetailViewerForReportComponent, selector: "core-table-detail-viewer-for-report", inputs: ["data", "column"] }, { kind: "pipe", type: i13.PersianDigitsPipe, name: "persianDigits" }] }); }
|
|
66
66
|
}
|
|
67
67
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: CoreTableColumnManagerComponent, decorators: [{
|
|
68
68
|
type: Component,
|
|
69
|
-
args: [{ selector: 'app-core-table-column-manager', template: "<container-element [ngSwitch]=\"column.type\">\r\n <ng-content></ng-content>\r\n\r\n <app-core-table-row-selector-column\r\n *ngSwitchCase=\"columnsTypes.ROW_SELECTOR\"\r\n [rowSelector]=\"rowSelector\"\r\n [data]=\"data\"\r\n [column]=\"column\"\r\n ></app-core-table-row-selector-column>\r\n <app-core-table-status-active-column\r\n *ngSwitchCase=\"columnsTypes.STATUS_ACTIVE\"\r\n [data]=\"data\"\r\n [column]=\"column\"\r\n ></app-core-table-status-active-column>\r\n <app-core-table-status-column\r\n *ngSwitchCase=\"columnsTypes.STATUS\"\r\n [data]=\"data\"\r\n [column]=\"column\"\r\n ></app-core-table-status-column>\r\n <app-core-table-action-column\r\n *ngSwitchCase=\"columnsTypes.ACTION\"\r\n [data]=\"data\"\r\n [column]=\"column\"\r\n ></app-core-table-action-column>\r\n <app-core-table-action-buttons-column\r\n *ngSwitchCase=\"columnsTypes.ACTION_BUTTONS\"\r\n (onClick)=\"clicked($event)\"\r\n [data]=\"data\"\r\n [column]=\"column\"\r\n ></app-core-table-action-buttons-column>\r\n <app-core-table-shamsi-date\r\n *ngSwitchCase=\"columnsTypes.SHAMSI_DATE\"\r\n [data]=\"data\"\r\n [column]=\"column\"\r\n >\r\n </app-core-table-shamsi-date>\r\n <app-core-row-pelak\r\n *ngSwitchCase=\"columnsTypes.PELAK\"\r\n [data]=\"data\"\r\n [column]=\"column\"\r\n ></app-core-row-pelak>\r\n <core-table-detail-viewer-for-report\r\n *ngSwitchCase=\"columnsTypes.DETAIL_VIEWER_FOR_REPORT\"\r\n [data]=\"data\"\r\n [column]=\"column\"\r\n ></core-table-detail-viewer-for-report>\r\n <span\r\n *ngSwitchCase=\"columnsTypes.TEXT\"\r\n [ngClass]=\"{ 'cursor-pointer': column.coptToClipboard }\"\r\n (click)=\"onTextColumnClicked(column, data[column.key])\"\r\n tableDetailViewerManager\r\n [detailViewerData]=\"\r\n combinedData(column.detailViewer, data[column.detailViewer?.key])\r\n \"\r\n >{{ data[column.key] | persianDigits }}</span\r\n >\r\n <span\r\n *ngSwitchCase=\"columnsTypes.NUMBER\"\r\n [ngClass]=\"{\r\n 'cursor-pointer': column.copyToClipboard,\r\n green: data[column.key] > 0 && column.canColorfulNumber,\r\n red: data[column.key] < 0 && column.canColorfulNumber\r\n }\"\r\n (click)=\"onTextColumnClicked(column, data[column.key])\"\r\n tableDetailViewerManager\r\n dir=\"ltr\"\r\n [detailViewerData]=\"\r\n combinedData(column.detailViewer, data[column.detailViewer?.key])\r\n \"\r\n ><app-core-number\r\n [number]=\"data[column.key]\"\r\n [type]=\"'number'\"\r\n [canSplitNumbers]=\"true\"\r\n [canShowWordInToolTip]=\"true\"\r\n >\r\n </app-core-number>\r\n </span>\r\n\r\n <span *ngSwitchCase=\"columnsTypes.SELECTOR\">\r\n <span\r\n *ngIf=\"data[column.key.split('.')[0]]\"\r\n tableDetailViewerManager\r\n [detailViewerData]=\"\r\n combinedData(\r\n column.detailViewer,\r\n getSelectorData(\r\n data[column.key.split('.')[0]],\r\n column.detailViewer?.key\r\n )\r\n )\r\n \"\r\n >{{\r\n getSelectorData(data[column.key.split(\".\")[0]], column.data.key)\r\n | persianDigits\r\n }}</span\r\n >\r\n </span>\r\n</container-element>\r\n" }]
|
|
69
|
+
args: [{ selector: 'app-core-table-column-manager', template: "<container-element [ngSwitch]=\"column.type\">\r\n <ng-content></ng-content>\r\n\r\n <app-core-table-row-selector-column\r\n *ngSwitchCase=\"columnsTypes.ROW_SELECTOR\"\r\n [rowSelector]=\"rowSelector\"\r\n [data]=\"data\"\r\n [allTableData]=\"allTableData\"\r\n [column]=\"column\"\r\n ></app-core-table-row-selector-column>\r\n <app-core-table-status-active-column\r\n *ngSwitchCase=\"columnsTypes.STATUS_ACTIVE\"\r\n [data]=\"data\"\r\n [column]=\"column\"\r\n ></app-core-table-status-active-column>\r\n <app-core-table-status-column\r\n *ngSwitchCase=\"columnsTypes.STATUS\"\r\n [data]=\"data\"\r\n [column]=\"column\"\r\n ></app-core-table-status-column>\r\n <app-core-table-action-column\r\n *ngSwitchCase=\"columnsTypes.ACTION\"\r\n [data]=\"data\"\r\n [column]=\"column\"\r\n ></app-core-table-action-column>\r\n <app-core-table-action-buttons-column\r\n *ngSwitchCase=\"columnsTypes.ACTION_BUTTONS\"\r\n (onClick)=\"clicked($event)\"\r\n [data]=\"data\"\r\n [column]=\"column\"\r\n ></app-core-table-action-buttons-column>\r\n <app-core-table-shamsi-date\r\n *ngSwitchCase=\"columnsTypes.SHAMSI_DATE\"\r\n [data]=\"data\"\r\n [column]=\"column\"\r\n >\r\n </app-core-table-shamsi-date>\r\n <app-core-row-pelak\r\n *ngSwitchCase=\"columnsTypes.PELAK\"\r\n [data]=\"data\"\r\n [column]=\"column\"\r\n ></app-core-row-pelak>\r\n <core-table-detail-viewer-for-report\r\n *ngSwitchCase=\"columnsTypes.DETAIL_VIEWER_FOR_REPORT\"\r\n [data]=\"data\"\r\n [column]=\"column\"\r\n ></core-table-detail-viewer-for-report>\r\n <span\r\n *ngSwitchCase=\"columnsTypes.TEXT\"\r\n [ngClass]=\"{ 'cursor-pointer': column.coptToClipboard }\"\r\n (click)=\"onTextColumnClicked(column, data[column.key])\"\r\n tableDetailViewerManager\r\n [detailViewerData]=\"\r\n combinedData(column.detailViewer, data[column.detailViewer?.key])\r\n \"\r\n >{{ data[column.key] | persianDigits }}</span\r\n >\r\n <span\r\n *ngSwitchCase=\"columnsTypes.NUMBER\"\r\n [ngClass]=\"{\r\n 'cursor-pointer': column.copyToClipboard,\r\n green: data[column.key] > 0 && column.canColorfulNumber,\r\n red: data[column.key] < 0 && column.canColorfulNumber\r\n }\"\r\n (click)=\"onTextColumnClicked(column, data[column.key])\"\r\n tableDetailViewerManager\r\n dir=\"ltr\"\r\n [detailViewerData]=\"\r\n combinedData(column.detailViewer, data[column.detailViewer?.key])\r\n \"\r\n ><app-core-number\r\n [number]=\"data[column.key]\"\r\n [type]=\"'number'\"\r\n [canSplitNumbers]=\"true\"\r\n [canShowWordInToolTip]=\"true\"\r\n >\r\n </app-core-number>\r\n </span>\r\n\r\n <span *ngSwitchCase=\"columnsTypes.SELECTOR\">\r\n <span\r\n *ngIf=\"data[column.key.split('.')[0]]\"\r\n tableDetailViewerManager\r\n [detailViewerData]=\"\r\n combinedData(\r\n column.detailViewer,\r\n getSelectorData(\r\n data[column.key.split('.')[0]],\r\n column.detailViewer?.key\r\n )\r\n )\r\n \"\r\n >{{\r\n getSelectorData(data[column.key.split(\".\")[0]], column.data.key)\r\n | persianDigits\r\n }}</span\r\n >\r\n </span>\r\n</container-element>\r\n" }]
|
|
70
70
|
}], ctorParameters: function () { return [{ type: i1.NiraSnackBarService }]; }, propDecorators: { data: [{
|
|
71
71
|
type: Input,
|
|
72
72
|
args: [{ required: true }]
|
|
73
73
|
}], column: [{
|
|
74
74
|
type: Input,
|
|
75
75
|
args: [{ required: true }]
|
|
76
|
+
}], allTableData: [{
|
|
77
|
+
type: Input,
|
|
78
|
+
args: [{ required: true }]
|
|
76
79
|
}], rowSelector: [{
|
|
77
80
|
type: Input,
|
|
78
81
|
args: [{ required: false }]
|
|
79
82
|
}], onColumnClicked: [{
|
|
80
83
|
type: Output
|
|
81
84
|
}] } });
|
|
82
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
85
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29yZS10YWJsZS1jb2x1bW4tbWFuYWdlci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9mYWxjb24tbGliL3NyYy9saWIvY29yZS10YWJsZS9jb3JlLXRhYmxlLWNvbHVtbi1tYW5hZ2VyL2NvcmUtdGFibGUtY29sdW1uLW1hbmFnZXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZmFsY29uLWxpYi9zcmMvbGliL2NvcmUtdGFibGUvY29yZS10YWJsZS1jb2x1bW4tbWFuYWdlci9jb3JlLXRhYmxlLWNvbHVtbi1tYW5hZ2VyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFdkUsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLDBCQUEwQixDQUFDOzs7Ozs7Ozs7Ozs7Ozs7QUFRekQsTUFBTSxPQUFPLCtCQUErQjtJQU8xQyxJQUFJLFlBQVk7UUFDZCxPQUFPLGFBQWEsQ0FBQztJQUN2QixDQUFDO0lBQ0QsWUFBb0IsWUFBaUM7UUFBakMsaUJBQVksR0FBWixZQUFZLENBQXFCO1FBTnpCLGdCQUFXLEdBQ3JDLFNBQVMsQ0FBQztRQUNGLG9CQUFlLEdBQXNCLElBQUksWUFBWSxFQUFFLENBQUM7SUFJVixDQUFDO0lBQ3pELGVBQWUsQ0FBQyxJQUFTLEVBQUUsR0FBVztRQUNwQyxJQUFJLENBQUMsR0FBRyxFQUFFO1lBQ1IsT0FBTyxFQUFFLENBQUM7U0FDWDtRQUNELE1BQU0sS0FBSyxHQUFHLEdBQUcsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDN0IsSUFBSSxLQUFLLENBQUMsTUFBTSxLQUFLLENBQUMsRUFBRTtZQUN0QixPQUFPLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztTQUNsQjthQUFNO1lBQ0wsSUFBSSxPQUFPLEdBQUcsSUFBSSxDQUFDO1lBQ25CLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQyxNQUFNLEVBQUUsRUFBRTtnQkFDdkIsT0FBTyxHQUFHLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQztZQUM1QixDQUFDLENBQUMsQ0FBQztZQUVILE9BQU8sT0FBTyxDQUFDO1NBQ2hCO0lBQ0gsQ0FBQztJQUNELG1CQUFtQixDQUFDLE1BQVcsRUFBRSxJQUFZO1FBQzNDLElBQUksQ0FBQyxNQUFNLENBQUMsZUFBZTtZQUFFLE9BQU87UUFDcEMsU0FBUyxDQUFDLFNBQVM7YUFDaEIsU0FBUyxDQUFDLElBQUksQ0FBQzthQUNmLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFO1lBQ1YsSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsa0JBQWtCLEVBQUU7Z0JBQ3pDLFdBQVcsRUFBRSxTQUFTO2dCQUN0QixRQUFRLEVBQUUsSUFBSTthQUNmLENBQUMsQ0FBQztRQUNMLENBQUMsQ0FBQzthQUNELEtBQUssQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ3BDLENBQUM7SUFDRCxPQUFPLENBQUMsR0FBUTtRQUNkLElBQUksQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQ2pDLENBQUM7SUFDRCxZQUFZLENBQUMsWUFBaUIsRUFBRSxJQUFTO1FBQ3ZDLE9BQU87WUFDTCxZQUFZLEVBQUUsWUFBWTtZQUMxQixJQUFJLEVBQUUsSUFBSTtTQUNYLENBQUM7SUFDSixDQUFDOytHQS9DVSwrQkFBK0I7bUdBQS9CLCtCQUErQiw0TkNWNUMsb3ZHQW1HQTs7NEZEekZhLCtCQUErQjtrQkFMM0MsU0FBUzsrQkFDRSwrQkFBK0I7MEdBS2QsSUFBSTtzQkFBOUIsS0FBSzt1QkFBQyxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUU7Z0JBQ0UsTUFBTTtzQkFBaEMsS0FBSzt1QkFBQyxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUU7Z0JBQ0UsWUFBWTtzQkFBdEMsS0FBSzt1QkFBQyxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUU7Z0JBQ0csV0FBVztzQkFBdEMsS0FBSzt1QkFBQyxFQUFFLFFBQVEsRUFBRSxLQUFLLEVBQUU7Z0JBRWhCLGVBQWU7c0JBQXhCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE91dHB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBOaXJhU25hY2tCYXJTZXJ2aWNlIH0gZnJvbSAnbmlyYS1zbmFjay1iYXInO1xyXG5pbXBvcnQgeyBDT0xVTU5TX1RZUEVTIH0gZnJvbSAnLi4vLi4vLi4vdXRpbHMvY29uc3RhbnRzJztcclxuaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0IH0gZnJvbSAncnhqcyc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2FwcC1jb3JlLXRhYmxlLWNvbHVtbi1tYW5hZ2VyJyxcclxuICB0ZW1wbGF0ZVVybDogJy4vY29yZS10YWJsZS1jb2x1bW4tbWFuYWdlci5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vY29yZS10YWJsZS1jb2x1bW4tbWFuYWdlci5jb21wb25lbnQuc2NzcyddLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgQ29yZVRhYmxlQ29sdW1uTWFuYWdlckNvbXBvbmVudCB7XHJcbiAgQElucHV0KHsgcmVxdWlyZWQ6IHRydWUgfSkgZGF0YSE6IGFueTtcclxuICBASW5wdXQoeyByZXF1aXJlZDogdHJ1ZSB9KSBjb2x1bW4hOiBhbnk7XHJcbiAgQElucHV0KHsgcmVxdWlyZWQ6IHRydWUgfSkgYWxsVGFibGVEYXRhITogYW55O1xyXG4gIEBJbnB1dCh7IHJlcXVpcmVkOiBmYWxzZSB9KSByb3dTZWxlY3RvcjogQmVoYXZpb3JTdWJqZWN0PGFueT4gfCB1bmRlZmluZWQgPVxyXG4gICAgdW5kZWZpbmVkO1xyXG4gIEBPdXRwdXQoKSBvbkNvbHVtbkNsaWNrZWQ6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG4gIGdldCBjb2x1bW5zVHlwZXMoKSB7XHJcbiAgICByZXR1cm4gQ09MVU1OU19UWVBFUztcclxuICB9XHJcbiAgY29uc3RydWN0b3IocHJpdmF0ZSBuaXJhU25hY2tCYXI6IE5pcmFTbmFja0JhclNlcnZpY2UpIHt9XHJcbiAgZ2V0U2VsZWN0b3JEYXRhKGRhdGE6IGFueSwga2V5OiBzdHJpbmcpIHtcclxuICAgIGlmICgha2V5KSB7XHJcbiAgICAgIHJldHVybiAnJztcclxuICAgIH1cclxuICAgIGNvbnN0IHNwbGl0ID0ga2V5LnNwbGl0KCcuJyk7XHJcbiAgICBpZiAoc3BsaXQubGVuZ3RoID09PSAxKSB7XHJcbiAgICAgIHJldHVybiBkYXRhW2tleV07XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICBsZXQgbmV3RGF0YSA9IGRhdGE7XHJcbiAgICAgIHNwbGl0LmZvckVhY2goKG5ld0tleSkgPT4ge1xyXG4gICAgICAgIG5ld0RhdGEgPSBuZXdEYXRhW25ld0tleV07XHJcbiAgICAgIH0pO1xyXG5cclxuICAgICAgcmV0dXJuIG5ld0RhdGE7XHJcbiAgICB9XHJcbiAgfVxyXG4gIG9uVGV4dENvbHVtbkNsaWNrZWQoY29sdW1uOiBhbnksIGRhdGE6IHN0cmluZykge1xyXG4gICAgaWYgKCFjb2x1bW4uY29wdFRvQ2xpcGJvYXJkKSByZXR1cm47XHJcbiAgICBuYXZpZ2F0b3IuY2xpcGJvYXJkXHJcbiAgICAgIC53cml0ZVRleHQoZGF0YSlcclxuICAgICAgLnRoZW4oKGUpID0+IHtcclxuICAgICAgICB0aGlzLm5pcmFTbmFja0Jhci5zaG93KCfYqNinINmF2YjZgdmC24zYqiDaqdm+24wg2LTYrycsIHtcclxuICAgICAgICAgIHN0YXR1c0NsYXNzOiAnc3VjY2VzcycsXHJcbiAgICAgICAgICBkdXJhdGlvbjogMzAwMCxcclxuICAgICAgICB9KTtcclxuICAgICAgfSlcclxuICAgICAgLmNhdGNoKChlKSA9PiBjb25zb2xlLmVycm9yKGUpKTtcclxuICB9XHJcbiAgY2xpY2tlZCh2YWw6IGFueSkge1xyXG4gICAgdGhpcy5vbkNvbHVtbkNsaWNrZWQuZW1pdCh2YWwpO1xyXG4gIH1cclxuICBjb21iaW5lZERhdGEoZGV0YWlsVmlld2VyOiBhbnksIGRhdGE6IGFueSkge1xyXG4gICAgcmV0dXJuIHtcclxuICAgICAgZGV0YWlsVmlld2VyOiBkZXRhaWxWaWV3ZXIsXHJcbiAgICAgIGRhdGE6IGRhdGEsXHJcbiAgICB9O1xyXG4gIH1cclxufVxyXG4iLCI8Y29udGFpbmVyLWVsZW1lbnQgW25nU3dpdGNoXT1cImNvbHVtbi50eXBlXCI+XHJcbiAgPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PlxyXG5cclxuICA8YXBwLWNvcmUtdGFibGUtcm93LXNlbGVjdG9yLWNvbHVtblxyXG4gICAgKm5nU3dpdGNoQ2FzZT1cImNvbHVtbnNUeXBlcy5ST1dfU0VMRUNUT1JcIlxyXG4gICAgW3Jvd1NlbGVjdG9yXT1cInJvd1NlbGVjdG9yXCJcclxuICAgIFtkYXRhXT1cImRhdGFcIlxyXG4gICAgW2FsbFRhYmxlRGF0YV09XCJhbGxUYWJsZURhdGFcIlxyXG4gICAgW2NvbHVtbl09XCJjb2x1bW5cIlxyXG4gID48L2FwcC1jb3JlLXRhYmxlLXJvdy1zZWxlY3Rvci1jb2x1bW4+XHJcbiAgPGFwcC1jb3JlLXRhYmxlLXN0YXR1cy1hY3RpdmUtY29sdW1uXHJcbiAgICAqbmdTd2l0Y2hDYXNlPVwiY29sdW1uc1R5cGVzLlNUQVRVU19BQ1RJVkVcIlxyXG4gICAgW2RhdGFdPVwiZGF0YVwiXHJcbiAgICBbY29sdW1uXT1cImNvbHVtblwiXHJcbiAgPjwvYXBwLWNvcmUtdGFibGUtc3RhdHVzLWFjdGl2ZS1jb2x1bW4+XHJcbiAgPGFwcC1jb3JlLXRhYmxlLXN0YXR1cy1jb2x1bW5cclxuICAgICpuZ1N3aXRjaENhc2U9XCJjb2x1bW5zVHlwZXMuU1RBVFVTXCJcclxuICAgIFtkYXRhXT1cImRhdGFcIlxyXG4gICAgW2NvbHVtbl09XCJjb2x1bW5cIlxyXG4gID48L2FwcC1jb3JlLXRhYmxlLXN0YXR1cy1jb2x1bW4+XHJcbiAgPGFwcC1jb3JlLXRhYmxlLWFjdGlvbi1jb2x1bW5cclxuICAgICpuZ1N3aXRjaENhc2U9XCJjb2x1bW5zVHlwZXMuQUNUSU9OXCJcclxuICAgIFtkYXRhXT1cImRhdGFcIlxyXG4gICAgW2NvbHVtbl09XCJjb2x1bW5cIlxyXG4gID48L2FwcC1jb3JlLXRhYmxlLWFjdGlvbi1jb2x1bW4+XHJcbiAgPGFwcC1jb3JlLXRhYmxlLWFjdGlvbi1idXR0b25zLWNvbHVtblxyXG4gICAgKm5nU3dpdGNoQ2FzZT1cImNvbHVtbnNUeXBlcy5BQ1RJT05fQlVUVE9OU1wiXHJcbiAgICAob25DbGljayk9XCJjbGlja2VkKCRldmVudClcIlxyXG4gICAgW2RhdGFdPVwiZGF0YVwiXHJcbiAgICBbY29sdW1uXT1cImNvbHVtblwiXHJcbiAgPjwvYXBwLWNvcmUtdGFibGUtYWN0aW9uLWJ1dHRvbnMtY29sdW1uPlxyXG4gIDxhcHAtY29yZS10YWJsZS1zaGFtc2ktZGF0ZVxyXG4gICAgKm5nU3dpdGNoQ2FzZT1cImNvbHVtbnNUeXBlcy5TSEFNU0lfREFURVwiXHJcbiAgICBbZGF0YV09XCJkYXRhXCJcclxuICAgIFtjb2x1bW5dPVwiY29sdW1uXCJcclxuICA+XHJcbiAgPC9hcHAtY29yZS10YWJsZS1zaGFtc2ktZGF0ZT5cclxuICA8YXBwLWNvcmUtcm93LXBlbGFrXHJcbiAgICAqbmdTd2l0Y2hDYXNlPVwiY29sdW1uc1R5cGVzLlBFTEFLXCJcclxuICAgIFtkYXRhXT1cImRhdGFcIlxyXG4gICAgW2NvbHVtbl09XCJjb2x1bW5cIlxyXG4gID48L2FwcC1jb3JlLXJvdy1wZWxhaz5cclxuICA8Y29yZS10YWJsZS1kZXRhaWwtdmlld2VyLWZvci1yZXBvcnRcclxuICAgICpuZ1N3aXRjaENhc2U9XCJjb2x1bW5zVHlwZXMuREVUQUlMX1ZJRVdFUl9GT1JfUkVQT1JUXCJcclxuICAgIFtkYXRhXT1cImRhdGFcIlxyXG4gICAgW2NvbHVtbl09XCJjb2x1bW5cIlxyXG4gID48L2NvcmUtdGFibGUtZGV0YWlsLXZpZXdlci1mb3ItcmVwb3J0PlxyXG4gIDxzcGFuXHJcbiAgICAqbmdTd2l0Y2hDYXNlPVwiY29sdW1uc1R5cGVzLlRFWFRcIlxyXG4gICAgW25nQ2xhc3NdPVwieyAnY3Vyc29yLXBvaW50ZXInOiBjb2x1bW4uY29wdFRvQ2xpcGJvYXJkIH1cIlxyXG4gICAgKGNsaWNrKT1cIm9uVGV4dENvbHVtbkNsaWNrZWQoY29sdW1uLCBkYXRhW2NvbHVtbi5rZXldKVwiXHJcbiAgICB0YWJsZURldGFpbFZpZXdlck1hbmFnZXJcclxuICAgIFtkZXRhaWxWaWV3ZXJEYXRhXT1cIlxyXG4gICAgICBjb21iaW5lZERhdGEoY29sdW1uLmRldGFpbFZpZXdlciwgZGF0YVtjb2x1bW4uZGV0YWlsVmlld2VyPy5rZXldKVxyXG4gICAgXCJcclxuICAgID57eyBkYXRhW2NvbHVtbi5rZXldIHwgcGVyc2lhbkRpZ2l0cyB9fTwvc3BhblxyXG4gID5cclxuICA8c3BhblxyXG4gICAgKm5nU3dpdGNoQ2FzZT1cImNvbHVtbnNUeXBlcy5OVU1CRVJcIlxyXG4gICAgW25nQ2xhc3NdPVwie1xyXG4gICAgICAnY3Vyc29yLXBvaW50ZXInOiBjb2x1bW4uY29weVRvQ2xpcGJvYXJkLFxyXG4gICAgICBncmVlbjogZGF0YVtjb2x1bW4ua2V5XSA+IDAgJiYgY29sdW1uLmNhbkNvbG9yZnVsTnVtYmVyLFxyXG4gICAgICByZWQ6IGRhdGFbY29sdW1uLmtleV0gPCAwICYmIGNvbHVtbi5jYW5Db2xvcmZ1bE51bWJlclxyXG4gICAgfVwiXHJcbiAgICAoY2xpY2spPVwib25UZXh0Q29sdW1uQ2xpY2tlZChjb2x1bW4sIGRhdGFbY29sdW1uLmtleV0pXCJcclxuICAgIHRhYmxlRGV0YWlsVmlld2VyTWFuYWdlclxyXG4gICAgZGlyPVwibHRyXCJcclxuICAgIFtkZXRhaWxWaWV3ZXJEYXRhXT1cIlxyXG4gICAgICBjb21iaW5lZERhdGEoY29sdW1uLmRldGFpbFZpZXdlciwgZGF0YVtjb2x1bW4uZGV0YWlsVmlld2VyPy5rZXldKVxyXG4gICAgXCJcclxuICAgID48YXBwLWNvcmUtbnVtYmVyXHJcbiAgICAgIFtudW1iZXJdPVwiZGF0YVtjb2x1bW4ua2V5XVwiXHJcbiAgICAgIFt0eXBlXT1cIidudW1iZXInXCJcclxuICAgICAgW2NhblNwbGl0TnVtYmVyc109XCJ0cnVlXCJcclxuICAgICAgW2NhblNob3dXb3JkSW5Ub29sVGlwXT1cInRydWVcIlxyXG4gICAgPlxyXG4gICAgPC9hcHAtY29yZS1udW1iZXI+XHJcbiAgPC9zcGFuPlxyXG5cclxuICA8c3BhbiAqbmdTd2l0Y2hDYXNlPVwiY29sdW1uc1R5cGVzLlNFTEVDVE9SXCI+XHJcbiAgICA8c3BhblxyXG4gICAgICAqbmdJZj1cImRhdGFbY29sdW1uLmtleS5zcGxpdCgnLicpWzBdXVwiXHJcbiAgICAgIHRhYmxlRGV0YWlsVmlld2VyTWFuYWdlclxyXG4gICAgICBbZGV0YWlsVmlld2VyRGF0YV09XCJcclxuICAgICAgICBjb21iaW5lZERhdGEoXHJcbiAgICAgICAgICBjb2x1bW4uZGV0YWlsVmlld2VyLFxyXG4gICAgICAgICAgZ2V0U2VsZWN0b3JEYXRhKFxyXG4gICAgICAgICAgICBkYXRhW2NvbHVtbi5rZXkuc3BsaXQoJy4nKVswXV0sXHJcbiAgICAgICAgICAgIGNvbHVtbi5kZXRhaWxWaWV3ZXI/LmtleVxyXG4gICAgICAgICAgKVxyXG4gICAgICAgIClcclxuICAgICAgXCJcclxuICAgICAgPnt7XHJcbiAgICAgICAgZ2V0U2VsZWN0b3JEYXRhKGRhdGFbY29sdW1uLmtleS5zcGxpdChcIi5cIilbMF1dLCBjb2x1bW4uZGF0YS5rZXkpXHJcbiAgICAgICAgICB8IHBlcnNpYW5EaWdpdHNcclxuICAgICAgfX08L3NwYW5cclxuICAgID5cclxuICA8L3NwYW4+XHJcbjwvY29udGFpbmVyLWVsZW1lbnQ+XHJcbiJdfQ==
|
|
@@ -23,20 +23,46 @@ export class CoreTableRowSelectorColumnComponent {
|
|
|
23
23
|
}
|
|
24
24
|
this.rowSelector?.next(rowSelector);
|
|
25
25
|
}
|
|
26
|
+
async oncontextmenu(event) {
|
|
27
|
+
if (!this.column.data.key)
|
|
28
|
+
return;
|
|
29
|
+
event.preventDefault();
|
|
30
|
+
let rowSelector = this.rowSelector?.getValue();
|
|
31
|
+
if (!event.srcElement.checked) {
|
|
32
|
+
const others = this.allTableData.filter((data) => data[this.column.data.key] === this.data[this.column.data.key]);
|
|
33
|
+
for await (const row of others) {
|
|
34
|
+
const index = rowSelector.findIndex((item) => row.id === item.id);
|
|
35
|
+
if (!(index >= 0)) {
|
|
36
|
+
rowSelector = [...rowSelector, row];
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
else {
|
|
41
|
+
const others = rowSelector.filter((item) => this.data[this.column.data.key] === item[this.column.data.key]);
|
|
42
|
+
for await (const row of others) {
|
|
43
|
+
const index = rowSelector.findIndex((item) => row.id === item.id);
|
|
44
|
+
rowSelector.splice(index, 1);
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
this.rowSelector?.next(rowSelector);
|
|
48
|
+
}
|
|
26
49
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: CoreTableRowSelectorColumnComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
27
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: CoreTableRowSelectorColumnComponent, selector: "app-core-table-row-selector-column", inputs: { data: "data", column: "column", rowSelector: "rowSelector" }, ngImport: i0, template: "<core-checkbox
|
|
50
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: CoreTableRowSelectorColumnComponent, selector: "app-core-table-row-selector-column", inputs: { data: "data", column: "column", allTableData: "allTableData", rowSelector: "rowSelector" }, ngImport: i0, template: "<core-checkbox\r\n (contextmenu)=\"oncontextmenu($event)\"\r\n [checked]=\"checked\"\r\n (onChange)=\"change($event)\"\r\n></core-checkbox>\r\n", styles: [""], dependencies: [{ kind: "component", type: i1.CoreCheckboxComponent, selector: "core-checkbox", inputs: ["label", "name", "checked", "inputFormControl"], outputs: ["onChange"] }] }); }
|
|
28
51
|
}
|
|
29
52
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: CoreTableRowSelectorColumnComponent, decorators: [{
|
|
30
53
|
type: Component,
|
|
31
|
-
args: [{ selector: 'app-core-table-row-selector-column', template: "<core-checkbox
|
|
54
|
+
args: [{ selector: 'app-core-table-row-selector-column', template: "<core-checkbox\r\n (contextmenu)=\"oncontextmenu($event)\"\r\n [checked]=\"checked\"\r\n (onChange)=\"change($event)\"\r\n></core-checkbox>\r\n" }]
|
|
32
55
|
}], propDecorators: { data: [{
|
|
33
56
|
type: Input,
|
|
34
57
|
args: [{ required: true }]
|
|
35
58
|
}], column: [{
|
|
36
59
|
type: Input,
|
|
37
60
|
args: [{ required: true }]
|
|
61
|
+
}], allTableData: [{
|
|
62
|
+
type: Input,
|
|
63
|
+
args: [{ required: true }]
|
|
38
64
|
}], rowSelector: [{
|
|
39
65
|
type: Input,
|
|
40
66
|
args: [{ required: false }]
|
|
41
67
|
}] } });
|
|
42
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
68
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29yZS10YWJsZS1yb3ctc2VsZWN0b3ItY29sdW1uLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2ZhbGNvbi1saWIvc3JjL2xpYi9jb3JlLXRhYmxlL2NvcmUtdGFibGUtcm93LXNlbGVjdG9yLWNvbHVtbi9jb3JlLXRhYmxlLXJvdy1zZWxlY3Rvci1jb2x1bW4uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZmFsY29uLWxpYi9zcmMvbGliL2NvcmUtdGFibGUvY29yZS10YWJsZS1yb3ctc2VsZWN0b3ItY29sdW1uL2NvcmUtdGFibGUtcm93LXNlbGVjdG9yLWNvbHVtbi5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFnQixLQUFLLEVBQVUsTUFBTSxlQUFlLENBQUM7OztBQVF2RSxNQUFNLE9BQU8sbUNBQW1DO0lBTGhEO1FBTUUsWUFBTyxHQUFHLEtBQUssQ0FBQztRQUlZLGdCQUFXLEdBQ3JDLFNBQVMsQ0FBQztLQTZDYjtJQTNDQyxRQUFRO1FBQ04sSUFBSSxDQUFDLFdBQVcsRUFBRSxTQUFTLENBQUMsQ0FBQyxJQUFXLEVBQUUsRUFBRTtZQUMxQyxNQUFNLEtBQUssR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsRUFBRSxLQUFLLElBQUksQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUM7WUFDakUsSUFBSSxDQUFDLE9BQU8sR0FBRyxLQUFLLElBQUksQ0FBQyxDQUFDO1FBQzVCLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVELE1BQU0sQ0FBQyxLQUFVO1FBQ2YsSUFBSSxXQUFXLEdBQVUsSUFBSSxDQUFDLFdBQVcsRUFBRSxRQUFRLEVBQUUsQ0FBQztRQUN0RCxJQUFJLEtBQUssQ0FBQyxVQUFVLENBQUMsT0FB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c0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIElucHV0LCBPdXRwdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0IH0gZnJvbSAncnhqcyc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2FwcC1jb3JlLXRhYmxlLXJvdy1zZWxlY3Rvci1jb2x1bW4nLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9jb3JlLXRhYmxlLXJvdy1zZWxlY3Rvci1jb2x1bW4uY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL2NvcmUtdGFibGUtcm93LXNlbGVjdG9yLWNvbHVtbi5jb21wb25lbnQuc2NzcyddLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgQ29yZVRhYmxlUm93U2VsZWN0b3JDb2x1bW5Db21wb25lbnQge1xyXG4gIGNoZWNrZWQgPSBmYWxzZTtcclxuICBASW5wdXQoeyByZXF1aXJlZDogdHJ1ZSB9KSBkYXRhITogYW55O1xyXG4gIEBJbnB1dCh7IHJlcXVpcmVkOiB0cnVlIH0pIGNvbHVtbiE6IGFueTtcclxuICBASW5wdXQoeyByZXF1aXJlZDogdHJ1ZSB9KSBhbGxUYWJsZURhdGEhOiBhbnk7XHJcbiAgQElucHV0KHsgcmVxdWlyZWQ6IGZhbHNlIH0pIHJvd1NlbGVjdG9yOiBCZWhhdmlvclN1YmplY3Q8YW55PiB8IHVuZGVmaW5lZCA9XHJcbiAgICB1bmRlZmluZWQ7XHJcblxyXG4gIG5nT25Jbml0KCkge1xyXG4gICAgdGhpcy5yb3dTZWxlY3Rvcj8uc3Vic2NyaWJlKChkYXRhOiBhbnlbXSkgPT4ge1xyXG4gICAgICBjb25zdCBpbmRleCA9IGRhdGEuZmluZEluZGV4KChpdGVtKSA9PiBpdGVtLmlkID09PSB0aGlzLmRhdGEuaWQpO1xyXG4gICAgICB0aGlzLmNoZWNrZWQgPSBpbmRleCA+PSAwO1xyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBjaGFuZ2UoZXZlbnQ6IGFueSkge1xyXG4gICAgbGV0IHJvd1NlbGVjdG9yOiBhbnlbXSA9IHRoaXMucm93U2VsZWN0b3I/LmdldFZhbHVlKCk7XHJcbiAgICBpZiAoZXZlbnQuc3JjRWxlbWVudC5jaGVja2VkKSB7XHJcbiAgICAgIHJvd1NlbGVjdG9yID0gWy4uLnJvd1NlbGVjdG9yLCB0aGlzLmRhdGFdO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgY29uc3QgaW5kZXggPSByb3dTZWxlY3Rvci5maW5kSW5kZXgoKGl0ZW0pID0+IHRoaXMuZGF0YS5pZCA9PT0gaXRlbS5pZCk7XHJcbiAgICAgIHJvd1NlbGVjdG9yLnNwbGljZShpbmRleCwgMSk7XHJcbiAgICB9XHJcbiAgICB0aGlzLnJvd1NlbGVjdG9yPy5uZXh0KHJvd1NlbGVjdG9yKTtcclxuICB9XHJcbiAgYXN5bmMgb25jb250ZXh0bWVudShldmVudDogYW55KSB7XHJcbiAgICBpZiAoIXRoaXMuY29sdW1uLmRhdGEua2V5KSByZXR1cm47XHJcbiAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xyXG4gICAgbGV0IHJvd1NlbGVjdG9yOiBhbnlbXSA9IHRoaXMucm93U2VsZWN0b3I/LmdldFZhbHVlKCk7XHJcbiAgICBpZiAoIWV2ZW50LnNyY0VsZW1lbnQuY2hlY2tlZCkge1xyXG4gICAgICBjb25zdCBvdGhlcnMgPSB0aGlzLmFsbFRhYmxlRGF0YS5maWx0ZXIoXHJcbiAgICAgICAgKGRhdGE6IGFueSkgPT5cclxuICAgICAgICAgIGRhdGFbdGhpcy5jb2x1bW4uZGF0YS5rZXldID09PSB0aGlzLmRhdGFbdGhpcy5jb2x1bW4uZGF0YS5rZXldXHJcbiAgICAgICk7XHJcbiAgICAgIGZvciBhd2FpdCAoY29uc3Qgcm93IG9mIG90aGVycykge1xyXG4gICAgICAgIGNvbnN0IGluZGV4ID0gcm93U2VsZWN0b3IuZmluZEluZGV4KChpdGVtKSA9PiByb3cuaWQgPT09IGl0ZW0uaWQpO1xyXG4gICAgICAgIGlmICghKGluZGV4ID49IDApKSB7XHJcbiAgICAgICAgICByb3dTZWxlY3RvciA9IFsuLi5yb3dTZWxlY3Rvciwgcm93XTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIGNvbnN0IG90aGVycyA9IHJvd1NlbGVjdG9yLmZpbHRlcihcclxuICAgICAgICAoaXRlbSkgPT4gdGhpcy5kYXRhW3RoaXMuY29sdW1uLmRhdGEua2V5XSA9PT0gaXRlbVt0aGlzLmNvbHVtbi5kYXRhLmtleV1cclxuICAgICAgKTtcclxuICAgICAgZm9yIGF3YWl0IChjb25zdCByb3cgb2Ygb3RoZXJzKSB7XHJcbiAgICAgICAgY29uc3QgaW5kZXggPSByb3dTZWxlY3Rvci5maW5kSW5kZXgoKGl0ZW0pID0+IHJvdy5pZCA9PT0gaXRlbS5pZCk7XHJcbiAgICAgICAgcm93U2VsZWN0b3Iuc3BsaWNlKGluZGV4LCAxKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgdGhpcy5yb3dTZWxlY3Rvcj8ubmV4dChyb3dTZWxlY3Rvcik7XHJcbiAgfVxyXG59XHJcbiIsIjxjb3JlLWNoZWNrYm94XHJcbiAgKGNvbnRleHRtZW51KT1cIm9uY29udGV4dG1lbnUoJGV2ZW50KVwiXHJcbiAgW2NoZWNrZWRdPVwiY2hlY2tlZFwiXHJcbiAgKG9uQ2hhbmdlKT1cImNoYW5nZSgkZXZlbnQpXCJcclxuPjwvY29yZS1jaGVja2JveD5cclxuIl19
|