@sumaris-net/ngx-components 2.8.1-beta2 → 2.8.1-beta3
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/doc/changelog.md +1 -0
- package/esm2022/public_api.mjs +2 -1
- package/esm2022/src/app/core/account/account.page.mjs +5 -3
- package/esm2022/src/app/core/account/new-token.modal.mjs +7 -4
- package/esm2022/src/app/core/account/token.table.mjs +41 -24
- package/esm2022/src/app/core/form/properties/properties.table.mjs +6 -5
- package/esm2022/src/app/core/services/config/core.config.mjs +21 -1
- package/esm2022/src/app/core/table/row-field.component.mjs +117 -0
- package/esm2022/src/app/core/table/table.module.mjs +24 -23
- package/esm2022/src/app/core/table/table.pipes.mjs +35 -2
- package/fesm2022/sumaris-net.ngx-components.mjs +283 -116
- package/fesm2022/sumaris-net.ngx-components.mjs.map +1 -1
- package/package.json +1 -1
- package/public_api.d.ts +1 -0
- package/src/app/core/account/account.page.d.ts +1 -0
- package/src/app/core/account/new-token.modal.d.ts +3 -1
- package/src/app/core/account/token.table.d.ts +8 -2
- package/src/app/core/form/properties/properties.table.d.ts +1 -0
- package/src/app/core/services/config/core.config.d.ts +3 -0
- package/src/app/core/table/row-field.component.d.ts +40 -0
- package/src/app/core/table/table.module.d.ts +6 -4
- package/src/app/core/table/table.pipes.d.ts +8 -0
- package/src/assets/i18n/en-US.json +4 -1
- package/src/assets/i18n/en.json +4 -1
- package/src/assets/i18n/fr.json +4 -1
- package/src/theme/_ngx-components.table.scss +22 -18
|
@@ -3,47 +3,48 @@ import { SharedModule } from '../../shared/shared.module';
|
|
|
3
3
|
import { TableSelectColumnsComponent } from './table-select-columns.component';
|
|
4
4
|
import { ActionsColumnComponent } from './actions-column.component';
|
|
5
5
|
import { TranslateModule } from '@ngx-translate/core';
|
|
6
|
-
import { IsAllSelectedPipe, IsNotAllSelectedPipe } from './table.pipes';
|
|
6
|
+
import { DisplayByDefinitionPipe, IsAllSelectedPipe, IsNotAllSelectedPipe } from './table.pipes';
|
|
7
|
+
import { AppRowField } from './row-field.component';
|
|
8
|
+
import { ResizableModule } from '../../shared/directives/resizable/resizable.module';
|
|
7
9
|
import * as i0 from "@angular/core";
|
|
8
10
|
import * as i1 from "@ngx-translate/core";
|
|
11
|
+
const components = [
|
|
12
|
+
// Components
|
|
13
|
+
TableSelectColumnsComponent,
|
|
14
|
+
ActionsColumnComponent,
|
|
15
|
+
AppRowField,
|
|
16
|
+
// Pipes
|
|
17
|
+
IsAllSelectedPipe,
|
|
18
|
+
IsNotAllSelectedPipe,
|
|
19
|
+
DisplayByDefinitionPipe,
|
|
20
|
+
];
|
|
9
21
|
export class AppTableModule {
|
|
10
22
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.4", ngImport: i0, type: AppTableModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
11
23
|
static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "17.2.4", ngImport: i0, type: AppTableModule, declarations: [
|
|
12
24
|
// Components
|
|
13
25
|
TableSelectColumnsComponent,
|
|
14
26
|
ActionsColumnComponent,
|
|
27
|
+
AppRowField,
|
|
15
28
|
// Pipes
|
|
16
29
|
IsAllSelectedPipe,
|
|
17
|
-
IsNotAllSelectedPipe
|
|
30
|
+
IsNotAllSelectedPipe,
|
|
31
|
+
DisplayByDefinitionPipe], imports: [SharedModule, i1.TranslateModule, ResizableModule], exports: [TranslateModule,
|
|
18
32
|
// Components
|
|
19
33
|
TableSelectColumnsComponent,
|
|
20
34
|
ActionsColumnComponent,
|
|
35
|
+
AppRowField,
|
|
21
36
|
// Pipes
|
|
22
37
|
IsAllSelectedPipe,
|
|
23
|
-
IsNotAllSelectedPipe
|
|
24
|
-
|
|
38
|
+
IsNotAllSelectedPipe,
|
|
39
|
+
DisplayByDefinitionPipe] });
|
|
40
|
+
static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "17.2.4", ngImport: i0, type: AppTableModule, imports: [SharedModule, TranslateModule.forChild(), ResizableModule, TranslateModule] });
|
|
25
41
|
}
|
|
26
42
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.4", ngImport: i0, type: AppTableModule, decorators: [{
|
|
27
43
|
type: NgModule,
|
|
28
44
|
args: [{
|
|
29
|
-
imports: [SharedModule, TranslateModule.forChild()],
|
|
30
|
-
declarations:
|
|
31
|
-
|
|
32
|
-
TableSelectColumnsComponent,
|
|
33
|
-
ActionsColumnComponent,
|
|
34
|
-
// Pipes
|
|
35
|
-
IsAllSelectedPipe,
|
|
36
|
-
IsNotAllSelectedPipe,
|
|
37
|
-
],
|
|
38
|
-
exports: [
|
|
39
|
-
TranslateModule,
|
|
40
|
-
// Components
|
|
41
|
-
TableSelectColumnsComponent,
|
|
42
|
-
ActionsColumnComponent,
|
|
43
|
-
// Pipes
|
|
44
|
-
IsAllSelectedPipe,
|
|
45
|
-
IsNotAllSelectedPipe,
|
|
46
|
-
],
|
|
45
|
+
imports: [SharedModule, TranslateModule.forChild(), ResizableModule],
|
|
46
|
+
declarations: components,
|
|
47
|
+
exports: [TranslateModule, ...components],
|
|
47
48
|
}]
|
|
48
49
|
}] });
|
|
49
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
50
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGUubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2FwcC9jb3JlL3RhYmxlL3RhYmxlLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3pDLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUMxRCxPQUFPLEVBQUUsMkJBQTJCLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQztBQUMvRSxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUNwRSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDdEQsT0FBTyxFQUFFLHVCQUF1QixFQUFFLGlCQUFpQixFQUFFLG9CQUFvQixFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ2pHLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUNwRCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sb0RBQW9ELENBQUM7OztBQUVyRixNQUFNLFVBQVUsR0FBRztJQUNqQixhQUFhO0lBQ2IsMkJBQTJCO0lBQzNCLHNCQUFzQjtJQUN0QixXQUFXO0lBQ1gsUUFBUTtJQUNSLGlCQUFpQjtJQUNqQixvQkFBb0I7SUFDcEIsdUJBQXVCO0NBQ3hCLENBQUM7QUFRRixNQUFNLE9BQU8sY0FBYzt1R0FBZCxjQUFjO3dHQUFkLGNBQWM7WUFoQnpCLGFBQWE7WUFDYiwyQkFBMkI7WUFDM0Isc0JBQXNCO1lBQ3RCLFdBQVc7WUFDWCxRQUFRO1lBQ1IsaUJBQWlCO1lBQ2pCLG9CQUFvQjtZQUNwQix1QkFBdUIsYUFJYixZQUFZLHNCQUE4QixlQUFlLGFBR3pELGVBQWU7WUFkekIsYUFBYTtZQUNiLDJCQUEyQjtZQUMzQixzQkFBc0I7WUFDdEIsV0FBVztZQUNYLFFBQVE7WUFDUixpQkFBaUI7WUFDakIsb0JBQW9CO1lBQ3BCLHVCQUF1Qjt3R0FTWixjQUFjLFlBTGYsWUFBWSxFQUFFLGVBQWUsQ0FBQyxRQUFRLEVBQUUsRUFBRSxlQUFlLEVBR3pELGVBQWU7OzJGQUVkLGNBQWM7a0JBTjFCLFFBQVE7bUJBQUM7b0JBQ1IsT0FBTyxFQUFFLENBQUMsWUFBWSxFQUFFLGVBQWUsQ0FBQyxRQUFRLEVBQUUsRUFBRSxlQUFlLENBQUM7b0JBRXBFLFlBQVksRUFBRSxVQUFVO29CQUN4QixPQUFPLEVBQUUsQ0FBQyxlQUFlLEVBQUUsR0FBRyxVQUFVLENBQUM7aUJBQzFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFNoYXJlZE1vZHVsZSB9IGZyb20gJy4uLy4uL3NoYXJlZC9zaGFyZWQubW9kdWxlJztcbmltcG9ydCB7IFRhYmxlU2VsZWN0Q29sdW1uc0NvbXBvbmVudCB9IGZyb20gJy4vdGFibGUtc2VsZWN0LWNvbHVtbnMuY29tcG9uZW50JztcbmltcG9ydCB7IEFjdGlvbnNDb2x1bW5Db21wb25lbnQgfSBmcm9tICcuL2FjdGlvbnMtY29sdW1uLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBUcmFuc2xhdGVNb2R1bGUgfSBmcm9tICdAbmd4LXRyYW5zbGF0ZS9jb3JlJztcbmltcG9ydCB7IERpc3BsYXlCeURlZmluaXRpb25QaXBlLCBJc0FsbFNlbGVjdGVkUGlwZSwgSXNOb3RBbGxTZWxlY3RlZFBpcGUgfSBmcm9tICcuL3RhYmxlLnBpcGVzJztcbmltcG9ydCB7IEFwcFJvd0ZpZWxkIH0gZnJvbSAnLi9yb3ctZmllbGQuY29tcG9uZW50JztcbmltcG9ydCB7IFJlc2l6YWJsZU1vZHVsZSB9IGZyb20gJy4uLy4uL3NoYXJlZC9kaXJlY3RpdmVzL3Jlc2l6YWJsZS9yZXNpemFibGUubW9kdWxlJztcblxuY29uc3QgY29tcG9uZW50cyA9IFtcbiAgLy8gQ29tcG9uZW50c1xuICBUYWJsZVNlbGVjdENvbHVtbnNDb21wb25lbnQsXG4gIEFjdGlvbnNDb2x1bW5Db21wb25lbnQsXG4gIEFwcFJvd0ZpZWxkLFxuICAvLyBQaXBlc1xuICBJc0FsbFNlbGVjdGVkUGlwZSxcbiAgSXNOb3RBbGxTZWxlY3RlZFBpcGUsXG4gIERpc3BsYXlCeURlZmluaXRpb25QaXBlLFxuXTtcblxuQE5nTW9kdWxlKHtcbiAgaW1wb3J0czogW1NoYXJlZE1vZHVsZSwgVHJhbnNsYXRlTW9kdWxlLmZvckNoaWxkKCksIFJlc2l6YWJsZU1vZHVsZV0sXG5cbiAgZGVjbGFyYXRpb25zOiBjb21wb25lbnRzLFxuICBleHBvcnRzOiBbVHJhbnNsYXRlTW9kdWxlLCAuLi5jb21wb25lbnRzXSxcbn0pXG5leHBvcnQgY2xhc3MgQXBwVGFibGVNb2R1bGUge31cbiJdfQ==
|
|
@@ -1,6 +1,10 @@
|
|
|
1
|
-
import { Pipe } from '@angular/core';
|
|
1
|
+
import { inject, Pipe } from '@angular/core';
|
|
2
2
|
import { AbstractSelectionModelPipe } from '../../shared/pipes/selection.pipes';
|
|
3
3
|
import { AppTable } from './table.class';
|
|
4
|
+
import { TranslateService } from '@ngx-translate/core';
|
|
5
|
+
import { isNil } from '../../shared/functions';
|
|
6
|
+
import { referentialsToString, referentialToString } from '../services/model/referential.model';
|
|
7
|
+
import { toDateISOString } from '../../shared/dates';
|
|
4
8
|
import * as i0 from "@angular/core";
|
|
5
9
|
export class AbstractTableSelectionPipe extends AbstractSelectionModelPipe {
|
|
6
10
|
_onRowsChanges;
|
|
@@ -74,4 +78,33 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.4", ngImpor
|
|
|
74
78
|
pure: false,
|
|
75
79
|
}]
|
|
76
80
|
}], ctorParameters: () => [{ type: i0.ChangeDetectorRef }] });
|
|
77
|
-
|
|
81
|
+
export class DisplayByDefinitionPipe {
|
|
82
|
+
translate = inject(TranslateService);
|
|
83
|
+
transform(value, definition) {
|
|
84
|
+
if (isNil(value))
|
|
85
|
+
return '';
|
|
86
|
+
switch (definition.type) {
|
|
87
|
+
case 'boolean':
|
|
88
|
+
return this.translate.instant(value === true ? 'COMMON.YES' : 'COMMON.NO');
|
|
89
|
+
case 'entity':
|
|
90
|
+
return referentialToString(value, definition?.autocomplete?.attributes || ['id', 'name']);
|
|
91
|
+
case 'entities':
|
|
92
|
+
return referentialsToString(value, definition?.autocomplete?.attributes || ['id', 'name']);
|
|
93
|
+
case 'date':
|
|
94
|
+
case 'dateTime':
|
|
95
|
+
return toDateISOString(value);
|
|
96
|
+
// todo: manage other types
|
|
97
|
+
}
|
|
98
|
+
return value;
|
|
99
|
+
}
|
|
100
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.4", ngImport: i0, type: DisplayByDefinitionPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe });
|
|
101
|
+
static ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "17.2.4", ngImport: i0, type: DisplayByDefinitionPipe, name: "displayByDefinition", pure: false });
|
|
102
|
+
}
|
|
103
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.4", ngImport: i0, type: DisplayByDefinitionPipe, decorators: [{
|
|
104
|
+
type: Pipe,
|
|
105
|
+
args: [{
|
|
106
|
+
name: 'displayByDefinition',
|
|
107
|
+
pure: false,
|
|
108
|
+
}]
|
|
109
|
+
}] });
|
|
110
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGUucGlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBwL2NvcmUvdGFibGUvdGFibGUucGlwZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFxQixNQUFNLEVBQWEsSUFBSSxFQUFpQixNQUFNLGVBQWUsQ0FBQztBQUUxRixPQUFPLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQztBQUNoRixPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBSXpDLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUMvQyxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxxQ0FBcUMsQ0FBQztBQUNoRyxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sb0JBQW9CLENBQUM7O0FBT3JELE1BQU0sT0FBZ0IsMEJBQTBFLFNBQVEsMEJBQXFDO0lBQ25JLGNBQWMsQ0FBZTtJQUVyQyxZQUFzQixJQUF1QjtRQUMzQyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDZCxDQUFDO0lBRUQsU0FBUyxDQUFDLGdCQUF5QyxFQUFFLFdBQW1CLEVBQUUsSUFBUTtRQUNoRixhQUFhO1FBQ2IsTUFBTSxNQUFNLEdBQU0sV0FBVyxhQUFZLFFBQWEsQ0FBQSxDQUFDLENBQUMsQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLGdCQUFnQixhQUFZLFFBQWEsQ0FBQSxDQUFDLENBQUMsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDO1FBQ2hKLGFBQWE7UUFDYixNQUFNLFVBQVUsR0FBd0IsTUFBTSxFQUFFLFNBQVMsSUFBSSxnQkFBZ0IsQ0FBQztRQUM5RSxhQUFhO1FBQ2IsTUFBTSxLQUFLLEdBQU0sSUFBSSxJQUFJLENBQUMsQ0FBQyxXQUFXLGFB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LG1CQUFtQixDQUFDLEtBQUssRUFBRSxVQUFVLEVBQUUsWUFBWSxFQUFFLFVBQVUsSUFBSSxDQUFDLElBQUksRUFBRSxNQUFNLENBQUMsQ0FBQyxDQUFDO1lBQzVGLEtBQUssVUFBVTtnQkFDYixPQUFPLG9CQUFvQixDQUFDLEtBQUssRUFBRSxVQUFVLEVBQUUsWUFBWSxFQUFFLFVBQVUsSUFBSSxDQUFDLElBQUksRUFBRSxNQUFNLENBQUMsQ0FBQyxDQUFDO1lBQzdGLEtBQUssTUFBTSxDQUFDO1lBQ1osS0FBSyxVQUFVO2dCQUNiLE9BQU8sZUFBZSxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQ2hDLDJCQUEyQjtRQUM3QixDQUFDO1FBQ0QsT0FBTyxLQUFLLENBQUM7SUFDZixDQUFDO3VHQWxCVSx1QkFBdUI7cUdBQXZCLHVCQUF1Qjs7MkZBQXZCLHVCQUF1QjtrQkFKbkMsSUFBSTttQkFBQztvQkFDSixJQUFJLEVBQUUscUJBQXFCO29CQUMzQixJQUFJLEVBQUUsS0FBSztpQkFDWiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENoYW5nZURldGVjdG9yUmVmLCBpbmplY3QsIE9uRGVzdHJveSwgUGlwZSwgUGlwZVRyYW5zZm9ybSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgU2VsZWN0aW9uTW9kZWwgfSBmcm9tICdAYW5ndWxhci9jZGsvY29sbGVjdGlvbnMnO1xuaW1wb3J0IHsgQWJzdHJhY3RTZWxlY3Rpb25Nb2RlbFBpcGUgfSBmcm9tICcuLi8uLi9zaGFyZWQvcGlwZXMvc2VsZWN0aW9uLnBpcGVzJztcbmltcG9ydCB7IEFwcFRhYmxlIH0gZnJvbSAnLi90YWJsZS5jbGFzcyc7XG5pbXBvcnQgeyBTdWJzY3JpcHRpb24gfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IEFzeW5jVGFibGVFbGVtZW50LCBUYWJsZUVsZW1lbnQgfSBmcm9tICdAZS1pcy9uZ3gtbWF0ZXJpYWwtdGFibGUnO1xuaW1wb3J0IHsgRm9ybUZpZWxkRGVmaW5pdGlvbiB9IGZyb20gJy4uLy4uL3NoYXJlZC9mb3JtL2ZpZWxkLm1vZGVsJztcbmltcG9ydCB7IFRyYW5zbGF0ZVNlcnZpY2UgfSBmcm9tICdAbmd4LXRyYW5zbGF0ZS9jb3JlJztcbmltcG9ydCB7IGlzTmlsIH0gZnJvbSAnLi4vLi4vc2hhcmVkL2Z1bmN0aW9ucyc7XG5pbXBvcnQgeyByZWZlcmVudGlhbHNUb1N0cmluZywgcmVmZXJlbnRpYWxUb1N0cmluZyB9IGZyb20gJy4uL3NlcnZpY2VzL21vZGVsL3JlZmVyZW50aWFsLm1vZGVsJztcbmltcG9ydCB7IHRvRGF0ZUlTT1N0cmluZyB9IGZyb20gJy4uLy4uL3NoYXJlZC9kYXRlcyc7XG5cbmV4cG9ydCB0eXBlIEFwcFRhYmxlUm93Q291bnRQcm9wZXJ0eSA9ICd2aXNpYmxlUm93Q291bnQnIHwgJ3RvdGFsUm93Q291bnQnO1xuXG5AUGlwZSh7XG4gIG5hbWU6ICdhYnN0cmFjdC10YWJsZS1zZWxlY3Rpb24nLFxufSlcbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBBYnN0cmFjdFRhYmxlU2VsZWN0aW9uUGlwZTxSLCBPLCBUIGV4dGVuZHMgQXBwVGFibGU8YW55PiA9IEFwcFRhYmxlPGFueT4+IGV4dGVuZHMgQWJzdHJhY3RTZWxlY3Rpb25Nb2RlbFBpcGU8YW55LCBSLCBPPiB7XG4gIHByaXZhdGUgX29uUm93c0NoYW5nZXM6IFN1YnNjcmlwdGlvbjtcblxuICBwcm90ZWN0ZWQgY29uc3RydWN0b3IoX3JlZjogQ2hhbmdlRGV0ZWN0b3JSZWYpIHtcbiAgICBzdXBlcihfcmVmKTtcbiAgfVxuXG4gIHRyYW5zZm9ybShzZWxlY3Rpb25PclRhYmxlOiBTZWxlY3Rpb25Nb2RlbDxhbnk+IHwgVCwgdGFibGVPck9wdHM/OiBUIHwgTywgb3B0cz86IE8pOiBSIHtcbiAgICAvLyBAdHMtaWdub3JlXG4gICAgY29uc3QgX3RhYmxlOiBUID0gdGFibGVPck9wdHMgaW5zdGFuY2VvZiBBcHBUYWJsZTxhbnk+ID8gdGFibGVPck9wdHMgOiBzZWxlY3Rpb25PclRhYmxlIGluc3RhbmNlb2YgQXBwVGFibGU8YW55PiA/IHNlbGVjdGlvbk9yVGFibGUgOiB1bmRlZmluZWQ7XG4gICAgLy8gQHRzLWlnbm9yZVxuICAgIGNvbnN0IF9zZWxlY3Rpb246IFNlbGVjdGlvbk1vZGVsPGFueT4gPSBfdGFibGU/LnNlbGVjdGlvbiB8fCBzZWxlY3Rpb25PclRhYmxlO1xuICAgIC8vIEB0cy1pZ25vcmVcbiAgICBjb25zdCBfb3B0czogTyA9IG9wdHMgfHwgISh0YWJsZU9yT3B0cyBpbnN0YW5jZW9mIEFwcFRhYmxlPGFueT4gJiYgKHRhYmxlT3JPcHRzIGFzIE8pKTtcbiAgICByZXR1cm4gc3VwZXIudHJhbnNmb3JtKF9zZWxlY3Rpb24sIF90YWJsZSwgX29wdHMpO1xuICB9XG5cbiAgcHJvdGVjdGVkIF9zdWJzY3JpYmUoc2VsZWN0aW9uOiBTZWxlY3Rpb25Nb2RlbDxhbnk+LCB0YWJsZT86IFQsIG9wdHM/OiBPKTogU3Vic2NyaXB0aW9uIHtcbiAgICB0aGlzLl9vblJvd3NDaGFuZ2VzID0gKHRhYmxlIGFzIFQpPy5kYXRhU291cmNlPy5yb3dzU3ViamVjdC5zdWJzY3JpYmUoKF8pID0+IHtcbiAgICAgIGNvbnN0IHJlc3VsdCA9IHRoaXMuX3RyYW5zZm9ybShzZWxlY3Rpb24sIHRhYmxlLCBvcHRzKTtcbiAgICAgIGlmIChyZXN1bHQgIT09IHRoaXMuX3Jlc3VsdCkge1xuICAgICAgICB0aGlzLl9yZXN1bHQgPSByZXN1bHQ7XG4gICAgICAgIHRoaXMuX3JlZi5tYXJrRm9yQ2hlY2soKTtcbiAgICAgIH1cbiAgICB9KTtcblxuICAgIHJldHVybiBzdXBlci5fc3Vic2NyaWJlKHNlbGVjdGlvbiwgdGFibGUpO1xuICB9XG5cbiAgcHJvdGVjdGVkIF9kaXNwb3NlKCkge1xuICAgIHN1cGVyLl9kaXNwb3NlKCk7XG4gICAgdGhpcy5fb25Sb3dzQ2hhbmdlcz8udW5zdWJzY3JpYmUoKTtcbiAgICB0aGlzLl9vblJvd3NDaGFuZ2VzID0gbnVsbDtcbiAgfVxufVxuXG5AUGlwZSh7XG4gIG5hbWU6ICdpc0FsbFNlbGVjdGVkJyxcbiAgcHVyZTogZmFsc2UsXG59KVxuZXhwb3J0IGNsYXNzIElzQWxsU2VsZWN0ZWRQaXBlIGV4dGVuZHMgQWJzdHJhY3RUYWJsZVNlbGVjdGlvblBpcGU8Ym9vbGVhbiwgQXBwVGFibGVSb3dDb3VudFByb3BlcnR5PiBpbXBsZW1lbnRzIFBpcGVUcmFuc2Zvcm0sIE9uRGVzdHJveSB7XG4gIGNvbnN0cnVjdG9yKF9yZWY6IENoYW5nZURldGVjdG9yUmVmKSB7XG4gICAgc3VwZXIoX3JlZik7XG4gIH1cblxuICBwcm90ZWN0ZWQgX3RyYW5zZm9ybShcbiAgICBzZWxlY3Rpb246IFNlbGVjdGlvbk1vZGVsPGFueT4sXG4gICAgdGFibGU6IEFwcFRhYmxlPGFueT4sXG4gICAgY291bnRQcm9wZXJ0eU5hbWU6IEFwcFRhYmxlUm93Q291bnRQcm9wZXJ0eSA9ICd2aXNpYmxlUm93Q291bnQnXG4gICk6IGJvb2xlYW4ge1xuICAgIHJldHVybiBzZWxlY3Rpb24uc2VsZWN0ZWQubGVuZ3RoID09PSB0YWJsZT8uW2NvdW50UHJvcGVydHlOYW1lXTtcbiAgfVxufVxuXG5AUGlwZSh7XG4gIG5hbWU6ICdpc05vdEFsbFNlbGVjdGVkJyxcbiAgcHVyZTogZmFsc2UsXG59KVxuZXhwb3J0IGNsYXNzIElzTm90QWxsU2VsZWN0ZWRQaXBlIGV4dGVuZHMgSXNBbGxTZWxlY3RlZFBpcGUgaW1wbGVtZW50cyBQaXBlVHJhbnNmb3JtLCBPbkRlc3Ryb3kge1xuICBjb25zdHJ1Y3RvcihfcmVmOiBDaGFuZ2VEZXRlY3RvclJlZikge1xuICAgIHN1cGVyKF9yZWYpO1xuICB9XG5cbiAgcHJvdGVjdGVkIF90cmFuc2Zvcm0oXG4gICAgc2VsZWN0aW9uOiBTZWxlY3Rpb25Nb2RlbDxhbnk+LFxuICAgIHRhYmxlOiBBcHBUYWJsZTxhbnk+LFxuICAgIGNvdW50UHJvcGVydHlOYW1lOiBBcHBUYWJsZVJvd0NvdW50UHJvcGVydHkgPSAndmlzaWJsZVJvd0NvdW50J1xuICApOiBib29sZWFuIHtcbiAgICByZXR1cm4gc2VsZWN0aW9uLmhhc1ZhbHVlKCkgJiYgc2VsZWN0aW9uLnNlbGVjdGVkLmxlbmd0aCAhPT0gdGFibGU/Lltjb3VudFByb3BlcnR5TmFtZV07XG4gIH1cbn1cblxuQFBpcGUoe1xuICBuYW1lOiAnZGlzcGxheUJ5RGVmaW5pdGlvbicsXG4gIHB1cmU6IGZhbHNlLFxufSlcbmV4cG9ydCBjbGFzcyBEaXNwbGF5QnlEZWZpbml0aW9uUGlwZSBpbXBsZW1lbnRzIFBpcGVUcmFuc2Zvcm0ge1xuICBwcm90ZWN0ZWQgdHJhbnNsYXRlID0gaW5qZWN0KFRyYW5zbGF0ZVNlcnZpY2UpO1xuXG4gIHRyYW5zZm9ybSh2YWx1ZTogYW55LCBkZWZpbml0aW9uOiBGb3JtRmllbGREZWZpbml0aW9uKTogc3RyaW5nIHtcbiAgICBpZiAoaXNOaWwodmFsdWUpKSByZXR1cm4gJyc7XG4gICAgc3dpdGNoIChkZWZpbml0aW9uLnR5cGUpIHtcbiAgICAgIGNhc2UgJ2Jvb2xlYW4nOlxuICAgICAgICByZXR1cm4gdGhpcy50cmFuc2xhdGUuaW5zdGFudCh2YWx1ZSA9PT0gdHJ1ZSA/ICdDT01NT04uWUVTJyA6ICdDT01NT04uTk8nKTtcbiAgICAgIGNhc2UgJ2VudGl0eSc6XG4gICAgICAgIHJldHVybiByZWZlcmVudGlhbFRvU3RyaW5nKHZhbHVlLCBkZWZpbml0aW9uPy5hdXRvY29tcGxldGU/LmF0dHJpYnV0ZXMgfHwgWydpZCcsICduYW1lJ10pO1xuICAgICAgY2FzZSAnZW50aXRpZXMnOlxuICAgICAgICByZXR1cm4gcmVmZXJlbnRpYWxzVG9TdHJpbmcodmFsdWUsIGRlZmluaXRpb24/LmF1dG9jb21wbGV0ZT8uYXR0cmlidXRlcyB8fCBbJ2lkJywgJ25hbWUnXSk7XG4gICAgICBjYXNlICdkYXRlJzpcbiAgICAgIGNhc2UgJ2RhdGVUaW1lJzpcbiAgICAgICAgcmV0dXJuIHRvRGF0ZUlTT1N0cmluZyh2YWx1ZSk7XG4gICAgICAvLyB0b2RvOiBtYW5hZ2Ugb3RoZXIgdHlwZXNcbiAgICB9XG4gICAgcmV0dXJuIHZhbHVlO1xuICB9XG59XG4iXX0=
|