ms-data-grid 0.0.121 → 0.0.123
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/data-grid/data-grid.component.mjs +733 -305
- package/esm2022/lib/directives/cell-render-init.directive.mjs +28 -8
- package/esm2022/lib/services/row-action.service.mjs +145 -0
- package/fesm2022/ms-data-grid.mjs +972 -383
- package/fesm2022/ms-data-grid.mjs.map +1 -1
- package/lib/data-grid/data-grid.component.d.ts +87 -30
- package/lib/directives/cell-render-init.directive.d.ts +7 -3
- package/lib/services/row-action.service.d.ts +21 -0
- package/package.json +1 -1
|
@@ -10,7 +10,7 @@ export class CellRenderInitDirective {
|
|
|
10
10
|
if (!this.componentType)
|
|
11
11
|
return;
|
|
12
12
|
// ✅ Dynamically create the component
|
|
13
|
-
|
|
13
|
+
this.componentRef = this.vcr.createComponent(this.componentType, {
|
|
14
14
|
injector: Injector.create({
|
|
15
15
|
providers: [
|
|
16
16
|
{ provide: 'rowData', useValue: this.rowData },
|
|
@@ -20,16 +20,20 @@ export class CellRenderInitDirective {
|
|
|
20
20
|
parent: this.injector
|
|
21
21
|
})
|
|
22
22
|
});
|
|
23
|
+
if (this.colData) {
|
|
24
|
+
this.colData.cellComponentRef = this.componentRef;
|
|
25
|
+
}
|
|
23
26
|
// ✅ Automatically call custom lifecycle hook if present
|
|
24
|
-
if (typeof componentRef.instance.gridInit === 'function') {
|
|
25
|
-
componentRef.instance.gridInit({
|
|
27
|
+
if (typeof this.componentRef.instance.gridInit === 'function') {
|
|
28
|
+
this.componentRef.instance.gridInit({
|
|
26
29
|
row: this.rowData,
|
|
27
30
|
col: this.colData,
|
|
28
|
-
value: this.cellValue
|
|
31
|
+
value: this.cellValue,
|
|
32
|
+
context: this.context
|
|
29
33
|
});
|
|
30
34
|
}
|
|
31
|
-
for (const key of Object.keys(componentRef.instance)) {
|
|
32
|
-
const property = componentRef.instance[key];
|
|
35
|
+
for (const key of Object.keys(this.componentRef.instance)) {
|
|
36
|
+
const property = this.componentRef.instance[key];
|
|
33
37
|
if (property instanceof EventEmitter) {
|
|
34
38
|
property.subscribe((value) => {
|
|
35
39
|
this.cellEvent.emit({
|
|
@@ -44,8 +48,22 @@ export class CellRenderInitDirective {
|
|
|
44
48
|
}
|
|
45
49
|
}
|
|
46
50
|
}
|
|
51
|
+
ngOnChanges(changes) {
|
|
52
|
+
if (this.componentRef &&
|
|
53
|
+
typeof this.componentRef.instance.gridRefresh === 'function') {
|
|
54
|
+
this.componentRef.instance.gridRefresh({
|
|
55
|
+
row: this.rowData,
|
|
56
|
+
col: this.colData,
|
|
57
|
+
value: this.cellValue,
|
|
58
|
+
context: this.context
|
|
59
|
+
});
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
ngOnDestroy() {
|
|
63
|
+
this.componentRef?.destroy();
|
|
64
|
+
}
|
|
47
65
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: CellRenderInitDirective, deps: [{ token: i0.ViewContainerRef }, { token: i0.Injector }], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
48
|
-
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.2.12", type: CellRenderInitDirective, selector: "[cellRenderInit]", inputs: { componentType: ["cellRenderInit", "componentType"], rowData: "rowData", colData: "colData", cellValue: "cellValue" }, outputs: { cellEvent: "cellEvent" }, ngImport: i0 }); }
|
|
66
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.2.12", type: CellRenderInitDirective, selector: "[cellRenderInit]", inputs: { componentType: ["cellRenderInit", "componentType"], rowData: "rowData", colData: "colData", cellValue: "cellValue", context: "context" }, outputs: { cellEvent: "cellEvent" }, usesOnChanges: true, ngImport: i0 }); }
|
|
49
67
|
}
|
|
50
68
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: CellRenderInitDirective, decorators: [{
|
|
51
69
|
type: Directive,
|
|
@@ -61,7 +79,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
61
79
|
type: Input
|
|
62
80
|
}], cellValue: [{
|
|
63
81
|
type: Input
|
|
82
|
+
}], context: [{
|
|
83
|
+
type: Input
|
|
64
84
|
}], cellEvent: [{
|
|
65
85
|
type: Output
|
|
66
86
|
}] } });
|
|
67
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
87
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2VsbC1yZW5kZXItaW5pdC5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9kYXRhLWdyaWQvc3JjL2xpYi9kaXJlY3RpdmVzL2NlbGwtcmVuZGVyLWluaXQuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxTQUFTLEVBQ1QsS0FBSyxFQUdMLFFBQVEsRUFHUixZQUFZLEVBQ1osTUFBTSxFQUlQLE1BQU0sZUFBZSxDQUFDOztBQUt2QixNQUFNLE9BQU8sdUJBQXVCO0lBVWxDLFlBQW9CLEdBQXFCLEVBQVUsUUFBa0I7UUFBakQsUUFBRyxHQUFILEdBQUcsQ0FBa0I7UUFBVSxhQUFRLEdBQVIsUUFBUSxDQUFVO1FBRjNELGNBQVMsR0FBRyxJQUFJLFlBQVksRUFBb0MsQ0FBQztJQUVGLENBQUM7SUFHMUUsUUFBUTtRQUNOLElBQUksQ0FBQyxJQUFJLENBQUMsYUFBYTtZQUFFLE9BQU87UUFFaEMscUNBQXFDO1FBQ3BDLElBQUksQ0FBQyxZQUFZLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLGFBQWEsRUFBRTtZQUNoRSxRQUFRLEVBQUUsUUFBUSxDQUFDLE1BQU0sQ0FBQztnQkFDeEIsU0FBUyxFQUFFO29CQUNULEVBQUUsT0FBTyxFQUFFLFNBQVMsRUFBRSxRQUFRLEVBQUUsSUFBSSxDQUFDLE9BQU8sRUFBRTtvQkFDOUMsRUFBRSxPQUFPLEVBQUUsU0FBUyxFQUFFLFFBQVEsRUFBRSxJQUFJLENBQUMsT0FBTyxFQUFFO29CQUM5QyxFQUFFLE9BQU8sRUFBRSxXQUFXLEVBQUUsUUFBUSxFQUFFLElBQUksQ0FBQyxTQUFTLEVBQUU7aUJBQ25EO2dCQUNELE1BQU0sRUFBRSxJQUFJLENBQUMsUUFBUTthQUN0QixDQUFDO1NBQ0gsQ0FBQyxDQUFDO1FBRUgsSUFBSSxJQUFJLENBQUMsT0FBTyxFQUFFO1lBQ2hCLElBQUksQ0FBQyxPQUFPLENBQUMsZ0JBQWdCLEdBQUcsSUFBSSxDQUFDLFlBQVksQ0FBQztTQUNuRDtRQUVELHdEQUF3RDtRQUN4RCxJQUFJLE9BQU8sSUFBSSxDQUFDLFlBQVksQ0FBQyxRQUFRLENBQUMsUUFBUSxLQUFLLFVBQVUsRUFBRTtZQUM3RCxJQUFJLENBQUMsWUFBWSxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUM7Z0JBQ2xDLEdBQUcsRUFBRSxJQUFJLENBQUMsT0FBTztnQkFDakIsR0FBRyxFQUFFLElBQUksQ0FBQyxPQUFPO2dCQUNqQixLQUFLLEVBQUUsSUFBSSxDQUFDLFNBQVM7Z0JBQ3JCLE9BQU8sRUFBRSxJQUFJLENBQUMsT0FBTzthQUN0QixDQUFDLENBQUM7U0FDSjtRQUdELEtBQUssTUFBTSxHQUFHLElBQUksTUFBTSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLFFBQVEsQ0FBQyxFQUFFO1lBQ3pELE1BQU0sUUFBUSxHQUFHLElBQUksQ0FBQyxZQUFZLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1lBQ2pELElBQUksUUFBUSxZQUFZLFlBQVksRUFBRTtnQkFDcEMsUUFBUSxDQUFDLFNBQVMsQ0FBQyxDQUFDLEtBQVUsRUFBRSxFQUFFO29CQUNoQyxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQzt3QkFDbEIsU0FBUyxFQUFFLEdBQUc7d0JBQ2QsSUFBSSxFQUFFOzRCQUNKLEdBQUcsRUFBRSxJQUFJLENBQUMsT0FBTzs0QkFDakIsR0FBRyxFQUFFLElBQUksQ0FBQyxPQUFPOzRCQUNqQixLQUFLO3lCQUNOO3FCQUNGLENBQUMsQ0FBQztnQkFDTCxDQUFDLENBQUMsQ0FBQzthQUNKO1NBQ0Y7SUFDSCxDQUFDO0lBR0QsV0FBVyxDQUFDLE9BQXNCO1FBQ2hDLElBQ0UsSUFBSSxDQUFDLFlBQVk7WUFDakIsT0FBTyxJQUFJLENBQUMsWUFBWSxDQUFDLFFBQVEsQ0FBQyxXQUFXLEtBQUssVUFBVSxFQUM1RDtZQUNBLElBQUksQ0FBQyxZQUFZLENBQUMsUUFBUSxDQUFDLFdBQVcsQ0FBQztnQkFDckMsR0FBRyxFQUFFLElBQUksQ0FBQyxPQUFPO2dCQUNqQixHQUFHLEVBQUUsSUFBSSxDQUFDLE9BQU87Z0JBQ2pCLEtBQUssRUFBRSxJQUFJLENBQUMsU0FBUztnQkFDckIsT0FBTyxFQUFFLElBQUksQ0FBQyxPQUFPO2FBQ3RCLENBQUMsQ0FBQztTQUNKO0lBQ0gsQ0FBQztJQUdELFdBQVc7UUFDVCxJQUFJLENBQUMsWUFBWSxFQUFFLE9BQU8sRUFBRSxDQUFDO0lBQy9CLENBQUM7K0dBOUVVLHVCQUF1QjttR0FBdkIsdUJBQXVCOzs0RkFBdkIsdUJBQXVCO2tCQUhuQyxTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSxrQkFBa0I7aUJBQzdCOzhIQUUwQixhQUFhO3NCQUFyQyxLQUFLO3VCQUFDLGdCQUFnQjtnQkFDZCxPQUFPO3NCQUFmLEtBQUs7Z0JBQ0csT0FBTztzQkFBZixLQUFLO2dCQUNHLFNBQVM7c0JBQWpCLEtBQUs7Z0JBQ0csT0FBTztzQkFBZixLQUFLO2dCQUdJLFNBQVM7c0JBQWxCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBEaXJlY3RpdmUsXG4gIElucHV0LFxuICBPbkluaXQsXG4gIFZpZXdDb250YWluZXJSZWYsXG4gIEluamVjdG9yLFxuICBDb21wb25lbnRSZWYsXG4gIFR5cGUsXG4gIEV2ZW50RW1pdHRlcixcbiAgT3V0cHV0LFxuICBPbkRlc3Ryb3ksXG4gIFNpbXBsZUNoYW5nZXMsXG4gIE9uQ2hhbmdlc1xufSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuQERpcmVjdGl2ZSh7XG4gIHNlbGVjdG9yOiAnW2NlbGxSZW5kZXJJbml0XSdcbn0pXG5leHBvcnQgY2xhc3MgQ2VsbFJlbmRlckluaXREaXJlY3RpdmUgaW1wbGVtZW50cyBPbkluaXQsIE9uQ2hhbmdlcywgT25EZXN0cm95IHtcbiAgQElucHV0KCdjZWxsUmVuZGVySW5pdCcpIGNvbXBvbmVudFR5cGUhOiBUeXBlPGFueT47XG4gIEBJbnB1dCgpIHJvd0RhdGE6IGFueTtcbiAgQElucHV0KCkgY29sRGF0YTogYW55O1xuICBASW5wdXQoKSBjZWxsVmFsdWU6IGFueTtcbiAgQElucHV0KCkgY29udGV4dDogYW55O1xuXG5cbiAgQE91dHB1dCgpIGNlbGxFdmVudCA9IG5ldyBFdmVudEVtaXR0ZXI8eyBldmVudE5hbWU6IHN0cmluZzsgZGF0YTogYW55IH0+KCk7XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSB2Y3I6IFZpZXdDb250YWluZXJSZWYsIHByaXZhdGUgaW5qZWN0b3I6IEluamVjdG9yKSB7IH1cbiAgY29tcG9uZW50UmVmITogQ29tcG9uZW50UmVmPGFueT5cblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICBpZiAoIXRoaXMuY29tcG9uZW50VHlwZSkgcmV0dXJuO1xuXG4gICAgLy8g4pyFIER5bmFtaWNhbGx5IGNyZWF0ZSB0aGUgY29tcG9uZW50XG4gICAgIHRoaXMuY29tcG9uZW50UmVmID0gdGhpcy52Y3IuY3JlYXRlQ29tcG9uZW50KHRoaXMuY29tcG9uZW50VHlwZSwge1xuICAgICAgaW5qZWN0b3I6IEluamVjdG9yLmNyZWF0ZSh7XG4gICAgICAgIHByb3ZpZGVyczogW1xuICAgICAgICAgIHsgcHJvdmlkZTogJ3Jvd0RhdGEnLCB1c2VWYWx1ZTogdGhpcy5yb3dEYXRhIH0sXG4gICAgICAgICAgeyBwcm92aWRlOiAnY29sRGF0YScsIHVzZVZhbHVlOiB0aGlzLmNvbERhdGEgfSxcbiAgICAgICAgICB7IHByb3ZpZGU6ICdjZWxsVmFsdWUnLCB1c2VWYWx1ZTogdGhpcy5jZWxsVmFsdWUgfVxuICAgICAgICBdLFxuICAgICAgICBwYXJlbnQ6IHRoaXMuaW5qZWN0b3JcbiAgICAgIH0pXG4gICAgfSk7XG5cbiAgICBpZiAodGhpcy5jb2xEYXRhKSB7XG4gICAgICB0aGlzLmNvbERhdGEuY2VsbENvbXBvbmVudFJlZiA9IHRoaXMuY29tcG9uZW50UmVmO1xuICAgIH1cblxuICAgIC8vIOKchSBBdXRvbWF0aWNhbGx5IGNhbGwgY3VzdG9tIGxpZmVjeWNsZSBob29rIGlmIHByZXNlbnRcbiAgICBpZiAodHlwZW9mIHRoaXMuY29tcG9uZW50UmVmLmluc3RhbmNlLmdyaWRJbml0ID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICB0aGlzLmNvbXBvbmVudFJlZi5pbnN0YW5jZS5ncmlkSW5pdCh7XG4gICAgICAgIHJvdzogdGhpcy5yb3dEYXRhLFxuICAgICAgICBjb2w6IHRoaXMuY29sRGF0YSxcbiAgICAgICAgdmFsdWU6IHRoaXMuY2VsbFZhbHVlLFxuICAgICAgICBjb250ZXh0OiB0aGlzLmNvbnRleHRcbiAgICAgIH0pO1xuICAgIH1cblxuXG4gICAgZm9yIChjb25zdCBrZXkgb2YgT2JqZWN0LmtleXModGhpcy5jb21wb25lbnRSZWYuaW5zdGFuY2UpKSB7XG4gICAgICBjb25zdCBwcm9wZXJ0eSA9IHRoaXMuY29tcG9uZW50UmVmLmluc3RhbmNlW2tleV07XG4gICAgICBpZiAocHJvcGVydHkgaW5zdGFuY2VvZiBFdmVudEVtaXR0ZXIpIHtcbiAgICAgICAgcHJvcGVydHkuc3Vic2NyaWJlKCh2YWx1ZTogYW55KSA9PiB7XG4gICAgICAgICAgdGhpcy5jZWxsRXZlbnQuZW1pdCh7XG4gICAgICAgICAgICBldmVudE5hbWU6IGtleSxcbiAgICAgICAgICAgIGRhdGE6IHtcbiAgICAgICAgICAgICAgcm93OiB0aGlzLnJvd0RhdGEsXG4gICAgICAgICAgICAgIGNvbDogdGhpcy5jb2xEYXRhLFxuICAgICAgICAgICAgICB2YWx1ZSxcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9KTtcbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cblxuICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKTogdm9pZCB7XG4gICAgaWYgKFxuICAgICAgdGhpcy5jb21wb25lbnRSZWYgJiZcbiAgICAgIHR5cGVvZiB0aGlzLmNvbXBvbmVudFJlZi5pbnN0YW5jZS5ncmlkUmVmcmVzaCA9PT0gJ2Z1bmN0aW9uJ1xuICAgICkge1xuICAgICAgdGhpcy5jb21wb25lbnRSZWYuaW5zdGFuY2UuZ3JpZFJlZnJlc2goe1xuICAgICAgICByb3c6IHRoaXMucm93RGF0YSxcbiAgICAgICAgY29sOiB0aGlzLmNvbERhdGEsXG4gICAgICAgIHZhbHVlOiB0aGlzLmNlbGxWYWx1ZSxcbiAgICAgICAgY29udGV4dDogdGhpcy5jb250ZXh0XG4gICAgICB9KTtcbiAgICB9XG4gIH1cblxuXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIHRoaXMuY29tcG9uZW50UmVmPy5kZXN0cm95KCk7XG4gIH1cbn1cbiJdfQ==
|
|
@@ -0,0 +1,145 @@
|
|
|
1
|
+
import { Injectable } from '@angular/core';
|
|
2
|
+
import * as i0 from "@angular/core";
|
|
3
|
+
export class RowActionService {
|
|
4
|
+
constructor() {
|
|
5
|
+
this.STATUS_SETS = {
|
|
6
|
+
EDIT_BLOCKED: [
|
|
7
|
+
'expired', 'closed', 'Assigning Stop', 'Evaluation Start',
|
|
8
|
+
'Evaluation Stop', 'Completed', 'approved', 'rejected',
|
|
9
|
+
'partially', 'accepted'
|
|
10
|
+
],
|
|
11
|
+
ARCHIVE_BLOCKED: [
|
|
12
|
+
'approved', 'partially', 'Assigning Start',
|
|
13
|
+
'Completed', 'Evaluation Start'
|
|
14
|
+
],
|
|
15
|
+
DISPOSED: ['scrap', 'trashed', 'disposed'],
|
|
16
|
+
SEPARATED: ['termination', 'resignation', 'retirement', 'separated'],
|
|
17
|
+
UNAVAILABLE: ['unavailable', 'unAvailable']
|
|
18
|
+
};
|
|
19
|
+
this.ACTION_ALIASES = {
|
|
20
|
+
accept: 'view',
|
|
21
|
+
achive: 'unactive'
|
|
22
|
+
};
|
|
23
|
+
this.rules = {
|
|
24
|
+
assigningstart: (r) => r.status === 'To be start Assigning' && !r.isDeleted,
|
|
25
|
+
assigningstop: (r) => r.status === 'Assigning Start' && !r.isDeleted,
|
|
26
|
+
evaluationstart: (r) => r.status === 'Assigning Stop' && !r.isDeleted,
|
|
27
|
+
completed: (r) => r.status === 'Evaluation Start' && !r.isDeleted,
|
|
28
|
+
archive: (r) => this.canArchiveOrDelete(r),
|
|
29
|
+
unactive: (r) => this.canArchiveOrDelete(r),
|
|
30
|
+
delete: (r) => this.canArchiveOrDelete(r),
|
|
31
|
+
unarchive: (r) => r.isDeleted && r.availStatus !== 'disposed',
|
|
32
|
+
active: (r) => r.isDeleted && r.availStatus !== 'disposed',
|
|
33
|
+
link: (r) => !this.STATUS_SETS.UNAVAILABLE.includes(r.status) &&
|
|
34
|
+
!r.isDeleted &&
|
|
35
|
+
r.availStatus !== 'disposed' &&
|
|
36
|
+
r.status !== 'linked',
|
|
37
|
+
unlink: (r, ctx) => ctx.showUnLink === true && r.status === 'linked',
|
|
38
|
+
rejoin: (r) => this.STATUS_SETS.SEPARATED.includes(r.accountStatus),
|
|
39
|
+
settlementinfo: (r) => this.STATUS_SETS.SEPARATED.includes(r.accountStatus),
|
|
40
|
+
assign: (r) => r.status !== 'assigned',
|
|
41
|
+
edit: (r, ctx) => this.canEdit(r, ctx),
|
|
42
|
+
trash: (r) => !this.STATUS_SETS.DISPOSED.includes(r.availStatus),
|
|
43
|
+
scrap: (r) => !this.STATUS_SETS.DISPOSED.includes(r.availStatus),
|
|
44
|
+
retain: (r) => !this.STATUS_SETS.DISPOSED.includes(r.availStatus),
|
|
45
|
+
defaultgrade: (r) => r.isCustomGrade !== 'Active',
|
|
46
|
+
subscribe: (r, ctx) => !r.assignedToIds.includes(ctx.currentUserId),
|
|
47
|
+
unsubscribe: (r, ctx) => r.assignedToIds.includes(ctx.currentUserId),
|
|
48
|
+
changestatus: (r) => !r.isDeleted,
|
|
49
|
+
download: (r) => r.offerLetter !== null,
|
|
50
|
+
view: (r) => r.offerLetter !== null
|
|
51
|
+
};
|
|
52
|
+
}
|
|
53
|
+
normalizeRow(element) {
|
|
54
|
+
return {
|
|
55
|
+
isDeleted: element.is_deleted === true || element.is_deleted === 'true',
|
|
56
|
+
status: element.status || '',
|
|
57
|
+
availStatus: element.availStatus || '',
|
|
58
|
+
accountStatus: (element.account_status || '').toLowerCase(),
|
|
59
|
+
assigneeCount: element.assignee?.length ?? 0,
|
|
60
|
+
assignedToIds: element.assigned_to?.map((x) => x.id) ?? [],
|
|
61
|
+
settlementCompleted: element.settlement_completed === true,
|
|
62
|
+
finalSettlementCompleted: element.final_settlement_completed === true,
|
|
63
|
+
storeEdit: element.store_edit !== false,
|
|
64
|
+
isOwner: element.is_owner ?? true,
|
|
65
|
+
isCustomGrade: element.is_custom_grade || '',
|
|
66
|
+
parent: element.parent,
|
|
67
|
+
offerLetter: element.offer_letter,
|
|
68
|
+
typename: element.__typename || ''
|
|
69
|
+
};
|
|
70
|
+
}
|
|
71
|
+
normalizeAction(action, ctx) {
|
|
72
|
+
let normalized = this.ACTION_ALIASES[action] || action;
|
|
73
|
+
if (ctx.packageData) {
|
|
74
|
+
if (action === 'unarchive')
|
|
75
|
+
return 'active';
|
|
76
|
+
if (action === 'archive')
|
|
77
|
+
return 'unactive';
|
|
78
|
+
}
|
|
79
|
+
return normalized.toLowerCase();
|
|
80
|
+
}
|
|
81
|
+
canArchiveOrDelete(r) {
|
|
82
|
+
return (!r.isDeleted &&
|
|
83
|
+
!r.settlementCompleted &&
|
|
84
|
+
!r.finalSettlementCompleted &&
|
|
85
|
+
r.availStatus !== 'reserved' &&
|
|
86
|
+
r.assigneeCount === 0 &&
|
|
87
|
+
r.availStatus !== 'disposed' &&
|
|
88
|
+
r.availStatus !== 'maintenance' &&
|
|
89
|
+
r.availStatus !== 'assigned' &&
|
|
90
|
+
!this.STATUS_SETS.ARCHIVE_BLOCKED.includes(r.status) &&
|
|
91
|
+
r.parent !== null);
|
|
92
|
+
}
|
|
93
|
+
canEdit(r, ctx) {
|
|
94
|
+
const isBlocked = this.STATUS_SETS.EDIT_BLOCKED.includes(r.status) ||
|
|
95
|
+
r.isDeleted ||
|
|
96
|
+
!r.storeEdit ||
|
|
97
|
+
r.availStatus === 'disposed' ||
|
|
98
|
+
r.settlementCompleted ||
|
|
99
|
+
r.finalSettlementCompleted;
|
|
100
|
+
if (isBlocked)
|
|
101
|
+
return false;
|
|
102
|
+
if (ctx.tableType === 'BusinessExpenseListing') {
|
|
103
|
+
return true;
|
|
104
|
+
}
|
|
105
|
+
return r.status !== 'accepted' && r.isOwner;
|
|
106
|
+
}
|
|
107
|
+
isActionValid(action, element, ctx = {}) {
|
|
108
|
+
const row = this.normalizeRow(element);
|
|
109
|
+
const normalizedAction = this.normalizeAction(action, ctx);
|
|
110
|
+
const rule = this.rules[normalizedAction];
|
|
111
|
+
if (rule) {
|
|
112
|
+
return rule(row, ctx);
|
|
113
|
+
}
|
|
114
|
+
return row.availStatus !== 'disposed' || row.typename === 'Alert';
|
|
115
|
+
}
|
|
116
|
+
getValidActions(actions, element, ctx = {}) {
|
|
117
|
+
if (!actions?.length)
|
|
118
|
+
return [];
|
|
119
|
+
let validActions = actions.filter(action => this.isActionValid(action, element, ctx));
|
|
120
|
+
if (ctx.tableType === 'recruitmentListing') {
|
|
121
|
+
validActions = this.applyRecruitmentFilters(validActions, element);
|
|
122
|
+
}
|
|
123
|
+
return validActions;
|
|
124
|
+
}
|
|
125
|
+
applyRecruitmentFilters(actions, element) {
|
|
126
|
+
let filtered = [...actions];
|
|
127
|
+
if (element?.status === 'hired' && !element?.is_deleted) {
|
|
128
|
+
filtered = filtered.filter(action => !['changestatus', 'unarchive', 'archive', 'edit'].includes(action));
|
|
129
|
+
}
|
|
130
|
+
if (element?.is_deleted) {
|
|
131
|
+
filtered = filtered.filter(action => action !== 'changestatus');
|
|
132
|
+
}
|
|
133
|
+
if (element?.offer_letter === null) {
|
|
134
|
+
filtered = filtered.filter(action => !['download', 'view'].includes(action));
|
|
135
|
+
}
|
|
136
|
+
return filtered;
|
|
137
|
+
}
|
|
138
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: RowActionService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
139
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: RowActionService, providedIn: 'root' }); }
|
|
140
|
+
}
|
|
141
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: RowActionService, decorators: [{
|
|
142
|
+
type: Injectable,
|
|
143
|
+
args: [{ providedIn: 'root' }]
|
|
144
|
+
}] });
|
|
145
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm93LWFjdGlvbi5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZGF0YS1ncmlkL3NyYy9saWIvc2VydmljZXMvcm93LWFjdGlvbi5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7O0FBNkIzQyxNQUFNLE9BQU8sZ0JBQWdCO0lBRDdCO1FBR21CLGdCQUFXLEdBQUc7WUFDN0IsWUFBWSxFQUFFO2dCQUNaLFNBQVMsRUFBRSxRQUFRLEVBQUUsZ0JBQWdCLEVBQUUsa0JBQWtCO2dCQUN6RCxpQkFBaUIsRUFBRSxXQUFXLEVBQUUsVUFBVSxFQUFFLFVBQVU7Z0JBQ3RELFdBQVcsRUFBRSxVQUFVO2FBQ3hCO1lBQ0QsZUFBZSxFQUFFO2dCQUNmLFVBQVUsRUFBRSxXQUFXLEVBQUUsaUJBQWlCO2dCQUMxQyxXQUFXLEVBQUUsa0JBQWtCO2FBQ2hDO1lBQ0QsUUFBUSxFQUFFLENBQUMsT0FBTyxFQUFFLFNBQVMsRUFBRSxVQUFVLENBQUM7WUFDMUMsU0FBUyxFQUFFLENBQUMsYUFBYSxFQUFFLGFBQWEsRUFBRSxZQUFZLEVBQUUsV0FBVyxDQUFDO1lBQ3BFLFdBQVcsRUFBRSxDQUFDLGFBQWEsRUFBRSxhQUFhLENBQUM7U0FDbkMsQ0FBQztRQUVNLG1CQUFjLEdBQTJCO1lBQ3hELE1BQU0sRUFBRSxNQUFNO1lBQ2QsTUFBTSxFQUFFLFVBQVU7U0FDbkIsQ0FBQztRQUVlLFVBQUssR0FBK0I7WUFDbkQsY0FBYyxFQUFFLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsTUFBTSxLQUFLLHVCQUF1QixJQUFJLENBQUMsQ0FBQyxDQUFDLFNBQVM7WUFDM0UsYUFBYSxFQUFFLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsTUFBTSxLQUFLLGlCQUFpQixJQUFJLENBQUMsQ0FBQyxDQUFDLFNB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SyxvQkFBb0IsRUFBRTtZQUMxQyxZQUFZLEdBQUcsSUFBSSxDQUFDLHVCQUF1QixDQUFDLFlBQVksRUFBRSxPQUFPLENBQUMsQ0FBQztTQUNwRTtRQUVELE9BQU8sWUFBWSxDQUFDO0lBQ3RCLENBQUM7SUFFTyx1QkFBdUIsQ0FBQyxPQUFpQixFQUFFLE9BQVk7UUFDN0QsSUFBSSxRQUFRLEdBQUcsQ0FBQyxHQUFHLE9BQU8sQ0FBQyxDQUFDO1FBRTVCLElBQUksT0FBTyxFQUFFLE1BQU0sS0FBSyxPQUFPLElBQUksQ0FBQyxPQUFPLEVBQUUsVUFBVSxFQUFFO1lBQ3ZELFFBQVEsR0FBRyxRQUFRLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQ2xDLENBQUMsQ0FBQyxjQUFjLEVBQUUsV0FBVyxFQUFFLFNBQVMsRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLENBQ25FLENBQUM7U0FDSDtRQUVELElBQUksT0FBTyxFQUFFLFVBQVUsRUFBRTtZQUN2QixRQUFRLEdBQUcsUUFBUSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLE1BQU0sS0FBSyxjQUFjLENBQUMsQ0FBQztTQUNqRTtRQUVELElBQUksT0FBTyxFQUFFLFlBQVksS0FBSyxJQUFJLEVBQUU7WUFDbEMsUUFBUSxHQUFHLFFBQVEsQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FDbEMsQ0FBQyxDQUFDLFVBQVUsRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLENBQ3ZDLENBQUM7U0FDSDtRQUVELE9BQU8sUUFBUSxDQUFDO0lBQ2xCLENBQUM7K0dBNUtVLGdCQUFnQjttSEFBaEIsZ0JBQWdCLGNBREgsTUFBTTs7NEZBQ25CLGdCQUFnQjtrQkFENUIsVUFBVTttQkFBQyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgQWN0aW9uQ29udGV4dCB7XG4gIHRhYmxlVHlwZT86IHN0cmluZztcbiAgcGFja2FnZURhdGE/OiBib29sZWFuO1xuICBzaG93VW5MaW5rPzogYm9vbGVhbjtcbiAgY3VycmVudFVzZXJJZD86IHN0cmluZyB8IG51bWJlcjtcbn1cblxuaW50ZXJmYWNlIE5vcm1hbGl6ZWRSb3cge1xuICBpc0RlbGV0ZWQ6IGJvb2xlYW47XG4gIHN0YXR1czogc3RyaW5nO1xuICBhdmFpbFN0YXR1czogc3RyaW5nO1xuICBhY2NvdW50U3RhdHVzOiBzdHJpbmc7XG4gIGFzc2lnbmVlQ291bnQ6IG51bWJlcjtcbiAgYXNzaWduZWRUb0lkczogKHN0cmluZyB8IG51bWJlcilbXTtcbiAgc2V0dGxlbWVudENvbXBsZXRlZDogYm9vbGVhbjtcbiAgZmluYWxTZXR0bGVtZW50Q29tcGxldGVkOiBib29sZWFuO1xuICBzdG9yZUVkaXQ6IGJvb2xlYW47XG4gIGlzT3duZXI6IGJvb2xlYW47XG4gIGlzQ3VzdG9tR3JhZGU6IHN0cmluZztcbiAgcGFyZW50OiBhbnk7XG4gIG9mZmVyTGV0dGVyOiBhbnk7XG4gIHR5cGVuYW1lOiBzdHJpbmc7XG59XG5cbnR5cGUgQWN0aW9uUnVsZSA9IChyb3c6IE5vcm1hbGl6ZWRSb3csIGN0eDogQWN0aW9uQ29udGV4dCkgPT4gYm9vbGVhbjtcblxuQEluamVjdGFibGUoeyBwcm92aWRlZEluOiAncm9vdCcgfSlcbmV4cG9ydCBjbGFzcyBSb3dBY3Rpb25TZXJ2aWNlIHtcblxuICBwcml2YXRlIHJlYWRvbmx5IFNUQVRVU19TRVRTID0ge1xuICAgIEVESVRfQkxPQ0tFRDogW1xuICAgICAgJ2V4cGlyZWQnLCAnY2xvc2VkJywgJ0Fzc2lnbmluZyBTdG9wJywgJ0V2YWx1YXRpb24gU3RhcnQnLFxuICAgICAgJ0V2YWx1YXRpb24gU3RvcCcsICdDb21wbGV0ZWQnLCAnYXBwcm92ZWQnLCAncmVqZWN0ZWQnLFxuICAgICAgJ3BhcnRpYWxseScsICdhY2NlcHRlZCdcbiAgICBdLFxuICAgIEFSQ0hJVkVfQkxPQ0tFRDogW1xuICAgICAgJ2FwcHJvdmVkJywgJ3BhcnRpYWxseScsICdBc3NpZ25pbmcgU3RhcnQnLFxuICAgICAgJ0NvbXBsZXRlZCcsICdFdmFsdWF0aW9uIFN0YXJ0J1xuICAgIF0sXG4gICAgRElTUE9TRUQ6IFsnc2NyYXAnLCAndHJhc2hlZCcsICdkaXNwb3NlZCddLFxuICAgIFNFUEFSQVRFRDogWyd0ZXJtaW5hdGlvbicsICdyZXNpZ25hdGlvbicsICdyZXRpcmVtZW50JywgJ3NlcGFyYXRlZCddLFxuICAgIFVOQVZBSUxBQkxFOiBbJ3VuYXZhaWxhYmxlJywgJ3VuQXZhaWxhYmxlJ11cbiAgfSBhcyBjb25zdDtcblxuICBwcml2YXRlIHJlYWRvbmx5IEFDVElPTl9BTElBU0VTOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+ID0ge1xuICAgIGFjY2VwdDogJ3ZpZXcnLFxuICAgIGFjaGl2ZTogJ3VuYWN0aXZlJ1xuICB9O1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgcnVsZXM6IFJlY29yZDxzdHJpbmcsIEFjdGlvblJ1bGU+ID0ge1xuICAgIGFzc2lnbmluZ3N0YXJ0OiAocikgPT4gci5zdGF0dXMgPT09ICdUbyBiZSBzdGFydCBBc3NpZ25pbmcnICYmICFyLmlzRGVsZXRlZCxcbiAgICBhc3NpZ25pbmdzdG9wOiAocikgPT4gci5zdGF0dXMgPT09ICdBc3NpZ25pbmcgU3RhcnQnICYmICFyLmlzRGVsZXRlZCxcbiAgICBldmFsdWF0aW9uc3RhcnQ6IChyKSA9PiByLnN0YXR1cyA9PT0gJ0Fzc2lnbmluZyBTdG9wJyAmJiAhci5pc0RlbGV0ZWQsXG4gICAgY29tcGxldGVkOiAocikgPT4gci5zdGF0dXMgPT09ICdFdmFsdWF0aW9uIFN0YXJ0JyAmJiAhci5pc0RlbGV0ZWQsXG5cbiAgICBhcmNoaXZlOiAocikgPT4gdGhpcy5jYW5BcmNoaXZlT3JEZWxldGUociksXG4gICAgdW5hY3RpdmU6IChyKSA9PiB0aGlzLmNhbkFyY2hpdmVPckRlbGV0ZShyKSxcbiAgICBkZWxldGU6IChyKSA9PiB0aGlzLmNhbkFyY2hpdmVPckRlbGV0ZShyKSxcblxuICAgIHVuYXJjaGl2ZTogKHIpID0+IHIuaXNEZWxldGVkICYmIHIuYXZhaWxTdGF0dXMgIT09ICdkaXNwb3NlZCcsXG4gICAgYWN0aXZlOiAocikgPT4gci5pc0RlbGV0ZWQgJiYgci5hdmFpbFN0YXR1cyAhPT0gJ2Rpc3Bvc2VkJyxcblxuICAgIGxpbms6IChyKSA9PiBcbiAgICAgICF0aGlzLlNUQVRVU19TRVRTLlVOQVZBSUxBQkxFLmluY2x1ZGVzKChyLnN0YXR1cyBhcyBhbnkpKSAmJlxuICAgICAgIXIuaXNEZWxldGVkICYmXG4gICAgICByLmF2YWlsU3RhdHVzICE9PSAnZGlzcG9zZWQnICYmXG4gICAgICByLnN0YXR1cyAhPT0gJ2xpbmtlZCcsXG4gICAgdW5saW5rOiAociwgY3R4KSA9PiBjdHguc2hvd1VuTGluayA9PT0gdHJ1ZSAmJiByLnN0YXR1cyA9PT0gJ2xpbmtlZCcsXG5cbiAgICByZWpvaW46IChyKSA9PiB0aGlzLlNUQVRVU19TRVRTLlNFUEFSQVRFRC5pbmNsdWRlcygoci5hY2NvdW50U3RhdHVzIGFzIGFueSkpLFxuICAgIHNldHRsZW1lbnRpbmZvOiAocikgPT4gdGhpcy5TVEFUVVNfU0VUUy5TRVBBUkFURUQuaW5jbHVkZXMoKHIuYWNjb3VudFN0YXR1cyBhcyBhbnkpKSxcblxuICAgIGFzc2lnbjogKHIpID0+IHIuc3RhdHVzICE9PSAnYXNzaWduZWQnLFxuICAgIGVkaXQ6IChyLCBjdHgpID0+IHRoaXMuY2FuRWRpdChyLCBjdHgpLFxuXG4gICAgdHJhc2g6IChyKSA9PiAhdGhpcy5TVEFUVVNfU0VUUy5ESVNQT1NFRC5pbmNsdWRlcygoci5hdmFpbFN0YXR1cyBhcyBhbnkpKSxcbiAgICBzY3JhcDogKHIpID0+ICF0aGlzLlNUQVRVU19TRVRTLkRJU1BPU0VELmluY2x1ZGVzKChyLmF2YWlsU3RhdHVzIGFzIGFueSkpLFxuICAgIHJldGFpbjogKHIpID0+ICF0aGlzLlNUQVRVU19TRVRTLkRJU1BPU0VELmluY2x1ZGVzKChyLmF2YWlsU3RhdHVzIGFzIGFueSkpLFxuXG4gICAgZGVmYXVsdGdyYWRlOiAocikgPT4gci5pc0N1c3RvbUdyYWRlICE9PSAnQWN0aXZlJyxcblxuICAgIHN1YnNjcmliZTogKHIsIGN0eCkgPT4gIXIuYXNzaWduZWRUb0lkcy5pbmNsdWRlcygoY3R4LmN1cnJlbnRVc2VySWQgYXMgYW55KSksXG4gICAgdW5zdWJzY3JpYmU6IChyLCBjdHgpID0+IHIuYXNzaWduZWRUb0lkcy5pbmNsdWRlcygoY3R4LmN1cnJlbnRVc2VySWQgYXMgYW55KSksXG5cbiAgICBjaGFuZ2VzdGF0dXM6IChyKSA9PiAhci5pc0RlbGV0ZWQsXG5cbiAgICBkb3dubG9hZDogKHIpID0+IHIub2ZmZXJMZXR0ZXIgIT09IG51bGwsXG4gICAgdmlldzogKHIpID0+IHIub2ZmZXJMZXR0ZXIgIT09IG51bGxcbiAgfTtcblxuICBwcml2YXRlIG5vcm1hbGl6ZVJvdyhlbGVtZW50OiBhbnkpOiBOb3JtYWxpemVkUm93IHtcbiAgICByZXR1cm4ge1xuICAgICAgaXNEZWxldGVkOiBlbGVtZW50LmlzX2RlbGV0ZWQgPT09IHRydWUgfHwgZWxlbWVudC5pc19kZWxldGVkID09PSAndHJ1ZScsXG4gICAgICBzdGF0dXM6IGVsZW1lbnQuc3RhdHVzIHx8ICcnLFxuICAgICAgYXZhaWxTdGF0dXM6IGVsZW1lbnQuYXZhaWxTdGF0dXMgfHwgJycsXG4gICAgICBhY2NvdW50U3RhdHVzOiAoZWxlbWVudC5hY2NvdW50X3N0YXR1cyB8fCAnJykudG9Mb3dlckNhc2UoKSxcbiAgICAgIGFzc2lnbmVlQ291bnQ6IGVsZW1lbnQuYXNzaWduZWU/Lmxlbmd0aCA/PyAwLFxuICAgICAgYXNzaWduZWRUb0lkczogZWxlbWVudC5hc3NpZ25lZF90bz8ubWFwKCh4OiBhbnkpID0+IHguaWQpID8/IFtdLFxuICAgICAgc2V0dGxlbWVudENvbXBsZXRlZDogZWxlbWVudC5zZXR0bGVtZW50X2NvbXBsZXRlZCA9PT0gdHJ1ZSxcbiAgICAgIGZpbmFsU2V0dGxlbWVudENvbXBsZXRlZDogZWxlbWVudC5maW5hbF9zZXR0bGVtZW50X2NvbXBsZXRlZCA9PT0gdHJ1ZSxcbiAgICAgIHN0b3JlRWRpdDogZWxlbWVudC5zdG9yZV9lZGl0ICE9PSBmYWxzZSxcbiAgICAgIGlzT3duZXI6IGVsZW1lbnQuaXNfb3duZXIgPz8gdHJ1ZSxcbiAgICAgIGlzQ3VzdG9tR3JhZGU6IGVsZW1lbnQuaXNfY3VzdG9tX2dyYWRlIHx8ICcnLFxuICAgICAgcGFyZW50OiBlbGVtZW50LnBhcmVudCxcbiAgICAgIG9mZmVyTGV0dGVyOiBlbGVtZW50Lm9mZmVyX2xldHRlcixcbiAgICAgIHR5cGVuYW1lOiBlbGVtZW50Ll9fdHlwZW5hbWUgfHwgJydcbiAgICB9O1xuICB9XG5cbiAgcHJpdmF0ZSBub3JtYWxpemVBY3Rpb24oYWN0aW9uOiBzdHJpbmcsIGN0eDogQWN0aW9uQ29udGV4dCk6IHN0cmluZyB7XG4gICAgbGV0IG5vcm1hbGl6ZWQgPSB0aGlzLkFDVElPTl9BTElBU0VTW2FjdGlvbl0gfHwgYWN0aW9uO1xuXG4gICAgaWYgKGN0eC5wYWNrYWdlRGF0YSkge1xuICAgICAgaWYgKGFjdGlvbiA9PT0gJ3VuYXJjaGl2ZScpIHJldHVybiAnYWN0aXZlJztcbiAgICAgIGlmIChhY3Rpb24gPT09ICdhcmNoaXZlJykgcmV0dXJuICd1bmFjdGl2ZSc7XG4gICAgfVxuXG4gICAgcmV0dXJuIG5vcm1hbGl6ZWQudG9Mb3dlckNhc2UoKTtcbiAgfVxuXG4gIHByaXZhdGUgY2FuQXJjaGl2ZU9yRGVsZXRlKHI6IE5vcm1hbGl6ZWRSb3cpOiBib29sZWFuIHtcbiAgICByZXR1cm4gKFxuICAgICAgIXIuaXNEZWxldGVkICYmXG4gICAgICAhci5zZXR0bGVtZW50Q29tcGxldGVkICYmXG4gICAgICAhci5maW5hbFNldHRsZW1lbnRDb21wbGV0ZWQgJiZcbiAgICAgIHIuYXZhaWxTdGF0dXMgIT09ICdyZXNlcnZlZCcgJiZcbiAgICAgIHIuYXNzaWduZWVDb3VudCA9PT0gMCAmJlxuICAgICAgci5hdmFpbFN0YXR1cyAhPT0gJ2Rpc3Bvc2VkJyAmJlxuICAgICAgci5hdmFpbFN0YXR1cyAhPT0gJ21haW50ZW5hbmNlJyAmJlxuICAgICAgci5hdmFpbFN0YXR1cyAhPT0gJ2Fzc2lnbmVkJyAmJlxuICAgICAgIXRoaXMuU1RBVFVTX1NFVFMuQVJDSElWRV9CTE9DS0VELmluY2x1ZGVzKChyLnN0YXR1cyBhcyBhbnkpKSAmJlxuICAgICAgci5wYXJlbnQgIT09IG51bGxcbiAgICApO1xuICB9XG5cbiAgcHJpdmF0ZSBjYW5FZGl0KHI6IE5vcm1hbGl6ZWRSb3csIGN0eDogQWN0aW9uQ29udGV4dCk6IGJvb2xlYW4ge1xuICAgIGNvbnN0IGlzQmxvY2tlZCA9IFxuICAgICAgdGhpcy5TVEFUVVNfU0VUUy5FRElUX0JMT0NLRUQuaW5jbHVkZXMoKHIuc3RhdHVzIGFzIGFueSkpIHx8XG4gICAgICByLmlzRGVsZXRlZCB8fFxuICAgICAgIXIuc3RvcmVFZGl0IHx8XG4gICAgICByLmF2YWlsU3RhdHVzID09PSAnZGlzcG9zZWQnIHx8XG4gICAgICByLnNldHRsZW1lbnRDb21wbGV0ZWQgfHxcbiAgICAgIHIuZmluYWxTZXR0bGVtZW50Q29tcGxldGVkO1xuXG4gICAgaWYgKGlzQmxvY2tlZCkgcmV0dXJuIGZhbHNlO1xuXG4gICAgaWYgKGN0eC50YWJsZVR5cGUgPT09ICdCdXNpbmVzc0V4cGVuc2VMaXN0aW5nJykge1xuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuXG4gICAgcmV0dXJuIHIuc3RhdHVzICE9PSAnYWNjZXB0ZWQnICYmIHIuaXNPd25lcjtcbiAgfVxuXG4gIGlzQWN0aW9uVmFsaWQoYWN0aW9uOiBzdHJpbmcsIGVsZW1lbnQ6IGFueSwgY3R4OiBBY3Rpb25Db250ZXh0ID0ge30pOiBib29sZWFuIHtcbiAgICBjb25zdCByb3cgPSB0aGlzLm5vcm1hbGl6ZVJvdyhlbGVtZW50KTtcbiAgICBjb25zdCBub3JtYWxpemVkQWN0aW9uID0gdGhpcy5ub3JtYWxpemVBY3Rpb24oYWN0aW9uLCBjdHgpO1xuICAgIGNvbnN0IHJ1bGUgPSB0aGlzLnJ1bGVzW25vcm1hbGl6ZWRBY3Rpb25dO1xuXG4gICAgaWYgKHJ1bGUpIHtcbiAgICAgIHJldHVybiBydWxlKHJvdywgY3R4KTtcbiAgICB9XG5cbiAgICByZXR1cm4gcm93LmF2YWlsU3RhdHVzICE9PSAnZGlzcG9zZWQnIHx8IHJvdy50eXBlbmFtZSA9PT0gJ0FsZXJ0JztcbiAgfVxuXG4gIGdldFZhbGlkQWN0aW9ucyhhY3Rpb25zOiBzdHJpbmdbXSwgZWxlbWVudDogYW55LCBjdHg6IEFjdGlvbkNvbnRleHQgPSB7fSk6IHN0cmluZ1tdIHtcbiAgICBpZiAoIWFjdGlvbnM/Lmxlbmd0aCkgcmV0dXJuIFtdO1xuICAgIFxuICAgIGxldCB2YWxpZEFjdGlvbnMgPSBhY3Rpb25zLmZpbHRlcihhY3Rpb24gPT4gXG4gICAgICB0aGlzLmlzQWN0aW9uVmFsaWQoYWN0aW9uLCBlbGVtZW50LCBjdHgpXG4gICAgKTtcblxuICAgIGlmIChjdHgudGFibGVUeXBlID09PSAncmVjcnVpdG1lbnRMaXN0aW5nJykge1xuICAgICAgdmFsaWRBY3Rpb25zID0gdGhpcy5hcHBseVJlY3J1aXRtZW50RmlsdGVycyh2YWxpZEFjdGlvbnMsIGVsZW1lbnQpO1xuICAgIH1cblxuICAgIHJldHVybiB2YWxpZEFjdGlvbnM7XG4gIH1cblxuICBwcml2YXRlIGFwcGx5UmVjcnVpdG1lbnRGaWx0ZXJzKGFjdGlvbnM6IHN0cmluZ1tdLCBlbGVtZW50OiBhbnkpOiBzdHJpbmdbXSB7XG4gICAgbGV0IGZpbHRlcmVkID0gWy4uLmFjdGlvbnNdO1xuXG4gICAgaWYgKGVsZW1lbnQ/LnN0YXR1cyA9PT0gJ2hpcmVkJyAmJiAhZWxlbWVudD8uaXNfZGVsZXRlZCkge1xuICAgICAgZmlsdGVyZWQgPSBmaWx0ZXJlZC5maWx0ZXIoYWN0aW9uID0+IFxuICAgICAgICAhWydjaGFuZ2VzdGF0dXMnLCAndW5hcmNoaXZlJywgJ2FyY2hpdmUnLCAnZWRpdCddLmluY2x1ZGVzKGFjdGlvbilcbiAgICAgICk7XG4gICAgfVxuXG4gICAgaWYgKGVsZW1lbnQ/LmlzX2RlbGV0ZWQpIHtcbiAgICAgIGZpbHRlcmVkID0gZmlsdGVyZWQuZmlsdGVyKGFjdGlvbiA9PiBhY3Rpb24gIT09ICdjaGFuZ2VzdGF0dXMnKTtcbiAgICB9XG5cbiAgICBpZiAoZWxlbWVudD8ub2ZmZXJfbGV0dGVyID09PSBudWxsKSB7XG4gICAgICBmaWx0ZXJlZCA9IGZpbHRlcmVkLmZpbHRlcihhY3Rpb24gPT4gXG4gICAgICAgICFbJ2Rvd25sb2FkJywgJ3ZpZXcnXS5pbmNsdWRlcyhhY3Rpb24pXG4gICAgICApO1xuICAgIH1cblxuICAgIHJldHVybiBmaWx0ZXJlZDtcbiAgfVxufSJdfQ==
|