@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.
Files changed (49) hide show
  1. package/_styles.css +64 -19
  2. package/esm2020/lib/controls/advanced-search/advanced-search.component.mjs +3 -3
  3. package/esm2020/lib/controls/breadcrumb/breadcrumb-item.mjs +14 -0
  4. package/esm2020/lib/controls/breadcrumb/breadcrumb.component.mjs +26 -0
  5. package/esm2020/lib/controls/combobox/combobox.component.mjs +23 -9
  6. package/esm2020/lib/controls/language-selection/language-selection.component.mjs +3 -3
  7. package/esm2020/lib/controls/list-view/list-view.component.mjs +6 -6
  8. package/esm2020/lib/controls/nav-links-list/nav-links-list.component.mjs +11 -3
  9. package/esm2020/lib/controls/stepper/lib-step-label.directive.mjs +2 -2
  10. package/esm2020/lib/controls/stepper/lib-stepper.component.mjs +3 -3
  11. package/esm2020/lib/controls/tabs/lib-tab-group.component.mjs +17 -11
  12. package/esm2020/lib/controls/tabs/lib-tab-label.directive.mjs +16 -0
  13. package/esm2020/lib/controls/tabs/lib-tab.component.mjs +12 -5
  14. package/esm2020/lib/controls/user-profile-menu/user-profile-menu.component.mjs +1 -1
  15. package/esm2020/lib/icons.mjs +4 -2
  16. package/esm2020/lib/layouts/shell/shell-header/shell-header.component.mjs +4 -4
  17. package/esm2020/lib/layouts/shell/shell-layout/shell-layout.component.mjs +7 -7
  18. package/esm2020/lib/layouts/shell/shell-sidebar/shell-sidebar.component.mjs +12 -3
  19. package/esm2020/lib/layouts/shell/shell-sidebar-header/shell-sidebar-header.component.mjs +3 -3
  20. package/esm2020/lib/layouts/shell/shell-sidebar-layout/shell-sidebar-layout.component.mjs +7 -6
  21. package/esm2020/lib/layouts/shell/shell-stacked-layout/shell-stacked-layout.component.mjs +6 -7
  22. package/esm2020/lib/layouts/views/view-layout/view-layout.component.mjs +3 -3
  23. package/esm2020/lib/ng-components.module.mjs +96 -102
  24. package/esm2020/lib/services/breadcrumb.service.mjs +174 -0
  25. package/esm2020/lib/services/toaster.service.mjs +7 -5
  26. package/esm2020/lib/services/utilities.service.mjs +47 -0
  27. package/esm2020/lib/types.mjs +8 -6
  28. package/esm2020/public-api.mjs +5 -1
  29. package/fesm2015/indice-ng-components.mjs +550 -241
  30. package/fesm2015/indice-ng-components.mjs.map +1 -1
  31. package/fesm2020/indice-ng-components.mjs +532 -236
  32. package/fesm2020/indice-ng-components.mjs.map +1 -1
  33. package/lib/controls/breadcrumb/breadcrumb-item.d.ts +7 -0
  34. package/lib/controls/breadcrumb/breadcrumb.component.d.ts +12 -0
  35. package/lib/controls/combobox/combobox.component.d.ts +7 -4
  36. package/lib/controls/nav-links-list/nav-links-list.component.d.ts +3 -1
  37. package/lib/controls/tabs/lib-tab-group.component.d.ts +3 -3
  38. package/lib/controls/tabs/lib-tab-label.directive.d.ts +8 -0
  39. package/lib/controls/tabs/lib-tab.component.d.ts +8 -6
  40. package/lib/icons.d.ts +2 -0
  41. package/lib/layouts/shell/shell-sidebar/shell-sidebar.component.d.ts +3 -1
  42. package/lib/layouts/shell/shell-stacked-layout/shell-stacked-layout.component.d.ts +1 -1
  43. package/lib/ng-components.module.d.ts +55 -53
  44. package/lib/services/breadcrumb.service.d.ts +29 -0
  45. package/lib/services/toaster.service.d.ts +2 -2
  46. package/lib/services/utilities.service.d.ts +11 -0
  47. package/lib/types.d.ts +12 -10
  48. package/package.json +1 -1
  49. 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 { ShellSidebarHeaderComponent } from './layouts/shell/shell-sidebar-header/shell-sidebar-header.component';
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: [ToasterService]
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
- // Directives
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
- DynamicComponentHostDirective,
71
- // Controls
79
+ CollapsiblePanelComponent,
80
+ ComboboxComponent,
81
+ DatepickerComponent,
72
82
  DropDownMenuComponent,
73
- PagerComponent,
74
- ListViewComponent,
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
- ErrorComponent,
104
- PageNotFoundComponent,
105
- UnauthorizedComponent,
106
- // Pipes
107
- AddressPipe,
108
- DurationFormatPipe,
102
+ ModelViewLayoutComponent,
109
103
  NavLinksListComponent,
110
104
  NotificationsIndicatorComponent,
111
- LanguageSelectionComponent,
112
- UserProfileMenuComponent,
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
- AdvancedSearchComponent], imports: [CommonModule,
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
- // Directives
174
+ AddressPipe,
175
+ AdvancedSearchComponent,
176
+ AuthCallbackComponent,
177
+ AuthRenewComponent,
178
+ AvatarInitialsComponent,
179
+ BreadcrumbComponent,
176
180
  ClickOutsideDirective,
177
- DynamicComponentHostDirective,
178
- // Controls
181
+ CollapsiblePanelComponent,
182
+ ComboboxComponent,
183
+ DatepickerComponent,
179
184
  DropDownMenuComponent,
180
- PagerComponent,
181
- ListViewComponent,
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
- ErrorComponent,
211
- PageNotFoundComponent,
212
- UnauthorizedComponent,
213
- // Pipes
214
- AddressPipe,
215
- DurationFormatPipe,
204
+ ModelViewLayoutComponent,
216
205
  NavLinksListComponent,
217
206
  NotificationsIndicatorComponent,
218
- LanguageSelectionComponent,
219
- UserProfileMenuComponent,
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
- AdvancedSearchComponent
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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmctY29tcG9uZW50cy5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9uZy1jb21wb25lbnRzL3NyYy9saWIvbmctY29tcG9uZW50cy5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUM3QyxPQUFPLEVBQXVCLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUM5RCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFFL0MsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ25ELE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLHNEQUFzRCxDQUFDO0FBQy9GLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLG9EQUFvRCxDQUFDO0FBQzNGLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLDhDQUE4QyxDQUFDO0FBQ2xGLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLHNEQUFzRCxDQUFDO0FBQy9GLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLDRDQUE0QyxDQUFDO0FBQ2pGLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBQ2xFLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLHNDQUFzQyxDQUFDO0FBQzdFLE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxNQUFNLDBEQUEwRCxDQUFDO0FBQ3JHLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHdDQUF3QyxDQUFDO0FBQzNFLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLDhDQUE4QyxDQUFDO0FBQ25GLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLG9EQUFvRCxDQUFDO0FBQzNGLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQ2xFLE9BQU8sRUFBRSw2QkFBNkIsRUFBRSxNQUFNLCtDQUErQyxDQUFDO0FBQzlGLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSwyQ0FBMkMsQ0FBQztBQUMzRSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxtREFBbUQsQ0FBQztBQUN4RixPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUNuRCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSx3Q0FBd0MsQ0FBQztBQUMxRSxPQUFPLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSw0REFBNEQsQ0FBQztBQUN4RyxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSx1Q0FBdUMsQ0FBQztBQUN6RSxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSw0Q0FBNEMsQ0FBQztBQUNsRixPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSw2Q0FBNkMsQ0FBQztBQUNwRixPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSwwQ0FBMEMsQ0FBQztBQUMvRSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sbUNBQW1DLENBQUM7QUFDcEUsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0seUNBQXlDLENBQUM7QUFDL0UsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sNENBQTRDLENBQUM7QUFDakYsT0FBTyxFQUFFLDJCQUEyQixFQUFFLE1BQU0scURBQXFELENBQUM7QUFDbEcsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sMENBQTBDLENBQUM7QUFDN0UsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sMENBQTBDLENBQUM7QUFDN0UsT0FBTyxFQUFFLDJCQUEyQixFQUFFLE1BQU0sc0RBQXNELENBQUM7QUFDbkcsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sOENBQThDLENBQUM7QUFDbEYsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sK0RBQStELENBQUM7QUFDekcsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sb0RBQW9ELENBQUM7QUFDM0YsT0FBTyxFQUFFLCtCQUErQixFQUFFLE1BQU0sc0VBQXNFLENBQUM7QUFDdkgsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sNkRBQTZELENBQUM7QUFDcEcsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLGtDQUFrQyxDQUFDO0FBQ2xFLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLHFEQUFxRCxDQUFDO0FBQzNGLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLHFEQUFxRCxDQUFDO0FBQzNGLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLHFEQUFxRCxDQUFDO0FBQzNGLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLHVEQUF1RCxDQUFDO0FBQzlGLE9BQU8sRUFBRSwyQkFBMkIsRUFBRSxNQUFNLHFFQUFxRSxDQUFDO0FBQ2xILE9BQU8sRUFBRSwyQkFBMkIsRUFBRSxNQUFNLHFFQUFxRSxDQUFDO0FBQ2xILE9BQU8sRUFBRSwyQkFBMkIsRUFBRSxNQUFNLHFFQUFxRSxDQUFDO0FBQ2xILE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLDBDQUEwQyxDQUFDO0FBQzdFLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLDZEQUE2RCxDQUFDO0FBQ3RHLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLHNEQUFzRCxDQUFDO0FBQy9GLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHNDQUFzQyxDQUFDO0FBQ3hFLE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxNQUFNLGdEQUFnRCxDQUFDO0FBQzNGLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUM1RCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sb0NBQW9DLENBQUM7QUFDckUsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0seURBQXlELENBQUM7QUFDaEcsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sMERBQTBELENBQUM7QUFDcEcsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sbURBQW1ELENBQUM7QUFDeEYsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sZUFBZSxDQUFDOztBQTBHckQsTUFBTSxPQUFPLHNCQUFzQjtJQUNqQyxNQUFNLENBQUMsT0FBTztRQUNaLE9BQU87WUFDTCxRQUFRLEVBQUUsc0JBQXNCO1lBQ2hDLFNBQVMsRUFBRTtnQkFDVCxpQkFBaUI7Z0JBQ2pCLGNBQWM7YUFDZjtTQUNGLENBQUM7SUFDSixDQUFDOzttSEFUVSxzQkFBc0I7b0hBQXRCLHNCQUFzQixpQkF0Ry9CLFdBQVc7UUFDWCx1QkFBdUI7UUFDdkIscUJBQXFCO1FBQ3JCLGtCQUFrQjtRQUNsQix1QkFBdUI7UUFDdkIsbUJBQW1CO1FBQ25CLHFCQUFxQjtRQUNyQix5QkFBeUI7UUFDekIsaUJBQWlCO1FBQ2pCLG1CQUFtQjtRQUNuQixxQkFBcUI7UUFDckIsa0JBQWtCO1FBQ2xCLDZCQUE2QjtRQUM3QixjQUFjO1FBQ2QsbUJBQW1CO1FBQ25CLGdCQUFnQjtRQUNoQiwwQkFBMEI7UUFDMUIsZ0JBQWdCO1FBQ2hCLG9CQUFvQjtRQUNwQixxQkFBcUI7UUFDckIsbUJBQW1CO1FBQ25CLGVBQWU7UUFDZixvQkFBb0I7UUFDcEIsb0JBQW9CO1FBQ3BCLG1CQUFtQjtRQUNuQiwyQkFBMkI7UUFDM0IsaUJBQWlCO1FBQ2pCLGlCQUFpQjtRQUNqQiwyQkFBMkI7UUFDM0Isa0JBQWtCO1FBQ2xCLHdCQUF3QjtRQUN4QixxQkFBcUI7UUFDckIsK0JBQStCO1FBQy9CLHFCQUFxQjtRQUNyQixjQUFjO1FBQ2Qsb0JBQW9CO1FBQ3BCLG9CQUFvQjtRQUNwQixvQkFBb0I7UUFDcEIscUJBQXFCO1FBQ3JCLDJCQUEyQjtRQUMzQiwyQkFBMkI7UUFDM0IsMkJBQTJCO1FBQzNCLGlCQUFpQjtRQUNqQix1QkFBdUI7UUFDdkIsdUJBQXVCO1FBQ3ZCLGdCQUFnQjtRQUNoQix5QkFBeUI7UUFDekIsZUFBZTtRQUNmLHFCQUFxQjtRQUNyQix3QkFBd0I7UUFDeEIsbUJBQW1CLGFBR25CLFlBQVk7UUFDWixZQUFZO1FBQ1osZ0JBQWdCO1FBQ2hCLFdBQVcsYUFHWCxXQUFXO1FBQ1gscUJBQXFCO1FBQ3JCLGtCQUFrQjtRQUNsQix1QkFBdUI7UUFDdkIsbUJBQW1CO1FBQ25CLHFCQUFxQjtRQUNyQix5QkFBeUI7UUFDekIsaUJBQWlCO1FBQ2pCLG1CQUFtQjtRQUNuQixxQkFBcUI7UUFDckIsa0JBQWtCO1FBQ2xCLGNBQWM7UUFDZCxtQkFBbUI7UUFDbkIsZ0JBQWdCO1FBQ2hCLGdCQUFnQjtRQUNoQixvQkFBb0I7UUFDcEIscUJBQXFCO1FBQ3JCLG1CQUFtQjtRQUNuQixlQUFlO1FBQ2Ysb0JBQW9CO1FBQ3BCLG9CQUFvQjtRQUNwQixtQkFBbUI7UUFDbkIsMkJBQTJCO1FBQzNCLGlCQUFpQjtRQUNqQixpQkFBaUI7UUFDakIsMkJBQTJCO1FBQzNCLGtCQUFrQjtRQUNsQix3QkFBd0I7UUFDeEIscUJBQXFCO1FBQ3JCLGNBQWM7UUFDZCxvQkFBb0I7UUFDcEIsb0JBQW9CO1FBQ3BCLG9CQUFvQjtRQUNwQixpQkFBaUI7UUFDakIsdUJBQXVCO1FBQ3ZCLHVCQUF1QjtRQUN2QixnQkFBZ0I7UUFDaEIseUJBQXlCO1FBQ3pCLGVBQWU7UUFDZixxQkFBcUI7UUFDckIsbUJBQW1CO29IQUdWLHNCQUFzQixZQWpEL0IsWUFBWTtRQUNaLFlBQVk7UUFDWixnQkFBZ0I7UUFDaEIsV0FBVzsyRkE4Q0Ysc0JBQXNCO2tCQXhHbEMsUUFBUTttQkFBQztvQkFDUixZQUFZLEVBQUU7d0JBQ1osV0FBVzt3QkFDWCx1QkFBdUI7d0JBQ3ZCLHFCQUFxQjt3QkFDckIsa0JBQWtCO3dCQUNsQix1QkFBdUI7d0JBQ3ZCLG1CQUFtQjt3QkFDbkIscUJBQXFCO3dCQUNyQix5QkFBeUI7d0JBQ3pCLGlCQUFpQjt3QkFDakIsbUJBQW1CO3dCQUNuQixxQkFBcUI7d0JBQ3JCLGtCQUFrQjt3QkFDbEIsNkJBQTZCO3dCQUM3QixjQUFjO3dCQUNkLG1CQUFtQjt3QkFDbkIsZ0JBQWdCO3dCQUNoQiwwQkFBMEI7d0JBQzFCLGdCQUFnQjt3QkFDaEIsb0JBQW9CO3dCQUNwQixxQkFBcUI7d0JBQ3JCLG1CQUFtQjt3QkFDbkIsZUFBZTt3QkFDZixvQkFBb0I7d0JBQ3BCLG9CQUFvQjt3QkFDcEIsbUJBQW1CO3dCQUNuQiwyQkFBMkI7d0JBQzNCLGlCQUFpQjt3QkFDakIsaUJBQWlCO3dCQUNqQiwyQkFBMkI7d0JBQzNCLGtCQUFrQjt3QkFDbEIsd0JBQXdCO3dCQUN4QixxQkFBcUI7d0JBQ3JCLCtCQUErQjt3QkFDL0IscUJBQXFCO3dCQUNyQixjQUFjO3dCQUNkLG9CQUFvQjt3QkFDcEIsb0JBQW9CO3dCQUNwQixvQkFBb0I7d0JBQ3BCLHFCQUFxQjt3QkFDckIsMkJBQTJCO3dCQUMzQiwyQkFBMkI7d0JBQzNCLDJCQUEyQjt3QkFDM0IsaUJBQWlCO3dCQUNqQix1QkFBdUI7d0JBQ3ZCLHVCQUF1Qjt3QkFDdkIsZ0JBQWdCO3dCQUNoQix5QkFBeUI7d0JBQ3pCLGVBQWU7d0JBQ2YscUJBQXFCO3dCQUNyQix3QkFBd0I7d0JBQ3hCLG1CQUFtQjtxQkFDcEI7b0JBQ0QsT0FBTyxFQUFFO3dCQUNQLFlBQVk7d0JBQ1osWUFBWTt3QkFDWixnQkFBZ0I7d0JBQ2hCLFdBQVc7cUJBQ1o7b0JBQ0QsT0FBTyxFQUFFO3dCQUNQLFdBQVc7d0JBQ1gscUJBQXFCO3dCQUNyQixrQkFBa0I7d0JBQ2xCLHVCQUF1Qjt3QkFDdkIsbUJBQW1CO3dCQUNuQixxQkFBcUI7d0JBQ3JCLHlCQUF5Qjt3QkFDekIsaUJBQWlCO3dCQUNqQixtQkFBbUI7d0JBQ25CLHFCQUFxQjt3QkFDckIsa0JBQWtCO3dCQUNsQixjQUFjO3dCQUNkLG1CQUFtQjt3QkFDbkIsZ0JBQWdCO3dCQUNoQixnQkFBZ0I7d0JBQ2hCLG9CQUFvQjt3QkFDcEIscUJBQXFCO3dCQUNyQixtQkFBbUI7d0JBQ25CLGVBQWU7d0JBQ2Ysb0JBQW9CO3dCQUNwQixvQkFBb0I7d0JBQ3BCLG1CQUFtQjt3QkFDbkIsMkJBQTJCO3dCQUMzQixpQkFBaUI7d0JBQ2pCLGlCQUFpQjt3QkFDakIsMkJBQTJCO3dCQUMzQixrQkFBa0I7d0JBQ2xCLHdCQUF3Qjt3QkFDeEIscUJBQXFCO3dCQUNyQixjQUFjO3dCQUNkLG9CQUFvQjt3QkFDcEIsb0JBQW9CO3dCQUNwQixvQkFBb0I7d0JBQ3BCLGlCQUFpQjt3QkFDakIsdUJBQXVCO3dCQUN2Qix1QkFBdUI7d0JBQ3ZCLGdCQUFnQjt3QkFDaEIseUJBQXlCO3dCQUN6QixlQUFlO3dCQUNmLHFCQUFxQjt3QkFDckIsbUJBQW1CO3FCQUNwQjtpQkFDRiIsInNvdXJjZXNDb250ZW50IjpbIlxyXG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xyXG5pbXBvcnQgeyBGb3Jtc01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuaW1wb3J0IHsgTW9kdWxlV2l0aFByb3ZpZGVycywgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgUm91dGVyTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcclxuXHJcbmltcG9ydCB7IEFkZHJlc3NQaXBlIH0gZnJvbSAnLi9waXBlcy9hZGRyZXNzLnBpcGUnO1xyXG5pbXBvcnQgeyBBZHZhbmNlZFNlYXJjaENvbXBvbmVudCB9IGZyb20gJy4vY29udHJvbHMvYWR2YW5jZWQtc2VhcmNoL2FkdmFuY2VkLXNlYXJjaC5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBBdXRoQ2FsbGJhY2tDb21wb25lbnQgfSBmcm9tICcuL3BhZ2VzL2F1dGgvYXV0aC1jYWxsYmFjay9hdXRoLWNhbGxiYWNrLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IEF1dGhSZW5ld0NvbXBvbmVudCB9IGZyb20gJy4vcGFnZXMvYXV0aC9hdXRoLXJlbmV3L2F1dGgtcmVuZXcuY29tcG9uZW50JztcclxuaW1wb3J0IHsgQXZhdGFySW5pdGlhbHNDb21wb25lbnQgfSBmcm9tICcuL2NvbnRyb2xzL2F2YXRhci1pbml0aWFscy9hdmF0YXItaW5pdGlhbHMuY29tcG9uZW50JztcclxuaW1wb3J0IHsgQnJlYWRjcnVtYkNvbXBvbmVudCB9IGZyb20gJy4vY29udHJvbHMvYnJlYWRjcnVtYi9icmVhZGNydW1iLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IEJyZWFkY3J1bWJTZXJ2aWNlIH0gZnJvbSAnLi9zZXJ2aWNlcy9icmVhZGNydW1iLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBDbGlja091dHNpZGVEaXJlY3RpdmUgfSBmcm9tICcuL2RpcmVjdGl2ZXMvY2xpY2stb3V0c2lkZS5kaXJlY3RpdmUnO1xyXG5pbXBvcnQgeyBDb2xsYXBzaWJsZVBhbmVsQ29tcG9uZW50IH0gZnJvbSAnLi9jb250cm9scy9jb2xsYXBzaWJsZS1wYW5lbC9jb2xsYXBzaWJsZS1wYW5lbC5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBDb21ib2JveENvbXBvbmVudCB9IGZyb20gJy4vY29udHJvbHMvY29tYm9ib3gvY29tYm9ib3guY29tcG9uZW50JztcclxuaW1wb3J0IHsgRGF0ZXBpY2tlckNvbXBvbmVudCB9IGZyb20gJy4vY29udHJvbHMvZGF0ZS1waWNrZXIvZGF0ZS1waWNrZXIuY29tcG9uZW50JztcclxuaW1wb3J0IHsgRHJvcERvd25NZW51Q29tcG9uZW50IH0gZnJvbSAnLi9jb250cm9scy9kcm9wLWRvd24tbWVudS9kcm9wLWRvd24tbWVudS5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBEdXJhdGlvbkZvcm1hdFBpcGUgfSBmcm9tICcuL3BpcGVzL2R1cmF0aW9uLWZvcm1hdC5waXBlJztcclxuaW1wb3J0IHsgRHluYW1pY0NvbXBvbmVudEhvc3REaXJlY3RpdmUgfSBmcm9tICcuL2RpcmVjdGl2ZXMvZHluYW1pYy1jb21wb25lbnQtaG9zdC5kaXJlY3RpdmUnO1xyXG5pbXBvcnQgeyBFcnJvckNvbXBvbmVudCB9IGZyb20gJy4vcGFnZXMvaHR0cC1zdGF0dXMvZXJyb3IvZXJyb3IuY29tcG9uZW50JztcclxuaW1wb3J0IHsgRm9ybUxheW91dENvbXBvbmVudCB9IGZyb20gJy4vbGF5b3V0cy92aWV3cy9mb3JtLWxheW91dC9mb3JtLWxheW91dC5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBJbmRpY2VBdXRoTW9kdWxlIH0gZnJvbSAnQGluZGljZS9uZy1hdXRoJztcclxuaW1wb3J0IHsgS3BpVGlsZUNvbXBvbmVudCB9IGZyb20gJy4vY29udHJvbHMva3BpLXRpbGUva3BpLXRpbGUuY29tcG9uZW50JztcclxuaW1wb3J0IHsgTGFuZ3VhZ2VTZWxlY3Rpb25Db21wb25lbnQgfSBmcm9tICcuL2NvbnRyb2xzL2xhbmd1YWdlLXNlbGVjdGlvbi9sYW5ndWFnZS1zZWxlY3Rpb24uY29tcG9uZW50JztcclxuaW1wb3J0IHsgTGliU3RlcENvbXBvbmVudCB9IGZyb20gJy4vY29udHJvbHMvc3RlcHBlci9saWItc3RlcC5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBMaWJTdGVwSW5mb0RpcmVjdGl2ZSB9IGZyb20gJy4vY29udHJvbHMvc3RlcHBlci9saWItc3RlcC1pbmZvLmRpcmVjdGl2ZSc7XHJcbmltcG9ydCB7IExpYlN0ZXBMYWJlbERpcmVjdGl2ZSB9IGZyb20gJy4vY29udHJvbHMvc3RlcHBlci9saWItc3RlcC1sYWJlbC5kaXJlY3RpdmUnO1xyXG5pbXBvcnQgeyBMaWJTdGVwcGVyQ29tcG9uZW50IH0gZnJvbSAnLi9jb250cm9scy9zdGVwcGVyL2xpYi1zdGVwcGVyLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IExpYlRhYkNvbXBvbmVudCB9IGZyb20gJy4vY29udHJvbHMvdGFicy9saWItdGFiLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IExpYlRhYkdyb3VwQ29tcG9uZW50IH0gZnJvbSAnLi9jb250cm9scy90YWJzL2xpYi10YWItZ3JvdXAuY29tcG9uZW50JztcclxuaW1wb3J0IHsgTGlzdENvbHVtbkNvbXBvbmVudCB9IGZyb20gJy4vY29udHJvbHMvbGlzdC12aWV3L2xpc3QtY29sdW1uLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IExpc3REZXRhaWxzU2VjdGlvbkNvbXBvbmVudCB9IGZyb20gJy4vY29udHJvbHMvbGlzdC12aWV3L2xpc3QtZGV0YWlscy1zZWN0aW9uLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IExpc3RUaWxlQ29tcG9uZW50IH0gZnJvbSAnLi9jb250cm9scy9saXN0LXZpZXcvbGlzdC10aWxlLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IExpc3RWaWV3Q29tcG9uZW50IH0gZnJvbSAnLi9jb250cm9scy9saXN0LXZpZXcvbGlzdC12aWV3LmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IExpc3RWaWV3RW1wdHlTdGF0ZUNvbXBvbmVudCB9IGZyb20gJy4vY29udHJvbHMvbGlzdC12aWV3L2xpc3Qtdmlldy1lbXB0eS1zdGF0ZS5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBMb2dnZWRPdXRDb21wb25lbnQgfSBmcm9tICcuL3BhZ2VzL2F1dGgvbG9nZ2VkLW91dC9sb2dnZWQtb3V0LmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IE1vZGVsVmlld0xheW91dENvbXBvbmVudCB9IGZyb20gJy4vbGF5b3V0cy92aWV3cy9tb2RlbC12aWV3LWxheW91dC9tb2RlbC12aWV3LWxheW91dC5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBOYXZMaW5rc0xpc3RDb21wb25lbnQgfSBmcm9tICcuL2NvbnRyb2xzL25hdi1saW5rcy1saXN0L25hdi1saW5rcy1saXN0LmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IE5vdGlmaWNhdGlvbnNJbmRpY2F0b3JDb21wb25lbnQgfSBmcm9tICcuL2NvbnRyb2xzL25vdGlmaWNhdGlvbnMtaW5kaWNhdG9yL25vdGlmaWNhdGlvbnMtaW5kaWNhdG9yLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IFBhZ2VOb3RGb3VuZENvbXBvbmVudCB9IGZyb20gJy4vcGFnZXMvaHR0cC1zdGF0dXMvcGFnZS1ub3QtZm91bmQvcGFnZS1ub3QtZm91bmQuY29tcG9uZW50JztcclxuaW1wb3J0IHsgUGFnZXJDb21wb25lbnQgfSBmcm9tICcuL2NvbnRyb2xzL3BhZ2VyL3BhZ2VyLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IFNoZWxsRm9vdGVyQ29tcG9uZW50IH0gZnJvbSAnLi9sYXlvdXRzL3NoZWxsL3NoZWxsLWZvb3Rlci9zaGVsbC1mb290ZXIuY29tcG9uZW50JztcclxuaW1wb3J0IHsgU2hlbGxIZWFkZXJDb21wb25lbnQgfSBmcm9tICcuL2xheW91dHMvc2hlbGwvc2hlbGwtaGVhZGVyL3NoZWxsLWhlYWRlci5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBTaGVsbExheW91dENvbXBvbmVudCB9IGZyb20gJy4vbGF5b3V0cy9zaGVsbC9zaGVsbC1sYXlvdXQvc2hlbGwtbGF5b3V0LmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IFNoZWxsU2lkZWJhckNvbXBvbmVudCB9IGZyb20gJy4vbGF5b3V0cy9zaGVsbC9zaGVsbC1zaWRlYmFyL3NoZWxsLXNpZGViYXIuY29tcG9uZW50JztcclxuaW1wb3J0IHsgU2hlbGxTaWRlYmFySGVhZGVyQ29tcG9uZW50IH0gZnJvbSAnLi9sYXlvdXRzL3NoZWxsL3NoZWxsLXNpZGViYXItaGVhZGVyL3NoZWxsLXNpZGViYXItaGVhZGVyLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IFNoZWxsU2lkZWJhckxheW91dENvbXBvbmVudCB9IGZyb20gJy4vbGF5b3V0cy9zaGVsbC9zaGVsbC1zaWRlYmFyLWxheW91dC9zaGVsbC1zaWRlYmFyLWxheW91dC5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBTaGVsbFN0YWNrZWRMYXlvdXRDb21wb25lbnQgfSBmcm9tICcuL2xheW91dHMvc2hlbGwvc2hlbGwtc3RhY2tlZC1sYXlvdXQvc2hlbGwtc3RhY2tlZC1sYXlvdXQuY29tcG9uZW50JztcclxuaW1wb3J0IHsgU2lkZVBhbmVDb21wb25lbnQgfSBmcm9tICcuL2NvbnRyb2xzL3NpZGUtcGFuZS9zaWRlLXBhbmUuY29tcG9uZW50JztcclxuaW1wb3J0IHsgU2lkZVZpZXdMYXlvdXRDb21wb25lbnQgfSBmcm9tICcuL2xheW91dHMvdmlld3Mvc2lkZS12aWV3LWxheW91dC9zaWRlLXZpZXctbGF5b3V0LmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IFNrZWxldG9uTG9hZGVyQ29tcG9uZW50IH0gZnJvbSAnLi9jb250cm9scy9za2VsZXRvbi1sb2FkZXIvc2tlbGV0b24tbG9hZGVyLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IFRvYXN0ZXJDb21wb25lbnQgfSBmcm9tICcuL2NvbnRyb2xzL3RvYXN0ZXIvdG9hc3Rlci5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBUb2FzdGVyQ29udGFpbmVyQ29tcG9uZW50IH0gZnJvbSAnLi9jb250cm9scy90b2FzdGVyL3RvYXN0ZXItY29udGFpbmVyLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IFRvYXN0ZXJTZXJ2aWNlIH0gZnJvbSAnLi9zZXJ2aWNlcy90b2FzdGVyLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBUb2dnbGVDb21wb25lbnQgfSBmcm9tICcuL2NvbnRyb2xzL3RvZ2dsZS90b2dnbGUuY29tcG9uZW50JztcclxuaW1wb3J0IHsgVW5hdXRob3JpemVkQ29tcG9uZW50IH0gZnJvbSAnLi9wYWdlcy9odHRwLXN0YXR1cy91bmF1dGhvcml6ZWQvdW5hdXRob3JpemVkLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IFVzZXJQcm9maWxlTWVudUNvbXBvbmVudCB9IGZyb20gJy4vY29udHJvbHMvdXNlci1wcm9maWxlLW1lbnUvdXNlci1wcm9maWxlLW1lbnUuY29tcG9uZW50JztcclxuaW1wb3J0IHsgVmlld0xheW91dENvbXBvbmVudCB9IGZyb20gJy4vbGF5b3V0cy92aWV3cy92aWV3LWxheW91dC92aWV3LWxheW91dC5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBMaWJUYWJMYWJlbERpcmVjdGl2ZSB9IGZyb20gJy4uL3B1YmxpYy1hcGknO1xyXG5cclxuQE5nTW9kdWxlKHtcclxuICBkZWNsYXJhdGlvbnM6IFtcclxuICAgIEFkZHJlc3NQaXBlLFxyXG4gICAgQWR2YW5jZWRTZWFyY2hDb21wb25lbnQsXHJcbiAgICBBdXRoQ2FsbGJhY2tDb21wb25lbnQsXHJcbiAgICBBdXRoUmVuZXdDb21wb25lbnQsXHJcbiAgICBBdmF0YXJJbml0aWFsc0NvbXBvbmVudCxcclxuICAgIEJyZWFkY3J1bWJDb21wb25lbnQsXHJcbiAgICBDbGlja091dHNpZGVEaXJlY3RpdmUsXHJcbiAgICBDb2xsYXBzaWJsZVBhbmVsQ29tcG9uZW50LFxyXG4gICAgQ29tYm9ib3hDb21wb25lbnQsXHJcbiAgICBEYXRlcGlja2VyQ29tcG9uZW50LFxyXG4gICAgRHJvcERvd25NZW51Q29tcG9uZW50LFxyXG4gICAgRHVyYXRpb25Gb3JtYXRQaXBlLFxyXG4gICAgRHluYW1pY0NvbXBvbmVudEhvc3REaXJlY3RpdmUsXHJcbiAgICBFcnJvckNvbXBvbmVudCxcclxuICAgIEZvcm1MYXlvdXRDb21wb25lbnQsXHJcbiAgICBLcGlUaWxlQ29tcG9uZW50LFxyXG4gICAgTGFuZ3VhZ2VTZWxlY3Rpb25Db21wb25lbnQsXHJcbiAgICBMaWJTdGVwQ29tcG9uZW50LFxyXG4gICAgTGliU3RlcEluZm9EaXJlY3RpdmUsXHJcbiAgICBMaWJTdGVwTGFiZWxEaXJlY3RpdmUsXHJcbiAgICBMaWJTdGVwcGVyQ29tcG9uZW50LFxyXG4gICAgTGliVGFiQ29tcG9uZW50LFxyXG4gICAgTGliVGFiR3JvdXBDb21wb25lbnQsXHJcbiAgICBMaWJUYWJMYWJlbERpcmVjdGl2ZSxcclxuICAgIExpc3RDb2x1bW5Db21wb25lbnQsXHJcbiAgICBMaXN0RGV0YWlsc1NlY3Rpb25Db21wb25lbnQsXHJcbiAgICBMaXN0VGlsZUNvbXBvbmVudCxcclxuICAgIExpc3RWaWV3Q29tcG9uZW50LFxyXG4gICAgTGlzdFZpZXdFbXB0eVN0YXRlQ29tcG9uZW50LFxyXG4gICAgTG9nZ2VkT3V0Q29tcG9uZW50LFxyXG4gICAgTW9kZWxWaWV3TGF5b3V0Q29tcG9uZW50LFxyXG4gICAgTmF2TGlua3NMaXN0Q29tcG9uZW50LFxyXG4gICAgTm90aWZpY2F0aW9uc0luZGljYXRvckNvbXBvbmVudCxcclxuICAgIFBhZ2VOb3RGb3VuZENvbXBvbmVudCxcclxuICAgIFBhZ2VyQ29tcG9uZW50LFxyXG4gICAgU2hlbGxGb290ZXJDb21wb25lbnQsXHJcbiAgICBTaGVsbEhlYWRlckNvbXBvbmVudCxcclxuICAgIFNoZWxsTGF5b3V0Q29tcG9uZW50LFxyXG4gICAgU2hlbGxTaWRlYmFyQ29tcG9uZW50LFxyXG4gICAgU2hlbGxTaWRlYmFySGVhZGVyQ29tcG9uZW50LFxyXG4gICAgU2hlbGxTaWRlYmFyTGF5b3V0Q29tcG9uZW50LFxyXG4gICAgU2hlbGxTdGFja2VkTGF5b3V0Q29tcG9uZW50LFxyXG4gICAgU2lkZVBhbmVDb21wb25lbnQsXHJcbiAgICBTaWRlVmlld0xheW91dENvbXBvbmVudCxcclxuICAgIFNrZWxldG9uTG9hZGVyQ29tcG9uZW50LFxyXG4gICAgVG9hc3RlckNvbXBvbmVudCxcclxuICAgIFRvYXN0ZXJDb250YWluZXJDb21wb25lbnQsXHJcbiAgICBUb2dnbGVDb21wb25lbnQsXHJcbiAgICBVbmF1dGhvcml6ZWRDb21wb25lbnQsXHJcbiAgICBVc2VyUHJvZmlsZU1lbnVDb21wb25lbnQsXHJcbiAgICBWaWV3TGF5b3V0Q29tcG9uZW50XHJcbiAgXSxcclxuICBpbXBvcnRzOiBbXHJcbiAgICBDb21tb25Nb2R1bGUsXHJcbiAgICBSb3V0ZXJNb2R1bGUsXHJcbiAgICBJbmRpY2VBdXRoTW9kdWxlLFxyXG4gICAgRm9ybXNNb2R1bGVcclxuICBdLFxyXG4gIGV4cG9ydHM6IFtcclxuICAgIEFkZHJlc3NQaXBlLFxyXG4gICAgQXV0aENhbGxiYWNrQ29tcG9uZW50LFxyXG4gICAgQXV0aFJlbmV3Q29tcG9uZW50LFxyXG4gICAgQXZhdGFySW5pdGlhbHNDb21wb25lbnQsXHJcbiAgICBCcmVhZGNydW1iQ29tcG9uZW50LFxyXG4gICAgQ2xpY2tPdXRzaWRlRGlyZWN0aXZlLFxyXG4gICAgQ29sbGFwc2libGVQYW5lbENvbXBvbmVudCxcclxuICAgIENvbWJvYm94Q29tcG9uZW50LFxyXG4gICAgRGF0ZXBpY2tlckNvbXBvbmVudCxcclxuICAgIERyb3BEb3duTWVudUNvbXBvbmVudCxcclxuICAgIER1cmF0aW9uRm9ybWF0UGlwZSxcclxuICAgIEVycm9yQ29tcG9uZW50LFxyXG4gICAgRm9ybUxheW91dENvbXBvbmVudCxcclxuICAgIEtwaVRpbGVDb21wb25lbnQsXHJcbiAgICBMaWJTdGVwQ29tcG9uZW50LFxyXG4gICAgTGliU3RlcEluZm9EaXJlY3RpdmUsXHJcbiAgICBMaWJTdGVwTGFiZWxEaXJlY3RpdmUsXHJcbiAgICBMaWJTdGVwcGVyQ29tcG9uZW50LFxyXG4gICAgTGliVGFiQ29tcG9uZW50LFxyXG4gICAgTGliVGFiR3JvdXBDb21wb25lbnQsXHJcbiAgICBMaWJUYWJMYWJlbERpcmVjdGl2ZSxcclxuICAgIExpc3RDb2x1bW5Db21wb25lbnQsXHJcbiAgICBMaXN0RGV0YWlsc1NlY3Rpb25Db21wb25lbnQsXHJcbiAgICBMaXN0VGlsZUNvbXBvbmVudCxcclxuICAgIExpc3RWaWV3Q29tcG9uZW50LFxyXG4gICAgTGlzdFZpZXdFbXB0eVN0YXRlQ29tcG9uZW50LFxyXG4gICAgTG9nZ2VkT3V0Q29tcG9uZW50LFxyXG4gICAgTW9kZWxWaWV3TGF5b3V0Q29tcG9uZW50LFxyXG4gICAgUGFnZU5vdEZvdW5kQ29tcG9uZW50LFxyXG4gICAgUGFnZXJDb21wb25lbnQsXHJcbiAgICBTaGVsbEZvb3RlckNvbXBvbmVudCxcclxuICAgIFNoZWxsSGVhZGVyQ29tcG9uZW50LFxyXG4gICAgU2hlbGxMYXlvdXRDb21wb25lbnQsXHJcbiAgICBTaWRlUGFuZUNvbXBvbmVudCxcclxuICAgIFNpZGVWaWV3TGF5b3V0Q29tcG9uZW50LFxyXG4gICAgU2tlbGV0b25Mb2FkZXJDb21wb25lbnQsXHJcbiAgICBUb2FzdGVyQ29tcG9uZW50LFxyXG4gICAgVG9hc3RlckNvbnRhaW5lckNvbXBvbmVudCxcclxuICAgIFRvZ2dsZUNvbXBvbmVudCxcclxuICAgIFVuYXV0aG9yaXplZENvbXBvbmVudCxcclxuICAgIFZpZXdMYXlvdXRDb21wb25lbnRcclxuICBdXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBJbmRpY2VDb21wb25lbnRzTW9kdWxlIHtcclxuICBzdGF0aWMgZm9yUm9vdCgpOiBNb2R1bGVXaXRoUHJvdmlkZXJzPEluZGljZUNvbXBvbmVudHNNb2R1bGU+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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnJlYWRjcnVtYi5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmctY29tcG9uZW50cy9zcmMvbGliL3NlcnZpY2VzL2JyZWFkY3J1bWIuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDN0QsT0FBTyxFQUFRLGFBQWEsRUFBaUIsTUFBTSxpQkFBaUIsQ0FBQztBQUVyRSxPQUFPLEVBQWMsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQzNDLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUM5RCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sd0NBQXdDLENBQUM7QUFDeEUsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLFdBQVcsQ0FBQzs7OztBQU16QyxNQUFNLE9BQU8saUJBQWlCO0lBSTFCLFlBQ1ksT0FBZSxFQUNmLFVBQTRCLEVBQ0ssWUFBa0I7UUFGbkQsWUFBTyxHQUFQLE9BQU8sQ0FBUTtRQUNmLGVBQVUsR0FBVixVQUFVLENBQWtCO1FBQ0ssaUJBQVksR0FBWixZQUFZLENBQU07UUFMdkQsaUJBQVksR0FBOEIsSUFBSSxPQUFPLEVBQW9CLENBQUM7UUFzQjNFLGVBQVUsR0FBaUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxZQUFZLEVBQUUsQ0FBQztRQWYvRSxJQUFJLFlBQVksRUFBRSxVQUFVLEVBQUU7WUFDMUIsSUFBSSxDQUFDLFlBQVksR0FBRyxJQUFJLENBQUMsbUJBQW1CLEVBQUUsQ0FBQztZQUMvQyxJQUFJLENBQUMsT0FBTztpQkFDUCxNQUFNO2lCQUNOLElBQUksQ0FDRCxNQUFNLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxLQUFLLFlBQVksYUFBYSxDQUFDLEVBQy9DLG9CQUFvQixFQUFFLENBQ3pCO2lC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SW5qZWN0YWJsZSwgT3B0aW9uYWwgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgRGF0YSwgTmF2aWdhdGlvbkVuZCwgUm91dGUsIFJvdXRlciB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XHJcblxyXG5pbXBvcnQgeyBPYnNlcnZhYmxlLCBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IGRpc3RpbmN0VW50aWxDaGFuZ2VkLCBmaWx0ZXIgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XHJcbmltcG9ydCB7IEJyZWFkY3J1bWJJdGVtIH0gZnJvbSAnLi4vY29udHJvbHMvYnJlYWRjcnVtYi9icmVhZGNydW1iLWl0ZW0nO1xyXG5pbXBvcnQgeyBTSEVMTF9DT05GSUcgfSBmcm9tICcuLi90b2tlbnMnO1xyXG5pbXBvcnQgeyBVdGlsaXRpZXNTZXJ2aWNlIH0gZnJvbSAnLi91dGlsaXRpZXMuc2VydmljZSc7XHJcblxyXG5ASW5qZWN0YWJsZSh7XHJcbiAgICBwcm92aWRlZEluOiAncm9vdCdcclxufSlcclxuZXhwb3J0IGNsYXNzIEJyZWFkY3J1bWJTZXJ2aWNlIHtcclxuICAgIHByaXZhdGUgX2RlZmF1bHRIb21lOiBCcmVhZGNydW1iSXRlbSB8IHVuZGVmaW5lZDtcclxuICAgIHByaXZhdGUgX2JyZWFkY3J1bWIkOiBTdWJqZWN0PEJyZWFkY3J1bWJJdGVtW10+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.subject = new BehaviorSubject(NULL_TOAST);
9
- this.toast$ = this.subject.asObservable()
10
- .pipe(filter(toast => toast !== null && toast.title !== NULL_TOAST.title));
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.subject.next({ type, title, body, delay });
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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9hc3Rlci5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmctY29tcG9uZW50cy9zcmMvbGliL3NlcnZpY2VzL3RvYXN0ZXIuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNDLE9BQU8sRUFBRSxlQUFlLEVBQWMsTUFBTSxNQUFNLENBQUM7QUFDbkQsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3hDLE9BQU8sRUFBb0IsVUFBVSxFQUFFLE1BQU0sVUFBVSxDQUFDOztBQUt4RCxNQUFNLE9BQU8sY0FBYztJQUt6QjtRQUNFLElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSxlQUFlLENBQVEsVUFBVSxDQUFDLENBQUM7UUFDdEQsSUFBSSxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLFlBQVksRUFBRTthQUN0QyxJQUFJLENBQUMsTUFBTSxDQUFFLEtBQUssQ0FBQyxFQUFFLENBQUMsS0FBSyxLQUFLLElBQUksSUFBSSxLQUFLLENBQUMsS0FBSyxLQUFLLFVBQVUsQ0FBQyxLQUFLLENBQUUsQ0FBQyxDQUFDO0lBQ2pGLENBQUM7SUFFTSxJQUFJLENBQUMsSUFBZSxFQUFFLEtBQWMsRUFBRSxJQUFhLEVBQUUsS0FBYztRQUN4RSxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxFQUFFLElBQUksRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFFLEtBQUssRUFBVyxDQUFDLENBQUM7SUFDM0QsQ0FBQzs7MkdBYlUsY0FBYzsrR0FBZCxjQUFjLGNBRmIsTUFBTTsyRkFFUCxjQUFjO2tCQUgxQixVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0LCBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IGZpbHRlciB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcclxuaW1wb3J0IHsgVG9hc3QsIFRvYXN0VHlwZSwgTlVMTF9UT0FTVCB9IGZyb20gJy4uL3R5cGVzJztcclxuXHJcbkBJbmplY3RhYmxlKHtcclxuICBwcm92aWRlZEluOiAncm9vdCdcclxufSlcclxuZXhwb3J0IGNsYXNzIFRvYXN0ZXJTZXJ2aWNlIHtcclxuXHJcbiAgcHJpdmF0ZSBzdWJqZWN0OiBCZWhhdmlvclN1YmplY3Q8VG9hc3Q+O1xyXG4gIHB1YmxpYyB0b2FzdCQ6IE9ic2VydmFibGU8VG9hc3Q+O1xyXG5cclxuICBjb25zdHJ1Y3RvcigpIHtcclxuICAgIHRoaXMuc3ViamVjdCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8VG9hc3Q+KE5VTExfVE9BU1QpO1xyXG4gICAgdGhpcy50b2FzdCQgPSB0aGlzLnN1YmplY3QuYXNPYnNlcnZhYmxlKClcclxuICAgICAgLnBpcGUoZmlsdGVyKCB0b2FzdCA9PiB0b2FzdCAhPT0gbnVsbCAmJiB0b2FzdC50aXRsZSAhPT0gTlVMTF9UT0FTVC50aXRsZSApKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBzaG93KHR5cGU6IFRvYXN0VHlwZSwgdGl0bGU/OiBzdHJpbmcsIGJvZHk/OiBzdHJpbmcsIGRlbGF5PzogbnVtYmVyKTogdm9pZCB7XHJcbiAgICB0aGlzLnN1YmplY3QubmV4dCh7IHR5cGUsIHRpdGxlLCBib2R5LCBkZWxheSB9IGFzIFRvYXN0KTtcclxuICB9XHJcbn1cclxuIl19
26
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9hc3Rlci5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmctY29tcG9uZW50cy9zcmMvbGliL3NlcnZpY2VzL3RvYXN0ZXIuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRTNDLE9BQU8sRUFBRSxlQUFlLEVBQWMsTUFBTSxNQUFNLENBQUM7QUFDbkQsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3hDLE9BQU8sRUFBb0IsVUFBVSxFQUFFLE1BQU0sVUFBVSxDQUFDOztBQUt4RCxNQUFNLE9BQU8sY0FBYztJQUd6QjtRQUNFLElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxlQUFlLENBQVEsVUFBVSxDQUFDLENBQUM7UUFDdkQsSUFBSSxDQUFDLE1BQU0sR0FBRyxJQUFJO2FBQ2YsUUFBUTthQUNSLFlBQVksRUFBRTthQUNkLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxLQUFZLEVBQUUsRUFBRSxDQUFDLEtBQUssS0FBSyxJQUFJLElBQUksS0FBSyxDQUFDLEtBQUssS0FBSyxVQUFVLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQztJQUN4RixDQUFDO0lBSU0sSUFBSSxDQUFDLElBQWUsRUFBRSxLQUFjLEVBQUUsSUFBYSxFQUFFLEtBQWM7UUFDeEUsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsRUFBRSxJQUFJLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRSxLQUFLLEVBQVcsQ0FBQyxDQUFDO0lBQzVELENBQUM7OzJHQWZVLGNBQWM7K0dBQWQsY0FBYyxjQUZiLE1BQU07MkZBRVAsY0FBYztrQkFIMUIsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcblxyXG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QsIE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgZmlsdGVyIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xyXG5pbXBvcnQgeyBUb2FzdCwgVG9hc3RUeXBlLCBOVUxMX1RPQVNUIH0gZnJvbSAnLi4vdHlwZXMnO1xyXG5cclxuQEluamVjdGFibGUoe1xyXG4gIHByb3ZpZGVkSW46ICdyb290J1xyXG59KVxyXG5leHBvcnQgY2xhc3MgVG9hc3RlclNlcnZpY2Uge1xyXG4gIHByaXZhdGUgX3N1YmplY3Q6IEJlaGF2aW9yU3ViamVjdDxUb2FzdD47XHJcblxyXG4gIGNvbnN0cnVjdG9yKCkge1xyXG4gICAgdGhpcy5fc3ViamVjdCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8VG9hc3Q+KE5VTExfVE9BU1QpO1xyXG4gICAgdGhpcy50b2FzdCQgPSB0aGlzXHJcbiAgICAgIC5fc3ViamVjdFxyXG4gICAgICAuYXNPYnNlcnZhYmxlKClcclxuICAgICAgLnBpcGUoZmlsdGVyKCh0b2FzdDogVG9hc3QpID0+IHRvYXN0ICE9PSBudWxsICYmIHRvYXN0LnRpdGxlICE9PSBOVUxMX1RPQVNULnRpdGxlKSk7XHJcbiAgfVxyXG4gIFxyXG4gIHB1YmxpYyB0b2FzdCQ6IE9ic2VydmFibGU8VG9hc3Q+O1xyXG5cclxuICBwdWJsaWMgc2hvdyh0eXBlOiBUb2FzdFR5cGUsIHRpdGxlPzogc3RyaW5nLCBib2R5Pzogc3RyaW5nLCBkZWxheT86IG51bWJlcik6IHZvaWQge1xyXG4gICAgdGhpcy5fc3ViamVjdC5uZXh0KHsgdHlwZSwgdGl0bGUsIGJvZHksIGRlbGF5IH0gYXMgVG9hc3QpO1xyXG4gIH1cclxufVxyXG4iXX0=