@fundamental-ngx/platform 0.47.0-rc.2 → 0.47.0-rc.21
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/form/combobox/combobox/combobox.component.mjs +2 -2
- package/esm2022/form/form-generator/controls/dynamic-form-generator-datepicker/dynamic-form-generator-datepicker.component.mjs +5 -6
- package/esm2022/form/form-generator/controls/dynamic-form-generator-editor/dynamic-form-generator-editor.component.mjs +5 -6
- package/esm2022/form/form-generator/controls/dynamic-form-generator-input/dynamic-form-generator-input.component.mjs +6 -7
- package/esm2022/form/form-generator/controls/dynamic-form-generator-multi-input/dynamic-form-generator-multi-input.component.mjs +5 -6
- package/esm2022/form/form-generator/controls/dynamic-form-generator-select/dynamic-form-generator-select.component.mjs +6 -6
- package/esm2022/form/form-generator/controls/dynamic-form-generator-switch/dynamic-form-generator-switch.component.mjs +5 -6
- package/esm2022/form/form-generator/form-generator/form-generator.component.mjs +14 -15
- package/esm2022/form/form-group/form-field/form-field.component.mjs +6 -8
- package/esm2022/form/form-group/form-group-header/form-group-header.component.mjs +6 -8
- package/esm2022/form/form-group/form-group.component.mjs +17 -19
- package/esm2022/form/multi-combobox/multi-combobox/multi-combobox.component.mjs +3 -3
- package/esm2022/form/multi-combobox/multi-combobox-mobile/multi-combobox/multi-combobox-mobile.component.mjs +11 -13
- package/esm2022/form/multi-input/index.mjs +8 -0
- package/esm2022/form/multi-input/multi-input.component.mjs +5 -5
- package/esm2022/form/radio-group/radio/radio.component.mjs +10 -12
- package/esm2022/form/select/select/select.component.mjs +7 -8
- package/esm2022/form/step-input/number/number-step-input.component.mjs +7 -8
- package/esm2022/form/switch/switch/index.mjs +2 -0
- package/esm2022/form/switch/switch/switch.component.mjs +7 -8
- package/esm2022/form/time-picker/time-picker.component.mjs +9 -10
- package/esm2022/message-popover/message-popover.component.mjs +8 -10
- package/esm2022/search-field/search-field.component.mjs +3 -3
- package/esm2022/settings-generator/controls/theme-selector-list/theme-selector-list.component.mjs +6 -7
- package/esm2022/settings-generator/layouts/settings-generator-sidebar-layout/settings-generator-sidebar-icon/settings-generator-sidebar-icon.component.mjs +5 -7
- package/esm2022/settings-generator/layouts/settings-generator-sidebar-layout/settings-generator-sidebar-layout.component.mjs +8 -9
- package/esm2022/settings-generator/settings-generator-content/settings-generator-content.component.mjs +10 -12
- package/esm2022/settings-generator/settings-generator.module.mjs +6 -10
- package/esm2022/shared/form/base.input.mjs +12 -10
- package/esm2022/table/components/table-header-cell-content/table-header-cell-content.component.mjs +3 -3
- package/esm2022/table/components/table-header-row/table-header-row.component.mjs +7 -4
- package/esm2022/table/components/table-p13-dialog/filtering/filtering.component.mjs +3 -3
- package/esm2022/table/components/table-row/table-row.component.mjs +3 -3
- package/esm2022/table-helpers/pipes/column-sorting-direction.pipe.mjs +27 -0
- package/esm2022/table-helpers/pipes/index.mjs +2 -1
- package/esm2022/upload-collection/upload-collection/upload-collection.component.mjs +2 -2
- package/esm2022/wizard-generator/components/dialog-wizard-generator/dialog-wizard-generator.component.mjs +14 -16
- package/esm2022/wizard-generator/components/wizard-body/wizard-body.component.mjs +8 -10
- package/esm2022/wizard-generator/components/wizard-generator/wizard-generator.component.mjs +9 -10
- package/esm2022/wizard-generator/components/wizard-summary-step/wizard-summary-section/wizard-summary-section.component.mjs +4 -5
- package/fesm2022/fundamental-ngx-platform-form.mjs +456 -463
- package/fesm2022/fundamental-ngx-platform-form.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-platform-message-popover.mjs +9 -11
- package/fesm2022/fundamental-ngx-platform-message-popover.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-platform-search-field.mjs +2 -2
- package/fesm2022/fundamental-ngx-platform-search-field.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-platform-settings-generator.mjs +118 -124
- package/fesm2022/fundamental-ngx-platform-settings-generator.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-platform-shared.mjs +7 -5
- package/fesm2022/fundamental-ngx-platform-shared.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-platform-table-helpers.mjs +26 -1
- package/fesm2022/fundamental-ngx-platform-table-helpers.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-platform-table.mjs +12 -9
- package/fesm2022/fundamental-ngx-platform-table.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-platform-upload-collection.mjs +1 -1
- package/fesm2022/fundamental-ngx-platform-upload-collection.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-platform-wizard-generator.mjs +175 -179
- package/fesm2022/fundamental-ngx-platform-wizard-generator.mjs.map +1 -1
- package/form/form-generator/form-generator/form-generator.component.d.ts +4 -4
- package/form/form-group/form-group-header/form-group-header.component.d.ts +1 -1
- package/form/form-group/form-group.component.d.ts +3 -3
- package/form/multi-combobox/multi-combobox-mobile/multi-combobox/multi-combobox-mobile.component.d.ts +2 -2
- package/form/multi-input/index.d.ts +7 -0
- package/form/radio-group/radio/radio.component.d.ts +2 -2
- package/form/switch/switch/index.d.ts +1 -0
- package/form/time-picker/time-picker.component.d.ts +2 -2
- package/fundamental-ngx-platform-v0.47.0-rc.21.tgz +0 -0
- package/package.json +4 -4
- package/schematics/ng-add/index.js +1 -1
- package/settings-generator/settings-generator.module.d.ts +8 -9
- package/shared/form/base.input.d.ts +5 -5
- package/table/components/table-header-row/table-header-row.component.d.ts +3 -1
- package/table-helpers/pipes/column-sorting-direction.pipe.d.ts +12 -0
- package/table-helpers/pipes/index.d.ts +1 -0
- package/wizard-generator/components/wizard-body/wizard-body.component.d.ts +1 -1
- package/wizard-generator/components/wizard-generator/wizard-generator.component.d.ts +1 -1
- package/fundamental-ngx-platform-v0.47.0-rc.2.tgz +0 -0
|
@@ -1,17 +1,15 @@
|
|
|
1
1
|
import { NgModule } from '@angular/core';
|
|
2
2
|
import { PlatformFormGeneratorModule } from '@fundamental-ngx/platform/form';
|
|
3
|
-
import {
|
|
3
|
+
import { ThemeSelectorListComponent, ThemeSelectorListIconComponent } from './controls/theme-selector-list/theme-selector-list.component';
|
|
4
4
|
import { FDP_SETTINGS_GENERATOR_DEFAULT_CONFIG } from './default-config';
|
|
5
|
-
import {
|
|
5
|
+
import { SettingsGeneratorSidebarIconComponent } from './layouts/settings-generator-sidebar-layout/settings-generator-sidebar-icon/settings-generator-sidebar-icon.component';
|
|
6
6
|
import { SettingsGeneratorSidebarLayoutComponent } from './layouts/settings-generator-sidebar-layout/settings-generator-sidebar-layout.component';
|
|
7
7
|
import { SettingsGeneratorContentComponent } from './settings-generator-content/settings-generator-content.component';
|
|
8
8
|
import { SettingsGeneratorSectionComponent } from './settings-generator-content/settings-generator-section/settings-generator-section.component';
|
|
9
|
-
import { ThemeSelectorListComponent, ThemeSelectorListIconComponent } from './controls/theme-selector-list/theme-selector-list.component';
|
|
10
|
-
import { SettingsGeneratorSidebarIconComponent } from './layouts/settings-generator-sidebar-layout/settings-generator-sidebar-icon/settings-generator-sidebar-icon.component';
|
|
11
9
|
import { SettingsGeneratorLayoutAccessorService } from './settings-generator-layout-accessor.service';
|
|
10
|
+
import { SettingsGeneratorComponent } from './settings-generator.component';
|
|
12
11
|
import { FDP_SETTINGS_GENERATOR_CONFIG } from './tokens';
|
|
13
12
|
import * as i0 from "@angular/core";
|
|
14
|
-
import * as i1 from "@fundamental-ngx/cdk/utils";
|
|
15
13
|
export class SettingsGeneratorModule {
|
|
16
14
|
/**
|
|
17
15
|
* Allows configuring module on a global level with custom configuration.
|
|
@@ -29,7 +27,7 @@ export class SettingsGeneratorModule {
|
|
|
29
27
|
};
|
|
30
28
|
}
|
|
31
29
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.7", ngImport: i0, type: SettingsGeneratorModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
32
|
-
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "16.2.7", ngImport: i0, type: SettingsGeneratorModule, imports: [
|
|
30
|
+
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "16.2.7", ngImport: i0, type: SettingsGeneratorModule, imports: [PlatformFormGeneratorModule,
|
|
33
31
|
SettingsGeneratorComponent,
|
|
34
32
|
SettingsGeneratorSidebarLayoutComponent,
|
|
35
33
|
SettingsGeneratorContentComponent,
|
|
@@ -47,8 +45,7 @@ export class SettingsGeneratorModule {
|
|
|
47
45
|
provide: FDP_SETTINGS_GENERATOR_CONFIG,
|
|
48
46
|
useValue: FDP_SETTINGS_GENERATOR_DEFAULT_CONFIG
|
|
49
47
|
}
|
|
50
|
-
], imports: [
|
|
51
|
-
PlatformFormGeneratorModule,
|
|
48
|
+
], imports: [PlatformFormGeneratorModule,
|
|
52
49
|
SettingsGeneratorSidebarLayoutComponent,
|
|
53
50
|
SettingsGeneratorContentComponent,
|
|
54
51
|
SettingsGeneratorSectionComponent,
|
|
@@ -59,7 +56,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.7", ngImpor
|
|
|
59
56
|
type: NgModule,
|
|
60
57
|
args: [{
|
|
61
58
|
imports: [
|
|
62
|
-
ClickedBehaviorModule.forRoot(),
|
|
63
59
|
PlatformFormGeneratorModule,
|
|
64
60
|
SettingsGeneratorComponent,
|
|
65
61
|
SettingsGeneratorSidebarLayoutComponent,
|
|
@@ -85,4 +81,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.7", ngImpor
|
|
|
85
81
|
]
|
|
86
82
|
}]
|
|
87
83
|
}] });
|
|
88
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
84
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2V0dGluZ3MtZ2VuZXJhdG9yLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL2xpYnMvcGxhdGZvcm0vc3JjL2xpYi9zZXR0aW5ncy1nZW5lcmF0b3Ivc2V0dGluZ3MtZ2VuZXJhdG9yLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQXVCLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUM5RCxPQUFPLEVBQUUsMkJBQTJCLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUU3RSxPQUFPLEVBQ0gsMEJBQTBCLEVBQzFCLDhCQUE4QixFQUNqQyxNQUFNLDhEQUE4RCxDQUFDO0FBQ3RFLE9BQU8sRUFBRSxxQ0FBcUMsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQ3pFLE9BQU8sRUFBRSxxQ0FBcUMsRUFBRSxNQUFNLHVIQUF1SCxDQUFDO0FBQzlLLE9BQU8sRUFBRSx1Q0FBdUMsRUFBRSxNQUFNLHlGQUF5RixDQUFDO0FBRWxKLE9BQU8sRUFBRSxpQ0FBaUMsRUFBRSxNQUFNLG1FQUFtRSxDQUFDO0FBQ3RILE9BQU8sRUFBRSxpQ0FBaUMsRUFBRSxNQUFNLDhGQUE4RixDQUFDO0FBQ2pKLE9BQU8sRUFBRSxzQ0FBc0MsRUFBRSxNQUFNLDhDQUE4QyxDQUFDO0FBQ3RHLE9BQU8sRUFBRSwwQkFBMEIsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQzVFLE9BQU8sRUFBRSw2QkFBNkIsRUFBRSxNQUFNLFVBQVUsQ0FBQzs7QUE0QnpELE1BQU0sT0FBTyx1QkFBdUI7SUFDaEM7OztPQUdHO0lBQ0gsTUFBTSxDQUFDLFVBQVUsQ0FBQyxNQUErQjtRQUM3QyxPQUFPO1lBQ0gsUUFBUSxFQUFFLHVCQUF1QjtZQUNqQyxTQUFTLEVBQUU7Z0JBQ1A7b0JBQ0ksT0FBTyxFQUFFLDZCQUE2QjtvQkFDdEMsUUFBUSxFQUFFLEVBQUUsR0FBRyxxQ0FBcUMsRUFBRSxHQUFHLE1BQU0sRUFBRTtpQkFDcEU7YUFDSjtTQUNKLENBQUM7SUFDTixDQUFDOzhHQWZRLHVCQUF1QjsrR0FBdkIsdUJBQXVCLFlBeEI1QiwyQkFBMkI7WUFDM0IsMEJBQTBCO1lBQzFCLHVDQUF1QztZQUN2QyxpQ0FBaUM7WUFDakMsaUNBQWlDO1lBQ2pDLDBCQUEwQjtZQUMxQiw4QkFBOEI7WUFDOUIscUNBQXFDLGFBR3JDLDBCQUEwQjtZQUMxQix1Q0FBdUM7WUFDdkMsaUNBQWlDO1lBQ2pDLGlDQUFpQztZQUNqQyw4QkFBOEI7K0dBVXpCLHVCQUF1QixhQVJyQjtZQUNQLHNDQUFzQztZQUN0QztnQkFDSSxPQUFPLEVBQUUsNkJBQTZCO2dCQUN0QyxRQUFRLEVBQUUscUNBQXFDO2FBQ2xEO1NBQ0osWUF0QkcsMkJBQTJCO1lBRTNCLHVDQUF1QztZQUN2QyxpQ0FBaUM7WUFDakMsaUNBQWlDO1lBQ2pDLDBCQUEwQjtZQUUxQixxQ0FBcUM7OzJGQWlCaEMsdUJBQXVCO2tCQTFCbkMsUUFBUTttQkFBQztvQkFDTixPQUFPLEVBQUU7d0JBQ0wsMkJBQTJCO3dCQUMzQiwwQkFBMEI7d0JBQzFCLHVDQUF1Qzt3QkFDdkMsaUNBQWlDO3dCQUNqQyxpQ0FBaUM7d0JBQ2pDLDBCQUEwQjt3QkFDMUIsOEJBQThCO3dCQUM5QixxQ0FBcUM7cUJBQ3hDO29CQUNELE9BQU8sRUFBRTt3QkFDTCwwQkFBMEI7d0JBQzFCLHVDQUF1Qzt3QkFDdkMsaUNBQWlDO3dCQUNqQyxpQ0FBaUM7d0JBQ2pDLDhCQUE4QjtxQkFDakM7b0JBQ0QsU0FBUyxFQUFFO3dCQUNQLHNDQUFzQzt3QkFDdEM7NEJBQ0ksT0FBTyxFQUFFLDZCQUE2Qjs0QkFDdEMsUUFBUSxFQUFFLHFDQUFxQzt5QkFDbEQ7cUJBQ0o7aUJBQ0oiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBNb2R1bGVXaXRoUHJvdmlkZXJzLCBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgUGxhdGZvcm1Gb3JtR2VuZXJhdG9yTW9kdWxlIH0gZnJvbSAnQGZ1bmRhbWVudGFsLW5neC9wbGF0Zm9ybS9mb3JtJztcblxuaW1wb3J0IHtcbiAgICBUaGVtZVNlbGVjdG9yTGlzdENvbXBvbmVudCxcbiAgICBUaGVtZVNlbGVjdG9yTGlzdEljb25Db21wb25lbnRcbn0gZnJvbSAnLi9jb250cm9scy90aGVtZS1zZWxlY3Rvci1saXN0L3RoZW1lLXNlbGVjdG9yLWxpc3QuY29tcG9uZW50JztcbmltcG9ydCB7IEZEUF9TRVRUSU5HU19HRU5FUkFUT1JfREVGQVVMVF9DT05GSUcgfSBmcm9tICcuL2RlZmF1bHQtY29uZmlnJztcbmltcG9ydCB7IFNldHRpbmdzR2VuZXJhdG9yU2lkZWJhckljb25Db21wb25lbnQgfSBmcm9tICcuL2xheW91dHMvc2V0dGluZ3MtZ2VuZXJhdG9yLXNpZGViYXItbGF5b3V0L3NldHRpbmdzLWdlbmVyYXRvci1zaWRlYmFyLWljb24vc2V0dGluZ3MtZ2VuZXJhdG9yLXNpZGViYXItaWNvbi5jb21wb25lbnQnO1xuaW1wb3J0IHsgU2V0dGluZ3NHZW5lcmF0b3JTaWRlYmFyTGF5b3V0Q29tcG9uZW50IH0gZnJvbSAnLi9sYXlvdXRzL3NldHRpbmdzLWdlbmVyYXRvci1zaWRlYmFyLWxheW91dC9zZXR0aW5ncy1nZW5lcmF0b3Itc2lkZWJhci1sYXlvdXQuY29tcG9uZW50JztcbmltcG9ydCB7IFNldHRpbmdzQ29uZmlnIH0gZnJvbSAnLi9tb2RlbHMvc2V0dGluZ3MtY29uZmlnLm1vZGVsJztcbmltcG9ydCB7IFNldHRpbmdzR2VuZXJhdG9yQ29udGVudENvbXBvbmVudCB9IGZyb20gJy4vc2V0dGluZ3MtZ2VuZXJhdG9yLWNvbnRlbnQvc2V0dGluZ3MtZ2VuZXJhdG9yLWNvbnRlbnQuY29tcG9uZW50JztcbmltcG9ydCB7IFNldHRpbmdzR2VuZXJhdG9yU2VjdGlvbkNvbXBvbmVudCB9IGZyb20gJy4vc2V0dGluZ3MtZ2VuZXJhdG9yLWNvbnRlbnQvc2V0dGluZ3MtZ2VuZXJhdG9yLXNlY3Rpb24vc2V0dGluZ3MtZ2VuZXJhdG9yLXNlY3Rpb24uY29tcG9uZW50JztcbmltcG9ydCB7IFNldHRpbmdzR2VuZXJhdG9yTGF5b3V0QWNjZXNzb3JTZXJ2aWNlIH0gZnJvbSAnLi9zZXR0aW5ncy1nZW5lcmF0b3ItbGF5b3V0LWFjY2Vzc29yLnNlcnZpY2UnO1xuaW1wb3J0IHsgU2V0dGluZ3NHZW5lcmF0b3JDb21wb25lbnQgfSBmcm9tICcuL3NldHRpbmdzLWdlbmVyYXRvci5jb21wb25lbnQnO1xuaW1wb3J0IHsgRkRQX1NFVFRJTkdTX0dFTkVSQVRPUl9DT05GSUcgfSBmcm9tICcuL3Rva2Vucyc7XG5cbkBOZ01vZHVsZSh7XG4gICAgaW1wb3J0czogW1xuICAgICAgICBQbGF0Zm9ybUZvcm1HZW5lcmF0b3JNb2R1bGUsXG4gICAgICAgIFNldHRpbmdzR2VuZXJhdG9yQ29tcG9uZW50LFxuICAgICAgICBTZXR0aW5nc0dlbmVyYXRvclNpZGViYXJMYXlvdXRDb21wb25lbnQsXG4gICAgICAgIFNldHRpbmdzR2VuZXJhdG9yQ29udGVudENvbXBvbmVudCxcbiAgICAgICAgU2V0dGluZ3NHZW5lcmF0b3JTZWN0aW9uQ29tcG9uZW50LFxuICAgICAgICBUaGVtZVNlbGVjdG9yTGlzdENvbXBvbmVudCxcbiAgICAgICAgVGhlbWVTZWxlY3Rvckxpc3RJY29uQ29tcG9uZW50LFxuICAgICAgICBTZXR0aW5nc0dlbmVyYXRvclNpZGViYXJJY29uQ29tcG9uZW50XG4gICAgXSxcbiAgICBleHBvcnRzOiBbXG4gICAgICAgIFNldHRpbmdzR2VuZXJhdG9yQ29tcG9uZW50LFxuICAgICAgICBTZXR0aW5nc0dlbmVyYXRvclNpZGViYXJMYXlvdXRDb21wb25lbnQsXG4gICAgICAgIFNldHRpbmdzR2VuZXJhdG9yQ29udGVudENvbXBvbmVudCxcbiAgICAgICAgU2V0dGluZ3NHZW5lcmF0b3JTZWN0aW9uQ29tcG9uZW50LFxuICAgICAgICBUaGVtZVNlbGVjdG9yTGlzdEljb25Db21wb25lbnRcbiAgICBdLFxuICAgIHByb3ZpZGVyczogW1xuICAgICAgICBTZXR0aW5nc0dlbmVyYXRvckxheW91dEFjY2Vzc29yU2VydmljZSxcbiAgICAgICAge1xuICAgICAgICAgICAgcHJvdmlkZTogRkRQX1NFVFRJTkdTX0dFTkVSQVRPUl9DT05GSUcsXG4gICAgICAgICAgICB1c2VWYWx1ZTogRkRQX1NFVFRJTkdTX0dFTkVSQVRPUl9ERUZBVUxUX0NPTkZJR1xuICAgICAgICB9XG4gICAgXVxufSlcbmV4cG9ydCBjbGFzcyBTZXR0aW5nc0dlbmVyYXRvck1vZHVsZSB7XG4gICAgLyoqXG4gICAgICogQWxsb3dzIGNvbmZpZ3VyaW5nIG1vZHVsZSBvbiBhIGdsb2JhbCBsZXZlbCB3aXRoIGN1c3RvbSBjb25maWd1cmF0aW9uLlxuICAgICAqIEBwYXJhbSBjb25maWcgVXNlcidzIGN1c3RvbSBjb25maWd1cmF0aW9uLlxuICAgICAqL1xuICAgIHN0YXRpYyB3aXRoQ29uZmlnKGNvbmZpZzogUGFydGlhbDxTZXR0aW5nc0NvbmZpZz4pOiBNb2R1bGVXaXRoUHJvdmlkZXJzPFNldHRpbmdzR2VuZXJhdG9yTW9kdWxlPiB7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICBuZ01vZHVsZTogU2V0dGluZ3NHZW5lcmF0b3JNb2R1bGUsXG4gICAgICAgICAgICBwcm92aWRlcnM6IFtcbiAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgIHByb3ZpZGU6IEZEUF9TRVRUSU5HU19HRU5FUkFUT1JfQ09ORklHLFxuICAgICAgICAgICAgICAgICAgICB1c2VWYWx1ZTogeyAuLi5GRFBfU0VUVElOR1NfR0VORVJBVE9SX0RFRkFVTFRfQ09ORklHLCAuLi5jb25maWcgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIF1cbiAgICAgICAgfTtcbiAgICB9XG59XG4iXX0=
|
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
import { ChangeDetectorRef, Directive, ElementRef, Host, inject, Inject, InjectionToken, Input, isDevMode, Optional, Self, SkipSelf, ViewChild } from '@angular/core';
|
|
2
|
-
import { ControlContainer, NgControl, NgForm } from '@angular/forms';
|
|
3
1
|
import { coerceBooleanProperty } from '@angular/cdk/coercion';
|
|
4
|
-
import {
|
|
5
|
-
import {
|
|
2
|
+
import { ChangeDetectorRef, Directive, ElementRef, Host, Inject, InjectionToken, Input, Optional, Self, SkipSelf, ViewChild, inject, isDevMode } from '@angular/core';
|
|
3
|
+
import { ControlContainer, NgControl, NgForm } from '@angular/forms';
|
|
4
|
+
import { Subject, filter, takeUntil } from 'rxjs';
|
|
6
5
|
import { FD_FORM_FIELD, FD_FORM_FIELD_CONTROL, isValidControlState } from '@fundamental-ngx/cdk/forms';
|
|
6
|
+
import { BaseComponent } from '../base';
|
|
7
7
|
import { PlatformFormField, PlatformFormFieldControl } from './form-field';
|
|
8
8
|
import * as i0 from "@angular/core";
|
|
9
9
|
import * as i1 from "@angular/forms";
|
|
@@ -162,11 +162,13 @@ export class BaseInput extends BaseComponent {
|
|
|
162
162
|
const labelAndHelpId = `fdp-form-label-content-${this.id}`;
|
|
163
163
|
// if not specified, associate label and inline help ids with the input,
|
|
164
164
|
// else add these ids to the specified ones
|
|
165
|
-
if (
|
|
166
|
-
this.ariaLabelledBy
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
165
|
+
if (this.formField) {
|
|
166
|
+
if (!this.ariaLabelledBy) {
|
|
167
|
+
this.ariaLabelledBy = labelAndHelpId;
|
|
168
|
+
}
|
|
169
|
+
else {
|
|
170
|
+
this.ariaLabelledBy += ' ' + labelAndHelpId;
|
|
171
|
+
}
|
|
170
172
|
}
|
|
171
173
|
this.innerErrorsTemplate = this.formField?.innerErrorRenderers;
|
|
172
174
|
this.stateChanges
|
|
@@ -345,4 +347,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.7", ngImpor
|
|
|
345
347
|
type: ViewChild,
|
|
346
348
|
args: ['inputElementRef', { static: true, read: ElementRef }]
|
|
347
349
|
}] } });
|
|
348
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzZS5pbnB1dC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvcGxhdGZvcm0vc3JjL2xpYi9zaGFyZWQvZm9ybS9iYXNlLmlucHV0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFFSCxpQkFBaUIsRUFDakIsU0FBUyxFQUVULFVBQVUsRUFDVixJQUFJLEVBQ0osTUFBTSxFQUNOLE1BQU0sRUFDTixjQUFjLEVBQ2QsS0FBSyxFQUNMLFNBQVMsRUFHVCxRQUFRLEVBQ1IsSUFBSSxFQUNKLFFBQVEsRUFFUixTQUFTLEVBQ1osTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLGdCQUFnQixFQUFxQyxTQUFTLEVBQUUsTUFBTSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDeEcsT0FBTyxFQUFnQixxQkFBcUIsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQzVFLE9BQU8sRUFBRSxNQUFNLEVBQWMsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUc5RCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sU0FBUyxDQUFDO0FBQ3hDLE9BQU8sRUFDSCxhQUFhLEVBQ2IscUJBQXFCLEVBR3JCLG1CQUFtQixFQUN0QixNQUFNLDRCQUE0QixDQUFDO0FBQ3BDLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSx3QkFBd0IsRUFBRSxNQUFNLGNBQWMsQ0FBQzs7OztBQUkzRSxNQUFNLENBQUMsTUFBTSxZQUFZLEdBQUcsSUFBSSxjQUFjLENBQW1CLHdCQUF3QixDQUFDLENBQUM7QUFFM0YsSUFBSSxRQUFRLEdBQUcsQ0FBQyxDQUFDO0FBRWpCOzs7Ozs7Ozs7O0dBVUc7QUFFSCxNQUFNLE9BQWdCLFNBQ2xCLFNBQVEsYUFBYTtJQXlCckI7Ozs7O09BS0c7SUFDSCxJQUNJLEtBQUssQ0FBQyxLQUE2QjtRQUNuQyxJQUFJLENBQUMsS0FBSyxJQUFJLG1CQUFtQixDQUFDLEtBQUssQ0FBQyxFQUFF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IHtcbiAgICBBZnRlclZpZXdJbml0LFxuICAgIENoYW5nZURldGVjdG9yUmVmLFxuICAgIERpcmVjdGl2ZSxcbiAgICBEb0NoZWNrLFxuICAgIEVsZW1lbnRSZWYsXG4gICAgSG9zdCxcbiAgICBpbmplY3QsXG4gICAgSW5qZWN0LFxuICAgIEluamVjdGlvblRva2VuLFxuICAgIElucHV0LFxuICAgIGlzRGV2TW9kZSxcbiAgICBPbkRlc3Ryb3ksXG4gICAgT25Jbml0LFxuICAgIE9wdGlvbmFsLFxuICAgIFNlbGYsXG4gICAgU2tpcFNlbGYsXG4gICAgVGVtcGxhdGVSZWYsXG4gICAgVmlld0NoaWxkXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29udHJvbENvbnRhaW5lciwgQ29udHJvbFZhbHVlQWNjZXNzb3IsIEZvcm1Db250cm9sLCBOZ0NvbnRyb2wsIE5nRm9ybSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IEJvb2xlYW5JbnB1dCwgY29lcmNlQm9vbGVhblByb3BlcnR5IH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2NvZXJjaW9uJztcbmltcG9ydCB7IGZpbHRlciwgT2JzZXJ2YWJsZSwgU3ViamVjdCwgdGFrZVVudGlsIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBOdWxsYWJsZSB9IGZyb20gJ0BmdW5kYW1lbnRhbC1uZ3gvY2RrL3V0aWxzJztcblxuaW1wb3J0IHsgQmFzZUNvbXBvbmVudCB9IGZyb20gJy4uL2Jhc2UnO1xuaW1wb3J0IHtcbiAgICBGRF9GT1JNX0ZJRUxELFxuICAgIEZEX0ZPUk1fRklFTERfQ09OVFJPTCxcbiAgICBGb3JtRmllbGRBZHZhbmNlZFN0YXRlTWVzc2FnZSxcbiAgICBGb3JtU3RhdGVzLFxuICAgIGlzVmFsaWRDb250cm9sU3RhdGVcbn0gZnJvbSAnQGZ1bmRhbWVudGFsLW5neC9jZGsvZm9ybXMnO1xuaW1wb3J0IHsgUGxhdGZvcm1Gb3JtRmllbGQsIFBsYXRmb3JtRm9ybUZpZWxkQ29udHJvbCB9IGZyb20gJy4vZm9ybS1maWVsZCc7XG5pbXBvcnQgeyBUcmlnZ2VyQ29uZmlnIH0gZnJvbSAnQGZ1bmRhbWVudGFsLW5neC9jb3JlL3BvcG92ZXInO1xuaW1wb3J0IHsgRm9ybUlucHV0TWVzc2FnZUdyb3VwQ29tcG9uZW50IH0gZnJvbSAnQGZ1bmRhbWVudGFsLW5neC9jb3JlL2Zvcm0nO1xuXG5leHBvcnQgY29uc3QgRkRQX0RPX0NIRUNLID0gbmV3IEluamVjdGlvblRva2VuPE9ic2VydmFibGU8dm9pZD4+KCdGZHBJbnB1dERvQ2hlY2tUcmlnZ2VyJyk7XG5cbmxldCByYW5kb21JZCA9IDA7XG5cbi8qKlxuICogQWxsIGZvcm0gY29tcG9uZW50cyBzaGFyZSB0aGUgc2FtZSBpbmZvcm1hdGlvbiAodmFsdWUsIG5hbWUsIHBsYWNlaG9sZGVyLC4uICkgYXMgd2VsbCBhc1xuICogdGhlIHNhbWUgYmVoYXZpb3IgZ2l2ZW4gYnkgQ29udHJvbFZhbHVlQWNjZXNzb3IuXG4gKlxuICogRXZlbiB0aGlzIGlzIG5vdCBpZGVhbCBzb2x1dGlvbiB0aGVyZSBpcyBubyBvdGhlciB3YXkgdGhlbiB1c2UgaW5oZXJpdGFuY2UgdG8gcmV1c2Ugc29tZSBvZiB0aGVcbiAqIGNvbW1vbiBsb2dpYy4gSXQgc2hvdWxkIGJlIHBvc3NpYmxlIHRvIHVzZSBzb21lIGtpbmQgb2YgY29tcG9zaXRpb25zIHdpdGggUHJveGllcyBidXQgc29tZXRoaW5nXG4gKiBzaW1pbGFyIHRoYXQgZXhpc3RzIGluIEFzcGVjdCBPcmllbnRlZCBQcm9ncmFtaW5nLlxuICpcbiAqIFVzdWFsbHkgdHJ5IHRvIGZpcmUgc3RhdGVDaGFuZ2Ugb25seSBmb3IgdGhpbmdzIHRoYXQgY2FuIGNoYW5nZSBkeW5hbWljYWxseSBpbiBydW50aW1lLiBXZSBkb24ndCBleHBlY3RcbiAqIHRoYXQgZS5nLiBwbGFjZWhvbGRlciB3aWxsIGNoYW5nZSBhZnRlciBjb21wb25lbnQgaXMgY3JlYXRlZFxuICovXG5ARGlyZWN0aXZlKClcbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBCYXNlSW5wdXRcbiAgICBleHRlbmRzIEJhc2VDb21wb25lbnRcbiAgICBpbXBsZW1lbnRzIFBsYXRmb3JtRm9ybUZpZWxkQ29udHJvbCwgQ29udHJvbFZhbHVlQWNjZXNzb3IsIE9uSW5pdCwgRG9DaGVjaywgQWZ0ZXJWaWV3SW5pdCwgT25EZXN0cm95XG57XG4gICAgLyoqIElucHV0IHBsYWNlaG9sZGVyICovXG4gICAgQElucHV0KClcbiAgICBwbGFjZWhvbGRlcjogc3RyaW5nO1xuXG4gICAgLyoqXG4gICAgICogVG8gYWxsb3cgdXNlciB0byBkZXRlcm1pbmUgd2hhdCBldmVudCBoZSB3YW50cyB0byB0cmlnZ2VyIHRoZSBtZXNzYWdlcyB0byBzaG93XG4gICAgICogQWNjZXB0cyBhbnkgW0hUTUwgRE9NIEV2ZW50c10oaHR0cHM6Ly93d3cudzNzY2hvb2xzLmNvbS9qc3JlZi9kb21fb2JqX2V2ZW50LmFzcCkuXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICB0cmlnZ2VyczogKHN0cmluZyB8IFRyaWdnZXJDb25maWcpW10gPSBbXG4gICAgICAgIHtcbiAgICAgICAgICAgIHRyaWdnZXI6ICdmb2N1c2luJyxcbiAgICAgICAgICAgIG9wZW5BY3Rpb246IHRydWUsXG4gICAgICAgICAgICBjbG9zZUFjdGlvbjogZmFsc2VcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgICAgdHJpZ2dlcjogJ2ZvY3Vzb3V0JyxcbiAgICAgICAgICAgIG9wZW5BY3Rpb246IGZhbHNlLFxuICAgICAgICAgICAgY2xvc2VBY3Rpb246IHRydWVcbiAgICAgICAgfVxuICAgIF07XG5cbiAgICAvKipcbiAgICAgKiAgVGhlIHN0YXRlIG9mIHRoZSBmb3JtIGNvbnRyb2wgLSBhcHBsaWVzIGNzcyBjbGFzc2VzLlxuICAgICAqICBDYW4gYmUgJ3N1Y2Nlc3MnLCAnZXJyb3InLCAnd2FybmluZycsICdkZWZhdWx0JywgJ2luZm9ybWF0aW9uJy5cbiAgICAgKlxuICAgICAqIEBkZWZhdWx0ICdkZWZhdWx0J1xuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgc2V0IHN0YXRlKHN0YXRlOiBGb3JtU3RhdGVzIHwgdW5kZWZpbmVkKSB7XG4gICAgICAgIGlmICghc3RhdGUgfHwgaXNWYWxpZENvbnRyb2xTdGF0ZShzdGF0ZSkpIHtcbiAgICAgICAgICAgIHRoaXMuX3N0YXRlID0gc3RhdGU7XG4gICAgICAgIH0gZWxzZSBpZiAoaXNEZXZNb2RlKCkpIHtcbiAgICAgICAgICAgIGNvbnNvbGUud2FybihgUHJvdmlkZWQgdmFsdWUgXCIke3N0YXRlfVwiIGlzIG5vdCBhIHZhbGlkIG9wdGlvbiBmb3IgRm9ybVN0YXRlcyB0eXBlYCk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgZ2V0IHN0YXRlKCk6IEZvcm1TdGF0ZXMge1xuICAgICAgICBpZiAodGhpcy5fc3RhdGUpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLl9zdGF0ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICghdGhpcy5jb250cm9sSW52YWxpZCkge1xuICAgICAgICAgICAgcmV0dXJuICdkZWZhdWx0JztcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiB0aGlzLmZvcm1GaWVsZD8uZ2V0UHJpb3JpdHlTdGF0ZSgpIHx8ICdlcnJvcic7XG4gICAgfVxuXG4gICAgLyoqIEhvbGRzIHRoZSBtZXNzYWdlIHdpdGggcmVzcGVjdCB0byBzdGF0ZSAqL1xuICAgIEBJbnB1dCgpXG4gICAgc3RhdGVNZXNzYWdlOiBOdWxsYWJsZTxzdHJpbmc+O1xuXG4gICAgLyoqIEFkdmFuY2VkIGZvcm0gbWVzc2FnZSBjb25maWd1cmF0aW9uLiBVc2VkIGZvciBjb21wb25lbnRzIHRoYXQgY2FuIHJlbmRlciBmb3JtIG1lc3NhZ2VzIGluIGl0cyB0ZW1wbGF0ZS4gKi9cbiAgICBASW5wdXQoKVxuICAgIHN0YXRlTWVzc2FnZUNvbmZpZzogTnVsbGFibGU8VGVtcGxhdGVSZWY8YW55Pj47XG5cbiAgICAvKiogV2hldGhlciB0aGUgaW5wdXQgaXMgZGlzYWJsZWQgKi9cbiAgICBASW5wdXQoKVxuICAgIHNldCBkaXNhYmxlZCh2YWx1ZTogYm9vbGVhbikge1xuICAgICAgICB0aGlzLnNldERpc2FibGVkU3RhdGUodmFsdWUpO1xuICAgIH1cbiAgICBnZXQgZGlzYWJsZWQoKTogYm9vbGVhbiB7XG4gICAgICAgIGlmICh0aGlzLm5nQ29udHJvbCAmJiB0aGlzLm5nQ29udHJvbC5kaXNhYmxlZCAhPT0gbnVsbCkge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMubmdDb250cm9sLmRpc2FibGVkO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB0aGlzLl9kaXNhYmxlZDtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiByZWFkT25seSBWYWx1ZSB0byBNYXJrIGNvbXBvbmVudCByZWFkIG9ubHlcbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIHJlYWRvbmx5OiBib29sZWFuO1xuXG4gICAgLyoqIEJpbmRzIHRvIGNvbnRyb2wgYXJpYS1sYWJlbGxlZEJ5IGF0dHJpYnV0ZSAqL1xuICAgIEBJbnB1dCgpXG4gICAgYXJpYUxhYmVsbGVkQnk6IE51bGxhYmxlPHN0cmluZz47XG5cbiAgICAvKiogU2V0cyBjb250cm9sIGFyaWEtbGFiZWwgYXR0cmlidXRlIHZhbHVlICovXG4gICAgQElucHV0KClcbiAgICBhcmlhTGFiZWw6IE51bGxhYmxlPHN0cmluZz47XG5cbiAgICAvKipcbiAgICAgKiBUZWxsIHRoZSBjb21wb25lbnQgaWYgd2UgYXJlIGluIGVkaXRpbmcgbW9kZS5cbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIHNldCBlZGl0YWJsZSh2YWx1ZTogQm9vbGVhbklucHV0KSB7XG4gICAgICAgIGNvbnN0IG5ld1ZhbCA9IGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eSh2YWx1ZSk7XG4gICAgICAgIGlmICh0aGlzLl9lZGl0YWJsZSAhPT0gbmV3VmFsKSB7XG4gICAgICAgICAgICB0aGlzLl9lZGl0YWJsZSA9IG5ld1ZhbDtcbiAgICAgICAgICAgIHRoaXMuX2NkLm1hcmtGb3JDaGVjaygpO1xuICAgICAgICAgICAgdGhpcy5zdGF0ZUNoYW5nZXMubmV4dCgnZWRpdGFibGUnKTtcbiAgICAgICAgfVxuICAgIH1cbiAgICBnZXQgZWRpdGFibGUoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLl9lZGl0YWJsZTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBSZWZlcmVuY2UgdG8gaW50ZXJuYWwgSW5wdXQgZWxlbWVudFxuICAgICAqL1xuICAgIEBWaWV3Q2hpbGQoJ2lucHV0RWxlbWVudFJlZicsIHsgc3RhdGljOiB0cnVlLCByZWFkOiBFbGVtZW50UmVmIH0pXG4gICAgcHJvdGVjdGVkIF9lbGVtZW50UmVmOiBFbGVtZW50UmVmO1xuXG4gICAgLyoqXG4gICAgICogbmVlZCB0byBtYWtlICB0aGVzZSB2YWx1ZSBhY2Nlc3NvciBhcyBhYnN0cmFjdCB0byBiZSBpbXBsZW1lbnRlZCBieSBzdWJjbGFzc2VzLiBIYXZpbmcgdGhlbVxuICAgICAqIGluIHN1cGVyY2xhc3MgaGF2ZSBpc3N1ZSBnZXR0aW5nIHJlZmVyZW5jZSB0byB0aGVtIHdpdGggT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvblxuICAgICAqIHdoaWNoIHdlIG5lZWQgdG8gcHJvZ3JhbW1hdGljYWxseSB3cmFwcyBjb21wb25lbnRzIHNldC9nZXQgdmFsdWVcbiAgICAgKlxuICAgICAqL1xuICAgIGFic3RyYWN0IGdldCB2YWx1ZSgpOiBhbnk7XG5cbiAgICBhYnN0cmFjdCBzZXQgdmFsdWUodmFsdWU6IGFueSk7XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIGZvcm1NZXNzYWdlOiBGb3JtSW5wdXRNZXNzYWdlR3JvdXBDb21wb25lbnQ7XG5cbiAgICAvKipcbiAgICAgKiBTZWUgQEZvcm1GaWVsZENvbnRyb2xcbiAgICAgKi9cbiAgICBmb2N1c2VkID0gZmFsc2U7XG5cbiAgICAvKiogc2V0IHdoZW4gaW5wdXQgZmllbGQgaXMgbWFuZGF0b3J5IGZvcm0gZmllbGQgKi9cbiAgICByZXF1aXJlZDogYm9vbGVhbjtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgaW5uZXJFcnJvcnNUZW1wbGF0ZT86IFRlbXBsYXRlUmVmPGFueT47XG5cbiAgICAvKiogV2hldGhlciBjb250cm9sIGhhcyBlcnJvcnMgKi9cbiAgICBnZXQgY29udHJvbEludmFsaWQoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLl9jb250cm9sSW52YWxpZDtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIGFkdmFuY2VkU3RhdGVNZXNzYWdlOiBOdWxsYWJsZTxGb3JtRmllbGRBZHZhbmNlZFN0YXRlTWVzc2FnZT47XG5cbiAgICAvKipcbiAgICAgKiBTZWUgQEZvcm1GaWVsZENvbnRyb2xcbiAgICAgKi9cbiAgICByZWFkb25seSBzdGF0ZUNoYW5nZXM6IFN1YmplY3Q8YW55PiA9IG5ldyBTdWJqZWN0PGFueT4oKTtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcmVhZG9ubHkgZm9ybUZpZWxkOiBQbGF0Zm9ybUZvcm1GaWVsZCB8IG51bGwgPSBudWxsO1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICByZWFkb25seSBfZG9DaGVjayQgPSBpbmplY3QoRkRQX0RPX0NIRUNLLCB7IG9wdGlvbmFsOiB0cnVlIH0pO1xuXG4gICAgLyoqXG4gICAgICogQGhpZGRlblxuICAgICAqIFRoZSBzdGF0ZSBvZiB0aGUgZm9ybSBjb250cm9sIC0gYXBwbGllcyBjc3MgY2xhc3Nlcy5cbiAgICAgKiBDYW4gYmUgYHN1Y2Nlc3NgLCBgZXJyb3JgLCBgd2FybmluZ2AsIGBpbmZvcm1hdGlvbmAgb3IgJ2RlZmF1bHQnXG4gICAgICovXG4gICAgcHJvdGVjdGVkIF9zdGF0ZTogRm9ybVN0YXRlcyB8IHVuZGVmaW5lZDtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJvdGVjdGVkIGRlZmF1bHRJZCA9IGBmZHAtaW5wdXQtaWQtJHtyYW5kb21JZCsrfWA7XG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcm90ZWN0ZWQgX2Rpc2FibGVkOiBib29sZWFuO1xuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJvdGVjdGVkIF92YWx1ZTogYW55O1xuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJvdGVjdGVkIF9lZGl0YWJsZSA9IHRydWU7XG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcm90ZWN0ZWQgX2Rlc3Ryb3llZCA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XG5cbiAgICAvKipcbiAgICAgKiBAaGlkZGVuXG4gICAgICovXG4gICAgcHJpdmF0ZSBfY29udHJvbEludmFsaWQgPSBmYWxzZTtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJvdGVjdGVkIGNvbnN0cnVjdG9yKFxuICAgICAgICBjZDogQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgICAgIHJlYWRvbmx5IGVsZW1lbnRSZWY6IEVsZW1lbnRSZWYsXG4gICAgICAgIEBPcHRpb25hbCgpIEBTZWxmKCkgcmVhZG9ubHkgbmdDb250cm9sOiBOZ0NvbnRyb2wsXG4gICAgICAgIEBPcHRpb25hbCgpIEBTa2lwU2VsZigpIHJlYWRvbmx5IGNvbnRyb2xDb250YWluZXI6IENvbnRyb2xDb250YWluZXIsXG4gICAgICAgIEBPcHRpb25hbCgpIEBTa2lwU2VsZigpIHJlYWRvbmx5IG5nRm9ybTogTmdGb3JtLFxuICAgICAgICBAT3B0aW9uYWwoKSBAU2tpcFNlbGYoKSBASG9zdCgpIEBJbmplY3QoRkRfRk9STV9GSUVMRCkgZm9ybUZpZWxkOiBQbGF0Zm9ybUZvcm1GaWVsZCxcbiAgICAgICAgQE9wdGlvbmFsKCkgQFNraXBTZWxmKCkgQEhvc3QoKSBASW5qZWN0KEZEX0ZPUk1fRklFTERfQ09OVFJPTCkgZm9ybUNvbnRyb2w6IFBsYXRmb3JtRm9ybUZpZWxkQ29udHJvbFxuICAgICkge1xuICAgICAgICAvKipcbiAgICAgICAgICogV2UgZG8gbm90IHVzZSBJbmplY3Rvci5nZXQoKSBhcHByb2FjaCBoZXJlIGJlY2F1c2UgdGhlcmUgaXMgYSBidWdcbiAgICAgICAgICogd2l0aCB0aGlzIHNpZ25hdHVyZSBodHRwczovL2dpdGh1Yi5jb20vYW5ndWxhci9hbmd1bGFyL2lzc3Vlcy8zMTc3NlxuICAgICAgICAgKiB3aGVyZSBcImdldCgpXCIgbWV0aG9kIGRvZXNuJ3QgdGFrZSBpbnRvIGFjY291bnQgXCJmbGFnXCIgb3B0aW9uXCJcbiAgICAgICAgICpcbiAgICAgICAgICovXG4gICAgICAgIHN1cGVyKGNkKTtcblxuICAgICAgICBpZiAodGhpcy5uZ0NvbnRyb2wpIHtcbiAgICAgICAgICAgIHRoaXMubmdDb250cm9sLnZhbHVlQWNjZXNzb3IgPSB0aGlzO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gV2UgaGF2ZSB0byBpZ25vcmUgXCJmb3JtRmllbGRcIiBpZiB0aGVyZSBpcyBcImZvcm1Db250cm9sXCIgd3JhcHBlclxuICAgICAgICB0aGlzLmZvcm1GaWVsZCA9IGZvcm1GaWVsZCAmJiAhZm9ybUNvbnRyb2wgPyBmb3JtRmllbGQgOiBudWxsO1xuXG4gICAgICAgIHRoaXMuX2RvQ2hlY2skPy5waXBlKHRha2VVbnRpbCh0aGlzLl9kZXN0cm95ZWQpKS5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICAgICAgdGhpcy5uZ0RvQ2hlY2soKTtcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBvbkNoYW5nZTogKHZhbHVlOiBhbnkpID0+IHZvaWQgPSAoKSA9PiB7fTtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgb25Ub3VjaGVkID0gKCk6IHZvaWQgPT4ge307XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIG5nT25Jbml0KCk6IHZvaWQge1xuICAgICAgICBpZiAodGhpcy5mb3JtRmllbGQpIHtcbiAgICAgICAgICAgIHRoaXMuZm9ybUZpZWxkLnJlZ2lzdGVyRm9ybUZpZWxkQ29udHJvbCh0aGlzKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFJlLXZhbGlkYXRlIGFuZCBlbWl0IGV2ZW50IHRvIHBhcmVudCBjb250YWluZXIgb24gZXZlcnkgQ0QgY3ljbGUgYXMgdGhleSBhcmUgc29tZSBlcnJvcnNcbiAgICAgKiB0aGF0IHdlIGNhbid0IHN1YnNjcmliZSB0by5cbiAgICAgKi9cbiAgICBuZ0RvQ2hlY2soKTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLm5nQ29udHJvbCkge1xuICAgICAgICAgICAgdGhpcy51cGRhdGVFcnJvclN0YXRlKCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcbiAgICAgICAgaWYgKHRoaXMubmdDb250cm9sKSB7XG4gICAgICAgICAgICB0aGlzLl9zdWJzY3JpcHRpb25zLmFkZChcbiAgICAgICAgICAgICAgICB0aGlzLm5nQ29udHJvbC5zdGF0dXNDaGFuZ2VzPy5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLm1hcmtGb3JDaGVjaygpO1xuICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICApO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgbGFiZWxBbmRIZWxwSWQgPSBgZmRwLWZvcm0tbGFiZWwtY29udGVudC0ke3RoaXMuaWR9YDtcbiAgICAgICAgLy8gaWYgbm90IHNwZWNpZmllZCwgYXNzb2NpYXRlIGxhYmVsIGFuZCBpbmxpbmUgaGVscCBpZHMgd2l0aCB0aGUgaW5wdXQsXG4gICAgICAgIC8vIGVsc2UgYWRkIHRoZXNlIGlkcyB0byB0aGUgc3BlY2lmaWVkIG9uZXNcbiAgICAgICAgaWYgKCF0aGlzLmFyaWFMYWJlbGxlZEJ5KSB7XG4gICAgICAgICAgICB0aGlzLmFyaWFMYWJlbGxlZEJ5ID0gbGFiZWxBbmRIZWxwSWQ7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLmFyaWFMYWJlbGxlZEJ5ICs9ICcgJyArIGxhYmVsQW5kSGVscElkO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5pbm5lckVycm9yc1RlbXBsYXRlID0gdGhpcy5mb3JtRmllbGQ/LmlubmVyRXJyb3JSZW5kZXJlcnM7XG5cbiAgICAgICAgdGhpcy5zdGF0ZUNoYW5nZXNcbiAgICAgICAgICAgIC5waXBlKFxuICAgICAgICAgICAgICAgIGZpbHRlcigoKSA9PiAhIXRoaXMuZm9ybUZpZWxkKSxcbiAgICAgICAgICAgICAgICB0YWtlVW50aWwodGhpcy5fZGVzdHJveWVkKVxuICAgICAgICAgICAgKVxuICAgICAgICAgICAgLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy5hZHZhbmNlZFN0YXRlTWVzc2FnZSA9IHtcbiAgICAgICAgICAgICAgICAgICAgdGVtcGxhdGU6IHRoaXMuZm9ybUZpZWxkIS5pbm5lckVycm9yUmVuZGVyZXJzLFxuICAgICAgICAgICAgICAgICAgICBoYXNFcnJvcnM6IHRoaXMuZm9ybUZpZWxkIS5oYXNFcnJvcnMoKVxuICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICAgICAgdGhpcy5fY2QuZGV0ZWN0Q2hhbmdlcygpO1xuICAgICAgICAgICAgfSk7XG5cbiAgICAgICAgdGhpcy5fY2QuZGV0ZWN0Q2hhbmdlcygpO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcmVnaXN0ZXJPbkNoYW5nZShmbjogKF86IGFueSkgPT4gdm9pZCk6IHZvaWQge1xuICAgICAgICB0aGlzLm9uQ2hhbmdlID0gZm47XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICByZWdpc3Rlck9uVG91Y2hlZChmbjogKCkgPT4gdm9pZCk6IHZvaWQge1xuICAgICAgICB0aGlzLm9uVG91Y2hlZCA9IGZuO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgICAgIHN1cGVyLm5nT25EZXN0cm95KCk7XG4gICAgICAgIHRoaXMuc3RhdGVDaGFuZ2VzLmNvbXBsZXRlKCk7XG4gICAgICAgIHRoaXMuX2Rlc3Ryb3llZC5uZXh0KCk7XG4gICAgICAgIHRoaXMuX2Rlc3Ryb3llZC5jb21wbGV0ZSgpO1xuICAgICAgICBpZiAodGhpcy5mb3JtRmllbGQpIHtcbiAgICAgICAgICAgIHRoaXMuZm9ybUZpZWxkLnVucmVnaXN0ZXJGb3JtRmllbGRDb250cm9sKHRoaXMpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBzZXREaXNhYmxlZFN0YXRlKGlzRGlzYWJsZWQ6IEJvb2xlYW5JbnB1dCk6IHZvaWQge1xuICAgICAgICBjb25zdCBuZXdTdGF0ZSA9IGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eShpc0Rpc2FibGVkKTtcbiAgICAgICAgdGhpcy5fY2QubWFya0ZvckNoZWNrKCk7XG4gICAgICAgIGlmIChuZXdTdGF0ZSAhPT0gdGhpcy5fZGlzYWJsZWQpIHtcbiAgICAgICAgICAgIHRoaXMuX2Rpc2FibGVkID0gbmV3U3RhdGU7XG4gICAgICAgICAgICB0aGlzLnN0YXRlQ2hhbmdlcy5uZXh0KCdzZXREaXNhYmxlZFN0YXRlJyk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBFYWNoIHN1YiBjbGFzcyBtdXN0IG92ZXJyaWRlIHRoaXMgbWV0aG9kIGFzIGluaGVyaXRhbmNlIGRvZXMgbm90IHdvcmtcbiAgICAgKi9cbiAgICB3cml0ZVZhbHVlKHZhbHVlOiBhbnkpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5fdmFsdWUgPSB2YWx1ZTtcbiAgICAgICAgdGhpcy5zdGF0ZUNoYW5nZXMubmV4dCgnd3JpdGVWYWx1ZScpO1xuICAgICAgICB0aGlzLl9jZC5tYXJrRm9yQ2hlY2soKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKlxuICAgICAqIEtlZXBzIHRyYWNrIG9mIGVsZW1lbnQgZm9jdXNcbiAgICAgKi9cbiAgICBfb25Gb2N1c0NoYW5nZWQoaXNGb2N1c2VkOiBib29sZWFuKTogdm9pZCB7XG4gICAgICAgIGlmIChpc0ZvY3VzZWQgIT09IHRoaXMuZm9jdXNlZCAmJiAoIXRoaXMuZGlzYWJsZWQgfHwgIWlzRm9jdXNlZCkpIHtcbiAgICAgICAgICAgIHRoaXMuZm9jdXNlZCA9IGlzRm9jdXNlZDtcbiAgICAgICAgICAgIHRoaXMuc3RhdGVDaGFuZ2VzLm5leHQoJ19vbkZvY3VzQ2hhbmdlZCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKCFpc0ZvY3VzZWQpIHtcbiAgICAgICAgICAgIHRoaXMub25Ub3VjaGVkKCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBIYW5kbGVzIGV2ZW4gd2hlbiB3ZSBjbGljayBvbiBwYXJlbnQgY29udGFpbmVyIHdoaWNoIGlzIHRoZSBGb3JtRmllbGQgV3JhcHBpbmcgdGhpc1xuICAgICAqIGNvbnRyb2xcbiAgICAgKi9cbiAgICBvbkNvbnRhaW5lckNsaWNrKGV2ZW50OiBNb3VzZUV2ZW50KTogdm9pZCB7XG4gICAgICAgIHRoaXMuZm9jdXMoZXZlbnQpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEluIG1vc3Qgb2YgdGhlIGNhc2VzIHdoZW4gd29ya2luZyB3aXRoIGlucHV0IGVsZW1lbnQgZGlyZWN0bHkgeW91IHNob3VsZCBiZSBqdXN0IGZpbmQgdG8gYXNzaW5nXG4gICAgICogdmFyaWFibGUgdG8gdGhpcyBlbGVtZW50XG4gICAgICpcbiAgICAgKiBgYGBcbiAgICAgKiA8aW5wdXQgI2lucHV0RWxlbWVudFJlZiBmZC1mb3JtLWNvbnRyb2wgLi4uPlxuICAgICAqIGBgYFxuICAgICAqXG4gICAgICogYW5kIHRoaXMgZGVmYXVsdCBiZWhhdmlvciB1c2VkLiBGb3Igb3RoZXIgY2FzZXMgaW1wbGVtZW50IGZvY3VzLlxuICAgICAqXG4gICAgICovXG4gICAgZm9jdXMoZXZlbnQ/OiBNb3VzZUV2ZW50KTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLl9lbGVtZW50UmVmICYmICF0aGlzLmZvY3VzZWQpIHtcbiAgICAgICAgICAgIHRoaXMuX2VsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5mb2N1cyhldmVudCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiAgTmVlZCByZS12YWxpZGF0ZXMgZXJyb3JzIG9uIGV2ZXJ5IENEIGl0ZXJhdGlvbiB0byBtYWtlIHN1cmUgd2UgYXJlIGFsc29cbiAgICAgKiAgY292ZXJpbmcgbm9uLWNvbnRyb2wgZXJyb3JzLCBlcnJvcnMgdGhhdCBoYXBwZW5zIG91dHNpZGUgb2YgdGhpcyBjb250cm9sXG4gICAgICovXG4gICAgcHJvdGVjdGVkIHVwZGF0ZUVycm9yU3RhdGUoKTogdm9pZCB7XG4gICAgICAgIGNvbnN0IHBhcmVudCA9IHRoaXMubmdGb3JtO1xuICAgICAgICBjb25zdCBwYXJlbnRDb250cm9sQ29udGFpbmVyID0gdGhpcy5jb250cm9sQ29udGFpbmVyO1xuICAgICAgICBjb25zdCBjb250cm9sID0gdGhpcy5uZ0NvbnRyb2wgPyAodGhpcy5uZ0NvbnRyb2wuY29udHJvbCBhcyBGb3JtQ29udHJvbCkgOiBudWxsO1xuICAgICAgICBjb25zdCBuZXdTdGF0dXNJc0Vycm9yID0gISEoXG4gICAgICAgICAgICBjb250cm9sPy5pbnZhbGlkICYmXG4gICAgICAgICAgICAoY29udHJvbC5kaXJ0eSB8fCBjb250cm9sLnRvdWNoZWQgfHwgcGFyZW50Py5zdWJtaXR0ZWQgfHwgKHBhcmVudENvbnRyb2xDb250YWluZXIgYXMgYW55KT8uc3VibWl0dGVkKVxuICAgICAgICApO1xuXG4gICAgICAgIGlmIChuZXdTdGF0dXNJc0Vycm9yICE9PSB0aGlzLmNvbnRyb2xJbnZhbGlkKSB7XG4gICAgICAgICAgICB0aGlzLl9jb250cm9sSW52YWxpZCA9IG5ld1N0YXR1c0lzRXJyb3I7XG4gICAgICAgICAgICB0aGlzLnN0YXRlQ2hhbmdlcy5uZXh0KCd1cGRhdGVFcnJvclN0YXRlJyk7XG4gICAgICAgICAgICB0aGlzLl9jZC5tYXJrRm9yQ2hlY2soKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFVzZWQgdG8gY2hhbmdlIHRoZSB2YWx1ZSBvZiBhIGNvbnRyb2wuXG4gICAgICogQHBhcmFtIHZhbHVlIHRoZSB2YWx1ZSB0byBiZSBhcHBsaWVkXG4gICAgICogQHBhcmFtIGVtaXRPbkNoYW5nZSB3aGV0aGVyIHRvIGVtaXQgXCJvbkNoYW5nZVwiIGV2ZW50LlxuICAgICAqIFNob3VsZCBiZSBcImZhbHNlXCIsIGlmIHRoZSBjaGFuZ2UgaXMgbWFkZSBwcm9ncmFtbWF0aWNhbGx5IChpbnRlcm5hbGx5KSBieSB0aGUgY29udHJvbCwgXCJ0cnVlXCIgb3RoZXJ3aXNlXG4gICAgICovXG4gICAgcHJvdGVjdGVkIHNldFZhbHVlKHZhbHVlOiBhbnksIGVtaXRPbkNoYW5nZSA9IHRydWUpOiB2b2lkIHtcbiAgICAgICAgaWYgKHZhbHVlICE9PSB0aGlzLl92YWx1ZSkge1xuICAgICAgICAgICAgdGhpcy53cml0ZVZhbHVlKHZhbHVlKTtcbiAgICAgICAgICAgIGlmIChlbWl0T25DaGFuZ2UpIHtcbiAgICAgICAgICAgICAgICB0aGlzLm9uQ2hhbmdlKHZhbHVlKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHRoaXMuX2NkLm1hcmtGb3JDaGVjaygpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcm90ZWN0ZWQgZ2V0VmFsdWUoKTogYW55IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX3ZhbHVlO1xuICAgIH1cbn1cbiJdfQ==
|
|
350
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzZS5pbnB1dC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvcGxhdGZvcm0vc3JjL2xpYi9zaGFyZWQvZm9ybS9iYXNlLmlucHV0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBZ0IscUJBQXFCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUM1RSxPQUFPLEVBRUgsaUJBQWlCLEVBQ2pCLFNBQVMsRUFFVCxVQUFVLEVBQ1YsSUFBSSxFQUNKLE1BQU0sRUFDTixjQUFjLEVBQ2QsS0FBSyxFQUdMLFFBQVEsRUFDUixJQUFJLEVBQ0osUUFBUSxFQUVSLFNBQVMsRUFDVCxNQUFNLEVBQ04sU0FBUyxFQUNaLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxnQkFBZ0IsRUFBcUMsU0FBUyxFQUFFLE1BQU0sRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRXhHLE9BQU8sRUFBYyxPQUFPLEVBQUUsTUFBTSxFQUFFLFNBQVMsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUU5RCxPQUFPLEVBQ0gsYUFBYSxFQUNiLHFCQUFxQixFQUdyQixtQkFBbUIsRUFDdEIsTUFBTSw0QkFBNEIsQ0FBQztBQUdwQyxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sU0FBUyxDQUFDO0FBQ3hDLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSx3QkFBd0IsRUFBRSxNQUFNLGNBQWMsQ0FBQzs7OztBQUUzRSxNQUFNLENBQUMsTUFBTSxZQUFZLEdBQUcsSUFBSSxjQUFjLENBQW1CLHdCQUF3QixDQUFDLENBQUM7QUFFM0YsSUFBSSxRQUFRLEdBQUcsQ0FBQyxDQUFDO0FBRWpCOzs7Ozs7Ozs7O0dBVUc7QUFFSCxNQUFNLE9BQWdCLFNBQ2xCLFNBQVEsYUFBYTtJQXlCckI7Ozs7O09BS0c7SUFDSCxJQUNJLEtBQUssQ0FBQyxLQUE2QjtRQUNuQyxJQUFJLENBQUMsS0FBSyxJQUFJLG1CQUFtQixDQUFDLEtBQUssQ0FBQyxFQUFF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QUUsVUFBVSxFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQm9vbGVhbklucHV0LCBjb2VyY2VCb29sZWFuUHJvcGVydHkgfSBmcm9tICdAYW5ndWxhci9jZGsvY29lcmNpb24nO1xuaW1wb3J0IHtcbiAgICBBZnRlclZpZXdJbml0LFxuICAgIENoYW5nZURldGVjdG9yUmVmLFxuICAgIERpcmVjdGl2ZSxcbiAgICBEb0NoZWNrLFxuICAgIEVsZW1lbnRSZWYsXG4gICAgSG9zdCxcbiAgICBJbmplY3QsXG4gICAgSW5qZWN0aW9uVG9rZW4sXG4gICAgSW5wdXQsXG4gICAgT25EZXN0cm95LFxuICAgIE9uSW5pdCxcbiAgICBPcHRpb25hbCxcbiAgICBTZWxmLFxuICAgIFNraXBTZWxmLFxuICAgIFRlbXBsYXRlUmVmLFxuICAgIFZpZXdDaGlsZCxcbiAgICBpbmplY3QsXG4gICAgaXNEZXZNb2RlXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29udHJvbENvbnRhaW5lciwgQ29udHJvbFZhbHVlQWNjZXNzb3IsIEZvcm1Db250cm9sLCBOZ0NvbnRyb2wsIE5nRm9ybSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IE51bGxhYmxlIH0gZnJvbSAnQGZ1bmRhbWVudGFsLW5neC9jZGsvdXRpbHMnO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSwgU3ViamVjdCwgZmlsdGVyLCB0YWtlVW50aWwgfSBmcm9tICdyeGpzJztcblxuaW1wb3J0IHtcbiAgICBGRF9GT1JNX0ZJRUxELFxuICAgIEZEX0ZPUk1fRklFTERfQ09OVFJPTCxcbiAgICBGb3JtRmllbGRBZHZhbmNlZFN0YXRlTWVzc2FnZSxcbiAgICBGb3JtU3RhdGVzLFxuICAgIGlzVmFsaWRDb250cm9sU3RhdGVcbn0gZnJvbSAnQGZ1bmRhbWVudGFsLW5neC9jZGsvZm9ybXMnO1xuaW1wb3J0IHsgRm9ybUlucHV0TWVzc2FnZUdyb3VwQ29tcG9uZW50IH0gZnJvbSAnQGZ1bmRhbWVudGFsLW5neC9jb3JlL2Zvcm0nO1xuaW1wb3J0IHsgVHJpZ2dlckNvbmZpZyB9IGZyb20gJ0BmdW5kYW1lbnRhbC1uZ3gvY29yZS9wb3BvdmVyJztcbmltcG9ydCB7IEJhc2VDb21wb25lbnQgfSBmcm9tICcuLi9iYXNlJztcbmltcG9ydCB7IFBsYXRmb3JtRm9ybUZpZWxkLCBQbGF0Zm9ybUZvcm1GaWVsZENvbnRyb2wgfSBmcm9tICcuL2Zvcm0tZmllbGQnO1xuXG5leHBvcnQgY29uc3QgRkRQX0RPX0NIRUNLID0gbmV3IEluamVjdGlvblRva2VuPE9ic2VydmFibGU8dm9pZD4+KCdGZHBJbnB1dERvQ2hlY2tUcmlnZ2VyJyk7XG5cbmxldCByYW5kb21JZCA9IDA7XG5cbi8qKlxuICogQWxsIGZvcm0gY29tcG9uZW50cyBzaGFyZSB0aGUgc2FtZSBpbmZvcm1hdGlvbiAodmFsdWUsIG5hbWUsIHBsYWNlaG9sZGVyLC4uICkgYXMgd2VsbCBhc1xuICogdGhlIHNhbWUgYmVoYXZpb3IgZ2l2ZW4gYnkgQ29udHJvbFZhbHVlQWNjZXNzb3IuXG4gKlxuICogRXZlbiB0aGlzIGlzIG5vdCBpZGVhbCBzb2x1dGlvbiB0aGVyZSBpcyBubyBvdGhlciB3YXkgdGhlbiB1c2UgaW5oZXJpdGFuY2UgdG8gcmV1c2Ugc29tZSBvZiB0aGVcbiAqIGNvbW1vbiBsb2dpYy4gSXQgc2hvdWxkIGJlIHBvc3NpYmxlIHRvIHVzZSBzb21lIGtpbmQgb2YgY29tcG9zaXRpb25zIHdpdGggUHJveGllcyBidXQgc29tZXRoaW5nXG4gKiBzaW1pbGFyIHRoYXQgZXhpc3RzIGluIEFzcGVjdCBPcmllbnRlZCBQcm9ncmFtaW5nLlxuICpcbiAqIFVzdWFsbHkgdHJ5IHRvIGZpcmUgc3RhdGVDaGFuZ2Ugb25seSBmb3IgdGhpbmdzIHRoYXQgY2FuIGNoYW5nZSBkeW5hbWljYWxseSBpbiBydW50aW1lLiBXZSBkb24ndCBleHBlY3RcbiAqIHRoYXQgZS5nLiBwbGFjZWhvbGRlciB3aWxsIGNoYW5nZSBhZnRlciBjb21wb25lbnQgaXMgY3JlYXRlZFxuICovXG5ARGlyZWN0aXZlKClcbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBCYXNlSW5wdXRcbiAgICBleHRlbmRzIEJhc2VDb21wb25lbnRcbiAgICBpbXBsZW1lbnRzIFBsYXRmb3JtRm9ybUZpZWxkQ29udHJvbCwgQ29udHJvbFZhbHVlQWNjZXNzb3IsIE9uSW5pdCwgRG9DaGVjaywgQWZ0ZXJWaWV3SW5pdCwgT25EZXN0cm95XG57XG4gICAgLyoqIElucHV0IHBsYWNlaG9sZGVyICovXG4gICAgQElucHV0KClcbiAgICBwbGFjZWhvbGRlcjogc3RyaW5nO1xuXG4gICAgLyoqXG4gICAgICogVG8gYWxsb3cgdXNlciB0byBkZXRlcm1pbmUgd2hhdCBldmVudCBoZSB3YW50cyB0byB0cmlnZ2VyIHRoZSBtZXNzYWdlcyB0byBzaG93XG4gICAgICogQWNjZXB0cyBhbnkgW0hUTUwgRE9NIEV2ZW50c10oaHR0cHM6Ly93d3cudzNzY2hvb2xzLmNvbS9qc3JlZi9kb21fb2JqX2V2ZW50LmFzcCkuXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICB0cmlnZ2VyczogKHN0cmluZyB8IFRyaWdnZXJDb25maWcpW10gPSBbXG4gICAgICAgIHtcbiAgICAgICAgICAgIHRyaWdnZXI6ICdmb2N1c2luJyxcbiAgICAgICAgICAgIG9wZW5BY3Rpb246IHRydWUsXG4gICAgICAgICAgICBjbG9zZUFjdGlvbjogZmFsc2VcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgICAgdHJpZ2dlcjogJ2ZvY3Vzb3V0JyxcbiAgICAgICAgICAgIG9wZW5BY3Rpb246IGZhbHNlLFxuICAgICAgICAgICAgY2xvc2VBY3Rpb246IHRydWVcbiAgICAgICAgfVxuICAgIF07XG5cbiAgICAvKipcbiAgICAgKiAgVGhlIHN0YXRlIG9mIHRoZSBmb3JtIGNvbnRyb2wgLSBhcHBsaWVzIGNzcyBjbGFzc2VzLlxuICAgICAqICBDYW4gYmUgJ3N1Y2Nlc3MnLCAnZXJyb3InLCAnd2FybmluZycsICdkZWZhdWx0JywgJ2luZm9ybWF0aW9uJy5cbiAgICAgKlxuICAgICAqIEBkZWZhdWx0ICdkZWZhdWx0J1xuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgc2V0IHN0YXRlKHN0YXRlOiBGb3JtU3RhdGVzIHwgdW5kZWZpbmVkKSB7XG4gICAgICAgIGlmICghc3RhdGUgfHwgaXNWYWxpZENvbnRyb2xTdGF0ZShzdGF0ZSkpIHtcbiAgICAgICAgICAgIHRoaXMuX3N0YXRlID0gc3RhdGU7XG4gICAgICAgIH0gZWxzZSBpZiAoaXNEZXZNb2RlKCkpIHtcbiAgICAgICAgICAgIGNvbnNvbGUud2FybihgUHJvdmlkZWQgdmFsdWUgXCIke3N0YXRlfVwiIGlzIG5vdCBhIHZhbGlkIG9wdGlvbiBmb3IgRm9ybVN0YXRlcyB0eXBlYCk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgZ2V0IHN0YXRlKCk6IEZvcm1TdGF0ZXMge1xuICAgICAgICBpZiAodGhpcy5fc3RhdGUpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLl9zdGF0ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICghdGhpcy5jb250cm9sSW52YWxpZCkge1xuICAgICAgICAgICAgcmV0dXJuICdkZWZhdWx0JztcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiB0aGlzLmZvcm1GaWVsZD8uZ2V0UHJpb3JpdHlTdGF0ZSgpIHx8ICdlcnJvcic7XG4gICAgfVxuXG4gICAgLyoqIEhvbGRzIHRoZSBtZXNzYWdlIHdpdGggcmVzcGVjdCB0byBzdGF0ZSAqL1xuICAgIEBJbnB1dCgpXG4gICAgc3RhdGVNZXNzYWdlOiBOdWxsYWJsZTxzdHJpbmc+O1xuXG4gICAgLyoqIEFkdmFuY2VkIGZvcm0gbWVzc2FnZSBjb25maWd1cmF0aW9uLiBVc2VkIGZvciBjb21wb25lbnRzIHRoYXQgY2FuIHJlbmRlciBmb3JtIG1lc3NhZ2VzIGluIGl0cyB0ZW1wbGF0ZS4gKi9cbiAgICBASW5wdXQoKVxuICAgIHN0YXRlTWVzc2FnZUNvbmZpZzogTnVsbGFibGU8VGVtcGxhdGVSZWY8YW55Pj47XG5cbiAgICAvKiogV2hldGhlciB0aGUgaW5wdXQgaXMgZGlzYWJsZWQgKi9cbiAgICBASW5wdXQoKVxuICAgIHNldCBkaXNhYmxlZCh2YWx1ZTogYm9vbGVhbikge1xuICAgICAgICB0aGlzLnNldERpc2FibGVkU3RhdGUodmFsdWUpO1xuICAgIH1cbiAgICBnZXQgZGlzYWJsZWQoKTogYm9vbGVhbiB7XG4gICAgICAgIGlmICh0aGlzLm5nQ29udHJvbCAmJiB0aGlzLm5nQ29udHJvbC5kaXNhYmxlZCAhPT0gbnVsbCkge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMubmdDb250cm9sLmRpc2FibGVkO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB0aGlzLl9kaXNhYmxlZDtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiByZWFkT25seSBWYWx1ZSB0byBNYXJrIGNvbXBvbmVudCByZWFkIG9ubHlcbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIHJlYWRvbmx5OiBib29sZWFuO1xuXG4gICAgLyoqIEJpbmRzIHRvIGNvbnRyb2wgYXJpYS1sYWJlbGxlZEJ5IGF0dHJpYnV0ZSAqL1xuICAgIEBJbnB1dCgpXG4gICAgYXJpYUxhYmVsbGVkQnk6IE51bGxhYmxlPHN0cmluZz47XG5cbiAgICAvKiogU2V0cyBjb250cm9sIGFyaWEtbGFiZWwgYXR0cmlidXRlIHZhbHVlICovXG4gICAgQElucHV0KClcbiAgICBhcmlhTGFiZWw6IE51bGxhYmxlPHN0cmluZz47XG5cbiAgICAvKipcbiAgICAgKiBUZWxsIHRoZSBjb21wb25lbnQgaWYgd2UgYXJlIGluIGVkaXRpbmcgbW9kZS5cbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIHNldCBlZGl0YWJsZSh2YWx1ZTogQm9vbGVhbklucHV0KSB7XG4gICAgICAgIGNvbnN0IG5ld1ZhbCA9IGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eSh2YWx1ZSk7XG4gICAgICAgIGlmICh0aGlzLl9lZGl0YWJsZSAhPT0gbmV3VmFsKSB7XG4gICAgICAgICAgICB0aGlzLl9lZGl0YWJsZSA9IG5ld1ZhbDtcbiAgICAgICAgICAgIHRoaXMuX2NkLm1hcmtGb3JDaGVjaygpO1xuICAgICAgICAgICAgdGhpcy5zdGF0ZUNoYW5nZXMubmV4dCgnZWRpdGFibGUnKTtcbiAgICAgICAgfVxuICAgIH1cbiAgICBnZXQgZWRpdGFibGUoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLl9lZGl0YWJsZTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBSZWZlcmVuY2UgdG8gaW50ZXJuYWwgSW5wdXQgZWxlbWVudFxuICAgICAqL1xuICAgIEBWaWV3Q2hpbGQoJ2lucHV0RWxlbWVudFJlZicsIHsgc3RhdGljOiB0cnVlLCByZWFkOiBFbGVtZW50UmVmIH0pXG4gICAgcHJvdGVjdGVkIF9lbGVtZW50UmVmOiBFbGVtZW50UmVmO1xuXG4gICAgLyoqXG4gICAgICogbmVlZCB0byBtYWtlICB0aGVzZSB2YWx1ZSBhY2Nlc3NvciBhcyBhYnN0cmFjdCB0byBiZSBpbXBsZW1lbnRlZCBieSBzdWJjbGFzc2VzLiBIYXZpbmcgdGhlbVxuICAgICAqIGluIHN1cGVyY2xhc3MgaGF2ZSBpc3N1ZSBnZXR0aW5nIHJlZmVyZW5jZSB0byB0aGVtIHdpdGggT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvblxuICAgICAqIHdoaWNoIHdlIG5lZWQgdG8gcHJvZ3JhbW1hdGljYWxseSB3cmFwcyBjb21wb25lbnRzIHNldC9nZXQgdmFsdWVcbiAgICAgKlxuICAgICAqL1xuICAgIGFic3RyYWN0IGdldCB2YWx1ZSgpOiBhbnk7XG5cbiAgICBhYnN0cmFjdCBzZXQgdmFsdWUodmFsdWU6IGFueSk7XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIGZvcm1NZXNzYWdlOiBGb3JtSW5wdXRNZXNzYWdlR3JvdXBDb21wb25lbnQ7XG5cbiAgICAvKipcbiAgICAgKiBTZWUgQEZvcm1GaWVsZENvbnRyb2xcbiAgICAgKi9cbiAgICBmb2N1c2VkID0gZmFsc2U7XG5cbiAgICAvKiogc2V0IHdoZW4gaW5wdXQgZmllbGQgaXMgbWFuZGF0b3J5IGZvcm0gZmllbGQgKi9cbiAgICByZXF1aXJlZDogYm9vbGVhbjtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgaW5uZXJFcnJvcnNUZW1wbGF0ZT86IFRlbXBsYXRlUmVmPGFueT47XG5cbiAgICAvKiogV2hldGhlciBjb250cm9sIGhhcyBlcnJvcnMgKi9cbiAgICBnZXQgY29udHJvbEludmFsaWQoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLl9jb250cm9sSW52YWxpZDtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIGFkdmFuY2VkU3RhdGVNZXNzYWdlOiBOdWxsYWJsZTxGb3JtRmllbGRBZHZhbmNlZFN0YXRlTWVzc2FnZT47XG5cbiAgICAvKipcbiAgICAgKiBTZWUgQEZvcm1GaWVsZENvbnRyb2xcbiAgICAgKi9cbiAgICByZWFkb25seSBzdGF0ZUNoYW5nZXM6IFN1YmplY3Q8YW55PiA9IG5ldyBTdWJqZWN0PGFueT4oKTtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcmVhZG9ubHkgZm9ybUZpZWxkOiBQbGF0Zm9ybUZvcm1GaWVsZCB8IG51bGwgPSBudWxsO1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICByZWFkb25seSBfZG9DaGVjayQgPSBpbmplY3QoRkRQX0RPX0NIRUNLLCB7IG9wdGlvbmFsOiB0cnVlIH0pO1xuXG4gICAgLyoqXG4gICAgICogQGhpZGRlblxuICAgICAqIFRoZSBzdGF0ZSBvZiB0aGUgZm9ybSBjb250cm9sIC0gYXBwbGllcyBjc3MgY2xhc3Nlcy5cbiAgICAgKiBDYW4gYmUgYHN1Y2Nlc3NgLCBgZXJyb3JgLCBgd2FybmluZ2AsIGBpbmZvcm1hdGlvbmAgb3IgJ2RlZmF1bHQnXG4gICAgICovXG4gICAgcHJvdGVjdGVkIF9zdGF0ZTogRm9ybVN0YXRlcyB8IHVuZGVmaW5lZDtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJvdGVjdGVkIGRlZmF1bHRJZCA9IGBmZHAtaW5wdXQtaWQtJHtyYW5kb21JZCsrfWA7XG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcm90ZWN0ZWQgX2Rpc2FibGVkOiBib29sZWFuO1xuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJvdGVjdGVkIF92YWx1ZTogYW55O1xuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJvdGVjdGVkIF9lZGl0YWJsZSA9IHRydWU7XG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcm90ZWN0ZWQgX2Rlc3Ryb3llZCA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XG5cbiAgICAvKipcbiAgICAgKiBAaGlkZGVuXG4gICAgICovXG4gICAgcHJpdmF0ZSBfY29udHJvbEludmFsaWQgPSBmYWxzZTtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJvdGVjdGVkIGNvbnN0cnVjdG9yKFxuICAgICAgICBjZDogQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgICAgIHJlYWRvbmx5IGVsZW1lbnRSZWY6IEVsZW1lbnRSZWYsXG4gICAgICAgIEBPcHRpb25hbCgpIEBTZWxmKCkgcmVhZG9ubHkgbmdDb250cm9sOiBOZ0NvbnRyb2wsXG4gICAgICAgIEBPcHRpb25hbCgpIEBTa2lwU2VsZigpIHJlYWRvbmx5IGNvbnRyb2xDb250YWluZXI6IENvbnRyb2xDb250YWluZXIsXG4gICAgICAgIEBPcHRpb25hbCgpIEBTa2lwU2VsZigpIHJlYWRvbmx5IG5nRm9ybTogTmdGb3JtLFxuICAgICAgICBAT3B0aW9uYWwoKSBAU2tpcFNlbGYoKSBASG9zdCgpIEBJbmplY3QoRkRfRk9STV9GSUVMRCkgZm9ybUZpZWxkOiBQbGF0Zm9ybUZvcm1GaWVsZCxcbiAgICAgICAgQE9wdGlvbmFsKCkgQFNraXBTZWxmKCkgQEhvc3QoKSBASW5qZWN0KEZEX0ZPUk1fRklFTERfQ09OVFJPTCkgZm9ybUNvbnRyb2w6IFBsYXRmb3JtRm9ybUZpZWxkQ29udHJvbFxuICAgICkge1xuICAgICAgICAvKipcbiAgICAgICAgICogV2UgZG8gbm90IHVzZSBJbmplY3Rvci5nZXQoKSBhcHByb2FjaCBoZXJlIGJlY2F1c2UgdGhlcmUgaXMgYSBidWdcbiAgICAgICAgICogd2l0aCB0aGlzIHNpZ25hdHVyZSBodHRwczovL2dpdGh1Yi5jb20vYW5ndWxhci9hbmd1bGFyL2lzc3Vlcy8zMTc3NlxuICAgICAgICAgKiB3aGVyZSBcImdldCgpXCIgbWV0aG9kIGRvZXNuJ3QgdGFrZSBpbnRvIGFjY291bnQgXCJmbGFnXCIgb3B0aW9uXCJcbiAgICAgICAgICpcbiAgICAgICAgICovXG4gICAgICAgIHN1cGVyKGNkKTtcblxuICAgICAgICBpZiAodGhpcy5uZ0NvbnRyb2wpIHtcbiAgICAgICAgICAgIHRoaXMubmdDb250cm9sLnZhbHVlQWNjZXNzb3IgPSB0aGlzO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gV2UgaGF2ZSB0byBpZ25vcmUgXCJmb3JtRmllbGRcIiBpZiB0aGVyZSBpcyBcImZvcm1Db250cm9sXCIgd3JhcHBlclxuICAgICAgICB0aGlzLmZvcm1GaWVsZCA9IGZvcm1GaWVsZCAmJiAhZm9ybUNvbnRyb2wgPyBmb3JtRmllbGQgOiBudWxsO1xuXG4gICAgICAgIHRoaXMuX2RvQ2hlY2skPy5waXBlKHRha2VVbnRpbCh0aGlzLl9kZXN0cm95ZWQpKS5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICAgICAgdGhpcy5uZ0RvQ2hlY2soKTtcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBvbkNoYW5nZTogKHZhbHVlOiBhbnkpID0+IHZvaWQgPSAoKSA9PiB7fTtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgb25Ub3VjaGVkID0gKCk6IHZvaWQgPT4ge307XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIG5nT25Jbml0KCk6IHZvaWQge1xuICAgICAgICBpZiAodGhpcy5mb3JtRmllbGQpIHtcbiAgICAgICAgICAgIHRoaXMuZm9ybUZpZWxkLnJlZ2lzdGVyRm9ybUZpZWxkQ29udHJvbCh0aGlzKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFJlLXZhbGlkYXRlIGFuZCBlbWl0IGV2ZW50IHRvIHBhcmVudCBjb250YWluZXIgb24gZXZlcnkgQ0QgY3ljbGUgYXMgdGhleSBhcmUgc29tZSBlcnJvcnNcbiAgICAgKiB0aGF0IHdlIGNhbid0IHN1YnNjcmliZSB0by5cbiAgICAgKi9cbiAgICBuZ0RvQ2hlY2soKTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLm5nQ29udHJvbCkge1xuICAgICAgICAgICAgdGhpcy51cGRhdGVFcnJvclN0YXRlKCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcbiAgICAgICAgaWYgKHRoaXMubmdDb250cm9sKSB7XG4gICAgICAgICAgICB0aGlzLl9zdWJzY3JpcHRpb25zLmFkZChcbiAgICAgICAgICAgICAgICB0aGlzLm5nQ29udHJvbC5zdGF0dXNDaGFuZ2VzPy5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLm1hcmtGb3JDaGVjaygpO1xuICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICApO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgbGFiZWxBbmRIZWxwSWQgPSBgZmRwLWZvcm0tbGFiZWwtY29udGVudC0ke3RoaXMuaWR9YDtcbiAgICAgICAgLy8gaWYgbm90IHNwZWNpZmllZCwgYXNzb2NpYXRlIGxhYmVsIGFuZCBpbmxpbmUgaGVscCBpZHMgd2l0aCB0aGUgaW5wdXQsXG4gICAgICAgIC8vIGVsc2UgYWRkIHRoZXNlIGlkcyB0byB0aGUgc3BlY2lmaWVkIG9uZXNcbiAgICAgICAgaWYgKHRoaXMuZm9ybUZpZWxkKSB7XG4gICAgICAgICAgICBpZiAoIXRoaXMuYXJpYUxhYmVsbGVkQnkpIHtcbiAgICAgICAgICAgICAgICB0aGlzLmFyaWFMYWJlbGxlZEJ5ID0gbGFiZWxBbmRIZWxwSWQ7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHRoaXMuYXJpYUxhYmVsbGVkQnkgKz0gJyAnICsgbGFiZWxBbmRIZWxwSWQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLmlubmVyRXJyb3JzVGVtcGxhdGUgPSB0aGlzLmZvcm1GaWVsZD8uaW5uZXJFcnJvclJlbmRlcmVycztcblxuICAgICAgICB0aGlzLnN0YXRlQ2hhbmdlc1xuICAgICAgICAgICAgLnBpcGUoXG4gICAgICAgICAgICAgICAgZmlsdGVyKCgpID0+ICEhdGhpcy5mb3JtRmllbGQpLFxuICAgICAgICAgICAgICAgIHRha2VVbnRpbCh0aGlzLl9kZXN0cm95ZWQpXG4gICAgICAgICAgICApXG4gICAgICAgICAgICAuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLmFkdmFuY2VkU3RhdGVNZXNzYWdlID0ge1xuICAgICAgICAgICAgICAgICAgICB0ZW1wbGF0ZTogdGhpcy5mb3JtRmllbGQhLmlubmVyRXJyb3JSZW5kZXJlcnMsXG4gICAgICAgICAgICAgICAgICAgIGhhc0Vycm9yczogdGhpcy5mb3JtRmllbGQhLmhhc0Vycm9ycygpXG4gICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgICAgICB0aGlzLl9jZC5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgICAgICAgICB9KTtcblxuICAgICAgICB0aGlzLl9jZC5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICByZWdpc3Rlck9uQ2hhbmdlKGZuOiAoXzogYW55KSA9PiB2b2lkKTogdm9pZCB7XG4gICAgICAgIHRoaXMub25DaGFuZ2UgPSBmbjtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHJlZ2lzdGVyT25Ub3VjaGVkKGZuOiAoKSA9PiB2b2lkKTogdm9pZCB7XG4gICAgICAgIHRoaXMub25Ub3VjaGVkID0gZm47XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICAgICAgc3VwZXIubmdPbkRlc3Ryb3koKTtcbiAgICAgICAgdGhpcy5zdGF0ZUNoYW5nZXMuY29tcGxldGUoKTtcbiAgICAgICAgdGhpcy5fZGVzdHJveWVkLm5leHQoKTtcbiAgICAgICAgdGhpcy5fZGVzdHJveWVkLmNvbXBsZXRlKCk7XG4gICAgICAgIGlmICh0aGlzLmZvcm1GaWVsZCkge1xuICAgICAgICAgICAgdGhpcy5mb3JtRmllbGQudW5yZWdpc3RlckZvcm1GaWVsZENvbnRyb2wodGhpcyk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHNldERpc2FibGVkU3RhdGUoaXNEaXNhYmxlZDogQm9vbGVhbklucHV0KTogdm9pZCB7XG4gICAgICAgIGNvbnN0IG5ld1N0YXRlID0gY29lcmNlQm9vbGVhblByb3BlcnR5KGlzRGlzYWJsZWQpO1xuICAgICAgICB0aGlzLl9jZC5tYXJrRm9yQ2hlY2soKTtcbiAgICAgICAgaWYgKG5ld1N0YXRlICE9PSB0aGlzLl9kaXNhYmxlZCkge1xuICAgICAgICAgICAgdGhpcy5fZGlzYWJsZWQgPSBuZXdTdGF0ZTtcbiAgICAgICAgICAgIHRoaXMuc3RhdGVDaGFuZ2VzLm5leHQoJ3NldERpc2FibGVkU3RhdGUnKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEVhY2ggc3ViIGNsYXNzIG11c3Qgb3ZlcnJpZGUgdGhpcyBtZXRob2QgYXMgaW5oZXJpdGFuY2UgZG9lcyBub3Qgd29ya1xuICAgICAqL1xuICAgIHdyaXRlVmFsdWUodmFsdWU6IGFueSk6IHZvaWQge1xuICAgICAgICB0aGlzLl92YWx1ZSA9IHZhbHVlO1xuICAgICAgICB0aGlzLnN0YXRlQ2hhbmdlcy5uZXh0KCd3cml0ZVZhbHVlJyk7XG4gICAgICAgIHRoaXMuX2NkLm1hcmtGb3JDaGVjaygpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqXG4gICAgICogS2VlcHMgdHJhY2sgb2YgZWxlbWVudCBmb2N1c1xuICAgICAqL1xuICAgIF9vbkZvY3VzQ2hhbmdlZChpc0ZvY3VzZWQ6IGJvb2xlYW4pOiB2b2lkIHtcbiAgICAgICAgaWYgKGlzRm9jdXNlZCAhPT0gdGhpcy5mb2N1c2VkICYmICghdGhpcy5kaXNhYmxlZCB8fCAhaXNGb2N1c2VkKSkge1xuICAgICAgICAgICAgdGhpcy5mb2N1c2VkID0gaXNGb2N1c2VkO1xuICAgICAgICAgICAgdGhpcy5zdGF0ZUNoYW5nZXMubmV4dCgnX29uRm9jdXNDaGFuZ2VkJyk7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoIWlzRm9jdXNlZCkge1xuICAgICAgICAgICAgdGhpcy5vblRvdWNoZWQoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEhhbmRsZXMgZXZlbiB3aGVuIHdlIGNsaWNrIG9uIHBhcmVudCBjb250YWluZXIgd2hpY2ggaXMgdGhlIEZvcm1GaWVsZCBXcmFwcGluZyB0aGlzXG4gICAgICogY29udHJvbFxuICAgICAqL1xuICAgIG9uQ29udGFpbmVyQ2xpY2soZXZlbnQ6IE1vdXNlRXZlbnQpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5mb2N1cyhldmVudCk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogSW4gbW9zdCBvZiB0aGUgY2FzZXMgd2hlbiB3b3JraW5nIHdpdGggaW5wdXQgZWxlbWVudCBkaXJlY3RseSB5b3Ugc2hvdWxkIGJlIGp1c3QgZmluZCB0byBhc3NpbmdcbiAgICAgKiB2YXJpYWJsZSB0byB0aGlzIGVsZW1lbnRcbiAgICAgKlxuICAgICAqIGBgYFxuICAgICAqIDxpbnB1dCAjaW5wdXRFbGVtZW50UmVmIGZkLWZvcm0tY29udHJvbCAuLi4+XG4gICAgICogYGBgXG4gICAgICpcbiAgICAgKiBhbmQgdGhpcyBkZWZhdWx0IGJlaGF2aW9yIHVzZWQuIEZvciBvdGhlciBjYXNlcyBpbXBsZW1lbnQgZm9jdXMuXG4gICAgICpcbiAgICAgKi9cbiAgICBmb2N1cyhldmVudD86IE1vdXNlRXZlbnQpOiB2b2lkIHtcbiAgICAgICAgaWYgKHRoaXMuX2VsZW1lbnRSZWYgJiYgIXRoaXMuZm9jdXNlZCkge1xuICAgICAgICAgICAgdGhpcy5fZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LmZvY3VzKGV2ZW50KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqICBOZWVkIHJlLXZhbGlkYXRlcyBlcnJvcnMgb24gZXZlcnkgQ0QgaXRlcmF0aW9uIHRvIG1ha2Ugc3VyZSB3ZSBhcmUgYWxzb1xuICAgICAqICBjb3ZlcmluZyBub24tY29udHJvbCBlcnJvcnMsIGVycm9ycyB0aGF0IGhhcHBlbnMgb3V0c2lkZSBvZiB0aGlzIGNvbnRyb2xcbiAgICAgKi9cbiAgICBwcm90ZWN0ZWQgdXBkYXRlRXJyb3JTdGF0ZSgpOiB2b2lkIHtcbiAgICAgICAgY29uc3QgcGFyZW50ID0gdGhpcy5uZ0Zvcm07XG4gICAgICAgIGNvbnN0IHBhcmVudENvbnRyb2xDb250YWluZXIgPSB0aGlzLmNvbnRyb2xDb250YWluZXI7XG4gICAgICAgIGNvbnN0IGNvbnRyb2wgPSB0aGlzLm5nQ29udHJvbCA/ICh0aGlzLm5nQ29udHJvbC5jb250cm9sIGFzIEZvcm1Db250cm9sKSA6IG51bGw7XG4gICAgICAgIGNvbnN0IG5ld1N0YXR1c0lzRXJyb3IgPSAhIShcbiAgICAgICAgICAgIGNvbnRyb2w/LmludmFsaWQgJiZcbiAgICAgICAgICAgIChjb250cm9sLmRpcnR5IHx8IGNvbnRyb2wudG91Y2hlZCB8fCBwYXJlbnQ/LnN1Ym1pdHRlZCB8fCAocGFyZW50Q29udHJvbENvbnRhaW5lciBhcyBhbnkpPy5zdWJtaXR0ZWQpXG4gICAgICAgICk7XG5cbiAgICAgICAgaWYgKG5ld1N0YXR1c0lzRXJyb3IgIT09IHRoaXMuY29udHJvbEludmFsaWQpIHtcbiAgICAgICAgICAgIHRoaXMuX2NvbnRyb2xJbnZhbGlkID0gbmV3U3RhdHVzSXNFcnJvcjtcbiAgICAgICAgICAgIHRoaXMuc3RhdGVDaGFuZ2VzLm5leHQoJ3VwZGF0ZUVycm9yU3RhdGUnKTtcbiAgICAgICAgICAgIHRoaXMuX2NkLm1hcmtGb3JDaGVjaygpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogVXNlZCB0byBjaGFuZ2UgdGhlIHZhbHVlIG9mIGEgY29udHJvbC5cbiAgICAgKiBAcGFyYW0gdmFsdWUgdGhlIHZhbHVlIHRvIGJlIGFwcGxpZWRcbiAgICAgKiBAcGFyYW0gZW1pdE9uQ2hhbmdlIHdoZXRoZXIgdG8gZW1pdCBcIm9uQ2hhbmdlXCIgZXZlbnQuXG4gICAgICogU2hvdWxkIGJlIFwiZmFsc2VcIiwgaWYgdGhlIGNoYW5nZSBpcyBtYWRlIHByb2dyYW1tYXRpY2FsbHkgKGludGVybmFsbHkpIGJ5IHRoZSBjb250cm9sLCBcInRydWVcIiBvdGhlcndpc2VcbiAgICAgKi9cbiAgICBwcm90ZWN0ZWQgc2V0VmFsdWUodmFsdWU6IGFueSwgZW1pdE9uQ2hhbmdlID0gdHJ1ZSk6IHZvaWQge1xuICAgICAgICBpZiAodmFsdWUgIT09IHRoaXMuX3ZhbHVlKSB7XG4gICAgICAgICAgICB0aGlzLndyaXRlVmFsdWUodmFsdWUpO1xuICAgICAgICAgICAgaWYgKGVtaXRPbkNoYW5nZSkge1xuICAgICAgICAgICAgICAgIHRoaXMub25DaGFuZ2UodmFsdWUpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgdGhpcy5fY2QubWFya0ZvckNoZWNrKCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByb3RlY3RlZCBnZXRWYWx1ZSgpOiBhbnkge1xuICAgICAgICByZXR1cm4gdGhpcy5fdmFsdWU7XG4gICAgfVxufVxuIl19
|
package/esm2022/table/components/table-header-cell-content/table-header-cell-content.component.mjs
CHANGED
|
@@ -14,11 +14,11 @@ export class TableHeaderCellContentComponent {
|
|
|
14
14
|
this.SORT_DIRECTION = SortDirection;
|
|
15
15
|
}
|
|
16
16
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.7", ngImport: i0, type: TableHeaderCellContentComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
17
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.7", type: TableHeaderCellContentComponent, isStandalone: true, selector: "fdp-table-header-cell-content", inputs: { id: "id", column: "column", hasSorting: "hasSorting", hasFilter: "hasFilter", sorting: "sorting" }, ngImport: i0, template: "<div class=\"fd-table__text--no-wrap\" [class.fd-table__inner]=\"hasSorting || hasFilter\">\n <ng-container *ngTemplateOutlet=\"tableHeaderCellContentTemplate; context: { column: column }\"></ng-container>\n\n <div class=\"fd-table__column-header-icons\" *ngIf=\"hasSorting || hasFilter\">\n <fd-icon *ngIf=\"hasFilter\" fd-table-icon glyph=\"filter\"></fd-icon>\n\n <fd-icon\n *ngIf=\"hasSorting\"\n fd-table-icon\n [glyph]=\"sorting?.direction === SORT_DIRECTION.ASC ? 'sort-ascending' : 'sort-descending'\"\n ></fd-icon>\n </div>\n</div>\n\n<ng-content></ng-content>\n\n<ng-template #tableHeaderCellContentTemplate let-column=\"column\">\n <ng-container *ngIf=\"column?.headerCellTemplate; else defaultHeaderCellTemplate\">\n <ng-template\n [ngTemplateOutlet]=\"column.headerCellTemplate\"\n [ngTemplateOutletContext]=\"{ $implicit: column }\"\n ></ng-template>\n </ng-container>\n\n <ng-template #defaultHeaderCellTemplate>\n <span [id]=\"id + '-header-cell-' + column?.name\" class=\"fd-table__cell--truncate-txt\">\n {{ column?.label }}\n </span>\n </ng-template>\n</ng-template>\n", styles: ["fdp-table-header-cell-content{display:flex;align-items:center;justify-content:space-between;flex-grow:0}fdp-table-header-cell-content .fd-table__text--no-wrap{width:100%}\n"], dependencies: [{ kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: IconComponent, selector: "fd-icon", inputs: ["glyph", "font", "color", "background", "class", "ariaLabel", "ariaHidden"] }, { kind: "directive", type: TableIconDirective, selector: "[fdTableIcon], [fd-table-icon]", inputs: ["class", "glyph", "navigation"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
|
|
17
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.7", type: TableHeaderCellContentComponent, isStandalone: true, selector: "fdp-table-header-cell-content", inputs: { id: "id", column: "column", hasSorting: "hasSorting", hasFilter: "hasFilter", sorting: "sorting" }, ngImport: i0, template: "<div class=\"fd-table__text--no-wrap\" [class.fd-table__inner]=\"hasSorting || hasFilter\">\n <ng-container *ngTemplateOutlet=\"tableHeaderCellContentTemplate; context: { column: column }\"></ng-container>\n\n <div class=\"fd-table__column-header-icons\" *ngIf=\"hasSorting || hasFilter\">\n <fd-icon *ngIf=\"hasFilter\" fd-table-icon glyph=\"filter\"></fd-icon>\n\n <fd-icon\n *ngIf=\"hasSorting\"\n fd-table-icon\n [ariaHidden]=\"true\"\n [glyph]=\"sorting?.direction === SORT_DIRECTION.ASC ? 'sort-ascending' : 'sort-descending'\"\n ></fd-icon>\n </div>\n</div>\n\n<ng-content></ng-content>\n\n<ng-template #tableHeaderCellContentTemplate let-column=\"column\">\n <ng-container *ngIf=\"column?.headerCellTemplate; else defaultHeaderCellTemplate\">\n <ng-template\n [ngTemplateOutlet]=\"column.headerCellTemplate\"\n [ngTemplateOutletContext]=\"{ $implicit: column }\"\n ></ng-template>\n </ng-container>\n\n <ng-template #defaultHeaderCellTemplate>\n <span [id]=\"id + '-header-cell-' + column?.name\" class=\"fd-table__cell--truncate-txt\">\n {{ column?.label }}\n </span>\n </ng-template>\n</ng-template>\n", styles: ["fdp-table-header-cell-content{display:flex;align-items:center;justify-content:space-between;flex-grow:0}fdp-table-header-cell-content .fd-table__text--no-wrap{width:100%}\n"], dependencies: [{ kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: IconComponent, selector: "fd-icon", inputs: ["glyph", "font", "color", "background", "class", "ariaLabel", "ariaHidden"] }, { kind: "directive", type: TableIconDirective, selector: "[fdTableIcon], [fd-table-icon]", inputs: ["class", "glyph", "navigation"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
|
|
18
18
|
}
|
|
19
19
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.7", ngImport: i0, type: TableHeaderCellContentComponent, decorators: [{
|
|
20
20
|
type: Component,
|
|
21
|
-
args: [{ selector: 'fdp-table-header-cell-content', encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [NgTemplateOutlet, NgIf, IconComponent, TableIconDirective], template: "<div class=\"fd-table__text--no-wrap\" [class.fd-table__inner]=\"hasSorting || hasFilter\">\n <ng-container *ngTemplateOutlet=\"tableHeaderCellContentTemplate; context: { column: column }\"></ng-container>\n\n <div class=\"fd-table__column-header-icons\" *ngIf=\"hasSorting || hasFilter\">\n <fd-icon *ngIf=\"hasFilter\" fd-table-icon glyph=\"filter\"></fd-icon>\n\n <fd-icon\n *ngIf=\"hasSorting\"\n fd-table-icon\n [glyph]=\"sorting?.direction === SORT_DIRECTION.ASC ? 'sort-ascending' : 'sort-descending'\"\n ></fd-icon>\n </div>\n</div>\n\n<ng-content></ng-content>\n\n<ng-template #tableHeaderCellContentTemplate let-column=\"column\">\n <ng-container *ngIf=\"column?.headerCellTemplate; else defaultHeaderCellTemplate\">\n <ng-template\n [ngTemplateOutlet]=\"column.headerCellTemplate\"\n [ngTemplateOutletContext]=\"{ $implicit: column }\"\n ></ng-template>\n </ng-container>\n\n <ng-template #defaultHeaderCellTemplate>\n <span [id]=\"id + '-header-cell-' + column?.name\" class=\"fd-table__cell--truncate-txt\">\n {{ column?.label }}\n </span>\n </ng-template>\n</ng-template>\n", styles: ["fdp-table-header-cell-content{display:flex;align-items:center;justify-content:space-between;flex-grow:0}fdp-table-header-cell-content .fd-table__text--no-wrap{width:100%}\n"] }]
|
|
21
|
+
args: [{ selector: 'fdp-table-header-cell-content', encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [NgTemplateOutlet, NgIf, IconComponent, TableIconDirective], template: "<div class=\"fd-table__text--no-wrap\" [class.fd-table__inner]=\"hasSorting || hasFilter\">\n <ng-container *ngTemplateOutlet=\"tableHeaderCellContentTemplate; context: { column: column }\"></ng-container>\n\n <div class=\"fd-table__column-header-icons\" *ngIf=\"hasSorting || hasFilter\">\n <fd-icon *ngIf=\"hasFilter\" fd-table-icon glyph=\"filter\"></fd-icon>\n\n <fd-icon\n *ngIf=\"hasSorting\"\n fd-table-icon\n [ariaHidden]=\"true\"\n [glyph]=\"sorting?.direction === SORT_DIRECTION.ASC ? 'sort-ascending' : 'sort-descending'\"\n ></fd-icon>\n </div>\n</div>\n\n<ng-content></ng-content>\n\n<ng-template #tableHeaderCellContentTemplate let-column=\"column\">\n <ng-container *ngIf=\"column?.headerCellTemplate; else defaultHeaderCellTemplate\">\n <ng-template\n [ngTemplateOutlet]=\"column.headerCellTemplate\"\n [ngTemplateOutletContext]=\"{ $implicit: column }\"\n ></ng-template>\n </ng-container>\n\n <ng-template #defaultHeaderCellTemplate>\n <span [id]=\"id + '-header-cell-' + column?.name\" class=\"fd-table__cell--truncate-txt\">\n {{ column?.label }}\n </span>\n </ng-template>\n</ng-template>\n", styles: ["fdp-table-header-cell-content{display:flex;align-items:center;justify-content:space-between;flex-grow:0}fdp-table-header-cell-content .fd-table__text--no-wrap{width:100%}\n"] }]
|
|
22
22
|
}], propDecorators: { id: [{
|
|
23
23
|
type: Input
|
|
24
24
|
}], column: [{
|
|
@@ -30,4 +30,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.7", ngImpor
|
|
|
30
30
|
}], sorting: [{
|
|
31
31
|
type: Input
|
|
32
32
|
}] } });
|
|
33
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
33
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGUtaGVhZGVyLWNlbGwtY29udGVudC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3BsYXRmb3JtL3NyYy9saWIvdGFibGUvY29tcG9uZW50cy90YWJsZS1oZWFkZXItY2VsbC1jb250ZW50L3RhYmxlLWhlYWRlci1jZWxsLWNvbnRlbnQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9wbGF0Zm9ybS9zcmMvbGliL3RhYmxlL2NvbXBvbmVudHMvdGFibGUtaGVhZGVyLWNlbGwtY29udGVudC90YWJsZS1oZWFkZXItY2VsbC1jb250ZW50LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxJQUFJLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUN6RCxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUU3RixPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDM0QsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFDakUsT0FBTyxFQUFrQixhQUFhLEVBQUUsV0FBVyxFQUFFLE1BQU0seUNBQXlDLENBQUM7O0FBdUJyRyxNQUFNLE9BQU8sK0JBQStCO0lBckI1QztRQThCSSwwQ0FBMEM7UUFFMUMsZUFBVSxHQUFHLEtBQUssQ0FBQztRQUVuQiw0Q0FBNEM7UUFFNUMsY0FBUyxHQUFHLEtBQUssQ0FBQztRQU1sQixjQUFjO1FBQ0wsbUJBQWMsR0FBRyxhQUFhLENBQUM7S0FDM0M7OEdBdkJZLCtCQUErQjtrR0FBL0IsK0JBQStCLHVNQzVCNUMsNHVDQStCQSxzT0RMYyxnQkFBZ0Isb0pBQUUsSUFBSSw2RkFBRSxhQUFhLDBJQUFFLGtCQUFrQjs7MkZBRTFELCtCQUErQjtrQkFyQjNDLFNBQVM7K0JBQ0ksK0JBQStCLGlCQUUxQixpQkFBaUIsQ0FBQyxJQUFJLG1CQUNwQix1QkFBdUIsQ0FBQyxNQUFNLGNBY25DLElBQUksV0FDUCxDQUFDLGdCQUFnQixFQUFFLElBQUksRUFBRSxhQUFhLEVBQUUsa0JBQWtCLENBQUM7OEJBS3BFLEVBQUU7c0JBREQsS0FBSztnQkFLTixNQUFNO3NCQURMLEtBQUs7Z0JBS04sVUFBVTtzQkFEVCxLQUFLO2dCQUtOLFNBQVM7c0JBRFIsS0FBSztnQkFLTixPQUFPO3NCQUROLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBOZ0lmLCBOZ1RlbXBsYXRlT3V0bGV0IH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIElucHV0LCBWaWV3RW5jYXBzdWxhdGlvbiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTnVsbGFibGUgfSBmcm9tICdAZnVuZGFtZW50YWwtbmd4L2Nkay91dGlscyc7XG5pbXBvcnQgeyBJY29uQ29tcG9uZW50IH0gZnJvbSAnQGZ1bmRhbWVudGFsLW5neC9jb3JlL2ljb24nO1xuaW1wb3J0IHsgVGFibGVJY29uRGlyZWN0aXZlIH0gZnJvbSAnQGZ1bmRhbWVudGFsLW5neC9jb3JlL3RhYmxlJztcbmltcG9ydCB7IENvbGxlY3Rpb25Tb3J0LCBTb3J0RGlyZWN0aW9uLCBUYWJsZUNvbHVtbiB9IGZyb20gJ0BmdW5kYW1lbnRhbC1uZ3gvcGxhdGZvcm0vdGFibGUtaGVscGVycyc7XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnZmRwLXRhYmxlLWhlYWRlci1jZWxsLWNvbnRlbnQnLFxuICAgIHRlbXBsYXRlVXJsOiAnLi90YWJsZS1oZWFkZXItY2VsbC1jb250ZW50LmNvbXBvbmVudC5odG1sJyxcbiAgICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICAgIHN0eWxlczogW1xuICAgICAgICBgXG4gICAgICAgICAgICBmZHAtdGFibGUtaGVhZGVyLWNlbGwtY29udGVudCB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgICAgICAgICBmbGV4LWdyb3c6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBmZHAtdGFibGUtaGVhZGVyLWNlbGwtY29udGVudCAuZmQtdGFibGVfX3RleHQtLW5vLXdyYXAge1xuICAgICAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgfVxuICAgICAgICBgXG4gICAgXSxcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxuICAgIGltcG9ydHM6IFtOZ1RlbXBsYXRlT3V0bGV0LCBOZ0lmLCBJY29uQ29tcG9uZW50LCBUYWJsZUljb25EaXJlY3RpdmVdXG59KVxuZXhwb3J0IGNsYXNzIFRhYmxlSGVhZGVyQ2VsbENvbnRlbnRDb21wb25lbnQge1xuICAgIC8qKiBUYWJsZSBJZCAqL1xuICAgIEBJbnB1dCgpXG4gICAgaWQ6IHN0cmluZztcblxuICAgIC8qKiBDb2x1bW4gcmVmZXJlbmNlLiAqL1xuICAgIEBJbnB1dCgpXG4gICAgY29sdW1uOiBUYWJsZUNvbHVtbjtcblxuICAgIC8qKiBXaGV0aGVyIGNvbHVtbiBoYXMgYXBwbGllZCBzb3J0aW5nLiAqL1xuICAgIEBJbnB1dCgpXG4gICAgaGFzU29ydGluZyA9IGZhbHNlO1xuXG4gICAgLyoqIFdoZXRoZXIgY29sdW1uIGhhcyBhcHBsaWVkIGZpbHRlcmluZy4gKi9cbiAgICBASW5wdXQoKVxuICAgIGhhc0ZpbHRlciA9IGZhbHNlO1xuXG4gICAgLyoqIEFwcGxpZWQgc29ydGluZy4gKi9cbiAgICBASW5wdXQoKVxuICAgIHNvcnRpbmc6IE51bGxhYmxlPENvbGxlY3Rpb25Tb3J0PjtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcmVhZG9ubHkgU09SVF9ESVJFQ1RJT04gPSBTb3J0RGlyZWN0aW9uO1xufVxuIiwiPGRpdiBjbGFzcz1cImZkLXRhYmxlX190ZXh0LS1uby13cmFwXCIgW2NsYXNzLmZkLXRhYmxlX19pbm5lcl09XCJoYXNTb3J0aW5nIHx8IGhhc0ZpbHRlclwiPlxuICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJ0YWJsZUhlYWRlckNlbGxDb250ZW50VGVtcGxhdGU7IGNvbnRleHQ6IHsgY29sdW1uOiBjb2x1bW4gfVwiPjwvbmctY29udGFpbmVyPlxuXG4gICAgPGRpdiBjbGFzcz1cImZkLXRhYmxlX19jb2x1bW4taGVhZGVyLWljb25zXCIgKm5nSWY9XCJoYXNTb3J0aW5nIHx8IGhhc0ZpbHRlclwiPlxuICAgICAgICA8ZmQtaWNvbiAqbmdJZj1cImhhc0ZpbHRlclwiIGZkLXRhYmxlLWljb24gZ2x5cGg9XCJmaWx0ZXJcIj48L2ZkLWljb24+XG5cbiAgICAgICAgPGZkLWljb25cbiAgICAgICAgICAgICpuZ0lmPVwiaGFzU29ydGluZ1wiXG4gICAgICAgICAgICBmZC10YWJsZS1pY29uXG4gICAgICAgICAgICBbYXJpYUhpZGRlbl09XCJ0cnVlXCJcbiAgICAgICAgICAgIFtnbHlwaF09XCJzb3J0aW5nPy5kaXJlY3Rpb24gPT09IFNPUlRfRElSRUNUSU9OLkFTQyA/ICdzb3J0LWFzY2VuZGluZycgOiAnc29ydC1kZXNjZW5kaW5nJ1wiXG4gICAgICAgID48L2ZkLWljb24+XG4gICAgPC9kaXY+XG48L2Rpdj5cblxuPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PlxuXG48bmctdGVtcGxhdGUgI3RhYmxlSGVhZGVyQ2VsbENvbnRlbnRUZW1wbGF0ZSBsZXQtY29sdW1uPVwiY29sdW1uXCI+XG4gICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImNvbHVtbj8uaGVhZGVyQ2VsbFRlbXBsYXRlOyBlbHNlIGRlZmF1bHRIZWFkZXJDZWxsVGVtcGxhdGVcIj5cbiAgICAgICAgPG5nLXRlbXBsYXRlXG4gICAgICAgICAgICBbbmdUZW1wbGF0ZU91dGxldF09XCJjb2x1bW4uaGVhZGVyQ2VsbFRlbXBsYXRlXCJcbiAgICAgICAgICAgIFtuZ1RlbXBsYXRlT3V0bGV0Q29udGV4dF09XCJ7ICRpbXBsaWNpdDogY29sdW1uIH1cIlxuICAgICAgICA+PC9uZy10ZW1wbGF0ZT5cbiAgICA8L25nLWNvbnRhaW5lcj5cblxuICAgIDxuZy10ZW1wbGF0ZSAjZGVmYXVsdEhlYWRlckNlbGxUZW1wbGF0ZT5cbiAgICAgICAgPHNwYW4gW2lkXT1cImlkICsgJy1oZWFkZXItY2VsbC0nICsgY29sdW1uPy5uYW1lXCIgY2xhc3M9XCJmZC10YWJsZV9fY2VsbC0tdHJ1bmNhdGUtdHh0XCI+XG4gICAgICAgICAgICB7eyBjb2x1bW4/LmxhYmVsIH19XG4gICAgICAgIDwvc3Bhbj5cbiAgICA8L25nLXRlbXBsYXRlPlxuPC9uZy10ZW1wbGF0ZT5cbiJdfQ==
|
|
@@ -8,7 +8,7 @@ import { ContentDensityObserver } from '@fundamental-ngx/core/content-density';
|
|
|
8
8
|
import { PopoverTriggerDirective } from '@fundamental-ngx/core/popover';
|
|
9
9
|
import { TableCellDirective, TableRowDirective, TableStatusIndicatorDirective } from '@fundamental-ngx/core/table';
|
|
10
10
|
import { FdTranslatePipe } from '@fundamental-ngx/i18n';
|
|
11
|
-
import { ColumnResizableSidePipe, PlatformTableCellResizableDirective, SelectionCellStylesPipe, SelectionMode, TableCellStylesPipe, TableColumnResizeService, TableRowService, TableService } from '@fundamental-ngx/platform/table-helpers';
|
|
11
|
+
import { ColumnResizableSidePipe, PlatformTableCellResizableDirective, SelectionCellStylesPipe, SelectionMode, SortDirection, TableCellStylesPipe, TableColumnResizeService, TableColumnSortingDirectionPipe, TableRowService, TableService } from '@fundamental-ngx/platform/table-helpers';
|
|
12
12
|
import { TableCellHeaderPopoverComponent } from '../table-cell-header-popover/table-cell-header-popover.component';
|
|
13
13
|
import { TableHeaderCellContentComponent } from '../table-header-cell-content/table-header-cell-content.component';
|
|
14
14
|
import * as i0 from "@angular/core";
|
|
@@ -28,6 +28,8 @@ export class TableHeaderRowComponent extends TableRowDirective {
|
|
|
28
28
|
/** @hidden */
|
|
29
29
|
this.SELECTION_MODE = SelectionMode;
|
|
30
30
|
/** @hidden */
|
|
31
|
+
this.SORT_DIRECTION = SortDirection;
|
|
32
|
+
/** @hidden */
|
|
31
33
|
this._tableColumnResizeService = inject(TableColumnResizeService);
|
|
32
34
|
/** @hidden */
|
|
33
35
|
this._fdpTableService = inject(TableService);
|
|
@@ -62,7 +64,7 @@ export class TableHeaderRowComponent extends TableRowDirective {
|
|
|
62
64
|
provide: FDK_FOCUSABLE_LIST_DIRECTIVE,
|
|
63
65
|
useExisting: TableHeaderRowComponent
|
|
64
66
|
}
|
|
65
|
-
], viewQueries: [{ propertyName: "_focusableCellItems", predicate: FDK_FOCUSABLE_ITEM_DIRECTIVE, descendants: true }], usesInheritance: true, ngImport: i0, template: "<th\n *ngIf=\"_fdpTableService._semanticHighlighting$ | async\"\n [class.fd-table__cell--fixed]=\"fixed\"\n fd-table-cell\n fd-table-status-indicator\n fdkDisabled\n [style.min-width]=\"_fdpTableService._semanticHighlightingColumnWidth$ | async\"\n [style.max-width]=\"_fdpTableService._semanticHighlightingColumnWidth$ | async\"\n></th>\n\n<th\n *ngIf=\"isShownSelectionColumn\"\n fd-table-cell\n [focusable]=\"true\"\n [class.fd-table__cell--fixed]=\"fixed\"\n class=\"fd-table__cell--checkbox\"\n [style]=\"\n _contentDensityObserver\n | async\n | selectionCellStyles : _rtl : (_fdpTableService._semanticHighlightingColumnWidth$ | async)\n \"\n (keydown.enter)=\"_tableRowService.toggleAllSelectableRows(!checkedState)\"\n (keydown.space)=\"_tableRowService.toggleAllSelectableRows(!checkedState)\"\n (cellFocused)=\"_tableRowService.cellFocused($event)\"\n [attr.aria-description]=\"\n !checkedState\n ? ('platformTable.selectAllCheckboxLabel' | fdTranslate)\n : ('platformTable.deselectAllCheckboxLabel' | fdTranslate)\n \"\n>\n <fd-checkbox\n tabIndexValue=\"-1\"\n *ngIf=\"selectionMode === SELECTION_MODE.MULTIPLE\"\n labelClass=\"fd-table__checkbox-label\"\n [fdkDisabled]=\"_fdpTableService.visibleColumnsLength === 0 || disableSelectionCheckbox\"\n [tristate]=\"true\"\n [tristateSelectable]=\"false\"\n [ngModel]=\"checkedState\"\n (ngModelChange)=\"_tableRowService.toggleAllSelectableRows($event)\"\n ></fd-checkbox>\n</th>\n\n<ng-container\n *ngFor=\"\n let column of _fdpTableService.visibleColumns$ | async;\n let colIdx = index;\n trackBy: _columnTrackBy;\n last as isLast\n \"\n>\n <th\n [focusable]=\"true\"\n role=\"columnheader\"\n [fdpTableCellResizable]=\"\n colIdx\n | columnResizableSide\n : _fdpTableService.visibleColumnsLength\n : (_fdpTableService._isShownNavigationColumn$ | async)\n \"\n [columnName]=\"column.name\"\n [id]=\"rowId + '__' + column.name\"\n [attr.aria-colindex]=\"colIdx\"\n [ngClass]=\"[\n 'fdp-table__col--' + column.name,\n column._freezed ? 'fd-table__cell--fixed' : '',\n column.name === freezeColumnsTo ? 'fd-table__cell--fixed-last' : '',\n column._endFreezed ? 'fd-table__cell--fixed-end' : '',\n column.name === freezeEndColumnsTo ? 'fd-table__cell--fixed-end-last' : '',\n isLast && (_fdpTableService._isShownNavigationColumn$ | async) !== true ? 'is-last-child' : '',\n (column | isColumnHasHeaderMenu) ? 'fd-table__item--clickable' : ''\n ]\"\n [ngStyle]=\"\n column\n | tableCellStyles\n : _rtl\n : (_fdpTableService._semanticHighlightingColumnWidth$ | async)\n : selectionColumnWidth\n : column._freezed\n : column._endFreezed\n : _tableColumnResizeService.getPrevColumnsWidth(column.name)\n : _tableColumnResizeService.getColumnWidthStyle(column.name)\n : _tableColumnResizeService.getNextColumnsWidth(column.name)\n \"\n [fdPopoverTrigger]=\"(column | isColumnHasHeaderMenu) ? tablePopover.popover : null\"\n (cellFocused)=\"_tableRowService.cellFocused($event)\"\n (keydown.arrowLeft)=\"_tableRowService.scrollToOverlappedCell()\"\n (keydown.arrowRight)=\"_tableRowService.scrollToOverlappedCell()\"\n >\n <fdp-table-header-cell-content\n [id]=\"rowId\"\n [column]=\"column\"\n [hasFilter]=\"(_fdpTableService.filterRules$ | async)?.has(column.key) === true\"\n [hasSorting]=\"(_fdpTableService.sortRules$ | async)?.has(column.key) === true\"\n [sorting]=\"(_fdpTableService.sortRules$ | async)?.get(column.key)\"\n [attr.title]=\"column.label\"\n >\n <!-- Header menu -->\n <fdp-table-cell-header-popover\n #tablePopover\n [disabled]=\"!(column | isColumnHasHeaderMenu)\"\n [columnFrozen]=\"column._freezed || column._endFreezed\"\n [column]=\"column\"\n [popoverTemplate]=\"(column | isColumnHasHeaderMenu) ? column.headerCellPopoverTemplate : null\"\n [filteringFromHeaderDisabled]=\"_fdpTableService._isFilteringFromHeaderDisabled$ | async\"\n ></fdp-table-cell-header-popover>\n </fdp-table-header-cell-content>\n </th>\n</ng-container>\n\n<th\n *ngIf=\"_fdpTableService._isShownNavigationColumn$ | async\"\n fd-table-cell\n class=\"fdp-table__cell--navigation is-last-child\"\n role=\"columnheader\"\n></th>\n\n<th\n aria-hidden=\"true\"\n class=\"fd-table__cell fd-table__cell--mock\"\n [class.fd-table__cell--mock-borderless]=\"(_tableColumnResizeService.cellMockVisible$ | async) !== true\"\n fdkDisabled\n></th>\n", dependencies: [{ kind: "directive", type: i0.forwardRef(function () { return NgIf; }), selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i0.forwardRef(function () { return TableCellDirective; }), selector: "[fdTableCell], [fd-table-cell]", inputs: ["noBorderX", "noBorderY", "activable", "focusable", "hoverable", "fitContent", "noPadding", "noData", "key"] }, { kind: "directive", type: i0.forwardRef(function () { return TableStatusIndicatorDirective; }), selector: "[fdTableStatusIndicator], [fd-table-status-indicator]", inputs: ["status"] }, { kind: "directive", type: i0.forwardRef(function () { return DisabledBehaviorDirective; }), selector: "[fdkDisabled]", inputs: ["fdkDisabled", "addDisabledClass", "disabledClass"] }, { kind: "component", type: i0.forwardRef(function () { return CheckboxComponent; }), selector: "fd-checkbox", inputs: ["wrapLabel", "valignLabel", "ariaLabel", "value", "ariaLabelledBy", "ariaDescribedBy", "title", "inputId", "state", "name", "label", "disabled", "tristate", "tristateSelectable", "labelClass", "required", "displayOnly", "values", "standalone"], outputs: ["focusChange"] }, { kind: "ngmodule", type: i0.forwardRef(function () { return FormsModule; }) }, { kind: "directive", type: i0.forwardRef(function () { return i1.NgControlStatus; }), selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i0.forwardRef(function () { return i1.NgModel; }), selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i0.forwardRef(function () { return NgFor; }), selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i0.forwardRef(function () { return PlatformTableCellResizableDirective; }), selector: "[fdpTableCellResizable]", inputs: ["fdpTableCellResizable", "columnName"] }, { kind: "directive", type: i0.forwardRef(function () { return NgClass; }), selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i0.forwardRef(function () { return NgStyle; }), selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "directive", type: i0.forwardRef(function () { return PopoverTriggerDirective; }), selector: "[fdPopoverTrigger], [fd-popover-trigger]", inputs: ["fdPopoverTrigger"] }, { kind: "component", type: i0.forwardRef(function () { return TableHeaderCellContentComponent; }), selector: "fdp-table-header-cell-content", inputs: ["id", "column", "hasSorting", "hasFilter", "sorting"] }, { kind: "component", type: i0.forwardRef(function () { return TableCellHeaderPopoverComponent; }), selector: "fdp-table-cell-header-popover", inputs: ["column", "popoverTemplate", "disabled", "columnFrozen", "filteringFromHeaderDisabled"] }, { kind: "pipe", type: i0.forwardRef(function () { return AsyncPipe; }), name: "async" }, { kind: "pipe", type: i0.forwardRef(function () { return FdTranslatePipe; }), name: "fdTranslate" }, { kind: "pipe", type: i0.forwardRef(function () { return SelectionCellStylesPipe; }), name: "selectionCellStyles" }, { kind: "pipe", type: i0.forwardRef(function () { return TableCellStylesPipe; }), name: "tableCellStyles" }, { kind: "pipe", type: i0.forwardRef(function () { return ColumnResizableSidePipe; }), name: "columnResizableSide" }, { kind: "pipe", type: i0.forwardRef(function () { return IsColumnHasHeaderMenuPipe; }), name: "isColumnHasHeaderMenu" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
|
|
67
|
+
], viewQueries: [{ propertyName: "_focusableCellItems", predicate: FDK_FOCUSABLE_ITEM_DIRECTIVE, descendants: true }], usesInheritance: true, ngImport: i0, template: "<th\n *ngIf=\"_fdpTableService._semanticHighlighting$ | async\"\n [class.fd-table__cell--fixed]=\"fixed\"\n fd-table-cell\n fd-table-status-indicator\n fdkDisabled\n [style.min-width]=\"_fdpTableService._semanticHighlightingColumnWidth$ | async\"\n [style.max-width]=\"_fdpTableService._semanticHighlightingColumnWidth$ | async\"\n></th>\n\n<th\n *ngIf=\"isShownSelectionColumn\"\n fd-table-cell\n [focusable]=\"true\"\n [class.fd-table__cell--fixed]=\"fixed\"\n class=\"fd-table__cell--checkbox\"\n [style]=\"\n _contentDensityObserver\n | async\n | selectionCellStyles : _rtl : (_fdpTableService._semanticHighlightingColumnWidth$ | async)\n \"\n (keydown.enter)=\"_tableRowService.toggleAllSelectableRows(!checkedState)\"\n (keydown.space)=\"_tableRowService.toggleAllSelectableRows(!checkedState)\"\n (cellFocused)=\"_tableRowService.cellFocused($event)\"\n [attr.aria-description]=\"\n !checkedState\n ? ('platformTable.selectAllCheckboxLabel' | fdTranslate)\n : ('platformTable.deselectAllCheckboxLabel' | fdTranslate)\n \"\n>\n <fd-checkbox\n tabIndexValue=\"-1\"\n *ngIf=\"selectionMode === SELECTION_MODE.MULTIPLE\"\n labelClass=\"fd-table__checkbox-label\"\n [fdkDisabled]=\"_fdpTableService.visibleColumnsLength === 0 || disableSelectionCheckbox\"\n [tristate]=\"true\"\n [tristateSelectable]=\"false\"\n [ngModel]=\"checkedState\"\n (ngModelChange)=\"_tableRowService.toggleAllSelectableRows($event)\"\n ></fd-checkbox>\n</th>\n\n<ng-container\n *ngFor=\"\n let column of _fdpTableService.visibleColumns$ | async;\n let colIdx = index;\n trackBy: _columnTrackBy;\n last as isLast\n \"\n>\n <th\n [focusable]=\"true\"\n role=\"columnheader\"\n [fdpTableCellResizable]=\"\n colIdx\n | columnResizableSide\n : _fdpTableService.visibleColumnsLength\n : (_fdpTableService._isShownNavigationColumn$ | async)\n \"\n [columnName]=\"column.name\"\n [id]=\"rowId + '__' + column.name\"\n [attr.aria-colindex]=\"colIdx\"\n [attr.aria-sort]=\"(_fdpTableService.sortRules$ | async)?.get(column.key) | fdpTableColumnSortingDirection\"\n [ngClass]=\"[\n 'fdp-table__col--' + column.name,\n column._freezed ? 'fd-table__cell--fixed' : '',\n column.name === freezeColumnsTo ? 'fd-table__cell--fixed-last' : '',\n column._endFreezed ? 'fd-table__cell--fixed-end' : '',\n column.name === freezeEndColumnsTo ? 'fd-table__cell--fixed-end-last' : '',\n isLast && (_fdpTableService._isShownNavigationColumn$ | async) !== true ? 'is-last-child' : '',\n (column | isColumnHasHeaderMenu) ? 'fd-table__item--clickable' : ''\n ]\"\n [ngStyle]=\"\n column\n | tableCellStyles\n : _rtl\n : (_fdpTableService._semanticHighlightingColumnWidth$ | async)\n : selectionColumnWidth\n : column._freezed\n : column._endFreezed\n : _tableColumnResizeService.getPrevColumnsWidth(column.name)\n : _tableColumnResizeService.getColumnWidthStyle(column.name)\n : _tableColumnResizeService.getNextColumnsWidth(column.name)\n \"\n [fdPopoverTrigger]=\"(column | isColumnHasHeaderMenu) ? tablePopover.popover : null\"\n (cellFocused)=\"_tableRowService.cellFocused($event)\"\n (keydown.arrowLeft)=\"_tableRowService.scrollToOverlappedCell()\"\n (keydown.arrowRight)=\"_tableRowService.scrollToOverlappedCell()\"\n >\n <fdp-table-header-cell-content\n [id]=\"rowId\"\n [column]=\"column\"\n [hasFilter]=\"(_fdpTableService.filterRules$ | async)?.has(column.key) === true\"\n [hasSorting]=\"(_fdpTableService.sortRules$ | async)?.has(column.key) === true\"\n [sorting]=\"(_fdpTableService.sortRules$ | async)?.get(column.key)\"\n [attr.title]=\"column.label\"\n >\n <!-- Header menu -->\n <fdp-table-cell-header-popover\n #tablePopover\n [disabled]=\"!(column | isColumnHasHeaderMenu)\"\n [columnFrozen]=\"column._freezed || column._endFreezed\"\n [column]=\"column\"\n [popoverTemplate]=\"(column | isColumnHasHeaderMenu) ? column.headerCellPopoverTemplate : null\"\n [filteringFromHeaderDisabled]=\"_fdpTableService._isFilteringFromHeaderDisabled$ | async\"\n ></fdp-table-cell-header-popover>\n </fdp-table-header-cell-content>\n </th>\n</ng-container>\n\n<th\n *ngIf=\"_fdpTableService._isShownNavigationColumn$ | async\"\n fd-table-cell\n class=\"fdp-table__cell--navigation is-last-child\"\n role=\"columnheader\"\n></th>\n\n<th\n aria-hidden=\"true\"\n class=\"fd-table__cell fd-table__cell--mock\"\n [class.fd-table__cell--mock-borderless]=\"(_tableColumnResizeService.cellMockVisible$ | async) !== true\"\n fdkDisabled\n></th>\n", dependencies: [{ kind: "directive", type: i0.forwardRef(function () { return NgIf; }), selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i0.forwardRef(function () { return TableCellDirective; }), selector: "[fdTableCell], [fd-table-cell]", inputs: ["noBorderX", "noBorderY", "activable", "focusable", "hoverable", "fitContent", "noPadding", "noData", "key"] }, { kind: "directive", type: i0.forwardRef(function () { return TableStatusIndicatorDirective; }), selector: "[fdTableStatusIndicator], [fd-table-status-indicator]", inputs: ["status"] }, { kind: "directive", type: i0.forwardRef(function () { return DisabledBehaviorDirective; }), selector: "[fdkDisabled]", inputs: ["fdkDisabled", "addDisabledClass", "disabledClass"] }, { kind: "component", type: i0.forwardRef(function () { return CheckboxComponent; }), selector: "fd-checkbox", inputs: ["wrapLabel", "valignLabel", "ariaLabel", "value", "ariaLabelledBy", "ariaDescribedBy", "title", "inputId", "state", "name", "label", "disabled", "tristate", "tristateSelectable", "labelClass", "required", "displayOnly", "values", "standalone"], outputs: ["focusChange"] }, { kind: "ngmodule", type: i0.forwardRef(function () { return FormsModule; }) }, { kind: "directive", type: i0.forwardRef(function () { return i1.NgControlStatus; }), selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i0.forwardRef(function () { return i1.NgModel; }), selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i0.forwardRef(function () { return NgFor; }), selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i0.forwardRef(function () { return PlatformTableCellResizableDirective; }), selector: "[fdpTableCellResizable]", inputs: ["fdpTableCellResizable", "columnName"] }, { kind: "directive", type: i0.forwardRef(function () { return NgClass; }), selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i0.forwardRef(function () { return NgStyle; }), selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "directive", type: i0.forwardRef(function () { return PopoverTriggerDirective; }), selector: "[fdPopoverTrigger], [fd-popover-trigger]", inputs: ["fdPopoverTrigger"] }, { kind: "component", type: i0.forwardRef(function () { return TableHeaderCellContentComponent; }), selector: "fdp-table-header-cell-content", inputs: ["id", "column", "hasSorting", "hasFilter", "sorting"] }, { kind: "component", type: i0.forwardRef(function () { return TableCellHeaderPopoverComponent; }), selector: "fdp-table-cell-header-popover", inputs: ["column", "popoverTemplate", "disabled", "columnFrozen", "filteringFromHeaderDisabled"] }, { kind: "pipe", type: i0.forwardRef(function () { return AsyncPipe; }), name: "async" }, { kind: "pipe", type: i0.forwardRef(function () { return FdTranslatePipe; }), name: "fdTranslate" }, { kind: "pipe", type: i0.forwardRef(function () { return SelectionCellStylesPipe; }), name: "selectionCellStyles" }, { kind: "pipe", type: i0.forwardRef(function () { return TableCellStylesPipe; }), name: "tableCellStyles" }, { kind: "pipe", type: i0.forwardRef(function () { return ColumnResizableSidePipe; }), name: "columnResizableSide" }, { kind: "pipe", type: i0.forwardRef(function () { return TableColumnSortingDirectionPipe; }), name: "fdpTableColumnSortingDirection" }, { kind: "pipe", type: i0.forwardRef(function () { return IsColumnHasHeaderMenuPipe; }), name: "isColumnHasHeaderMenu" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
|
|
66
68
|
}
|
|
67
69
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.7", ngImport: i0, type: TableHeaderRowComponent, decorators: [{
|
|
68
70
|
type: Component,
|
|
@@ -92,8 +94,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.7", ngImpor
|
|
|
92
94
|
SelectionCellStylesPipe,
|
|
93
95
|
TableCellStylesPipe,
|
|
94
96
|
ColumnResizableSidePipe,
|
|
97
|
+
TableColumnSortingDirectionPipe,
|
|
95
98
|
forwardRef(() => IsColumnHasHeaderMenuPipe)
|
|
96
|
-
], template: "<th\n *ngIf=\"_fdpTableService._semanticHighlighting$ | async\"\n [class.fd-table__cell--fixed]=\"fixed\"\n fd-table-cell\n fd-table-status-indicator\n fdkDisabled\n [style.min-width]=\"_fdpTableService._semanticHighlightingColumnWidth$ | async\"\n [style.max-width]=\"_fdpTableService._semanticHighlightingColumnWidth$ | async\"\n></th>\n\n<th\n *ngIf=\"isShownSelectionColumn\"\n fd-table-cell\n [focusable]=\"true\"\n [class.fd-table__cell--fixed]=\"fixed\"\n class=\"fd-table__cell--checkbox\"\n [style]=\"\n _contentDensityObserver\n | async\n | selectionCellStyles : _rtl : (_fdpTableService._semanticHighlightingColumnWidth$ | async)\n \"\n (keydown.enter)=\"_tableRowService.toggleAllSelectableRows(!checkedState)\"\n (keydown.space)=\"_tableRowService.toggleAllSelectableRows(!checkedState)\"\n (cellFocused)=\"_tableRowService.cellFocused($event)\"\n [attr.aria-description]=\"\n !checkedState\n ? ('platformTable.selectAllCheckboxLabel' | fdTranslate)\n : ('platformTable.deselectAllCheckboxLabel' | fdTranslate)\n \"\n>\n <fd-checkbox\n tabIndexValue=\"-1\"\n *ngIf=\"selectionMode === SELECTION_MODE.MULTIPLE\"\n labelClass=\"fd-table__checkbox-label\"\n [fdkDisabled]=\"_fdpTableService.visibleColumnsLength === 0 || disableSelectionCheckbox\"\n [tristate]=\"true\"\n [tristateSelectable]=\"false\"\n [ngModel]=\"checkedState\"\n (ngModelChange)=\"_tableRowService.toggleAllSelectableRows($event)\"\n ></fd-checkbox>\n</th>\n\n<ng-container\n *ngFor=\"\n let column of _fdpTableService.visibleColumns$ | async;\n let colIdx = index;\n trackBy: _columnTrackBy;\n last as isLast\n \"\n>\n <th\n [focusable]=\"true\"\n role=\"columnheader\"\n [fdpTableCellResizable]=\"\n colIdx\n | columnResizableSide\n : _fdpTableService.visibleColumnsLength\n : (_fdpTableService._isShownNavigationColumn$ | async)\n \"\n [columnName]=\"column.name\"\n [id]=\"rowId + '__' + column.name\"\n [attr.aria-colindex]=\"colIdx\"\n [ngClass]=\"[\n 'fdp-table__col--' + column.name,\n column._freezed ? 'fd-table__cell--fixed' : '',\n column.name === freezeColumnsTo ? 'fd-table__cell--fixed-last' : '',\n column._endFreezed ? 'fd-table__cell--fixed-end' : '',\n column.name === freezeEndColumnsTo ? 'fd-table__cell--fixed-end-last' : '',\n isLast && (_fdpTableService._isShownNavigationColumn$ | async) !== true ? 'is-last-child' : '',\n (column | isColumnHasHeaderMenu) ? 'fd-table__item--clickable' : ''\n ]\"\n [ngStyle]=\"\n column\n | tableCellStyles\n : _rtl\n : (_fdpTableService._semanticHighlightingColumnWidth$ | async)\n : selectionColumnWidth\n : column._freezed\n : column._endFreezed\n : _tableColumnResizeService.getPrevColumnsWidth(column.name)\n : _tableColumnResizeService.getColumnWidthStyle(column.name)\n : _tableColumnResizeService.getNextColumnsWidth(column.name)\n \"\n [fdPopoverTrigger]=\"(column | isColumnHasHeaderMenu) ? tablePopover.popover : null\"\n (cellFocused)=\"_tableRowService.cellFocused($event)\"\n (keydown.arrowLeft)=\"_tableRowService.scrollToOverlappedCell()\"\n (keydown.arrowRight)=\"_tableRowService.scrollToOverlappedCell()\"\n >\n <fdp-table-header-cell-content\n [id]=\"rowId\"\n [column]=\"column\"\n [hasFilter]=\"(_fdpTableService.filterRules$ | async)?.has(column.key) === true\"\n [hasSorting]=\"(_fdpTableService.sortRules$ | async)?.has(column.key) === true\"\n [sorting]=\"(_fdpTableService.sortRules$ | async)?.get(column.key)\"\n [attr.title]=\"column.label\"\n >\n <!-- Header menu -->\n <fdp-table-cell-header-popover\n #tablePopover\n [disabled]=\"!(column | isColumnHasHeaderMenu)\"\n [columnFrozen]=\"column._freezed || column._endFreezed\"\n [column]=\"column\"\n [popoverTemplate]=\"(column | isColumnHasHeaderMenu) ? column.headerCellPopoverTemplate : null\"\n [filteringFromHeaderDisabled]=\"_fdpTableService._isFilteringFromHeaderDisabled$ | async\"\n ></fdp-table-cell-header-popover>\n </fdp-table-header-cell-content>\n </th>\n</ng-container>\n\n<th\n *ngIf=\"_fdpTableService._isShownNavigationColumn$ | async\"\n fd-table-cell\n class=\"fdp-table__cell--navigation is-last-child\"\n role=\"columnheader\"\n></th>\n\n<th\n aria-hidden=\"true\"\n class=\"fd-table__cell fd-table__cell--mock\"\n [class.fd-table__cell--mock-borderless]=\"(_tableColumnResizeService.cellMockVisible$ | async) !== true\"\n fdkDisabled\n></th>\n" }]
|
|
99
|
+
], template: "<th\n *ngIf=\"_fdpTableService._semanticHighlighting$ | async\"\n [class.fd-table__cell--fixed]=\"fixed\"\n fd-table-cell\n fd-table-status-indicator\n fdkDisabled\n [style.min-width]=\"_fdpTableService._semanticHighlightingColumnWidth$ | async\"\n [style.max-width]=\"_fdpTableService._semanticHighlightingColumnWidth$ | async\"\n></th>\n\n<th\n *ngIf=\"isShownSelectionColumn\"\n fd-table-cell\n [focusable]=\"true\"\n [class.fd-table__cell--fixed]=\"fixed\"\n class=\"fd-table__cell--checkbox\"\n [style]=\"\n _contentDensityObserver\n | async\n | selectionCellStyles : _rtl : (_fdpTableService._semanticHighlightingColumnWidth$ | async)\n \"\n (keydown.enter)=\"_tableRowService.toggleAllSelectableRows(!checkedState)\"\n (keydown.space)=\"_tableRowService.toggleAllSelectableRows(!checkedState)\"\n (cellFocused)=\"_tableRowService.cellFocused($event)\"\n [attr.aria-description]=\"\n !checkedState\n ? ('platformTable.selectAllCheckboxLabel' | fdTranslate)\n : ('platformTable.deselectAllCheckboxLabel' | fdTranslate)\n \"\n>\n <fd-checkbox\n tabIndexValue=\"-1\"\n *ngIf=\"selectionMode === SELECTION_MODE.MULTIPLE\"\n labelClass=\"fd-table__checkbox-label\"\n [fdkDisabled]=\"_fdpTableService.visibleColumnsLength === 0 || disableSelectionCheckbox\"\n [tristate]=\"true\"\n [tristateSelectable]=\"false\"\n [ngModel]=\"checkedState\"\n (ngModelChange)=\"_tableRowService.toggleAllSelectableRows($event)\"\n ></fd-checkbox>\n</th>\n\n<ng-container\n *ngFor=\"\n let column of _fdpTableService.visibleColumns$ | async;\n let colIdx = index;\n trackBy: _columnTrackBy;\n last as isLast\n \"\n>\n <th\n [focusable]=\"true\"\n role=\"columnheader\"\n [fdpTableCellResizable]=\"\n colIdx\n | columnResizableSide\n : _fdpTableService.visibleColumnsLength\n : (_fdpTableService._isShownNavigationColumn$ | async)\n \"\n [columnName]=\"column.name\"\n [id]=\"rowId + '__' + column.name\"\n [attr.aria-colindex]=\"colIdx\"\n [attr.aria-sort]=\"(_fdpTableService.sortRules$ | async)?.get(column.key) | fdpTableColumnSortingDirection\"\n [ngClass]=\"[\n 'fdp-table__col--' + column.name,\n column._freezed ? 'fd-table__cell--fixed' : '',\n column.name === freezeColumnsTo ? 'fd-table__cell--fixed-last' : '',\n column._endFreezed ? 'fd-table__cell--fixed-end' : '',\n column.name === freezeEndColumnsTo ? 'fd-table__cell--fixed-end-last' : '',\n isLast && (_fdpTableService._isShownNavigationColumn$ | async) !== true ? 'is-last-child' : '',\n (column | isColumnHasHeaderMenu) ? 'fd-table__item--clickable' : ''\n ]\"\n [ngStyle]=\"\n column\n | tableCellStyles\n : _rtl\n : (_fdpTableService._semanticHighlightingColumnWidth$ | async)\n : selectionColumnWidth\n : column._freezed\n : column._endFreezed\n : _tableColumnResizeService.getPrevColumnsWidth(column.name)\n : _tableColumnResizeService.getColumnWidthStyle(column.name)\n : _tableColumnResizeService.getNextColumnsWidth(column.name)\n \"\n [fdPopoverTrigger]=\"(column | isColumnHasHeaderMenu) ? tablePopover.popover : null\"\n (cellFocused)=\"_tableRowService.cellFocused($event)\"\n (keydown.arrowLeft)=\"_tableRowService.scrollToOverlappedCell()\"\n (keydown.arrowRight)=\"_tableRowService.scrollToOverlappedCell()\"\n >\n <fdp-table-header-cell-content\n [id]=\"rowId\"\n [column]=\"column\"\n [hasFilter]=\"(_fdpTableService.filterRules$ | async)?.has(column.key) === true\"\n [hasSorting]=\"(_fdpTableService.sortRules$ | async)?.has(column.key) === true\"\n [sorting]=\"(_fdpTableService.sortRules$ | async)?.get(column.key)\"\n [attr.title]=\"column.label\"\n >\n <!-- Header menu -->\n <fdp-table-cell-header-popover\n #tablePopover\n [disabled]=\"!(column | isColumnHasHeaderMenu)\"\n [columnFrozen]=\"column._freezed || column._endFreezed\"\n [column]=\"column\"\n [popoverTemplate]=\"(column | isColumnHasHeaderMenu) ? column.headerCellPopoverTemplate : null\"\n [filteringFromHeaderDisabled]=\"_fdpTableService._isFilteringFromHeaderDisabled$ | async\"\n ></fdp-table-cell-header-popover>\n </fdp-table-header-cell-content>\n </th>\n</ng-container>\n\n<th\n *ngIf=\"_fdpTableService._isShownNavigationColumn$ | async\"\n fd-table-cell\n class=\"fdp-table__cell--navigation is-last-child\"\n role=\"columnheader\"\n></th>\n\n<th\n aria-hidden=\"true\"\n class=\"fd-table__cell fd-table__cell--mock\"\n [class.fd-table__cell--mock-borderless]=\"(_tableColumnResizeService.cellMockVisible$ | async) !== true\"\n fdkDisabled\n></th>\n" }]
|
|
97
100
|
}], ctorParameters: function () { return []; }, propDecorators: { rowId: [{
|
|
98
101
|
type: Input
|
|
99
102
|
}], fixed: [{
|
|
@@ -140,4 +143,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.7", ngImpor
|
|
|
140
143
|
standalone: true
|
|
141
144
|
}]
|
|
142
145
|
}] });
|
|
143
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGUtaGVhZGVyLXJvdy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3BsYXRmb3JtL3NyYy9saWIvdGFibGUvY29tcG9uZW50cy90YWJsZS1oZWFkZXItcm93L3RhYmxlLWhlYWRlci1yb3cuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9wbGF0Zm9ybS9zcmMvbGliL3RhYmxlL2NvbXBvbmVudHMvdGFibGUtaGVhZGVyLXJvdy90YWJsZS1oZWFkZXItcm93LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsT0FBTyxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUUsT0FBTyxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDM0UsT0FBTyxFQUNILHVCQUF1QixFQUN2QixpQkFBaUIsRUFDakIsU0FBUyxFQUNULEtBQUssRUFFTCxJQUFJLEVBRUosU0FBUyxFQUNULFlBQVksRUFDWixpQkFBaUIsRUFDakIsVUFBVSxFQUNWLE1BQU0sRUFDVCxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUNoRSxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDN0MsT0FBTyxFQUNILHlCQUF5QixFQUN6Qiw0QkFBNEIsRUFDNUIsNEJBQTRCLEVBRTVCLFVBQVUsRUFDYixNQUFNLDRCQUE0QixDQUFDO0FBQ3BDLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQ25FLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLHVDQUF1QyxDQUFDO0FBQy9FLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBQ3hFLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxpQkFBaUIsRUFBRSw2QkFBNkIsRUFB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Q2hCLE1BQU0sQ0FBQyxZQUFZO1lBQ25CLENBQUMsTUFBTSxDQUFDLFVBQVUsSUFBSSxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQywrQkFBK0IsQ0FBQyxLQUFLLENBQUMsQ0FDdEYsQ0FBQztJQUNOLENBQUM7OEdBYlEseUJBQXlCOzRHQUF6Qix5QkFBeUI7OzJGQUF6Qix5QkFBeUI7a0JBSnJDLElBQUk7bUJBQUM7b0JBQ0YsSUFBSSxFQUFFLHVCQUF1QjtvQkFDN0IsVUFBVSxFQUFFLElBQUk7aUJBQ25CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQXN5bmNQaXBlLCBOZ0NsYXNzLCBOZ0ZvciwgTmdJZiwgTmdTdHlsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQge1xuICAgIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICAgIENoYW5nZURldGVjdG9yUmVmLFxuICAgIENvbXBvbmVudCxcbiAgICBJbnB1dCxcbiAgICBPbkluaXQsXG4gICAgUGlwZSxcbiAgICBQaXBlVHJhbnNmb3JtLFxuICAgIFF1ZXJ5TGlzdCxcbiAgICBWaWV3Q2hpbGRyZW4sXG4gICAgVmlld0VuY2Fwc3VsYXRpb24sXG4gICAgZm9yd2FyZFJlZixcbiAgICBpbmplY3Rcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyB0YWtlVW50aWxEZXN0cm95ZWQgfSBmcm9tICdAYW5ndWxhci9jb3JlL3J4anMtaW50ZXJvcCc7XG5pbXBvcnQgeyBGb3Jtc01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7XG4gICAgRGlzYWJsZWRCZWhhdmlvckRpcmVjdGl2ZSxcbiAgICBGREtfRk9DVVNBQkxFX0lURU1fRElSRUNUSVZFLFxuICAgIEZES19GT0NVU0FCTEVfTElTVF9ESVJFQ1RJVkUsXG4gICAgRm9jdXNhYmxlSXRlbURpcmVjdGl2ZSxcbiAgICBSdGxTZXJ2aWNlXG59IGZyb20gJ0BmdW5kYW1lbnRhbC1uZ3gvY2RrL3V0aWxzJztcbmltcG9ydCB7IENoZWNrYm94Q29tcG9uZW50IH0gZnJvbSAnQGZ1bmRhbWVudGFsLW5neC9jb3JlL2NoZWNrYm94JztcbmltcG9ydCB7IENvbnRlbnREZW5zaXR5T2JzZXJ2ZXIgfSBmcm9tICdAZnVuZGFtZW50YWwtbmd4L2NvcmUvY29udGVudC1kZW5zaXR5JztcbmltcG9ydCB7IFBvcG92ZXJUcmlnZ2VyRGlyZWN0aXZlIH0gZnJvbSAnQGZ1bmRhbWVudGFsLW5neC9jb3JlL3BvcG92ZXInO1xuaW1wb3J0IHsgVGFibGVDZWxsRGlyZWN0aXZlLCBUYWJsZVJvd0RpcmVjdGl2ZSwgVGFibGVTdGF0dXNJbmRpY2F0b3JEaXJlY3RpdmUgfSBmcm9tICdAZnVuZGFtZW50YWwtbmd4L2NvcmUvdGFibGUnO1xuaW1wb3J0IHsgRmRUcmFuc2xhdGVQaXBlIH0gZnJvbSAnQGZ1bmRhbWVudGFsLW5neC9pMThuJztcbmltcG9ydCB7XG4gICAgQ29sdW1uUmVzaXphYmxlU2lkZVBpcGUsXG4gICAgUGxhdGZvcm1UYWJsZUNlbGxSZXNpemFibGVEaXJlY3RpdmUsXG4gICAgU2VsZWN0aW9uQ2VsbFN0eWxlc1BpcGUsXG4gICAgU2VsZWN0aW9uTW9kZSxcbiAgICBTZWxlY3Rpb25Nb2RlVmFsdWUsXG4gICAgVGFibGVDZWxsU3R5bGVzUGlwZSxcbiAgICBUYWJsZUNvbHVtbixcbiAgICBUYWJsZUNvbHVtblJlc2l6ZVNlcnZpY2UsXG4gICAgVGFibGVSb3dTZXJ2aWNlLFxuICAgIFRhYmxlU2VydmljZVxufSBmcm9tICdAZnVuZGFtZW50YWwtbmd4L3BsYXRmb3JtL3RhYmxlLWhlbHBlcnMnO1xuaW1wb3J0IHsgVGFibGVDZWxsSGVhZGVyUG9wb3ZlckNvbXBvbmVudCB9IGZyb20gJy4uL3RhYmxlLWNlbGwtaGVhZGVyLXBvcG92ZXIvdGFibGUtY2VsbC1oZWFkZXItcG9wb3Zlci5jb21wb25lbnQnO1xuaW1wb3J0IHsgVGFibGVIZWFkZXJDZWxsQ29udGVudENvbXBvbmVudCB9IGZyb20gJy4uL3RhYmxlLWhlYWRlci1jZWxsLWNvbnRlbnQvdGFibGUtaGVhZGVyLWNlbGwtY29udGVudC5jb21wb25lbnQnO1xuXG5AQ29tcG9uZW50KHtcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L2NvbXBvbmVudC1zZWxlY3RvclxuICAgIHNlbGVjdG9yOiAnW2ZkcC10YWJsZS1oZWFkZXItcm93XScsXG4gICAgdGVtcGxhdGVVcmw6ICcuL3RhYmxlLWhlYWRlci1yb3cuY29tcG9uZW50Lmh0bWwnLFxuICAgIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gICAgcHJvdmlkZXJzOiBbXG4gICAgICAgIHtcbiAgICAgICAgICAgIHByb3ZpZGU6IEZES19GT0NVU0FCTEVfTElTVF9ESVJFQ1RJVkUsXG4gICAgICAgICAgICB1c2VFeGlzdGluZzogVGFibGVIZWFkZXJSb3dDb21wb25lbnRcbiAgICAgICAgfVxuICAgIF0sXG4gICAgaG9zdDoge1xuICAgICAgICByb2xlOiAncm93J1xuICAgIH0sXG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgICBpbXBvcnRzOiBbXG4gICAgICAgIE5nSWYsXG4gICAgICAgIFRhYmxlQ2VsbERpcmVjdGl2ZSxcbiAgICAgICAgVGFibGVTdGF0dXNJbmRpY2F0b3JEaXJlY3RpdmUsXG4gICAgICAgIERpc2FibGVkQmVoYXZpb3JEaXJlY3RpdmUsXG4gICAgICAgIENoZWNrYm94Q29tcG9uZW50LFxuICAgICAgICBGb3Jtc01vZHVsZSxcbiAgICAgICAgTmdGb3IsXG4gICAgICAgIFBsYXRmb3JtVGFibGVDZWxsUmVzaXphYmxlRGlyZWN0aXZlLFxuICAgICAgICBOZ0NsYXNzLFxuICAgICAgICBOZ1N0eWxlLFxuICAgICAgICBQb3BvdmVyVHJpZ2dlckRpcmVjdGl2ZSxcbiAgICAgICAgVGFibGVIZWFkZXJDZWxsQ29udGVudENvbXBvbmVudCxcbiAgICAgICAgVGFibGVDZWxsSGVhZGVyUG9wb3ZlckNvbXBvbmVudCxcbiAgICAgICAgQXN5bmNQaXBlLFxuICAgICAgICBGZFRyYW5zbGF0ZVBpcGUsXG4gICAgICAgIFNlbGVjdGlvbkNlbGxTdHlsZXNQaXBlLFxuICAgICAgICBUYWJsZUNlbGxTdHlsZXNQaXBlLFxuICAgICAgICBDb2x1bW5SZXNpemFibGVTaWRlUGlwZSxcbiAgICAgICAgZm9yd2FyZFJlZigoKSA9PiBJc0NvbHVtbkhhc0hlYWRlck1lbnVQaXBlKVxuICAgIF1cbn0pXG5leHBvcnQgY2xhc3MgVGFibGVIZWFkZXJSb3dDb21wb25lbnQgZXh0ZW5kcyBUYWJsZVJvd0RpcmVjdGl2ZSBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gICAgLyoqIFRhYmxlIElELiAqL1xuICAgIEBJbnB1dCgpXG4gICAgcm93SWQ6IHN0cmluZztcblxuICAgIC8qKlxuICAgICAqIFdoZXRoZXIgdG8gZml4IHRoZSB0YWJsZSBoZWFkZXIgYW5kIGZvb3Rlci4gRGVmYXVsdCBpcyB0cnVlLlxuICAgICAqIE5vdGUgdGhhdCBpZiB0aGUgdGFibGUgY29udGFpbnMgZnJlZXphYmxlIGNvbHVtbnMsIHRoZSBoZWFkZXIgYW5kXG4gICAgICogZm9vdGVyIHdpbGwgYmUgZml4ZWQgYXV0b21hdGljYWxseSwgcmVnYXJkbGVzcyBvZiB0aGlzIGlucHV0IHZhbHVlLlxuICAgICAqICovXG4gICAgQElucHV0KClcbiAgICBmaXhlZDogYm9vbGVhbjtcblxuICAgIC8qKlxuICAgICAqIFdoZXRoZXIgdG8gc2hvdyBzZWxlY3Rpb24gY29sdW1uLlxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgaXNTaG93blNlbGVjdGlvbkNvbHVtbjogYm9vbGVhbjtcblxuICAgIC8qKlxuICAgICAqIFJvdyBjaGVja2VkIHN0YXRlLlxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgY2hlY2tlZFN0YXRlOiBib29sZWFuIHwgbnVsbDtcblxuICAgIC8qKlxuICAgICAqIFNlbGVjdGlvbiBtb2RlLlxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgc2VsZWN0aW9uTW9kZTogU2VsZWN0aW9uTW9kZVZhbHVlO1xuXG4gICAgLyoqXG4gICAgICogU2VsZWN0aW9uIGNvbHVtbiB3aWR0aC5cbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIHNlbGVjdGlvbkNvbHVtbldpZHRoOiBudW1iZXI7XG5cbiAgICAvKiogVGhlIGNvbHVtbiBgbmFtZWAgdG8gZnJlZXplIGNvbHVtbnMgdXAgdG8gYW5kIGluY2x1ZGluZy4gKi9cbiAgICBASW5wdXQoKVxuICAgIGZyZWV6ZUNvbHVtbnNUbzogc3RyaW5nO1xuXG4gICAgLyoqIFRoZSBjb2x1bW4gYG5hbWVgIHRvIGZyZWV6ZSBjb2x1bW5zIGFmdGVyIGFuZCBpbmNsdWRpbmcuICovXG4gICAgQElucHV0KClcbiAgICBmcmVlemVFbmRDb2x1bW5zVG86IHN0cmluZztcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgQElucHV0KClcbiAgICBkaXNhYmxlU2VsZWN0aW9uQ2hlY2tib3ggPSBmYWxzZTtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgQFZpZXdDaGlsZHJlbihGREtfRk9DVVNBQkxFX0lURU1fRElSRUNUSVZFKVxuICAgIHByaXZhdGUgc2V0IF9mb2N1c2FibGVDZWxsSXRlbXMoaXRlbXM6IFF1ZXJ5TGlzdDxGb2N1c2FibGVJdGVtRGlyZWN0aXZlPikge1xuICAgICAgICB0aGlzLnNldEl0ZW1zKGl0ZW1zKTtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIF9ydGwgPSBmYWxzZTtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcmVhZG9ubHkgU0VMRUNUSU9OX01PREUgPSBTZWxlY3Rpb25Nb2RlO1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICByZWFkb25seSBfdGFibGVDb2x1bW5SZXNpemVTZXJ2aWNlID0gaW5qZWN0KFRhYmxlQ29sdW1uUmVzaXplU2VydmljZSk7XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHJlYWRvbmx5IF9mZHBUYWJsZVNlcnZpY2UgPSBpbmplY3QoVGFibGVTZXJ2aWNlKTtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcmVhZG9ubHkgX2NvbnRlbnREZW5zaXR5T2JzZXJ2ZXIgPSBpbmplY3QoQ29udGVudERlbnNpdHlPYnNlcnZlcik7XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHJlYWRvbmx5IF90YWJsZVJvd1NlcnZpY2UgPSBpbmplY3QoVGFibGVSb3dTZXJ2aWNlKTtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJpdmF0ZSByZWFkb25seSBfcnRsU2VydmljZSA9IGluamVjdChSdGxTZXJ2aWNlLCB7XG4gICAgICAgIG9wdGlvbmFsOiB0cnVlXG4gICAgfSk7XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgcmVhZG9ubHkgX2NkciA9IGluamVjdChDaGFuZ2VEZXRlY3RvclJlZik7XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIGNvbnN0cnVjdG9yKCkge1xuICAgICAgICBzdXBlcigpO1xuICAgICAgICB0aGlzLl9ydGxTZXJ2aWNlPy5ydGwucGlwZSh0YWtlVW50aWxEZXN0cm95ZWQoKSkuc3Vic2NyaWJlKChpc1J0bCkgPT4ge1xuICAgICAgICAgICAgdGhpcy5fcnRsID0gaXNSdGw7XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgICAgIHN1cGVyLm5nT25Jbml0KCk7XG4gICAgICAgIHRoaXMuX3RhYmxlQ29sdW1uUmVzaXplU2VydmljZS5tYXJrRm9yQ2hlY2sucGlwZSh0YWtlVW50aWxEZXN0cm95ZWQodGhpcy5fZGVzdHJveVJlZikpLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgICAgICB0aGlzLl9jZHIuZGV0ZWN0Q2hhbmdlcygpO1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIF9jb2x1bW5UcmFja0J5KGluZGV4OiBudW1iZXIsIGNvbHVtbjogVGFibGVDb2x1bW4pOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gY29sdW1uLm5hbWU7XG4gICAgfVxufVxuXG4vKiogQGhpZGRlbiAqL1xuQFBpcGUoe1xuICAgIG5hbWU6ICdpc0NvbHVtbkhhc0hlYWRlck1lbnUnLFxuICAgIHN0YW5kYWxvbmU6IHRydWVcbn0pXG5leHBvcnQgY2xhc3MgSXNDb2x1bW5IYXNIZWFkZXJNZW51UGlwZSBpbXBsZW1lbnRzIFBpcGVUcmFuc2Zvcm0ge1xuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJpdmF0ZSByZWFkb25seSBfZmRwVGFibGVTZXJ2aWNlID0gaW5qZWN0KFRhYmxlU2VydmljZSk7XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHRyYW5zZm9ybShjb2x1bW46IFRhYmxlQ29sdW1uKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICBjb2x1bW4uc29ydGFibGUgfHxcbiAgICAgICAgICAgIGNvbHVtbi5ncm91cGFibGUgfHxcbiAgICAgICAgICAgIGNvbHVtbi5mcmVlemFibGUgfHxcbiAgICAgICAgICAgIGNvbHVtbi5lbmRGcmVlemFibGUgfHxcbiAgICAgICAgICAgIChjb2x1bW4uZmlsdGVyYWJsZSAmJiAhdGhpcy5fZmRwVGFibGVTZXJ2aWNlLl9pc0ZpbHRlcmluZ0Zyb21IZWFkZXJEaXNhYmxlZCQudmFsdWUpXG4gICAgICAgICk7XG4gICAgfVxufVxuIiwiPHRoXG4gICAgKm5nSWY9XCJfZmRwVGFibGVTZXJ2aWNlLl9zZW1hbnRpY0hpZ2hsaWdodGluZyQgfCBhc3luY1wiXG4gICAgW2NsYXNzLmZkLXRhYmxlX19jZWxsLS1maXhlZF09XCJmaXhlZFwiXG4gICAgZmQtdGFibGUtY2VsbFxuICAgIGZkLXRhYmxlLXN0YXR1cy1pbmRpY2F0b3JcbiAgICBmZGtEaXNhYmxlZFxuICAgIFtzdHlsZS5taW4td2lkdGhdPVwiX2ZkcFRhYmxlU2VydmljZS5fc2VtYW50aWNIaWdobGlnaHRpbmdDb2x1bW5XaWR0aCQgfCBhc3luY1wiXG4gICAgW3N0eWxlLm1heC13aWR0aF09XCJfZmRwVGFibGVTZXJ2aWNlLl9zZW1hbnRpY0hpZ2hsaWdodGluZ0NvbHVtbldpZHRoJCB8IGFzeW5jXCJcbj48L3RoPlxuXG48dGhcbiAgICAqbmdJZj1cImlzU2hvd25TZWxlY3Rpb25Db2x1bW5cIlxuICAgIGZkLXRhYmxlLWNlbGxcbiAgICBbZm9jdXNhYmxlXT1cInRydWVcIlxuICAgIFtjbGFzcy5mZC10YWJsZV9fY2VsbC0tZml4ZWRdPVwiZml4ZWRcIlxuICAgIGNsYXNzPVwiZmQtdGFibGVfX2NlbGwtLWNoZWNrYm94XCJcbiAgICBbc3R5bGVdPVwiXG4gICAgICAgIF9jb250ZW50RGVuc2l0eU9ic2VydmVyXG4gICAgICAgICAgICB8IGFzeW5jXG4gICAgICAgICAgICB8IHNlbGVjdGlvbkNlbGxTdHlsZXMgOiBfcnRsIDogKF9mZHBUYWJsZVNlcnZpY2UuX3NlbWFudGljSGlnaGxpZ2h0aW5nQ29sdW1uV2lkdGgkIHwgYXN5bmMpXG4gICAgXCJcbiAgICAoa2V5ZG93bi5lbnRlcik9XCJfdGFibGVSb3dTZXJ2aWNlLnRvZ2dsZUFsbFNlbGVjdGFibGVSb3dzKCFjaGVja2VkU3RhdGUpXCJcbiAgICAoa2V5ZG93bi5zcGFjZSk9XCJfdGFibGVSb3dTZXJ2aWNlLnRvZ2dsZUFsbFNlbGVjdGFibGVSb3dzKCFjaGVja2VkU3RhdGUpXCJcbiAgICAoY2VsbEZvY3VzZWQpPVwiX3RhYmxlUm93U2VydmljZS5jZWxsRm9jdXNlZCgkZXZlbnQpXCJcbiAgICBbYXR0ci5hcmlhLWRlc2NyaXB0aW9uXT1cIlxuICAgICAgICAhY2hlY2tlZFN0YXRlXG4gICAgICAgICAgICA/ICgncGxhdGZvcm1UYWJsZS5zZWxlY3RBbGxDaGVja2JveExhYmVsJyB8IGZkVHJhbnNsYXRlKVxuICAgICAgICAgICAgOiAoJ3BsYXRmb3JtVGFibGUuZGVzZWxlY3RBbGxDaGVja2JveExhYmVsJyB8IGZkVHJhbnNsYXRlKVxuICAgIFwiXG4+XG4gICAgPGZkLWNoZWNrYm94XG4gICAgICAgIHRhYkluZGV4VmFsdWU9XCItMVwiXG4gICAgICAgICpuZ0lmPVwic2VsZWN0aW9uTW9kZSA9PT0gU0VMRUNUSU9OX01PREUuTVVMVElQTEVcIlxuICAgICAgICBsYWJlbENsYXNzPVwiZmQtdGFibGVfX2NoZWNrYm94LWxhYmVsXCJcbiAgICAgICAgW2Zka0Rpc2FibGVkXT1cIl9mZHBUYWJsZVNlcnZpY2UudmlzaWJsZUNvbHVtbnNMZW5ndGggPT09IDAgfHwgZGlzYWJsZVNlbGVjdGlvbkNoZWNrYm94XCJcbiAgICAgICAgW3RyaXN0YXRlXT1cInRydWVcIlxuICAgICAgICBbdHJpc3RhdGVTZWxlY3RhYmxlXT1cImZhbHNlXCJcbiAgICAgICAgW25nTW9kZWxdPVwiY2hlY2tlZFN0YXRlXCJcbiAgICAgICAgKG5nTW9kZWxDaGFuZ2UpPVwiX3RhYmxlUm93U2VydmljZS50b2dnbGVBbGxTZWxlY3RhYmxlUm93cygkZXZlbnQpXCJcbiAgICA+PC9mZC1jaGVja2JveD5cbjwvdGg+XG5cbjxuZy1jb250YWluZXJcbiAgICAqbmdGb3I9XCJcbiAgICAgICAgbGV0IGNvbHVtbiBvZiBfZmRwVGFibGVTZXJ2aWNlLnZpc2libGVDb2x1bW5zJCB8IGFzeW5jO1xuICAgICAgICBsZXQgY29sSWR4ID0gaW5kZXg7XG4gICAgICAgIHRyYWNrQnk6IF9jb2x1bW5UcmFja0J5O1xuICAgICAgICBsYXN0IGFzIGlzTGFzdFxuICAgIFwiXG4+XG4gICAgPHRoXG4gICAgICAgIFtmb2N1c2FibGVdPVwidHJ1ZVwiXG4gICAgICAgIHJvbGU9XCJjb2x1bW5oZWFkZXJcIlxuICAgICAgICBbZmRwVGFibGVDZWxsUmVzaXphYmxlXT1cIlxuICAgICAgICAgICAgY29sSWR4XG4gICAgICAgICAgICAgICAgfCBjb2x1bW5SZXNpemFibGVTaWRlXG4gICAgICAgICAgICAgICAgICAgIDogX2ZkcFRhYmxlU2VydmljZS52aXNpYmxlQ29sdW1uc0xlbmd0aFxuICAgICAgICAgICAgICAgICAgICA6IChfZmRwVGFibGVTZXJ2aWNlLl9pc1Nob3duTmF2aWdhdGlvbkNvbHVtbiQgfCBhc3luYylcbiAgICAgICAgXCJcbiAgICAgICAgW2NvbHVtbk5hbWVdPVwiY29sdW1uLm5hbWVcIlxuICAgICAgICBbaWRdPVwicm93SWQgKyAnX18nICsgY29sdW1uLm5hbWVcIlxuICAgICAgICBbYXR0ci5hcmlhLWNvbGluZGV4XT1cImNvbElkeFwiXG4gICAgICAgIFtuZ0NsYXNzXT1cIltcbiAgICAgICAgICAgICdmZHAtdGFibGVfX2NvbC0tJyArIGNvbHVtbi5uYW1lLFxuICAgICAgICAgICAgY29sdW1uLl9mcmVlemVkID8gJ2ZkLXRhYmxlX19jZWxsLS1maXhlZCcgOiAnJyxcbiAgICAgICAgICAgIGNvbHVtbi5uYW1lID09PSBmcmVlemVDb2x1bW5zVG8gPyAnZmQtdGFibGVfX2NlbGwtLWZpeGVkLWxhc3QnIDogJycsXG4gICAgICAgICAgICBjb2x1bW4uX2VuZEZyZWV6ZWQgPyAnZmQtdGFibGVfX2NlbGwtLWZpeGVkLWVuZCcgOiAnJyxcbiAgICAgICAgICAgIGNvbHVtbi5uYW1lID09PSBmcmVlemVFbmRDb2x1bW5zVG8gPyAnZmQtdGFibGVfX2NlbGwtLWZpeGVkLWVuZC1sYXN0JyA6ICcnLFxuICAgICAgICAgICAgaXNMYXN0ICYmIChfZmRwVGFibGVTZXJ2aWNlLl9pc1Nob3duTmF2aWdhdGlvbkNvbHVtbiQgfCBhc3luYykgIT09IHRydWUgPyAnaXMtbGFzdC1jaGlsZCcgOiAnJyxcbiAgICAgICAgICAgIChjb2x1bW4gfCBpc0NvbHVtbkhhc0hlYWRlck1lbnUpID8gJ2ZkLXRhYmxlX19pdGVtLS1jbGlja2FibGUnIDogJydcbiAgICAgICAgXVwiXG4gICAgICAgIFtuZ1N0eWxlXT1cIlxuICAgICAgICAgICAgY29sdW1uXG4gICAgICAgICAgICAgICAgfCB0YWJsZUNlbGxTdHlsZXNcbiAgICAgICAgICAgICAgICAgICAgOiBfcnRsXG4gICAgICAgICAgICAgICAgICAgIDogKF9mZHBUYWJsZVNlcnZpY2UuX3NlbWFudGljSGlnaGxpZ2h0aW5nQ29sdW1uV2lkdGgkIHwgYXN5bmMpXG4gICAgICAgICAgICAgICAgICAgIDogc2VsZWN0aW9uQ29sdW1uV2lkdGhcbiAgICAgICAgICAgICAgICAgICAgOiBjb2x1bW4uX2ZyZWV6ZWRcbiAgICAgICAgICAgICAgICAgICAgOiBjb2x1bW4uX2VuZEZyZWV6ZWRcbiAgICAgICAgICAgICAgICAgICAgOiBfdGFibGVDb2x1bW5SZXNpemVTZXJ2aWNlLmdldFByZXZDb2x1bW5zV2lkdGgoY29sdW1uLm5hbWUpXG4gICAgICAgICAgICAgICAgICAgIDogX3RhYmxlQ29sdW1uUmVzaXplU2VydmljZS5nZXRDb2x1bW5XaWR0aFN0eWxlKGNvbHVtbi5uYW1lKVxuICAgICAgICAgICAgICAgICAgICA6IF90YWJsZUNvbHVtblJlc2l6ZVNlcnZpY2UuZ2V0TmV4dENvbHVtbnNXaWR0aChjb2x1bW4ubmFtZSlcbiAgICAgICAgXCJcbiAgICAgICAgW2ZkUG9wb3ZlclRyaWdnZXJdPVwiKGNvbHVtbiB8IGlzQ29sdW1uSGFzSGVhZGVyTWVudSkgPyB0YWJsZVBvcG92ZXIucG9wb3ZlciA6IG51bGxcIlxuICAgICAgICAoY2VsbEZvY3VzZWQpPVwiX3RhYmxlUm93U2VydmljZS5jZWxsRm9jdXNlZCgkZXZlbnQpXCJcbiAgICAgICAgKGtleWRvd24uYXJyb3dMZWZ0KT1cIl90YWJsZVJvd1NlcnZpY2Uuc2Nyb2xsVG9PdmVybGFwcGVkQ2VsbCgpXCJcbiAgICAgICAgKGtleWRvd24uYXJyb3dSaWdodCk9XCJfdGFibGVSb3dTZXJ2aWNlLnNjcm9sbFRvT3ZlcmxhcHBlZENlbGwoKVwiXG4gICAgPlxuICAgICAgICA8ZmRwLXRhYmxlLWhlYWRlci1jZWxsLWNvbnRlbnRcbiAgICAgICAgICAgIFtpZF09XCJyb3dJZFwiXG4gICAgICAgICAgICBbY29sdW1uXT1cImNvbHVtblwiXG4gICAgICAgICAgICBbaGFzRmlsdGVyXT1cIihfZmRwVGFibGVTZXJ2aWNlLmZpbHRlclJ1bGVzJCB8IGFzeW5jKT8uaGFzKGNvbHVtbi5rZXkpID09PSB0cnVlXCJcbiAgICAgICAgICAgIFtoYXNTb3J0aW5nXT1cIihfZmRwVGFibGVTZXJ2aWNlLnNvcnRSdWxlcyQgfCBhc3luYyk/Lmhhcyhjb2x1bW4ua2V5KSA9PT0gdHJ1ZVwiXG4gICAgICAgICAgICBbc29ydGluZ109XCIoX2ZkcFRhYmxlU2VydmljZS5zb3J0UnVsZXMkIHwgYXN5bmMpPy5nZXQoY29sdW1uLmtleSlcIlxuICAgICAgICAgICAgW2F0dHIudGl0bGVdPVwiY29sdW1uLmxhYmVsXCJcbiAgICAgICAgPlxuICAgICAgICAgICAgPCEtLSBIZWFkZXIgbWVudSAtLT5cbiAgICAgICAgICAgIDxmZHAtdGFibGUtY2VsbC1oZWFkZXItcG9wb3ZlclxuICAgICAgICAgICAgICAgICN0YWJsZVBvcG92ZXJcbiAgICAgICAgICAgICAgICBbZGlzYWJsZWRdPVwiIShjb2x1bW4gfCBpc0NvbHVtbkhhc0hlYWRlck1lbnUpXCJcbiAgICAgICAgICAgICAgICBbY29sdW1uRnJvemVuXT1cImNvbHVtbi5fZnJlZXplZCB8fCBjb2x1bW4uX2VuZEZyZWV6ZWRcIlxuICAgICAgICAgICAgICAgIFtjb2x1bW5dPVwiY29sdW1uXCJcbiAgICAgICAgICAgICAgICBbcG9wb3ZlclRlbXBsYXRlXT1cIihjb2x1bW4gfCBpc0NvbHVtbkhhc0hlYWRlck1lbnUpID8gY29sdW1uLmhlYWRlckNlbGxQb3BvdmVyVGVtcGxhdGUgOiBudWxsXCJcbiAgICAgICAgICAgICAgICBbZmlsdGVyaW5nRnJvbUhlYWRlckRpc2FibGVkXT1cIl9mZHBUYWJsZVNlcnZpY2UuX2lzRmlsdGVyaW5nRnJvbUhlYWRlckRpc2FibGVkJCB8IGFzeW5jXCJcbiAgICAgICAgICAgID48L2ZkcC10YWJsZS1jZWxsLWhlYWRlci1wb3BvdmVyPlxuICAgICAgICA8L2ZkcC10YWJsZS1oZWFkZXItY2VsbC1jb250ZW50PlxuICAgIDwvdGg+XG48L25nLWNvbnRhaW5lcj5cblxuPHRoXG4gICAgKm5nSWY9XCJfZmRwVGFibGVTZXJ2aWNlLl9pc1Nob3duTmF2aWdhdGlvbkNvbHVtbiQgfCBhc3luY1wiXG4gICAgZmQtdGFibGUtY2VsbFxuICAgIGNsYXNzPVwiZmRwLXRhYmxlX19jZWxsLS1uYXZpZ2F0aW9uIGlzLWxhc3QtY2hpbGRcIlxuICAgIHJvbGU9XCJjb2x1bW5oZWFkZXJcIlxuPjwvdGg+XG5cbjx0aFxuICAgIGFyaWEtaGlkZGVuPVwidHJ1ZVwiXG4gICAgY2xhc3M9XCJmZC10YWJsZV9fY2VsbCBmZC10YWJsZV9fY2VsbC0tbW9ja1wiXG4gICAgW2NsYXNzLmZkLXRhYmxlX19jZWxsLS1tb2NrLWJvcmRlcmxlc3NdPVwiKF90YWJsZUNvbHVtblJlc2l6ZVNlcnZpY2UuY2VsbE1vY2tWaXNpYmxlJCB8IGFzeW5jKSAhPT0gdHJ1ZVwiXG4gICAgZmRrRGlzYWJsZWRcbj48L3RoPlxuIl19
|
|
146
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGUtaGVhZGVyLXJvdy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3BsYXRmb3JtL3NyYy9saWIvdGFibGUvY29tcG9uZW50cy90YWJsZS1oZWFkZXItcm93L3RhYmxlLWhlYWRlci1yb3cuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9wbGF0Zm9ybS9zcmMvbGliL3RhYmxlL2NvbXBvbmVudHMvdGFibGUtaGVhZGVyLXJvdy90YWJsZS1oZWFkZXItcm93LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsT0FBTyxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUUsT0FBTyxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDM0UsT0FBTyxFQUNILHVCQUF1QixFQUN2QixpQkFBaUIsRUFDakIsU0FBUyxFQUNULEtBQUssRUFFTCxJQUFJLEVBRUosU0FBUyxFQUNULFlBQVksRUFDWixpQkFBaUIsRUFDakIsVUFBVSxFQUNWLE1BQU0sRUFDVCxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUNoRSxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDN0MsT0FBTyxFQUNILHlCQUF5QixFQUN6Qiw0QkFBNEIsRUFDNUIsNEJBQTRCLEVBRTVCLFVBQVUsRUFDYixNQUFNLDRCQUE0QixDQUFDO0FBQ3BDLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQ25FLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLHVDQUF1QyxDQUFDO0FBQy9FLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBQ3hFLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxpQkFBaUIsRUFBRSw2QkFBNkIsRUFB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QVMsQ0FBQyxNQUFtQjtRQUN6QixPQUFPLENBQ0gsTUFBTSxDQUFDLFFBQVE7WUFDZixNQUFNLENBQUMsU0FBUztZQUNoQixNQUFNLENBQUMsU0FBUztZQUNoQixNQUFNLENBQUMsWUFBWTtZQUNuQixDQUFDLE1BQU0sQ0FBQyxVQUFVLElBQUksQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsK0JBQStCLENBQUMsS0FBSyxDQUFDLENBQ3RGLENBQUM7SUFDTixDQUFDOzhHQWJRLHlCQUF5Qjs0R0FBekIseUJBQXlCOzsyRkFBekIseUJBQXlCO2tCQUpyQyxJQUFJO21CQUFDO29CQUNGLElBQUksRUFBRSx1QkFBdUI7b0JBQzdCLFVBQVUsRUFBRSxJQUFJO2lCQUNuQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFzeW5jUGlwZSwgTmdDbGFzcywgTmdGb3IsIE5nSWYsIE5nU3R5bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHtcbiAgICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICBDb21wb25lbnQsXG4gICAgSW5wdXQsXG4gICAgT25Jbml0LFxuICAgIFBpcGUsXG4gICAgUGlwZVRyYW5zZm9ybSxcbiAgICBRdWVyeUxpc3QsXG4gICAgVmlld0NoaWxkcmVuLFxuICAgIFZpZXdFbmNhcHN1bGF0aW9uLFxuICAgIGZvcndhcmRSZWYsXG4gICAgaW5qZWN0XG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgdGFrZVVudGlsRGVzdHJveWVkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZS9yeGpzLWludGVyb3AnO1xuaW1wb3J0IHsgRm9ybXNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQge1xuICAgIERpc2FibGVkQmVoYXZpb3JEaXJlY3RpdmUsXG4gICAgRkRLX0ZPQ1VTQUJMRV9JVEVNX0RJUkVDVElWRSxcbiAgICBGREtfRk9DVVNBQkxFX0xJU1RfRElSRUNUSVZFLFxuICAgIEZvY3VzYWJsZUl0ZW1EaXJlY3RpdmUsXG4gICAgUnRsU2VydmljZVxufSBmcm9tICdAZnVuZGFtZW50YWwtbmd4L2Nkay91dGlscyc7XG5pbXBvcnQgeyBDaGVja2JveENvbXBvbmVudCB9IGZyb20gJ0BmdW5kYW1lbnRhbC1uZ3gvY29yZS9jaGVja2JveCc7XG5pbXBvcnQgeyBDb250ZW50RGVuc2l0eU9ic2VydmVyIH0gZnJvbSAnQGZ1bmRhbWVudGFsLW5neC9jb3JlL2NvbnRlbnQtZGVuc2l0eSc7XG5pbXBvcnQgeyBQb3BvdmVyVHJpZ2dlckRpcmVjdGl2ZSB9IGZyb20gJ0BmdW5kYW1lbnRhbC1uZ3gvY29yZS9wb3BvdmVyJztcbmltcG9ydCB7IFRhYmxlQ2VsbERpcmVjdGl2ZSwgVGFibGVSb3dEaXJlY3RpdmUsIFRhYmxlU3RhdHVzSW5kaWNhdG9yRGlyZWN0aXZlIH0gZnJvbSAnQGZ1bmRhbWVudGFsLW5neC9jb3JlL3RhYmxlJztcbmltcG9ydCB7IEZkVHJhbnNsYXRlUGlwZSB9IGZyb20gJ0BmdW5kYW1lbnRhbC1uZ3gvaTE4bic7XG5pbXBvcnQge1xuICAgIENvbHVtblJlc2l6YWJsZVNpZGVQaXBlLFxuICAgIFBsYXRmb3JtVGFibGVDZWxsUmVzaXphYmxlRGlyZWN0aXZlLFxuICAgIFNlbGVjdGlvbkNlbGxTdHlsZXNQaXBlLFxuICAgIFNlbGVjdGlvbk1vZGUsXG4gICAgU2VsZWN0aW9uTW9kZVZhbHVlLFxuICAgIFNvcnREaXJlY3Rpb24sXG4gICAgVGFibGVDZWxsU3R5bGVzUGlwZSxcbiAgICBUYWJsZUNvbHVtbixcbiAgICBUYWJsZUNvbHVtblJlc2l6ZVNlcnZpY2UsXG4gICAgVGFibGVDb2x1bW5Tb3J0aW5nRGlyZWN0aW9uUGlwZSxcbiAgICBUYWJsZVJvd1NlcnZpY2UsXG4gICAgVGFibGVTZXJ2aWNlXG59IGZyb20gJ0BmdW5kYW1lbnRhbC1uZ3gvcGxhdGZvcm0vdGFibGUtaGVscGVycyc7XG5pbXBvcnQgeyBUYWJsZUNlbGxIZWFkZXJQb3BvdmVyQ29tcG9uZW50IH0gZnJvbSAnLi4vdGFibGUtY2VsbC1oZWFkZXItcG9wb3Zlci90YWJsZS1jZWxsLWhlYWRlci1wb3BvdmVyLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBUYWJsZUhlYWRlckNlbGxDb250ZW50Q29tcG9uZW50IH0gZnJvbSAnLi4vdGFibGUtaGVhZGVyLWNlbGwtY29udGVudC90YWJsZS1oZWFkZXItY2VsbC1jb250ZW50LmNvbXBvbmVudCc7XG5cbkBDb21wb25lbnQoe1xuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvY29tcG9uZW50LXNlbGVjdG9yXG4gICAgc2VsZWN0b3I6ICdbZmRwLXRhYmxlLWhlYWRlci1yb3ddJyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vdGFibGUtaGVhZGVyLXJvdy5jb21wb25lbnQuaHRtbCcsXG4gICAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgICBwcm92aWRlcnM6IFtcbiAgICAgICAge1xuICAgICAgICAgICAgcHJvdmlkZTogRkRLX0ZPQ1VTQUJMRV9MSVNUX0RJUkVDVElWRSxcbiAgICAgICAgICAgIHVzZUV4aXN0aW5nOiBUYWJsZUhlYWRlclJvd0NvbXBvbmVudFxuICAgICAgICB9XG4gICAgXSxcbiAgICBob3N0OiB7XG4gICAgICAgIHJvbGU6ICdyb3cnXG4gICAgfSxcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxuICAgIGltcG9ydHM6IFtcbiAgICAgICAgTmdJZixcbiAgICAgICAgVGFibGVDZWxsRGlyZWN0aXZlLFxuICAgICAgICBUYWJsZVN0YXR1c0luZGljYXRvckRpcmVjdGl2ZSxcbiAgICAgICAgRGlzYWJsZWRCZWhhdmlvckRpcmVjdGl2ZSxcbiAgICAgICAgQ2hlY2tib3hDb21wb25lbnQsXG4gICAgICAgIEZvcm1zTW9kdWxlLFxuICAgICAgICBOZ0ZvcixcbiAgICAgICAgUGxhdGZvcm1UYWJsZUNlbGxSZXNpemFibGVEaXJlY3RpdmUsXG4gICAgICAgIE5nQ2xhc3MsXG4gICAgICAgIE5nU3R5bGUsXG4gICAgICAgIFBvcG92ZXJUcmlnZ2VyRGlyZWN0aXZlLFxuICAgICAgICBUYWJsZUhlYWRlckNlbGxDb250ZW50Q29tcG9uZW50LFxuICAgICAgICBUYWJsZUNlbGxIZWFkZXJQb3BvdmVyQ29tcG9uZW50LFxuICAgICAgICBBc3luY1BpcGUsXG4gICAgICAgIEZkVHJhbnNsYXRlUGlwZSxcbiAgICAgICAgU2VsZWN0aW9uQ2VsbFN0eWxlc1BpcGUsXG4gICAgICAgIFRhYmxlQ2VsbFN0eWxlc1BpcGUsXG4gICAgICAgIENvbHVtblJlc2l6YWJsZVNpZGVQaXBlLFxuICAgICAgICBUYWJsZUNvbHVtblNvcnRpbmdEaXJlY3Rpb25QaXBlLFxuICAgICAgICBmb3J3YXJkUmVmKCgpID0+IElzQ29sdW1uSGFzSGVhZGVyTWVudVBpcGUpXG4gICAgXVxufSlcbmV4cG9ydCBjbGFzcyBUYWJsZUhlYWRlclJvd0NvbXBvbmVudCBleHRlbmRzIFRhYmxlUm93RGlyZWN0aXZlIGltcGxlbWVudHMgT25Jbml0IHtcbiAgICAvKiogVGFibGUgSUQuICovXG4gICAgQElucHV0KClcbiAgICByb3dJZDogc3RyaW5nO1xuXG4gICAgLyoqXG4gICAgICogV2hldGhlciB0byBmaXggdGhlIHRhYmxlIGhlYWRlciBhbmQgZm9vdGVyLiBEZWZhdWx0IGlzIHRydWUuXG4gICAgICogTm90ZSB0aGF0IGlmIHRoZSB0YWJsZSBjb250YWlucyBmcmVlemFibGUgY29sdW1ucywgdGhlIGhlYWRlciBhbmRcbiAgICAgKiBmb290ZXIgd2lsbCBiZSBmaXhlZCBhdXRvbWF0aWNhbGx5LCByZWdhcmRsZXNzIG9mIHRoaXMgaW5wdXQgdmFsdWUuXG4gICAgICogKi9cbiAgICBASW5wdXQoKVxuICAgIGZpeGVkOiBib29sZWFuO1xuXG4gICAgLyoqXG4gICAgICogV2hldGhlciB0byBzaG93IHNlbGVjdGlvbiBjb2x1bW4uXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBpc1Nob3duU2VsZWN0aW9uQ29sdW1uOiBib29sZWFuO1xuXG4gICAgLyoqXG4gICAgICogUm93IGNoZWNrZWQgc3RhdGUuXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBjaGVja2VkU3RhdGU6IGJvb2xlYW4gfCBudWxsO1xuXG4gICAgLyoqXG4gICAgICogU2VsZWN0aW9uIG1vZGUuXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBzZWxlY3Rpb25Nb2RlOiBTZWxlY3Rpb25Nb2RlVmFsdWU7XG5cbiAgICAvKipcbiAgICAgKiBTZWxlY3Rpb24gY29sdW1uIHdpZHRoLlxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgc2VsZWN0aW9uQ29sdW1uV2lkdGg6IG51bWJlcjtcblxuICAgIC8qKiBUaGUgY29sdW1uIGBuYW1lYCB0byBmcmVlemUgY29sdW1ucyB1cCB0byBhbmQgaW5jbHVkaW5nLiAqL1xuICAgIEBJbnB1dCgpXG4gICAgZnJlZXplQ29sdW1uc1RvOiBzdHJpbmc7XG5cbiAgICAvKiogVGhlIGNvbHVtbiBgbmFtZWAgdG8gZnJlZXplIGNvbHVtbnMgYWZ0ZXIgYW5kIGluY2x1ZGluZy4gKi9cbiAgICBASW5wdXQoKVxuICAgIGZyZWV6ZUVuZENvbHVtbnNUbzogc3RyaW5nO1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBASW5wdXQoKVxuICAgIGRpc2FibGVTZWxlY3Rpb25DaGVja2JveCA9IGZhbHNlO1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBAVmlld0NoaWxkcmVuKEZES19GT0NVU0FCTEVfSVRFTV9ESVJFQ1RJVkUpXG4gICAgcHJpdmF0ZSBzZXQgX2ZvY3VzYWJsZUNlbGxJdGVtcyhpdGVtczogUXVlcnlMaXN0PEZvY3VzYWJsZUl0ZW1EaXJlY3RpdmU+KSB7XG4gICAgICAgIHRoaXMuc2V0SXRlbXMoaXRlbXMpO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgX3J0bCA9IGZhbHNlO1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICByZWFkb25seSBTRUxFQ1RJT05fTU9ERSA9IFNlbGVjdGlvbk1vZGU7XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHJlYWRvbmx5IFNPUlRfRElSRUNUSU9OID0gU29ydERpcmVjdGlvbjtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcmVhZG9ubHkgX3RhYmxlQ29sdW1uUmVzaXplU2VydmljZSA9IGluamVjdChUYWJsZUNvbHVtblJlc2l6ZVNlcnZpY2UpO1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICByZWFkb25seSBfZmRwVGFibGVTZXJ2aWNlID0gaW5qZWN0KFRhYmxlU2VydmljZSk7XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHJlYWRvbmx5IF9jb250ZW50RGVuc2l0eU9ic2VydmVyID0gaW5qZWN0KENvbnRlbnREZW5zaXR5T2JzZXJ2ZXIpO1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICByZWFkb25seSBfdGFibGVSb3dTZXJ2aWNlID0gaW5qZWN0KFRhYmxlUm93U2VydmljZSk7XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgcmVhZG9ubHkgX3J0bFNlcnZpY2UgPSBpbmplY3QoUnRsU2VydmljZSwge1xuICAgICAgICBvcHRpb25hbDogdHJ1ZVxuICAgIH0pO1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIHJlYWRvbmx5IF9jZHIgPSBpbmplY3QoQ2hhbmdlRGV0ZWN0b3JSZWYpO1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBjb25zdHJ1Y3RvcigpIHtcbiAgICAgICAgc3VwZXIoKTtcbiAgICAgICAgdGhpcy5fcnRsU2VydmljZT8ucnRsLnBpcGUodGFrZVVudGlsRGVzdHJveWVkKCkpLnN1YnNjcmliZSgoaXNSdGwpID0+IHtcbiAgICAgICAgICAgIHRoaXMuX3J0bCA9IGlzUnRsO1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIG5nT25Jbml0KCk6IHZvaWQge1xuICAgICAgICBzdXBlci5uZ09uSW5pdCgpO1xuICAgICAgICB0aGlzLl90YWJsZUNvbHVtblJlc2l6ZVNlcnZpY2UubWFya0ZvckNoZWNrLnBpcGUodGFrZVVudGlsRGVzdHJveWVkKHRoaXMuX2Rlc3Ryb3lSZWYpKS5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICAgICAgdGhpcy5fY2RyLmRldGVjdENoYW5nZXMoKTtcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBfY29sdW1uVHJhY2tCeShpbmRleDogbnVtYmVyLCBjb2x1bW46IFRhYmxlQ29sdW1uKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIGNvbHVtbi5uYW1lO1xuICAgIH1cbn1cblxuLyoqIEBoaWRkZW4gKi9cbkBQaXBlKHtcbiAgICBuYW1lOiAnaXNDb2x1bW5IYXNIZWFkZXJNZW51JyxcbiAgICBzdGFuZGFsb25lOiB0cnVlXG59KVxuZXhwb3J0IGNsYXNzIElzQ29sdW1uSGFzSGVhZGVyTWVudVBpcGUgaW1wbGVtZW50cyBQaXBlVHJhbnNmb3JtIHtcbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgcmVhZG9ubHkgX2ZkcFRhYmxlU2VydmljZSA9IGluamVjdChUYWJsZVNlcnZpY2UpO1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICB0cmFuc2Zvcm0oY29sdW1uOiBUYWJsZUNvbHVtbik6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgY29sdW1uLnNvcnRhYmxlIHx8XG4gICAgICAgICAgICBjb2x1bW4uZ3JvdXBhYmxlIHx8XG4gICAgICAgICAgICBjb2x1bW4uZnJlZXphYmxlIHx8XG4gICAgICAgICAgICBjb2x1bW4uZW5kRnJlZXphYmxlIHx8XG4gICAgICAgICAgICAoY29sdW1uLmZpbHRlcmFibGUgJiYgIXRoaXMuX2ZkcFRhYmxlU2VydmljZS5faXNGaWx0ZXJpbmdGcm9tSGVhZGVyRGlzYWJsZWQkLnZhbHVlKVxuICAgICAgICApO1xuICAgIH1cbn1cbiIsIjx0aFxuICAgICpuZ0lmPVwiX2ZkcFRhYmxlU2VydmljZS5fc2VtYW50aWNIaWdobGlnaHRpbmckIHwgYXN5bmNcIlxuICAgIFtjbGFzcy5mZC10YWJsZV9fY2VsbC0tZml4ZWRdPVwiZml4ZWRcIlxuICAgIGZkLXRhYmxlLWNlbGxcbiAgICBmZC10YWJsZS1zdGF0dXMtaW5kaWNhdG9yXG4gICAgZmRrRGlzYWJsZWRcbiAgICBbc3R5bGUubWluLXdpZHRoXT1cIl9mZHBUYWJsZVNlcnZpY2UuX3NlbWFudGljSGlnaGxpZ2h0aW5nQ29sdW1uV2lkdGgkIHwgYXN5bmNcIlxuICAgIFtzdHlsZS5tYXgtd2lkdGhdPVwiX2ZkcFRhYmxlU2VydmljZS5fc2VtYW50aWNIaWdobGlnaHRpbmdDb2x1bW5XaWR0aCQgfCBhc3luY1wiXG4+PC90aD5cblxuPHRoXG4gICAgKm5nSWY9XCJpc1Nob3duU2VsZWN0aW9uQ29sdW1uXCJcbiAgICBmZC10YWJsZS1jZWxsXG4gICAgW2ZvY3VzYWJsZV09XCJ0cnVlXCJcbiAgICBbY2xhc3MuZmQtdGFibGVfX2NlbGwtLWZpeGVkXT1cImZpeGVkXCJcbiAgICBjbGFzcz1cImZkLXRhYmxlX19jZWxsLS1jaGVja2JveFwiXG4gICAgW3N0eWxlXT1cIlxuICAgICAgICBfY29udGVudERlbnNpdHlPYnNlcnZlclxuICAgICAgICAgICAgfCBhc3luY1xuICAgICAgICAgICAgfCBzZWxlY3Rpb25DZWxsU3R5bGVzIDogX3J0bCA6IChfZmRwVGFibGVTZXJ2aWNlLl9zZW1hbnRpY0hpZ2hsaWdodGluZ0NvbHVtbldpZHRoJCB8IGFzeW5jKVxuICAgIFwiXG4gICAgKGtleWRvd24uZW50ZXIpPVwiX3RhYmxlUm93U2VydmljZS50b2dnbGVBbGxTZWxlY3RhYmxlUm93cyghY2hlY2tlZFN0YXRlKVwiXG4gICAgKGtleWRvd24uc3BhY2UpPVwiX3RhYmxlUm93U2VydmljZS50b2dnbGVBbGxTZWxlY3RhYmxlUm93cyghY2hlY2tlZFN0YXRlKVwiXG4gICAgKGNlbGxGb2N1c2VkKT1cIl90YWJsZVJvd1NlcnZpY2UuY2VsbEZvY3VzZWQoJGV2ZW50KVwiXG4gICAgW2F0dHIuYXJpYS1kZXNjcmlwdGlvbl09XCJcbiAgICAgICAgIWNoZWNrZWRTdGF0ZVxuICAgICAgICAgICAgPyAoJ3BsYXRmb3JtVGFibGUuc2VsZWN0QWxsQ2hlY2tib3hMYWJlbCcgfCBmZFRyYW5zbGF0ZSlcbiAgICAgICAgICAgIDogKCdwbGF0Zm9ybVRhYmxlLmRlc2VsZWN0QWxsQ2hlY2tib3hMYWJlbCcgfCBmZFRyYW5zbGF0ZSlcbiAgICBcIlxuPlxuICAgIDxmZC1jaGVja2JveFxuICAgICAgICB0YWJJbmRleFZhbHVlPVwiLTFcIlxuICAgICAgICAqbmdJZj1cInNlbGVjdGlvbk1vZGUgPT09IFNFTEVDVElPTl9NT0RFLk1VTFRJUExFXCJcbiAgICAgICAgbGFiZWxDbGFzcz1cImZkLXRhYmxlX19jaGVja2JveC1sYWJlbFwiXG4gICAgICAgIFtmZGtEaXNhYmxlZF09XCJfZmRwVGFibGVTZXJ2aWNlLnZpc2libGVDb2x1bW5zTGVuZ3RoID09PSAwIHx8IGRpc2FibGVTZWxlY3Rpb25DaGVja2JveFwiXG4gICAgICAgIFt0cmlzdGF0ZV09XCJ0cnVlXCJcbiAgICAgICAgW3RyaXN0YXRlU2VsZWN0YWJsZV09XCJmYWxzZVwiXG4gICAgICAgIFtuZ01vZGVsXT1cImNoZWNrZWRTdGF0ZVwiXG4gICAgICAgIChuZ01vZGVsQ2hhbmdlKT1cIl90YWJsZVJvd1NlcnZpY2UudG9nZ2xlQWxsU2VsZWN0YWJsZVJvd3MoJGV2ZW50KVwiXG4gICAgPjwvZmQtY2hlY2tib3g+XG48L3RoPlxuXG48bmctY29udGFpbmVyXG4gICAgKm5nRm9yPVwiXG4gICAgICAgIGxldCBjb2x1bW4gb2YgX2ZkcFRhYmxlU2VydmljZS52aXNpYmxlQ29sdW1ucyQgfCBhc3luYztcbiAgICAgICAgbGV0IGNvbElkeCA9IGluZGV4O1xuICAgICAgICB0cmFja0J5OiBfY29sdW1uVHJhY2tCeTtcbiAgICAgICAgbGFzdCBhcyBpc0xhc3RcbiAgICBcIlxuPlxuICAgIDx0aFxuICAgICAgICBbZm9jdXNhYmxlXT1cInRydWVcIlxuICAgICAgICByb2xlPVwiY29sdW1uaGVhZGVyXCJcbiAgICAgICAgW2ZkcFRhYmxlQ2VsbFJlc2l6YWJsZV09XCJcbiAgICAgICAgICAgIGNvbElkeFxuICAgICAgICAgICAgICAgIHwgY29sdW1uUmVzaXphYmxlU2lkZVxuICAgICAgICAgICAgICAgICAgICA6IF9mZHBUYWJsZVNlcnZpY2UudmlzaWJsZUNvbHVtbnNMZW5ndGhcbiAgICAgICAgICAgICAgICAgICAgOiAoX2ZkcFRhYmxlU2VydmljZS5faXNTaG93bk5hdmlnYXRpb25Db2x1bW4kIHwgYXN5bmMpXG4gICAgICAgIFwiXG4gICAgICAgIFtjb2x1bW5OYW1lXT1cImNvbHVtbi5uYW1lXCJcbiAgICAgICAgW2lkXT1cInJvd0lkICsgJ19fJyArIGNvbHVtbi5uYW1lXCJcbiAgICAgICAgW2F0dHIuYXJpYS1jb2xpbmRleF09XCJjb2xJZHhcIlxuICAgICAgICBbYXR0ci5hcmlhLXNvcnRdPVwiKF9mZHBUYWJsZVNlcnZpY2Uuc29ydFJ1bGVzJCB8IGFzeW5jKT8uZ2V0KGNvbHVtbi5rZXkpIHwgZmRwVGFibGVDb2x1bW5Tb3J0aW5nRGlyZWN0aW9uXCJcbiAgICAgICAgW25nQ2xhc3NdPVwiW1xuICAgICAgICAgICAgJ2ZkcC10YWJsZV9fY29sLS0nICsgY29sdW1uLm5hbWUsXG4gICAgICAgICAgICBjb2x1bW4uX2ZyZWV6ZWQgPyAnZmQtdGFibGVfX2NlbGwtLWZpeGVkJyA6ICcnLFxuICAgICAgICAgICAgY29sdW1uLm5hbWUgPT09IGZyZWV6ZUNvbHVtbnNUbyA/ICdmZC10YWJsZV9fY2VsbC0tZml4ZWQtbGFzdCcgOiAnJyxcbiAgICAgICAgICAgIGNvbHVtbi5fZW5kRnJlZXplZCA/ICdmZC10YWJsZV9fY2VsbC0tZml4ZWQtZW5kJyA6ICcnLFxuICAgICAgICAgICAgY29sdW1uLm5hbWUgPT09IGZyZWV6ZUVuZENvbHVtbnNUbyA/ICdmZC10YWJsZV9fY2VsbC0tZml4ZWQtZW5kLWxhc3QnIDogJycsXG4gICAgICAgICAgICBpc0xhc3QgJiYgKF9mZHBUYWJsZVNlcnZpY2UuX2lzU2hvd25OYXZpZ2F0aW9uQ29sdW1uJCB8IGFzeW5jKSAhPT0gdHJ1ZSA/ICdpcy1sYXN0LWNoaWxkJyA6ICcnLFxuICAgICAgICAgICAgKGNvbHVtbiB8IGlzQ29sdW1uSGFzSGVhZGVyTWVudSkgPyAnZmQtdGFibGVfX2l0ZW0tLWNsaWNrYWJsZScgOiAnJ1xuICAgICAgICBdXCJcbiAgICAgICAgW25nU3R5bGVdPVwiXG4gICAgICAgICAgICBjb2x1bW5cbiAgICAgICAgICAgICAgICB8IHRhYmxlQ2VsbFN0eWxlc1xuICAgICAgICAgICAgICAgICAgICA6IF9ydGxcbiAgICAgICAgICAgICAgICAgICAgOiAoX2ZkcFRhYmxlU2VydmljZS5fc2VtYW50aWNIaWdobGlnaHRpbmdDb2x1bW5XaWR0aCQgfCBhc3luYylcbiAgICAgICAgICAgICAgICAgICAgOiBzZWxlY3Rpb25Db2x1bW5XaWR0aFxuICAgICAgICAgICAgICAgICAgICA6IGNvbHVtbi5fZnJlZXplZFxuICAgICAgICAgICAgICAgICAgICA6IGNvbHVtbi5fZW5kRnJlZXplZFxuICAgICAgICAgICAgICAgICAgICA6IF90YWJsZUNvbHVtblJlc2l6ZVNlcnZpY2UuZ2V0UHJldkNvbHVtbnNXaWR0aChjb2x1bW4ubmFtZSlcbiAgICAgICAgICAgICAgICAgICAgOiBfdGFibGVDb2x1bW5SZXNpemVTZXJ2aWNlLmdldENvbHVtbldpZHRoU3R5bGUoY29sdW1uLm5hbWUpXG4gICAgICAgICAgICAgICAgICAgIDogX3RhYmxlQ29sdW1uUmVzaXplU2VydmljZS5nZXROZXh0Q29sdW1uc1dpZHRoKGNvbHVtbi5uYW1lKVxuICAgICAgICBcIlxuICAgICAgICBbZmRQb3BvdmVyVHJpZ2dlcl09XCIoY29sdW1uIHwgaXNDb2x1bW5IYXNIZWFkZXJNZW51KSA/IHRhYmxlUG9wb3Zlci5wb3BvdmVyIDogbnVsbFwiXG4gICAgICAgIChjZWxsRm9jdXNlZCk9XCJfdGFibGVSb3dTZXJ2aWNlLmNlbGxGb2N1c2VkKCRldmVudClcIlxuICAgICAgICAoa2V5ZG93bi5hcnJvd0xlZnQpPVwiX3RhYmxlUm93U2VydmljZS5zY3JvbGxUb092ZXJsYXBwZWRDZWxsKClcIlxuICAgICAgICAoa2V5ZG93bi5hcnJvd1JpZ2h0KT1cIl90YWJsZVJvd1NlcnZpY2Uuc2Nyb2xsVG9PdmVybGFwcGVkQ2VsbCgpXCJcbiAgICA+XG4gICAgICAgIDxmZHAtdGFibGUtaGVhZGVyLWNlbGwtY29udGVudFxuICAgICAgICAgICAgW2lkXT1cInJvd0lkXCJcbiAgICAgICAgICAgIFtjb2x1bW5dPVwiY29sdW1uXCJcbiAgICAgICAgICAgIFtoYXNGaWx0ZXJdPVwiKF9mZHBUYWJsZVNlcnZpY2UuZmlsdGVyUnVsZXMkIHwgYXN5bmMpPy5oYXMoY29sdW1uLmtleSkgPT09IHRydWVcIlxuICAgICAgICAgICAgW2hhc1NvcnRpbmddPVwiKF9mZHBUYWJsZVNlcnZpY2Uuc29ydFJ1bGVzJCB8IGFzeW5jKT8uaGFzKGNvbHVtbi5rZXkpID09PSB0cnVlXCJcbiAgICAgICAgICAgIFtzb3J0aW5nXT1cIihfZmRwVGFibGVTZXJ2aWNlLnNvcnRSdWxlcyQgfCBhc3luYyk/LmdldChjb2x1bW4ua2V5KVwiXG4gICAgICAgICAgICBbYXR0ci50aXRsZV09XCJjb2x1bW4ubGFiZWxcIlxuICAgICAgICA+XG4gICAgICAgICAgICA8IS0tIEhlYWRlciBtZW51IC0tPlxuICAgICAgICAgICAgPGZkcC10YWJsZS1jZWxsLWhlYWRlci1wb3BvdmVyXG4gICAgICAgICAgICAgICAgI3RhYmxlUG9wb3ZlclxuICAgICAgICAgICAgICAgIFtkaXNhYmxlZF09XCIhKGNvbHVtbiB8IGlzQ29sdW1uSGFzSGVhZGVyTWVudSlcIlxuICAgICAgICAgICAgICAgIFtjb2x1bW5Gcm96ZW5dPVwiY29sdW1uLl9mcmVlemVkIHx8IGNvbHVtbi5fZW5kRnJlZXplZFwiXG4gICAgICAgICAgICAgICAgW2NvbHVtbl09XCJjb2x1bW5cIlxuICAgICAgICAgICAgICAgIFtwb3BvdmVyVGVtcGxhdGVdPVwiKGNvbHVtbiB8IGlzQ29sdW1uSGFzSGVhZGVyTWVudSkgPyBjb2x1bW4uaGVhZGVyQ2VsbFBvcG92ZXJUZW1wbGF0ZSA6IG51bGxcIlxuICAgICAgICAgICAgICAgIFtmaWx0ZXJpbmdGcm9tSGVhZGVyRGlzYWJsZWRdPVwiX2ZkcFRhYmxlU2VydmljZS5faXNGaWx0ZXJpbmdGcm9tSGVhZGVyRGlzYWJsZWQkIHwgYXN5bmNcIlxuICAgICAgICAgICAgPjwvZmRwLXRhYmxlLWNlbGwtaGVhZGVyLXBvcG92ZXI+XG4gICAgICAgIDwvZmRwLXRhYmxlLWhlYWRlci1jZWxsLWNvbnRlbnQ+XG4gICAgPC90aD5cbjwvbmctY29udGFpbmVyPlxuXG48dGhcbiAgICAqbmdJZj1cIl9mZHBUYWJsZVNlcnZpY2UuX2lzU2hvd25OYXZpZ2F0aW9uQ29sdW1uJCB8IGFzeW5jXCJcbiAgICBmZC10YWJsZS1jZWxsXG4gICAgY2xhc3M9XCJmZHAtdGFibGVfX2NlbGwtLW5hdmlnYXRpb24gaXMtbGFzdC1jaGlsZFwiXG4gICAgcm9sZT1cImNvbHVtbmhlYWRlclwiXG4+PC90aD5cblxuPHRoXG4gICAgYXJpYS1oaWRkZW49XCJ0cnVlXCJcbiAgICBjbGFzcz1cImZkLXRhYmxlX19jZWxsIGZkLXRhYmxlX19jZWxsLS1tb2NrXCJcbiAgICBbY2xhc3MuZmQtdGFibGVfX2NlbGwtLW1vY2stYm9yZGVybGVzc109XCIoX3RhYmxlQ29sdW1uUmVzaXplU2VydmljZS5jZWxsTW9ja1Zpc2libGUkIHwgYXN5bmMpICE9PSB0cnVlXCJcbiAgICBmZGtEaXNhYmxlZFxuPjwvdGg+XG4iXX0=
|