@indice/ng-components 0.2.167-beta.2 → 0.2.167-beta.22
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/_styles.css +64 -19
- package/esm2020/lib/controls/advanced-search/advanced-search.component.mjs +3 -3
- package/esm2020/lib/controls/breadcrumb/breadcrumb-item.mjs +14 -0
- package/esm2020/lib/controls/breadcrumb/breadcrumb.component.mjs +26 -0
- package/esm2020/lib/controls/combobox/combobox.component.mjs +23 -9
- package/esm2020/lib/controls/language-selection/language-selection.component.mjs +3 -3
- package/esm2020/lib/controls/list-view/list-view.component.mjs +6 -6
- package/esm2020/lib/controls/nav-links-list/nav-links-list.component.mjs +11 -3
- package/esm2020/lib/controls/stepper/lib-step-label.directive.mjs +2 -2
- package/esm2020/lib/controls/stepper/lib-stepper.component.mjs +3 -3
- package/esm2020/lib/controls/tabs/lib-tab-group.component.mjs +17 -11
- package/esm2020/lib/controls/tabs/lib-tab-label.directive.mjs +16 -0
- package/esm2020/lib/controls/tabs/lib-tab.component.mjs +12 -5
- package/esm2020/lib/controls/user-profile-menu/user-profile-menu.component.mjs +1 -1
- package/esm2020/lib/icons.mjs +4 -2
- package/esm2020/lib/layouts/shell/shell-header/shell-header.component.mjs +4 -4
- package/esm2020/lib/layouts/shell/shell-layout/shell-layout.component.mjs +7 -7
- package/esm2020/lib/layouts/shell/shell-sidebar/shell-sidebar.component.mjs +12 -3
- package/esm2020/lib/layouts/shell/shell-sidebar-header/shell-sidebar-header.component.mjs +3 -3
- package/esm2020/lib/layouts/shell/shell-sidebar-layout/shell-sidebar-layout.component.mjs +7 -6
- package/esm2020/lib/layouts/shell/shell-stacked-layout/shell-stacked-layout.component.mjs +6 -7
- package/esm2020/lib/layouts/views/view-layout/view-layout.component.mjs +3 -3
- package/esm2020/lib/ng-components.module.mjs +96 -102
- package/esm2020/lib/services/breadcrumb.service.mjs +174 -0
- package/esm2020/lib/services/toaster.service.mjs +7 -5
- package/esm2020/lib/services/utilities.service.mjs +47 -0
- package/esm2020/lib/types.mjs +8 -6
- package/esm2020/public-api.mjs +5 -1
- package/fesm2015/indice-ng-components.mjs +550 -241
- package/fesm2015/indice-ng-components.mjs.map +1 -1
- package/fesm2020/indice-ng-components.mjs +532 -236
- package/fesm2020/indice-ng-components.mjs.map +1 -1
- package/lib/controls/breadcrumb/breadcrumb-item.d.ts +7 -0
- package/lib/controls/breadcrumb/breadcrumb.component.d.ts +12 -0
- package/lib/controls/combobox/combobox.component.d.ts +7 -4
- package/lib/controls/nav-links-list/nav-links-list.component.d.ts +3 -1
- package/lib/controls/tabs/lib-tab-group.component.d.ts +3 -3
- package/lib/controls/tabs/lib-tab-label.directive.d.ts +8 -0
- package/lib/controls/tabs/lib-tab.component.d.ts +8 -6
- package/lib/icons.d.ts +2 -0
- package/lib/layouts/shell/shell-sidebar/shell-sidebar.component.d.ts +3 -1
- package/lib/layouts/shell/shell-stacked-layout/shell-stacked-layout.component.d.ts +1 -1
- package/lib/ng-components.module.d.ts +55 -53
- package/lib/services/breadcrumb.service.d.ts +29 -0
- package/lib/services/toaster.service.d.ts +2 -2
- package/lib/services/utilities.service.d.ts +11 -0
- package/lib/types.d.ts +12 -10
- package/package.json +1 -1
- package/public-api.d.ts +4 -0
|
@@ -1,10 +1,14 @@
|
|
|
1
|
-
import { NgModule } from '@angular/core';
|
|
2
1
|
import { CommonModule } from '@angular/common';
|
|
2
|
+
import { FormsModule } from '@angular/forms';
|
|
3
|
+
import { NgModule } from '@angular/core';
|
|
3
4
|
import { RouterModule } from '@angular/router';
|
|
4
5
|
import { AddressPipe } from './pipes/address.pipe';
|
|
6
|
+
import { AdvancedSearchComponent } from './controls/advanced-search/advanced-search.component';
|
|
5
7
|
import { AuthCallbackComponent } from './pages/auth/auth-callback/auth-callback.component';
|
|
6
8
|
import { AuthRenewComponent } from './pages/auth/auth-renew/auth-renew.component';
|
|
7
9
|
import { AvatarInitialsComponent } from './controls/avatar-initials/avatar-initials.component';
|
|
10
|
+
import { BreadcrumbComponent } from './controls/breadcrumb/breadcrumb.component';
|
|
11
|
+
import { BreadcrumbService } from './services/breadcrumb.service';
|
|
8
12
|
import { ClickOutsideDirective } from './directives/click-outside.directive';
|
|
9
13
|
import { CollapsiblePanelComponent } from './controls/collapsible-panel/collapsible-panel.component';
|
|
10
14
|
import { ComboboxComponent } from './controls/combobox/combobox.component';
|
|
@@ -38,6 +42,9 @@ import { ShellFooterComponent } from './layouts/shell/shell-footer/shell-footer.
|
|
|
38
42
|
import { ShellHeaderComponent } from './layouts/shell/shell-header/shell-header.component';
|
|
39
43
|
import { ShellLayoutComponent } from './layouts/shell/shell-layout/shell-layout.component';
|
|
40
44
|
import { ShellSidebarComponent } from './layouts/shell/shell-sidebar/shell-sidebar.component';
|
|
45
|
+
import { ShellSidebarHeaderComponent } from './layouts/shell/shell-sidebar-header/shell-sidebar-header.component';
|
|
46
|
+
import { ShellSidebarLayoutComponent } from './layouts/shell/shell-sidebar-layout/shell-sidebar-layout.component';
|
|
47
|
+
import { ShellStackedLayoutComponent } from './layouts/shell/shell-stacked-layout/shell-stacked-layout.component';
|
|
41
48
|
import { SidePaneComponent } from './controls/side-pane/side-pane.component';
|
|
42
49
|
import { SideViewLayoutComponent } from './layouts/views/side-view-layout/side-view-layout.component';
|
|
43
50
|
import { SkeletonLoaderComponent } from './controls/skeleton-loader/skeleton-loader.component';
|
|
@@ -48,87 +55,78 @@ import { ToggleComponent } from './controls/toggle/toggle.component';
|
|
|
48
55
|
import { UnauthorizedComponent } from './pages/http-status/unauthorized/unauthorized.component';
|
|
49
56
|
import { UserProfileMenuComponent } from './controls/user-profile-menu/user-profile-menu.component';
|
|
50
57
|
import { ViewLayoutComponent } from './layouts/views/view-layout/view-layout.component';
|
|
51
|
-
import {
|
|
52
|
-
import { ShellSidebarLayoutComponent } from './layouts/shell/shell-sidebar-layout/shell-sidebar-layout.component';
|
|
53
|
-
import { ShellStackedLayoutComponent } from './layouts/shell/shell-stacked-layout/shell-stacked-layout.component';
|
|
54
|
-
import { AdvancedSearchComponent } from './controls/advanced-search/advanced-search.component';
|
|
55
|
-
import { FormsModule } from '@angular/forms';
|
|
58
|
+
import { LibTabLabelDirective } from '../public-api';
|
|
56
59
|
import * as i0 from "@angular/core";
|
|
57
60
|
export class IndiceComponentsModule {
|
|
58
|
-
// tslint:disable-next-line:typedef
|
|
59
61
|
static forRoot() {
|
|
60
62
|
return {
|
|
61
63
|
ngModule: IndiceComponentsModule,
|
|
62
|
-
providers: [
|
|
64
|
+
providers: [
|
|
65
|
+
BreadcrumbService,
|
|
66
|
+
ToasterService
|
|
67
|
+
]
|
|
63
68
|
};
|
|
64
69
|
}
|
|
65
70
|
}
|
|
66
71
|
IndiceComponentsModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.0", ngImport: i0, type: IndiceComponentsModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
67
|
-
IndiceComponentsModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "14.0.0", ngImport: i0, type: IndiceComponentsModule, declarations: [
|
|
68
|
-
|
|
72
|
+
IndiceComponentsModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "14.0.0", ngImport: i0, type: IndiceComponentsModule, declarations: [AddressPipe,
|
|
73
|
+
AdvancedSearchComponent,
|
|
74
|
+
AuthCallbackComponent,
|
|
75
|
+
AuthRenewComponent,
|
|
76
|
+
AvatarInitialsComponent,
|
|
77
|
+
BreadcrumbComponent,
|
|
69
78
|
ClickOutsideDirective,
|
|
70
|
-
|
|
71
|
-
|
|
79
|
+
CollapsiblePanelComponent,
|
|
80
|
+
ComboboxComponent,
|
|
81
|
+
DatepickerComponent,
|
|
72
82
|
DropDownMenuComponent,
|
|
73
|
-
|
|
74
|
-
|
|
83
|
+
DurationFormatPipe,
|
|
84
|
+
DynamicComponentHostDirective,
|
|
85
|
+
ErrorComponent,
|
|
86
|
+
FormLayoutComponent,
|
|
87
|
+
KpiTileComponent,
|
|
88
|
+
LanguageSelectionComponent,
|
|
89
|
+
LibStepComponent,
|
|
90
|
+
LibStepInfoDirective,
|
|
91
|
+
LibStepLabelDirective,
|
|
92
|
+
LibStepperComponent,
|
|
93
|
+
LibTabComponent,
|
|
94
|
+
LibTabGroupComponent,
|
|
95
|
+
LibTabLabelDirective,
|
|
75
96
|
ListColumnComponent,
|
|
76
|
-
ListTileComponent,
|
|
77
97
|
ListDetailsSectionComponent,
|
|
98
|
+
ListTileComponent,
|
|
99
|
+
ListViewComponent,
|
|
78
100
|
ListViewEmptyStateComponent,
|
|
79
|
-
SkeletonLoaderComponent,
|
|
80
|
-
CollapsiblePanelComponent,
|
|
81
|
-
KpiTileComponent,
|
|
82
|
-
SidePaneComponent,
|
|
83
|
-
DatepickerComponent,
|
|
84
|
-
AvatarInitialsComponent,
|
|
85
|
-
ToggleComponent,
|
|
86
|
-
ComboboxComponent,
|
|
87
|
-
// Toaster
|
|
88
|
-
ToasterContainerComponent,
|
|
89
|
-
ToasterComponent,
|
|
90
|
-
// Shell Layout
|
|
91
|
-
ShellLayoutComponent,
|
|
92
|
-
ShellHeaderComponent,
|
|
93
|
-
ShellFooterComponent,
|
|
94
|
-
// View Layouts
|
|
95
|
-
ViewLayoutComponent,
|
|
96
|
-
SideViewLayoutComponent,
|
|
97
|
-
ModelViewLayoutComponent,
|
|
98
|
-
FormLayoutComponent,
|
|
99
|
-
// Pages (common)
|
|
100
|
-
AuthCallbackComponent,
|
|
101
|
-
AuthRenewComponent,
|
|
102
101
|
LoggedOutComponent,
|
|
103
|
-
|
|
104
|
-
PageNotFoundComponent,
|
|
105
|
-
UnauthorizedComponent,
|
|
106
|
-
// Pipes
|
|
107
|
-
AddressPipe,
|
|
108
|
-
DurationFormatPipe,
|
|
102
|
+
ModelViewLayoutComponent,
|
|
109
103
|
NavLinksListComponent,
|
|
110
104
|
NotificationsIndicatorComponent,
|
|
111
|
-
|
|
112
|
-
|
|
105
|
+
PageNotFoundComponent,
|
|
106
|
+
PagerComponent,
|
|
107
|
+
ShellFooterComponent,
|
|
108
|
+
ShellHeaderComponent,
|
|
109
|
+
ShellLayoutComponent,
|
|
113
110
|
ShellSidebarComponent,
|
|
114
|
-
// Tab Group Component
|
|
115
|
-
LibTabComponent,
|
|
116
|
-
LibTabGroupComponent,
|
|
117
|
-
// Stepper Component
|
|
118
|
-
LibStepperComponent,
|
|
119
|
-
LibStepComponent,
|
|
120
|
-
LibStepLabelDirective,
|
|
121
|
-
LibStepInfoDirective,
|
|
122
111
|
ShellSidebarHeaderComponent,
|
|
123
112
|
ShellSidebarLayoutComponent,
|
|
124
113
|
ShellStackedLayoutComponent,
|
|
125
|
-
|
|
114
|
+
SidePaneComponent,
|
|
115
|
+
SideViewLayoutComponent,
|
|
116
|
+
SkeletonLoaderComponent,
|
|
117
|
+
ToasterComponent,
|
|
118
|
+
ToasterContainerComponent,
|
|
119
|
+
ToggleComponent,
|
|
120
|
+
UnauthorizedComponent,
|
|
121
|
+
UserProfileMenuComponent,
|
|
122
|
+
ViewLayoutComponent], imports: [CommonModule,
|
|
126
123
|
RouterModule,
|
|
127
124
|
IndiceAuthModule,
|
|
128
125
|
FormsModule], exports: [AddressPipe,
|
|
129
126
|
AuthCallbackComponent,
|
|
130
127
|
AuthRenewComponent,
|
|
131
128
|
AvatarInitialsComponent,
|
|
129
|
+
BreadcrumbComponent,
|
|
132
130
|
ClickOutsideDirective,
|
|
133
131
|
CollapsiblePanelComponent,
|
|
134
132
|
ComboboxComponent,
|
|
@@ -144,6 +142,7 @@ IndiceComponentsModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0",
|
|
|
144
142
|
LibStepperComponent,
|
|
145
143
|
LibTabComponent,
|
|
146
144
|
LibTabGroupComponent,
|
|
145
|
+
LibTabLabelDirective,
|
|
147
146
|
ListColumnComponent,
|
|
148
147
|
ListDetailsSectionComponent,
|
|
149
148
|
ListTileComponent,
|
|
@@ -172,64 +171,57 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.0", ngImpor
|
|
|
172
171
|
type: NgModule,
|
|
173
172
|
args: [{
|
|
174
173
|
declarations: [
|
|
175
|
-
|
|
174
|
+
AddressPipe,
|
|
175
|
+
AdvancedSearchComponent,
|
|
176
|
+
AuthCallbackComponent,
|
|
177
|
+
AuthRenewComponent,
|
|
178
|
+
AvatarInitialsComponent,
|
|
179
|
+
BreadcrumbComponent,
|
|
176
180
|
ClickOutsideDirective,
|
|
177
|
-
|
|
178
|
-
|
|
181
|
+
CollapsiblePanelComponent,
|
|
182
|
+
ComboboxComponent,
|
|
183
|
+
DatepickerComponent,
|
|
179
184
|
DropDownMenuComponent,
|
|
180
|
-
|
|
181
|
-
|
|
185
|
+
DurationFormatPipe,
|
|
186
|
+
DynamicComponentHostDirective,
|
|
187
|
+
ErrorComponent,
|
|
188
|
+
FormLayoutComponent,
|
|
189
|
+
KpiTileComponent,
|
|
190
|
+
LanguageSelectionComponent,
|
|
191
|
+
LibStepComponent,
|
|
192
|
+
LibStepInfoDirective,
|
|
193
|
+
LibStepLabelDirective,
|
|
194
|
+
LibStepperComponent,
|
|
195
|
+
LibTabComponent,
|
|
196
|
+
LibTabGroupComponent,
|
|
197
|
+
LibTabLabelDirective,
|
|
182
198
|
ListColumnComponent,
|
|
183
|
-
ListTileComponent,
|
|
184
199
|
ListDetailsSectionComponent,
|
|
200
|
+
ListTileComponent,
|
|
201
|
+
ListViewComponent,
|
|
185
202
|
ListViewEmptyStateComponent,
|
|
186
|
-
SkeletonLoaderComponent,
|
|
187
|
-
CollapsiblePanelComponent,
|
|
188
|
-
KpiTileComponent,
|
|
189
|
-
SidePaneComponent,
|
|
190
|
-
DatepickerComponent,
|
|
191
|
-
AvatarInitialsComponent,
|
|
192
|
-
ToggleComponent,
|
|
193
|
-
ComboboxComponent,
|
|
194
|
-
// Toaster
|
|
195
|
-
ToasterContainerComponent,
|
|
196
|
-
ToasterComponent,
|
|
197
|
-
// Shell Layout
|
|
198
|
-
ShellLayoutComponent,
|
|
199
|
-
ShellHeaderComponent,
|
|
200
|
-
ShellFooterComponent,
|
|
201
|
-
// View Layouts
|
|
202
|
-
ViewLayoutComponent,
|
|
203
|
-
SideViewLayoutComponent,
|
|
204
|
-
ModelViewLayoutComponent,
|
|
205
|
-
FormLayoutComponent,
|
|
206
|
-
// Pages (common)
|
|
207
|
-
AuthCallbackComponent,
|
|
208
|
-
AuthRenewComponent,
|
|
209
203
|
LoggedOutComponent,
|
|
210
|
-
|
|
211
|
-
PageNotFoundComponent,
|
|
212
|
-
UnauthorizedComponent,
|
|
213
|
-
// Pipes
|
|
214
|
-
AddressPipe,
|
|
215
|
-
DurationFormatPipe,
|
|
204
|
+
ModelViewLayoutComponent,
|
|
216
205
|
NavLinksListComponent,
|
|
217
206
|
NotificationsIndicatorComponent,
|
|
218
|
-
|
|
219
|
-
|
|
207
|
+
PageNotFoundComponent,
|
|
208
|
+
PagerComponent,
|
|
209
|
+
ShellFooterComponent,
|
|
210
|
+
ShellHeaderComponent,
|
|
211
|
+
ShellLayoutComponent,
|
|
220
212
|
ShellSidebarComponent,
|
|
221
|
-
// Tab Group Component
|
|
222
|
-
LibTabComponent,
|
|
223
|
-
LibTabGroupComponent,
|
|
224
|
-
// Stepper Component
|
|
225
|
-
LibStepperComponent,
|
|
226
|
-
LibStepComponent,
|
|
227
|
-
LibStepLabelDirective,
|
|
228
|
-
LibStepInfoDirective,
|
|
229
213
|
ShellSidebarHeaderComponent,
|
|
230
214
|
ShellSidebarLayoutComponent,
|
|
231
215
|
ShellStackedLayoutComponent,
|
|
232
|
-
|
|
216
|
+
SidePaneComponent,
|
|
217
|
+
SideViewLayoutComponent,
|
|
218
|
+
SkeletonLoaderComponent,
|
|
219
|
+
ToasterComponent,
|
|
220
|
+
ToasterContainerComponent,
|
|
221
|
+
ToggleComponent,
|
|
222
|
+
UnauthorizedComponent,
|
|
223
|
+
UserProfileMenuComponent,
|
|
224
|
+
ViewLayoutComponent
|
|
233
225
|
],
|
|
234
226
|
imports: [
|
|
235
227
|
CommonModule,
|
|
@@ -242,6 +234,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.0", ngImpor
|
|
|
242
234
|
AuthCallbackComponent,
|
|
243
235
|
AuthRenewComponent,
|
|
244
236
|
AvatarInitialsComponent,
|
|
237
|
+
BreadcrumbComponent,
|
|
245
238
|
ClickOutsideDirective,
|
|
246
239
|
CollapsiblePanelComponent,
|
|
247
240
|
ComboboxComponent,
|
|
@@ -257,6 +250,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.0", ngImpor
|
|
|
257
250
|
LibStepperComponent,
|
|
258
251
|
LibTabComponent,
|
|
259
252
|
LibTabGroupComponent,
|
|
253
|
+
LibTabLabelDirective,
|
|
260
254
|
ListColumnComponent,
|
|
261
255
|
ListDetailsSectionComponent,
|
|
262
256
|
ListTileComponent,
|
|
@@ -280,4 +274,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.0", ngImpor
|
|
|
280
274
|
]
|
|
281
275
|
}]
|
|
282
276
|
}] });
|
|
283
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmctY29tcG9uZW50cy5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9uZy1jb21wb25lbnRzL3NyYy9saWIvbmctY29tcG9uZW50cy5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUF1QixRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDOUQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUUvQyxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDbkQsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sb0RBQW9ELENBQUM7QUFDM0YsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sOENBQThDLENBQUM7QUFDbEYsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sc0RBQXNELENBQUM7QUFDL0YsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sc0NBQXNDLENBQUM7QUFDN0UsT0FBTyxFQUFFLHlCQUF5QixFQUFFLE1BQU0sMERBQTBELENBQUM7QUFDckcsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sd0NBQXdDLENBQUM7QUFDM0UsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sOENBQThDLENBQUM7QUFDbkYsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sb0RBQW9ELENBQUM7QUFDM0YsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDbEUsT0FBTyxFQUFFLDZCQUE2QixFQUFFLE1BQU0sK0NBQStDLENBQUM7QUFDOUYsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLDJDQUEyQyxDQUFDO0FBQzNFLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLG1EQUFtRCxDQUFDO0FBQ3hGLE9BQU8sRUFBRSxnQkFBZ0IsRUFB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QUFjO3dCQUNkLG9CQUFvQjt3QkFDcEIsb0JBQW9CO3dCQUNwQixvQkFBb0I7d0JBQ3BCLGlCQUFpQjt3QkFDakIsdUJBQXVCO3dCQUN2Qix1QkFBdUI7d0JBQ3ZCLGdCQUFnQjt3QkFDaEIseUJBQXlCO3dCQUN6QixlQUFlO3dCQUNmLHFCQUFxQjt3QkFDckIsbUJBQW1CO3FCQUNwQjtpQkFDRiIsInNvdXJjZXNDb250ZW50IjpbIlxyXG5pbXBvcnQgeyBNb2R1bGVXaXRoUHJvdmlkZXJzLCBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xyXG5pbXBvcnQgeyBSb3V0ZXJNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xyXG5cclxuaW1wb3J0IHsgQWRkcmVzc1BpcGUgfSBmcm9tICcuL3BpcGVzL2FkZHJlc3MucGlwZSc7XHJcbmltcG9ydCB7IEF1dGhDYWxsYmFja0NvbXBvbmVudCB9IGZyb20gJy4vcGFnZXMvYXV0aC9hdXRoLWNhbGxiYWNrL2F1dGgtY2FsbGJhY2suY29tcG9uZW50JztcclxuaW1wb3J0IHsgQXV0aFJlbmV3Q29tcG9uZW50IH0gZnJvbSAnLi9wYWdlcy9hdXRoL2F1dGgtcmVuZXcvYXV0aC1yZW5ldy5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBBdmF0YXJJbml0aWFsc0NvbXBvbmVudCB9IGZyb20gJy4vY29udHJvbHMvYXZhdGFyLWluaXRpYWxzL2F2YXRhci1pbml0aWFscy5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBDbGlja091dHNpZGVEaXJlY3RpdmUgfSBmcm9tICcuL2RpcmVjdGl2ZXMvY2xpY2stb3V0c2lkZS5kaXJlY3RpdmUnO1xyXG5pbXBvcnQgeyBDb2xsYXBzaWJsZVBhbmVsQ29tcG9uZW50IH0gZnJvbSAnLi9jb250cm9scy9jb2xsYXBzaWJsZS1wYW5lbC9jb2xsYXBzaWJsZS1wYW5lbC5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBDb21ib2JveENvbXBvbmVudCB9IGZyb20gJy4vY29udHJvbHMvY29tYm9ib3gvY29tYm9ib3guY29tcG9uZW50JztcclxuaW1wb3J0IHsgRGF0ZXBpY2tlckNvbXBvbmVudCB9IGZyb20gJy4vY29udHJvbHMvZGF0ZS1waWNrZXIvZGF0ZS1waWNrZXIuY29tcG9uZW50JztcclxuaW1wb3J0IHsgRHJvcERvd25NZW51Q29tcG9uZW50IH0gZnJvbSAnLi9jb250cm9scy9kcm9wLWRvd24tbWVudS9kcm9wLWRvd24tbWVudS5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBEdXJhdGlvbkZvcm1hdFBpcGUgfSBmcm9tICcuL3BpcGVzL2R1cmF0aW9uLWZvcm1hdC5waXBlJztcclxuaW1wb3J0IHsgRHluYW1pY0NvbXBvbmVudEhvc3REaXJlY3RpdmUgfSBmcm9tICcuL2RpcmVjdGl2ZXMvZHluYW1pYy1jb21wb25lbnQtaG9zdC5kaXJlY3RpdmUnO1xyXG5pbXBvcnQgeyBFcnJvckNvbXBvbmVudCB9IGZyb20gJy4vcGFnZXMvaHR0cC1zdGF0dXMvZXJyb3IvZXJyb3IuY29tcG9uZW50JztcclxuaW1wb3J0IHsgRm9ybUxheW91dENvbXBvbmVudCB9IGZyb20gJy4vbGF5b3V0cy92aWV3cy9mb3JtLWxheW91dC9mb3JtLWxheW91dC5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBJbmRpY2VBdXRoTW9kdWxlIH0gZnJvbSAnQGluZGljZS9uZy1hdXRoJztcclxuaW1wb3J0IHsgS3BpVGlsZUNvbXBvbmVudCB9IGZyb20gJy4vY29udHJvbHMva3BpLXRpbGUva3BpLXRpbGUuY29tcG9uZW50JztcclxuaW1wb3J0IHsgTGFuZ3VhZ2VTZWxlY3Rpb25Db21wb25lbnQgfSBmcm9tICcuL2NvbnRyb2xzL2xhbmd1YWdlLXNlbGVjdGlvbi9sYW5ndWFnZS1zZWxlY3Rpb24uY29tcG9uZW50JztcclxuaW1wb3J0IHsgTGliU3RlcENvbXBvbmVudCB9IGZyb20gJy4vY29udHJvbHMvc3RlcHBlci9saWItc3RlcC5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBMaWJTdGVwSW5mb0RpcmVjdGl2ZSB9IGZyb20gJy4vY29udHJvbHMvc3RlcHBlci9saWItc3RlcC1pbmZvLmRpcmVjdGl2ZSc7XHJcbmltcG9ydCB7IExpYlN0ZXBMYWJlbERpcmVjdGl2ZSB9IGZyb20gJy4vY29udHJvbHMvc3RlcHBlci9saWItc3RlcC1sYWJlbC5kaXJlY3RpdmUnO1xyXG5pbXBvcnQgeyBMaWJTdGVwcGVyQ29tcG9uZW50IH0gZnJvbSAnLi9jb250cm9scy9zdGVwcGVyL2xpYi1zdGVwcGVyLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IExpYlRhYkNvbXBvbmVudCB9IGZyb20gJy4vY29udHJvbHMvdGFicy9saWItdGFiLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IExpYlRhYkdyb3VwQ29tcG9uZW50IH0gZnJvbSAnLi9jb250cm9scy90YWJzL2xpYi10YWItZ3JvdXAuY29tcG9uZW50JztcclxuaW1wb3J0IHsgTGlzdENvbHVtbkNvbXBvbmVudCB9IGZyb20gJy4vY29udHJvbHMvbGlzdC12aWV3L2xpc3QtY29sdW1uLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IExpc3REZXRhaWxzU2VjdGlvbkNvbXBvbmVudCB9IGZyb20gJy4vY29udHJvbHMvbGlzdC12aWV3L2xpc3QtZGV0YWlscy1zZWN0aW9uLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IExpc3RUaWxlQ29tcG9uZW50IH0gZnJvbSAnLi9jb250cm9scy9saXN0LXZpZXcvbGlzdC10aWxlLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IExpc3RWaWV3Q29tcG9uZW50IH0gZnJvbSAnLi9jb250cm9scy9saXN0LXZpZXcvbGlzdC12aWV3LmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IExpc3RWaWV3RW1wdHlTdGF0ZUNvbXBvbmVudCB9IGZyb20gJy4vY29udHJvbHMvbGlzdC12aWV3L2xpc3Qtdmlldy1lbXB0eS1zdGF0ZS5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBMb2dnZWRPdXRDb21wb25lbnQgfSBmcm9tICcuL3BhZ2VzL2F1dGgvbG9nZ2VkLW91dC9sb2dnZWQtb3V0LmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IE1vZGVsVmlld0xheW91dENvbXBvbmVudCB9IGZyb20gJy4vbGF5b3V0cy92aWV3cy9tb2RlbC12aWV3LWxheW91dC9tb2RlbC12aWV3LWxheW91dC5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBOYXZMaW5rc0xpc3RDb21wb25lbnQgfSBmcm9tICcuL2NvbnRyb2xzL25hdi1saW5rcy1saXN0L25hdi1saW5rcy1saXN0LmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IE5vdGlmaWNhdGlvbnNJbmRpY2F0b3JDb21wb25lbnQgfSBmcm9tICcuL2NvbnRyb2xzL25vdGlmaWNhdGlvbnMtaW5kaWNhdG9yL25vdGlmaWNhdGlvbnMtaW5kaWNhdG9yLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IFBhZ2VOb3RGb3VuZENvbXBvbmVudCB9IGZyb20gJy4vcGFnZXMvaHR0cC1zdGF0dXMvcGFnZS1ub3QtZm91bmQvcGFnZS1ub3QtZm91bmQuY29tcG9uZW50JztcclxuaW1wb3J0IHsgUGFnZXJDb21wb25lbnQgfSBmcm9tICcuL2NvbnRyb2xzL3BhZ2VyL3BhZ2VyLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IFNoZWxsRm9vdGVyQ29tcG9uZW50IH0gZnJvbSAnLi9sYXlvdXRzL3NoZWxsL3NoZWxsLWZvb3Rlci9zaGVsbC1mb290ZXIuY29tcG9uZW50JztcclxuaW1wb3J0IHsgU2hlbGxIZWFkZXJDb21wb25lbnQgfSBmcm9tICcuL2xheW91dHMvc2hlbGwvc2hlbGwtaGVhZGVyL3NoZWxsLWhlYWRlci5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBTaGVsbExheW91dENvbXBvbmVudCB9IGZyb20gJy4vbGF5b3V0cy9zaGVsbC9zaGVsbC1sYXlvdXQvc2hlbGwtbGF5b3V0LmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IFNoZWxsU2lkZWJhckNvbXBvbmVudCB9IGZyb20gJy4vbGF5b3V0cy9zaGVsbC9zaGVsbC1zaWRlYmFyL3NoZWxsLXNpZGViYXIuY29tcG9uZW50JztcclxuaW1wb3J0IHsgU2lkZVBhbmVDb21wb25lbnQgfSBmcm9tICcuL2NvbnRyb2xzL3NpZGUtcGFuZS9zaWRlLXBhbmUuY29tcG9uZW50JztcclxuaW1wb3J0IHsgU2lkZVZpZXdMYXlvdXRDb21wb25lbnQgfSBmcm9tICcuL2xheW91dHMvdmlld3Mvc2lkZS12aWV3LWxheW91dC9zaWRlLXZpZXctbGF5b3V0LmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IFNrZWxldG9uTG9hZGVyQ29tcG9uZW50IH0gZnJvbSAnLi9jb250cm9scy9za2VsZXRvbi1sb2FkZXIvc2tlbGV0b24tbG9hZGVyLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IFRvYXN0ZXJDb21wb25lbnQgfSBmcm9tICcuL2NvbnRyb2xzL3RvYXN0ZXIvdG9hc3Rlci5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBUb2FzdGVyQ29udGFpbmVyQ29tcG9uZW50IH0gZnJvbSAnLi9jb250cm9scy90b2FzdGVyL3RvYXN0ZXItY29udGFpbmVyLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IFRvYXN0ZXJTZXJ2aWNlIH0gZnJvbSAnLi9zZXJ2aWNlcy90b2FzdGVyLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBUb2dnbGVDb21wb25lbnQgfSBmcm9tICcuL2NvbnRyb2xzL3RvZ2dsZS90b2dnbGUuY29tcG9uZW50JztcclxuaW1wb3J0IHsgVW5hdXRob3JpemVkQ29tcG9uZW50IH0gZnJvbSAnLi9wYWdlcy9odHRwLXN0YXR1cy91bmF1dGhvcml6ZWQvdW5hdXRob3JpemVkLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IFVzZXJQcm9maWxlTWVudUNvbXBvbmVudCB9IGZyb20gJy4vY29udHJvbHMvdXNlci1wcm9maWxlLW1lbnUvdXNlci1wcm9maWxlLW1lbnUuY29tcG9uZW50JztcclxuaW1wb3J0IHsgVmlld0xheW91dENvbXBvbmVudCB9IGZyb20gJy4vbGF5b3V0cy92aWV3cy92aWV3LWxheW91dC92aWV3LWxheW91dC5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBTaGVsbFNpZGViYXJIZWFkZXJDb21wb25lbnQgfSBmcm9tICcuL2xheW91dHMvc2hlbGwvc2hlbGwtc2lkZWJhci1oZWFkZXIvc2hlbGwtc2lkZWJhci1oZWFkZXIuY29tcG9uZW50JztcclxuaW1wb3J0IHsgU2hlbGxTaWRlYmFyTGF5b3V0Q29tcG9uZW50IH0gZnJvbSAnLi9sYXlvdXRzL3NoZWxsL3NoZWxsLXNpZGViYXItbGF5b3V0L3NoZWxsLXNpZGViYXItbGF5b3V0LmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IFNoZWxsU3RhY2tlZExheW91dENvbXBvbmVudCB9IGZyb20gJy4vbGF5b3V0cy9zaGVsbC9zaGVsbC1zdGFja2VkLWxheW91dC9zaGVsbC1zdGFja2VkLWxheW91dC5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBBZHZhbmNlZFNlYXJjaENvbXBvbmVudCB9IGZyb20gJy4vY29udHJvbHMvYWR2YW5jZWQtc2VhcmNoL2FkdmFuY2VkLXNlYXJjaC5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBGb3Jtc01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuXHJcbkBOZ01vZHVsZSh7XHJcbiAgZGVjbGFyYXRpb25zOiBbXHJcbiAgICAvLyBEaXJlY3RpdmVzXHJcbiAgICBDbGlja091dHNpZGVEaXJlY3RpdmUsXHJcbiAgICBEeW5hbWljQ29tcG9uZW50SG9zdERpcmVjdGl2ZSxcclxuICAgIC8vIENvbnRyb2xzXHJcbiAgICBEcm9wRG93bk1lbnVDb21wb25lbnQsXHJcbiAgICBQYWdlckNvbXBvbmVudCxcclxuICAgIExpc3RWaWV3Q29tcG9uZW50LFxyXG4gICAgTGlzdENvbHVtbkNvbXBvbmVudCxcclxuICAgIExpc3RUaWxlQ29tcG9uZW50LFxyXG4gICAgTGlzdERldGFpbHNTZWN0aW9uQ29tcG9uZW50LFxyXG4gICAgTGlzdFZpZXdFbXB0eVN0YXRlQ29tcG9uZW50LFxyXG4gICAgU2tlbGV0b25Mb2FkZXJDb21wb25lbnQsXHJcbiAgICBDb2xsYXBzaWJsZVBhbmVsQ29tcG9uZW50LFxyXG4gICAgS3BpVGlsZUNvbXBvbmVudCxcclxuICAgIFNpZGVQYW5lQ29tcG9uZW50LFxyXG4gICAgRGF0ZXBpY2tlckNvbXBvbmVudCxcclxuICAgIEF2YXRhckluaXRpYWxzQ29tcG9uZW50LFxyXG4gICAgVG9nZ2xlQ29tcG9uZW50LFxyXG4gICAgQ29tYm9ib3hDb21wb25lbnQsXHJcbiAgICAvLyBUb2FzdGVyXHJcbiAgICBUb2FzdGVyQ29udGFpbmVyQ29tcG9uZW50LFxyXG4gICAgVG9hc3RlckNvbXBvbmVudCxcclxuICAgIC8vIFNoZWxsIExheW91dFxyXG4gICAgU2hlbGxMYXlvdXRDb21wb25lbnQsXHJcbiAgICBTaGVsbEhlYWRlckNvbXBvbmVudCxcclxuICAgIFNoZWxsRm9vdGVyQ29tcG9uZW50LFxyXG4gICAgLy8gVmlldyBMYXlvdXRzXHJcbiAgICBWaWV3TGF5b3V0Q29tcG9uZW50LFxyXG4gICAgU2lkZVZpZXdMYXlvdXRDb21wb25lbnQsXHJcbiAgICBNb2RlbFZpZXdMYXlvdXRDb21wb25lbnQsXHJcbiAgICBGb3JtTGF5b3V0Q29tcG9uZW50LFxyXG4gICAgLy8gUGFnZXMgKGNvbW1vbilcclxuICAgIEF1dGhDYWxsYmFja0NvbXBvbmVudCxcclxuICAgIEF1dGhSZW5ld0NvbXBvbmVudCxcclxuICAgIExvZ2dlZE91dENvbXBvbmVudCxcclxuICAgIEVycm9yQ29tcG9uZW50LFxyXG4gICAgUGFnZU5vdEZvdW5kQ29tcG9uZW50LFxyXG4gICAgVW5hdXRob3JpemVkQ29tcG9uZW50LFxyXG4gICAgLy8gUGlwZXNcclxuICAgIEFkZHJlc3NQaXBlLFxyXG4gICAgRHVyYXRpb25Gb3JtYXRQaXBlLFxyXG4gICAgTmF2TGlua3NMaXN0Q29tcG9uZW50LFxyXG4gICAgTm90aWZpY2F0aW9uc0luZGljYXRvckNvbXBvbmVudCxcclxuICAgIExhbmd1YWdlU2VsZWN0aW9uQ29tcG9uZW50LFxyXG4gICAgVXNlclByb2ZpbGVNZW51Q29tcG9uZW50LFxyXG4gICAgU2hlbGxTaWRlYmFyQ29tcG9uZW50LFxyXG4gICAgLy8gVGFiIEdyb3VwIENvbXBvbmVudFxyXG4gICAgTGliVGFiQ29tcG9uZW50LFxyXG4gICAgTGliVGFiR3JvdXBDb21wb25lbnQsXHJcbiAgICAvLyBTdGVwcGVyIENvbXBvbmVudFxyXG4gICAgTGliU3RlcHBlckNvbXBvbmVudCxcclxuICAgIExpYlN0ZXBDb21wb25lbnQsXHJcbiAgICBMaWJTdGVwTGFiZWxEaXJlY3RpdmUsXHJcbiAgICBMaWJTdGVwSW5mb0RpcmVjdGl2ZSxcclxuICAgIFNoZWxsU2lkZWJhckhlYWRlckNvbXBvbmVudCxcclxuICAgIFNoZWxsU2lkZWJhckxheW91dENvbXBvbmVudCxcclxuICAgIFNoZWxsU3RhY2tlZExheW91dENvbXBvbmVudCxcclxuICAgIEFkdmFuY2VkU2VhcmNoQ29tcG9uZW50XHJcbiAgXSxcclxuICBpbXBvcnRzOiBbXHJcbiAgICBDb21tb25Nb2R1bGUsXHJcbiAgICBSb3V0ZXJNb2R1bGUsXHJcbiAgICBJbmRpY2VBdXRoTW9kdWxlLFxyXG4gICAgRm9ybXNNb2R1bGVcclxuICBdLFxyXG4gIGV4cG9ydHM6IFtcclxuICAgIEFkZHJlc3NQaXBlLFxyXG4gICAgQXV0aENhbGxiYWNrQ29tcG9uZW50LFxyXG4gICAgQXV0aFJlbmV3Q29tcG9uZW50LFxyXG4gICAgQXZhdGFySW5pdGlhbHNDb21wb25lbnQsXHJcbiAgICBDbGlja091dHNpZGVEaXJlY3RpdmUsXHJcbiAgICBDb2xsYXBzaWJsZVBhbmVsQ29tcG9uZW50LFxyXG4gICAgQ29tYm9ib3hDb21wb25lbnQsXHJcbiAgICBEYXRlcGlja2VyQ29tcG9uZW50LFxyXG4gICAgRHJvcERvd25NZW51Q29tcG9uZW50LFxyXG4gICAgRHVyYXRpb25Gb3JtYXRQaXBlLFxyXG4gICAgRXJyb3JDb21wb25lbnQsXHJcbiAgICBGb3JtTGF5b3V0Q29tcG9uZW50LFxyXG4gICAgS3BpVGlsZUNvbXBvbmVudCxcclxuICAgIExpYlN0ZXBDb21wb25lbnQsXHJcbiAgICBMaWJTdGVwSW5mb0RpcmVjdGl2ZSxcclxuICAgIExpYlN0ZXBMYWJlbERpcmVjdGl2ZSxcclxuICAgIExpYlN0ZXBwZXJDb21wb25lbnQsXHJcbiAgICBMaWJUYWJDb21wb25lbnQsXHJcbiAgICBMaWJUYWJHcm91cENvbXBvbmVudCxcclxuICAgIExpc3RDb2x1bW5Db21wb25lbnQsXHJcbiAgICBMaXN0RGV0YWlsc1NlY3Rpb25Db21wb25lbnQsXHJcbiAgICBMaXN0VGlsZUNvbXBvbmVudCxcclxuICAgIExpc3RWaWV3Q29tcG9uZW50LFxyXG4gICAgTGlzdFZpZXdFbXB0eVN0YXRlQ29tcG9uZW50LFxyXG4gICAgTG9nZ2VkT3V0Q29tcG9uZW50LFxyXG4gICAgTW9kZWxWaWV3TGF5b3V0Q29tcG9uZW50LFxyXG4gICAgUGFnZU5vdEZvdW5kQ29tcG9uZW50LFxyXG4gICAgUGFnZXJDb21wb25lbnQsXHJcbiAgICBTaGVsbEZvb3RlckNvbXBvbmVudCxcclxuICAgIFNoZWxsSGVhZGVyQ29tcG9uZW50LFxyXG4gICAgU2hlbGxMYXlvdXRDb21wb25lbnQsXHJcbiAgICBTaWRlUGFuZUNvbXBvbmVudCxcclxuICAgIFNpZGVWaWV3TGF5b3V0Q29tcG9uZW50LFxyXG4gICAgU2tlbGV0b25Mb2FkZXJDb21wb25lbnQsXHJcbiAgICBUb2FzdGVyQ29tcG9uZW50LFxyXG4gICAgVG9hc3RlckNvbnRhaW5lckNvbXBvbmVudCxcclxuICAgIFRvZ2dsZUNvbXBvbmVudCxcclxuICAgIFVuYXV0aG9yaXplZENvbXBvbmVudCxcclxuICAgIFZpZXdMYXlvdXRDb21wb25lbnRcclxuICBdXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBJbmRpY2VDb21wb25lbnRzTW9kdWxlIHtcclxuICAvLyB0c2xpbnQ6ZGlzYWJsZS1uZXh0LWxpbmU6dHlwZWRlZlxyXG4gIHN0YXRpYyBmb3JSb290KCk6IE1vZHVsZVdpdGhQcm92aWRlcnM8SW5kaWNlQ29tcG9uZW50c01vZHVsZT4ge1xyXG4gICAgcmV0dXJuIHtcclxuICAgICAgbmdNb2R1bGU6IEluZGljZUNvbXBvbmVudHNNb2R1bGUsXHJcbiAgICAgIHByb3ZpZGVyczogW1RvYXN0ZXJTZXJ2aWNlXVxyXG4gICAgfTtcclxuICB9XHJcbn1cclxuIl19
|
|
277
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmctY29tcG9uZW50cy5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9uZy1jb21wb25lbnRzL3NyYy9saWIvbmctY29tcG9uZW50cy5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUM3QyxPQUFPLEVBQXVCLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUM5RCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFFL0MsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ25ELE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLHNEQUFzRCxDQUFDO0FBQy9GLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLG9EQUFvRCxDQUFDO0FBQzNGLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLDhDQUE4QyxDQUFDO0FBQ2xGLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLHNEQUFzRCxDQUFDO0FBQy9GLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLDRDQUE0QyxDQUFDO0FBQ2pGLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBQ2xFLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLHNDQUFzQyxDQUFDO0FBQzdFLE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxNQUFNLDBEQUEwRCxDQUFDO0FBQ3JHLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHdDQUF3QyxDQUFDO0FBQzNFLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLDhDQUE4QyxDQUFDO0FBQ25GLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLG9EQUFvRCxDQUFDO0FBQzNGLE9BQU8sRUFBRSxrQkFBa0IsRUFB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d0JBQ2xCLHdCQUF3Qjt3QkFDeEIscUJBQXFCO3dCQUNyQixjQUFjO3dCQUNkLG9CQUFvQjt3QkFDcEIsb0JBQW9CO3dCQUNwQixvQkFBb0I7d0JBQ3BCLGlCQUFpQjt3QkFDakIsdUJBQXVCO3dCQUN2Qix1QkFBdUI7d0JBQ3ZCLGdCQUFnQjt3QkFDaEIseUJBQXlCO3dCQUN6QixlQUFlO3dCQUNmLHFCQUFxQjt3QkFDckIsbUJBQW1CO3FCQUNwQjtpQkFDRiIsInNvdXJjZXNDb250ZW50IjpbIlxyXG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xyXG5pbXBvcnQgeyBGb3Jtc01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuaW1wb3J0IHsgTW9kdWxlV2l0aFByb3ZpZGVycywgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgUm91dGVyTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcclxuXHJcbmltcG9ydCB7IEFkZHJlc3NQaXBlIH0gZnJvbSAnLi9waXBlcy9hZGRyZXNzLnBpcGUnO1xyXG5pbXBvcnQgeyBBZHZhbmNlZFNlYXJjaENvbXBvbmVudCB9IGZyb20gJy4vY29udHJvbHMvYWR2YW5jZWQtc2VhcmNoL2FkdmFuY2VkLXNlYXJjaC5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBBdXRoQ2FsbGJhY2tDb21wb25lbnQgfSBmcm9tICcuL3BhZ2VzL2F1dGgvYXV0aC1jYWxsYmFjay9hdXRoLWNhbGxiYWNrLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IEF1dGhSZW5ld0NvbXBvbmVudCB9IGZyb20gJy4vcGFnZXMvYXV0aC9hdXRoLXJlbmV3L2F1dGgtcmVuZXcuY29tcG9uZW50JztcclxuaW1wb3J0IHsgQXZhdGFySW5pdGlhbHNDb21wb25lbnQgfSBmcm9tICcuL2NvbnRyb2xzL2F2YXRhci1pbml0aWFscy9hdmF0YXItaW5pdGlhbHMuY29tcG9uZW50JztcclxuaW1wb3J0IHsgQnJlYWRjcnVtYkNvbXBvbmVudCB9IGZyb20gJy4vY29udHJvbHMvYnJlYWRjcnVtYi9icmVhZGNydW1iLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IEJyZWFkY3J1bWJTZXJ2aWNlIH0gZnJvbSAnLi9zZXJ2aWNlcy9icmVhZGNydW1iLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBDbGlja091dHNpZGVEaXJlY3RpdmUgfSBmcm9tICcuL2RpcmVjdGl2ZXMvY2xpY2stb3V0c2lkZS5kaXJlY3RpdmUnO1xyXG5pbXBvcnQgeyBDb2xsYXBzaWJsZVBhbmVsQ29tcG9uZW50IH0gZnJvbSAnLi9jb250cm9scy9jb2xsYXBzaWJsZS1wYW5lbC9jb2xsYXBzaWJsZS1wYW5lbC5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBDb21ib2JveENvbXBvbmVudCB9IGZyb20gJy4vY29udHJvbHMvY29tYm9ib3gvY29tYm9ib3guY29tcG9uZW50JztcclxuaW1wb3J0IHsgRGF0ZXBpY2tlckNvbXBvbmVudCB9IGZyb20gJy4vY29udHJvbHMvZGF0ZS1waWNrZXIvZGF0ZS1waWNrZXIuY29tcG9uZW50JztcclxuaW1wb3J0IHsgRHJvcERvd25NZW51Q29tcG9uZW50IH0gZnJvbSAnLi9jb250cm9scy9kcm9wLWRvd24tbWVudS9kcm9wLWRvd24tbWVudS5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBEdXJhdGlvbkZvcm1hdFBpcGUgfSBmcm9tICcuL3BpcGVzL2R1cmF0aW9uLWZvcm1hdC5waXBlJztcclxuaW1wb3J0IHsgRHluYW1pY0NvbXBvbmVudEhvc3REaXJlY3RpdmUgfSBmcm9tICcuL2RpcmVjdGl2ZXMvZHluYW1pYy1jb21wb25lbnQtaG9zdC5kaXJlY3RpdmUnO1xyXG5pbXBvcnQgeyBFcnJvckNvbXBvbmVudCB9IGZyb20gJy4vcGFnZXMvaHR0cC1zdGF0dXMvZXJyb3IvZXJyb3IuY29tcG9uZW50JztcclxuaW1wb3J0IHsgRm9ybUxheW91dENvbXBvbmVudCB9IGZyb20gJy4vbGF5b3V0cy92aWV3cy9mb3JtLWxheW91dC9mb3JtLWxheW91dC5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBJbmRpY2VBdXRoTW9kdWxlIH0gZnJvbSAnQGluZGljZS9uZy1hdXRoJztcclxuaW1wb3J0IHsgS3BpVGlsZUNvbXBvbmVudCB9IGZyb20gJy4vY29udHJvbHMva3BpLXRpbGUva3BpLXRpbGUuY29tcG9uZW50JztcclxuaW1wb3J0IHsgTGFuZ3VhZ2VTZWxlY3Rpb25Db21wb25lbnQgfSBmcm9tICcuL2NvbnRyb2xzL2xhbmd1YWdlLXNlbGVjdGlvbi9sYW5ndWFnZS1zZWxlY3Rpb24uY29tcG9uZW50JztcclxuaW1wb3J0IHsgTGliU3RlcENvbXBvbmVudCB9IGZyb20gJy4vY29udHJvbHMvc3RlcHBlci9saWItc3RlcC5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBMaWJTdGVwSW5mb0RpcmVjdGl2ZSB9IGZyb20gJy4vY29udHJvbHMvc3RlcHBlci9saWItc3RlcC1pbmZvLmRpcmVjdGl2ZSc7XHJcbmltcG9ydCB7IExpYlN0ZXBMYWJlbERpcmVjdGl2ZSB9IGZyb20gJy4vY29udHJvbHMvc3RlcHBlci9saWItc3RlcC1sYWJlbC5kaXJlY3RpdmUnO1xyXG5pbXBvcnQgeyBMaWJTdGVwcGVyQ29tcG9uZW50IH0gZnJvbSAnLi9jb250cm9scy9zdGVwcGVyL2xpYi1zdGVwcGVyLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IExpYlRhYkNvbXBvbmVudCB9IGZyb20gJy4vY29udHJvbHMvdGFicy9saWItdGFiLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IExpYlRhYkdyb3VwQ29tcG9uZW50IH0gZnJvbSAnLi9jb250cm9scy90YWJzL2xpYi10YWItZ3JvdXAuY29tcG9uZW50JztcclxuaW1wb3J0IHsgTGlzdENvbHVtbkNvbXBvbmVudCB9IGZyb20gJy4vY29udHJvbHMvbGlzdC12aWV3L2xpc3QtY29sdW1uLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IExpc3REZXRhaWxzU2VjdGlvbkNvbXBvbmVudCB9IGZyb20gJy4vY29udHJvbHMvbGlzdC12aWV3L2xpc3QtZGV0YWlscy1zZWN0aW9uLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IExpc3RUaWxlQ29tcG9uZW50IH0gZnJvbSAnLi9jb250cm9scy9saXN0LXZpZXcvbGlzdC10aWxlLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IExpc3RWaWV3Q29tcG9uZW50IH0gZnJvbSAnLi9jb250cm9scy9saXN0LXZpZXcvbGlzdC12aWV3LmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IExpc3RWaWV3RW1wdHlTdGF0ZUNvbXBvbmVudCB9IGZyb20gJy4vY29udHJvbHMvbGlzdC12aWV3L2xpc3Qtdmlldy1lbXB0eS1zdGF0ZS5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBMb2dnZWRPdXRDb21wb25lbnQgfSBmcm9tICcuL3BhZ2VzL2F1dGgvbG9nZ2VkLW91dC9sb2dnZWQtb3V0LmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IE1vZGVsVmlld0xheW91dENvbXBvbmVudCB9IGZyb20gJy4vbGF5b3V0cy92aWV3cy9tb2RlbC12aWV3LWxheW91dC9tb2RlbC12aWV3LWxheW91dC5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBOYXZMaW5rc0xpc3RDb21wb25lbnQgfSBmcm9tICcuL2NvbnRyb2xzL25hdi1saW5rcy1saXN0L25hdi1saW5rcy1saXN0LmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IE5vdGlmaWNhdGlvbnNJbmRpY2F0b3JDb21wb25lbnQgfSBmcm9tICcuL2NvbnRyb2xzL25vdGlmaWNhdGlvbnMtaW5kaWNhdG9yL25vdGlmaWNhdGlvbnMtaW5kaWNhdG9yLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IFBhZ2VOb3RGb3VuZENvbXBvbmVudCB9IGZyb20gJy4vcGFnZXMvaHR0cC1zdGF0dXMvcGFnZS1ub3QtZm91bmQvcGFnZS1ub3QtZm91bmQuY29tcG9uZW50JztcclxuaW1wb3J0IHsgUGFnZXJDb21wb25lbnQgfSBmcm9tICcuL2NvbnRyb2xzL3BhZ2VyL3BhZ2VyLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IFNoZWxsRm9vdGVyQ29tcG9uZW50IH0gZnJvbSAnLi9sYXlvdXRzL3NoZWxsL3NoZWxsLWZvb3Rlci9zaGVsbC1mb290ZXIuY29tcG9uZW50JztcclxuaW1wb3J0IHsgU2hlbGxIZWFkZXJDb21wb25lbnQgfSBmcm9tICcuL2xheW91dHMvc2hlbGwvc2hlbGwtaGVhZGVyL3NoZWxsLWhlYWRlci5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBTaGVsbExheW91dENvbXBvbmVudCB9IGZyb20gJy4vbGF5b3V0cy9zaGVsbC9zaGVsbC1sYXlvdXQvc2hlbGwtbGF5b3V0LmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IFNoZWxsU2lkZWJhckNvbXBvbmVudCB9IGZyb20gJy4vbGF5b3V0cy9zaGVsbC9zaGVsbC1zaWRlYmFyL3NoZWxsLXNpZGViYXIuY29tcG9uZW50JztcclxuaW1wb3J0IHsgU2hlbGxTaWRlYmFySGVhZGVyQ29tcG9uZW50IH0gZnJvbSAnLi9sYXlvdXRzL3NoZWxsL3NoZWxsLXNpZGViYXItaGVhZGVyL3NoZWxsLXNpZGViYXItaGVhZGVyLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IFNoZWxsU2lkZWJhckxheW91dENvbXBvbmVudCB9IGZyb20gJy4vbGF5b3V0cy9zaGVsbC9zaGVsbC1zaWRlYmFyLWxheW91dC9zaGVsbC1zaWRlYmFyLWxheW91dC5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBTaGVsbFN0YWNrZWRMYXlvdXRDb21wb25lbnQgfSBmcm9tICcuL2xheW91dHMvc2hlbGwvc2hlbGwtc3RhY2tlZC1sYXlvdXQvc2hlbGwtc3RhY2tlZC1sYXlvdXQuY29tcG9uZW50JztcclxuaW1wb3J0IHsgU2lkZVBhbmVDb21wb25lbnQgfSBmcm9tICcuL2NvbnRyb2xzL3NpZGUtcGFuZS9zaWRlLXBhbmUuY29tcG9uZW50JztcclxuaW1wb3J0IHsgU2lkZVZpZXdMYXlvdXRDb21wb25lbnQgfSBmcm9tICcuL2xheW91dHMvdmlld3Mvc2lkZS12aWV3LWxheW91dC9zaWRlLXZpZXctbGF5b3V0LmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IFNrZWxldG9uTG9hZGVyQ29tcG9uZW50IH0gZnJvbSAnLi9jb250cm9scy9za2VsZXRvbi1sb2FkZXIvc2tlbGV0b24tbG9hZGVyLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IFRvYXN0ZXJDb21wb25lbnQgfSBmcm9tICcuL2NvbnRyb2xzL3RvYXN0ZXIvdG9hc3Rlci5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBUb2FzdGVyQ29udGFpbmVyQ29tcG9uZW50IH0gZnJvbSAnLi9jb250cm9scy90b2FzdGVyL3RvYXN0ZXItY29udGFpbmVyLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IFRvYXN0ZXJTZXJ2aWNlIH0gZnJvbSAnLi9zZXJ2aWNlcy90b2FzdGVyLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBUb2dnbGVDb21wb25lbnQgfSBmcm9tICcuL2NvbnRyb2xzL3RvZ2dsZS90b2dnbGUuY29tcG9uZW50JztcclxuaW1wb3J0IHsgVW5hdXRob3JpemVkQ29tcG9uZW50IH0gZnJvbSAnLi9wYWdlcy9odHRwLXN0YXR1cy91bmF1dGhvcml6ZWQvdW5hdXRob3JpemVkLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IFVzZXJQcm9maWxlTWVudUNvbXBvbmVudCB9IGZyb20gJy4vY29udHJvbHMvdXNlci1wcm9maWxlLW1lbnUvdXNlci1wcm9maWxlLW1lbnUuY29tcG9uZW50JztcclxuaW1wb3J0IHsgVmlld0xheW91dENvbXBvbmVudCB9IGZyb20gJy4vbGF5b3V0cy92aWV3cy92aWV3LWxheW91dC92aWV3LWxheW91dC5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBMaWJUYWJMYWJlbERpcmVjdGl2ZSB9IGZyb20gJy4uL3B1YmxpYy1hcGknO1xyXG5cclxuQE5nTW9kdWxlKHtcclxuICBkZWNsYXJhdGlvbnM6IFtcclxuICAgIEFkZHJlc3NQaXBlLFxyXG4gICAgQWR2YW5jZWRTZWFyY2hDb21wb25lbnQsXHJcbiAgICBBdXRoQ2FsbGJhY2tDb21wb25lbnQsXHJcbiAgICBBdXRoUmVuZXdDb21wb25lbnQsXHJcbiAgICBBdmF0YXJJbml0aWFsc0NvbXBvbmVudCxcclxuICAgIEJyZWFkY3J1bWJDb21wb25lbnQsXHJcbiAgICBDbGlja091dHNpZGVEaXJlY3RpdmUsXHJcbiAgICBDb2xsYXBzaWJsZVBhbmVsQ29tcG9uZW50LFxyXG4gICAgQ29tYm9ib3hDb21wb25lbnQsXHJcbiAgICBEYXRlcGlja2VyQ29tcG9uZW50LFxyXG4gICAgRHJvcERvd25NZW51Q29tcG9uZW50LFxyXG4gICAgRHVyYXRpb25Gb3JtYXRQaXBlLFxyXG4gICAgRHluYW1pY0NvbXBvbmVudEhvc3REaXJlY3RpdmUsXHJcbiAgICBFcnJvckNvbXBvbmVudCxcclxuICAgIEZvcm1MYXlvdXRDb21wb25lbnQsXHJcbiAgICBLcGlUaWxlQ29tcG9uZW50LFxyXG4gICAgTGFuZ3VhZ2VTZWxlY3Rpb25Db21wb25lbnQsXHJcbiAgICBMaWJTdGVwQ29tcG9uZW50LFxyXG4gICAgTGliU3RlcEluZm9EaXJlY3RpdmUsXHJcbiAgICBMaWJTdGVwTGFiZWxEaXJlY3RpdmUsXHJcbiAgICBMaWJTdGVwcGVyQ29tcG9uZW50LFxyXG4gICAgTGliVGFiQ29tcG9uZW50LFxyXG4gICAgTGliVGFiR3JvdXBDb21wb25lbnQsXHJcbiAgICBMaWJUYWJMYWJlbERpcmVjdGl2ZSxcclxuICAgIExpc3RDb2x1bW5Db21wb25lbnQsXHJcbiAgICBMaXN0RGV0YWlsc1NlY3Rpb25Db21wb25lbnQsXHJcbiAgICBMaXN0VGlsZUNvbXBvbmVudCxcclxuICAgIExpc3RWaWV3Q29tcG9uZW50LFxyXG4gICAgTGlzdFZpZXdFbXB0eVN0YXRlQ29tcG9uZW50LFxyXG4gICAgTG9nZ2VkT3V0Q29tcG9uZW50LFxyXG4gICAgTW9kZWxWaWV3TGF5b3V0Q29tcG9uZW50LFxyXG4gICAgTmF2TGlua3NMaXN0Q29tcG9uZW50LFxyXG4gICAgTm90aWZpY2F0aW9uc0luZGljYXRvckNvbXBvbmVudCxcclxuICAgIFBhZ2VOb3RGb3VuZENvbXBvbmVudCxcclxuICAgIFBhZ2VyQ29tcG9uZW50LFxyXG4gICAgU2hlbGxGb290ZXJDb21wb25lbnQsXHJcbiAgICBTaGVsbEhlYWRlckNvbXBvbmVudCxcclxuICAgIFNoZWxsTGF5b3V0Q29tcG9uZW50LFxyXG4gICAgU2hlbGxTaWRlYmFyQ29tcG9uZW50LFxyXG4gICAgU2hlbGxTaWRlYmFySGVhZGVyQ29tcG9uZW50LFxyXG4gICAgU2hlbGxTaWRlYmFyTGF5b3V0Q29tcG9uZW50LFxyXG4gICAgU2hlbGxTdGFja2VkTGF5b3V0Q29tcG9uZW50LFxyXG4gICAgU2lkZVBhbmVDb21wb25lbnQsXHJcbiAgICBTaWRlVmlld0xheW91dENvbXBvbmVudCxcclxuICAgIFNrZWxldG9uTG9hZGVyQ29tcG9uZW50LFxyXG4gICAgVG9hc3RlckNvbXBvbmVudCxcclxuICAgIFRvYXN0ZXJDb250YWluZXJDb21wb25lbnQsXHJcbiAgICBUb2dnbGVDb21wb25lbnQsXHJcbiAgICBVbmF1dGhvcml6ZWRDb21wb25lbnQsXHJcbiAgICBVc2VyUHJvZmlsZU1lbnVDb21wb25lbnQsXHJcbiAgICBWaWV3TGF5b3V0Q29tcG9uZW50XHJcbiAgXSxcclxuICBpbXBvcnRzOiBbXHJcbiAgICBDb21tb25Nb2R1bGUsXHJcbiAgICBSb3V0ZXJNb2R1bGUsXHJcbiAgICBJbmRpY2VBdXRoTW9kdWxlLFxyXG4gICAgRm9ybXNNb2R1bGVcclxuICBdLFxyXG4gIGV4cG9ydHM6IFtcclxuICAgIEFkZHJlc3NQaXBlLFxyXG4gICAgQXV0aENhbGxiYWNrQ29tcG9uZW50LFxyXG4gICAgQXV0aFJlbmV3Q29tcG9uZW50LFxyXG4gICAgQXZhdGFySW5pdGlhbHNDb21wb25lbnQsXHJcbiAgICBCcmVhZGNydW1iQ29tcG9uZW50LFxyXG4gICAgQ2xpY2tPdXRzaWRlRGlyZWN0aXZlLFxyXG4gICAgQ29sbGFwc2libGVQYW5lbENvbXBvbmVudCxcclxuICAgIENvbWJvYm94Q29tcG9uZW50LFxyXG4gICAgRGF0ZXBpY2tlckNvbXBvbmVudCxcclxuICAgIERyb3BEb3duTWVudUNvbXBvbmVudCxcclxuICAgIER1cmF0aW9uRm9ybWF0UGlwZSxcclxuICAgIEVycm9yQ29tcG9uZW50LFxyXG4gICAgRm9ybUxheW91dENvbXBvbmVudCxcclxuICAgIEtwaVRpbGVDb21wb25lbnQsXHJcbiAgICBMaWJTdGVwQ29tcG9uZW50LFxyXG4gICAgTGliU3RlcEluZm9EaXJlY3RpdmUsXHJcbiAgICBMaWJTdGVwTGFiZWxEaXJlY3RpdmUsXHJcbiAgICBMaWJTdGVwcGVyQ29tcG9uZW50LFxyXG4gICAgTGliVGFiQ29tcG9uZW50LFxyXG4gICAgTGliVGFiR3JvdXBDb21wb25lbnQsXHJcbiAgICBMaWJUYWJMYWJlbERpcmVjdGl2ZSxcclxuICAgIExpc3RDb2x1bW5Db21wb25lbnQsXHJcbiAgICBMaXN0RGV0YWlsc1NlY3Rpb25Db21wb25lbnQsXHJcbiAgICBMaXN0VGlsZUNvbXBvbmVudCxcclxuICAgIExpc3RWaWV3Q29tcG9uZW50LFxyXG4gICAgTGlzdFZpZXdFbXB0eVN0YXRlQ29tcG9uZW50LFxyXG4gICAgTG9nZ2VkT3V0Q29tcG9uZW50LFxyXG4gICAgTW9kZWxWaWV3TGF5b3V0Q29tcG9uZW50LFxyXG4gICAgUGFnZU5vdEZvdW5kQ29tcG9uZW50LFxyXG4gICAgUGFnZXJDb21wb25lbnQsXHJcbiAgICBTaGVsbEZvb3RlckNvbXBvbmVudCxcclxuICAgIFNoZWxsSGVhZGVyQ29tcG9uZW50LFxyXG4gICAgU2hlbGxMYXlvdXRDb21wb25lbnQsXHJcbiAgICBTaWRlUGFuZUNvbXBvbmVudCxcclxuICAgIFNpZGVWaWV3TGF5b3V0Q29tcG9uZW50LFxyXG4gICAgU2tlbGV0b25Mb2FkZXJDb21wb25lbnQsXHJcbiAgICBUb2FzdGVyQ29tcG9uZW50LFxyXG4gICAgVG9hc3RlckNvbnRhaW5lckNvbXBvbmVudCxcclxuICAgIFRvZ2dsZUNvbXBvbmVudCxcclxuICAgIFVuYXV0aG9yaXplZENvbXBvbmVudCxcclxuICAgIFZpZXdMYXlvdXRDb21wb25lbnRcclxuICBdXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBJbmRpY2VDb21wb25lbnRzTW9kdWxlIHtcclxuICBzdGF0aWMgZm9yUm9vdCgpOiBNb2R1bGVXaXRoUHJvdmlkZXJzPEluZGljZUNvbXBvbmVudHNNb2R1bGU+IHtcclxuICAgIHJldHVybiB7XHJcbiAgICAgIG5nTW9kdWxlOiBJbmRpY2VDb21wb25lbnRzTW9kdWxlLFxyXG4gICAgICBwcm92aWRlcnM6IFtcclxuICAgICAgICBCcmVhZGNydW1iU2VydmljZSxcclxuICAgICAgICBUb2FzdGVyU2VydmljZVxyXG4gICAgICBdXHJcbiAgICB9O1xyXG4gIH1cclxufVxyXG4iXX0=
|
|
@@ -0,0 +1,174 @@
|
|
|
1
|
+
import { Inject, Injectable, Optional } from '@angular/core';
|
|
2
|
+
import { NavigationEnd } from '@angular/router';
|
|
3
|
+
import { Subject } from 'rxjs';
|
|
4
|
+
import { distinctUntilChanged, filter } from 'rxjs/operators';
|
|
5
|
+
import { BreadcrumbItem } from '../controls/breadcrumb/breadcrumb-item';
|
|
6
|
+
import { SHELL_CONFIG } from '../tokens';
|
|
7
|
+
import * as i0 from "@angular/core";
|
|
8
|
+
import * as i1 from "@angular/router";
|
|
9
|
+
import * as i2 from "./utilities.service";
|
|
10
|
+
export class BreadcrumbService {
|
|
11
|
+
constructor(_router, _utilities, _shellConfig) {
|
|
12
|
+
this._router = _router;
|
|
13
|
+
this._utilities = _utilities;
|
|
14
|
+
this._shellConfig = _shellConfig;
|
|
15
|
+
this._breadcrumb$ = new Subject();
|
|
16
|
+
this.breadcrumb = this._breadcrumb$.asObservable();
|
|
17
|
+
if (_shellConfig?.breadcrumb) {
|
|
18
|
+
this._defaultHome = this._getDefaultHomeItem();
|
|
19
|
+
this._router
|
|
20
|
+
.events
|
|
21
|
+
.pipe(filter(event => event instanceof NavigationEnd), distinctUntilChanged())
|
|
22
|
+
.subscribe(_ => {
|
|
23
|
+
const breadcrumb = [...this._buildBreadcrumb()];
|
|
24
|
+
this._breadcrumb$.next(breadcrumb);
|
|
25
|
+
});
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
_getDefaultHomeItem() {
|
|
29
|
+
const routerConfig = this._router.config;
|
|
30
|
+
const declaredHomeRoutes = routerConfig.filter((route) => route.data?.breadcrumb?.isHome === true);
|
|
31
|
+
if (declaredHomeRoutes.length > 1) {
|
|
32
|
+
throw new Error('You can declare only one route as home.');
|
|
33
|
+
}
|
|
34
|
+
let homeRoute;
|
|
35
|
+
if (declaredHomeRoutes.length === 1) {
|
|
36
|
+
homeRoute = declaredHomeRoutes[0];
|
|
37
|
+
}
|
|
38
|
+
else {
|
|
39
|
+
homeRoute = routerConfig.find((route) => route.path === '');
|
|
40
|
+
if (!homeRoute) {
|
|
41
|
+
return undefined;
|
|
42
|
+
}
|
|
43
|
+
const redirectionUrl = homeRoute.redirectTo;
|
|
44
|
+
if (!homeRoute?.data?.breadcrumb?.title && redirectionUrl) {
|
|
45
|
+
homeRoute = routerConfig.find((route) => route.path === redirectionUrl);
|
|
46
|
+
if (!homeRoute) {
|
|
47
|
+
return undefined;
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
return new BreadcrumbItem(this._getRouteTitle(homeRoute), homeRoute.path || '');
|
|
52
|
+
}
|
|
53
|
+
_getRouteTitle(route) {
|
|
54
|
+
return route?.data?.breadcrumb?.title || route.component?.name.replace('Component', '');
|
|
55
|
+
}
|
|
56
|
+
_buildBreadcrumb() {
|
|
57
|
+
const breadcrumb = [];
|
|
58
|
+
if (this._defaultHome) {
|
|
59
|
+
breadcrumb.push(this._defaultHome);
|
|
60
|
+
}
|
|
61
|
+
const url = this._router.url;
|
|
62
|
+
const path = this._utilities.getPathFromUrl(url) || '';
|
|
63
|
+
const activeRoute = this._findRouteFromUrl(path);
|
|
64
|
+
const parentRoutes = this._findParentRoutes(activeRoute);
|
|
65
|
+
breadcrumb.push(...parentRoutes);
|
|
66
|
+
if (activeRoute && activeRoute?.path !== this._defaultHome?.url) {
|
|
67
|
+
const routeData = this._getBreadcrumbRouteData(activeRoute);
|
|
68
|
+
breadcrumb.push(new BreadcrumbItem(this._getRouteTitle(activeRoute), (routeData._fullPath || activeRoute.path || '')));
|
|
69
|
+
}
|
|
70
|
+
return breadcrumb.map((route) => {
|
|
71
|
+
const routeSegments = route.url?.split('/') || [];
|
|
72
|
+
routeSegments.forEach((segment, index) => {
|
|
73
|
+
if (segment.startsWith(':')) {
|
|
74
|
+
route.url = route.url?.replace(segment, url.split('/')[index + 1]);
|
|
75
|
+
}
|
|
76
|
+
});
|
|
77
|
+
return route;
|
|
78
|
+
});
|
|
79
|
+
}
|
|
80
|
+
_findRouteFromUrl(url) {
|
|
81
|
+
const urlSegments = url.split('/').filter((segment) => segment !== '');
|
|
82
|
+
const routerConfig = this._router.config;
|
|
83
|
+
const flattenedRouterConfig = this._flattenRoutes(routerConfig);
|
|
84
|
+
const filteredRouterConfig = flattenedRouterConfig.filter((route) => {
|
|
85
|
+
const routeData = this._getBreadcrumbRouteData(route);
|
|
86
|
+
return (routeData._fullPath || route.path)?.split('/').length === urlSegments.length;
|
|
87
|
+
});
|
|
88
|
+
const route = filteredRouterConfig.find((route) => {
|
|
89
|
+
const routeData = this._getBreadcrumbRouteData(route);
|
|
90
|
+
const routeSegments = (routeData._fullPath || route.path)?.split('/') || [];
|
|
91
|
+
let segmentsMatched = false;
|
|
92
|
+
for (let i = 0; i < routeSegments.length; i++) {
|
|
93
|
+
const currentSegment = routeSegments[i];
|
|
94
|
+
const isDynamicSegment = currentSegment.startsWith(':');
|
|
95
|
+
if (!isDynamicSegment) {
|
|
96
|
+
segmentsMatched = currentSegment === urlSegments[i];
|
|
97
|
+
}
|
|
98
|
+
}
|
|
99
|
+
return segmentsMatched ? route : undefined;
|
|
100
|
+
});
|
|
101
|
+
return route;
|
|
102
|
+
}
|
|
103
|
+
_findParentRoutes(activeRoute, items = []) {
|
|
104
|
+
if (!activeRoute) {
|
|
105
|
+
return [];
|
|
106
|
+
}
|
|
107
|
+
const routeData = this._getBreadcrumbRouteData(activeRoute);
|
|
108
|
+
let urlSegments = (routeData._fullPath || activeRoute.path)?.split('/').filter((segment) => segment !== '') || [];
|
|
109
|
+
if (urlSegments?.length <= 1) {
|
|
110
|
+
return [...items];
|
|
111
|
+
}
|
|
112
|
+
const previousUrl = urlSegments.slice(0, -1).join('/');
|
|
113
|
+
const route = this._findRouteFromUrl(previousUrl);
|
|
114
|
+
if (route) {
|
|
115
|
+
const routeData = this._getBreadcrumbRouteData(route);
|
|
116
|
+
if (routeData._level > 0 || (!route.children || route.children.length === 0)) {
|
|
117
|
+
items.push(new BreadcrumbItem(this._getRouteTitle(route), routeData._fullPath || route.path));
|
|
118
|
+
this._findParentRoutes(route, [...items]);
|
|
119
|
+
}
|
|
120
|
+
}
|
|
121
|
+
return [...items];
|
|
122
|
+
}
|
|
123
|
+
_flattenRoutes(routes, level) {
|
|
124
|
+
let children = [];
|
|
125
|
+
level = level || 0;
|
|
126
|
+
return routes.map((route) => {
|
|
127
|
+
const routeData = this._getBreadcrumbRouteData(route);
|
|
128
|
+
routeData._level = level;
|
|
129
|
+
if (route.children && route.children.length) {
|
|
130
|
+
route.children.forEach((child) => {
|
|
131
|
+
const childRouteData = this._getBreadcrumbRouteData(child);
|
|
132
|
+
const routePath = routeData._fullPath || route.path || '';
|
|
133
|
+
const childPath = child.path?.endsWith('/') ? child.path.slice(0, -1) : child.path;
|
|
134
|
+
childRouteData._fullPath = childPath?.indexOf(routePath) === -1 ? `${routePath}/${childPath}` : childPath;
|
|
135
|
+
});
|
|
136
|
+
children = [...children, ...route.children];
|
|
137
|
+
}
|
|
138
|
+
return route;
|
|
139
|
+
}).concat(children.length ? this._flattenRoutes(children, level + 1) : children);
|
|
140
|
+
}
|
|
141
|
+
_getBreadcrumbRouteData(route) {
|
|
142
|
+
if (!route) {
|
|
143
|
+
throw new Error('No route was found');
|
|
144
|
+
}
|
|
145
|
+
if (!route.data?.breadcrumb) {
|
|
146
|
+
if (!route.data) {
|
|
147
|
+
route.data = {};
|
|
148
|
+
}
|
|
149
|
+
route.data.breadcrumb = new BreadcrumbRouteData(0, false, undefined);
|
|
150
|
+
}
|
|
151
|
+
return route.data.breadcrumb;
|
|
152
|
+
}
|
|
153
|
+
}
|
|
154
|
+
BreadcrumbService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.0", ngImport: i0, type: BreadcrumbService, deps: [{ token: i1.Router }, { token: i2.UtilitiesService }, { token: SHELL_CONFIG, optional: true }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
155
|
+
BreadcrumbService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "14.0.0", ngImport: i0, type: BreadcrumbService, providedIn: 'root' });
|
|
156
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.0", ngImport: i0, type: BreadcrumbService, decorators: [{
|
|
157
|
+
type: Injectable,
|
|
158
|
+
args: [{
|
|
159
|
+
providedIn: 'root'
|
|
160
|
+
}]
|
|
161
|
+
}], ctorParameters: function () { return [{ type: i1.Router }, { type: i2.UtilitiesService }, { type: undefined, decorators: [{
|
|
162
|
+
type: Optional
|
|
163
|
+
}, {
|
|
164
|
+
type: Inject,
|
|
165
|
+
args: [SHELL_CONFIG]
|
|
166
|
+
}] }]; } });
|
|
167
|
+
export class BreadcrumbRouteData {
|
|
168
|
+
constructor(_level, isHome, _fullPath) {
|
|
169
|
+
this._level = _level;
|
|
170
|
+
this.isHome = isHome;
|
|
171
|
+
this._fullPath = _fullPath;
|
|
172
|
+
}
|
|
173
|
+
}
|
|
174
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnJlYWRjcnVtYi5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmctY29tcG9uZW50cy9zcmMvbGliL3NlcnZpY2VzL2JyZWFkY3J1bWIuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDN0QsT0FBTyxFQUFRLGFBQWEsRUFBaUIsTUFBTSxpQkFBaUIsQ0FBQztBQUVyRSxPQUFPLEVBQWMsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQzNDLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUM5RCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sd0NBQXdDLENBQUM7QUFDeEUsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLFdBQVcsQ0FBQzs7OztBQU16QyxNQUFNLE9BQU8saUJBQWlCO0lBSTFCLFlBQ1ksT0FBZSxFQUNmLFVBQTRCLEVBQ0ssWUFBa0I7UUFGbkQsWUFBTyxHQUFQLE9BQU8sQ0FBUTtRQUNmLGVBQVUsR0FBVixVQUFVLENBQWtCO1FBQ0ssaUJBQVksR0FBWixZQUFZLENBQU07UUFMdkQsaUJBQVksR0FBOEIsSUFBSSxPQUFPLEVBQW9CLENBQUM7UUFzQjNFLGVBQVUsR0FBaUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxZQUFZLEVBQUUsQ0FBQztRQWYvRSxJQUFJLFlBQVksRUFBRSxVQUFVLEVBQUU7WUFDMUIsSUFBSSxDQUFDLFlBQVksR0FBRyxJQUFJLENBQUMsbUJBQW1CLEVBQUUsQ0FBQztZQUMvQyxJQUFJLENBQUMsT0FBTztpQkFDUCxNQUFNO2lCQUNOLElBQUksQ0FDRCxNQUFNLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxLQUFLLFlBQVksYUFBYSxDQUFDLEVBQy9DLG9CQUFvQixFQUFFLENBQ3pCO2lCQUNBLFNBQVMsQ0FBQyxDQUFDLENBQUMsRUFBRTtnQkFDWCxNQUFNLFVBQVUsR0FBRyxDQUFDLEdBQUcsSUFBSSxDQUFDLGdCQUFnQixFQUFFLENBQUMsQ0FBQztnQkFDaEQsSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUM7WUFDdkMsQ0FBQyxDQUFDLENBQUM7U0FDVjtJQUNMLENBQUM7SUFJTyxtQkFBbUI7UUFDdkIsTUFBTSxZQUFZLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUM7UUFDekMsTUFBTSxrQkFBa0IsR0FBRyxZQUFZLENBQUMsTUFBTSxDQUFDLENBQUMsS0FBWSxFQUFFLEVBQUUsQ0FBQyxLQUFLLENBQUMsSUFBSSxFQUFFLFVBQVUsRUFBRSxNQUFNLEtBQUssSUFBSSxDQUFDLENBQUM7UUFDMUcsSUFBSSxrQkFBa0IsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFO1lBQy9CLE1BQU0sSUFBSSxLQUFLLENBQUMseUNBQXlDLENBQUMsQ0FBQztTQUM5RDtRQUNELElBQUksU0FBNEIsQ0FBQztRQUNqQyxJQUFJLGtCQUFrQixDQUFDLE1BQU0sS0FBSyxDQUFDLEVBQUU7WUFDakMsU0FBUyxHQUFHLGtCQUFrQixDQUFDLENBQUMsQ0FBQyxDQUFDO1NBQ3JDO2FBQU07WUFDSCxTQUFTLEdBQUcsWUFBWSxDQUFDLElBQUksQ0FBQyxDQUFDLEtBQVksRUFBRSxFQUFFLENBQUMsS0FBSyxDQUFDLElBQUksS0FBSyxFQUFFLENBQUMsQ0FBQztZQUNuRSxJQUFJLENBQUMsU0FBUyxFQUFFO2dCQUNaLE9BQU8sU0FBUyxDQUFDO2FBQ3BCO1lBQ0QsTUFBTSxjQUFjLEdBQUcsU0FBUyxDQUFDLFVBQVUsQ0FBQztZQUM1QyxJQUFJLENBQUMsU0FBUyxFQUFFLElBQUksRUFBRSxVQUFVLEVBQUUsS0FBSyxJQUFJLGNBQWMsRUFBRTtnQkFDdkQsU0FBUyxHQUFHLFlBQVksQ0FBQyxJQUFJLENBQUMsQ0FBQyxLQUFZLEVBQUUsRUFBRSxDQUFDLEtBQUssQ0FBQyxJQUFJLEtBQUssY0FBYyxDQUFDLENBQUM7Z0JBQy9FLElBQUksQ0FBQyxTQUFTLEVBQUU7b0JBQ1osT0FBTyxTQUFTLENBQUM7aUJBQ3BCO2FBQ0o7U0FDSjtRQUNELE9BQU8sSUFBSSxjQUFjLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxTQUFTLENBQUMsRUFBRSxTQUFTLENBQUMsSUFBSSxJQUFJLEVBQUUsQ0FBQyxDQUFDO0lBQ3BGLENBQUM7SUFFTyxjQUFjLENBQUMsS0FBWTtRQUMvQixPQUFPLEtBQUssRUFBRSxJQUFJLEVBQUUsVUFBVSxFQUFFLEtBQUssSUFBSSxLQUFLLENBQUMsU0FBUyxFQUFFLElBQUksQ0FBQyxPQUFPLENBQUMsV0FBVyxFQUFFLEVBQUUsQ0FBQyxDQUFDO0lBQzVGLENBQUM7SUFFTyxnQkFBZ0I7UUFDcEIsTUFBTSxVQUFVLEdBQXFCLEVBQUUsQ0FBQztRQUN4QyxJQUFJLElBQUksQ0FBQyxZQUFZLEVBQUU7WUFDbkIsVUFBVSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUM7U0FDdEM7UUFDRCxNQUFNLEdBQUcsR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQztRQUM3QixNQUFNLElBQUksR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLGNBQWMsQ0FBQyxHQUFHLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDdkQsTUFBTSxXQUFXLEdBQUcsSUFBSSxDQUFDLGlCQUFpQixDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ2pELE1BQU0sWUFBWSxHQUFHLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxXQUFXLENBQUMsQ0FBQztRQUN6RCxVQUFVLENBQUMsSUFBSSxDQUFDLEdBQUcsWUFBWSxDQUFDLENBQUM7UUFDakMsSUFBSSxXQUFXLElBQUksV0FBVyxFQUFFLElBQUksS0FBSyxJQUFJLENBQUMsWUFBWSxFQUFFLEdBQUcsRUFBRTtZQUM3RCxNQUFNLFNBQVMsR0FBRyxJQUFJLENBQUMsdUJBQXVCLENBQUMsV0FBVyxDQUFDLENBQUM7WUFDNUQsVUFBVSxDQUFDLElBQUksQ0FBQyxJQUFJLGNBQWMsQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLFdBQVcsQ0FBQyxFQUFFLENBQUMsU0FBUyxDQUFDLFNBQVMsSUFBSSxXQUFXLENBQUMsSUFBSSxJQUFJLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQztTQUMxSDtRQUNELE9BQU8sVUFBVSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEtBQXFCLEVBQUUsRUFBRTtZQUM1QyxNQUFNLGFBQWEsR0FBRyxLQUFLLENBQUMsR0FBRyxFQUFFLEtBQUssQ0FBQyxHQUFHLENBQUMsSUFBSSxFQUFFLENBQUM7WUFDbEQsYUFBYSxDQUFDLE9BQU8sQ0FBQyxDQUFDLE9BQWUsRUFBRSxLQUFhLEVBQUUsRUFBRTtnQkFDckQsSUFBSSxPQUFPLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxFQUFFO29CQUN6QixLQUFLLENBQUMsR0FBRyxHQUFHLEtBQUssQ0FBQyxHQUFHLEVBQUUsT0FBTyxDQUFDLE9BQU8sRUFBRSxHQUFHLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEtBQUssR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDO2lCQUN0RTtZQUNMLENBQUMsQ0FBQyxDQUFDO1lBQ0gsT0FBTyxLQUFLLENBQUM7UUFDakIsQ0FBQyxDQUFDLENBQUM7SUFDUCxDQUFDO0lBRU8saUJBQWlCLENBQUMsR0FBVztRQUNqQyxNQUFNLFdBQVcsR0FBRyxHQUFHLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLE9BQWUsRUFBRSxFQUFFLENBQUMsT0FBTyxLQUFLLEVBQUUsQ0FBQyxDQUFDO1FBQy9FLE1BQU0sWUFBWSxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDO1FBQ3pDLE1BQU0scUJBQXFCLEdBQUcsSUFBSSxDQUFDLGNBQWMsQ0FBQyxZQUFZLENBQUMsQ0FBQztRQUNoRSxNQUFNLG9CQUFvQixHQUFHLHFCQUFxQixDQUFDLE1BQU0sQ0FBQyxDQUFDLEtBQVksRUFBRSxFQUFFO1lBQ3ZFLE1BQU0sU0FBUyxHQUFHLElBQUksQ0FBQyx1QkFBdUIsQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUN0RCxPQUFPLENBQUMsU0FBUyxDQUFDLFNBQVMsSUFBSSxLQUFLLENBQUMsSUFBSSxDQUFDLEVBQUUsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLE1BQU0sS0FBSyxXQUFXLENBQUMsTUFBTSxDQUFDO1FBQ3pGLENBQUMsQ0FBQyxDQUFDO1FBQ0gsTUFBTSxLQUFLLEdBQUcsb0JBQW9CLENBQUMsSUFBSSxDQUFDLENBQUMsS0FBWSxFQUFFLEVBQUU7WUFDckQsTUFBTSxTQUFTLEdBQUcsSUFBSSxDQUFDLHVCQUF1QixDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQ3RELE1BQU0sYUFBYSxHQUFHLENBQUMsU0FBUyxDQUFDLFNBQVMsSUFBSSxLQUFLLENBQUMsSUFBSSxDQUFDLEVBQUUsS0FBSyxDQUFDLEdBQUcsQ0FBQyxJQUFJLEVBQUUsQ0FBQztZQUM1RSxJQUFJLGVBQWUsR0FBRyxLQUFLLENBQUM7WUFDNUIsS0FBSyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLGFBQWEsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxFQUFFLEVBQUU7Z0JBQzNDLE1BQU0sY0FBYyxHQUFHLGFBQWEsQ0FBQyxDQUFDLENBQUMsQ0FBQztnQkFDeEMsTUFBTSxnQkFBZ0IsR0FBRyxjQUFjLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxDQUFDO2dCQUN4RCxJQUFJLENBQUMsZ0JBQWdCLEVBQUU7b0JBQ25CLGVBQWUsR0FBRyxjQUFjLEtBQUssV0FBVyxDQUFDLENBQUMsQ0FBQyxDQUFDO2lCQUN2RDthQUNKO1lBQ0QsT0FBTyxlQUFlLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDO1FBQy9DLENBQUMsQ0FBQyxDQUFDO1FBQ0gsT0FBTyxLQUFLLENBQUM7SUFDakIsQ0FBQztJQUVPLGlCQUFpQixDQUFDLFdBQThCLEVBQUUsUUFBMEIsRUFBRTtRQUNsRixJQUFJLENBQUMsV0FBVyxFQUFFO1lBQ2QsT0FBTyxFQUFFLENBQUM7U0FDYjtRQUNELE1BQU0sU0FBUyxHQUFHLElBQUksQ0FBQyx1QkFBdUIsQ0FBQyxXQUFXLENBQUMsQ0FBQztRQUM1RCxJQUFJLFdBQVcsR0FBRyxDQUFDLFNBQVMsQ0FBQyxTQUFTLElBQUksV0FBVyxDQUFDLElBQUksQ0FBQyxFQUFFLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxPQUFlLEVBQUUsRUFBRSxDQUFDLE9BQU8sS0FBSyxFQUFFLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDMUgsSUFBSSxXQUFXLEVBQUUsTUFBTSxJQUFJLENBQUMsRUFBRTtZQUMxQixPQUFPLENBQUMsR0FBRyxLQUFLLENBQUMsQ0FBQztTQUNyQjtRQUNELE1BQU0sV0FBVyxHQUFHLFdBQVcsQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQ3ZELE1BQU0sS0FBSyxHQUFHLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxXQUFXLENBQUMsQ0FBQztRQUNsRCxJQUFJLEtBQUssRUFBRTtZQUNQLE1BQU0sU0FBUyxHQUFHLElBQUksQ0FBQyx1QkFBdUIsQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUN0RCxJQUFJLFNBQVMsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQyxLQUFLLENBQUMsUUFBUSxJQUFJLEtBQUssQ0FBQyxRQUFRLENBQUMsTUFBTSxLQUFLLENBQUMsQ0FBQyxFQUFFO2dCQUMxRSxLQUFLLENBQUMsSUFBSSxDQUFDLElBQUksY0FBYyxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsS0FBSyxDQUFDLEVBQUUsU0FBUyxDQUFDLFNBQVMsSUFBSSxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztnQkFDOUYsSUFBSSxDQUFDLGlCQUFpQixDQUFDLEtBQUssRUFBRSxDQUFDLEdBQUcsS0FBSyxDQUFDLENBQUMsQ0FBQzthQUM3QztTQUNKO1FBQ0QsT0FBTyxDQUFDLEdBQUcsS0FBSyxDQUFDLENBQUM7SUFDdEIsQ0FBQztJQUVPLGNBQWMsQ0FBQyxNQUFlLEVBQUUsS0FBYztRQUNsRCxJQUFJLFFBQVEsR0FBWSxFQUFFLENBQUM7UUFDM0IsS0FBSyxHQUFHLEtBQUssSUFBSSxDQUFDLENBQUM7UUFDbkIsT0FBTyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsS0FBWSxFQUFFLEVBQUU7WUFDL0IsTUFBTSxTQUFTLEdBQUcsSUFBSSxDQUFDLHVCQUF1QixDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQ3RELFNBQVMsQ0FBQyxNQUFNLEdBQUcsS0FBTSxDQUFDO1lBQzFCLElBQUksS0FBSyxDQUFDLFFBQVEsSUFBSSxLQUFLLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRTtnQkFDekMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsQ0FBQyxLQUFZLEVBQUUsRUFBRTtvQkFDcEMsTUFBTSxjQUFjLEdBQUcsSUFBSSxDQUFDLHVCQUF1QixDQUFDLEtBQUssQ0FBQyxDQUFDO29CQUMzRCxNQUFNLFNBQVMsR0FBRyxTQUFTLENBQUMsU0FBUyxJQUFJLEtBQUssQ0FBQyxJQUFJLElBQUksRUFBRSxDQUFDO29CQUMxRCxNQUFNLFNBQVMsR0FBRyxLQUFLLENBQUMsSUFBSSxFQUFFLFFBQVEsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUM7b0JBQ25GLGNBQWMsQ0FBQyxTQUFTLEdBQUcsU0FBUyxFQUFFLE9BQU8sQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxTQUFTLElBQUksU0FBUyxFQUFFLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQztnQkFDOUcsQ0FBQyxDQUFDLENBQUM7Z0JBQ0gsUUFBUSxHQUFHLENBQUMsR0FBRyxRQUFRLEVBQUUsR0FBRyxLQUFLLENBQUMsUUFBUSxDQUFDLENBQUM7YUFDL0M7WUFDRCxPQUFPLEtBQUssQ0FBQztRQUNqQixDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxRQUFRLEVBQUUsS0FBSyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUNyRixDQUFDO0lBRU8sdUJBQXVCLENBQUMsS0FBd0I7UUFDcEQsSUFBSSxDQUFDLEtBQUssRUFBRTtZQUNSLE1BQU0sSUFBSSxLQUFLLENBQUMsb0JBQW9CLENBQUMsQ0FBQztTQUN6QztRQUNELElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxFQUFFLFVBQVUsRUFBRTtZQUN6QixJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksRUFBRTtnQkFDYixLQUFLLENBQUMsSUFBSSxHQUFHLEVBQUUsQ0FBQzthQUNuQjtZQUNELEtBQUssQ0FBQyxJQUFJLENBQUMsVUFBVSxHQUFHLElBQUksbUJBQW1CLENBQUMsQ0FBQyxFQUFFLEtBQUssRUFBRSxTQUFTLENBQUMsQ0FBQztTQUN4RTtRQUNELE9BQU8sS0FBSyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUM7SUFDakMsQ0FBQzs7OEdBM0pRLGlCQUFpQix3RUFPRixZQUFZO2tIQVAzQixpQkFBaUIsY0FGZCxNQUFNOzJGQUVULGlCQUFpQjtrQkFIN0IsVUFBVTttQkFBQztvQkFDUixVQUFVLEVBQUUsTUFBTTtpQkFDckI7OzBCQVFRLFFBQVE7OzBCQUFJLE1BQU07MkJBQUMsWUFBWTs7QUF1SnhDLE1BQU0sT0FBTyxtQkFBbUI7SUFDNUIsWUFBbUIsTUFBYyxFQUFTLE1BQWUsRUFBUyxTQUE4QjtRQUE3RSxXQUFNLEdBQU4sTUFBTSxDQUFRO1FBQVMsV0FBTSxHQUFOLE1BQU0sQ0FBUztRQUFTLGNBQVMsR0FBVCxTQUFTLENBQXFCO0lBQUksQ0FBQztDQUN4RyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdCwgSW5qZWN0YWJsZSwgT3B0aW9uYWwgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgRGF0YSwgTmF2aWdhdGlvbkVuZCwgUm91dGUsIFJvdXRlciB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XHJcblxyXG5pbXBvcnQgeyBPYnNlcnZhYmxlLCBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IGRpc3RpbmN0VW50aWxDaGFuZ2VkLCBmaWx0ZXIgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XHJcbmltcG9ydCB7IEJyZWFkY3J1bWJJdGVtIH0gZnJvbSAnLi4vY29udHJvbHMvYnJlYWRjcnVtYi9icmVhZGNydW1iLWl0ZW0nO1xyXG5pbXBvcnQgeyBTSEVMTF9DT05GSUcgfSBmcm9tICcuLi90b2tlbnMnO1xyXG5pbXBvcnQgeyBVdGlsaXRpZXNTZXJ2aWNlIH0gZnJvbSAnLi91dGlsaXRpZXMuc2VydmljZSc7XHJcblxyXG5ASW5qZWN0YWJsZSh7XHJcbiAgICBwcm92aWRlZEluOiAncm9vdCdcclxufSlcclxuZXhwb3J0IGNsYXNzIEJyZWFkY3J1bWJTZXJ2aWNlIHtcclxuICAgIHByaXZhdGUgX2RlZmF1bHRIb21lOiBCcmVhZGNydW1iSXRlbSB8IHVuZGVmaW5lZDtcclxuICAgIHByaXZhdGUgX2JyZWFkY3J1bWIkOiBTdWJqZWN0PEJyZWFkY3J1bWJJdGVtW10+ID0gbmV3IFN1YmplY3Q8QnJlYWRjcnVtYkl0ZW1bXT4oKTtcclxuXHJcbiAgICBjb25zdHJ1Y3RvcihcclxuICAgICAgICBwcml2YXRlIF9yb3V0ZXI6IFJvdXRlcixcclxuICAgICAgICBwcml2YXRlIF91dGlsaXRpZXM6IFV0aWxpdGllc1NlcnZpY2UsXHJcbiAgICAgICAgQE9wdGlvbmFsKCkgQEluamVjdChTSEVMTF9DT05GSUcpIHB1YmxpYyBfc2hlbGxDb25maWc/OiBhbnlcclxuICAgICkge1xyXG4gICAgICAgIGlmIChfc2hlbGxDb25maWc/LmJyZWFkY3J1bWIpIHtcclxuICAgICAgICAgICAgdGhpcy5fZGVmYXVsdEhvbWUgPSB0aGlzLl9nZXREZWZhdWx0SG9tZUl0ZW0oKTtcclxuICAgICAgICAgICAgdGhpcy5fcm91dGVyXHJcbiAgICAgICAgICAgICAgICAuZXZlbnRzXHJcbiAgICAgICAgICAgICAgICAucGlwZShcclxuICAgICAgICAgICAgICAgICAgICBmaWx0ZXIoZXZlbnQgPT4gZXZlbnQgaW5zdGFuY2VvZiBOYXZpZ2F0aW9uRW5kKSxcclxuICAgICAgICAgICAgICAgICAgICBkaXN0aW5jdFVudGlsQ2hhbmdlZCgpXHJcbiAgICAgICAgICAgICAgICApXHJcbiAgICAgICAgICAgICAgICAuc3Vic2NyaWJlKF8gPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGJyZWFkY3J1bWIgPSBbLi4udGhpcy5fYnVpbGRCcmVhZGNydW1iKCldO1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuX2JyZWFkY3J1bWIkLm5leHQoYnJlYWRjcnVtYik7XHJcbiAgICAgICAgICAgICAgICB9KTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIGJyZWFkY3J1bWI6IE9ic2VydmFibGU8QnJlYWRjcnVtYkl0ZW1bXT4gPSB0aGlzLl9icmVhZGNydW1iJC5hc09ic2VydmFibGUoKTtcclxuXHJcbiAgICBwcml2YXRlIF9nZXREZWZhdWx0SG9tZUl0ZW0oKTogQnJlYWRjcnVtYkl0ZW0gfCB1bmRlZmluZWQge1xyXG4gICAgICAgIGNvbnN0IHJvdXRlckNvbmZpZyA9IHRoaXMuX3JvdXRlci5jb25maWc7XHJcbiAgICAgICAgY29uc3QgZGVjbGFyZWRIb21lUm91dGVzID0gcm91dGVyQ29uZmlnLmZpbHRlcigocm91dGU6IFJvdXRlKSA9PiByb3V0ZS5kYXRhPy5icmVhZGNydW1iPy5pc0hvbWUgPT09IHRydWUpO1xyXG4gICAgICAgIGlmIChkZWNsYXJlZEhvbWVSb3V0ZXMubGVuZ3RoID4gMSkge1xyXG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ1lvdSBjYW4gZGVjbGFyZSBvbmx5IG9uZSByb3V0ZSBhcyBob21lLicpO1xyXG4gICAgICAgIH1cclxuICAgICAgICBsZXQgaG9tZVJvdXRlOiBSb3V0ZSB8IHVuZGVmaW5lZDtcclxuICAgICAgICBpZiAoZGVjbGFyZWRIb21lUm91dGVzLmxlbmd0aCA9PT0gMSkge1xyXG4gICAgICAgICAgICBob21lUm91dGUgPSBkZWNsYXJlZEhvbWVSb3V0ZXNbMF07XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgaG9tZVJvdXRlID0gcm91dGVyQ29uZmlnLmZpbmQoKHJvdXRlOiBSb3V0ZSkgPT4gcm91dGUucGF0aCA9PT0gJycpO1xyXG4gICAgICAgICAgICBpZiAoIWhvbWVSb3V0ZSkge1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBjb25zdCByZWRpcmVjdGlvblVybCA9IGhvbWVSb3V0ZS5yZWRpcmVjdFRvO1xyXG4gICAgICAgICAgICBpZiAoIWhvbWVSb3V0ZT8uZGF0YT8uYnJlYWRjcnVtYj8udGl0bGUgJiYgcmVkaXJlY3Rpb25VcmwpIHtcclxuICAgICAgICAgICAgICAgIGhvbWVSb3V0ZSA9IHJvdXRlckNvbmZpZy5maW5kKChyb3V0ZTogUm91dGUpID0+IHJvdXRlLnBhdGggPT09IHJlZGlyZWN0aW9uVXJsKTtcclxuICAgICAgICAgICAgICAgIGlmICghaG9tZVJvdXRlKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gbmV3IEJyZWFkY3J1bWJJdGVtKHRoaXMuX2dldFJvdXRlVGl0bGUoaG9tZVJvdXRlKSwgaG9tZVJvdXRlLnBhdGggfHwgJycpO1xyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgX2dldFJvdXRlVGl0bGUocm91dGU6IFJvdXRlKSB7XHJcbiAgICAgICAgcmV0dXJuIHJvdXRlPy5kYXRhPy5icmVhZGNydW1iPy50aXRsZSB8fCByb3V0ZS5jb21wb25lbnQ/Lm5hbWUucmVwbGFjZSgnQ29tcG9uZW50JywgJycpO1xyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgX2J1aWxkQnJlYWRjcnVtYigpOiBCcmVhZGNydW1iSXRlbVtdIHtcclxuICAgICAgICBjb25zdCBicmVhZGNydW1iOiBCcmVhZGNydW1iSXRlbVtdID0gW107XHJcbiAgICAgICAgaWYgKHRoaXMuX2RlZmF1bHRIb21lKSB7XHJcbiAgICAgICAgICAgIGJyZWFkY3J1bWIucHVzaCh0aGlzLl9kZWZhdWx0SG9tZSk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGNvbnN0IHVybCA9IHRoaXMuX3JvdXRlci51cmw7XHJcbiAgICAgICAgY29uc3QgcGF0aCA9IHRoaXMuX3V0aWxpdGllcy5nZXRQYXRoRnJvbVVybCh1cmwpIHx8ICcnO1xyXG4gICAgICAgIGNvbnN0IGFjdGl2ZVJvdXRlID0gdGhpcy5fZmluZFJvdXRlRnJvbVVybChwYXRoKTtcclxuICAgICAgICBjb25zdCBwYXJlbnRSb3V0ZXMgPSB0aGlzLl9maW5kUGFyZW50Um91dGVzKGFjdGl2ZVJvdXRlKTtcclxuICAgICAgICBicmVhZGNydW1iLnB1c2goLi4ucGFyZW50Um91dGVzKTtcclxuICAgICAgICBpZiAoYWN0aXZlUm91dGUgJiYgYWN0aXZlUm91dGU/LnBhdGggIT09IHRoaXMuX2RlZmF1bHRIb21lPy51cmwpIHtcclxuICAgICAgICAgICAgY29uc3Qgcm91dGVEYXRhID0gdGhpcy5fZ2V0QnJlYWRjcnVtYlJvdXRlRGF0YShhY3RpdmVSb3V0ZSk7XHJcbiAgICAgICAgICAgIGJyZWFkY3J1bWIucHVzaChuZXcgQnJlYWRjcnVtYkl0ZW0odGhpcy5fZ2V0Um91dGVUaXRsZShhY3RpdmVSb3V0ZSksIChyb3V0ZURhdGEuX2Z1bGxQYXRoIHx8IGFjdGl2ZVJvdXRlLnBhdGggfHwgJycpKSk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJldHVybiBicmVhZGNydW1iLm1hcCgocm91dGU6IEJyZWFkY3J1bWJJdGVtKSA9PiB7XHJcbiAgICAgICAgICAgIGNvbnN0IHJvdXRlU2VnbWVudHMgPSByb3V0ZS51cmw/LnNwbGl0KCcvJykgfHwgW107XHJcbiAgICAgICAgICAgIHJvdXRlU2VnbWVudHMuZm9yRWFjaCgoc2VnbWVudDogc3RyaW5nLCBpbmRleDogbnVtYmVyKSA9PiB7XHJcbiAgICAgICAgICAgICAgICBpZiAoc2VnbWVudC5zdGFydHNXaXRoKCc6JykpIHtcclxuICAgICAgICAgICAgICAgICAgICByb3V0ZS51cmwgPSByb3V0ZS51cmw/LnJlcGxhY2Uoc2VnbWVudCwgdXJsLnNwbGl0KCcvJylbaW5kZXggKyAxXSk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICByZXR1cm4gcm91dGU7XHJcbiAgICAgICAgfSk7XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSBfZmluZFJvdXRlRnJvbVVybCh1cmw6IHN0cmluZyk6IFJvdXRlIHwgdW5kZWZpbmVkIHtcclxuICAgICAgICBjb25zdCB1cmxTZWdtZW50cyA9IHVybC5zcGxpdCgnLycpLmZpbHRlcigoc2VnbWVudDogc3RyaW5nKSA9PiBzZWdtZW50ICE9PSAnJyk7XHJcbiAgICAgICAgY29uc3Qgcm91dGVyQ29uZmlnID0gdGhpcy5fcm91dGVyLmNvbmZpZztcclxuICAgICAgICBjb25zdCBmbGF0dGVuZWRSb3V0ZXJDb25maWcgPSB0aGlzLl9mbGF0dGVuUm91dGVzKHJvdXRlckNvbmZpZyk7XHJcbiAgICAgICAgY29uc3QgZmlsdGVyZWRSb3V0ZXJDb25maWcgPSBmbGF0dGVuZWRSb3V0ZXJDb25maWcuZmlsdGVyKChyb3V0ZTogUm91dGUpID0+IHtcclxuICAgICAgICAgICAgY29uc3Qgcm91dGVEYXRhID0gdGhpcy5fZ2V0QnJlYWRjcnVtYlJvdXRlRGF0YShyb3V0ZSk7XHJcbiAgICAgICAgICAgIHJldHVybiAocm91dGVEYXRhLl9mdWxsUGF0aCB8fCByb3V0ZS5wYXRoKT8uc3BsaXQoJy8nKS5sZW5ndGggPT09IHVybFNlZ21lbnRzLmxlbmd0aDtcclxuICAgICAgICB9KTtcclxuICAgICAgICBjb25zdCByb3V0ZSA9IGZpbHRlcmVkUm91dGVyQ29uZmlnLmZpbmQoKHJvdXRlOiBSb3V0ZSkgPT4ge1xyXG4gICAgICAgICAgICBjb25zdCByb3V0ZURhdGEgPSB0aGlzLl9nZXRCcmVhZGNydW1iUm91dGVEYXRhKHJvdXRlKTtcclxuICAgICAgICAgICAgY29uc3Qgcm91dGVTZWdtZW50cyA9IChyb3V0ZURhdGEuX2Z1bGxQYXRoIHx8IHJvdXRlLnBhdGgpPy5zcGxpdCgnLycpIHx8IFtdO1xyXG4gICAgICAgICAgICBsZXQgc2VnbWVudHNNYXRjaGVkID0gZmFsc2U7XHJcbiAgICAgICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgcm91dGVTZWdtZW50cy5sZW5ndGg7IGkrKykge1xyXG4gICAgICAgICAgICAgICAgY29uc3QgY3VycmVudFNlZ21lbnQgPSByb3V0ZVNlZ21lbnRzW2ldO1xyXG4gICAgICAgICAgICAgICAgY29uc3QgaXNEeW5hbWljU2VnbWVudCA9IGN1cnJlbnRTZWdtZW50LnN0YXJ0c1dpdGgoJzonKTtcclxuICAgICAgICAgICAgICAgIGlmICghaXNEeW5hbWljU2VnbWVudCkge1xyXG4gICAgICAgICAgICAgICAgICAgIHNlZ21lbnRzTWF0Y2hlZCA9IGN1cnJlbnRTZWdtZW50ID09PSB1cmxTZWdtZW50c1tpXTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICByZXR1cm4gc2VnbWVudHNNYXRjaGVkID8gcm91dGUgOiB1bmRlZmluZWQ7XHJcbiAgICAgICAgfSk7XHJcbiAgICAgICAgcmV0dXJuIHJvdXRlO1xyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgX2ZpbmRQYXJlbnRSb3V0ZXMoYWN0aXZlUm91dGU6IFJvdXRlIHwgdW5kZWZpbmVkLCBpdGVtczogQnJlYWRjcnVtYkl0ZW1bXSA9IFtdKTogQnJlYWRjcnVtYkl0ZW1bXSB7XHJcbiAgICAgICAgaWYgKCFhY3RpdmVSb3V0ZSkge1xyXG4gICAgICAgICAgICByZXR1cm4gW107XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGNvbnN0IHJvdXRlRGF0YSA9IHRoaXMuX2dldEJyZWFkY3J1bWJSb3V0ZURhdGEoYWN0aXZlUm91dGUpO1xyXG4gICAgICAgIGxldCB1cmxTZWdtZW50cyA9IChyb3V0ZURhdGEuX2Z1bGxQYXRoIHx8IGFjdGl2ZVJvdXRlLnBhdGgpPy5zcGxpdCgnLycpLmZpbHRlcigoc2VnbWVudDogc3RyaW5nKSA9PiBzZWdtZW50ICE9PSAnJykgfHwgW107XHJcbiAgICAgICAgaWYgKHVybFNlZ21lbnRzPy5sZW5ndGggPD0gMSkge1xyXG4gICAgICAgICAgICByZXR1cm4gWy4uLml0ZW1zXTtcclxuICAgICAgICB9XHJcbiAgICAgICAgY29uc3QgcHJldmlvdXNVcmwgPSB1cmxTZWdtZW50cy5zbGljZSgwLCAtMSkuam9pbignLycpO1xyXG4gICAgICAgIGNvbnN0IHJvdXRlID0gdGhpcy5fZmluZFJvdXRlRnJvbVVybChwcmV2aW91c1VybCk7XHJcbiAgICAgICAgaWYgKHJvdXRlKSB7XHJcbiAgICAgICAgICAgIGNvbnN0IHJvdXRlRGF0YSA9IHRoaXMuX2dldEJyZWFkY3J1bWJSb3V0ZURhdGEocm91dGUpO1xyXG4gICAgICAgICAgICBpZiAocm91dGVEYXRhLl9sZXZlbCA+IDAgfHwgKCFyb3V0ZS5jaGlsZHJlbiB8fCByb3V0ZS5jaGlsZHJlbi5sZW5ndGggPT09IDApKSB7XHJcbiAgICAgICAgICAgICAgICBpdGVtcy5wdXNoKG5ldyBCcmVhZGNydW1iSXRlbSh0aGlzLl9nZXRSb3V0ZVRpdGxlKHJvdXRlKSwgcm91dGVEYXRhLl9mdWxsUGF0aCB8fCByb3V0ZS5wYXRoKSk7XHJcbiAgICAgICAgICAgICAgICB0aGlzLl9maW5kUGFyZW50Um91dGVzKHJvdXRlLCBbLi4uaXRlbXNdKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gWy4uLml0ZW1zXTtcclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIF9mbGF0dGVuUm91dGVzKHJvdXRlczogUm91dGVbXSwgbGV2ZWw/OiBudW1iZXIpOiBSb3V0ZVtdIHtcclxuICAgICAgICBsZXQgY2hpbGRyZW46IFJvdXRlW10gPSBbXTtcclxuICAgICAgICBsZXZlbCA9IGxldmVsIHx8IDA7XHJcbiAgICAgICAgcmV0dXJuIHJvdXRlcy5tYXAoKHJvdXRlOiBSb3V0ZSkgPT4ge1xyXG4gICAgICAgICAgICBjb25zdCByb3V0ZURhdGEgPSB0aGlzLl9nZXRCcmVhZGNydW1iUm91dGVEYXRhKHJvdXRlKTtcclxuICAgICAgICAgICAgcm91dGVEYXRhLl9sZXZlbCA9IGxldmVsITtcclxuICAgICAgICAgICAgaWYgKHJvdXRlLmNoaWxkcmVuICYmIHJvdXRlLmNoaWxkcmVuLmxlbmd0aCkge1xyXG4gICAgICAgICAgICAgICAgcm91dGUuY2hpbGRyZW4uZm9yRWFjaCgoY2hpbGQ6IFJvdXRlKSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgY2hpbGRSb3V0ZURhdGEgPSB0aGlzLl9nZXRCcmVhZGNydW1iUm91dGVEYXRhKGNoaWxkKTtcclxuICAgICAgICAgICAgICAgICAgICBjb25zdCByb3V0ZVBhdGggPSByb3V0ZURhdGEuX2Z1bGxQYXRoIHx8IHJvdXRlLnBhdGggfHwgJyc7XHJcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgY2hpbGRQYXRoID0gY2hpbGQucGF0aD8uZW5kc1dpdGgoJy8nKSA/IGNoaWxkLnBhdGguc2xpY2UoMCwgLTEpIDogY2hpbGQucGF0aDtcclxuICAgICAgICAgICAgICAgICAgICBjaGlsZFJvdXRlRGF0YS5fZnVsbFBhdGggPSBjaGlsZFBhdGg/LmluZGV4T2Yocm91dGVQYXRoKSA9PT0gLTEgPyBgJHtyb3V0ZVBhdGh9LyR7Y2hpbGRQYXRofWAgOiBjaGlsZFBhdGg7XHJcbiAgICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgICAgIGNoaWxkcmVuID0gWy4uLmNoaWxkcmVuLCAuLi5yb3V0ZS5jaGlsZHJlbl07XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgcmV0dXJuIHJvdXRlO1xyXG4gICAgICAgIH0pLmNvbmNhdChjaGlsZHJlbi5sZW5ndGggPyB0aGlzLl9mbGF0dGVuUm91dGVzKGNoaWxkcmVuLCBsZXZlbCArIDEpIDogY2hpbGRyZW4pO1xyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgX2dldEJyZWFkY3J1bWJSb3V0ZURhdGEocm91dGU6IFJvdXRlIHwgdW5kZWZpbmVkKTogQnJlYWRjcnVtYlJvdXRlRGF0YSB7XHJcbiAgICAgICAgaWYgKCFyb3V0ZSkge1xyXG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ05vIHJvdXRlIHdhcyBmb3VuZCcpO1xyXG4gICAgICAgIH1cclxuICAgICAgICBpZiAoIXJvdXRlLmRhdGE/LmJyZWFkY3J1bWIpIHtcclxuICAgICAgICAgICAgaWYgKCFyb3V0ZS5kYXRhKSB7XHJcbiAgICAgICAgICAgICAgICByb3V0ZS5kYXRhID0ge307XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgcm91dGUuZGF0YS5icmVhZGNydW1iID0gbmV3IEJyZWFkY3J1bWJSb3V0ZURhdGEoMCwgZmFsc2UsIHVuZGVmaW5lZCk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJldHVybiByb3V0ZS5kYXRhLmJyZWFkY3J1bWI7XHJcbiAgICB9XHJcbn1cclxuXHJcbmV4cG9ydCBjbGFzcyBCcmVhZGNydW1iUm91dGVEYXRhIHtcclxuICAgIGNvbnN0cnVjdG9yKHB1YmxpYyBfbGV2ZWw6IG51bWJlciwgcHVibGljIGlzSG9tZTogYm9vbGVhbiwgcHVibGljIF9mdWxsUGF0aD86IHN0cmluZyB8IHVuZGVmaW5lZCkgeyB9XHJcbn1cclxuIl19
|
|
@@ -5,12 +5,14 @@ import { NULL_TOAST } from '../types';
|
|
|
5
5
|
import * as i0 from "@angular/core";
|
|
6
6
|
export class ToasterService {
|
|
7
7
|
constructor() {
|
|
8
|
-
this.
|
|
9
|
-
this.toast$ = this
|
|
10
|
-
.
|
|
8
|
+
this._subject = new BehaviorSubject(NULL_TOAST);
|
|
9
|
+
this.toast$ = this
|
|
10
|
+
._subject
|
|
11
|
+
.asObservable()
|
|
12
|
+
.pipe(filter((toast) => toast !== null && toast.title !== NULL_TOAST.title));
|
|
11
13
|
}
|
|
12
14
|
show(type, title, body, delay) {
|
|
13
|
-
this.
|
|
15
|
+
this._subject.next({ type, title, body, delay });
|
|
14
16
|
}
|
|
15
17
|
}
|
|
16
18
|
ToasterService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.0", ngImport: i0, type: ToasterService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
@@ -21,4 +23,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.0", ngImpor
|
|
|
21
23
|
providedIn: 'root'
|
|
22
24
|
}]
|
|
23
25
|
}], ctorParameters: function () { return []; } });
|
|
24
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
26
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9hc3Rlci5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmctY29tcG9uZW50cy9zcmMvbGliL3NlcnZpY2VzL3RvYXN0ZXIuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRTNDLE9BQU8sRUFBRSxlQUFlLEVBQWMsTUFBTSxNQUFNLENBQUM7QUFDbkQsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3hDLE9BQU8sRUFBb0IsVUFBVSxFQUFFLE1BQU0sVUFBVSxDQUFDOztBQUt4RCxNQUFNLE9BQU8sY0FBYztJQUd6QjtRQUNFLElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxlQUFlLENBQVEsVUFBVSxDQUFDLENBQUM7UUFDdkQsSUFBSSxDQUFDLE1BQU0sR0FBRyxJQUFJO2FBQ2YsUUFBUTthQUNSLFlBQVksRUFBRTthQUNkLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxLQUFZLEVBQUUsRUFBRSxDQUFDLEtBQUssS0FBSyxJQUFJLElBQUksS0FBSyxDQUFDLEtBQUssS0FBSyxVQUFVLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQztJQUN4RixDQUFDO0lBSU0sSUFBSSxDQUFDLElBQWUsRUFBRSxLQUFjLEVBQUUsSUFBYSxFQUFFLEtBQWM7UUFDeEUsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsRUFBRSxJQUFJLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRSxLQUFLLEVBQVcsQ0FBQyxDQUFDO0lBQzVELENBQUM7OzJHQWZVLGNBQWM7K0dBQWQsY0FBYyxjQUZiLE1BQU07MkZBRVAsY0FBYztrQkFIMUIsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcblxyXG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QsIE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgZmlsdGVyIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xyXG5pbXBvcnQgeyBUb2FzdCwgVG9hc3RUeXBlLCBOVUxMX1RPQVNUIH0gZnJvbSAnLi4vdHlwZXMnO1xyXG5cclxuQEluamVjdGFibGUoe1xyXG4gIHByb3ZpZGVkSW46ICdyb290J1xyXG59KVxyXG5leHBvcnQgY2xhc3MgVG9hc3RlclNlcnZpY2Uge1xyXG4gIHByaXZhdGUgX3N1YmplY3Q6IEJlaGF2aW9yU3ViamVjdDxUb2FzdD47XHJcblxyXG4gIGNvbnN0cnVjdG9yKCkge1xyXG4gICAgdGhpcy5fc3ViamVjdCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8VG9hc3Q+KE5VTExfVE9BU1QpO1xyXG4gICAgdGhpcy50b2FzdCQgPSB0aGlzXHJcbiAgICAgIC5fc3ViamVjdFxyXG4gICAgICAuYXNPYnNlcnZhYmxlKClcclxuICAgICAgLnBpcGUoZmlsdGVyKCh0b2FzdDogVG9hc3QpID0+IHRvYXN0ICE9PSBudWxsICYmIHRvYXN0LnRpdGxlICE9PSBOVUxMX1RPQVNULnRpdGxlKSk7XHJcbiAgfVxyXG4gIFxyXG4gIHB1YmxpYyB0b2FzdCQ6IE9ic2VydmFibGU8VG9hc3Q+O1xyXG5cclxuICBwdWJsaWMgc2hvdyh0eXBlOiBUb2FzdFR5cGUsIHRpdGxlPzogc3RyaW5nLCBib2R5Pzogc3RyaW5nLCBkZWxheT86IG51bWJlcik6IHZvaWQge1xyXG4gICAgdGhpcy5fc3ViamVjdC5uZXh0KHsgdHlwZSwgdGl0bGUsIGJvZHksIGRlbGF5IH0gYXMgVG9hc3QpO1xyXG4gIH1cclxufVxyXG4iXX0=
|