desy-angular 9.1.0 → 10.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/esm2022/lib/desy-buttons/components/button/button.component.mjs +3 -3
- package/esm2022/lib/desy-buttons/components/listbox/listbox.component.mjs +3 -3
- package/esm2022/lib/desy-forms/components/search-bar/search-bar.component.mjs +3 -3
- package/esm2022/lib/desy-modals/components/dialog/dialog.component.mjs +3 -3
- package/esm2022/lib/desy-modals/components/modal/modal.component.mjs +3 -3
- package/esm2022/lib/desy-nav/components/breadcrumbs/breadcrumbs.component.mjs +5 -3
- package/esm2022/lib/desy-nav/components/footer/footer.component.mjs +5 -3
- package/esm2022/lib/desy-nav/components/header/header-navigation/header-navigation-item/header-navigation-item.component.mjs +3 -3
- package/esm2022/lib/desy-nav/components/header/header-navigation/header-navigation.component.mjs +4 -5
- package/esm2022/lib/desy-nav/components/header/header-offcanvas/header-offcanvas-button/header-offcanvas-button.component.mjs +3 -3
- package/esm2022/lib/desy-nav/components/header/header-offcanvas/header-offcanvas-close-button/header-offcanvas-close-button.component.mjs +3 -3
- package/esm2022/lib/desy-nav/components/header/header-offcanvas/header-offcanvas.component.mjs +6 -6
- package/esm2022/lib/desy-nav/components/header/header.component.mjs +1 -1
- package/esm2022/lib/desy-nav/components/header-advanced/header-advanced-custom-navigation/header-custom-navigation.component.mjs +14 -0
- package/esm2022/lib/desy-nav/components/header-advanced/header-advanced-dropdown/header-advanced-dropdown.component.mjs +38 -0
- package/esm2022/lib/desy-nav/components/header-advanced/header-advanced-logo/header-advanced-logo.component.mjs +33 -0
- package/esm2022/lib/desy-nav/components/header-advanced/header-advanced-sub/header-advanced-sub.component.mjs +38 -0
- package/esm2022/lib/desy-nav/components/header-advanced/header-advanced-subtitle/header-advanced-subtitle.component.mjs +14 -0
- package/esm2022/lib/desy-nav/components/header-advanced/header-advanced-super/header-advanced-super.component.mjs +38 -0
- package/esm2022/lib/desy-nav/components/header-advanced/header-advanced-title/header-advanced-title.component.mjs +19 -0
- package/esm2022/lib/desy-nav/components/header-advanced/header-advanced-title-container/header-advanced-title-container.component.mjs +34 -0
- package/esm2022/lib/desy-nav/components/header-advanced/header-advanced.component.mjs +53 -0
- package/esm2022/lib/desy-nav/components/header-mini/header-mini.component.mjs +31 -0
- package/esm2022/lib/desy-nav/components/links-list/links-list.component.mjs +4 -6
- package/esm2022/lib/desy-nav/components/menu-horizontal/menu-horizontal.component.mjs +4 -7
- package/esm2022/lib/desy-nav/components/menu-navigation/menu-navigation.component.mjs +31 -29
- package/esm2022/lib/desy-nav/components/menu-vertical/menu-vertical.component.mjs +9 -21
- package/esm2022/lib/desy-nav/components/menubar/menubar.component.mjs +8 -8
- package/esm2022/lib/desy-nav/components/nav/nav-item/nav-item.component.mjs +1 -1
- package/esm2022/lib/desy-nav/components/nav/nav.component.mjs +6 -7
- package/esm2022/lib/desy-nav/components/notification/notification.component.mjs +3 -3
- package/esm2022/lib/desy-nav/desy-nav.module.mjs +94 -39
- package/esm2022/lib/desy-nav/directives/dynamic-heading.directive.mjs +40 -0
- package/esm2022/lib/desy-nav/interfaces/header-advanced-logo.mjs +7 -0
- package/esm2022/lib/desy-pagination/components/pagination/pagination.component.mjs +47 -5
- package/esm2022/lib/desy-tables/components/table/components/table-footer.component.mjs +18 -0
- package/esm2022/lib/desy-tables/components/table/table.component.mjs +26 -6
- package/esm2022/lib/desy-tables/components/table-advanced/components/table-advanced-footer-cell.component.mjs +23 -0
- package/esm2022/lib/desy-tables/components/table-advanced/components/table-advanced-footer.component.mjs +27 -0
- package/esm2022/lib/desy-tables/components/table-advanced/table-advanced.component.mjs +14 -5
- package/esm2022/lib/desy-tables/desy-tables.module.mjs +29 -14
- package/esm2022/lib/desy-views/components/accordion/accordion.component.mjs +4 -9
- package/esm2022/lib/desy-views/components/accordion-history/accordion-history.component.mjs +3 -3
- package/esm2022/lib/desy-views/components/card/card.component.mjs +3 -3
- package/esm2022/lib/desy-views/components/tabs/tabs.component.mjs +3 -3
- package/esm2022/public-api.mjs +94 -79
- package/fesm2022/desy-angular.mjs +3247 -2786
- package/fesm2022/desy-angular.mjs.map +1 -1
- package/lib/desy-nav/components/breadcrumbs/breadcrumbs.component.d.ts +2 -1
- package/lib/desy-nav/components/footer/footer.component.d.ts +2 -1
- package/lib/desy-nav/components/header/header-navigation/header-navigation-item/header-navigation-item.component.d.ts +2 -2
- package/lib/desy-nav/components/header/header-navigation/header-navigation.component.d.ts +2 -2
- package/lib/desy-nav/components/header/header-offcanvas/header-offcanvas-button/header-offcanvas-button.component.d.ts +1 -1
- package/lib/desy-nav/components/header/header-offcanvas/header-offcanvas-close-button/header-offcanvas-close-button.component.d.ts +1 -1
- package/lib/desy-nav/components/header/header-offcanvas/header-offcanvas.component.d.ts +2 -2
- package/lib/desy-nav/components/header-advanced/header-advanced-custom-navigation/header-custom-navigation.component.d.ts +5 -0
- package/lib/desy-nav/components/header-advanced/header-advanced-dropdown/header-advanced-dropdown.component.d.ts +14 -0
- package/lib/desy-nav/components/header-advanced/header-advanced-logo/header-advanced-logo.component.d.ts +14 -0
- package/lib/desy-nav/components/header-advanced/header-advanced-sub/header-advanced-sub.component.d.ts +17 -0
- package/lib/desy-nav/components/header-advanced/header-advanced-subtitle/header-advanced-subtitle.component.d.ts +6 -0
- package/lib/desy-nav/components/header-advanced/header-advanced-super/header-advanced-super.component.d.ts +17 -0
- package/lib/desy-nav/components/header-advanced/header-advanced-title/header-advanced-title.component.d.ts +8 -0
- package/lib/desy-nav/components/header-advanced/header-advanced-title-container/header-advanced-title-container.component.d.ts +15 -0
- package/lib/desy-nav/components/header-advanced/header-advanced.component.d.ts +16 -0
- package/lib/desy-nav/components/header-mini/header-mini.component.d.ts +12 -0
- package/lib/desy-nav/components/menu-navigation/menu-navigation.component.d.ts +4 -2
- package/lib/desy-nav/components/menubar/menubar.component.d.ts +4 -4
- package/lib/desy-nav/components/nav/nav-item/nav-item.component.d.ts +1 -1
- package/lib/desy-nav/components/nav/nav.component.d.ts +2 -1
- package/lib/desy-nav/desy-nav.module.d.ts +40 -29
- package/lib/desy-nav/directives/dynamic-heading.directive.d.ts +15 -0
- package/lib/desy-nav/interfaces/header-advanced-logo.d.ts +5 -0
- package/lib/desy-pagination/components/pagination/pagination.component.d.ts +14 -2
- package/lib/desy-tables/components/table/components/table-footer.component.d.ts +8 -0
- package/lib/desy-tables/components/table/table.component.d.ts +7 -3
- package/lib/desy-tables/components/table-advanced/components/table-advanced-footer-cell.component.d.ts +11 -0
- package/lib/desy-tables/components/table-advanced/components/table-advanced-footer.component.d.ts +11 -0
- package/lib/desy-tables/components/table-advanced/table-advanced.component.d.ts +10 -6
- package/lib/desy-tables/desy-tables.module.d.ts +19 -16
- package/package.json +2 -2
- package/public-api.d.ts +93 -78
|
@@ -1,23 +1,26 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { A11yModule } from '@angular/cdk/a11y';
|
|
2
2
|
import { CommonModule } from '@angular/common';
|
|
3
|
+
import { NgModule } from '@angular/core';
|
|
3
4
|
import { FormsModule, ReactiveFormsModule } from '@angular/forms';
|
|
4
|
-
import { A11yModule } from '@angular/cdk/a11y';
|
|
5
|
-
import { SharedModule } from '../shared/shared.module';
|
|
6
5
|
import { DesyFormsModule } from '../desy-forms/desy-forms.module';
|
|
7
|
-
import {
|
|
6
|
+
import { SharedModule } from '../shared/shared.module';
|
|
7
|
+
import { TableAdvancedFooterCellComponent } from './components/table-advanced/components/table-advanced-footer-cell.component';
|
|
8
|
+
import { TableAdvancedFooterComponent } from './components/table-advanced/components/table-advanced-footer.component';
|
|
9
|
+
import { TableAdvancedHeaderCellComponent } from './components/table-advanced/components/table-advanced-header-cell.component';
|
|
10
|
+
import { TableAdvancedHeaderComponent } from './components/table-advanced/components/table-advanced-header.component';
|
|
11
|
+
import { TableAdvancedRowCellComponent } from './components/table-advanced/components/table-advanced-row-cell.component';
|
|
12
|
+
import { TableAdvancedRowComponent } from './components/table-advanced/components/table-advanced-row.component';
|
|
13
|
+
import { TableAdvancedSelectComponent } from './components/table-advanced/components/table-advanced-select.component';
|
|
8
14
|
import { TableAdvancedComponent } from './components/table-advanced/table-advanced.component';
|
|
9
|
-
import {
|
|
15
|
+
import { TableCaptionComponent } from './components/table/components/table-caption.component';
|
|
10
16
|
import { TableCellComponent } from './components/table/components/table-cell.component';
|
|
17
|
+
import { TableFooterComponent } from './components/table/components/table-footer.component';
|
|
11
18
|
import { TableHeaderComponent } from './components/table/components/table-header.component';
|
|
12
19
|
import { TableRowComponent } from './components/table/components/table-row.component';
|
|
13
|
-
import {
|
|
14
|
-
import { TableAdvancedHeaderComponent } from './components/table-advanced/components/table-advanced-header.component';
|
|
15
|
-
import { TableAdvancedHeaderCellComponent } from './components/table-advanced/components/table-advanced-header-cell.component';
|
|
16
|
-
import { TableAdvancedRowComponent } from './components/table-advanced/components/table-advanced-row.component';
|
|
20
|
+
import { TableComponent } from './components/table/table.component';
|
|
17
21
|
import { CellDirective } from './directives/cell.directive';
|
|
22
|
+
import { FocusClickedCellDirective } from './directives/focus-clicked-cell.directive';
|
|
18
23
|
import { RowDirective } from './directives/row.directive';
|
|
19
|
-
import { TableAdvancedRowCellComponent } from './components/table-advanced/components/table-advanced-row-cell.component';
|
|
20
|
-
import { TableAdvancedSelectComponent } from './components/table-advanced/components/table-advanced-select.component';
|
|
21
24
|
import * as i0 from "@angular/core";
|
|
22
25
|
export class DesyTablesModule {
|
|
23
26
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DesyTablesModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
@@ -25,6 +28,7 @@ export class DesyTablesModule {
|
|
|
25
28
|
TableCaptionComponent,
|
|
26
29
|
TableCellComponent,
|
|
27
30
|
TableHeaderComponent,
|
|
31
|
+
TableFooterComponent,
|
|
28
32
|
TableRowComponent,
|
|
29
33
|
TableAdvancedComponent,
|
|
30
34
|
TableAdvancedHeaderComponent,
|
|
@@ -32,6 +36,8 @@ export class DesyTablesModule {
|
|
|
32
36
|
TableAdvancedRowComponent,
|
|
33
37
|
TableAdvancedRowCellComponent,
|
|
34
38
|
TableAdvancedSelectComponent,
|
|
39
|
+
TableAdvancedFooterComponent,
|
|
40
|
+
TableAdvancedFooterCellComponent,
|
|
35
41
|
FocusClickedCellDirective,
|
|
36
42
|
CellDirective,
|
|
37
43
|
RowDirective], imports: [CommonModule,
|
|
@@ -43,13 +49,16 @@ export class DesyTablesModule {
|
|
|
43
49
|
TableCaptionComponent,
|
|
44
50
|
TableCellComponent,
|
|
45
51
|
TableHeaderComponent,
|
|
52
|
+
TableFooterComponent,
|
|
46
53
|
TableRowComponent,
|
|
47
54
|
TableAdvancedComponent,
|
|
48
55
|
TableAdvancedHeaderComponent,
|
|
49
56
|
TableAdvancedHeaderCellComponent,
|
|
50
57
|
TableAdvancedRowComponent,
|
|
51
58
|
TableAdvancedRowCellComponent,
|
|
52
|
-
TableAdvancedSelectComponent
|
|
59
|
+
TableAdvancedSelectComponent,
|
|
60
|
+
TableAdvancedFooterComponent,
|
|
61
|
+
TableAdvancedFooterCellComponent] }); }
|
|
53
62
|
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DesyTablesModule, imports: [CommonModule,
|
|
54
63
|
FormsModule,
|
|
55
64
|
ReactiveFormsModule,
|
|
@@ -65,6 +74,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
65
74
|
TableCaptionComponent,
|
|
66
75
|
TableCellComponent,
|
|
67
76
|
TableHeaderComponent,
|
|
77
|
+
TableFooterComponent,
|
|
68
78
|
TableRowComponent,
|
|
69
79
|
TableAdvancedComponent,
|
|
70
80
|
TableAdvancedHeaderComponent,
|
|
@@ -72,6 +82,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
72
82
|
TableAdvancedRowComponent,
|
|
73
83
|
TableAdvancedRowCellComponent,
|
|
74
84
|
TableAdvancedSelectComponent,
|
|
85
|
+
TableAdvancedFooterComponent,
|
|
86
|
+
TableAdvancedFooterCellComponent,
|
|
75
87
|
FocusClickedCellDirective,
|
|
76
88
|
CellDirective,
|
|
77
89
|
RowDirective,
|
|
@@ -89,14 +101,17 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
89
101
|
TableCaptionComponent,
|
|
90
102
|
TableCellComponent,
|
|
91
103
|
TableHeaderComponent,
|
|
104
|
+
TableFooterComponent,
|
|
92
105
|
TableRowComponent,
|
|
93
106
|
TableAdvancedComponent,
|
|
94
107
|
TableAdvancedHeaderComponent,
|
|
95
108
|
TableAdvancedHeaderCellComponent,
|
|
96
109
|
TableAdvancedRowComponent,
|
|
97
110
|
TableAdvancedRowCellComponent,
|
|
98
|
-
TableAdvancedSelectComponent
|
|
111
|
+
TableAdvancedSelectComponent,
|
|
112
|
+
TableAdvancedFooterComponent,
|
|
113
|
+
TableAdvancedFooterCellComponent,
|
|
99
114
|
]
|
|
100
115
|
}]
|
|
101
116
|
}] });
|
|
102
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
117
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVzeS10YWJsZXMubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZGVzeS1hbmd1bGFyL3NyYy9saWIvZGVzeS10YWJsZXMvZGVzeS10YWJsZXMubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6QyxPQUFPLEVBQUUsV0FBVyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDbEUsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBQ2xFLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUV2RCxPQUFPLEVBQUUsZ0NBQWdDLEVBQUUsTUFBTSw2RUFBNkUsQ0FBQztBQUMvSCxPQUFPLEVBQUUsNEJBQTRCLEVBQUUsTUFBTSx3RUFBd0UsQ0FBQztBQUN0SCxPQUFPLEVBQUUsZ0NBQWdDLEVBQUUsTUFBTSw2RUFBNkUsQ0FBQztBQUMvSCxPQUFPLEVBQUUsNEJBQTRCLEVBQUUsTUFBTSx3RUFBd0UsQ0FBQztBQUN0SCxPQUFPLEVBQUUsNkJBQTZCLEVBQUUsTUFBTSwwRUFBMEUsQ0FBQztBQUN6SCxPQUFPLEVBQUUseUJBQXlCLEVBQUUsTUFBTSxxRUFBcUUsQ0FBQztBQUNoSCxPQUFPLEVBQUUsNEJBQTRCLEVBQUUsTUFBTSx3RUFBd0UsQ0FBQztBQUN0SCxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSxzREFBc0QsQ0FBQztBQUM5RixPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSx1REFBdUQsQ0FBQztBQUM5RixPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxvREFBb0QsQ0FBQztBQUN4RixPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxzREFBc0QsQ0FBQztBQUM1RixPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxzREFBc0QsQ0FBQztBQUM1RixPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxtREFBbUQsQ0FBQztBQUN0RixPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sb0NBQW9DLENBQUM7QUFDcEUsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBQzVELE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxNQUFNLDJDQUEyQyxDQUFDO0FBQ3RGLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQzs7QUFpRDFELE1BQU0sT0FBTyxnQkFBZ0I7K0dBQWhCLGdCQUFnQjtnSEFBaEIsZ0JBQWdCLGlCQTVDekIsY0FBYztZQUNkLHFCQUFxQjtZQUNyQixrQkFBa0I7WUFDbEIsb0JBQW9CO1lBQ3BCLG9CQUFvQjtZQUNwQixpQkFBaUI7WUFDakIsc0JBQXNCO1lBQ3RCLDRCQUE0QjtZQUM1QixnQ0FBZ0M7WUFDaEMseUJBQXlCO1lBQ3pCLDZCQUE2QjtZQUM3Qiw0QkFBNEI7WUFDNUIsNEJBQTRCO1lBQzVCLGdDQUFnQztZQUVoQyx5QkFBeUI7WUFDekIsYUFBYTtZQUNiLFlBQVksYUFHWixZQUFZO1lBQ1osV0FBVztZQUNYLG1CQUFtQjtZQUNuQixVQUFVO1lBQ1YsWUFBWTtZQUNaLGVBQWUsYUFHZixjQUFjO1lBQ2QscUJBQXFCO1lBQ3JCLGtCQUFrQjtZQUNsQixvQkFBb0I7WUFDcEIsb0JBQW9CO1lBQ3BCLGlCQUFpQjtZQUNqQixzQkFBc0I7WUFDdEIsNEJBQTRCO1lBQzVCLGdDQUFnQztZQUNoQyx5QkFBeUI7WUFDekIsNkJBQTZCO1lBQzdCLDRCQUE0QjtZQUM1Qiw0QkFBNEI7WUFDNUIsZ0NBQWdDO2dIQUd2QixnQkFBZ0IsWUF4QnpCLFlBQVk7WUFDWixXQUFXO1lBQ1gsbUJBQW1CO1lBQ25CLFVBQVU7WUFDVixZQUFZO1lBQ1osZUFBZTs7NEZBbUJOLGdCQUFnQjtrQkE5QzVCLFFBQVE7bUJBQUM7b0JBQ1IsWUFBWSxFQUFFO3dCQUNaLGNBQWM7d0JBQ2QscUJBQXFCO3dCQUNyQixrQkFBa0I7d0JBQ2xCLG9CQUFvQjt3QkFDcEIsb0JBQW9CO3dCQUNwQixpQkFBaUI7d0JBQ2pCLHNCQUFzQjt3QkFDdEIsNEJBQTRCO3dCQUM1QixnQ0FBZ0M7d0JBQ2hDLHlCQUF5Qjt3QkFDekIsNkJBQTZCO3dCQUM3Qiw0QkFBNEI7d0JBQzVCLDRCQUE0Qjt3QkFDNUIsZ0NBQWdDO3dCQUVoQyx5QkFBeUI7d0JBQ3pCLGFBQWE7d0JBQ2IsWUFBWTtxQkFDYjtvQkFDRCxPQUFPLEVBQUU7d0JBQ1AsWUFBWTt3QkFDWixXQUFXO3dCQUNYLG1CQUFtQjt3QkFDbkIsVUFBVTt3QkFDVixZQUFZO3dCQUNaLGVBQWU7cUJBQ2hCO29CQUNELE9BQU8sRUFBRTt3QkFDUCxjQUFjO3dCQUNkLHFCQUFxQjt3QkFDckIsa0JBQWtCO3dCQUNsQixvQkFBb0I7d0JBQ3BCLG9CQUFvQjt3QkFDcEIsaUJBQWlCO3dCQUNqQixzQkFBc0I7d0JBQ3RCLDRCQUE0Qjt3QkFDNUIsZ0NBQWdDO3dCQUNoQyx5QkFBeUI7d0JBQ3pCLDZCQUE2Qjt3QkFDN0IsNEJBQTRCO3dCQUM1Qiw0QkFBNEI7d0JBQzVCLGdDQUFnQztxQkFDakM7aUJBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBMTF5TW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2ExMXknO1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBGb3Jtc01vZHVsZSwgUmVhY3RpdmVGb3Jtc01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IERlc3lGb3Jtc01vZHVsZSB9IGZyb20gJy4uL2Rlc3ktZm9ybXMvZGVzeS1mb3Jtcy5tb2R1bGUnO1xuaW1wb3J0IHsgU2hhcmVkTW9kdWxlIH0gZnJvbSAnLi4vc2hhcmVkL3NoYXJlZC5tb2R1bGUnO1xuXG5pbXBvcnQgeyBUYWJsZUFkdmFuY2VkRm9vdGVyQ2VsbENvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy90YWJsZS1hZHZhbmNlZC9jb21wb25lbnRzL3RhYmxlLWFkdmFuY2VkLWZvb3Rlci1jZWxsLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBUYWJsZUFkdmFuY2VkRm9vdGVyQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL3RhYmxlLWFkdmFuY2VkL2NvbXBvbmVudHMvdGFibGUtYWR2YW5jZWQtZm9vdGVyLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBUYWJsZUFkdmFuY2VkSGVhZGVyQ2VsbENvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy90YWJsZS1hZHZhbmNlZC9jb21wb25lbnRzL3RhYmxlLWFkdmFuY2VkLWhlYWRlci1jZWxsLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBUYWJsZUFkdmFuY2VkSGVhZGVyQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL3RhYmxlLWFkdmFuY2VkL2NvbXBvbmVudHMvdGFibGUtYWR2YW5jZWQtaGVhZGVyLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBUYWJsZUFkdmFuY2VkUm93Q2VsbENvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy90YWJsZS1hZHZhbmNlZC9jb21wb25lbnRzL3RhYmxlLWFkdmFuY2VkLXJvdy1jZWxsLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBUYWJsZUFkdmFuY2VkUm93Q29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL3RhYmxlLWFkdmFuY2VkL2NvbXBvbmVudHMvdGFibGUtYWR2YW5jZWQtcm93LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBUYWJsZUFkdmFuY2VkU2VsZWN0Q29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL3RhYmxlLWFkdmFuY2VkL2NvbXBvbmVudHMvdGFibGUtYWR2YW5jZWQtc2VsZWN0LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBUYWJsZUFkdmFuY2VkQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL3RhYmxlLWFkdmFuY2VkL3RhYmxlLWFkdmFuY2VkLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBUYWJsZUNhcHRpb25Db21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvdGFibGUvY29tcG9uZW50cy90YWJsZS1jYXB0aW9uLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBUYWJsZUNlbGxDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvdGFibGUvY29tcG9uZW50cy90YWJsZS1jZWxsLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBUYWJsZUZvb3RlckNvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy90YWJsZS9jb21wb25lbnRzL3RhYmxlLWZvb3Rlci5jb21wb25lbnQnO1xuaW1wb3J0IHsgVGFibGVIZWFkZXJDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvdGFibGUvY29tcG9uZW50cy90YWJsZS1oZWFkZXIuY29tcG9uZW50JztcbmltcG9ydCB7IFRhYmxlUm93Q29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL3RhYmxlL2NvbXBvbmVudHMvdGFibGUtcm93LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBUYWJsZUNvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy90YWJsZS90YWJsZS5jb21wb25lbnQnO1xuaW1wb3J0IHsgQ2VsbERpcmVjdGl2ZSB9IGZyb20gJy4vZGlyZWN0aXZlcy9jZWxsLmRpcmVjdGl2ZSc7XG5pbXBvcnQgeyBGb2N1c0NsaWNrZWRDZWxsRGlyZWN0aXZlIH0gZnJvbSAnLi9kaXJlY3RpdmVzL2ZvY3VzLWNsaWNrZWQtY2VsbC5kaXJlY3RpdmUnO1xuaW1wb3J0IHsgUm93RGlyZWN0aXZlIH0gZnJvbSAnLi9kaXJlY3RpdmVzL3Jvdy5kaXJlY3RpdmUnO1xuXG5cbkBOZ01vZHVsZSh7XG4gIGRlY2xhcmF0aW9uczogW1xuICAgIFRhYmxlQ29tcG9uZW50LFxuICAgIFRhYmxlQ2FwdGlvbkNvbXBvbmVudCxcbiAgICBUYWJsZUNlbGxDb21wb25lbnQsXG4gICAgVGFibGVIZWFkZXJDb21wb25lbnQsXG4gICAgVGFibGVGb290ZXJDb21wb25lbnQsXG4gICAgVGFibGVSb3dDb21wb25lbnQsXG4gICAgVGFibGVBZHZhbmNlZENvbXBvbmVudCxcbiAgICBUYWJsZUFkdmFuY2VkSGVhZGVyQ29tcG9uZW50LFxuICAgIFRhYmxlQWR2YW5jZWRIZWFkZXJDZWxsQ29tcG9uZW50LFxuICAgIFRhYmxlQWR2YW5jZWRSb3dDb21wb25lbnQsXG4gICAgVGFibGVBZHZhbmNlZFJvd0NlbGxDb21wb25lbnQsXG4gICAgVGFibGVBZHZhbmNlZFNlbGVjdENvbXBvbmVudCxcbiAgICBUYWJsZUFkdmFuY2VkRm9vdGVyQ29tcG9uZW50LFxuICAgIFRhYmxlQWR2YW5jZWRGb290ZXJDZWxsQ29tcG9uZW50LFxuXG4gICAgRm9jdXNDbGlja2VkQ2VsbERpcmVjdGl2ZSxcbiAgICBDZWxsRGlyZWN0aXZlLFxuICAgIFJvd0RpcmVjdGl2ZSxcbiAgXSxcbiAgaW1wb3J0czogW1xuICAgIENvbW1vbk1vZHVsZSxcbiAgICBGb3Jtc01vZHVsZSxcbiAgICBSZWFjdGl2ZUZvcm1zTW9kdWxlLFxuICAgIEExMXlNb2R1bGUsXG4gICAgU2hhcmVkTW9kdWxlLFxuICAgIERlc3lGb3Jtc01vZHVsZVxuICBdLFxuICBleHBvcnRzOiBbXG4gICAgVGFibGVDb21wb25lbnQsXG4gICAgVGFibGVDYXB0aW9uQ29tcG9uZW50LFxuICAgIFRhYmxlQ2VsbENvbXBvbmVudCxcbiAgICBUYWJsZUhlYWRlckNvbXBvbmVudCxcbiAgICBUYWJsZUZvb3RlckNvbXBvbmVudCxcbiAgICBUYWJsZVJvd0NvbXBvbmVudCxcbiAgICBUYWJsZUFkdmFuY2VkQ29tcG9uZW50LFxuICAgIFRhYmxlQWR2YW5jZWRIZWFkZXJDb21wb25lbnQsXG4gICAgVGFibGVBZHZhbmNlZEhlYWRlckNlbGxDb21wb25lbnQsXG4gICAgVGFibGVBZHZhbmNlZFJvd0NvbXBvbmVudCxcbiAgICBUYWJsZUFkdmFuY2VkUm93Q2VsbENvbXBvbmVudCxcbiAgICBUYWJsZUFkdmFuY2VkU2VsZWN0Q29tcG9uZW50LFxuICAgIFRhYmxlQWR2YW5jZWRGb290ZXJDb21wb25lbnQsXG4gICAgVGFibGVBZHZhbmNlZEZvb3RlckNlbGxDb21wb25lbnQsXG4gIF1cbn0pXG5leHBvcnQgY2xhc3MgRGVzeVRhYmxlc01vZHVsZSB7IH1cbiJdfQ==
|
|
@@ -34,12 +34,7 @@ export class AccordionComponent extends AccessibilityComponent {
|
|
|
34
34
|
id = item.id;
|
|
35
35
|
}
|
|
36
36
|
else {
|
|
37
|
-
|
|
38
|
-
id = this.idPrefix ? this.idPrefix : undefined;
|
|
39
|
-
}
|
|
40
|
-
else {
|
|
41
|
-
id = this.idPrefix ? this.idPrefix + '-' + index : index;
|
|
42
|
-
}
|
|
37
|
+
id = this.idPrefix ? this.idPrefix + '-' + (index + 1) : (index + 1);
|
|
43
38
|
}
|
|
44
39
|
return id;
|
|
45
40
|
}
|
|
@@ -119,7 +114,7 @@ export class AccordionComponent extends AccessibilityComponent {
|
|
|
119
114
|
return item instanceof AccordionItemComponent ? item.contentComponent : null;
|
|
120
115
|
}
|
|
121
116
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: AccordionComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
|
|
122
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: AccordionComponent, selector: "desy-accordion", inputs: { idPrefix: "idPrefix", allowToggle: "allowToggle", allowMultiple: "allowMultiple", heading: "heading", headingLevel: "headingLevel", showControl: "showControl", items: "items", classes: "classes" }, host: { properties: { "class": "this.classes", "attr.role": "this.roleData", "attr.aria-label": "this.ariaLabelData", "attr.aria-describedby": "this.ariaDescribedbyData", "attr.aria-labelledby": "this.ariaLabelledbyData", "attr.aria-hidden": "this.ariaHiddenData", "attr.aria-disabled": "this.ariaDisabledData", "attr.aria-controls": "this.ariaControlsData", "attr.aria-current": "this.ariaCurrentData", "attr.aria-live": "this.ariaLiveData", "attr.aria-expanded": "this.ariaExpandedData", "attr.aria-errormessage": "this.ariaErrormessageData", "attr.aria-haspopup": "this.ariaHaspopupData", "attr.aria-modal": "this.ariaModalData" } }, queries: [{ propertyName: "headingComponent", predicate: AccordionHeaderComponent }, { propertyName: "itemComponentList", predicate: AccordionItemComponent }], viewQueries: [{ propertyName: "itemSelectors", predicate: ["itemSelector"], descendants: true }], usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "\n <div class=\"flex justify-between\">\n <ng-container *ngIf=\"headingComponent || heading\">\n <ng-container [ngSwitch]=\"headingLevel > 0 && headingLevel < 6 ? headingLevel : 2\">\n <h1 *ngSwitchCase=\"1\" [class]=\"getTitleClasses()\">\n <ng-container *desyCustomInnerContent=\"{\n component: headingComponent ? headingComponent : null,\n html: heading ? heading.html : null,\n text: heading ? heading.text : null\n }\"></ng-container>\n </h1>\n <h2 *ngSwitchCase=\"2\" [class]=\"getTitleClasses()\">\n <ng-container *desyCustomInnerContent=\"{\n component: headingComponent ? headingComponent : null,\n html: heading ? heading.html : null,\n text: heading ? heading.text : null\n }\"></ng-container>\n </h2>\n <h3 *ngSwitchCase=\"3\" [class]=\"getTitleClasses()\">\n <ng-container *desyCustomInnerContent=\"{\n component: headingComponent ? headingComponent : null,\n html: heading ? heading.html : null,\n text: heading ? heading.text : null\n }\"></ng-container>\n </h3>\n <h4 *ngSwitchCase=\"4\" [class]=\"getTitleClasses()\">\n <ng-container *desyCustomInnerContent=\"{\n component: headingComponent ? headingComponent : null,\n html: heading ? heading.html : null,\n text: heading ? heading.text : null\n }\"></ng-container>\n </h4>\n <h5 *ngSwitchCase=\"5\" [class]=\"getTitleClasses()\">\n <ng-container *desyCustomInnerContent=\"{\n component: headingComponent ? headingComponent : null,\n html: heading ? heading.html : null,\n text: heading ? heading.text : null\n }\"></ng-container>\n </h5>\n </ng-container>\n <button *ngIf=\"showControl\" (click)=\"changeAll()\"\n class=\"ml-auto py-base text-sm text-neutral-dark underline focus:text-black focus:bg-warning-base focus:outline-none focus:shadow-outline-focus text-right\">\n {{showAll ? 'Mostrar' : 'Ocultar'}} todo\n </button>\n </ng-container>\n </div>\n <div class=\"Accordion\">\n <div *ngFor=\"let item of getItems(); index as i\" class=\"-my-px px-xs py-sm border-t border-b border-neutral-base\"\n (keydown.home)=\"focusFirstItem($event)\"\n (keydown.end)=\"focusLastItem($event)\"\n (keydown.arrowup)=\"focusPreviousItem($event, i)\"\n (keydown.arrowdown)=\"focusNextItem($event, i)\"\n (click)=\"selectItem(i)\">\n\n <ng-container [ngSwitch]=\"headingLevel > 0 && headingLevel < 6 ? headingLevel : 2\">\n <h2 *ngSwitchCase=\"1\"><ng-container *ngTemplateOutlet=\"itemHeaderContent; context: {item: item, id: getItemId(item, i), index: i}\"></ng-container></h2>\n <h3 *ngSwitchCase=\"2\"><ng-container *ngTemplateOutlet=\"itemHeaderContent; context: {item: item, id: getItemId(item, i), index: i}\"></ng-container></h3>\n <h4 *ngSwitchCase=\"3\"><ng-container *ngTemplateOutlet=\"itemHeaderContent; context: {item: item, id: getItemId(item, i), index: i}\"></ng-container></h4>\n <h5 *ngSwitchCase=\"4\"><ng-container *ngTemplateOutlet=\"itemHeaderContent; context: {item: item, id: getItemId(item, i), index: i}\"></ng-container></h5>\n <h6 *ngSwitchCase=\"5\"><ng-container *ngTemplateOutlet=\"itemHeaderContent; context: {item: item, id: getItemId(item, i), index: i}\"></ng-container></h6>\n </ng-container>\n <p class=\"sr-only\" aria-hidden=\"true\">Haz click en el bot\u00F3n anterior para mostrar u ocultar</p>\n <div *ngIf=\"item.open\" class=\"Accordion-panel\"\n [class]=\"item.classes\"\n [attr.id]=\"getItemId(item, i)\"\n [attr.role]=\"(item.role ? role : 'accordion')\" \n [attr.aria-selected]=\"currentItem === i ? 'true' : 'false'\"\n [attr.aria-describedby]=\"item.ariaDescribedBy\"\n [attr.aria-errormessage]=\"item.ariaErrorMessage\"\n [attr.aria-label]=\"item.ariaLabel\"\n [attr.aria-labelledby]=\"item.ariaLabelledBy\"\n [attr.aria-hidden]=\"item.ariaHidden\"\n [attr.aria-controls]=\"'accordion-' + getItemId(item, i)\"\n [attr.aria-current]=\"item.ariaCurrent\"\n [attr.aria-live]=\"item.ariaLive\"\n [attr.aria-expanded]=\"item.ariaExpanded\"\n [attr.aria-haspopup]=\"item.ariaHasPopup\">\n <ng-container *desyCustomInnerContent=\"{ component: getItemContent(item), html: item.html, text: item.text }\"></ng-container>\n </div>\n </div>\n </div>\n<ng-template #itemHeaderContent let-item=\"item\" let-id=\"id\" let-index=\"index\">\n <button #itemSelector [id]=\"id + '-title'\" class=\"Accordion-trigger group relative w-full py-sm font-semibold text-left cursor-pointer focus:bg-warning-base focus:outline-none focus:shadow-outline-focus focus:text-black\"\n [attr.aria-controls]=\"id\" [attr.aria-expanded]=\"item.open\" (click)=\"toggleItem(item)\" [attr.disabled]=\"item.disabled\" [ngClass]=\"item.disabled ? 'cursor-not-allowed' : classes\">\n <ng-container *desyCustomInnerContent=\"{ component: getItemHeader(item), html: item.headerHtml, text: item.headerText }\"></ng-container>\n <span *ngIf=\"!item.disabled\" class=\"absolute inset-y-0 right-0 py-sm font-normal text-sm text-neutral-dark underline group-focus:text-black pointer-events-none\" aria-hidden=\"true\" [ngClass]=\"{'hidden': item.disabled}\">\n <span *ngIf=\"!item.open\" [class]=\"['Accordion-show', item.showHeaderButton?.classes] | makeHtmlList\">\n <ng-container *desyCustomInnerContent=\"{ component: item.showHeaderButton, text: 'Mostrar' }\"></ng-container> \n </span>\n <span *ngIf=\"allowToggle && item.open\" [class]=\"['Accordion-hide', item.showHeaderButton?.classes] | makeHtmlList\">\n <ng-container *desyCustomInnerContent=\"{ component: item.hideHeaderButton, text: 'Ocultar' }\"></ng-container>\n </span>\n </span>\n </button>\n</ng-template>\n", dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i1.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { kind: "directive", type: i1.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { kind: "directive", type: i2.CustomInnerContentDirective, selector: "[desyCustomInnerContent]", inputs: ["desyCustomInnerContent"] }, { kind: "pipe", type: i3.MakeHtmlListPipe, name: "makeHtmlList" }] }); }
|
|
117
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: AccordionComponent, selector: "desy-accordion", inputs: { idPrefix: "idPrefix", allowToggle: "allowToggle", allowMultiple: "allowMultiple", heading: "heading", headingLevel: "headingLevel", showControl: "showControl", items: "items", classes: "classes" }, host: { properties: { "class": "this.classes", "attr.role": "this.roleData", "attr.aria-label": "this.ariaLabelData", "attr.aria-describedby": "this.ariaDescribedbyData", "attr.aria-labelledby": "this.ariaLabelledbyData", "attr.aria-hidden": "this.ariaHiddenData", "attr.aria-disabled": "this.ariaDisabledData", "attr.aria-controls": "this.ariaControlsData", "attr.aria-current": "this.ariaCurrentData", "attr.aria-live": "this.ariaLiveData", "attr.aria-expanded": "this.ariaExpandedData", "attr.aria-errormessage": "this.ariaErrormessageData", "attr.aria-haspopup": "this.ariaHaspopupData", "attr.aria-modal": "this.ariaModalData" } }, queries: [{ propertyName: "headingComponent", predicate: AccordionHeaderComponent }, { propertyName: "itemComponentList", predicate: AccordionItemComponent }], viewQueries: [{ propertyName: "itemSelectors", predicate: ["itemSelector"], descendants: true }], usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "\n <div class=\"flex justify-between\">\n <ng-container *ngIf=\"headingComponent || heading\">\n <ng-container [ngSwitch]=\"headingLevel > 0 && headingLevel < 6 ? headingLevel : 2\">\n <h1 *ngSwitchCase=\"1\" [class]=\"getTitleClasses()\">\n <ng-container *desyCustomInnerContent=\"{\n component: headingComponent ? headingComponent : null,\n html: heading ? heading.html : null,\n text: heading ? heading.text : null\n }\"></ng-container>\n </h1>\n <h2 *ngSwitchCase=\"2\" [class]=\"getTitleClasses()\">\n <ng-container *desyCustomInnerContent=\"{\n component: headingComponent ? headingComponent : null,\n html: heading ? heading.html : null,\n text: heading ? heading.text : null\n }\"></ng-container>\n </h2>\n <h3 *ngSwitchCase=\"3\" [class]=\"getTitleClasses()\">\n <ng-container *desyCustomInnerContent=\"{\n component: headingComponent ? headingComponent : null,\n html: heading ? heading.html : null,\n text: heading ? heading.text : null\n }\"></ng-container>\n </h3>\n <h4 *ngSwitchCase=\"4\" [class]=\"getTitleClasses()\">\n <ng-container *desyCustomInnerContent=\"{\n component: headingComponent ? headingComponent : null,\n html: heading ? heading.html : null,\n text: heading ? heading.text : null\n }\"></ng-container>\n </h4>\n <h5 *ngSwitchCase=\"5\" [class]=\"getTitleClasses()\">\n <ng-container *desyCustomInnerContent=\"{\n component: headingComponent ? headingComponent : null,\n html: heading ? heading.html : null,\n text: heading ? heading.text : null\n }\"></ng-container>\n </h5>\n </ng-container>\n <button *ngIf=\"showControl\" (click)=\"changeAll()\" type=\"button\"\n class=\"ml-auto py-base text-sm text-neutral-dark underline focus:text-black focus:bg-warning-base focus:outline-none focus:shadow-outline-focus text-right\">\n {{showAll ? 'Mostrar' : 'Ocultar'}} todo\n </button>\n </ng-container>\n </div>\n <div class=\"Accordion\">\n <div *ngFor=\"let item of getItems(); index as i\" class=\"-my-px px-xs py-sm border-t border-b border-neutral-base\"\n (keydown.home)=\"focusFirstItem($event)\"\n (keydown.end)=\"focusLastItem($event)\"\n (keydown.arrowup)=\"focusPreviousItem($event, i)\"\n (keydown.arrowdown)=\"focusNextItem($event, i)\"\n (click)=\"selectItem(i)\">\n\n <ng-container [ngSwitch]=\"headingLevel > 0 && headingLevel < 6 ? headingLevel : 2\">\n <h2 *ngSwitchCase=\"1\"><ng-container *ngTemplateOutlet=\"itemHeaderContent; context: {item: item, id: getItemId(item, i), index: i}\"></ng-container></h2>\n <h3 *ngSwitchCase=\"2\"><ng-container *ngTemplateOutlet=\"itemHeaderContent; context: {item: item, id: getItemId(item, i), index: i}\"></ng-container></h3>\n <h4 *ngSwitchCase=\"3\"><ng-container *ngTemplateOutlet=\"itemHeaderContent; context: {item: item, id: getItemId(item, i), index: i}\"></ng-container></h4>\n <h5 *ngSwitchCase=\"4\"><ng-container *ngTemplateOutlet=\"itemHeaderContent; context: {item: item, id: getItemId(item, i), index: i}\"></ng-container></h5>\n <h6 *ngSwitchCase=\"5\"><ng-container *ngTemplateOutlet=\"itemHeaderContent; context: {item: item, id: getItemId(item, i), index: i}\"></ng-container></h6>\n </ng-container>\n <p class=\"sr-only\" aria-hidden=\"true\">Haz click en el bot\u00F3n anterior para mostrar u ocultar</p>\n <div *ngIf=\"item.open\" class=\"Accordion-panel\"\n [class]=\"item.classes\"\n [attr.id]=\"getItemId(item, i)\"\n [attr.role]=\"(item.role ? role : 'accordion')\" \n [attr.aria-selected]=\"currentItem === i ? 'true' : 'false'\"\n [attr.aria-describedby]=\"item.ariaDescribedBy\"\n [attr.aria-errormessage]=\"item.ariaErrorMessage\"\n [attr.aria-label]=\"item.ariaLabel\"\n [attr.aria-labelledby]=\"item.ariaLabelledBy\"\n [attr.aria-hidden]=\"item.ariaHidden\"\n [attr.aria-controls]=\"'accordion-' + getItemId(item, i)\"\n [attr.aria-current]=\"item.ariaCurrent\"\n [attr.aria-live]=\"item.ariaLive\"\n [attr.aria-expanded]=\"item.ariaExpanded\"\n [attr.aria-haspopup]=\"item.ariaHasPopup\">\n <ng-container *desyCustomInnerContent=\"{ component: getItemContent(item), html: item.html, text: item.text }\"></ng-container>\n </div>\n </div>\n </div>\n<ng-template #itemHeaderContent let-item=\"item\" let-id=\"id\" let-index=\"index\">\n <button #itemSelector [id]=\"id + '-title'\" type=\"button\" class=\"Accordion-trigger group relative w-full py-sm font-semibold text-left cursor-pointer focus:bg-warning-base focus:outline-none focus:shadow-outline-focus focus:text-black\"\n [attr.aria-controls]=\"id\" [attr.aria-expanded]=\"item.open\" (click)=\"toggleItem(item)\" [attr.disabled]=\"item.disabled\" [ngClass]=\"item.disabled ? 'cursor-not-allowed' : classes\">\n <ng-container *desyCustomInnerContent=\"{ component: getItemHeader(item), html: item.headerHtml, text: item.headerText }\"></ng-container>\n <span *ngIf=\"!item.disabled\" class=\"absolute inset-y-0 right-0 py-sm font-normal text-sm text-neutral-dark underline group-focus:text-black pointer-events-none\" aria-hidden=\"true\" [ngClass]=\"{'hidden': item.disabled}\">\n <span *ngIf=\"!item.open\" [class]=\"['Accordion-show', item.showHeaderButton?.classes] | makeHtmlList\">\n <ng-container *desyCustomInnerContent=\"{ component: item.showHeaderButton, text: 'Mostrar' }\"></ng-container> \n </span>\n <span *ngIf=\"allowToggle && item.open\" [class]=\"['Accordion-hide', item.showHeaderButton?.classes] | makeHtmlList\">\n <ng-container *desyCustomInnerContent=\"{ component: item.hideHeaderButton, text: 'Ocultar' }\"></ng-container>\n </span>\n </span>\n </button>\n</ng-template>\n", dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i1.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { kind: "directive", type: i1.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { kind: "directive", type: i2.CustomInnerContentDirective, selector: "[desyCustomInnerContent]", inputs: ["desyCustomInnerContent"] }, { kind: "pipe", type: i3.MakeHtmlListPipe, name: "makeHtmlList" }] }); }
|
|
123
118
|
}
|
|
124
119
|
__decorate([
|
|
125
120
|
DesyContentChild(),
|
|
@@ -127,7 +122,7 @@ __decorate([
|
|
|
127
122
|
], AccordionComponent.prototype, "headingComponent", void 0);
|
|
128
123
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: AccordionComponent, decorators: [{
|
|
129
124
|
type: Component,
|
|
130
|
-
args: [{ selector: 'desy-accordion', template: "\n <div class=\"flex justify-between\">\n <ng-container *ngIf=\"headingComponent || heading\">\n <ng-container [ngSwitch]=\"headingLevel > 0 && headingLevel < 6 ? headingLevel : 2\">\n <h1 *ngSwitchCase=\"1\" [class]=\"getTitleClasses()\">\n <ng-container *desyCustomInnerContent=\"{\n component: headingComponent ? headingComponent : null,\n html: heading ? heading.html : null,\n text: heading ? heading.text : null\n }\"></ng-container>\n </h1>\n <h2 *ngSwitchCase=\"2\" [class]=\"getTitleClasses()\">\n <ng-container *desyCustomInnerContent=\"{\n component: headingComponent ? headingComponent : null,\n html: heading ? heading.html : null,\n text: heading ? heading.text : null\n }\"></ng-container>\n </h2>\n <h3 *ngSwitchCase=\"3\" [class]=\"getTitleClasses()\">\n <ng-container *desyCustomInnerContent=\"{\n component: headingComponent ? headingComponent : null,\n html: heading ? heading.html : null,\n text: heading ? heading.text : null\n }\"></ng-container>\n </h3>\n <h4 *ngSwitchCase=\"4\" [class]=\"getTitleClasses()\">\n <ng-container *desyCustomInnerContent=\"{\n component: headingComponent ? headingComponent : null,\n html: heading ? heading.html : null,\n text: heading ? heading.text : null\n }\"></ng-container>\n </h4>\n <h5 *ngSwitchCase=\"5\" [class]=\"getTitleClasses()\">\n <ng-container *desyCustomInnerContent=\"{\n component: headingComponent ? headingComponent : null,\n html: heading ? heading.html : null,\n text: heading ? heading.text : null\n }\"></ng-container>\n </h5>\n </ng-container>\n <button *ngIf=\"showControl\" (click)=\"changeAll()\"\n class=\"ml-auto py-base text-sm text-neutral-dark underline focus:text-black focus:bg-warning-base focus:outline-none focus:shadow-outline-focus text-right\">\n {{showAll ? 'Mostrar' : 'Ocultar'}} todo\n </button>\n </ng-container>\n </div>\n <div class=\"Accordion\">\n <div *ngFor=\"let item of getItems(); index as i\" class=\"-my-px px-xs py-sm border-t border-b border-neutral-base\"\n (keydown.home)=\"focusFirstItem($event)\"\n (keydown.end)=\"focusLastItem($event)\"\n (keydown.arrowup)=\"focusPreviousItem($event, i)\"\n (keydown.arrowdown)=\"focusNextItem($event, i)\"\n (click)=\"selectItem(i)\">\n\n <ng-container [ngSwitch]=\"headingLevel > 0 && headingLevel < 6 ? headingLevel : 2\">\n <h2 *ngSwitchCase=\"1\"><ng-container *ngTemplateOutlet=\"itemHeaderContent; context: {item: item, id: getItemId(item, i), index: i}\"></ng-container></h2>\n <h3 *ngSwitchCase=\"2\"><ng-container *ngTemplateOutlet=\"itemHeaderContent; context: {item: item, id: getItemId(item, i), index: i}\"></ng-container></h3>\n <h4 *ngSwitchCase=\"3\"><ng-container *ngTemplateOutlet=\"itemHeaderContent; context: {item: item, id: getItemId(item, i), index: i}\"></ng-container></h4>\n <h5 *ngSwitchCase=\"4\"><ng-container *ngTemplateOutlet=\"itemHeaderContent; context: {item: item, id: getItemId(item, i), index: i}\"></ng-container></h5>\n <h6 *ngSwitchCase=\"5\"><ng-container *ngTemplateOutlet=\"itemHeaderContent; context: {item: item, id: getItemId(item, i), index: i}\"></ng-container></h6>\n </ng-container>\n <p class=\"sr-only\" aria-hidden=\"true\">Haz click en el bot\u00F3n anterior para mostrar u ocultar</p>\n <div *ngIf=\"item.open\" class=\"Accordion-panel\"\n [class]=\"item.classes\"\n [attr.id]=\"getItemId(item, i)\"\n [attr.role]=\"(item.role ? role : 'accordion')\" \n [attr.aria-selected]=\"currentItem === i ? 'true' : 'false'\"\n [attr.aria-describedby]=\"item.ariaDescribedBy\"\n [attr.aria-errormessage]=\"item.ariaErrorMessage\"\n [attr.aria-label]=\"item.ariaLabel\"\n [attr.aria-labelledby]=\"item.ariaLabelledBy\"\n [attr.aria-hidden]=\"item.ariaHidden\"\n [attr.aria-controls]=\"'accordion-' + getItemId(item, i)\"\n [attr.aria-current]=\"item.ariaCurrent\"\n [attr.aria-live]=\"item.ariaLive\"\n [attr.aria-expanded]=\"item.ariaExpanded\"\n [attr.aria-haspopup]=\"item.ariaHasPopup\">\n <ng-container *desyCustomInnerContent=\"{ component: getItemContent(item), html: item.html, text: item.text }\"></ng-container>\n </div>\n </div>\n </div>\n<ng-template #itemHeaderContent let-item=\"item\" let-id=\"id\" let-index=\"index\">\n <button #itemSelector [id]=\"id + '-title'\" class=\"Accordion-trigger group relative w-full py-sm font-semibold text-left cursor-pointer focus:bg-warning-base focus:outline-none focus:shadow-outline-focus focus:text-black\"\n [attr.aria-controls]=\"id\" [attr.aria-expanded]=\"item.open\" (click)=\"toggleItem(item)\" [attr.disabled]=\"item.disabled\" [ngClass]=\"item.disabled ? 'cursor-not-allowed' : classes\">\n <ng-container *desyCustomInnerContent=\"{ component: getItemHeader(item), html: item.headerHtml, text: item.headerText }\"></ng-container>\n <span *ngIf=\"!item.disabled\" class=\"absolute inset-y-0 right-0 py-sm font-normal text-sm text-neutral-dark underline group-focus:text-black pointer-events-none\" aria-hidden=\"true\" [ngClass]=\"{'hidden': item.disabled}\">\n <span *ngIf=\"!item.open\" [class]=\"['Accordion-show', item.showHeaderButton?.classes] | makeHtmlList\">\n <ng-container *desyCustomInnerContent=\"{ component: item.showHeaderButton, text: 'Mostrar' }\"></ng-container> \n </span>\n <span *ngIf=\"allowToggle && item.open\" [class]=\"['Accordion-hide', item.showHeaderButton?.classes] | makeHtmlList\">\n <ng-container *desyCustomInnerContent=\"{ component: item.hideHeaderButton, text: 'Ocultar' }\"></ng-container>\n </span>\n </span>\n </button>\n</ng-template>\n" }]
|
|
125
|
+
args: [{ selector: 'desy-accordion', template: "\n <div class=\"flex justify-between\">\n <ng-container *ngIf=\"headingComponent || heading\">\n <ng-container [ngSwitch]=\"headingLevel > 0 && headingLevel < 6 ? headingLevel : 2\">\n <h1 *ngSwitchCase=\"1\" [class]=\"getTitleClasses()\">\n <ng-container *desyCustomInnerContent=\"{\n component: headingComponent ? headingComponent : null,\n html: heading ? heading.html : null,\n text: heading ? heading.text : null\n }\"></ng-container>\n </h1>\n <h2 *ngSwitchCase=\"2\" [class]=\"getTitleClasses()\">\n <ng-container *desyCustomInnerContent=\"{\n component: headingComponent ? headingComponent : null,\n html: heading ? heading.html : null,\n text: heading ? heading.text : null\n }\"></ng-container>\n </h2>\n <h3 *ngSwitchCase=\"3\" [class]=\"getTitleClasses()\">\n <ng-container *desyCustomInnerContent=\"{\n component: headingComponent ? headingComponent : null,\n html: heading ? heading.html : null,\n text: heading ? heading.text : null\n }\"></ng-container>\n </h3>\n <h4 *ngSwitchCase=\"4\" [class]=\"getTitleClasses()\">\n <ng-container *desyCustomInnerContent=\"{\n component: headingComponent ? headingComponent : null,\n html: heading ? heading.html : null,\n text: heading ? heading.text : null\n }\"></ng-container>\n </h4>\n <h5 *ngSwitchCase=\"5\" [class]=\"getTitleClasses()\">\n <ng-container *desyCustomInnerContent=\"{\n component: headingComponent ? headingComponent : null,\n html: heading ? heading.html : null,\n text: heading ? heading.text : null\n }\"></ng-container>\n </h5>\n </ng-container>\n <button *ngIf=\"showControl\" (click)=\"changeAll()\" type=\"button\"\n class=\"ml-auto py-base text-sm text-neutral-dark underline focus:text-black focus:bg-warning-base focus:outline-none focus:shadow-outline-focus text-right\">\n {{showAll ? 'Mostrar' : 'Ocultar'}} todo\n </button>\n </ng-container>\n </div>\n <div class=\"Accordion\">\n <div *ngFor=\"let item of getItems(); index as i\" class=\"-my-px px-xs py-sm border-t border-b border-neutral-base\"\n (keydown.home)=\"focusFirstItem($event)\"\n (keydown.end)=\"focusLastItem($event)\"\n (keydown.arrowup)=\"focusPreviousItem($event, i)\"\n (keydown.arrowdown)=\"focusNextItem($event, i)\"\n (click)=\"selectItem(i)\">\n\n <ng-container [ngSwitch]=\"headingLevel > 0 && headingLevel < 6 ? headingLevel : 2\">\n <h2 *ngSwitchCase=\"1\"><ng-container *ngTemplateOutlet=\"itemHeaderContent; context: {item: item, id: getItemId(item, i), index: i}\"></ng-container></h2>\n <h3 *ngSwitchCase=\"2\"><ng-container *ngTemplateOutlet=\"itemHeaderContent; context: {item: item, id: getItemId(item, i), index: i}\"></ng-container></h3>\n <h4 *ngSwitchCase=\"3\"><ng-container *ngTemplateOutlet=\"itemHeaderContent; context: {item: item, id: getItemId(item, i), index: i}\"></ng-container></h4>\n <h5 *ngSwitchCase=\"4\"><ng-container *ngTemplateOutlet=\"itemHeaderContent; context: {item: item, id: getItemId(item, i), index: i}\"></ng-container></h5>\n <h6 *ngSwitchCase=\"5\"><ng-container *ngTemplateOutlet=\"itemHeaderContent; context: {item: item, id: getItemId(item, i), index: i}\"></ng-container></h6>\n </ng-container>\n <p class=\"sr-only\" aria-hidden=\"true\">Haz click en el bot\u00F3n anterior para mostrar u ocultar</p>\n <div *ngIf=\"item.open\" class=\"Accordion-panel\"\n [class]=\"item.classes\"\n [attr.id]=\"getItemId(item, i)\"\n [attr.role]=\"(item.role ? role : 'accordion')\" \n [attr.aria-selected]=\"currentItem === i ? 'true' : 'false'\"\n [attr.aria-describedby]=\"item.ariaDescribedBy\"\n [attr.aria-errormessage]=\"item.ariaErrorMessage\"\n [attr.aria-label]=\"item.ariaLabel\"\n [attr.aria-labelledby]=\"item.ariaLabelledBy\"\n [attr.aria-hidden]=\"item.ariaHidden\"\n [attr.aria-controls]=\"'accordion-' + getItemId(item, i)\"\n [attr.aria-current]=\"item.ariaCurrent\"\n [attr.aria-live]=\"item.ariaLive\"\n [attr.aria-expanded]=\"item.ariaExpanded\"\n [attr.aria-haspopup]=\"item.ariaHasPopup\">\n <ng-container *desyCustomInnerContent=\"{ component: getItemContent(item), html: item.html, text: item.text }\"></ng-container>\n </div>\n </div>\n </div>\n<ng-template #itemHeaderContent let-item=\"item\" let-id=\"id\" let-index=\"index\">\n <button #itemSelector [id]=\"id + '-title'\" type=\"button\" class=\"Accordion-trigger group relative w-full py-sm font-semibold text-left cursor-pointer focus:bg-warning-base focus:outline-none focus:shadow-outline-focus focus:text-black\"\n [attr.aria-controls]=\"id\" [attr.aria-expanded]=\"item.open\" (click)=\"toggleItem(item)\" [attr.disabled]=\"item.disabled\" [ngClass]=\"item.disabled ? 'cursor-not-allowed' : classes\">\n <ng-container *desyCustomInnerContent=\"{ component: getItemHeader(item), html: item.headerHtml, text: item.headerText }\"></ng-container>\n <span *ngIf=\"!item.disabled\" class=\"absolute inset-y-0 right-0 py-sm font-normal text-sm text-neutral-dark underline group-focus:text-black pointer-events-none\" aria-hidden=\"true\" [ngClass]=\"{'hidden': item.disabled}\">\n <span *ngIf=\"!item.open\" [class]=\"['Accordion-show', item.showHeaderButton?.classes] | makeHtmlList\">\n <ng-container *desyCustomInnerContent=\"{ component: item.showHeaderButton, text: 'Mostrar' }\"></ng-container> \n </span>\n <span *ngIf=\"allowToggle && item.open\" [class]=\"['Accordion-hide', item.showHeaderButton?.classes] | makeHtmlList\">\n <ng-container *desyCustomInnerContent=\"{ component: item.hideHeaderButton, text: 'Ocultar' }\"></ng-container>\n </span>\n </span>\n </button>\n</ng-template>\n" }]
|
|
131
126
|
}], propDecorators: { itemSelectors: [{
|
|
132
127
|
type: ViewChildren,
|
|
133
128
|
args: ['itemSelector']
|
|
@@ -196,4 +191,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
196
191
|
type: ContentChildren,
|
|
197
192
|
args: [AccordionItemComponent]
|
|
198
193
|
}] } });
|
|
199
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWNjb3JkaW9uLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Rlc3ktYW5ndWxhci9zcmMvbGliL2Rlc3ktdmlld3MvY29tcG9uZW50cy9hY2NvcmRpb24vYWNjb3JkaW9uLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Rlc3ktYW5ndWxhci9zcmMvbGliL2Rlc3ktdmlld3MvY29tcG9uZW50cy9hY2NvcmRpb24vYWNjb3JkaW9uLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUMsU0FBUyxFQUFFLGVBQWUsRUFBYyxXQUFXLEVBQUUsS0FBSyxFQUFhLFNBQVMsRUFBaUIsWUFBWSxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBRTVJLE9BQU8sRUFBQyxzQkFBc0IsRUFBQyxNQUFNLDRCQUE0QixDQUFDO0FBRWxFLE9BQU8sRUFBQyx3QkFBd0IsRUFBQyxNQUFNLCtDQUErQyxDQUFDO0FBQ3ZGLE9BQU8sRUFBQyxnQkFBZ0IsRUFBQyxNQUFNLHlEQUF5RCxDQUFDO0FBQ3pGLE9BQU8sRUFBQyxzQkFBc0IsRUFBQyxNQUFNLDJDQUEyQyxDQUFDOzs7OztBQVFqRixNQUFNLE9BQU8sa0JBQW1CLFNBQVEsc0JBQXNCO0lBSjlEOztRQW1DRSxZQUFPLEdBQUcsSUFBSSxDQUFDO0tBc0hoQjtJQW5IQyxXQUFXLENBQUMsT0FBc0I7UUFDaEMsSUFBSSxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUM7UUFDN0MsSUFBSSxDQUFDLGFBQWEsR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUM7UUFDNUQsSUFBSSxDQUFDLG1CQUFt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S0FBSztnQkFDRyxXQUFXO3NCQUFuQixLQUFLO2dCQUNHLGFBQWE7c0JBQXJCLEtBQUs7Z0JBQ0csT0FBTztzQkFBZixLQUFLO2dCQUNHLFlBQVk7c0JBQXBCLEtBQUs7Z0JBQ0csV0FBVztzQkFBbkIsS0FBSztnQkFDRyxLQUFLO3NCQUFiLEtBQUs7Z0JBRXlCLE9BQU87c0JBQXJDLEtBQUs7O3NCQUFJLFdBQVc7dUJBQUMsT0FBTztnQkFDSCxRQUFRO3NCQUFqQyxXQUFXO3VCQUFDLFdBQVc7Z0JBQ1EsYUFBYTtzQkFBNUMsV0FBVzt1QkFBQyxpQkFBaUI7Z0JBQ1EsbUJBQW1CO3NCQUF4RCxXQUFXO3VCQUFDLHVCQUF1QjtnQkFDQyxrQkFBa0I7c0JBQXRELFdBQVc7dUJBQUMsc0JBQXNCO2dCQUNGLGNBQWM7c0JBQTlDLFdBQVc7dUJBQUMsa0JBQWtCO2dCQUNJLGdCQUFnQjtzQkFBbEQsV0FBVzt1QkFBQyxvQkFBb0I7Z0JBQ0UsZ0JBQWdCO3NCQUFsRCxXQUFXO3VCQUFDLG9CQUFvQjtnQkFDQyxlQUFlO3NCQUFoRCxXQUFXO3VCQUFDLG1CQUFtQjtnQkFDRCxZQUFZO3NCQUExQyxXQUFXO3VCQUFDLGdCQUFnQjtnQkFDTSxnQkFBZ0I7c0JBQWxELFdBQVc7dUJBQUMsb0JBQW9CO2dCQUNNLG9CQUFvQjtzQkFBMUQsV0FBVzt1QkFBQyx3QkFBd0I7Z0JBQ0YsZ0JBQWdCO3NCQUFsRCxXQUFXO3VCQUFDLG9CQUFvQjtnQkFDRCxhQUFhO3NCQUE1QyxXQUFXO3VCQUFDLGlCQUFpQjtnQkFHYSxnQkFBZ0I7c0JBQTFELGVBQWU7dUJBQUMsd0JBQXdCO2dCQUNBLGlCQUFpQjtzQkFBekQsZUFBZTt1QkFBQyxzQkFBc0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0NvbXBvbmVudCwgQ29udGVudENoaWxkcmVuLCBFbGVtZW50UmVmLCBIb3N0QmluZGluZywgSW5wdXQsIE9uQ2hhbmdlcywgUXVlcnlMaXN0LCBTaW1wbGVDaGFuZ2VzLCBWaWV3Q2hpbGRyZW59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtBY2NvcmRpb25IZWFkZXJEYXRhfSBmcm9tICcuLi8uLi9pbnRlcmZhY2VzJztcbmltcG9ydCB7QWNjZXNzaWJpbGl0eUNvbXBvbmVudH0gZnJvbSAnLi4vLi4vLi4vc2hhcmVkL2NvbXBvbmVudHMnO1xuaW1wb3J0IHtBY2NvcmRpb25JdGVtRGF0YX0gZnJvbSAnLi4vLi4vaW50ZXJmYWNlcyc7XG5pbXBvcnQge0FjY29yZGlvbkhlYWRlckNvbXBvbmVudH0gZnJvbSAnLi9hY2NvcmRpb24taGVhZGVyL2FjY29yZGlvbi1oZWFkZXIuY29tcG9uZW50JztcbmltcG9ydCB7RGVzeUNvbnRlbnRDaGlsZH0gZnJvbSAnLi4vLi4vLi4vc2hhcmVkL2RlY29yYXRvcnMvZGVzeS1jb250ZW50LWNoaWxkLmRlY29yYXRvcic7XG5pbXBvcnQge0FjY29yZGlvbkl0ZW1Db21wb25lbnR9IGZyb20gJy4vYWNjb3JkaW9uLWl0ZW0vYWNjb3JkaW9uLWl0ZW0uY29tcG9uZW50JztcbmltcG9ydCB7Q29udGVudENvbXBvbmVudH0gZnJvbSAnLi4vLi4vLi4vZGVzeS1jb21tb25zL2NvbXBvbmVudHMvY29udGVudC9jb250ZW50LmNvbXBvbmVudCc7XG5cblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnZGVzeS1hY2NvcmRpb24nLFxuICB0ZW1wbGF0ZVVybDogJy4vYWNjb3JkaW9uLmNvbXBvbmVudC5odG1sJ1xufSlcbmV4cG9ydCBjbGFzcyBBY2NvcmRpb25Db21wb25lbnQgZXh0ZW5kcyBBY2Nlc3NpYmlsaXR5Q29tcG9uZW50IGltcGxlbWVudHMgT25DaGFuZ2VzIHtcbiAgXG4gIEBWaWV3Q2hpbGRyZW4oJ2l0ZW1TZWxlY3RvcicpIGl0ZW1TZWxlY3RvcnM6IFF1ZXJ5TGlzdDxFbGVtZW50UmVmPjtcblxuICBASW5wdXQoKSBpZFByZWZpeDogc3RyaW5nO1xuICBASW5wdXQoKSBhbGxvd1RvZ2dsZTogYm9vbGVhbjtcbiAgQElucHV0KCkgYWxsb3dNdWx0aXBsZTogYm9vbGVhbjtcbiAgQElucHV0KCkgaGVhZGluZzogQWNjb3JkaW9uSGVhZGVyRGF0YTtcbiAgQElucHV0KCkgaGVhZGluZ0xldmVsO1xuICBASW5wdXQoKSBzaG93Q29udHJvbDogYm9vbGVhbjtcbiAgQElucHV0KCkgaXRlbXM6IEFjY29yZGlvbkl0ZW1EYXRhW107XG4gIFxuICBASW5wdXQoKSBASG9zdEJpbmRpbmcoJ2NsYXNzJykgY2xhc3NlczogYW55O1xuICBASG9zdEJpbmRpbmcoJ2F0dHIucm9sZScpIHJvbGVEYXRhOiBhbnk7XG4gIEBIb3N0QmluZGluZygnYXR0ci5hcmlhLWxhYmVsJykgYXJpYUxhYmVsRGF0YTogYW55O1xuICBASG9zdEJpbmRpbmcoJ2F0dHIuYXJpYS1kZXNjcmliZWRieScpIGFyaWFEZXNjcmliZWRieURhdGE6IGFueTtcbiAgQEhvc3RCaW5kaW5nKCdhdHRyLmFyaWEtbGFiZWxsZWRieScpIGFyaWFMYWJlbGxlZGJ5RGF0YTogYW55O1xuICBASG9zdEJpbmRpbmcoJ2F0dHIuYXJpYS1oaWRkZW4nKSBhcmlhSGlkZGVuRGF0YTogYW55O1xuICBASG9zdEJpbmRpbmcoJ2F0dHIuYXJpYS1kaXNhYmxlZCcpIGFyaWFEaXNhYmxlZERhdGE6IGFueTtcbiAgQEhvc3RCaW5kaW5nKCdhdHRyLmFyaWEtY29udHJvbHMnKSBhcmlhQ29udHJvbHNEYXRhOiBhbnk7XG4gIEBIb3N0QmluZGluZygnYXR0ci5hcmlhLWN1cnJlbnQnKSBhcmlhQ3VycmVudERhdGE6IGFueTtcbiAgQEhvc3RCaW5kaW5nKCdhdHRyLmFyaWEtbGl2ZScpIGFyaWFMaXZlRGF0YTogYW55O1xuICBASG9zdEJpbmRpbmcoJ2F0dHIuYXJpYS1leHBhbmRlZCcpIGFyaWFFeHBhbmRlZERhdGE6IGFueTtcbiAgQEhvc3RCaW5kaW5nKCdhdHRyLmFyaWEtZXJyb3JtZXNzYWdlJykgYXJpYUVycm9ybWVzc2FnZURhdGE6IGFueTtcbiAgQEhvc3RCaW5kaW5nKCdhdHRyLmFyaWEtaGFzcG9wdXAnKSBhcmlhSGFzcG9wdXBEYXRhOiBhbnk7XG4gIEBIb3N0QmluZGluZygnYXR0ci5hcmlhLW1vZGFsJykgYXJpYU1vZGFsRGF0YTogYW55XG4gIFxuICBARGVzeUNvbnRlbnRDaGlsZCgpXG4gIEBDb250ZW50Q2hpbGRyZW4oQWNjb3JkaW9uSGVhZGVyQ29tcG9uZW50KSBoZWFkaW5nQ29tcG9uZW50OiBBY2NvcmRpb25IZWFkZXJDb21wb25lbnQ7XG4gIEBDb250ZW50Q2hpbGRyZW4oQWNjb3JkaW9uSXRlbUNvbXBvbmVudCkgaXRlbUNvbXBvbmVudExpc3Q6IFF1ZXJ5TGlzdDxBY2NvcmRpb25JdGVtQ29tcG9uZW50PjtcblxuICBzaG93QWxsID0gdHJ1ZTtcbiAgY3VycmVudEl0ZW06IG51bWJlcjtcblxuICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKTogdm9pZCB7XG4gICAgdGhpcy5yb2xlRGF0YSA9IHRoaXMucm9sZSA/IHRoaXMucm9sZSA6IG51bGw7XG4gICAgdGhpcy5hcmlhTGFiZWxEYXRhID0gdGhpcy5hcmlhTGFiZWwgPyB0aGlzLmFyaWFMYWJlbCA6IG51bGw7XG4gICAgdGhpcy5hcmlhRGVzY3JpYmVkYnlEYXRhID0gdGhpcy5hcmlhRGVzY3JpYmVkQnkgPyB0aGlzLmFyaWFEZXNjcmliZWRCeSA6IG51bGw7XG4gICAgdGhpcy5hcmlhTGFiZWxsZWRieURhdGEgPSB0aGlzLmFyaWFMYWJlbGxlZEJ5ID8gdGhpcy5hcmlhTGFiZWxsZWRCeSA6IG51bGw7XG4gICAgdGhpcy5hcmlhSGlkZGVuRGF0YSA9IHRoaXMuYXJpYUhpZGRlbiA/IHRoaXMuYXJpYUhpZGRlbiA6IG51bGw7XG4gICAgdGhpcy5hcmlhRGlzYWJsZWREYXRhID0gdGhpcy5hcmlhRGlzYWJsZWQgPyB0aGlzLmFyaWFEaXNhYmxlZCA6IG51bGw7XG4gICAgdGhpcy5hcmlhQ29udHJvbHNEYXRhID0gdGhpcy5hcmlhQ29udHJvbHMgPyB0aGlzLmFyaWFDb250cm9scyA6IG51bGw7XG4gICAgdGhpcy5hcmlhQ3VycmVudERhdGEgPSB0aGlzLmFyaWFDdXJyZW50ID8gdGhpcy5hcmlhQ3VycmVudCA6IG51bGw7XG4gICAgdGhpcy5hcmlhTGl2ZURhdGEgPSB0aGlzLmFyaWFMaXZlID8gdGhpcy5hcmlhTGl2ZSA6IG51bGw7XG4gICAgdGhpcy5hcmlhRXhwYW5kZWREYXRhID0gdGhpcy5hcmlhRXhwYW5kZWQgPyB0aGlzLmFyaWFFeHBhbmRlZCA6IG51bGw7XG4gICAgdGhpcy5hcmlhRXJyb3JtZXNzYWdlRGF0YSA9IHRoaXMuYXJpYUVycm9yTWVzc2FnZSA/IHRoaXMuYXJpYUVycm9yTWVzc2FnZSA6IG51bGw7XG4gICAgdGhpcy5hcmlhSGFzcG9wdXBEYXRhID0gdGhpcy5hcmlhSGFzUG9wdXAgPyB0aGlzLmFyaWFIYXNQb3B1cCA6IG51bGw7XG4gICAgdGhpcy5hcmlhTW9kYWxEYXRhID0gdGhpcy5hcmlhTW9kYWwgPyB0aGlzLmFyaWFNb2RhbCA6IG51bGw7XG4gIH1cblxuICBnZXRJdGVtSWQoaXRlbSwgaW5kZXg6IG51bWJlcik6IHN0cmluZyB7XG4gICAgbGV0IGlkO1xuICAgIGlmIChpdGVtLmlkKSB7XG4gICAgICBpZCA9IGl0ZW0uaWQ7XG4gICAgfSBlbHNlIHtcbiAgICAgIGlmIChpbmRleCA9PT0gMCkge1xuICAgICAgICBpZCA9IHRoaXMuaWRQcmVmaXggPyB0aGlzLmlkUHJlZml4IDogdW5kZWZpbmVkO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgaWQgPSB0aGlzLmlkUHJlZml4ID8gdGhpcy5pZFByZWZpeCArICctJyArIGluZGV4IDogaW5kZXg7XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiBpZDtcbiAgfVxuXG4gIGNoYW5nZUFsbCgpOiB2b2lkIHtcbiAgICBjb25zdCBpdGVtcyA9IHRoaXMuZ2V0SXRlbXMoKTtcbiAgICBpdGVtcy5mb3JFYWNoKGl0ZW0gPT4ge1xuICAgICAgY29uc3QgaXNDaGFuZ2UgPSBpdGVtLm9wZW4gIT09IHRoaXMuc2hvd0FsbDtcbiAgICAgIGl0ZW0ub3BlbiA9IHRoaXMuc2hvd0FsbDtcbiAgICAgIGlmIChpc0NoYW5nZSAmJiBpdGVtIGluc3RhbmNlb2YgQWNjb3JkaW9uSXRlbUNvbXBvbmVudCkge1xuICAgICAgICBpdGVtLm9wZW5DaGFuZ2UuZW1pdChpdGVtLm9wZW4pO1xuICAgICAgfVxuICAgIH0pO1xuICAgIHRoaXMuc2hvd0FsbCA9ICF0aGlzLnNob3dBbGw7XG4gIH1cblxuICB0b2dnbGVJdGVtKGl0ZW06IEFjY29yZGlvbkl0ZW1EYXRhKTogdm9pZCB7XG4gICAgaWYgKCFpdGVtLm9wZW4gfHwgdGhpcy5hbGxvd1RvZ2dsZSkge1xuICAgICAgY29uc3QgbmV3T3BlblZhbHVlID0gIWl0ZW0ub3BlbjtcbiAgICAgIGlmICghdGhpcy5hbGxvd011bHRpcGxlKSB7XG4gICAgICAgIGNvbnN0IGl0ZW1zID0gdGhpcy5nZXRJdGVtcygpO1xuICAgICAgICBpdGVtcy5mb3JFYWNoKGl0ID0+IHtcbiAgICAgICAgICBjb25zdCB3YXNPcGVuID0gaXQub3BlbjtcbiAgICAgICAgICBpdC5vcGVuID0gZmFsc2U7XG4gICAgICAgICAgaWYgKHdhc09wZW4gJiYgaXQgIT09IGl0ZW0gJiYgaXQgaW5zdGFuY2VvZiBBY2NvcmRpb25JdGVtQ29tcG9uZW50KSB7XG4gICAgICAgICAgICBpdC5vcGVuQ2hhbmdlLmVtaXQoaXQub3Blbik7XG4gICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICAgIH1cbiAgICAgIGl0ZW0ub3BlbiA9IG5ld09wZW5WYWx1ZTtcbiAgICAgIGlmIChpdGVtIGluc3RhbmNlb2YgQWNjb3JkaW9uSXRlbUNvbXBvbmVudCkge1xuICAgICAgICBpdGVtLm9wZW5DaGFuZ2UuZW1pdChpdGVtLm9wZW4pO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIGZvY3VzRmlyc3RJdGVtKGV2ZW50KTogdm9pZCB7XG4gICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICB0aGlzLml0ZW1TZWxlY3RvcnMudG9BcnJheSgpWzBdLm5hdGl2ZUVsZW1lbnQuZm9jdXMoKTtcbiAgfVxuXG4gIGZvY3VzTGFzdEl0ZW0oZXZlbnQpOiB2b2lkIHtcbiAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgIHRoaXMuaXRlbVNlbGVjdG9ycy50b0FycmF5KClbdGhpcy5pdGVtU2VsZWN0b3JzLmxlbmd0aCAtIDFdLm5hdGl2ZUVsZW1lbnQuZm9jdXMoKTtcbiAgfVxuXG4gIGZvY3VzTmV4dEl0ZW0oZXZlbnQsIGZvY3VzZWRJdGVtOiBudW1iZXIpOiB2b2lkIHtcbiAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgIGNvbnN0IHNlbGVjdG9ycyA9IHRoaXMuaXRlbVNlbGVjdG9ycy50b0FycmF5KCk7XG4gICAgaWYgKHNlbGVjdG9yc1soZm9jdXNlZEl0ZW0gKyAxKSAlIHNlbGVjdG9ycy5sZW5ndGhdICE9IG51bGwpIHtcbiAgICAgIHNlbGVjdG9yc1soZm9jdXNlZEl0ZW0gKyAxKSAlIHNlbGVjdG9ycy5sZW5ndGhdLm5hdGl2ZUVsZW1lbnQuZm9jdXMoKTtcbiAgICB9XG4gIH1cblxuICBmb2N1c1ByZXZpb3VzSXRlbShldmVudCwgZm9jdXNlZEl0ZW06IG51bWJlcik6IHZvaWQge1xuICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgY29uc3Qgc2VsZWN0b3JzID0gdGhpcy5pdGVtU2VsZWN0b3JzLnRvQXJyYXkoKTtcbiAgICBpZiAoc2VsZWN0b3JzWyhmb2N1c2VkSXRlbSArIHNlbGVjdG9ycy5sZW5ndGggLSAxKSAlIHNlbGVjdG9ycy5sZW5ndGhdICE9IG51bGwpIHtcbiAgICAgIHNlbGVjdG9yc1soZm9jdXNlZEl0ZW0gKyBzZWxlY3RvcnMubGVuZ3RoIC0gMSkgJSBzZWxlY3RvcnMubGVuZ3RoXS5uYXRpdmVFbGVtZW50LmZvY3VzKCk7XG4gICAgfVxuICB9XG5cbiAgc2VsZWN0SXRlbSggaTogbnVtYmVyICk6IHZvaWQge1xuICAgIHRoaXMuY3VycmVudEl0ZW0gPSBpO1xuICB9XG5cbiAgZ2V0VGl0bGVDbGFzc2VzKCk6IHN0cmluZyB7XG4gICAgbGV0IGNsYXNzZXMgPSAnYy1oMiBtYi1iYXNlJztcbiAgICBpZiAodGhpcy5oZWFkaW5nQ29tcG9uZW50ICYmIHRoaXMuaGVhZGluZ0NvbXBvbmVudC5jbGFzc2VzKSB7XG4gICAgICBjbGFzc2VzID0gdGhpcy5oZWFkaW5nQ29tcG9uZW50LmNsYXNzZXM7XG4gICAgfSBlbHNlIGlmICh0aGlzLmhlYWRpbmcgJiYgdGhpcy5oZWFkaW5nLmNsYXNzZXMpIHtcbiAgICAgIGNsYXNzZXMgPSB0aGlzLmhlYWRpbmcuY2xhc3NlcztcbiAgICB9XG4gICAgcmV0dXJuIGNsYXNzZXM7XG4gIH1cblxuICBnZXRJdGVtcygpOiBBY2NvcmRpb25JdGVtRGF0YVtdIHtcbiAgICBjb25zdCBpdGVtcyA9IHRoaXMuaXRlbUNvbXBvbmVudExpc3QgJiYgdGhpcy5pdGVtQ29tcG9uZW50TGlzdC5sZW5ndGggPiAwID8gdGhpcy5pdGVtQ29tcG9uZW50TGlzdC50b0FycmF5KCkgOiB0aGlzLml0ZW1zO1xuICAgIHJldHVybiBpdGVtcztcbiAgfVxuXG4gIGdldEl0ZW1IZWFkZXIoaXRlbTogQWNjb3JkaW9uSXRlbURhdGEpOiBBY2NvcmRpb25IZWFkZXJDb21wb25lbnQge1xuICAgIHJldHVybiBpdGVtIGluc3RhbmNlb2YgQWNjb3JkaW9uSXRlbUNvbXBvbmVudCA/IGl0ZW0uaGVhZGVyQ29tcG9uZW50IDogbnVsbDtcbiAgfSAgXG5cbiAgZ2V0SXRlbUNvbnRlbnQoaXRlbTogQWNjb3JkaW9uSXRlbURhdGEpOiBDb250ZW50Q29tcG9uZW50IHtcbiAgICByZXR1cm4gaXRlbSBpbnN0YW5jZW9mIEFjY29yZGlvbkl0ZW1Db21wb25lbnQgPyBpdGVtLmNvbnRlbnRDb21wb25lbnQgOiBudWxsO1xuICB9XG5cbn1cbiIsIlxuICA8ZGl2IGNsYXNzPVwiZmxleCBqdXN0aWZ5LWJldHdlZW5cIj5cbiAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiaGVhZGluZ0NvbXBvbmVudCB8fCBoZWFkaW5nXCI+XG4gICAgICA8bmctY29udGFpbmVyIFtuZ1N3aXRjaF09XCJoZWFkaW5nTGV2ZWwgPiAwICYmIGhlYWRpbmdMZXZlbCA8IDYgPyBoZWFkaW5nTGV2ZWwgOiAyXCI+XG4gICAgICAgIDxoMSAqbmdTd2l0Y2hDYXNlPVwiMVwiIFtjbGFzc109XCJnZXRUaXRsZUNsYXNzZXMoKVwiPlxuICAgICAgICAgIDxuZy1jb250YWluZXIgKmRlc3lDdXN0b21Jbm5lckNvbnRlbnQ9XCJ7XG4gICAgICAgICAgICBjb21wb25lbnQ6IGhlYWRpbmdDb21wb25lbnQgPyBoZWFkaW5nQ29tcG9uZW50IDogbnVsbCxcbiAgICAgICAgICAgIGh0bWw6IGhlYWRpbmcgPyBoZWFkaW5nLmh0bWwgOiBudWxsLFxuICAgICAgICAgICAgdGV4dDogaGVhZGluZyA/IGhlYWRpbmcudGV4dCA6IG51bGxcbiAgICAgICAgICB9XCI+PC9uZy1jb250YWluZXI+XG4gICAgICAgIDwvaDE+XG4gICAgICAgIDxoMiAqbmdTd2l0Y2hDYXNlPVwiMlwiIFtjbGFzc109XCJnZXRUaXRsZUNsYXNzZXMoKVwiPlxuICAgICAgICAgIDxuZy1jb250YWluZXIgKmRlc3lDdXN0b21Jbm5lckNvbnRlbnQ9XCJ7XG4gICAgICAgICAgICBjb21wb25lbnQ6IGhlYWRpbmdDb21wb25lbnQgPyBoZWFkaW5nQ29tcG9uZW50IDogbnVsbCxcbiAgICAgICAgICAgIGh0bWw6IGhlYWRpbmcgPyBoZWFkaW5nLmh0bWwgOiBudWxsLFxuICAgICAgICAgICAgdGV4dDogaGVhZGluZyA/IGhlYWRpbmcudGV4dCA6IG51bGxcbiAgICAgICAgICB9XCI+PC9uZy1jb250YWluZXI+XG4gICAgICAgIDwvaDI+XG4gICAgICAgIDxoMyAqbmdTd2l0Y2hDYXNlPVwiM1wiIFtjbGFzc109XCJnZXRUaXRsZUNsYXNzZXMoKVwiPlxuICAgICAgICAgIDxuZy1jb250YWluZXIgKmRlc3lDdXN0b21Jbm5lckNvbnRlbnQ9XCJ7XG4gICAgICAgICAgICBjb21wb25lbnQ6IGhlYWRpbmdDb21wb25lbnQgPyBoZWFkaW5nQ29tcG9uZW50IDogbnVsbCxcbiAgICAgICAgICAgIGh0bWw6IGhlYWRpbmcgPyBoZWFkaW5nLmh0bWwgOiBudWxsLFxuICAgICAgICAgICAgdGV4dDogaGVhZGluZyA/IGhlYWRpbmcudGV4dCA6IG51bGxcbiAgICAgICAgICB9XCI+PC9uZy1jb250YWluZXI+XG4gICAgICAgIDwvaDM+XG4gICAgICAgIDxoNCAqbmdTd2l0Y2hDYXNlPVwiNFwiIFtjbGFzc109XCJnZXRUaXRsZUNsYXNzZXMoKVwiPlxuICAgICAgICAgIDxuZy1jb250YWluZXIgKmRlc3lDdXN0b21Jbm5lckNvbnRlbnQ9XCJ7XG4gICAgICAgICAgICBjb21wb25lbnQ6IGhlYWRpbmdDb21wb25lbnQgPyBoZWFkaW5nQ29tcG9uZW50IDogbnVsbCxcbiAgICAgICAgICAgIGh0bWw6IGhlYWRpbmcgPyBoZWFkaW5nLmh0bWwgOiBudWxsLFxuICAgICAgICAgICAgdGV4dDogaGVhZGluZyA/IGhlYWRpbmcudGV4dCA6IG51bGxcbiAgICAgICAgICB9XCI+PC9uZy1jb250YWluZXI+XG4gICAgICAgIDwvaDQ+XG4gICAgICAgIDxoNSAqbmdTd2l0Y2hDYXNlPVwiNVwiIFtjbGFzc109XCJnZXRUaXRsZUNsYXNzZXMoKVwiPlxuICAgICAgICAgIDxuZy1jb250YWluZXIgKmRlc3lDdXN0b21Jbm5lckNvbnRlbnQ9XCJ7XG4gICAgICAgICAgICBjb21wb25lbnQ6IGhlYWRpbmdDb21wb25lbnQgPyBoZWFkaW5nQ29tcG9uZW50IDogbnVsbCxcbiAgICAgICAgICAgIGh0bWw6IGhlYWRpbmcgPyBoZWFkaW5nLmh0bWwgOiBudWxsLFxuICAgICAgICAgICAgdGV4dDogaGVhZGluZyA/IGhlYWRpbmcudGV4dCA6IG51bGxcbiAgICAgICAgICB9XCI+PC9uZy1jb250YWluZXI+XG4gICAgICAgIDwvaDU+XG4gICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgIDxidXR0b24gKm5nSWY9XCJzaG93Q29udHJvbFwiIChjbGljayk9XCJjaGFuZ2VBbGwoKVwiXG4gICAgICAgICAgICAgIGNsYXNzPVwibWwtYXV0byBweS1iYXNlIHRleHQtc20gdGV4dC1uZXV0cmFsLWRhcmsgdW5kZXJsaW5lIGZvY3VzOnRleHQtYmxhY2sgZm9jdXM6Ymctd2FybmluZy1iYXNlIGZvY3VzOm91dGxpbmUtbm9uZSBmb2N1czpzaGFkb3ctb3V0bGluZS1mb2N1cyB0ZXh0LXJpZ2h0XCI+XG4gICAgICAgIHt7c2hvd0FsbCA/ICdNb3N0cmFyJyA6ICdPY3VsdGFyJ319IHRvZG9cbiAgICAgIDwvYnV0dG9uPlxuICAgIDwvbmctY29udGFpbmVyPlxuICA8L2Rpdj5cbiAgPGRpdiBjbGFzcz1cIkFjY29yZGlvblwiPlxuICAgIDxkaXYgKm5nRm9yPVwibGV0IGl0ZW0gb2YgZ2V0SXRlbXMoKTsgaW5kZXggYXMgaVwiIGNsYXNzPVwiLW15LXB4IHB4LXhzIHB5LXNtIGJvcmRlci10IGJvcmRlci1iIGJvcmRlci1uZXV0cmFsLWJhc2VcIlxuICAgICAgICAgKGtleWRvd24uaG9tZSk9XCJmb2N1c0ZpcnN0SXRlbSgkZXZlbnQpXCJcbiAgICAgICAgIChrZXlkb3duLmVuZCk9XCJmb2N1c0xhc3RJdGVtKCRldmVudClcIlxuICAgICAgICAgKGtleWRvd24uYXJyb3d1cCk9XCJmb2N1c1ByZXZpb3VzSXRlbSgkZXZlbnQsIGkpXCJcbiAgICAgICAgIChrZXlkb3duLmFycm93ZG93bik9XCJmb2N1c05leHRJdGVtKCRldmVudCwgaSlcIlxuICAgICAgICAgKGNsaWNrKT1cInNlbGVjdEl0ZW0oaSlcIj5cblxuICAgICAgPG5nLWNvbnRhaW5lciBbbmdTd2l0Y2hdPVwiaGVhZGluZ0xldmVsID4gMCAmJiBoZWFkaW5nTGV2ZWwgPCA2ID8gaGVhZGluZ0xldmVsIDogMlwiPlxuICAgICAgICA8aDIgKm5nU3dpdGNoQ2FzZT1cIjFcIj48bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiaXRlbUhlYWRlckNvbnRlbnQ7IGNvbnRleHQ6IHtpdGVtOiBpdGVtLCBpZDogZ2V0SXRlbUlkKGl0ZW0sIGkpLCBpbmRleDogaX1cIj48L25nLWNvbnRhaW5lcj48L2gyPlxuICAgICAgICA8aDMgKm5nU3dpdGNoQ2FzZT1cIjJcIj48bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiaXRlbUhlYWRlckNvbnRlbnQ7IGNvbnRleHQ6IHtpdGVtOiBpdGVtLCBpZDogZ2V0SXRlbUlkKGl0ZW0sIGkpLCBpbmRleDogaX1cIj48L25nLWNvbnRhaW5lcj48L2gzPlxuICAgICAgICA8aDQgKm5nU3dpdGNoQ2FzZT1cIjNcIj48bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiaXRlbUhlYWRlckNvbnRlbnQ7IGNvbnRleHQ6IHtpdGVtOiBpdGVtLCBpZDogZ2V0SXRlbUlkKGl0ZW0sIGkpLCBpbmRleDogaX1cIj48L25nLWNvbnRhaW5lcj48L2g0PlxuICAgICAgICA8aDUgKm5nU3dpdGNoQ2FzZT1cIjRcIj48bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiaXRlbUhlYWRlckNvbnRlbnQ7IGNvbnRleHQ6IHtpdGVtOiBpdGVtLCBpZDogZ2V0SXRlbUlkKGl0ZW0sIGkpLCBpbmRleDogaX1cIj48L25nLWNvbnRhaW5lcj48L2g1PlxuICAgICAgICA8aDYgKm5nU3dpdGNoQ2FzZT1cIjVcIj48bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiaXRlbUhlYWRlckNvbnRlbnQ7IGNvbnRleHQ6IHtpdGVtOiBpdGVtLCBpZDogZ2V0SXRlbUlkKGl0ZW0sIGkpLCBpbmRleDogaX1cIj48L25nLWNvbnRhaW5lcj48L2g2PlxuICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICA8cCBjbGFzcz1cInNyLW9ubHlcIiBhcmlhLWhpZGRlbj1cInRydWVcIj5IYXogY2xpY2sgZW4gZWwgYm90w7NuIGFudGVyaW9yIHBhcmEgbW9zdHJhciB1IG9jdWx0YXI8L3A+XG4gICAgICA8ZGl2ICpuZ0lmPVwiaXRlbS5vcGVuXCIgY2xhc3M9XCJBY2NvcmRpb24tcGFuZWxcIlxuICAgICAgICAgICBbY2xhc3NdPVwiaXRlbS5jbGFzc2VzXCJcbiAgICAgICAgICAgW2F0dHIuaWRdPVwiZ2V0SXRlbUlkKGl0ZW0sIGkpXCJcbiAgICAgICAgICAgW2F0dHIucm9sZV09XCIoaXRlbS5yb2xlID8gcm9sZSA6ICdhY2NvcmRpb24nKVwiICAgICAgICAgICBcbiAgICAgICAgICAgW2F0dHIuYXJpYS1zZWxlY3RlZF09XCJjdXJyZW50SXRlbSA9PT0gaSA/ICd0cnVlJyA6ICdmYWxzZSdcIlxuICAgICAgICAgICBbYXR0ci5hcmlhLWRlc2NyaWJlZGJ5XT1cIml0ZW0uYXJpYURlc2NyaWJlZEJ5XCJcbiAgICAgICAgICAgW2F0dHIuYXJpYS1lcnJvcm1lc3NhZ2VdPVwiaXRlbS5hcmlhRXJyb3JNZXNzYWdlXCJcbiAgICAgICAgICAgW2F0dHIuYXJpYS1sYWJlbF09XCJpdGVtLmFyaWFMYWJlbFwiXG4gICAgICAgICAgIFthdHRyLmFyaWEtbGFiZWxsZWRieV09XCJpdGVtLmFyaWFMYWJlbGxlZEJ5XCJcbiAgICAgICAgICAgW2F0dHIuYXJpYS1oaWRkZW5dPVwiaXRlbS5hcmlhSGlkZGVuXCJcbiAgICAgICAgICAgW2F0dHIuYXJpYS1jb250cm9sc109XCInYWNjb3JkaW9uLScgKyBnZXRJdGVtSWQoaXRlbSwgaSlcIlxuICAgICAgICAgICBbYXR0ci5hcmlhLWN1cnJlbnRdPVwiaXRlbS5hcmlhQ3VycmVudFwiXG4gICAgICAgICAgIFthdHRyLmFyaWEtbGl2ZV09XCJpdGVtLmFyaWFMaXZlXCJcbiAgICAgICAgICAgW2F0dHIuYXJpYS1leHBhbmRlZF09XCJpdGVtLmFyaWFFeHBhbmRlZFwiXG4gICAgICAgICAgIFthdHRyLmFyaWEtaGFzcG9wdXBdPVwiaXRlbS5hcmlhSGFzUG9wdXBcIj5cbiAgICAgICAgPG5nLWNvbnRhaW5lciAqZGVzeUN1c3RvbUlubmVyQ29udGVudD1cInsgY29tcG9uZW50OiBnZXRJdGVtQ29udGVudChpdGVtKSwgaHRtbDogaXRlbS5odG1sLCB0ZXh0OiBpdGVtLnRleHQgfVwiPjwvbmctY29udGFpbmVyPlxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuPG5nLXRlbXBsYXRlICNpdGVtSGVhZGVyQ29udGVudCBsZXQtaXRlbT1cIml0ZW1cIiBsZXQtaWQ9XCJpZFwiIGxldC1pbmRleD1cImluZGV4XCI+XG4gIDxidXR0b24gI2l0ZW1TZWxlY3RvciBbaWRdPVwiaWQgKyAnLXRpdGxlJ1wiIGNsYXNzPVwiQWNjb3JkaW9uLXRyaWdnZXIgZ3JvdXAgcmVsYXRpdmUgdy1mdWxsIHB5LXNtIGZvbnQtc2VtaWJvbGQgdGV4dC1sZWZ0IGN1cnNvci1wb2ludGVyIGZvY3VzOmJnLXdhcm5pbmctYmFzZSBmb2N1czpvdXRsaW5lLW5vbmUgZm9jdXM6c2hhZG93LW91dGxpbmUtZm9jdXMgZm9jdXM6dGV4dC1ibGFja1wiXG4gICAgICAgICAgW2F0dHIuYXJpYS1jb250cm9sc109XCJpZFwiIFthdHRyLmFyaWEtZXhwYW5kZWRdPVwiaXRlbS5vcGVuXCIgKGNsaWNrKT1cInRvZ2dsZUl0ZW0oaXRlbSlcIiBbYXR0ci5kaXNhYmxlZF09XCJpdGVtLmRpc2FibGVkXCIgW25nQ2xhc3NdPVwiaXRlbS5kaXNhYmxlZCA/ICdjdXJzb3Itbm90LWFsbG93ZWQnIDogY2xhc3Nlc1wiPlxuICAgIDxuZy1jb250YWluZXIgKmRlc3lDdXN0b21Jbm5lckNvbnRlbnQ9XCJ7IGNvbXBvbmVudDogZ2V0SXRlbUhlYWRlcihpdGVtKSwgaHRtbDogaXRlbS5oZWFkZXJIdG1sLCB0ZXh0OiBpdGVtLmhlYWRlclRleHQgfVwiPjwvbmctY29udGFpbmVyPlxuICAgIDxzcGFuICpuZ0lmPVwiIWl0ZW0uZGlzYWJsZWRcIiBjbGFzcz1cImFic29sdXRlIGluc2V0LXktMCByaWdodC0wIHB5LXNtIGZvbnQtbm9ybWFsIHRleHQtc20gdGV4dC1uZXV0cmFsLWRhcmsgdW5kZXJsaW5lIGdyb3VwLWZvY3VzOnRleHQtYmxhY2sgcG9pbnRlci1ldmVudHMtbm9uZVwiIGFyaWEtaGlkZGVuPVwidHJ1ZVwiIFtuZ0NsYXNzXT1cInsnaGlkZGVuJzogaXRlbS5kaXNhYmxlZH1cIj5cbiAgICAgIDxzcGFuICpuZ0lmPVwiIWl0ZW0ub3BlblwiIFtjbGFzc109XCJbJ0FjY29yZGlvbi1zaG93JywgaXRlbS5zaG93SGVhZGVyQnV0dG9uPy5jbGFzc2VzXSB8IG1ha2VIdG1sTGlzdFwiPlxuICAgICAgICA8bmctY29udGFpbmVyICpkZXN5Q3VzdG9tSW5uZXJDb250ZW50PVwieyBjb21wb25lbnQ6IGl0ZW0uc2hvd0hlYWRlckJ1dHRvbiwgdGV4dDogJ01vc3RyYXInIH1cIj48L25nLWNvbnRhaW5lcj4gICAgICBcbiAgICAgIDwvc3Bhbj5cbiAgICAgIDxzcGFuICpuZ0lmPVwiYWxsb3dUb2dnbGUgJiYgaXRlbS5vcGVuXCIgW2NsYXNzXT1cIlsnQWNjb3JkaW9uLWhpZGUnLCBpdGVtLnNob3dIZWFkZXJCdXR0b24/LmNsYXNzZXNdIHwgbWFrZUh0bWxMaXN0XCI+XG4gICAgICAgIDxuZy1jb250YWluZXIgKmRlc3lDdXN0b21Jbm5lckNvbnRlbnQ9XCJ7IGNvbXBvbmVudDogaXRlbS5oaWRlSGVhZGVyQnV0dG9uLCB0ZXh0OiAnT2N1bHRhcicgfVwiPjwvbmctY29udGFpbmVyPlxuICAgICAgPC9zcGFuPlxuICAgIDwvc3Bhbj5cbiAgPC9idXR0b24+XG48L25nLXRlbXBsYXRlPlxuIl19
|
|
194
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWNjb3JkaW9uLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Rlc3ktYW5ndWxhci9zcmMvbGliL2Rlc3ktdmlld3MvY29tcG9uZW50cy9hY2NvcmRpb24vYWNjb3JkaW9uLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Rlc3ktYW5ndWxhci9zcmMvbGliL2Rlc3ktdmlld3MvY29tcG9uZW50cy9hY2NvcmRpb24vYWNjb3JkaW9uLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLGVBQWUsRUFBYyxXQUFXLEVBQUUsS0FBSyxFQUFhLFNBQVMsRUFBaUIsWUFBWSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRTlJLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBRXBFLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLCtDQUErQyxDQUFDO0FBQ3pGLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHlEQUF5RCxDQUFDO0FBQzNGLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLDJDQUEyQyxDQUFDOzs7OztBQVFuRixNQUFNLE9BQU8sa0JBQW1CLFNBQVEsc0JBQXNCO0lBSjlEOztRQW1DRSxZQUFPLEdBQUcsSUFBSSxDQUFDO0tBa0hoQjtJQS9HQyxXQUFXLENBQUMsT0FBc0I7UUFDaEMsSUFBSSxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUM7UUFDN0MsSUFBSSxDQUFDLGFBQWEsR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUM7UUFDNUQsSUFBSSxDQUFDLG1CQUFt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SztnQkFDRyxXQUFXO3NCQUFuQixLQUFLO2dCQUNHLEtBQUs7c0JBQWIsS0FBSztnQkFFeUIsT0FBTztzQkFBckMsS0FBSzs7c0JBQUksV0FBVzt1QkFBQyxPQUFPO2dCQUNILFFBQVE7c0JBQWpDLFdBQVc7dUJBQUMsV0FBVztnQkFDUSxhQUFhO3NCQUE1QyxXQUFXO3VCQUFDLGlCQUFpQjtnQkFDUSxtQkFBbUI7c0JBQXhELFdBQVc7dUJBQUMsdUJBQXVCO2dCQUNDLGtCQUFrQjtzQkFBdEQsV0FBVzt1QkFBQyxzQkFBc0I7Z0JBQ0YsY0FBYztzQkFBOUMsV0FBVzt1QkFBQyxrQkFBa0I7Z0JBQ0ksZ0JBQWdCO3NCQUFsRCxXQUFXO3VCQUFDLG9CQUFvQjtnQkFDRSxnQkFBZ0I7c0JBQWxELFdBQVc7dUJBQUMsb0JBQW9CO2dCQUNDLGVBQWU7c0JBQWhELFdBQVc7dUJBQUMsbUJBQW1CO2dCQUNELFlBQVk7c0JBQTFDLFdBQVc7dUJBQUMsZ0JBQWdCO2dCQUNNLGdCQUFnQjtzQkFBbEQsV0FBVzt1QkFBQyxvQkFBb0I7Z0JBQ00sb0JBQW9CO3NCQUExRCxXQUFXO3VCQUFDLHdCQUF3QjtnQkFDRixnQkFBZ0I7c0JBQWxELFdBQVc7dUJBQUMsb0JBQW9CO2dCQUNELGFBQWE7c0JBQTVDLFdBQVc7dUJBQUMsaUJBQWlCO2dCQUdhLGdCQUFnQjtzQkFBMUQsZUFBZTt1QkFBQyx3QkFBd0I7Z0JBQ0EsaUJBQWlCO3NCQUF6RCxlQUFlO3VCQUFDLHNCQUFzQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgQ29udGVudENoaWxkcmVuLCBFbGVtZW50UmVmLCBIb3N0QmluZGluZywgSW5wdXQsIE9uQ2hhbmdlcywgUXVlcnlMaXN0LCBTaW1wbGVDaGFuZ2VzLCBWaWV3Q2hpbGRyZW4gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEFjY29yZGlvbkhlYWRlckRhdGEgfSBmcm9tICcuLi8uLi9pbnRlcmZhY2VzJztcbmltcG9ydCB7IEFjY2Vzc2liaWxpdHlDb21wb25lbnQgfSBmcm9tICcuLi8uLi8uLi9zaGFyZWQvY29tcG9uZW50cyc7XG5pbXBvcnQgeyBBY2NvcmRpb25JdGVtRGF0YSB9IGZyb20gJy4uLy4uL2ludGVyZmFjZXMnO1xuaW1wb3J0IHsgQWNjb3JkaW9uSGVhZGVyQ29tcG9uZW50IH0gZnJvbSAnLi9hY2NvcmRpb24taGVhZGVyL2FjY29yZGlvbi1oZWFkZXIuY29tcG9uZW50JztcbmltcG9ydCB7IERlc3lDb250ZW50Q2hpbGQgfSBmcm9tICcuLi8uLi8uLi9zaGFyZWQvZGVjb3JhdG9ycy9kZXN5LWNvbnRlbnQtY2hpbGQuZGVjb3JhdG9yJztcbmltcG9ydCB7IEFjY29yZGlvbkl0ZW1Db21wb25lbnQgfSBmcm9tICcuL2FjY29yZGlvbi1pdGVtL2FjY29yZGlvbi1pdGVtLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBDb250ZW50Q29tcG9uZW50IH0gZnJvbSAnLi4vLi4vLi4vZGVzeS1jb21tb25zL2NvbXBvbmVudHMvY29udGVudC9jb250ZW50LmNvbXBvbmVudCc7XG5cblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnZGVzeS1hY2NvcmRpb24nLFxuICB0ZW1wbGF0ZVVybDogJy4vYWNjb3JkaW9uLmNvbXBvbmVudC5odG1sJ1xufSlcbmV4cG9ydCBjbGFzcyBBY2NvcmRpb25Db21wb25lbnQgZXh0ZW5kcyBBY2Nlc3NpYmlsaXR5Q29tcG9uZW50IGltcGxlbWVudHMgT25DaGFuZ2VzIHtcblxuICBAVmlld0NoaWxkcmVuKCdpdGVtU2VsZWN0b3InKSBpdGVtU2VsZWN0b3JzOiBRdWVyeUxpc3Q8RWxlbWVudFJlZj47XG5cbiAgQElucHV0KCkgaWRQcmVmaXg6IHN0cmluZztcbiAgQElucHV0KCkgYWxsb3dUb2dnbGU6IGJvb2xlYW47XG4gIEBJbnB1dCgpIGFsbG93TXVsdGlwbGU6IGJvb2xlYW47XG4gIEBJbnB1dCgpIGhlYWRpbmc6IEFjY29yZGlvbkhlYWRlckRhdGE7XG4gIEBJbnB1dCgpIGhlYWRpbmdMZXZlbDtcbiAgQElucHV0KCkgc2hvd0NvbnRyb2w6IGJvb2xlYW47XG4gIEBJbnB1dCgpIGl0ZW1zOiBBY2NvcmRpb25JdGVtRGF0YVtdO1xuXG4gIEBJbnB1dCgpIEBIb3N0QmluZGluZygnY2xhc3MnKSBjbGFzc2VzOiBhbnk7XG4gIEBIb3N0QmluZGluZygnYXR0ci5yb2xlJykgcm9sZURhdGE6IGFueTtcbiAgQEhvc3RCaW5kaW5nKCdhdHRyLmFyaWEtbGFiZWwnKSBhcmlhTGFiZWxEYXRhOiBhbnk7XG4gIEBIb3N0QmluZGluZygnYXR0ci5hcmlhLWRlc2NyaWJlZGJ5JykgYXJpYURlc2NyaWJlZGJ5RGF0YTogYW55O1xuICBASG9zdEJpbmRpbmcoJ2F0dHIuYXJpYS1sYWJlbGxlZGJ5JykgYXJpYUxhYmVsbGVkYnlEYXRhOiBhbnk7XG4gIEBIb3N0QmluZGluZygnYXR0ci5hcmlhLWhpZGRlbicpIGFyaWFIaWRkZW5EYXRhOiBhbnk7XG4gIEBIb3N0QmluZGluZygnYXR0ci5hcmlhLWRpc2FibGVkJykgYXJpYURpc2FibGVkRGF0YTogYW55O1xuICBASG9zdEJpbmRpbmcoJ2F0dHIuYXJpYS1jb250cm9scycpIGFyaWFDb250cm9sc0RhdGE6IGFueTtcbiAgQEhvc3RCaW5kaW5nKCdhdHRyLmFyaWEtY3VycmVudCcpIGFyaWFDdXJyZW50RGF0YTogYW55O1xuICBASG9zdEJpbmRpbmcoJ2F0dHIuYXJpYS1saXZlJykgYXJpYUxpdmVEYXRhOiBhbnk7XG4gIEBIb3N0QmluZGluZygnYXR0ci5hcmlhLWV4cGFuZGVkJykgYXJpYUV4cGFuZGVkRGF0YTogYW55O1xuICBASG9zdEJpbmRpbmcoJ2F0dHIuYXJpYS1lcnJvcm1lc3NhZ2UnKSBhcmlhRXJyb3JtZXNzYWdlRGF0YTogYW55O1xuICBASG9zdEJpbmRpbmcoJ2F0dHIuYXJpYS1oYXNwb3B1cCcpIGFyaWFIYXNwb3B1cERhdGE6IGFueTtcbiAgQEhvc3RCaW5kaW5nKCdhdHRyLmFyaWEtbW9kYWwnKSBhcmlhTW9kYWxEYXRhOiBhbnlcblxuICBARGVzeUNvbnRlbnRDaGlsZCgpXG4gIEBDb250ZW50Q2hpbGRyZW4oQWNjb3JkaW9uSGVhZGVyQ29tcG9uZW50KSBoZWFkaW5nQ29tcG9uZW50OiBBY2NvcmRpb25IZWFkZXJDb21wb25lbnQ7XG4gIEBDb250ZW50Q2hpbGRyZW4oQWNjb3JkaW9uSXRlbUNvbXBvbmVudCkgaXRlbUNvbXBvbmVudExpc3Q6IFF1ZXJ5TGlzdDxBY2NvcmRpb25JdGVtQ29tcG9uZW50PjtcblxuICBzaG93QWxsID0gdHJ1ZTtcbiAgY3VycmVudEl0ZW06IG51bWJlcjtcblxuICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKTogdm9pZCB7XG4gICAgdGhpcy5yb2xlRGF0YSA9IHRoaXMucm9sZSA/IHRoaXMucm9sZSA6IG51bGw7XG4gICAgdGhpcy5hcmlhTGFiZWxEYXRhID0gdGhpcy5hcmlhTGFiZWwgPyB0aGlzLmFyaWFMYWJlbCA6IG51bGw7XG4gICAgdGhpcy5hcmlhRGVzY3JpYmVkYnlEYXRhID0gdGhpcy5hcmlhRGVzY3JpYmVkQnkgPyB0aGlzLmFyaWFEZXNjcmliZWRCeSA6IG51bGw7XG4gICAgdGhpcy5hcmlhTGFiZWxsZWRieURhdGEgPSB0aGlzLmFyaWFMYWJlbGxlZEJ5ID8gdGhpcy5hcmlhTGFiZWxsZWRCeSA6IG51bGw7XG4gICAgdGhpcy5hcmlhSGlkZGVuRGF0YSA9IHRoaXMuYXJpYUhpZGRlbiA/IHRoaXMuYXJpYUhpZGRlbiA6IG51bGw7XG4gICAgdGhpcy5hcmlhRGlzYWJsZWREYXRhID0gdGhpcy5hcmlhRGlzYWJsZWQgPyB0aGlzLmFyaWFEaXNhYmxlZCA6IG51bGw7XG4gICAgdGhpcy5hcmlhQ29udHJvbHNEYXRhID0gdGhpcy5hcmlhQ29udHJvbHMgPyB0aGlzLmFyaWFDb250cm9scyA6IG51bGw7XG4gICAgdGhpcy5hcmlhQ3VycmVudERhdGEgPSB0aGlzLmFyaWFDdXJyZW50ID8gdGhpcy5hcmlhQ3VycmVudCA6IG51bGw7XG4gICAgdGhpcy5hcmlhTGl2ZURhdGEgPSB0aGlzLmFyaWFMaXZlID8gdGhpcy5hcmlhTGl2ZSA6IG51bGw7XG4gICAgdGhpcy5hcmlhRXhwYW5kZWREYXRhID0gdGhpcy5hcmlhRXhwYW5kZWQgPyB0aGlzLmFyaWFFeHBhbmRlZCA6IG51bGw7XG4gICAgdGhpcy5hcmlhRXJyb3JtZXNzYWdlRGF0YSA9IHRoaXMuYXJpYUVycm9yTWVzc2FnZSA/IHRoaXMuYXJpYUVycm9yTWVzc2FnZSA6IG51bGw7XG4gICAgdGhpcy5hcmlhSGFzcG9wdXBEYXRhID0gdGhpcy5hcmlhSGFzUG9wdXAgPyB0aGlzLmFyaWFIYXNQb3B1cCA6IG51bGw7XG4gICAgdGhpcy5hcmlhTW9kYWxEYXRhID0gdGhpcy5hcmlhTW9kYWwgPyB0aGlzLmFyaWFNb2RhbCA6IG51bGw7XG4gIH1cblxuICBnZXRJdGVtSWQoaXRlbSwgaW5kZXg6IG51bWJlcik6IHN0cmluZyB7XG4gICAgbGV0IGlkO1xuICAgIGlmIChpdGVtLmlkKSB7XG4gICAgICBpZCA9IGl0ZW0uaWQ7XG4gICAgfSBlbHNlIHtcbiAgICAgIGlkID0gdGhpcy5pZFByZWZpeCA/IHRoaXMuaWRQcmVmaXggKyAnLScgKyAoaW5kZXggKyAxKSA6IChpbmRleCArIDEpO1xuICAgIH1cbiAgICByZXR1cm4gaWQ7XG4gIH1cblxuICBjaGFuZ2VBbGwoKTogdm9pZCB7XG4gICAgY29uc3QgaXRlbXMgPSB0aGlzLmdldEl0ZW1zKCk7XG4gICAgaXRlbXMuZm9yRWFjaChpdGVtID0+IHtcbiAgICAgIGNvbnN0IGlzQ2hhbmdlID0gaXRlbS5vcGVuICE9PSB0aGlzLnNob3dBbGw7XG4gICAgICBpdGVtLm9wZW4gPSB0aGlzLnNob3dBbGw7XG4gICAgICBpZiAoaXNDaGFuZ2UgJiYgaXRlbSBpbnN0YW5jZW9mIEFjY29yZGlvbkl0ZW1Db21wb25lbnQpIHtcbiAgICAgICAgaXRlbS5vcGVuQ2hhbmdlLmVtaXQoaXRlbS5vcGVuKTtcbiAgICAgIH1cbiAgICB9KTtcbiAgICB0aGlzLnNob3dBbGwgPSAhdGhpcy5zaG93QWxsO1xuICB9XG5cbiAgdG9nZ2xlSXRlbShpdGVtOiBBY2NvcmRpb25JdGVtRGF0YSk6IHZvaWQge1xuICAgIGlmICghaXRlbS5vcGVuIHx8IHRoaXMuYWxsb3dUb2dnbGUpIHtcbiAgICAgIGNvbnN0IG5ld09wZW5WYWx1ZSA9ICFpdGVtLm9wZW47XG4gICAgICBpZiAoIXRoaXMuYWxsb3dNdWx0aXBsZSkge1xuICAgICAgICBjb25zdCBpdGVtcyA9IHRoaXMuZ2V0SXRlbXMoKTtcbiAgICAgICAgaXRlbXMuZm9yRWFjaChpdCA9PiB7XG4gICAgICAgICAgY29uc3Qgd2FzT3BlbiA9IGl0Lm9wZW47XG4gICAgICAgICAgaXQub3BlbiA9IGZhbHNlO1xuICAgICAgICAgIGlmICh3YXNPcGVuICYmIGl0ICE9PSBpdGVtICYmIGl0IGluc3RhbmNlb2YgQWNjb3JkaW9uSXRlbUNvbXBvbmVudCkge1xuICAgICAgICAgICAgaXQub3BlbkNoYW5nZS5lbWl0KGl0Lm9wZW4pO1xuICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgICBpdGVtLm9wZW4gPSBuZXdPcGVuVmFsdWU7XG4gICAgICBpZiAoaXRlbSBpbnN0YW5jZW9mIEFjY29yZGlvbkl0ZW1Db21wb25lbnQpIHtcbiAgICAgICAgaXRlbS5vcGVuQ2hhbmdlLmVtaXQoaXRlbS5vcGVuKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBmb2N1c0ZpcnN0SXRlbShldmVudCk6IHZvaWQge1xuICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgdGhpcy5pdGVtU2VsZWN0b3JzLnRvQXJyYXkoKVswXS5uYXRpdmVFbGVtZW50LmZvY3VzKCk7XG4gIH1cblxuICBmb2N1c0xhc3RJdGVtKGV2ZW50KTogdm9pZCB7XG4gICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICB0aGlzLml0ZW1TZWxlY3RvcnMudG9BcnJheSgpW3RoaXMuaXRlbVNlbGVjdG9ycy5sZW5ndGggLSAxXS5uYXRpdmVFbGVtZW50LmZvY3VzKCk7XG4gIH1cblxuICBmb2N1c05leHRJdGVtKGV2ZW50LCBmb2N1c2VkSXRlbTogbnVtYmVyKTogdm9pZCB7XG4gICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICBjb25zdCBzZWxlY3RvcnMgPSB0aGlzLml0ZW1TZWxlY3RvcnMudG9BcnJheSgpO1xuICAgIGlmIChzZWxlY3RvcnNbKGZvY3VzZWRJdGVtICsgMSkgJSBzZWxlY3RvcnMubGVuZ3RoXSAhPSBudWxsKSB7XG4gICAgICBzZWxlY3RvcnNbKGZvY3VzZWRJdGVtICsgMSkgJSBzZWxlY3RvcnMubGVuZ3RoXS5uYXRpdmVFbGVtZW50LmZvY3VzKCk7XG4gICAgfVxuICB9XG5cbiAgZm9jdXNQcmV2aW91c0l0ZW0oZXZlbnQsIGZvY3VzZWRJdGVtOiBudW1iZXIpOiB2b2lkIHtcbiAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgIGNvbnN0IHNlbGVjdG9ycyA9IHRoaXMuaXRlbVNlbGVjdG9ycy50b0FycmF5KCk7XG4gICAgaWYgKHNlbGVjdG9yc1soZm9jdXNlZEl0ZW0gKyBzZWxlY3RvcnMubGVuZ3RoIC0gMSkgJSBzZWxlY3RvcnMubGVuZ3RoXSAhPSBudWxsKSB7XG4gICAgICBzZWxlY3RvcnNbKGZvY3VzZWRJdGVtICsgc2VsZWN0b3JzLmxlbmd0aCAtIDEpICUgc2VsZWN0b3JzLmxlbmd0aF0ubmF0aXZlRWxlbWVudC5mb2N1cygpO1xuICAgIH1cbiAgfVxuXG4gIHNlbGVjdEl0ZW0oaTogbnVtYmVyKTogdm9pZCB7XG4gICAgdGhpcy5jdXJyZW50SXRlbSA9IGk7XG4gIH1cblxuICBnZXRUaXRsZUNsYXNzZXMoKTogc3RyaW5nIHtcbiAgICBsZXQgY2xhc3NlcyA9ICdjLWgyIG1iLWJhc2UnO1xuICAgIGlmICh0aGlzLmhlYWRpbmdDb21wb25lbnQgJiYgdGhpcy5oZWFkaW5nQ29tcG9uZW50LmNsYXNzZXMpIHtcbiAgICAgIGNsYXNzZXMgPSB0aGlzLmhlYWRpbmdDb21wb25lbnQuY2xhc3NlcztcbiAgICB9IGVsc2UgaWYgKHRoaXMuaGVhZGluZyAmJiB0aGlzLmhlYWRpbmcuY2xhc3Nlcykge1xuICAgICAgY2xhc3NlcyA9IHRoaXMuaGVhZGluZy5jbGFzc2VzO1xuICAgIH1cbiAgICByZXR1cm4gY2xhc3NlcztcbiAgfVxuXG4gIGdldEl0ZW1zKCk6IEFjY29yZGlvbkl0ZW1EYXRhW10ge1xuICAgIGNvbnN0IGl0ZW1zID0gdGhpcy5pdGVtQ29tcG9uZW50TGlzdCAmJiB0aGlzLml0ZW1Db21wb25lbnRMaXN0Lmxlbmd0aCA+IDAgPyB0aGlzLml0ZW1Db21wb25lbnRMaXN0LnRvQXJyYXkoKSA6IHRoaXMuaXRlbXM7XG4gICAgcmV0dXJuIGl0ZW1zO1xuICB9XG5cbiAgZ2V0SXRlbUhlYWRlcihpdGVtOiBBY2NvcmRpb25JdGVtRGF0YSk6IEFjY29yZGlvbkhlYWRlckNvbXBvbmVudCB7XG4gICAgcmV0dXJuIGl0ZW0gaW5zdGFuY2VvZiBBY2NvcmRpb25JdGVtQ29tcG9uZW50ID8gaXRlbS5oZWFkZXJDb21wb25lbnQgOiBudWxsO1xuICB9XG5cbiAgZ2V0SXRlbUNvbnRlbnQoaXRlbTogQWNjb3JkaW9uSXRlbURhdGEpOiBDb250ZW50Q29tcG9uZW50IHtcbiAgICByZXR1cm4gaXRlbSBpbnN0YW5jZW9mIEFjY29yZGlvbkl0ZW1Db21wb25lbnQgPyBpdGVtLmNvbnRlbnRDb21wb25lbnQgOiBudWxsO1xuICB9XG5cbn1cbiIsIlxuICA8ZGl2IGNsYXNzPVwiZmxleCBqdXN0aWZ5LWJldHdlZW5cIj5cbiAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiaGVhZGluZ0NvbXBvbmVudCB8fCBoZWFkaW5nXCI+XG4gICAgICA8bmctY29udGFpbmVyIFtuZ1N3aXRjaF09XCJoZWFkaW5nTGV2ZWwgPiAwICYmIGhlYWRpbmdMZXZlbCA8IDYgPyBoZWFkaW5nTGV2ZWwgOiAyXCI+XG4gICAgICAgIDxoMSAqbmdTd2l0Y2hDYXNlPVwiMVwiIFtjbGFzc109XCJnZXRUaXRsZUNsYXNzZXMoKVwiPlxuICAgICAgICAgIDxuZy1jb250YWluZXIgKmRlc3lDdXN0b21Jbm5lckNvbnRlbnQ9XCJ7XG4gICAgICAgICAgICBjb21wb25lbnQ6IGhlYWRpbmdDb21wb25lbnQgPyBoZWFkaW5nQ29tcG9uZW50IDogbnVsbCxcbiAgICAgICAgICAgIGh0bWw6IGhlYWRpbmcgPyBoZWFkaW5nLmh0bWwgOiBudWxsLFxuICAgICAgICAgICAgdGV4dDogaGVhZGluZyA/IGhlYWRpbmcudGV4dCA6IG51bGxcbiAgICAgICAgICB9XCI+PC9uZy1jb250YWluZXI+XG4gICAgICAgIDwvaDE+XG4gICAgICAgIDxoMiAqbmdTd2l0Y2hDYXNlPVwiMlwiIFtjbGFzc109XCJnZXRUaXRsZUNsYXNzZXMoKVwiPlxuICAgICAgICAgIDxuZy1jb250YWluZXIgKmRlc3lDdXN0b21Jbm5lckNvbnRlbnQ9XCJ7XG4gICAgICAgICAgICBjb21wb25lbnQ6IGhlYWRpbmdDb21wb25lbnQgPyBoZWFkaW5nQ29tcG9uZW50IDogbnVsbCxcbiAgICAgICAgICAgIGh0bWw6IGhlYWRpbmcgPyBoZWFkaW5nLmh0bWwgOiBudWxsLFxuICAgICAgICAgICAgdGV4dDogaGVhZGluZyA/IGhlYWRpbmcudGV4dCA6IG51bGxcbiAgICAgICAgICB9XCI+PC9uZy1jb250YWluZXI+XG4gICAgICAgIDwvaDI+XG4gICAgICAgIDxoMyAqbmdTd2l0Y2hDYXNlPVwiM1wiIFtjbGFzc109XCJnZXRUaXRsZUNsYXNzZXMoKVwiPlxuICAgICAgICAgIDxuZy1jb250YWluZXIgKmRlc3lDdXN0b21Jbm5lckNvbnRlbnQ9XCJ7XG4gICAgICAgICAgICBjb21wb25lbnQ6IGhlYWRpbmdDb21wb25lbnQgPyBoZWFkaW5nQ29tcG9uZW50IDogbnVsbCxcbiAgICAgICAgICAgIGh0bWw6IGhlYWRpbmcgPyBoZWFkaW5nLmh0bWwgOiBudWxsLFxuICAgICAgICAgICAgdGV4dDogaGVhZGluZyA/IGhlYWRpbmcudGV4dCA6IG51bGxcbiAgICAgICAgICB9XCI+PC9uZy1jb250YWluZXI+XG4gICAgICAgIDwvaDM+XG4gICAgICAgIDxoNCAqbmdTd2l0Y2hDYXNlPVwiNFwiIFtjbGFzc109XCJnZXRUaXRsZUNsYXNzZXMoKVwiPlxuICAgICAgICAgIDxuZy1jb250YWluZXIgKmRlc3lDdXN0b21Jbm5lckNvbnRlbnQ9XCJ7XG4gICAgICAgICAgICBjb21wb25lbnQ6IGhlYWRpbmdDb21wb25lbnQgPyBoZWFkaW5nQ29tcG9uZW50IDogbnVsbCxcbiAgICAgICAgICAgIGh0bWw6IGhlYWRpbmcgPyBoZWFkaW5nLmh0bWwgOiBudWxsLFxuICAgICAgICAgICAgdGV4dDogaGVhZGluZyA/IGhlYWRpbmcudGV4dCA6IG51bGxcbiAgICAgICAgICB9XCI+PC9uZy1jb250YWluZXI+XG4gICAgICAgIDwvaDQ+XG4gICAgICAgIDxoNSAqbmdTd2l0Y2hDYXNlPVwiNVwiIFtjbGFzc109XCJnZXRUaXRsZUNsYXNzZXMoKVwiPlxuICAgICAgICAgIDxuZy1jb250YWluZXIgKmRlc3lDdXN0b21Jbm5lckNvbnRlbnQ9XCJ7XG4gICAgICAgICAgICBjb21wb25lbnQ6IGhlYWRpbmdDb21wb25lbnQgPyBoZWFkaW5nQ29tcG9uZW50IDogbnVsbCxcbiAgICAgICAgICAgIGh0bWw6IGhlYWRpbmcgPyBoZWFkaW5nLmh0bWwgOiBudWxsLFxuICAgICAgICAgICAgdGV4dDogaGVhZGluZyA/IGhlYWRpbmcudGV4dCA6IG51bGxcbiAgICAgICAgICB9XCI+PC9uZy1jb250YWluZXI+XG4gICAgICAgIDwvaDU+XG4gICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgIDxidXR0b24gKm5nSWY9XCJzaG93Q29udHJvbFwiIChjbGljayk9XCJjaGFuZ2VBbGwoKVwiIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAgICAgICBjbGFzcz1cIm1sLWF1dG8gcHktYmFzZSB0ZXh0LXNtIHRleHQtbmV1dHJhbC1kYXJrIHVuZGVybGluZSBmb2N1czp0ZXh0LWJsYWNrIGZvY3VzOmJnLXdhcm5pbmctYmFzZSBmb2N1czpvdXRsaW5lLW5vbmUgZm9jdXM6c2hhZG93LW91dGxpbmUtZm9jdXMgdGV4dC1yaWdodFwiPlxuICAgICAgICB7e3Nob3dBbGwgPyAnTW9zdHJhcicgOiAnT2N1bHRhcid9fSB0b2RvXG4gICAgICA8L2J1dHRvbj5cbiAgICA8L25nLWNvbnRhaW5lcj5cbiAgPC9kaXY+XG4gIDxkaXYgY2xhc3M9XCJBY2NvcmRpb25cIj5cbiAgICA8ZGl2ICpuZ0Zvcj1cImxldCBpdGVtIG9mIGdldEl0ZW1zKCk7IGluZGV4IGFzIGlcIiBjbGFzcz1cIi1teS1weCBweC14cyBweS1zbSBib3JkZXItdCBib3JkZXItYiBib3JkZXItbmV1dHJhbC1iYXNlXCJcbiAgICAgICAgIChrZXlkb3duLmhvbWUpPVwiZm9jdXNGaXJzdEl0ZW0oJGV2ZW50KVwiXG4gICAgICAgICAoa2V5ZG93bi5lbmQpPVwiZm9jdXNMYXN0SXRlbSgkZXZlbnQpXCJcbiAgICAgICAgIChrZXlkb3duLmFycm93dXApPVwiZm9jdXNQcmV2aW91c0l0ZW0oJGV2ZW50LCBpKVwiXG4gICAgICAgICAoa2V5ZG93bi5hcnJvd2Rvd24pPVwiZm9jdXNOZXh0SXRlbSgkZXZlbnQsIGkpXCJcbiAgICAgICAgIChjbGljayk9XCJzZWxlY3RJdGVtKGkpXCI+XG5cbiAgICAgIDxuZy1jb250YWluZXIgW25nU3dpdGNoXT1cImhlYWRpbmdMZXZlbCA+IDAgJiYgaGVhZGluZ0xldmVsIDwgNiA/IGhlYWRpbmdMZXZlbCA6IDJcIj5cbiAgICAgICAgPGgyICpuZ1N3aXRjaENhc2U9XCIxXCI+PG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cIml0ZW1IZWFkZXJDb250ZW50OyBjb250ZXh0OiB7aXRlbTogaXRlbSwgaWQ6IGdldEl0ZW1JZChpdGVtLCBpKSwgaW5kZXg6IGl9XCI+PC9uZy1jb250YWluZXI+PC9oMj5cbiAgICAgICAgPGgzICpuZ1N3aXRjaENhc2U9XCIyXCI+PG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cIml0ZW1IZWFkZXJDb250ZW50OyBjb250ZXh0OiB7aXRlbTogaXRlbSwgaWQ6IGdldEl0ZW1JZChpdGVtLCBpKSwgaW5kZXg6IGl9XCI+PC9uZy1jb250YWluZXI+PC9oMz5cbiAgICAgICAgPGg0ICpuZ1N3aXRjaENhc2U9XCIzXCI+PG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cIml0ZW1IZWFkZXJDb250ZW50OyBjb250ZXh0OiB7aXRlbTogaXRlbSwgaWQ6IGdldEl0ZW1JZChpdGVtLCBpKSwgaW5kZXg6IGl9XCI+PC9uZy1jb250YWluZXI+PC9oND5cbiAgICAgICAgPGg1ICpuZ1N3aXRjaENhc2U9XCI0XCI+PG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cIml0ZW1IZWFkZXJDb250ZW50OyBjb250ZXh0OiB7aXRlbTogaXRlbSwgaWQ6IGdldEl0ZW1JZChpdGVtLCBpKSwgaW5kZXg6IGl9XCI+PC9uZy1jb250YWluZXI+PC9oNT5cbiAgICAgICAgPGg2ICpuZ1N3aXRjaENhc2U9XCI1XCI+PG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cIml0ZW1IZWFkZXJDb250ZW50OyBjb250ZXh0OiB7aXRlbTogaXRlbSwgaWQ6IGdldEl0ZW1JZChpdGVtLCBpKSwgaW5kZXg6IGl9XCI+PC9uZy1jb250YWluZXI+PC9oNj5cbiAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgPHAgY2xhc3M9XCJzci1vbmx5XCIgYXJpYS1oaWRkZW49XCJ0cnVlXCI+SGF6IGNsaWNrIGVuIGVsIGJvdMOzbiBhbnRlcmlvciBwYXJhIG1vc3RyYXIgdSBvY3VsdGFyPC9wPlxuICAgICAgPGRpdiAqbmdJZj1cIml0ZW0ub3BlblwiIGNsYXNzPVwiQWNjb3JkaW9uLXBhbmVsXCJcbiAgICAgICAgICAgW2NsYXNzXT1cIml0ZW0uY2xhc3Nlc1wiXG4gICAgICAgICAgIFthdHRyLmlkXT1cImdldEl0ZW1JZChpdGVtLCBpKVwiXG4gICAgICAgICAgIFthdHRyLnJvbGVdPVwiKGl0ZW0ucm9sZSA/IHJvbGUgOiAnYWNjb3JkaW9uJylcIiAgICAgICAgICAgXG4gICAgICAgICAgIFthdHRyLmFyaWEtc2VsZWN0ZWRdPVwiY3VycmVudEl0ZW0gPT09IGkgPyAndHJ1ZScgOiAnZmFsc2UnXCJcbiAgICAgICAgICAgW2F0dHIuYXJpYS1kZXNjcmliZWRieV09XCJpdGVtLmFyaWFEZXNjcmliZWRCeVwiXG4gICAgICAgICAgIFthdHRyLmFyaWEtZXJyb3JtZXNzYWdlXT1cIml0ZW0uYXJpYUVycm9yTWVzc2FnZVwiXG4gICAgICAgICAgIFthdHRyLmFyaWEtbGFiZWxdPVwiaXRlbS5hcmlhTGFiZWxcIlxuICAgICAgICAgICBbYXR0ci5hcmlhLWxhYmVsbGVkYnldPVwiaXRlbS5hcmlhTGFiZWxsZWRCeVwiXG4gICAgICAgICAgIFthdHRyLmFyaWEtaGlkZGVuXT1cIml0ZW0uYXJpYUhpZGRlblwiXG4gICAgICAgICAgIFthdHRyLmFyaWEtY29udHJvbHNdPVwiJ2FjY29yZGlvbi0nICsgZ2V0SXRlbUlkKGl0ZW0sIGkpXCJcbiAgICAgICAgICAgW2F0dHIuYXJpYS1jdXJyZW50XT1cIml0ZW0uYXJpYUN1cnJlbnRcIlxuICAgICAgICAgICBbYXR0ci5hcmlhLWxpdmVdPVwiaXRlbS5hcmlhTGl2ZVwiXG4gICAgICAgICAgIFthdHRyLmFyaWEtZXhwYW5kZWRdPVwiaXRlbS5hcmlhRXhwYW5kZWRcIlxuICAgICAgICAgICBbYXR0ci5hcmlhLWhhc3BvcHVwXT1cIml0ZW0uYXJpYUhhc1BvcHVwXCI+XG4gICAgICAgIDxuZy1jb250YWluZXIgKmRlc3lDdXN0b21Jbm5lckNvbnRlbnQ9XCJ7IGNvbXBvbmVudDogZ2V0SXRlbUNvbnRlbnQoaXRlbSksIGh0bWw6IGl0ZW0uaHRtbCwgdGV4dDogaXRlbS50ZXh0IH1cIj48L25nLWNvbnRhaW5lcj5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cbjxuZy10ZW1wbGF0ZSAjaXRlbUhlYWRlckNvbnRlbnQgbGV0LWl0ZW09XCJpdGVtXCIgbGV0LWlkPVwiaWRcIiBsZXQtaW5kZXg9XCJpbmRleFwiPlxuICA8YnV0dG9uICNpdGVtU2VsZWN0b3IgW2lkXT1cImlkICsgJy10aXRsZSdcIiB0eXBlPVwiYnV0dG9uXCIgY2xhc3M9XCJBY2NvcmRpb24tdHJpZ2dlciBncm91cCByZWxhdGl2ZSB3LWZ1bGwgcHktc20gZm9udC1zZW1pYm9sZCB0ZXh0LWxlZnQgY3Vyc29yLXBvaW50ZXIgZm9jdXM6Ymctd2FybmluZy1iYXNlIGZvY3VzOm91dGxpbmUtbm9uZSBmb2N1czpzaGFkb3ctb3V0bGluZS1mb2N1cyBmb2N1czp0ZXh0LWJsYWNrXCJcbiAgICAgICAgICBbYXR0ci5hcmlhLWNvbnRyb2xzXT1cImlkXCIgW2F0dHIuYXJpYS1leHBhbmRlZF09XCJpdGVtLm9wZW5cIiAoY2xpY2spPVwidG9nZ2xlSXRlbShpdGVtKVwiIFthdHRyLmRpc2FibGVkXT1cIml0ZW0uZGlzYWJsZWRcIiBbbmdDbGFzc109XCJpdGVtLmRpc2FibGVkID8gJ2N1cnNvci1ub3QtYWxsb3dlZCcgOiBjbGFzc2VzXCI+XG4gICAgPG5nLWNvbnRhaW5lciAqZGVzeUN1c3RvbUlubmVyQ29udGVudD1cInsgY29tcG9uZW50OiBnZXRJdGVtSGVhZGVyKGl0ZW0pLCBodG1sOiBpdGVtLmhlYWRlckh0bWwsIHRleHQ6IGl0ZW0uaGVhZGVyVGV4dCB9XCI+PC9uZy1jb250YWluZXI+XG4gICAgPHNwYW4gKm5nSWY9XCIhaXRlbS5kaXNhYmxlZFwiIGNsYXNzPVwiYWJzb2x1dGUgaW5zZXQteS0wIHJpZ2h0LTAgcHktc20gZm9udC1ub3JtYWwgdGV4dC1zbSB0ZXh0LW5ldXRyYWwtZGFyayB1bmRlcmxpbmUgZ3JvdXAtZm9jdXM6dGV4dC1ibGFjayBwb2ludGVyLWV2ZW50cy1ub25lXCIgYXJpYS1oaWRkZW49XCJ0cnVlXCIgW25nQ2xhc3NdPVwieydoaWRkZW4nOiBpdGVtLmRpc2FibGVkfVwiPlxuICAgICAgPHNwYW4gKm5nSWY9XCIhaXRlbS5vcGVuXCIgW2NsYXNzXT1cIlsnQWNjb3JkaW9uLXNob3cnLCBpdGVtLnNob3dIZWFkZXJCdXR0b24/LmNsYXNzZXNdIHwgbWFrZUh0bWxMaXN0XCI+XG4gICAgICAgIDxuZy1jb250YWluZXIgKmRlc3lDdXN0b21Jbm5lckNvbnRlbnQ9XCJ7IGNvbXBvbmVudDogaXRlbS5zaG93SGVhZGVyQnV0dG9uLCB0ZXh0OiAnTW9zdHJhcicgfVwiPjwvbmctY29udGFpbmVyPiAgICAgIFxuICAgICAgPC9zcGFuPlxuICAgICAgPHNwYW4gKm5nSWY9XCJhbGxvd1RvZ2dsZSAmJiBpdGVtLm9wZW5cIiBbY2xhc3NdPVwiWydBY2NvcmRpb24taGlkZScsIGl0ZW0uc2hvd0hlYWRlckJ1dHRvbj8uY2xhc3Nlc10gfCBtYWtlSHRtbExpc3RcIj5cbiAgICAgICAgPG5nLWNvbnRhaW5lciAqZGVzeUN1c3RvbUlubmVyQ29udGVudD1cInsgY29tcG9uZW50OiBpdGVtLmhpZGVIZWFkZXJCdXR0b24sIHRleHQ6ICdPY3VsdGFyJyB9XCI+PC9uZy1jb250YWluZXI+XG4gICAgICA8L3NwYW4+XG4gICAgPC9zcGFuPlxuICA8L2J1dHRvbj5cbjwvbmctdGVtcGxhdGU+XG4iXX0=
|
|
@@ -7,13 +7,13 @@ import * as i2 from "../../../shared/directives/custom-inner-content.directive";
|
|
|
7
7
|
import * as i3 from "../../../shared/pipes/make-html-list.pipe";
|
|
8
8
|
export class AccordionHistoryComponent extends AccordionComponent {
|
|
9
9
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: AccordionHistoryComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
|
|
10
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: AccordionHistoryComponent, selector: "desy-accordion-history", queries: [{ propertyName: "itemComponentList", predicate: AccordionHistoryItemComponent }], usesInheritance: true, ngImport: i0, template: "<div [class]=\"classes\"\n [attr.role]=\"role\"\n [attr.aria-describedby]=\"ariaDescribedBy\"\n [attr.aria-errormessage]=\"ariaErrorMessage\"\n [attr.aria-label]=\"ariaLabel\"\n [attr.aria-labelledby]=\"ariaLabelledBy\"\n [attr.aria-hidden]=\"ariaHidden\"\n [attr.aria-disabled]=\"ariaDisabled\"\n [attr.aria-controls]=\"ariaControls\"\n [attr.aria-current]=\"ariaCurrent\"\n [attr.aria-live]=\"ariaLive\"\n [attr.aria-expanded]=\"ariaExpanded\"\n [attr.aria-haspopup]=\"ariaHasPopup\"\n [attr.tabindex]=\"tabindex\">\n <div class=\"flex justify-between\">\n <ng-container [ngSwitch]=\"headingLevel\">\n <h1 *ngSwitchCase=\"1\" [class]=\"headingComponent?.classes || 'c-h2 mb-base'\"><ng-container *desyCustomInnerContent=\"{ component: headingComponent }\"></ng-container></h1>\n <h2 *ngSwitchCase=\"2\" [class]=\"headingComponent?.classes || 'c-h2 mb-base'\"><ng-container *desyCustomInnerContent=\"{ component: headingComponent }\"></ng-container></h2>\n <h3 *ngSwitchCase=\"3\" [class]=\"headingComponent?.classes || 'c-h2 mb-base'\"><ng-container *desyCustomInnerContent=\"{ component: headingComponent }\"></ng-container></h3>\n <h4 *ngSwitchCase=\"4\" [class]=\"headingComponent?.classes || 'c-h2 mb-base'\"><ng-container *desyCustomInnerContent=\"{ component: headingComponent }\"></ng-container></h4>\n <h5 *ngSwitchCase=\"5\" [class]=\"headingComponent?.classes || 'c-h2 mb-base'\"><ng-container *desyCustomInnerContent=\"{ component: headingComponent }\"></ng-container></h5>\n <h2 *ngSwitchDefault [class]=\"headingComponent?.classes || 'c-h2 mb-base'\"><ng-container *desyCustomInnerContent=\"{ component: headingComponent }\"></ng-container></h2>\n </ng-container>\n\n <button *ngIf=\"showControl\" (click)=\"changeAll()\"\n class=\"ml-auto py-base text-sm text-neutral-dark underline focus:text-black focus:bg-warning-base focus:outline-none focus:shadow-outline-focus text-right\">\n {{showAll ? 'Mostrar' : 'Ocultar'}} todo\n </button>\n </div>\n <div class=\"Accordion pl-lg\">\n <ng-template #itemHeaderContent let-item=\"item\" let-id=\"id\" let-index=\"index\">\n <button #itemSelector [id]=\"id + '-title'\" (click)=\"toggleItem(item)\"\n [class]=\"['Accordion-trigger group relative w-full py-sm font-semibold text-left cursor-pointer focus:bg-warning-base focus:outline-none focus:shadow-outline-focus focus:text-black', item.disabled ? 'cursor-not-allowed' : ''] | makeHtmlList\"\n [attr.aria-controls]=\"id\" [attr.aria-expanded]=\"item.open\" [disabled]=\"item.disabled\">\n <ng-container *desyCustomInnerContent=\"{ component: getItemHeader(item), html: item.headerHtml, text: item.headerText }\"></ng-container>\n <span *ngIf=\"!item.disabled\" class=\"absolute inset-y-0 right-0 py-sm font-normal text-sm text-neutral-dark underline group-focus:text-black pointer-events-none\">\n <span *ngIf=\"!item.open\" [class]=\"['Accordion-show', item.showButton?.classes] | makeHtmlList\">\n <ng-container *desyCustomInnerContent=\"{ component: item.showButton, text: 'Mostrar' }\"></ng-container>\n </span>\n <span *ngIf=\"allowToggle && item.open\" [class]=\"['Accordion-show', item.hideButton?.classes] | makeHtmlList\">\n <ng-container *desyCustomInnerContent=\"{ component: item.hideButton, text: 'Ocultar' }\"></ng-container>\n </span>\n </span>\n </button>\n </ng-template>\n\n <div *ngFor=\"let item of getItems(); index as i; first as isFirst; last as isLast\" \n class=\"relative -my-px px-xs py-sm border-t border-b border-neutral-base\"\n (keydown.home)=\"focusFirstItem($event)\"\n (keydown.end)=\"focusLastItem($event)\"\n (keydown.arrowup)=\"focusPreviousItem($event, i)\"\n (keydown.arrowdown)=\"focusNextItem($event, i)\"\n (click)=\"selectItem(i)\">\n <ng-container [ngSwitch]=\"headingLevel\">\n <h2 *ngSwitchCase=\"1\"><ng-container *ngTemplateOutlet=\"itemHeaderContent; context: {item: item, id: getItemId(item, i), index: i}\"></ng-container></h2>\n <h3 *ngSwitchCase=\"2\"><ng-container *ngTemplateOutlet=\"itemHeaderContent; context: {item: item, id: getItemId(item, i), index: i}\"></ng-container></h3>\n <h4 *ngSwitchCase=\"3\"><ng-container *ngTemplateOutlet=\"itemHeaderContent; context: {item: item, id: getItemId(item, i), index: i}\"></ng-container></h4>\n <h5 *ngSwitchCase=\"4\"><ng-container *ngTemplateOutlet=\"itemHeaderContent; context: {item: item, id: getItemId(item, i), index: i}\"></ng-container></h5>\n <h6 *ngSwitchCase=\"5\"><ng-container *ngTemplateOutlet=\"itemHeaderContent; context: {item: item, id: getItemId(item, i), index: i}\"></ng-container></h6>\n <h3 *ngSwitchDefault><ng-container *ngTemplateOutlet=\"itemHeaderContent; context: {item: item, id: getItemId(item, i), index: i}\"></ng-container></h3>\n </ng-container>\n <p class=\"sr-only\" aria-hidden=\"true\">Haz click en el bot\u00F3n anterior para mostrar u ocultar</p>\n <ng-container *ngIf=\"!isFirst\">\n <ng-container [ngSwitch]=\"item.status\">\n <div *ngSwitchCase=\"'current'\" class=\"absolute -top-px -left-5 h-6 border-2 border-primary-base\"></div>\n <div *ngSwitchCase=\"'pending'\" class=\"absolute -top-px -left-5 h-6 border-2 border-neutral-light\"></div>\n <div *ngSwitchCase=\"'muted'\" class=\"absolute -top-px -left-5 h-6 border-2 border-neutral-base\"></div>\n <div *ngSwitchCase=\"'currentmuted'\" class=\"absolute -top-px -left-5 h-6 border-2 border-neutral-base\"></div>\n <div *ngSwitchDefault class=\"absolute -top-px -left-5 h-6 border-2 border-primary-base\"></div>\n </ng-container>\n </ng-container>\n <ng-container *ngIf=\"!isLast\">\n <ng-container [ngSwitch]=\"item.status\">\n <div *ngSwitchCase=\"'current'\" class=\"absolute top-6 bottom-0 -left-5 border-2 border-neutral-light\"></div>\n <div *ngSwitchCase=\"'pending'\" class=\"absolute top-6 bottom-0 -left-5 border-2 border-neutral-light\"></div>\n <div *ngSwitchCase=\"'muted'\" class=\"absolute top-6 bottom-0 -left-5 border-2 border-neutral-base\"></div>\n <div *ngSwitchCase=\"'currentmuted'\" class=\"absolute top-6 bottom-0 -left-5 border-2 border-neutral-light\"></div>\n <div *ngSwitchDefault class=\"absolute top-6 bottom-0 -left-5 border-2 border-primary-base\"></div>\n </ng-container>\n </ng-container>\n <ng-container [ngSwitch]=\"item.status\">\n <div *ngSwitchCase=\"'current'\" class=\"absolute top-5 -left-6 w-3 h-3 bg-white ring-2 ring-primary-base rounded-full\" role=\"img\"><p class=\"sr-only\">Estado: actual</p></div>\n <div *ngSwitchCase=\"'pending'\" class=\"absolute top-5 -left-6 w-3 h-3 bg-white border-2 border-neutral-base rounded-full\" role=\"img\"><p class=\"sr-only\">Estado: pendiente</p></div>\n <div *ngSwitchCase=\"'muted'\" class=\"absolute top-5 -left-6 w-3 h-3 bg-neutral-base border-2 border-neutral-base rounded-full\" role=\"img\"><p class=\"sr-only\">Estado: pasado</p></div>\n <div *ngSwitchCase=\"'currentmuted'\" class=\"absolute top-5 -left-6 w-3 h-3 bg-neutral-base ring-2 ring-neutral-base rounded-full\" role=\"img\"><p class=\"sr-only\">Estado: actual</p></div>\n <div *ngSwitchDefault class=\"absolute top-5 -left-6 w-3 h-3 bg-primary-base border-2 border-primary-base rounded-full\" role=\"img\"><p class=\"sr-only\">Estado: pasado</p></div>\n </ng-container>\n\n <div *ngIf=\"item.open\" [class]=\"['Accordion-panel relative', item.classes] | makeHtmlList\"\n [attr.id]=\"getItemId(item, i)\"\n [attr.role]=\"(item.role ? role : 'accordion')\"\n [attr.aria-selected]=\"currentItem === i ? 'true' : 'false'\"\n [attr.aria-describedby]=\"item.ariaDescribedBy\"\n [attr.aria-errormessage]=\"item.ariaErrorMessage\"\n [attr.aria-label]=\"item.ariaLabel\"\n [attr.aria-labelledby]=\"item.ariaLabelledBy\"\n [attr.aria-hidden]=\"item.ariaHidden\"\n [attr.aria-controls]=\"'accordion-' + getItemId(item, i)\"\n [attr.aria-current]=\"item.ariaCurrent\"\n [attr.aria-live]=\"item.ariaLive\"\n [attr.aria-expanded]=\"item.ariaExpanded\"\n [attr.aria-haspopup]=\"item.ariaHasPopup\">\n <ng-container *ngIf=\"!isLast\">\n <ng-container [ngSwitch]=\"item.status\">\n <div *ngSwitchCase=\"'current'\" class=\"absolute top-4 bottom-0 -left-6 -my-sm border-2 border-neutral-light\"></div>\n <div *ngSwitchCase=\"'pending'\" class=\"absolute top-4 bottom-0 -left-6 -my-sm border-2 border-neutral-light\"></div>\n <div *ngSwitchCase=\"'muted'\" class=\"absolute top-4 bottom-0 -left-6 -my-sm border-2 border-neutral-base\"></div>\n <div *ngSwitchCase=\"'currentmuted'\" class=\"absolute top-4 bottom-0 -left-6 -my-sm border-2 border-neutral-light\"></div>\n <div *ngSwitchDefault class=\"absolute top-4 bottom-0 -left-6 -my-sm border-2 border-primary-base\"></div>\n </ng-container>\n </ng-container>\n <ng-container *desyCustomInnerContent=\"{ component: getItemContent(item), html: item.html, text: item.text }\"></ng-container>\n </div>\n </div>\n </div>\n</div>\n", dependencies: [{ kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i1.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { kind: "directive", type: i1.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { kind: "directive", type: i1.NgSwitchDefault, selector: "[ngSwitchDefault]" }, { kind: "directive", type: i2.CustomInnerContentDirective, selector: "[desyCustomInnerContent]", inputs: ["desyCustomInnerContent"] }, { kind: "pipe", type: i3.MakeHtmlListPipe, name: "makeHtmlList" }] }); }
|
|
10
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: AccordionHistoryComponent, selector: "desy-accordion-history", queries: [{ propertyName: "itemComponentList", predicate: AccordionHistoryItemComponent }], usesInheritance: true, ngImport: i0, template: "<div [class]=\"classes\"\n [attr.role]=\"role\"\n [attr.aria-describedby]=\"ariaDescribedBy\"\n [attr.aria-errormessage]=\"ariaErrorMessage\"\n [attr.aria-label]=\"ariaLabel\"\n [attr.aria-labelledby]=\"ariaLabelledBy\"\n [attr.aria-hidden]=\"ariaHidden\"\n [attr.aria-disabled]=\"ariaDisabled\"\n [attr.aria-controls]=\"ariaControls\"\n [attr.aria-current]=\"ariaCurrent\"\n [attr.aria-live]=\"ariaLive\"\n [attr.aria-expanded]=\"ariaExpanded\"\n [attr.aria-haspopup]=\"ariaHasPopup\"\n [attr.tabindex]=\"tabindex\">\n <div class=\"flex justify-between\">\n <ng-container [ngSwitch]=\"headingLevel\">\n <h1 *ngSwitchCase=\"1\" [class]=\"headingComponent?.classes || 'c-h2 mb-base'\"><ng-container *desyCustomInnerContent=\"{ component: headingComponent }\"></ng-container></h1>\n <h2 *ngSwitchCase=\"2\" [class]=\"headingComponent?.classes || 'c-h2 mb-base'\"><ng-container *desyCustomInnerContent=\"{ component: headingComponent }\"></ng-container></h2>\n <h3 *ngSwitchCase=\"3\" [class]=\"headingComponent?.classes || 'c-h2 mb-base'\"><ng-container *desyCustomInnerContent=\"{ component: headingComponent }\"></ng-container></h3>\n <h4 *ngSwitchCase=\"4\" [class]=\"headingComponent?.classes || 'c-h2 mb-base'\"><ng-container *desyCustomInnerContent=\"{ component: headingComponent }\"></ng-container></h4>\n <h5 *ngSwitchCase=\"5\" [class]=\"headingComponent?.classes || 'c-h2 mb-base'\"><ng-container *desyCustomInnerContent=\"{ component: headingComponent }\"></ng-container></h5>\n <h2 *ngSwitchDefault [class]=\"headingComponent?.classes || 'c-h2 mb-base'\"><ng-container *desyCustomInnerContent=\"{ component: headingComponent }\"></ng-container></h2>\n </ng-container>\n\n <button *ngIf=\"showControl\" (click)=\"changeAll()\"\n type=\"button\" class=\"ml-auto py-base text-sm text-neutral-dark underline focus:text-black focus:bg-warning-base focus:outline-none focus:shadow-outline-focus text-right\">\n {{showAll ? 'Mostrar' : 'Ocultar'}} todo\n </button>\n </div>\n <div class=\"Accordion pl-lg\">\n <ng-template #itemHeaderContent let-item=\"item\" let-id=\"id\" let-index=\"index\">\n <button #itemSelector [id]=\"id + '-title'\" (click)=\"toggleItem(item)\" type=\"button\"\n type=\"button\" [class]=\"['Accordion-trigger group relative w-full py-sm font-semibold text-left cursor-pointer focus:bg-warning-base focus:outline-none focus:shadow-outline-focus focus:text-black', item.disabled ? 'cursor-not-allowed' : ''] | makeHtmlList\"\n [attr.aria-controls]=\"id\" [attr.aria-expanded]=\"item.open\" [disabled]=\"item.disabled\">\n <ng-container *desyCustomInnerContent=\"{ component: getItemHeader(item), html: item.headerHtml, text: item.headerText }\"></ng-container>\n <span *ngIf=\"!item.disabled\" class=\"absolute inset-y-0 right-0 py-sm font-normal text-sm text-neutral-dark underline group-focus:text-black pointer-events-none\">\n <span *ngIf=\"!item.open\" [class]=\"['Accordion-show', item.showButton?.classes] | makeHtmlList\">\n <ng-container *desyCustomInnerContent=\"{ component: item.showButton, text: 'Mostrar' }\"></ng-container>\n </span>\n <span *ngIf=\"allowToggle && item.open\" [class]=\"['Accordion-show', item.hideButton?.classes] | makeHtmlList\">\n <ng-container *desyCustomInnerContent=\"{ component: item.hideButton, text: 'Ocultar' }\"></ng-container>\n </span>\n </span>\n </button>\n </ng-template>\n\n <div *ngFor=\"let item of getItems(); index as i; first as isFirst; last as isLast\" \n class=\"relative -my-px px-xs py-sm border-t border-b border-neutral-base\"\n (keydown.home)=\"focusFirstItem($event)\"\n (keydown.end)=\"focusLastItem($event)\"\n (keydown.arrowup)=\"focusPreviousItem($event, i)\"\n (keydown.arrowdown)=\"focusNextItem($event, i)\"\n (click)=\"selectItem(i)\">\n <ng-container [ngSwitch]=\"headingLevel\">\n <h2 *ngSwitchCase=\"1\"><ng-container *ngTemplateOutlet=\"itemHeaderContent; context: {item: item, id: getItemId(item, i), index: i}\"></ng-container></h2>\n <h3 *ngSwitchCase=\"2\"><ng-container *ngTemplateOutlet=\"itemHeaderContent; context: {item: item, id: getItemId(item, i), index: i}\"></ng-container></h3>\n <h4 *ngSwitchCase=\"3\"><ng-container *ngTemplateOutlet=\"itemHeaderContent; context: {item: item, id: getItemId(item, i), index: i}\"></ng-container></h4>\n <h5 *ngSwitchCase=\"4\"><ng-container *ngTemplateOutlet=\"itemHeaderContent; context: {item: item, id: getItemId(item, i), index: i}\"></ng-container></h5>\n <h6 *ngSwitchCase=\"5\"><ng-container *ngTemplateOutlet=\"itemHeaderContent; context: {item: item, id: getItemId(item, i), index: i}\"></ng-container></h6>\n <h3 *ngSwitchDefault><ng-container *ngTemplateOutlet=\"itemHeaderContent; context: {item: item, id: getItemId(item, i), index: i}\"></ng-container></h3>\n </ng-container>\n <p class=\"sr-only\" aria-hidden=\"true\">Haz click en el bot\u00F3n anterior para mostrar u ocultar</p>\n <ng-container *ngIf=\"!isFirst\">\n <ng-container [ngSwitch]=\"item.status\">\n <div *ngSwitchCase=\"'current'\" class=\"absolute -top-px -left-5 h-6 border-2 border-primary-base\"></div>\n <div *ngSwitchCase=\"'pending'\" class=\"absolute -top-px -left-5 h-6 border-2 border-neutral-light\"></div>\n <div *ngSwitchCase=\"'muted'\" class=\"absolute -top-px -left-5 h-6 border-2 border-neutral-base\"></div>\n <div *ngSwitchCase=\"'currentmuted'\" class=\"absolute -top-px -left-5 h-6 border-2 border-neutral-base\"></div>\n <div *ngSwitchDefault class=\"absolute -top-px -left-5 h-6 border-2 border-primary-base\"></div>\n </ng-container>\n </ng-container>\n <ng-container *ngIf=\"!isLast\">\n <ng-container [ngSwitch]=\"item.status\">\n <div *ngSwitchCase=\"'current'\" class=\"absolute top-6 bottom-0 -left-5 border-2 border-neutral-light\"></div>\n <div *ngSwitchCase=\"'pending'\" class=\"absolute top-6 bottom-0 -left-5 border-2 border-neutral-light\"></div>\n <div *ngSwitchCase=\"'muted'\" class=\"absolute top-6 bottom-0 -left-5 border-2 border-neutral-base\"></div>\n <div *ngSwitchCase=\"'currentmuted'\" class=\"absolute top-6 bottom-0 -left-5 border-2 border-neutral-light\"></div>\n <div *ngSwitchDefault class=\"absolute top-6 bottom-0 -left-5 border-2 border-primary-base\"></div>\n </ng-container>\n </ng-container>\n <ng-container [ngSwitch]=\"item.status\">\n <div *ngSwitchCase=\"'current'\" class=\"absolute top-5 -left-6 w-3 h-3 bg-white ring-2 ring-primary-base rounded-full\" role=\"img\"><p class=\"sr-only\">Estado: actual</p></div>\n <div *ngSwitchCase=\"'pending'\" class=\"absolute top-5 -left-6 w-3 h-3 bg-white border-2 border-neutral-base rounded-full\" role=\"img\"><p class=\"sr-only\">Estado: pendiente</p></div>\n <div *ngSwitchCase=\"'muted'\" class=\"absolute top-5 -left-6 w-3 h-3 bg-neutral-base border-2 border-neutral-base rounded-full\" role=\"img\"><p class=\"sr-only\">Estado: pasado</p></div>\n <div *ngSwitchCase=\"'currentmuted'\" class=\"absolute top-5 -left-6 w-3 h-3 bg-neutral-base ring-2 ring-neutral-base rounded-full\" role=\"img\"><p class=\"sr-only\">Estado: actual</p></div>\n <div *ngSwitchDefault class=\"absolute top-5 -left-6 w-3 h-3 bg-primary-base border-2 border-primary-base rounded-full\" role=\"img\"><p class=\"sr-only\">Estado: pasado</p></div>\n </ng-container>\n\n <div *ngIf=\"item.open\" [class]=\"['Accordion-panel relative', item.classes] | makeHtmlList\"\n [attr.id]=\"getItemId(item, i)\"\n [attr.role]=\"(item.role ? role : 'accordion')\"\n [attr.aria-selected]=\"currentItem === i ? 'true' : 'false'\"\n [attr.aria-describedby]=\"item.ariaDescribedBy\"\n [attr.aria-errormessage]=\"item.ariaErrorMessage\"\n [attr.aria-label]=\"item.ariaLabel\"\n [attr.aria-labelledby]=\"item.ariaLabelledBy\"\n [attr.aria-hidden]=\"item.ariaHidden\"\n [attr.aria-controls]=\"'accordion-' + getItemId(item, i)\"\n [attr.aria-current]=\"item.ariaCurrent\"\n [attr.aria-live]=\"item.ariaLive\"\n [attr.aria-expanded]=\"item.ariaExpanded\"\n [attr.aria-haspopup]=\"item.ariaHasPopup\">\n <ng-container *ngIf=\"!isLast\">\n <ng-container [ngSwitch]=\"item.status\">\n <div *ngSwitchCase=\"'current'\" class=\"absolute top-4 bottom-0 -left-6 -my-sm border-2 border-neutral-light\"></div>\n <div *ngSwitchCase=\"'pending'\" class=\"absolute top-4 bottom-0 -left-6 -my-sm border-2 border-neutral-light\"></div>\n <div *ngSwitchCase=\"'muted'\" class=\"absolute top-4 bottom-0 -left-6 -my-sm border-2 border-neutral-base\"></div>\n <div *ngSwitchCase=\"'currentmuted'\" class=\"absolute top-4 bottom-0 -left-6 -my-sm border-2 border-neutral-light\"></div>\n <div *ngSwitchDefault class=\"absolute top-4 bottom-0 -left-6 -my-sm border-2 border-primary-base\"></div>\n </ng-container>\n </ng-container>\n <ng-container *desyCustomInnerContent=\"{ component: getItemContent(item), html: item.html, text: item.text }\"></ng-container>\n </div>\n </div>\n </div>\n</div>\n", dependencies: [{ kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i1.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { kind: "directive", type: i1.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { kind: "directive", type: i1.NgSwitchDefault, selector: "[ngSwitchDefault]" }, { kind: "directive", type: i2.CustomInnerContentDirective, selector: "[desyCustomInnerContent]", inputs: ["desyCustomInnerContent"] }, { kind: "pipe", type: i3.MakeHtmlListPipe, name: "makeHtmlList" }] }); }
|
|
11
11
|
}
|
|
12
12
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: AccordionHistoryComponent, decorators: [{
|
|
13
13
|
type: Component,
|
|
14
|
-
args: [{ selector: 'desy-accordion-history', template: "<div [class]=\"classes\"\n [attr.role]=\"role\"\n [attr.aria-describedby]=\"ariaDescribedBy\"\n [attr.aria-errormessage]=\"ariaErrorMessage\"\n [attr.aria-label]=\"ariaLabel\"\n [attr.aria-labelledby]=\"ariaLabelledBy\"\n [attr.aria-hidden]=\"ariaHidden\"\n [attr.aria-disabled]=\"ariaDisabled\"\n [attr.aria-controls]=\"ariaControls\"\n [attr.aria-current]=\"ariaCurrent\"\n [attr.aria-live]=\"ariaLive\"\n [attr.aria-expanded]=\"ariaExpanded\"\n [attr.aria-haspopup]=\"ariaHasPopup\"\n [attr.tabindex]=\"tabindex\">\n <div class=\"flex justify-between\">\n <ng-container [ngSwitch]=\"headingLevel\">\n <h1 *ngSwitchCase=\"1\" [class]=\"headingComponent?.classes || 'c-h2 mb-base'\"><ng-container *desyCustomInnerContent=\"{ component: headingComponent }\"></ng-container></h1>\n <h2 *ngSwitchCase=\"2\" [class]=\"headingComponent?.classes || 'c-h2 mb-base'\"><ng-container *desyCustomInnerContent=\"{ component: headingComponent }\"></ng-container></h2>\n <h3 *ngSwitchCase=\"3\" [class]=\"headingComponent?.classes || 'c-h2 mb-base'\"><ng-container *desyCustomInnerContent=\"{ component: headingComponent }\"></ng-container></h3>\n <h4 *ngSwitchCase=\"4\" [class]=\"headingComponent?.classes || 'c-h2 mb-base'\"><ng-container *desyCustomInnerContent=\"{ component: headingComponent }\"></ng-container></h4>\n <h5 *ngSwitchCase=\"5\" [class]=\"headingComponent?.classes || 'c-h2 mb-base'\"><ng-container *desyCustomInnerContent=\"{ component: headingComponent }\"></ng-container></h5>\n <h2 *ngSwitchDefault [class]=\"headingComponent?.classes || 'c-h2 mb-base'\"><ng-container *desyCustomInnerContent=\"{ component: headingComponent }\"></ng-container></h2>\n </ng-container>\n\n <button *ngIf=\"showControl\" (click)=\"changeAll()\"\n class=\"ml-auto py-base text-sm text-neutral-dark underline focus:text-black focus:bg-warning-base focus:outline-none focus:shadow-outline-focus text-right\">\n {{showAll ? 'Mostrar' : 'Ocultar'}} todo\n </button>\n </div>\n <div class=\"Accordion pl-lg\">\n <ng-template #itemHeaderContent let-item=\"item\" let-id=\"id\" let-index=\"index\">\n <button #itemSelector [id]=\"id + '-title'\" (click)=\"toggleItem(item)\"\n [class]=\"['Accordion-trigger group relative w-full py-sm font-semibold text-left cursor-pointer focus:bg-warning-base focus:outline-none focus:shadow-outline-focus focus:text-black', item.disabled ? 'cursor-not-allowed' : ''] | makeHtmlList\"\n [attr.aria-controls]=\"id\" [attr.aria-expanded]=\"item.open\" [disabled]=\"item.disabled\">\n <ng-container *desyCustomInnerContent=\"{ component: getItemHeader(item), html: item.headerHtml, text: item.headerText }\"></ng-container>\n <span *ngIf=\"!item.disabled\" class=\"absolute inset-y-0 right-0 py-sm font-normal text-sm text-neutral-dark underline group-focus:text-black pointer-events-none\">\n <span *ngIf=\"!item.open\" [class]=\"['Accordion-show', item.showButton?.classes] | makeHtmlList\">\n <ng-container *desyCustomInnerContent=\"{ component: item.showButton, text: 'Mostrar' }\"></ng-container>\n </span>\n <span *ngIf=\"allowToggle && item.open\" [class]=\"['Accordion-show', item.hideButton?.classes] | makeHtmlList\">\n <ng-container *desyCustomInnerContent=\"{ component: item.hideButton, text: 'Ocultar' }\"></ng-container>\n </span>\n </span>\n </button>\n </ng-template>\n\n <div *ngFor=\"let item of getItems(); index as i; first as isFirst; last as isLast\" \n class=\"relative -my-px px-xs py-sm border-t border-b border-neutral-base\"\n (keydown.home)=\"focusFirstItem($event)\"\n (keydown.end)=\"focusLastItem($event)\"\n (keydown.arrowup)=\"focusPreviousItem($event, i)\"\n (keydown.arrowdown)=\"focusNextItem($event, i)\"\n (click)=\"selectItem(i)\">\n <ng-container [ngSwitch]=\"headingLevel\">\n <h2 *ngSwitchCase=\"1\"><ng-container *ngTemplateOutlet=\"itemHeaderContent; context: {item: item, id: getItemId(item, i), index: i}\"></ng-container></h2>\n <h3 *ngSwitchCase=\"2\"><ng-container *ngTemplateOutlet=\"itemHeaderContent; context: {item: item, id: getItemId(item, i), index: i}\"></ng-container></h3>\n <h4 *ngSwitchCase=\"3\"><ng-container *ngTemplateOutlet=\"itemHeaderContent; context: {item: item, id: getItemId(item, i), index: i}\"></ng-container></h4>\n <h5 *ngSwitchCase=\"4\"><ng-container *ngTemplateOutlet=\"itemHeaderContent; context: {item: item, id: getItemId(item, i), index: i}\"></ng-container></h5>\n <h6 *ngSwitchCase=\"5\"><ng-container *ngTemplateOutlet=\"itemHeaderContent; context: {item: item, id: getItemId(item, i), index: i}\"></ng-container></h6>\n <h3 *ngSwitchDefault><ng-container *ngTemplateOutlet=\"itemHeaderContent; context: {item: item, id: getItemId(item, i), index: i}\"></ng-container></h3>\n </ng-container>\n <p class=\"sr-only\" aria-hidden=\"true\">Haz click en el bot\u00F3n anterior para mostrar u ocultar</p>\n <ng-container *ngIf=\"!isFirst\">\n <ng-container [ngSwitch]=\"item.status\">\n <div *ngSwitchCase=\"'current'\" class=\"absolute -top-px -left-5 h-6 border-2 border-primary-base\"></div>\n <div *ngSwitchCase=\"'pending'\" class=\"absolute -top-px -left-5 h-6 border-2 border-neutral-light\"></div>\n <div *ngSwitchCase=\"'muted'\" class=\"absolute -top-px -left-5 h-6 border-2 border-neutral-base\"></div>\n <div *ngSwitchCase=\"'currentmuted'\" class=\"absolute -top-px -left-5 h-6 border-2 border-neutral-base\"></div>\n <div *ngSwitchDefault class=\"absolute -top-px -left-5 h-6 border-2 border-primary-base\"></div>\n </ng-container>\n </ng-container>\n <ng-container *ngIf=\"!isLast\">\n <ng-container [ngSwitch]=\"item.status\">\n <div *ngSwitchCase=\"'current'\" class=\"absolute top-6 bottom-0 -left-5 border-2 border-neutral-light\"></div>\n <div *ngSwitchCase=\"'pending'\" class=\"absolute top-6 bottom-0 -left-5 border-2 border-neutral-light\"></div>\n <div *ngSwitchCase=\"'muted'\" class=\"absolute top-6 bottom-0 -left-5 border-2 border-neutral-base\"></div>\n <div *ngSwitchCase=\"'currentmuted'\" class=\"absolute top-6 bottom-0 -left-5 border-2 border-neutral-light\"></div>\n <div *ngSwitchDefault class=\"absolute top-6 bottom-0 -left-5 border-2 border-primary-base\"></div>\n </ng-container>\n </ng-container>\n <ng-container [ngSwitch]=\"item.status\">\n <div *ngSwitchCase=\"'current'\" class=\"absolute top-5 -left-6 w-3 h-3 bg-white ring-2 ring-primary-base rounded-full\" role=\"img\"><p class=\"sr-only\">Estado: actual</p></div>\n <div *ngSwitchCase=\"'pending'\" class=\"absolute top-5 -left-6 w-3 h-3 bg-white border-2 border-neutral-base rounded-full\" role=\"img\"><p class=\"sr-only\">Estado: pendiente</p></div>\n <div *ngSwitchCase=\"'muted'\" class=\"absolute top-5 -left-6 w-3 h-3 bg-neutral-base border-2 border-neutral-base rounded-full\" role=\"img\"><p class=\"sr-only\">Estado: pasado</p></div>\n <div *ngSwitchCase=\"'currentmuted'\" class=\"absolute top-5 -left-6 w-3 h-3 bg-neutral-base ring-2 ring-neutral-base rounded-full\" role=\"img\"><p class=\"sr-only\">Estado: actual</p></div>\n <div *ngSwitchDefault class=\"absolute top-5 -left-6 w-3 h-3 bg-primary-base border-2 border-primary-base rounded-full\" role=\"img\"><p class=\"sr-only\">Estado: pasado</p></div>\n </ng-container>\n\n <div *ngIf=\"item.open\" [class]=\"['Accordion-panel relative', item.classes] | makeHtmlList\"\n [attr.id]=\"getItemId(item, i)\"\n [attr.role]=\"(item.role ? role : 'accordion')\"\n [attr.aria-selected]=\"currentItem === i ? 'true' : 'false'\"\n [attr.aria-describedby]=\"item.ariaDescribedBy\"\n [attr.aria-errormessage]=\"item.ariaErrorMessage\"\n [attr.aria-label]=\"item.ariaLabel\"\n [attr.aria-labelledby]=\"item.ariaLabelledBy\"\n [attr.aria-hidden]=\"item.ariaHidden\"\n [attr.aria-controls]=\"'accordion-' + getItemId(item, i)\"\n [attr.aria-current]=\"item.ariaCurrent\"\n [attr.aria-live]=\"item.ariaLive\"\n [attr.aria-expanded]=\"item.ariaExpanded\"\n [attr.aria-haspopup]=\"item.ariaHasPopup\">\n <ng-container *ngIf=\"!isLast\">\n <ng-container [ngSwitch]=\"item.status\">\n <div *ngSwitchCase=\"'current'\" class=\"absolute top-4 bottom-0 -left-6 -my-sm border-2 border-neutral-light\"></div>\n <div *ngSwitchCase=\"'pending'\" class=\"absolute top-4 bottom-0 -left-6 -my-sm border-2 border-neutral-light\"></div>\n <div *ngSwitchCase=\"'muted'\" class=\"absolute top-4 bottom-0 -left-6 -my-sm border-2 border-neutral-base\"></div>\n <div *ngSwitchCase=\"'currentmuted'\" class=\"absolute top-4 bottom-0 -left-6 -my-sm border-2 border-neutral-light\"></div>\n <div *ngSwitchDefault class=\"absolute top-4 bottom-0 -left-6 -my-sm border-2 border-primary-base\"></div>\n </ng-container>\n </ng-container>\n <ng-container *desyCustomInnerContent=\"{ component: getItemContent(item), html: item.html, text: item.text }\"></ng-container>\n </div>\n </div>\n </div>\n</div>\n" }]
|
|
14
|
+
args: [{ selector: 'desy-accordion-history', template: "<div [class]=\"classes\"\n [attr.role]=\"role\"\n [attr.aria-describedby]=\"ariaDescribedBy\"\n [attr.aria-errormessage]=\"ariaErrorMessage\"\n [attr.aria-label]=\"ariaLabel\"\n [attr.aria-labelledby]=\"ariaLabelledBy\"\n [attr.aria-hidden]=\"ariaHidden\"\n [attr.aria-disabled]=\"ariaDisabled\"\n [attr.aria-controls]=\"ariaControls\"\n [attr.aria-current]=\"ariaCurrent\"\n [attr.aria-live]=\"ariaLive\"\n [attr.aria-expanded]=\"ariaExpanded\"\n [attr.aria-haspopup]=\"ariaHasPopup\"\n [attr.tabindex]=\"tabindex\">\n <div class=\"flex justify-between\">\n <ng-container [ngSwitch]=\"headingLevel\">\n <h1 *ngSwitchCase=\"1\" [class]=\"headingComponent?.classes || 'c-h2 mb-base'\"><ng-container *desyCustomInnerContent=\"{ component: headingComponent }\"></ng-container></h1>\n <h2 *ngSwitchCase=\"2\" [class]=\"headingComponent?.classes || 'c-h2 mb-base'\"><ng-container *desyCustomInnerContent=\"{ component: headingComponent }\"></ng-container></h2>\n <h3 *ngSwitchCase=\"3\" [class]=\"headingComponent?.classes || 'c-h2 mb-base'\"><ng-container *desyCustomInnerContent=\"{ component: headingComponent }\"></ng-container></h3>\n <h4 *ngSwitchCase=\"4\" [class]=\"headingComponent?.classes || 'c-h2 mb-base'\"><ng-container *desyCustomInnerContent=\"{ component: headingComponent }\"></ng-container></h4>\n <h5 *ngSwitchCase=\"5\" [class]=\"headingComponent?.classes || 'c-h2 mb-base'\"><ng-container *desyCustomInnerContent=\"{ component: headingComponent }\"></ng-container></h5>\n <h2 *ngSwitchDefault [class]=\"headingComponent?.classes || 'c-h2 mb-base'\"><ng-container *desyCustomInnerContent=\"{ component: headingComponent }\"></ng-container></h2>\n </ng-container>\n\n <button *ngIf=\"showControl\" (click)=\"changeAll()\"\n type=\"button\" class=\"ml-auto py-base text-sm text-neutral-dark underline focus:text-black focus:bg-warning-base focus:outline-none focus:shadow-outline-focus text-right\">\n {{showAll ? 'Mostrar' : 'Ocultar'}} todo\n </button>\n </div>\n <div class=\"Accordion pl-lg\">\n <ng-template #itemHeaderContent let-item=\"item\" let-id=\"id\" let-index=\"index\">\n <button #itemSelector [id]=\"id + '-title'\" (click)=\"toggleItem(item)\" type=\"button\"\n type=\"button\" [class]=\"['Accordion-trigger group relative w-full py-sm font-semibold text-left cursor-pointer focus:bg-warning-base focus:outline-none focus:shadow-outline-focus focus:text-black', item.disabled ? 'cursor-not-allowed' : ''] | makeHtmlList\"\n [attr.aria-controls]=\"id\" [attr.aria-expanded]=\"item.open\" [disabled]=\"item.disabled\">\n <ng-container *desyCustomInnerContent=\"{ component: getItemHeader(item), html: item.headerHtml, text: item.headerText }\"></ng-container>\n <span *ngIf=\"!item.disabled\" class=\"absolute inset-y-0 right-0 py-sm font-normal text-sm text-neutral-dark underline group-focus:text-black pointer-events-none\">\n <span *ngIf=\"!item.open\" [class]=\"['Accordion-show', item.showButton?.classes] | makeHtmlList\">\n <ng-container *desyCustomInnerContent=\"{ component: item.showButton, text: 'Mostrar' }\"></ng-container>\n </span>\n <span *ngIf=\"allowToggle && item.open\" [class]=\"['Accordion-show', item.hideButton?.classes] | makeHtmlList\">\n <ng-container *desyCustomInnerContent=\"{ component: item.hideButton, text: 'Ocultar' }\"></ng-container>\n </span>\n </span>\n </button>\n </ng-template>\n\n <div *ngFor=\"let item of getItems(); index as i; first as isFirst; last as isLast\" \n class=\"relative -my-px px-xs py-sm border-t border-b border-neutral-base\"\n (keydown.home)=\"focusFirstItem($event)\"\n (keydown.end)=\"focusLastItem($event)\"\n (keydown.arrowup)=\"focusPreviousItem($event, i)\"\n (keydown.arrowdown)=\"focusNextItem($event, i)\"\n (click)=\"selectItem(i)\">\n <ng-container [ngSwitch]=\"headingLevel\">\n <h2 *ngSwitchCase=\"1\"><ng-container *ngTemplateOutlet=\"itemHeaderContent; context: {item: item, id: getItemId(item, i), index: i}\"></ng-container></h2>\n <h3 *ngSwitchCase=\"2\"><ng-container *ngTemplateOutlet=\"itemHeaderContent; context: {item: item, id: getItemId(item, i), index: i}\"></ng-container></h3>\n <h4 *ngSwitchCase=\"3\"><ng-container *ngTemplateOutlet=\"itemHeaderContent; context: {item: item, id: getItemId(item, i), index: i}\"></ng-container></h4>\n <h5 *ngSwitchCase=\"4\"><ng-container *ngTemplateOutlet=\"itemHeaderContent; context: {item: item, id: getItemId(item, i), index: i}\"></ng-container></h5>\n <h6 *ngSwitchCase=\"5\"><ng-container *ngTemplateOutlet=\"itemHeaderContent; context: {item: item, id: getItemId(item, i), index: i}\"></ng-container></h6>\n <h3 *ngSwitchDefault><ng-container *ngTemplateOutlet=\"itemHeaderContent; context: {item: item, id: getItemId(item, i), index: i}\"></ng-container></h3>\n </ng-container>\n <p class=\"sr-only\" aria-hidden=\"true\">Haz click en el bot\u00F3n anterior para mostrar u ocultar</p>\n <ng-container *ngIf=\"!isFirst\">\n <ng-container [ngSwitch]=\"item.status\">\n <div *ngSwitchCase=\"'current'\" class=\"absolute -top-px -left-5 h-6 border-2 border-primary-base\"></div>\n <div *ngSwitchCase=\"'pending'\" class=\"absolute -top-px -left-5 h-6 border-2 border-neutral-light\"></div>\n <div *ngSwitchCase=\"'muted'\" class=\"absolute -top-px -left-5 h-6 border-2 border-neutral-base\"></div>\n <div *ngSwitchCase=\"'currentmuted'\" class=\"absolute -top-px -left-5 h-6 border-2 border-neutral-base\"></div>\n <div *ngSwitchDefault class=\"absolute -top-px -left-5 h-6 border-2 border-primary-base\"></div>\n </ng-container>\n </ng-container>\n <ng-container *ngIf=\"!isLast\">\n <ng-container [ngSwitch]=\"item.status\">\n <div *ngSwitchCase=\"'current'\" class=\"absolute top-6 bottom-0 -left-5 border-2 border-neutral-light\"></div>\n <div *ngSwitchCase=\"'pending'\" class=\"absolute top-6 bottom-0 -left-5 border-2 border-neutral-light\"></div>\n <div *ngSwitchCase=\"'muted'\" class=\"absolute top-6 bottom-0 -left-5 border-2 border-neutral-base\"></div>\n <div *ngSwitchCase=\"'currentmuted'\" class=\"absolute top-6 bottom-0 -left-5 border-2 border-neutral-light\"></div>\n <div *ngSwitchDefault class=\"absolute top-6 bottom-0 -left-5 border-2 border-primary-base\"></div>\n </ng-container>\n </ng-container>\n <ng-container [ngSwitch]=\"item.status\">\n <div *ngSwitchCase=\"'current'\" class=\"absolute top-5 -left-6 w-3 h-3 bg-white ring-2 ring-primary-base rounded-full\" role=\"img\"><p class=\"sr-only\">Estado: actual</p></div>\n <div *ngSwitchCase=\"'pending'\" class=\"absolute top-5 -left-6 w-3 h-3 bg-white border-2 border-neutral-base rounded-full\" role=\"img\"><p class=\"sr-only\">Estado: pendiente</p></div>\n <div *ngSwitchCase=\"'muted'\" class=\"absolute top-5 -left-6 w-3 h-3 bg-neutral-base border-2 border-neutral-base rounded-full\" role=\"img\"><p class=\"sr-only\">Estado: pasado</p></div>\n <div *ngSwitchCase=\"'currentmuted'\" class=\"absolute top-5 -left-6 w-3 h-3 bg-neutral-base ring-2 ring-neutral-base rounded-full\" role=\"img\"><p class=\"sr-only\">Estado: actual</p></div>\n <div *ngSwitchDefault class=\"absolute top-5 -left-6 w-3 h-3 bg-primary-base border-2 border-primary-base rounded-full\" role=\"img\"><p class=\"sr-only\">Estado: pasado</p></div>\n </ng-container>\n\n <div *ngIf=\"item.open\" [class]=\"['Accordion-panel relative', item.classes] | makeHtmlList\"\n [attr.id]=\"getItemId(item, i)\"\n [attr.role]=\"(item.role ? role : 'accordion')\"\n [attr.aria-selected]=\"currentItem === i ? 'true' : 'false'\"\n [attr.aria-describedby]=\"item.ariaDescribedBy\"\n [attr.aria-errormessage]=\"item.ariaErrorMessage\"\n [attr.aria-label]=\"item.ariaLabel\"\n [attr.aria-labelledby]=\"item.ariaLabelledBy\"\n [attr.aria-hidden]=\"item.ariaHidden\"\n [attr.aria-controls]=\"'accordion-' + getItemId(item, i)\"\n [attr.aria-current]=\"item.ariaCurrent\"\n [attr.aria-live]=\"item.ariaLive\"\n [attr.aria-expanded]=\"item.ariaExpanded\"\n [attr.aria-haspopup]=\"item.ariaHasPopup\">\n <ng-container *ngIf=\"!isLast\">\n <ng-container [ngSwitch]=\"item.status\">\n <div *ngSwitchCase=\"'current'\" class=\"absolute top-4 bottom-0 -left-6 -my-sm border-2 border-neutral-light\"></div>\n <div *ngSwitchCase=\"'pending'\" class=\"absolute top-4 bottom-0 -left-6 -my-sm border-2 border-neutral-light\"></div>\n <div *ngSwitchCase=\"'muted'\" class=\"absolute top-4 bottom-0 -left-6 -my-sm border-2 border-neutral-base\"></div>\n <div *ngSwitchCase=\"'currentmuted'\" class=\"absolute top-4 bottom-0 -left-6 -my-sm border-2 border-neutral-light\"></div>\n <div *ngSwitchDefault class=\"absolute top-4 bottom-0 -left-6 -my-sm border-2 border-primary-base\"></div>\n </ng-container>\n </ng-container>\n <ng-container *desyCustomInnerContent=\"{ component: getItemContent(item), html: item.html, text: item.text }\"></ng-container>\n </div>\n </div>\n </div>\n</div>\n" }]
|
|
15
15
|
}], propDecorators: { itemComponentList: [{
|
|
16
16
|
type: ContentChildren,
|
|
17
17
|
args: [AccordionHistoryItemComponent]
|
|
18
18
|
}] } });
|
|
19
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWNjb3JkaW9uLWhpc3RvcnkuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZGVzeS1hbmd1bGFyL3NyYy9saWIvZGVzeS12aWV3cy9jb21wb25lbnRzL2FjY29yZGlvbi1oaXN0b3J5L2FjY29yZGlvbi1oaXN0b3J5LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Rlc3ktYW5ndWxhci9zcmMvbGliL2Rlc3ktdmlld3MvY29tcG9uZW50cy9hY2NvcmRpb24taGlzdG9yeS9hY2NvcmRpb24taGlzdG9yeS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLGVBQWUsRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDdEUsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sa0NBQWtDLENBQUM7QUFDdEUsT0FBTyxFQUFFLDZCQUE2QixFQUFFLE1BQU0sMkRBQTJELENBQUM7Ozs7O0FBTTFHLE1BQU0sT0FBTyx5QkFBMEIsU0FBUSxrQkFBa0I7K0dBQXBELHlCQUF5QjttR0FBekIseUJBQXlCLGdHQUduQiw2QkFBNkIsb0RDWGhELHc5U0FvSEE7OzRGRDVHYSx5QkFBeUI7a0JBSnJDLFNBQVM7K0JBQ0Usd0JBQXdCOzhCQU1zQixpQkFBaUI7c0JBQXhFLGVBQWU7dUJBQUMsNkJBQTZCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBDb250ZW50Q2hpbGRyZW4sIFF1ZXJ5TGlzdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQWNjb3JkaW9uQ29tcG9uZW50IH0gZnJvbSAnLi4vYWNjb3JkaW9uL2FjY29yZGlvbi5jb21wb25lbnQnO1xuaW1wb3J0IHsgQWNjb3JkaW9uSGlzdG9yeUl0ZW1Db21wb25lbnQgfSBmcm9tICcuL2FjY29yZGlvbi1oaXN0b3J5LWl0ZW0vYWNjb3JkaW9uLWhpc3RvcnktaXRlbS5jb21wb25lbnQnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdkZXN5LWFjY29yZGlvbi1oaXN0b3J5JyxcbiAgdGVtcGxhdGVVcmw6ICcuL2FjY29yZGlvbi1oaXN0b3J5LmNvbXBvbmVudC5odG1sJ1xufSlcbmV4cG9ydCBjbGFzcyBBY2NvcmRpb25IaXN0b3J5Q29tcG9uZW50IGV4dGVuZHMgQWNjb3JkaW9uQ29tcG9uZW50IHtcblxuICAvLyBTb2JyZWVzY3JpYmUgZWwgdGlwbyBkZWwgbGlzdGFkbyBkZSBpdGVtc1xuICBAQ29udGVudENoaWxkcmVuKEFjY29yZGlvbkhpc3RvcnlJdGVtQ29tcG9uZW50KSBkZWNsYXJlIGl0ZW1Db21wb25lbnRMaXN0OiBRdWVyeUxpc3Q8QWNjb3JkaW9uSGlzdG9yeUl0ZW1Db21wb25lbnQ+O1xufVxuIiwiPGRpdiBbY2xhc3NdPVwiY2xhc3Nlc1wiXG4gICAgIFthdHRyLnJvbGVdPVwicm9sZVwiXG4gICAgIFthdHRyLmFyaWEtZGVzY3JpYmVkYnldPVwiYXJpYURlc2NyaWJlZEJ5XCJcbiAgICAgW2F0dHIuYXJpYS1lcnJvcm1lc3NhZ2VdPVwiYXJpYUVycm9yTWVzc2FnZVwiXG4gICAgIFthdHRyLmFyaWEtbGFiZWxdPVwiYXJpYUxhYmVsXCJcbiAgICAgW2F0dHIuYXJpYS1sYWJlbGxlZGJ5XT1cImFyaWFMYWJlbGxlZEJ5XCJcbiAgICAgW2F0dHIuYXJpYS1oaWRkZW5dPVwiYXJpYUhpZGRlblwiXG4gICAgIFthdHRyLmFyaWEtZGlzYWJsZWRdPVwiYXJpYURpc2FibGVkXCJcbiAgICAgW2F0dHIuYXJpYS1jb250cm9sc109XCJhcmlhQ29udHJvbHNcIlxuICAgICBbYXR0ci5hcmlhLWN1cnJlbnRdPVwiYXJpYUN1cnJlbnRcIlxuICAgICBbYXR0ci5hcmlhLWxpdmVdPVwiYXJpYUxpdmVcIlxuICAgICBbYXR0ci5hcmlhLWV4cGFuZGVkXT1cImFyaWFFeHBhbmRlZFwiXG4gICAgIFthdHRyLmFyaWEtaGFzcG9wdXBdPVwiYXJpYUhhc1BvcHVwXCJcbiAgICAgW2F0dHIudGFiaW5kZXhdPVwidGFiaW5kZXhcIj5cbiAgPGRpdiBjbGFzcz1cImZsZXgganVzdGlmeS1iZXR3ZWVuXCI+XG4gICAgPG5nLWNvbnRhaW5lciBbbmdTd2l0Y2hdPVwiaGVhZGluZ0xldmVsXCI+XG4gICAgICA8aDEgKm5nU3dpdGNoQ2FzZT1cIjFcIiBbY2xhc3NdPVwiaGVhZGluZ0NvbXBvbmVudD8uY2xhc3NlcyB8fCAnYy1oMiBtYi1iYXNlJ1wiPjxuZy1jb250YWluZXIgKmRlc3lDdXN0b21Jbm5lckNvbnRlbnQ9XCJ7IGNvbXBvbmVudDogaGVhZGluZ0NvbXBvbmVudCB9XCI+PC9uZy1jb250YWluZXI+PC9oMT5cbiAgICAgIDxoMiAqbmdTd2l0Y2hDYXNlPVwiMlwiIFtjbGFzc109XCJoZWFkaW5nQ29tcG9uZW50Py5jbGFzc2VzIHx8ICdjLWgyIG1iLWJhc2UnXCI+PG5nLWNvbnRhaW5lciAqZGVzeUN1c3RvbUlubmVyQ29udGVudD1cInsgY29tcG9uZW50OiBoZWFkaW5nQ29tcG9uZW50IH1cIj48L25nLWNvbnRhaW5lcj48L2gyPlxuICAgICAgPGgzICpuZ1N3aXRjaENhc2U9XCIzXCIgW2NsYXNzXT1cImhlYWRpbmdDb21wb25lbnQ/LmNsYXNzZXMgfHwgJ2MtaDIgbWItYmFzZSdcIj48bmctY29udGFpbmVyICpkZXN5Q3VzdG9tSW5uZXJDb250ZW50PVwieyBjb21wb25lbnQ6IGhlYWRpbmdDb21wb25lbnQgfVwiPjwvbmctY29udGFpbmVyPjwvaDM+XG4gICAgICA8aDQgKm5nU3dpdGNoQ2FzZT1cIjRcIiBbY2xhc3NdPVwiaGVhZGluZ0NvbXBvbmVudD8uY2xhc3NlcyB8fCAnYy1oMiBtYi1iYXNlJ1wiPjxuZy1jb250YWluZXIgKmRlc3lDdXN0b21Jbm5lckNvbnRlbnQ9XCJ7IGNvbXBvbmVudDogaGVhZGluZ0NvbXBvbmVudCB9XCI+PC9uZy1jb250YWluZXI+PC9oND5cbiAgICAgIDxoNSAqbmdTd2l0Y2hDYXNlPVwiNVwiIFtjbGFzc109XCJoZWFkaW5nQ29tcG9uZW50Py5jbGFzc2VzIHx8ICdjLWgyIG1iLWJhc2UnXCI+PG5nLWNvbnRhaW5lciAqZGVzeUN1c3RvbUlubmVyQ29udGVudD1cInsgY29tcG9uZW50OiBoZWFkaW5nQ29tcG9uZW50IH1cIj48L25nLWNvbnRhaW5lcj48L2g1PlxuICAgICAgPGgyICpuZ1N3aXRjaERlZmF1bHQgIFtjbGFzc109XCJoZWFkaW5nQ29tcG9uZW50Py5jbGFzc2VzIHx8ICdjLWgyIG1iLWJhc2UnXCI+PG5nLWNvbnRhaW5lciAqZGVzeUN1c3RvbUlubmVyQ29udGVudD1cInsgY29tcG9uZW50OiBoZWFkaW5nQ29tcG9uZW50IH1cIj48L25nLWNvbnRhaW5lcj48L2gyPlxuICAgIDwvbmctY29udGFpbmVyPlxuXG4gICAgPGJ1dHRvbiAqbmdJZj1cInNob3dDb250cm9sXCIgKGNsaWNrKT1cImNoYW5nZUFsbCgpXCJcbiAgICAgICAgICAgIGNsYXNzPVwibWwtYXV0byBweS1iYXNlIHRleHQtc20gdGV4dC1uZXV0cmFsLWRhcmsgdW5kZXJsaW5lIGZvY3VzOnRleHQtYmxhY2sgZm9jdXM6Ymctd2FybmluZy1iYXNlIGZvY3VzOm91dGxpbmUtbm9uZSBmb2N1czpzaGFkb3ctb3V0bGluZS1mb2N1cyB0ZXh0LXJpZ2h0XCI+XG4gICAgICB7e3Nob3dBbGwgPyAnTW9zdHJhcicgOiAnT2N1bHRhcid9fSB0b2RvXG4gICAgPC9idXR0b24+XG4gIDwvZGl2PlxuICA8ZGl2IGNsYXNzPVwiQWNjb3JkaW9uIHBsLWxnXCI+XG4gICAgICA8bmctdGVtcGxhdGUgI2l0ZW1IZWFkZXJDb250ZW50IGxldC1pdGVtPVwiaXRlbVwiIGxldC1pZD1cImlkXCIgbGV0LWluZGV4PVwiaW5kZXhcIj5cbiAgICAgICAgPGJ1dHRvbiAjaXRlbVNlbGVjdG9yIFtpZF09XCJpZCArICctdGl0bGUnXCIgKGNsaWNrKT1cInRvZ2dsZUl0ZW0oaXRlbSlcIlxuICAgICAgICAgICAgICAgIFtjbGFzc109XCJbJ0FjY29yZGlvbi10cmlnZ2VyIGdyb3VwIHJlbGF0aXZlIHctZnVsbCBweS1zbSBmb250LXNlbWlib2xkIHRleHQtbGVmdCBjdXJzb3ItcG9pbnRlciBmb2N1czpiZy13YXJuaW5nLWJhc2UgZm9jdXM6b3V0bGluZS1ub25lIGZvY3VzOnNoYWRvdy1vdXRsaW5lLWZvY3VzIGZvY3VzOnRleHQtYmxhY2snLCBpdGVtLmRpc2FibGVkID8gJ2N1cnNvci1ub3QtYWxsb3dlZCcgOiAnJ10gfCBtYWtlSHRtbExpc3RcIlxuICAgICAgICAgICAgICAgIFthdHRyLmFyaWEtY29udHJvbHNdPVwiaWRcIiBbYXR0ci5hcmlhLWV4cGFuZGVkXT1cIml0ZW0ub3BlblwiIFtkaXNhYmxlZF09XCJpdGVtLmRpc2FibGVkXCI+XG4gICAgICAgICAgICA8bmctY29udGFpbmVyICpkZXN5Q3VzdG9tSW5uZXJDb250ZW50PVwieyBjb21wb25lbnQ6IGdldEl0ZW1IZWFkZXIoaXRlbSksIGh0bWw6IGl0ZW0uaGVhZGVySHRtbCwgdGV4dDogaXRlbS5oZWFkZXJUZXh0IH1cIj48L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgIDxzcGFuICpuZ0lmPVwiIWl0ZW0uZGlzYWJsZWRcIiBjbGFzcz1cImFic29sdXRlIGluc2V0LXktMCByaWdodC0wIHB5LXNtIGZvbnQtbm9ybWFsIHRleHQtc20gdGV4dC1uZXV0cmFsLWRhcmsgdW5kZXJsaW5lIGdyb3VwLWZvY3VzOnRleHQtYmxhY2sgcG9pbnRlci1ldmVudHMtbm9uZVwiPlxuICAgICAgICAgICAgICA8c3BhbiAqbmdJZj1cIiFpdGVtLm9wZW5cIiBbY2xhc3NdPVwiWydBY2NvcmRpb24tc2hvdycsIGl0ZW0uc2hvd0J1dHRvbj8uY2xhc3Nlc10gfCBtYWtlSHRtbExpc3RcIj5cbiAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpkZXN5Q3VzdG9tSW5uZXJDb250ZW50PVwieyBjb21wb25lbnQ6IGl0ZW0uc2hvd0J1dHRvbiwgdGV4dDogJ01vc3RyYXInIH1cIj48L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgICA8c3BhbiAqbmdJZj1cImFsbG93VG9nZ2xlICYmIGl0ZW0ub3BlblwiIFtjbGFzc109XCJbJ0FjY29yZGlvbi1zaG93JywgaXRlbS5oaWRlQnV0dG9uPy5jbGFzc2VzXSB8IG1ha2VIdG1sTGlzdFwiPlxuICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKmRlc3lDdXN0b21Jbm5lckNvbnRlbnQ9XCJ7IGNvbXBvbmVudDogaXRlbS5oaWRlQnV0dG9uLCB0ZXh0OiAnT2N1bHRhcicgfVwiPjwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgIDwvYnV0dG9uPlxuICAgICAgPC9uZy10ZW1wbGF0ZT5cblxuICAgICAgPGRpdiAqbmdGb3I9XCJsZXQgaXRlbSBvZiBnZXRJdGVtcygpOyBpbmRleCBhcyBpOyBmaXJzdCBhcyBpc0ZpcnN0OyBsYXN0IGFzIGlzTGFzdFwiIFxuICAgICAgICAgICBjbGFzcz1cInJlbGF0aXZlIC1teS1weCBweC14cyBweS1zbSBib3JkZXItdCBib3JkZXItYiBib3JkZXItbmV1dHJhbC1iYXNlXCJcbiAgICAgICAgICAgKGtleWRvd24uaG9tZSk9XCJmb2N1c0ZpcnN0SXRlbSgkZXZlbnQpXCJcbiAgICAgICAgICAgKGtleWRvd24uZW5kKT1cImZvY3VzTGFzdEl0ZW0oJGV2ZW50KVwiXG4gICAgICAgICAgIChrZXlkb3duLmFycm93dXApPVwiZm9jdXNQcmV2aW91c0l0ZW0oJGV2ZW50LCBpKVwiXG4gICAgICAgICAgIChrZXlkb3duLmFycm93ZG93bik9XCJmb2N1c05leHRJdGVtKCRldmVudCwgaSlcIlxuICAgICAgICAgICAoY2xpY2spPVwic2VsZWN0SXRlbShpKVwiPlxuICAgICAgICA8bmctY29udGFpbmVyIFtuZ1N3aXRjaF09XCJoZWFkaW5nTGV2ZWxcIj5cbiAgICAgICAgICAgIDxoMiAqbmdTd2l0Y2hDYXNlPVwiMVwiPjxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJpdGVtSGVhZGVyQ29udGVudDsgY29udGV4dDoge2l0ZW06IGl0ZW0sIGlkOiBnZXRJdGVtSWQoaXRlbSwgaSksIGluZGV4OiBpfVwiPjwvbmctY29udGFpbmVyPjwvaDI+XG4gICAgICAgICAgICA8aDMgKm5nU3dpdGNoQ2FzZT1cIjJcIj48bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiaXRlbUhlYWRlckNvbnRlbnQ7IGNvbnRleHQ6IHtpdGVtOiBpdGVtLCBpZDogZ2V0SXRlbUlkKGl0ZW0sIGkpLCBpbmRleDogaX1cIj48L25nLWNvbnRhaW5lcj48L2gzPlxuICAgICAgICAgICAgPGg0ICpuZ1N3aXRjaENhc2U9XCIzXCI+PG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cIml0ZW1IZWFkZXJDb250ZW50OyBjb250ZXh0OiB7aXRlbTogaXRlbSwgaWQ6IGdldEl0ZW1JZChpdGVtLCBpKSwgaW5kZXg6IGl9XCI+PC9uZy1jb250YWluZXI+PC9oND5cbiAgICAgICAgICAgIDxoNSAqbmdTd2l0Y2hDYXNlPVwiNFwiPjxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJpdGVtSGVhZGVyQ29udGVudDsgY29udGV4dDoge2l0ZW06IGl0ZW0sIGlkOiBnZXRJdGVtSWQoaXRlbSwgaSksIGluZGV4OiBpfVwiPjwvbmctY29udGFpbmVyPjwvaDU+XG4gICAgICAgICAgICA8aDYgKm5nU3dpdGNoQ2FzZT1cIjVcIj48bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiaXRlbUhlYWRlckNvbnRlbnQ7IGNvbnRleHQ6IHtpdGVtOiBpdGVtLCBpZDogZ2V0SXRlbUlkKGl0ZW0sIGkpLCBpbmRleDogaX1cIj48L25nLWNvbnRhaW5lcj48L2g2PlxuICAgICAgICAgICAgPGgzICpuZ1N3aXRjaERlZmF1bHQ+PG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cIml0ZW1IZWFkZXJDb250ZW50OyBjb250ZXh0OiB7aXRlbTogaXRlbSwgaWQ6IGdldEl0ZW1JZChpdGVtLCBpKSwgaW5kZXg6IGl9XCI+PC9uZy1jb250YWluZXI+PC9oMz5cbiAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgIDxwIGNsYXNzPVwic3Itb25seVwiIGFyaWEtaGlkZGVuPVwidHJ1ZVwiPkhheiBjbGljayBlbiBlbCBib3TDs24gYW50ZXJpb3IgcGFyYSBtb3N0cmFyIHUgb2N1bHRhcjwvcD5cbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIiFpc0ZpcnN0XCI+XG4gICAgICAgICAgPG5nLWNvbnRhaW5lciBbbmdTd2l0Y2hdPVwiaXRlbS5zdGF0dXNcIj5cbiAgICAgICAgICAgIDxkaXYgKm5nU3dpdGNoQ2FzZT1cIidjdXJyZW50J1wiIGNsYXNzPVwiYWJzb2x1dGUgLXRvcC1weCAtbGVmdC01IGgtNiBib3JkZXItMiBib3JkZXItcHJpbWFyeS1iYXNlXCI+PC9kaXY+XG4gICAgICAgICAgICA8ZGl2ICpuZ1N3aXRjaENhc2U9XCIncGVuZGluZydcIiBjbGFzcz1cImFic29sdXRlIC10b3AtcHggLWxlZnQtNSBoLTYgYm9yZGVyLTIgYm9yZGVyLW5ldXRyYWwtbGlnaHRcIj48L2Rpdj5cbiAgICAgICAgICAgIDxkaXYgKm5nU3dpdGNoQ2FzZT1cIidtdXRlZCdcIiBjbGFzcz1cImFic29sdXRlIC10b3AtcHggLWxlZnQtNSBoLTYgYm9yZGVyLTIgYm9yZGVyLW5ldXRyYWwtYmFzZVwiPjwvZGl2PlxuICAgICAgICAgICAgPGRpdiAqbmdTd2l0Y2hDYXNlPVwiJ2N1cnJlbnRtdXRlZCdcIiBjbGFzcz1cImFic29sdXRlIC10b3AtcHggLWxlZnQtNSBoLTYgYm9yZGVyLTIgYm9yZGVyLW5ldXRyYWwtYmFzZVwiPjwvZGl2PlxuICAgICAgICAgICAgPGRpdiAqbmdTd2l0Y2hEZWZhdWx0IGNsYXNzPVwiYWJzb2x1dGUgLXRvcC1weCAtbGVmdC01IGgtNiBib3JkZXItMiBib3JkZXItcHJpbWFyeS1iYXNlXCI+PC9kaXY+XG4gICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiIWlzTGFzdFwiPlxuICAgICAgICAgIDxuZy1jb250YWluZXIgW25nU3dpdGNoXT1cIml0ZW0uc3RhdHVzXCI+XG4gICAgICAgICAgICA8ZGl2ICpuZ1N3aXRjaENhc2U9XCInY3VycmVudCdcIiBjbGFzcz1cImFic29sdXRlIHRvcC02IGJvdHRvbS0wIC1sZWZ0LTUgYm9yZGVyLTIgYm9yZGVyLW5ldXRyYWwtbGlnaHRcIj48L2Rpdj5cbiAgICAgICAgICAgIDxkaXYgKm5nU3dpdGNoQ2FzZT1cIidwZW5kaW5nJ1wiIGNsYXNzPVwiYWJzb2x1dGUgdG9wLTYgYm90dG9tLTAgLWxlZnQtNSBib3JkZXItMiBib3JkZXItbmV1dHJhbC1saWdodFwiPjwvZGl2PlxuICAgICAgICAgICAgPGRpdiAqbmdTd2l0Y2hDYXNlPVwiJ211dGVkJ1wiIGNsYXNzPVwiYWJzb2x1dGUgdG9wLTYgYm90dG9tLTAgLWxlZnQtNSBib3JkZXItMiBib3JkZXItbmV1dHJhbC1iYXNlXCI+PC9kaXY+XG4gICAgICAgICAgICA8ZGl2ICpuZ1N3aXRjaENhc2U9XCInY3VycmVudG11dGVkJ1wiIGNsYXNzPVwiYWJzb2x1dGUgdG9wLTYgYm90dG9tLTAgLWxlZnQtNSBib3JkZXItMiBib3JkZXItbmV1dHJhbC1saWdodFwiPjwvZGl2PlxuICAgICAgICAgICAgPGRpdiAqbmdTd2l0Y2hEZWZhdWx0IGNsYXNzPVwiYWJzb2x1dGUgdG9wLTYgYm90dG9tLTAgLWxlZnQtNSBib3JkZXItMiBib3JkZXItcHJpbWFyeS1iYXNlXCI+PC9kaXY+XG4gICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICA8bmctY29udGFpbmVyIFtuZ1N3aXRjaF09XCJpdGVtLnN0YXR1c1wiPlxuICAgICAgICAgIDxkaXYgKm5nU3dpdGNoQ2FzZT1cIidjdXJyZW50J1wiIGNsYXNzPVwiYWJzb2x1dGUgdG9wLTUgLWxlZnQtNiB3LTMgaC0zIGJnLXdoaXRlIHJpbmctMiByaW5nLXByaW1hcnktYmFzZSByb3VuZGVkLWZ1bGxcIiByb2xlPVwiaW1nXCI+PHAgY2xhc3M9XCJzci1vbmx5XCI+RXN0YWRvOiBhY3R1YWw8L3A+PC9kaXY+XG4gICAgICAgICAgPGRpdiAqbmdTd2l0Y2hDYXNlPVwiJ3BlbmRpbmcnXCIgY2xhc3M9XCJhYnNvbHV0ZSB0b3AtNSAtbGVmdC02IHctMyBoLTMgYmctd2hpdGUgYm9yZGVyLTIgYm9yZGVyLW5ldXRyYWwtYmFzZSByb3VuZGVkLWZ1bGxcIiByb2xlPVwiaW1nXCI+PHAgY2xhc3M9XCJzci1vbmx5XCI+RXN0YWRvOiBwZW5kaWVudGU8L3A+PC9kaXY+XG4gICAgICAgICAgPGRpdiAqbmdTd2l0Y2hDYXNlPVwiJ211dGVkJ1wiIGNsYXNzPVwiYWJzb2x1dGUgdG9wLTUgLWxlZnQtNiB3LTMgaC0zIGJnLW5ldXRyYWwtYmFzZSBib3JkZXItMiBib3JkZXItbmV1dHJhbC1iYXNlIHJvdW5kZWQtZnVsbFwiIHJvbGU9XCJpbWdcIj48cCBjbGFzcz1cInNyLW9ubHlcIj5Fc3RhZG86IHBhc2FkbzwvcD48L2Rpdj5cbiAgICAgICAgICA8ZGl2ICpuZ1N3aXRjaENhc2U9XCInY3VycmVudG11dGVkJ1wiIGNsYXNzPVwiYWJzb2x1dGUgdG9wLTUgLWxlZnQtNiB3LTMgaC0zIGJnLW5ldXRyYWwtYmFzZSByaW5nLTIgcmluZy1uZXV0cmFsLWJhc2Ugcm91bmRlZC1mdWxsXCIgcm9sZT1cImltZ1wiPjxwIGNsYXNzPVwic3Itb25seVwiPkVzdGFkbzogYWN0dWFsPC9wPjwvZGl2PlxuICAgICAgICAgIDxkaXYgKm5nU3dpdGNoRGVmYXVsdCBjbGFzcz1cImFic29sdXRlIHRvcC01IC1sZWZ0LTYgdy0zIGgtMyBiZy1wcmltYXJ5LWJhc2UgYm9yZGVyLTIgYm9yZGVyLXByaW1hcnktYmFzZSByb3VuZGVkLWZ1bGxcIiByb2xlPVwiaW1nXCI+PHAgY2xhc3M9XCJzci1vbmx5XCI+RXN0YWRvOiBwYXNhZG88L3A+PC9kaXY+XG4gICAgICAgIDwvbmctY29udGFpbmVyPlxuXG4gICAgICAgIDxkaXYgKm5nSWY9XCJpdGVtLm9wZW5cIiBbY2xhc3NdPVwiWydBY2NvcmRpb24tcGFuZWwgcmVsYXRpdmUnLCBpdGVtLmNsYXNzZXNdIHwgbWFrZUh0bWxMaXN0XCJcbiAgICAgICAgICAgICBbYXR0ci5pZF09XCJnZXRJdGVtSWQoaXRlbSwgaSlcIlxuICAgICAgICAgICAgIFthdHRyLnJvbGVdPVwiKGl0ZW0ucm9sZSA/IHJvbGUgOiAnYWNjb3JkaW9uJylcIlxuICAgICAgICAgICAgIFthdHRyLmFyaWEtc2VsZWN0ZWRdPVwiY3VycmVudEl0ZW0gPT09IGkgPyAndHJ1ZScgOiAnZmFsc2UnXCJcbiAgICAgICAgICAgICBbYXR0ci5hcmlhLWRlc2NyaWJlZGJ5XT1cIml0ZW0uYXJpYURlc2NyaWJlZEJ5XCJcbiAgICAgICAgICAgICBbYXR0ci5hcmlhLWVycm9ybWVzc2FnZV09XCJpdGVtLmFyaWFFcnJvck1lc3NhZ2VcIlxuICAgICAgICAgICAgIFthdHRyLmFyaWEtbGFiZWxdPVwiaXRlbS5hcmlhTGFiZWxcIlxuICAgICAgICAgICAgIFthdHRyLmFyaWEtbGFiZWxsZWRieV09XCJpdGVtLmFyaWFMYWJlbGxlZEJ5XCJcbiAgICAgICAgICAgICBbYXR0ci5hcmlhLWhpZGRlbl09XCJpdGVtLmFyaWFIaWRkZW5cIlxuICAgICAgICAgICAgIFthdHRyLmFyaWEtY29udHJvbHNdPVwiJ2FjY29yZGlvbi0nICsgZ2V0SXRlbUlkKGl0ZW0sIGkpXCJcbiAgICAgICAgICAgICBbYXR0ci5hcmlhLWN1cnJlbnRdPVwiaXRlbS5hcmlhQ3VycmVudFwiXG4gICAgICAgICAgICAgW2F0dHIuYXJpYS1saXZlXT1cIml0ZW0uYXJpYUxpdmVcIlxuICAgICAgICAgICAgIFthdHRyLmFyaWEtZXhwYW5kZWRdPVwiaXRlbS5hcmlhRXhwYW5kZWRcIlxuICAgICAgICAgICAgIFthdHRyLmFyaWEtaGFzcG9wdXBdPVwiaXRlbS5hcmlhSGFzUG9wdXBcIj5cbiAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiIWlzTGFzdFwiPlxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lciBbbmdTd2l0Y2hdPVwiaXRlbS5zdGF0dXNcIj5cbiAgICAgICAgICAgICAgPGRpdiAqbmdTd2l0Y2hDYXNlPVwiJ2N1cnJlbnQnXCIgY2xhc3M9XCJhYnNvbHV0ZSB0b3AtNCBib3R0b20tMCAtbGVmdC02IC1teS1zbSBib3JkZXItMiBib3JkZXItbmV1dHJhbC1saWdodFwiPjwvZGl2PlxuICAgICAgICAgICAgICA8ZGl2ICpuZ1N3aXRjaENhc2U9XCIncGVuZGluZydcIiBjbGFzcz1cImFic29sdXRlIHRvcC00IGJvdHRvbS0wIC1sZWZ0LTYgLW15LXNtIGJvcmRlci0yIGJvcmRlci1uZXV0cmFsLWxpZ2h0XCI+PC9kaXY+XG4gICAgICAgICAgICAgIDxkaXYgKm5nU3dpdGNoQ2FzZT1cIidtdXRlZCdcIiBjbGFzcz1cImFic29sdXRlIHRvcC00IGJvdHRvbS0wIC1sZWZ0LTYgLW15LXNtIGJvcmRlci0yIGJvcmRlci1uZXV0cmFsLWJhc2VcIj48L2Rpdj5cbiAgICAgICAgICAgICAgPGRpdiAqbmdTd2l0Y2hDYXNlPVwiJ2N1cnJlbnRtdXRlZCdcIiBjbGFzcz1cImFic29sdXRlIHRvcC00IGJvdHRvbS0wIC1sZWZ0LTYgLW15LXNtIGJvcmRlci0yIGJvcmRlci1uZXV0cmFsLWxpZ2h0XCI+PC9kaXY+XG4gICAgICAgICAgICAgIDxkaXYgKm5nU3dpdGNoRGVmYXVsdCBjbGFzcz1cImFic29sdXRlIHRvcC00IGJvdHRvbS0wIC1sZWZ0LTYgLW15LXNtIGJvcmRlci0yIGJvcmRlci1wcmltYXJ5LWJhc2VcIj48L2Rpdj5cbiAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgIDxuZy1jb250YWluZXIgKmRlc3lDdXN0b21Jbm5lckNvbnRlbnQ9XCJ7IGNvbXBvbmVudDogZ2V0SXRlbUNvbnRlbnQoaXRlbSksIGh0bWw6IGl0ZW0uaHRtbCwgdGV4dDogaXRlbS50ZXh0IH1cIj48L25nLWNvbnRhaW5lcj5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cbiAgPC9kaXY+XG48L2Rpdj5cbiJdfQ==
|
|
19
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWNjb3JkaW9uLWhpc3RvcnkuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZGVzeS1hbmd1bGFyL3NyYy9saWIvZGVzeS12aWV3cy9jb21wb25lbnRzL2FjY29yZGlvbi1oaXN0b3J5L2FjY29yZGlvbi1oaXN0b3J5LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Rlc3ktYW5ndWxhci9zcmMvbGliL2Rlc3ktdmlld3MvY29tcG9uZW50cy9hY2NvcmRpb24taGlzdG9yeS9hY2NvcmRpb24taGlzdG9yeS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLGVBQWUsRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDdEUsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sa0NBQWtDLENBQUM7QUFDdEUsT0FBTyxFQUFFLDZCQUE2QixFQUFFLE1BQU0sMkRBQTJELENBQUM7Ozs7O0FBTTFHLE1BQU0sT0FBTyx5QkFBMEIsU0FBUSxrQkFBa0I7K0dBQXBELHlCQUF5QjttR0FBekIseUJBQXlCLGdHQUduQiw2QkFBNkIsb0RDWGhELHdnVEFvSEE7OzRGRDVHYSx5QkFBeUI7a0JBSnJDLFNBQVM7K0JBQ0Usd0JBQXdCOzhCQU1zQixpQkFBaUI7c0JBQXhFLGVBQWU7dUJBQUMsNkJBQTZCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBDb250ZW50Q2hpbGRyZW4sIFF1ZXJ5TGlzdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQWNjb3JkaW9uQ29tcG9uZW50IH0gZnJvbSAnLi4vYWNjb3JkaW9uL2FjY29yZGlvbi5jb21wb25lbnQnO1xuaW1wb3J0IHsgQWNjb3JkaW9uSGlzdG9yeUl0ZW1Db21wb25lbnQgfSBmcm9tICcuL2FjY29yZGlvbi1oaXN0b3J5LWl0ZW0vYWNjb3JkaW9uLWhpc3RvcnktaXRlbS5jb21wb25lbnQnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdkZXN5LWFjY29yZGlvbi1oaXN0b3J5JyxcbiAgdGVtcGxhdGVVcmw6ICcuL2FjY29yZGlvbi1oaXN0b3J5LmNvbXBvbmVudC5odG1sJ1xufSlcbmV4cG9ydCBjbGFzcyBBY2NvcmRpb25IaXN0b3J5Q29tcG9uZW50IGV4dGVuZHMgQWNjb3JkaW9uQ29tcG9uZW50IHtcblxuICAvLyBTb2JyZWVzY3JpYmUgZWwgdGlwbyBkZWwgbGlzdGFkbyBkZSBpdGVtc1xuICBAQ29udGVudENoaWxkcmVuKEFjY29yZGlvbkhpc3RvcnlJdGVtQ29tcG9uZW50KSBkZWNsYXJlIGl0ZW1Db21wb25lbnRMaXN0OiBRdWVyeUxpc3Q8QWNjb3JkaW9uSGlzdG9yeUl0ZW1Db21wb25lbnQ+O1xufVxuIiwiPGRpdiBbY2xhc3NdPVwiY2xhc3Nlc1wiXG4gICAgIFthdHRyLnJvbGVdPVwicm9sZVwiXG4gICAgIFthdHRyLmFyaWEtZGVzY3JpYmVkYnldPVwiYXJpYURlc2NyaWJlZEJ5XCJcbiAgICAgW2F0dHIuYXJpYS1lcnJvcm1lc3NhZ2VdPVwiYXJpYUVycm9yTWVzc2FnZVwiXG4gICAgIFthdHRyLmFyaWEtbGFiZWxdPVwiYXJpYUxhYmVsXCJcbiAgICAgW2F0dHIuYXJpYS1sYWJlbGxlZGJ5XT1cImFyaWFMYWJlbGxlZEJ5XCJcbiAgICAgW2F0dHIuYXJpYS1oaWRkZW5dPVwiYXJpYUhpZGRlblwiXG4gICAgIFthdHRyLmFyaWEtZGlzYWJsZWRdPVwiYXJpYURpc2FibGVkXCJcbiAgICAgW2F0dHIuYXJpYS1jb250cm9sc109XCJhcmlhQ29udHJvbHNcIlxuICAgICBbYXR0ci5hcmlhLWN1cnJlbnRdPVwiYXJpYUN1cnJlbnRcIlxuICAgICBbYXR0ci5hcmlhLWxpdmVdPVwiYXJpYUxpdmVcIlxuICAgICBbYXR0ci5hcmlhLWV4cGFuZGVkXT1cImFyaWFFeHBhbmRlZFwiXG4gICAgIFthdHRyLmFyaWEtaGFzcG9wdXBdPVwiYXJpYUhhc1BvcHVwXCJcbiAgICAgW2F0dHIudGFiaW5kZXhdPVwidGFiaW5kZXhcIj5cbiAgPGRpdiBjbGFzcz1cImZsZXgganVzdGlmeS1iZXR3ZWVuXCI+XG4gICAgPG5nLWNvbnRhaW5lciBbbmdTd2l0Y2hdPVwiaGVhZGluZ0xldmVsXCI+XG4gICAgICA8aDEgKm5nU3dpdGNoQ2FzZT1cIjFcIiBbY2xhc3NdPVwiaGVhZGluZ0NvbXBvbmVudD8uY2xhc3NlcyB8fCAnYy1oMiBtYi1iYXNlJ1wiPjxuZy1jb250YWluZXIgKmRlc3lDdXN0b21Jbm5lckNvbnRlbnQ9XCJ7IGNvbXBvbmVudDogaGVhZGluZ0NvbXBvbmVudCB9XCI+PC9uZy1jb250YWluZXI+PC9oMT5cbiAgICAgIDxoMiAqbmdTd2l0Y2hDYXNlPVwiMlwiIFtjbGFzc109XCJoZWFkaW5nQ29tcG9uZW50Py5jbGFzc2VzIHx8ICdjLWgyIG1iLWJhc2UnXCI+PG5nLWNvbnRhaW5lciAqZGVzeUN1c3RvbUlubmVyQ29udGVudD1cInsgY29tcG9uZW50OiBoZWFkaW5nQ29tcG9uZW50IH1cIj48L25nLWNvbnRhaW5lcj48L2gyPlxuICAgICAgPGgzICpuZ1N3aXRjaENhc2U9XCIzXCIgW2NsYXNzXT1cImhlYWRpbmdDb21wb25lbnQ/LmNsYXNzZXMgfHwgJ2MtaDIgbWItYmFzZSdcIj48bmctY29udGFpbmVyICpkZXN5Q3VzdG9tSW5uZXJDb250ZW50PVwieyBjb21wb25lbnQ6IGhlYWRpbmdDb21wb25lbnQgfVwiPjwvbmctY29udGFpbmVyPjwvaDM+XG4gICAgICA8aDQgKm5nU3dpdGNoQ2FzZT1cIjRcIiBbY2xhc3NdPVwiaGVhZGluZ0NvbXBvbmVudD8uY2xhc3NlcyB8fCAnYy1oMiBtYi1iYXNlJ1wiPjxuZy1jb250YWluZXIgKmRlc3lDdXN0b21Jbm5lckNvbnRlbnQ9XCJ7IGNvbXBvbmVudDogaGVhZGluZ0NvbXBvbmVudCB9XCI+PC9uZy1jb250YWluZXI+PC9oND5cbiAgICAgIDxoNSAqbmdTd2l0Y2hDYXNlPVwiNVwiIFtjbGFzc109XCJoZWFkaW5nQ29tcG9uZW50Py5jbGFzc2VzIHx8ICdjLWgyIG1iLWJhc2UnXCI+PG5nLWNvbnRhaW5lciAqZGVzeUN1c3RvbUlubmVyQ29udGVudD1cInsgY29tcG9uZW50OiBoZWFkaW5nQ29tcG9uZW50IH1cIj48L25nLWNvbnRhaW5lcj48L2g1PlxuICAgICAgPGgyICpuZ1N3aXRjaERlZmF1bHQgIFtjbGFzc109XCJoZWFkaW5nQ29tcG9uZW50Py5jbGFzc2VzIHx8ICdjLWgyIG1iLWJhc2UnXCI+PG5nLWNvbnRhaW5lciAqZGVzeUN1c3RvbUlubmVyQ29udGVudD1cInsgY29tcG9uZW50OiBoZWFkaW5nQ29tcG9uZW50IH1cIj48L25nLWNvbnRhaW5lcj48L2gyPlxuICAgIDwvbmctY29udGFpbmVyPlxuXG4gICAgPGJ1dHRvbiAqbmdJZj1cInNob3dDb250cm9sXCIgKGNsaWNrKT1cImNoYW5nZUFsbCgpXCJcbiAgICAgICAgICAgIHR5cGU9XCJidXR0b25cIiBjbGFzcz1cIm1sLWF1dG8gcHktYmFzZSB0ZXh0LXNtIHRleHQtbmV1dHJhbC1kYXJrIHVuZGVybGluZSBmb2N1czp0ZXh0LWJsYWNrIGZvY3VzOmJnLXdhcm5pbmctYmFzZSBmb2N1czpvdXRsaW5lLW5vbmUgZm9jdXM6c2hhZG93LW91dGxpbmUtZm9jdXMgdGV4dC1yaWdodFwiPlxuICAgICAge3tzaG93QWxsID8gJ01vc3RyYXInIDogJ09jdWx0YXInfX0gdG9kb1xuICAgIDwvYnV0dG9uPlxuICA8L2Rpdj5cbiAgPGRpdiBjbGFzcz1cIkFjY29yZGlvbiBwbC1sZ1wiPlxuICAgICAgPG5nLXRlbXBsYXRlICNpdGVtSGVhZGVyQ29udGVudCBsZXQtaXRlbT1cIml0ZW1cIiBsZXQtaWQ9XCJpZFwiIGxldC1pbmRleD1cImluZGV4XCI+XG4gICAgICAgIDxidXR0b24gI2l0ZW1TZWxlY3RvciBbaWRdPVwiaWQgKyAnLXRpdGxlJ1wiIChjbGljayk9XCJ0b2dnbGVJdGVtKGl0ZW0pXCIgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgICAgICAgICAgdHlwZT1cImJ1dHRvblwiIFtjbGFzc109XCJbJ0FjY29yZGlvbi10cmlnZ2VyIGdyb3VwIHJlbGF0aXZlIHctZnVsbCBweS1zbSBmb250LXNlbWlib2xkIHRleHQtbGVmdCBjdXJzb3ItcG9pbnRlciBmb2N1czpiZy13YXJuaW5nLWJhc2UgZm9jdXM6b3V0bGluZS1ub25lIGZvY3VzOnNoYWRvdy1vdXRsaW5lLWZvY3VzIGZvY3VzOnRleHQtYmxhY2snLCBpdGVtLmRpc2FibGVkID8gJ2N1cnNvci1ub3QtYWxsb3dlZCcgOiAnJ10gfCBtYWtlSHRtbExpc3RcIlxuICAgICAgICAgICAgICAgIFthdHRyLmFyaWEtY29udHJvbHNdPVwiaWRcIiBbYXR0ci5hcmlhLWV4cGFuZGVkXT1cIml0ZW0ub3BlblwiIFtkaXNhYmxlZF09XCJpdGVtLmRpc2FibGVkXCI+XG4gICAgICAgICAgICA8bmctY29udGFpbmVyICpkZXN5Q3VzdG9tSW5uZXJDb250ZW50PVwieyBjb21wb25lbnQ6IGdldEl0ZW1IZWFkZXIoaXRlbSksIGh0bWw6IGl0ZW0uaGVhZGVySHRtbCwgdGV4dDogaXRlbS5oZWFkZXJUZXh0IH1cIj48L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgIDxzcGFuICpuZ0lmPVwiIWl0ZW0uZGlzYWJsZWRcIiBjbGFzcz1cImFic29sdXRlIGluc2V0LXktMCByaWdodC0wIHB5LXNtIGZvbnQtbm9ybWFsIHRleHQtc20gdGV4dC1uZXV0cmFsLWRhcmsgdW5kZXJsaW5lIGdyb3VwLWZvY3VzOnRleHQtYmxhY2sgcG9pbnRlci1ldmVudHMtbm9uZVwiPlxuICAgICAgICAgICAgICA8c3BhbiAqbmdJZj1cIiFpdGVtLm9wZW5cIiBbY2xhc3NdPVwiWydBY2NvcmRpb24tc2hvdycsIGl0ZW0uc2hvd0J1dHRvbj8uY2xhc3Nlc10gfCBtYWtlSHRtbExpc3RcIj5cbiAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpkZXN5Q3VzdG9tSW5uZXJDb250ZW50PVwieyBjb21wb25lbnQ6IGl0ZW0uc2hvd0J1dHRvbiwgdGV4dDogJ01vc3RyYXInIH1cIj48L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgICA8c3BhbiAqbmdJZj1cImFsbG93VG9nZ2xlICYmIGl0ZW0ub3BlblwiIFtjbGFzc109XCJbJ0FjY29yZGlvbi1zaG93JywgaXRlbS5oaWRlQnV0dG9uPy5jbGFzc2VzXSB8IG1ha2VIdG1sTGlzdFwiPlxuICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKmRlc3lDdXN0b21Jbm5lckNvbnRlbnQ9XCJ7IGNvbXBvbmVudDogaXRlbS5oaWRlQnV0dG9uLCB0ZXh0OiAnT2N1bHRhcicgfVwiPjwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgIDwvYnV0dG9uPlxuICAgICAgPC9uZy10ZW1wbGF0ZT5cblxuICAgICAgPGRpdiAqbmdGb3I9XCJsZXQgaXRlbSBvZiBnZXRJdGVtcygpOyBpbmRleCBhcyBpOyBmaXJzdCBhcyBpc0ZpcnN0OyBsYXN0IGFzIGlzTGFzdFwiIFxuICAgICAgICAgICBjbGFzcz1cInJlbGF0aXZlIC1teS1weCBweC14cyBweS1zbSBib3JkZXItdCBib3JkZXItYiBib3JkZXItbmV1dHJhbC1iYXNlXCJcbiAgICAgICAgICAgKGtleWRvd24uaG9tZSk9XCJmb2N1c0ZpcnN0SXRlbSgkZXZlbnQpXCJcbiAgICAgICAgICAgKGtleWRvd24uZW5kKT1cImZvY3VzTGFzdEl0ZW0oJGV2ZW50KVwiXG4gICAgICAgICAgIChrZXlkb3duLmFycm93dXApPVwiZm9jdXNQcmV2aW91c0l0ZW0oJGV2ZW50LCBpKVwiXG4gICAgICAgICAgIChrZXlkb3duLmFycm93ZG93bik9XCJmb2N1c05leHRJdGVtKCRldmVudCwgaSlcIlxuICAgICAgICAgICAoY2xpY2spPVwic2VsZWN0SXRlbShpKVwiPlxuICAgICAgICA8bmctY29udGFpbmVyIFtuZ1N3aXRjaF09XCJoZWFkaW5nTGV2ZWxcIj5cbiAgICAgICAgICAgIDxoMiAqbmdTd2l0Y2hDYXNlPVwiMVwiPjxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJpdGVtSGVhZGVyQ29udGVudDsgY29udGV4dDoge2l0ZW06IGl0ZW0sIGlkOiBnZXRJdGVtSWQoaXRlbSwgaSksIGluZGV4OiBpfVwiPjwvbmctY29udGFpbmVyPjwvaDI+XG4gICAgICAgICAgICA8aDMgKm5nU3dpdGNoQ2FzZT1cIjJcIj48bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiaXRlbUhlYWRlckNvbnRlbnQ7IGNvbnRleHQ6IHtpdGVtOiBpdGVtLCBpZDogZ2V0SXRlbUlkKGl0ZW0sIGkpLCBpbmRleDogaX1cIj48L25nLWNvbnRhaW5lcj48L2gzPlxuICAgICAgICAgICAgPGg0ICpuZ1N3aXRjaENhc2U9XCIzXCI+PG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cIml0ZW1IZWFkZXJDb250ZW50OyBjb250ZXh0OiB7aXRlbTogaXRlbSwgaWQ6IGdldEl0ZW1JZChpdGVtLCBpKSwgaW5kZXg6IGl9XCI+PC9uZy1jb250YWluZXI+PC9oND5cbiAgICAgICAgICAgIDxoNSAqbmdTd2l0Y2hDYXNlPVwiNFwiPjxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJpdGVtSGVhZGVyQ29udGVudDsgY29udGV4dDoge2l0ZW06IGl0ZW0sIGlkOiBnZXRJdGVtSWQoaXRlbSwgaSksIGluZGV4OiBpfVwiPjwvbmctY29udGFpbmVyPjwvaDU+XG4gICAgICAgICAgICA8aDYgKm5nU3dpdGNoQ2FzZT1cIjVcIj48bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiaXRlbUhlYWRlckNvbnRlbnQ7IGNvbnRleHQ6IHtpdGVtOiBpdGVtLCBpZDogZ2V0SXRlbUlkKGl0ZW0sIGkpLCBpbmRleDogaX1cIj48L25nLWNvbnRhaW5lcj48L2g2PlxuICAgICAgICAgICAgPGgzICpuZ1N3aXRjaERlZmF1bHQ+PG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cIml0ZW1IZWFkZXJDb250ZW50OyBjb250ZXh0OiB7aXRlbTogaXRlbSwgaWQ6IGdldEl0ZW1JZChpdGVtLCBpKSwgaW5kZXg6IGl9XCI+PC9uZy1jb250YWluZXI+PC9oMz5cbiAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgIDxwIGNsYXNzPVwic3Itb25seVwiIGFyaWEtaGlkZGVuPVwidHJ1ZVwiPkhheiBjbGljayBlbiBlbCBib3TDs24gYW50ZXJpb3IgcGFyYSBtb3N0cmFyIHUgb2N1bHRhcjwvcD5cbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIiFpc0ZpcnN0XCI+XG4gICAgICAgICAgPG5nLWNvbnRhaW5lciBbbmdTd2l0Y2hdPVwiaXRlbS5zdGF0dXNcIj5cbiAgICAgICAgICAgIDxkaXYgKm5nU3dpdGNoQ2FzZT1cIidjdXJyZW50J1wiIGNsYXNzPVwiYWJzb2x1dGUgLXRvcC1weCAtbGVmdC01IGgtNiBib3JkZXItMiBib3JkZXItcHJpbWFyeS1iYXNlXCI+PC9kaXY+XG4gICAgICAgICAgICA8ZGl2ICpuZ1N3aXRjaENhc2U9XCIncGVuZGluZydcIiBjbGFzcz1cImFic29sdXRlIC10b3AtcHggLWxlZnQtNSBoLTYgYm9yZGVyLTIgYm9yZGVyLW5ldXRyYWwtbGlnaHRcIj48L2Rpdj5cbiAgICAgICAgICAgIDxkaXYgKm5nU3dpdGNoQ2FzZT1cIidtdXRlZCdcIiBjbGFzcz1cImFic29sdXRlIC10b3AtcHggLWxlZnQtNSBoLTYgYm9yZGVyLTIgYm9yZGVyLW5ldXRyYWwtYmFzZVwiPjwvZGl2PlxuICAgICAgICAgICAgPGRpdiAqbmdTd2l0Y2hDYXNlPVwiJ2N1cnJlbnRtdXRlZCdcIiBjbGFzcz1cImFic29sdXRlIC10b3AtcHggLWxlZnQtNSBoLTYgYm9yZGVyLTIgYm9yZGVyLW5ldXRyYWwtYmFzZVwiPjwvZGl2PlxuICAgICAgICAgICAgPGRpdiAqbmdTd2l0Y2hEZWZhdWx0IGNsYXNzPVwiYWJzb2x1dGUgLXRvcC1weCAtbGVmdC01IGgtNiBib3JkZXItMiBib3JkZXItcHJpbWFyeS1iYXNlXCI+PC9kaXY+XG4gICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiIWlzTGFzdFwiPlxuICAgICAgICAgIDxuZy1jb250YWluZXIgW25nU3dpdGNoXT1cIml0ZW0uc3RhdHVzXCI+XG4gICAgICAgICAgICA8ZGl2ICpuZ1N3aXRjaENhc2U9XCInY3VycmVudCdcIiBjbGFzcz1cImFic29sdXRlIHRvcC02IGJvdHRvbS0wIC1sZWZ0LTUgYm9yZGVyLTIgYm9yZGVyLW5ldXRyYWwtbGlnaHRcIj48L2Rpdj5cbiAgICAgICAgICAgIDxkaXYgKm5nU3dpdGNoQ2FzZT1cIidwZW5kaW5nJ1wiIGNsYXNzPVwiYWJzb2x1dGUgdG9wLTYgYm90dG9tLTAgLWxlZnQtNSBib3JkZXItMiBib3JkZXItbmV1dHJhbC1saWdodFwiPjwvZGl2PlxuICAgICAgICAgICAgPGRpdiAqbmdTd2l0Y2hDYXNlPVwiJ211dGVkJ1wiIGNsYXNzPVwiYWJzb2x1dGUgdG9wLTYgYm90dG9tLTAgLWxlZnQtNSBib3JkZXItMiBib3JkZXItbmV1dHJhbC1iYXNlXCI+PC9kaXY+XG4gICAgICAgICAgICA8ZGl2ICpuZ1N3aXRjaENhc2U9XCInY3VycmVudG11dGVkJ1wiIGNsYXNzPVwiYWJzb2x1dGUgdG9wLTYgYm90dG9tLTAgLWxlZnQtNSBib3JkZXItMiBib3JkZXItbmV1dHJhbC1saWdodFwiPjwvZGl2PlxuICAgICAgICAgICAgPGRpdiAqbmdTd2l0Y2hEZWZhdWx0IGNsYXNzPVwiYWJzb2x1dGUgdG9wLTYgYm90dG9tLTAgLWxlZnQtNSBib3JkZXItMiBib3JkZXItcHJpbWFyeS1iYXNlXCI+PC9kaXY+XG4gICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICA8bmctY29udGFpbmVyIFtuZ1N3aXRjaF09XCJpdGVtLnN0YXR1c1wiPlxuICAgICAgICAgIDxkaXYgKm5nU3dpdGNoQ2FzZT1cIidjdXJyZW50J1wiIGNsYXNzPVwiYWJzb2x1dGUgdG9wLTUgLWxlZnQtNiB3LTMgaC0zIGJnLXdoaXRlIHJpbmctMiByaW5nLXByaW1hcnktYmFzZSByb3VuZGVkLWZ1bGxcIiByb2xlPVwiaW1nXCI+PHAgY2xhc3M9XCJzci1vbmx5XCI+RXN0YWRvOiBhY3R1YWw8L3A+PC9kaXY+XG4gICAgICAgICAgPGRpdiAqbmdTd2l0Y2hDYXNlPVwiJ3BlbmRpbmcnXCIgY2xhc3M9XCJhYnNvbHV0ZSB0b3AtNSAtbGVmdC02IHctMyBoLTMgYmctd2hpdGUgYm9yZGVyLTIgYm9yZGVyLW5ldXRyYWwtYmFzZSByb3VuZGVkLWZ1bGxcIiByb2xlPVwiaW1nXCI+PHAgY2xhc3M9XCJzci1vbmx5XCI+RXN0YWRvOiBwZW5kaWVudGU8L3A+PC9kaXY+XG4gICAgICAgICAgPGRpdiAqbmdTd2l0Y2hDYXNlPVwiJ211dGVkJ1wiIGNsYXNzPVwiYWJzb2x1dGUgdG9wLTUgLWxlZnQtNiB3LTMgaC0zIGJnLW5ldXRyYWwtYmFzZSBib3JkZXItMiBib3JkZXItbmV1dHJhbC1iYXNlIHJvdW5kZWQtZnVsbFwiIHJvbGU9XCJpbWdcIj48cCBjbGFzcz1cInNyLW9ubHlcIj5Fc3RhZG86IHBhc2FkbzwvcD48L2Rpdj5cbiAgICAgICAgICA8ZGl2ICpuZ1N3aXRjaENhc2U9XCInY3VycmVudG11dGVkJ1wiIGNsYXNzPVwiYWJzb2x1dGUgdG9wLTUgLWxlZnQtNiB3LTMgaC0zIGJnLW5ldXRyYWwtYmFzZSByaW5nLTIgcmluZy1uZXV0cmFsLWJhc2Ugcm91bmRlZC1mdWxsXCIgcm9sZT1cImltZ1wiPjxwIGNsYXNzPVwic3Itb25seVwiPkVzdGFkbzogYWN0dWFsPC9wPjwvZGl2PlxuICAgICAgICAgIDxkaXYgKm5nU3dpdGNoRGVmYXVsdCBjbGFzcz1cImFic29sdXRlIHRvcC01IC1sZWZ0LTYgdy0zIGgtMyBiZy1wcmltYXJ5LWJhc2UgYm9yZGVyLTIgYm9yZGVyLXByaW1hcnktYmFzZSByb3VuZGVkLWZ1bGxcIiByb2xlPVwiaW1nXCI+PHAgY2xhc3M9XCJzci1vbmx5XCI+RXN0YWRvOiBwYXNhZG88L3A+PC9kaXY+XG4gICAgICAgIDwvbmctY29udGFpbmVyPlxuXG4gICAgICAgIDxkaXYgKm5nSWY9XCJpdGVtLm9wZW5cIiBbY2xhc3NdPVwiWydBY2NvcmRpb24tcGFuZWwgcmVsYXRpdmUnLCBpdGVtLmNsYXNzZXNdIHwgbWFrZUh0bWxMaXN0XCJcbiAgICAgICAgICAgICBbYXR0ci5pZF09XCJnZXRJdGVtSWQoaXRlbSwgaSlcIlxuICAgICAgICAgICAgIFthdHRyLnJvbGVdPVwiKGl0ZW0ucm9sZSA/IHJvbGUgOiAnYWNjb3JkaW9uJylcIlxuICAgICAgICAgICAgIFthdHRyLmFyaWEtc2VsZWN0ZWRdPVwiY3VycmVudEl0ZW0gPT09IGkgPyAndHJ1ZScgOiAnZmFsc2UnXCJcbiAgICAgICAgICAgICBbYXR0ci5hcmlhLWRlc2NyaWJlZGJ5XT1cIml0ZW0uYXJpYURlc2NyaWJlZEJ5XCJcbiAgICAgICAgICAgICBbYXR0ci5hcmlhLWVycm9ybWVzc2FnZV09XCJpdGVtLmFyaWFFcnJvck1lc3NhZ2VcIlxuICAgICAgICAgICAgIFthdHRyLmFyaWEtbGFiZWxdPVwiaXRlbS5hcmlhTGFiZWxcIlxuICAgICAgICAgICAgIFthdHRyLmFyaWEtbGFiZWxsZWRieV09XCJpdGVtLmFyaWFMYWJlbGxlZEJ5XCJcbiAgICAgICAgICAgICBbYXR0ci5hcmlhLWhpZGRlbl09XCJpdGVtLmFyaWFIaWRkZW5cIlxuICAgICAgICAgICAgIFthdHRyLmFyaWEtY29udHJvbHNdPVwiJ2FjY29yZGlvbi0nICsgZ2V0SXRlbUlkKGl0ZW0sIGkpXCJcbiAgICAgICAgICAgICBbYXR0ci5hcmlhLWN1cnJlbnRdPVwiaXRlbS5hcmlhQ3VycmVudFwiXG4gICAgICAgICAgICAgW2F0dHIuYXJpYS1saXZlXT1cIml0ZW0uYXJpYUxpdmVcIlxuICAgICAgICAgICAgIFthdHRyLmFyaWEtZXhwYW5kZWRdPVwiaXRlbS5hcmlhRXhwYW5kZWRcIlxuICAgICAgICAgICAgIFthdHRyLmFyaWEtaGFzcG9wdXBdPVwiaXRlbS5hcmlhSGFzUG9wdXBcIj5cbiAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiIWlzTGFzdFwiPlxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lciBbbmdTd2l0Y2hdPVwiaXRlbS5zdGF0dXNcIj5cbiAgICAgICAgICAgICAgPGRpdiAqbmdTd2l0Y2hDYXNlPVwiJ2N1cnJlbnQnXCIgY2xhc3M9XCJhYnNvbHV0ZSB0b3AtNCBib3R0b20tMCAtbGVmdC02IC1teS1zbSBib3JkZXItMiBib3JkZXItbmV1dHJhbC1saWdodFwiPjwvZGl2PlxuICAgICAgICAgICAgICA8ZGl2ICpuZ1N3aXRjaENhc2U9XCIncGVuZGluZydcIiBjbGFzcz1cImFic29sdXRlIHRvcC00IGJvdHRvbS0wIC1sZWZ0LTYgLW15LXNtIGJvcmRlci0yIGJvcmRlci1uZXV0cmFsLWxpZ2h0XCI+PC9kaXY+XG4gICAgICAgICAgICAgIDxkaXYgKm5nU3dpdGNoQ2FzZT1cIidtdXRlZCdcIiBjbGFzcz1cImFic29sdXRlIHRvcC00IGJvdHRvbS0wIC1sZWZ0LTYgLW15LXNtIGJvcmRlci0yIGJvcmRlci1uZXV0cmFsLWJhc2VcIj48L2Rpdj5cbiAgICAgICAgICAgICAgPGRpdiAqbmdTd2l0Y2hDYXNlPVwiJ2N1cnJlbnRtdXRlZCdcIiBjbGFzcz1cImFic29sdXRlIHRvcC00IGJvdHRvbS0wIC1sZWZ0LTYgLW15LXNtIGJvcmRlci0yIGJvcmRlci1uZXV0cmFsLWxpZ2h0XCI+PC9kaXY+XG4gICAgICAgICAgICAgIDxkaXYgKm5nU3dpdGNoRGVmYXVsdCBjbGFzcz1cImFic29sdXRlIHRvcC00IGJvdHRvbS0wIC1sZWZ0LTYgLW15LXNtIGJvcmRlci0yIGJvcmRlci1wcmltYXJ5LWJhc2VcIj48L2Rpdj5cbiAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgIDxuZy1jb250YWluZXIgKmRlc3lDdXN0b21Jbm5lckNvbnRlbnQ9XCJ7IGNvbXBvbmVudDogZ2V0SXRlbUNvbnRlbnQoaXRlbSksIGh0bWw6IGl0ZW0uaHRtbCwgdGV4dDogaXRlbS50ZXh0IH1cIj48L25nLWNvbnRhaW5lcj5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cbiAgPC9kaXY+XG48L2Rpdj5cbiJdfQ==
|