@energycap/components 0.26.11 → 0.27.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (50) hide show
  1. package/bundles/energycap-components.umd.js +7247 -6296
  2. package/bundles/energycap-components.umd.js.map +1 -1
  3. package/bundles/energycap-components.umd.min.js +16 -1
  4. package/bundles/energycap-components.umd.min.js.map +1 -1
  5. package/energycap-components.d.ts +2 -4
  6. package/energycap-components.metadata.json +1 -1
  7. package/esm2015/energycap-components.js +3 -5
  8. package/esm2015/lib/components.module.js +52 -38
  9. package/esm2015/lib/core/cache.service.js +49 -4
  10. package/esm2015/lib/core/telemetry-tracker.service.js +14 -0
  11. package/esm2015/lib/core/telemetry.service.js +32 -7
  12. package/esm2015/lib/display/help/help-types.js +2 -0
  13. package/esm2015/lib/display/hierarchy/hierarchy-base.js +106 -0
  14. package/esm2015/lib/display/hierarchy/hierarchy-mocks.spec.js +58 -0
  15. package/esm2015/lib/display/hierarchy/hierarchy-tree/hierarchy-tree.component.js +58 -0
  16. package/esm2015/lib/display/resizable/resizable.component.js +57 -0
  17. package/esm2015/lib/display/tree/tree.component.js +83 -0
  18. package/esm2015/lib/shared/page/page-base/page-base.component.js +69 -12
  19. package/esm2015/lib/shared/page/page-statuses.js +23 -0
  20. package/esm2015/lib/shared/testing/hierarchy-base-test-injector-factory.spec.js +17 -0
  21. package/esm2015/lib/shared/testing/page-base-component-test-injector-factory.spec.js +21 -1
  22. package/esm2015/lib/shared/wizard/wizard-base/wizard-base.component.js +260 -0
  23. package/esm2015/lib/shared/wizard/wizard-buttons/wizard-buttons.component.js +52 -0
  24. package/esm2015/lib/shared/wizard/wizard-progress/wizard-progress.component.js +18 -0
  25. package/esm2015/public-api.js +15 -3
  26. package/fesm2015/energycap-components.js +6867 -6000
  27. package/fesm2015/energycap-components.js.map +1 -1
  28. package/lib/components.module.d.ts +2 -3
  29. package/lib/core/cache.service.d.ts +11 -1
  30. package/lib/core/telemetry-tracker.service.d.ts +10 -0
  31. package/lib/core/telemetry.service.d.ts +19 -2
  32. package/lib/display/help/help-types.d.ts +33 -0
  33. package/lib/display/hierarchy/hierarchy-base.d.ts +72 -0
  34. package/lib/display/hierarchy/hierarchy-mocks.spec.d.ts +53 -0
  35. package/lib/display/hierarchy/hierarchy-tree/hierarchy-tree.component.d.ts +29 -0
  36. package/lib/display/resizable/resizable.component.d.ts +28 -0
  37. package/lib/display/tree/tree.component.d.ts +51 -0
  38. package/lib/shared/page/page-base/page-base.component.d.ts +43 -1
  39. package/lib/shared/page/page-statuses.d.ts +13 -0
  40. package/lib/shared/testing/hierarchy-base-test-injector-factory.spec.d.ts +4 -0
  41. package/lib/shared/testing/page-base-component-test-injector-factory.spec.d.ts +9 -0
  42. package/lib/shared/wizard/wizard-base/wizard-base.component.d.ts +131 -0
  43. package/lib/shared/wizard/wizard-buttons/wizard-buttons.component.d.ts +23 -0
  44. package/lib/shared/wizard/wizard-progress/wizard-progress.component.d.ts +7 -0
  45. package/package.json +1 -1
  46. package/public-api.d.ts +14 -2
  47. package/src/assets/locales/en_US.json +3 -1
  48. package/src/styles/mixins/_resizable-base.scss +1 -2
  49. package/esm2015/lib/core/telemetry-base.service.js +0 -3
  50. package/lib/core/telemetry-base.service.d.ts +0 -25
@@ -2,9 +2,7 @@
2
2
  * Generated bundle index. Do not edit.
3
3
  */
4
4
  export * from './public-api';
5
- export { TelemetryService as ɵe } from './lib/core/telemetry.service';
6
- export { AvatarService as ɵc } from './lib/display/avatar/avatar.service';
7
- export { ResizableBase as ɵb } from './lib/display/resizable/resizable-base';
5
+ export { AvatarService as ɵb } from './lib/display/avatar/avatar.service';
8
6
  export { ResizableTableDirective as ɵa } from './lib/display/table/resizable-table.directive';
9
- export { TableDetailRowComponent as ɵd } from './lib/display/table/table-detail-row.component';
10
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW5lcmd5Y2FwLWNvbXBvbmVudHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9wcm9qZWN0cy9jb21wb25lbnRzL3NyYy9lbmVyZ3ljYXAtY29tcG9uZW50cy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUVILGNBQWMsY0FBYyxDQUFDO0FBRTdCLE9BQU8sRUFBQyxnQkFBZ0IsSUFBSSxFQUFFLEVBQUMsTUFBTSw4QkFBOEIsQ0FBQztBQUNwRSxPQUFPLEVBQUMsYUFBYSxJQUFJLEVBQUUsRUFBQyxNQUFNLHFDQUFxQyxDQUFDO0FBQ3hFLE9BQU8sRUFBQyxhQUFhLElBQUksRUFBRSxFQUFDLE1BQU0sd0NBQXdDLENBQUM7QUFDM0UsT0FBTyxFQUFDLHVCQUF1QixJQUFJLEVBQUUsRUFBQyxNQUFNLCtDQUErQyxDQUFDO0FBQzVGLE9BQU8sRUFBQyx1QkFBdUIsSUFBSSxFQUFFLEVBQUMsTUFBTSxnREFBZ0QsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogR2VuZXJhdGVkIGJ1bmRsZSBpbmRleC4gRG8gbm90IGVkaXQuXG4gKi9cblxuZXhwb3J0ICogZnJvbSAnLi9wdWJsaWMtYXBpJztcblxuZXhwb3J0IHtUZWxlbWV0cnlTZXJ2aWNlIGFzIMm1ZX0gZnJvbSAnLi9saWIvY29yZS90ZWxlbWV0cnkuc2VydmljZSc7XG5leHBvcnQge0F2YXRhclNlcnZpY2UgYXMgybVjfSBmcm9tICcuL2xpYi9kaXNwbGF5L2F2YXRhci9hdmF0YXIuc2VydmljZSc7XG5leHBvcnQge1Jlc2l6YWJsZUJhc2UgYXMgybVifSBmcm9tICcuL2xpYi9kaXNwbGF5L3Jlc2l6YWJsZS9yZXNpemFibGUtYmFzZSc7XG5leHBvcnQge1Jlc2l6YWJsZVRhYmxlRGlyZWN0aXZlIGFzIMm1YX0gZnJvbSAnLi9saWIvZGlzcGxheS90YWJsZS9yZXNpemFibGUtdGFibGUuZGlyZWN0aXZlJztcbmV4cG9ydCB7VGFibGVEZXRhaWxSb3dDb21wb25lbnQgYXMgybVkfSBmcm9tICcuL2xpYi9kaXNwbGF5L3RhYmxlL3RhYmxlLWRldGFpbC1yb3cuY29tcG9uZW50JzsiXX0=
7
+ export { TableDetailRowComponent as ɵc } from './lib/display/table/table-detail-row.component';
8
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW5lcmd5Y2FwLWNvbXBvbmVudHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9wcm9qZWN0cy9jb21wb25lbnRzL3NyYy9lbmVyZ3ljYXAtY29tcG9uZW50cy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUVILGNBQWMsY0FBYyxDQUFDO0FBRTdCLE9BQU8sRUFBQyxhQUFhLElBQUksRUFBRSxFQUFDLE1BQU0scUNBQXFDLENBQUM7QUFDeEUsT0FBTyxFQUFDLHVCQUF1QixJQUFJLEVBQUUsRUFBQyxNQUFNLCtDQUErQyxDQUFDO0FBQzVGLE9BQU8sRUFBQyx1QkFBdUIsSUFBSSxFQUFFLEVBQUMsTUFBTSxnREFBZ0QsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogR2VuZXJhdGVkIGJ1bmRsZSBpbmRleC4gRG8gbm90IGVkaXQuXG4gKi9cblxuZXhwb3J0ICogZnJvbSAnLi9wdWJsaWMtYXBpJztcblxuZXhwb3J0IHtBdmF0YXJTZXJ2aWNlIGFzIMm1Yn0gZnJvbSAnLi9saWIvZGlzcGxheS9hdmF0YXIvYXZhdGFyLnNlcnZpY2UnO1xuZXhwb3J0IHtSZXNpemFibGVUYWJsZURpcmVjdGl2ZSBhcyDJtWF9IGZyb20gJy4vbGliL2Rpc3BsYXkvdGFibGUvcmVzaXphYmxlLXRhYmxlLmRpcmVjdGl2ZSc7XG5leHBvcnQge1RhYmxlRGV0YWlsUm93Q29tcG9uZW50IGFzIMm1Y30gZnJvbSAnLi9saWIvZGlzcGxheS90YWJsZS90YWJsZS1kZXRhaWwtcm93LmNvbXBvbmVudCc7Il19
@@ -1,63 +1,67 @@
1
+ import { A11yModule } from '@angular/cdk/a11y';
2
+ import { OverlayModule } from '@angular/cdk/overlay';
1
3
  import { CommonModule } from '@angular/common';
2
4
  import { NgModule } from '@angular/core';
3
5
  import { FormsModule, ReactiveFormsModule } from '@angular/forms';
4
6
  import { RouterModule } from '@angular/router';
5
7
  import { TranslateModule } from '@ngx-translate/core';
6
- import { A11yModule } from '@angular/cdk/a11y';
7
- import { OverlayModule } from '@angular/cdk/overlay';
8
- import { ResizableTableDirective } from './display/table/resizable-table.directive';
9
- import { TableComponent } from './display/table/table.component';
8
+ import { ResizableComponent } from '../public-api';
10
9
  import { BannerComponent } from './controls/banner/banner.component';
11
10
  import { ButtonComponent } from './controls/button/button.component';
11
+ import { CopyButtonDirective } from './controls/button/copy-button.directive';
12
+ import { CheckboxComponent } from './controls/checkbox/checkbox.component';
13
+ import { CollapsibleToggleComponent } from './controls/collapsible-toggle/collapsible-toggle.component';
12
14
  import { ComboboxComponent } from './controls/combobox/combobox.component';
13
15
  import { DropdownComponent } from './controls/dropdown/dropdown.component';
16
+ import { FileUploadComponent } from './controls/file-upload/file-upload.component';
17
+ import { FormControlComponent } from './controls/form-control/form-control.component';
18
+ import { FormGroupComponent } from './controls/form-group/form-group.component';
14
19
  import { MenuComponent } from './controls/menu/menu.component';
15
20
  import { NavItemActiveDirective } from './controls/navigation/nav-item-active.directive';
21
+ import { NumericboxComponent } from './controls/numericbox/numericbox.component';
22
+ import { PopoverComponent } from './controls/popover/popover.component';
23
+ import { RadioButtonComponent } from './controls/radio-button/radio-button.component';
24
+ import { SelectComponent } from './controls/select/select.component';
16
25
  import { TabsComponent } from './controls/tabs/tabs.component';
17
26
  import { TextboxComponent } from './controls/textbox/textbox.component';
27
+ import { AppBarComponent } from './display/app-bar/app-bar.component';
28
+ import { AvatarComponent } from './display/avatar/avatar.component';
18
29
  import { ConfirmComponent } from './display/confirm/confirm.component';
30
+ import { DialogGroupComponent } from './display/dialog/dialog-group/dialog-group.component';
19
31
  import { DialogComponent } from './display/dialog/dialog.component';
20
32
  import { DialogService } from './display/dialog/dialog.service';
33
+ import { HierarchyTreeComponent } from './display/hierarchy/hierarchy-tree/hierarchy-tree.component';
34
+ import { ItemDisplayComponent } from './display/item-display/item-display.component';
35
+ import { JsonDisplayComponent } from './display/json-display/json-display.component';
21
36
  import { SpinnerComponent } from './display/spinner/spinner.component';
22
- import { ViewOverlayComponent } from './display/view-overlay/view-overlay.component';
23
- import { PopupContainerDirective } from './shared/directives/popup/popup-container.directive';
24
- import { DateDisplayPipe } from './shared/display/pipes/date-display.pipe';
25
- import { FormGroupHelper } from './shared/form-group.helper';
26
- import { MockDateDisplayPipe } from './shared/testing/public-mocks.spec';
27
- import { RadioButtonComponent } from './controls/radio-button/radio-button.component';
28
- import { CheckboxComponent } from './controls/checkbox/checkbox.component';
29
- import { NumericboxComponent } from './controls/numericbox/numericbox.component';
30
- import { AvatarComponent } from './display/avatar/avatar.component';
31
- import { AppBarComponent } from './display/app-bar/app-bar.component';
32
37
  import { SplashComponent } from './display/splash/splash.component';
38
+ import { ResizableColumnComponent } from './display/table/resizable-column.component';
39
+ import { ResizableTableDirective } from './display/table/resizable-table.directive';
33
40
  import { SearchableTableComponent } from './display/table/searchable-table.component';
34
- import { IfViewportWidthDirective } from './shared/directives/if-viewport-width/if-viewport-width.directive';
35
- import { ClickAreaForDirective } from './shared/directives/click-area-for/click-area-for.directive';
36
- import { CollapsibleToggleComponent } from './controls/collapsible-toggle/collapsible-toggle.component';
37
- import { TableMasterRowComponent } from './display/table/table-master-row.component';
38
- import { TableMasterHeaderRowComponent } from './display/table/table-master-header-row.component';
39
41
  import { TableDetailRowComponent } from './display/table/table-detail-row.component';
40
42
  import { TableLockedColumnComponent } from './display/table/table-locked-column.component';
41
- import { PopoverComponent } from './controls/popover/popover.component';
42
- import { CopyButtonDirective } from './controls/button/copy-button.directive';
43
+ import { TableMasterHeaderRowComponent } from './display/table/table-master-header-row.component';
44
+ import { TableMasterRowComponent } from './display/table/table-master-row.component';
43
45
  import { TablePaginationComponent } from './display/table/table-pagination.component';
44
- import { RowCountPipe } from './shared/display/pipes/row-count.pipe';
45
- import { TagsComponent } from './display/tags/tags.component';
46
- import { FormControlComponent } from './controls/form-control/form-control.component';
47
- import { SelectComponent } from './controls/select/select.component';
48
- import { ItemDisplayComponent } from './display/item-display/item-display.component';
49
46
  import { TableSelectableRowComponent } from './display/table/table-selectable-row.component';
50
- import { ResizableColumnComponent } from './display/table/resizable-column.component';
51
- import { DialogGroupComponent } from './display/dialog/dialog-group/dialog-group.component';
52
- import { FileUploadComponent } from './controls/file-upload/file-upload.component';
53
- import { FormGroupComponent } from './controls/form-group/form-group.component';
54
- import { JsonDisplayComponent } from './display/json-display/json-display.component';
47
+ import { TableComponent } from './display/table/table.component';
48
+ import { TagsComponent } from './display/tags/tags.component';
55
49
  import { ToastComponent } from './display/toast/toast/toast.component';
56
50
  import { ToasterComponent } from './display/toast/toaster/toaster.component';
57
- import { PageViewComponent } from './shared/page/page-view/page-view.component';
58
- import { PageTitleComponent } from './shared/page/page-title/page-title.component';
51
+ import { TreeComponent } from './display/tree/tree.component';
52
+ import { ViewOverlayComponent } from './display/view-overlay/view-overlay.component';
53
+ import { ClickAreaForDirective } from './shared/directives/click-area-for/click-area-for.directive';
54
+ import { IfViewportWidthDirective } from './shared/directives/if-viewport-width/if-viewport-width.directive';
55
+ import { PopupContainerDirective } from './shared/directives/popup/popup-container.directive';
56
+ import { DateDisplayPipe } from './shared/display/pipes/date-display.pipe';
57
+ import { RowCountPipe } from './shared/display/pipes/row-count.pipe';
59
58
  import { TimeDisplayPipe } from './shared/display/pipes/time-display.pipe';
60
- import { TelemetryService } from './core/telemetry.service';
59
+ import { FormGroupHelper } from './shared/form-group.helper';
60
+ import { PageTitleComponent } from './shared/page/page-title/page-title.component';
61
+ import { PageViewComponent } from './shared/page/page-view/page-view.component';
62
+ import { MockDateDisplayPipe } from './shared/testing/public-mocks.spec';
63
+ import { WizardButtonsComponent } from './shared/wizard/wizard-buttons/wizard-buttons.component';
64
+ import { WizardProgressComponent } from './shared/wizard/wizard-progress/wizard-progress.component';
61
65
  export class ComponentsModule {
62
66
  /**
63
67
  * Providing services through the forRoot pattern here ensures that the components module and the importing
@@ -68,7 +72,7 @@ export class ComponentsModule {
68
72
  return {
69
73
  ngModule: ComponentsModule,
70
74
  providers: [
71
- { provide: TelemetryService, useClass: config.telemetryService }
75
+ config.tracker
72
76
  ]
73
77
  };
74
78
  }
@@ -128,7 +132,12 @@ ComponentsModule.decorators = [
128
132
  ToastComponent,
129
133
  ToasterComponent,
130
134
  PageViewComponent,
131
- PageTitleComponent
135
+ PageTitleComponent,
136
+ WizardProgressComponent,
137
+ WizardButtonsComponent,
138
+ HierarchyTreeComponent,
139
+ TreeComponent,
140
+ ResizableComponent
132
141
  ],
133
142
  imports: [
134
143
  CommonModule,
@@ -194,8 +203,13 @@ ComponentsModule.decorators = [
194
203
  ToastComponent,
195
204
  ToasterComponent,
196
205
  PageViewComponent,
197
- PageTitleComponent
206
+ PageTitleComponent,
207
+ WizardProgressComponent,
208
+ WizardButtonsComponent,
209
+ HierarchyTreeComponent,
210
+ TreeComponent,
211
+ ResizableComponent
198
212
  ]
199
213
  },] }
200
214
  ];
201
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tcG9uZW50cy5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9jb21wb25lbnRzL3NyYy9saWIvY29tcG9uZW50cy5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBdUIsUUFBUSxFQUFRLE1BQU0sZUFBZSxDQUFDO0FBQ3BFLE9BQU8sRUFBRSxXQUFXLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNsRSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ3RELE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDckQsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sMkNBQTJDLENBQUM7QUFDcEYsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBQ2pFLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQztBQUNyRSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sb0NBQW9DLENBQUM7QUFDckUsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sd0NBQXdDLENBQUM7QUFDM0UsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sd0NBQXdDLENBQUM7QUFDM0UsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQy9ELE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLGlEQUFpRCxDQUFDO0FBQ3pGLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUMvRCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxzQ0FB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QjtvQkFDbkIsa0JBQWtCO29CQUNsQixvQkFBb0I7b0JBQ3BCLGNBQWM7b0JBQ2QsZ0JBQWdCO29CQUNoQixpQkFBaUI7b0JBQ2pCLGtCQUFrQjtpQkFDbkI7YUFDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XHJcbmltcG9ydCB7IE1vZHVsZVdpdGhQcm92aWRlcnMsIE5nTW9kdWxlLCBUeXBlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEZvcm1zTW9kdWxlLCBSZWFjdGl2ZUZvcm1zTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQgeyBSb3V0ZXJNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xyXG5pbXBvcnQgeyBUcmFuc2xhdGVNb2R1bGUgfSBmcm9tICdAbmd4LXRyYW5zbGF0ZS9jb3JlJztcclxuaW1wb3J0IHsgQTExeU1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9hMTF5JztcclxuaW1wb3J0IHsgT3ZlcmxheU1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9vdmVybGF5JztcclxuaW1wb3J0IHsgUmVzaXphYmxlVGFibGVEaXJlY3RpdmUgfSBmcm9tICcuL2Rpc3BsYXkvdGFibGUvcmVzaXphYmxlLXRhYmxlLmRpcmVjdGl2ZSc7XHJcbmltcG9ydCB7IFRhYmxlQ29tcG9uZW50IH0gZnJvbSAnLi9kaXNwbGF5L3RhYmxlL3RhYmxlLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IEJhbm5lckNvbXBvbmVudCB9IGZyb20gJy4vY29udHJvbHMvYmFubmVyL2Jhbm5lci5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBCdXR0b25Db21wb25lbnQgfSBmcm9tICcuL2NvbnRyb2xzL2J1dHRvbi9idXR0b24uY29tcG9uZW50JztcclxuaW1wb3J0IHsgQ29tYm9ib3hDb21wb25lbnQgfSBmcm9tICcuL2NvbnRyb2xzL2NvbWJvYm94L2NvbWJvYm94LmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IERyb3Bkb3duQ29tcG9uZW50IH0gZnJvbSAnLi9jb250cm9scy9kcm9wZG93bi9kcm9wZG93bi5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBNZW51Q29tcG9uZW50IH0gZnJvbSAnLi9jb250cm9scy9tZW51L21lbnUuY29tcG9uZW50JztcclxuaW1wb3J0IHsgTmF2SXRlbUFjdGl2ZURpcmVjdGl2ZSB9IGZyb20gJy4vY29udHJvbHMvbmF2aWdhdGlvbi9uYXYtaXRlbS1hY3RpdmUuZGlyZWN0aXZlJztcclxuaW1wb3J0IHsgVGFic0NvbXBvbmVudCB9IGZyb20gJy4vY29udHJvbHMvdGFicy90YWJzLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IFRleHRib3hDb21wb25lbnQgfSBmcm9tICcuL2NvbnRyb2xzL3RleHRib3gvdGV4dGJveC5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBDb25maXJtQ29tcG9uZW50IH0gZnJvbSAnLi9kaXNwbGF5L2NvbmZpcm0vY29uZmlybS5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBEaWFsb2dDb21wb25lbnQgfSBmcm9tICcuL2Rpc3BsYXkvZGlhbG9nL2RpYWxvZy5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBEaWFsb2dTZXJ2aWNlIH0gZnJvbSAnLi9kaXNwbGF5L2RpYWxvZy9kaWFsb2cuc2VydmljZSc7XHJcbmltcG9ydCB7IFNwaW5uZXJDb21wb25lbnQgfSBmcm9tICcuL2Rpc3BsYXkvc3Bpbm5lci9zcGlubmVyLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IFZpZXdPdmVybGF5Q29tcG9uZW50IH0gZnJvbSAnLi9kaXNwbGF5L3ZpZXctb3ZlcmxheS92aWV3LW92ZXJsYXkuY29tcG9uZW50JztcclxuaW1wb3J0IHsgUG9wdXBDb250YWluZXJEaXJlY3RpdmUgfSBmcm9tICcuL3NoYXJlZC9kaXJlY3RpdmVzL3BvcHVwL3BvcHVwLWNvbnRhaW5lci5kaXJlY3RpdmUnO1xyXG5pbXBvcnQgeyBEYXRlRGlzcGxheVBpcGUgfSBmcm9tICcuL3NoYXJlZC9kaXNwbGF5L3BpcGVzL2RhdGUtZGlzcGxheS5waXBlJztcclxuaW1wb3J0IHsgRm9ybUdyb3VwSGVscGVyIH0gZnJvbSAnLi9zaGFyZWQvZm9ybS1ncm91cC5oZWxwZXInO1xyXG5pbXBvcnQgeyBNb2NrRGF0ZURpc3BsYXlQaXBlIH0gZnJvbSAnLi9zaGFyZWQvdGVzdGluZy9wdWJsaWMtbW9ja3Muc3BlYyc7XHJcbmltcG9ydCB7IFJhZGlvQnV0dG9uQ29tcG9uZW50IH0gZnJvbSAnLi9jb250cm9scy9yYWRpby1idXR0b24vcmFkaW8tYnV0dG9uLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IENoZWNrYm94Q29tcG9uZW50IH0gZnJvbSAnLi9jb250cm9scy9jaGVja2JveC9jaGVja2JveC5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBOdW1lcmljYm94Q29tcG9uZW50IH0gZnJvbSAnLi9jb250cm9scy9udW1lcmljYm94L251bWVyaWNib3guY29tcG9uZW50JztcclxuaW1wb3J0IHsgQXZhdGFyQ29tcG9uZW50IH0gZnJvbSAnLi9kaXNwbGF5L2F2YXRhci9hdmF0YXIuY29tcG9uZW50JztcclxuaW1wb3J0IHsgQXBwQmFyQ29tcG9uZW50IH0gZnJvbSAnLi9kaXNwbGF5L2FwcC1iYXIvYXBwLWJhci5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBTcGxhc2hDb21wb25lbnQgfSBmcm9tICcuL2Rpc3BsYXkvc3BsYXNoL3NwbGFzaC5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBTZWFyY2hhYmxlVGFibGVDb21wb25lbnQgfSBmcm9tICcuL2Rpc3BsYXkvdGFibGUvc2VhcmNoYWJsZS10YWJsZS5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBJZlZpZXdwb3J0V2lkdGhEaXJlY3RpdmUgfSBmcm9tICcuL3NoYXJlZC9kaXJlY3RpdmVzL2lmLXZpZXdwb3J0LXdpZHRoL2lmLXZpZXdwb3J0LXdpZHRoLmRpcmVjdGl2ZSc7XHJcbmltcG9ydCB7IENsaWNrQXJlYUZvckRpcmVjdGl2ZSB9IGZyb20gJy4vc2hhcmVkL2RpcmVjdGl2ZXMvY2xpY2stYXJlYS1mb3IvY2xpY2stYXJlYS1mb3IuZGlyZWN0aXZlJztcclxuaW1wb3J0IHsgQ29sbGFwc2libGVUb2dnbGVDb21wb25lbnQgfSBmcm9tICcuL2NvbnRyb2xzL2NvbGxhcHNpYmxlLXRvZ2dsZS9jb2xsYXBzaWJsZS10b2dnbGUuY29tcG9uZW50JztcclxuaW1wb3J0IHsgVGFibGVNYXN0ZXJSb3dDb21wb25lbnQgfSBmcm9tICcuL2Rpc3BsYXkvdGFibGUvdGFibGUtbWFzdGVyLXJvdy5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBUYWJsZU1hc3RlckhlYWRlclJvd0NvbXBvbmVudCB9IGZyb20gJy4vZGlzcGxheS90YWJsZS90YWJsZS1tYXN0ZXItaGVhZGVyLXJvdy5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBUYWJsZURldGFpbFJvd0NvbXBvbmVudCB9IGZyb20gJy4vZGlzcGxheS90YWJsZS90YWJsZS1kZXRhaWwtcm93LmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IFRhYmxlTG9ja2VkQ29sdW1uQ29tcG9uZW50IH0gZnJvbSAnLi9kaXNwbGF5L3RhYmxlL3RhYmxlLWxvY2tlZC1jb2x1bW4uY29tcG9uZW50JztcclxuaW1wb3J0IHsgUG9wb3ZlckNvbXBvbmVudCB9IGZyb20gJy4vY29udHJvbHMvcG9wb3Zlci9wb3BvdmVyLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IENvcHlCdXR0b25EaXJlY3RpdmUgfSBmcm9tICcuL2NvbnRyb2xzL2J1dHRvbi9jb3B5LWJ1dHRvbi5kaXJlY3RpdmUnO1xyXG5pbXBvcnQgeyBUYWJsZVBhZ2luYXRpb25Db21wb25lbnQgfSBmcm9tICcuL2Rpc3BsYXkvdGFibGUvdGFibGUtcGFnaW5hdGlvbi5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBSb3dDb3VudFBpcGUgfSBmcm9tICcuL3NoYXJlZC9kaXNwbGF5L3BpcGVzL3Jvdy1jb3VudC5waXBlJztcclxuaW1wb3J0IHsgVGFnc0NvbXBvbmVudCB9IGZyb20gJy4vZGlzcGxheS90YWdzL3RhZ3MuY29tcG9uZW50JztcclxuaW1wb3J0IHsgRm9ybUNvbnRyb2xDb21wb25lbnQgfSBmcm9tICcuL2NvbnRyb2xzL2Zvcm0tY29udHJvbC9mb3JtLWNvbnRyb2wuY29tcG9uZW50JztcclxuaW1wb3J0IHsgU2VsZWN0Q29tcG9uZW50IH0gZnJvbSAnLi9jb250cm9scy9zZWxlY3Qvc2VsZWN0LmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IEl0ZW1EaXNwbGF5Q29tcG9uZW50IH0gZnJvbSAnLi9kaXNwbGF5L2l0ZW0tZGlzcGxheS9pdGVtLWRpc3BsYXkuY29tcG9uZW50JztcclxuaW1wb3J0IHsgVGFibGVTZWxlY3RhYmxlUm93Q29tcG9uZW50IH0gZnJvbSAnLi9kaXNwbGF5L3RhYmxlL3RhYmxlLXNlbGVjdGFibGUtcm93LmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IFJlc2l6YWJsZUNvbHVtbkNvbXBvbmVudCB9IGZyb20gJy4vZGlzcGxheS90YWJsZS9yZXNpemFibGUtY29sdW1uLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IERpYWxvZ0dyb3VwQ29tcG9uZW50IH0gZnJvbSAnLi9kaXNwbGF5L2RpYWxvZy9kaWFsb2ctZ3JvdXAvZGlhbG9nLWdyb3VwLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IEZpbGVVcGxvYWRDb21wb25lbnQgfSBmcm9tICcuL2NvbnRyb2xzL2ZpbGUtdXBsb2FkL2ZpbGUtdXBsb2FkLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IEZvcm1Hcm91cENvbXBvbmVudCB9IGZyb20gJy4vY29udHJvbHMvZm9ybS1ncm91cC9mb3JtLWdyb3VwLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IEpzb25EaXNwbGF5Q29tcG9uZW50IH0gZnJvbSAnLi9kaXNwbGF5L2pzb24tZGlzcGxheS9qc29uLWRpc3BsYXkuY29tcG9uZW50JztcclxuaW1wb3J0IHsgVG9hc3RDb21wb25lbnQgfSBmcm9tICcuL2Rpc3BsYXkvdG9hc3QvdG9hc3QvdG9hc3QuY29tcG9uZW50JztcclxuaW1wb3J0IHsgVG9hc3RlckNvbXBvbmVudCB9IGZyb20gJy4vZGlzcGxheS90b2FzdC90b2FzdGVyL3RvYXN0ZXIuY29tcG9uZW50JztcclxuaW1wb3J0IHsgUGFnZVZpZXdDb21wb25lbnQgfSBmcm9tICcuL3NoYXJlZC9wYWdlL3BhZ2Utdmlldy9wYWdlLXZpZXcuY29tcG9uZW50JztcclxuaW1wb3J0IHsgUGFnZVRpdGxlQ29tcG9uZW50IH0gZnJvbSAnLi9zaGFyZWQvcGFnZS9wYWdlLXRpdGxlL3BhZ2UtdGl0bGUuY29tcG9uZW50JztcclxuaW1wb3J0IHsgVGltZURpc3BsYXlQaXBlIH0gZnJvbSAnLi9zaGFyZWQvZGlzcGxheS9waXBlcy90aW1lLWRpc3BsYXkucGlwZSc7XHJcbmltcG9ydCB7IFRlbGVtZXRyeUJhc2VTZXJ2aWNlIH0gZnJvbSAnLi9jb3JlL3RlbGVtZXRyeS1iYXNlLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBUZWxlbWV0cnlTZXJ2aWNlIH0gZnJvbSAnLi9jb3JlL3RlbGVtZXRyeS5zZXJ2aWNlJztcclxuXHJcbmV4cG9ydCB0eXBlIENvbXBvbmVudHNNb2R1bGVDb25maWcgPSB7XHJcbiAgdGVsZW1ldHJ5U2VydmljZTogVHlwZTxUZWxlbWV0cnlCYXNlU2VydmljZT5cclxufTtcclxuXHJcbkBOZ01vZHVsZSh7XHJcbiAgZGVjbGFyYXRpb25zOiBbXHJcbiAgICBCdXR0b25Db21wb25lbnQsXHJcbiAgICBUYWJzQ29tcG9uZW50LFxyXG4gICAgVGV4dGJveENvbXBvbmVudCxcclxuICAgIE5hdkl0ZW1BY3RpdmVEaXJlY3RpdmUsXHJcbiAgICBTcGlubmVyQ29tcG9uZW50LFxyXG4gICAgVmlld092ZXJsYXlDb21wb25lbnQsXHJcbiAgICBCYW5uZXJDb21wb25lbnQsXHJcbiAgICBSZXNpemFibGVUYWJsZURpcmVjdGl2ZSxcclxuICAgIFRhYnNDb21wb25lbnQsXHJcbiAgICBUYWJsZUNvbXBvbmVudCxcclxuICAgIFNlYXJjaGFibGVUYWJsZUNvbXBvbmVudCxcclxuICAgIENvbWJvYm94Q29tcG9uZW50LFxyXG4gICAgTWVudUNvbXBvbmVudCxcclxuICAgIFBvcHVwQ29udGFpbmVyRGlyZWN0aXZlLFxyXG4gICAgRHJvcGRvd25Db21wb25lbnQsXHJcbiAgICBDb25maXJtQ29tcG9uZW50LFxyXG4gICAgRGlhbG9nQ29tcG9uZW50LFxyXG4gICAgRGF0ZURpc3BsYXlQaXBlLFxyXG4gICAgVGltZURpc3BsYXlQaXBlLFxyXG4gICAgTW9ja0RhdGVEaXNwbGF5UGlwZSxcclxuICAgIFJhZGlvQnV0dG9uQ29tcG9uZW50LFxyXG4gICAgQ2hlY2tib3hDb21wb25lbnQsXHJcbiAgICBOdW1lcmljYm94Q29tcG9uZW50LFxyXG4gICAgQXZhdGFyQ29tcG9uZW50LFxyXG4gICAgQXBwQmFyQ29tcG9uZW50LFxyXG4gICAgU3BsYXNoQ29tcG9uZW50LFxyXG4gICAgSWZWaWV3cG9ydFdpZHRoRGlyZWN0aXZlLFxyXG4gICAgQ2xpY2tBcmVhRm9yRGlyZWN0aXZlLFxyXG4gICAgQ29sbGFwc2libGVUb2dnbGVDb21wb25lbnQsXHJcbiAgICBUYWJsZU1hc3RlclJvd0NvbXBvbmVudCxcclxuICAgIFRhYmxlTWFzdGVySGVhZGVyUm93Q29tcG9uZW50LFxyXG4gICAgVGFibGVEZXRhaWxSb3dDb21wb25lbnQsXHJcbiAgICBUYWJsZUxvY2tlZENvbHVtbkNvbXBvbmVudCxcclxuICAgIFRhYmxlU2VsZWN0YWJsZVJvd0NvbXBvbmVudCxcclxuICAgIFBvcG92ZXJDb21wb25lbnQsXHJcbiAgICBUYWJsZVBhZ2luYXRpb25Db21wb25lbnQsXHJcbiAgICBSb3dDb3VudFBpcGUsXHJcbiAgICBDb3B5QnV0dG9uRGlyZWN0aXZlLFxyXG4gICAgVGFibGVQYWdpbmF0aW9uQ29tcG9uZW50LFxyXG4gICAgVGFnc0NvbXBvbmVudCxcclxuICAgIEZvcm1Db250cm9sQ29tcG9uZW50LFxyXG4gICAgU2VsZWN0Q29tcG9uZW50LFxyXG4gICAgSXRlbURpc3BsYXlDb21wb25lbnQsXHJcbiAgICBUYWJsZVNlbGVjdGFibGVSb3dDb21wb25lbnQsXHJcbiAgICBSZXNpemFibGVDb2x1bW5Db21wb25lbnQsXHJcbiAgICBEaWFsb2dHcm91cENvbXBvbmVudCxcclxuICAgIEZpbGVVcGxvYWRDb21wb25lbnQsXHJcbiAgICBGb3JtR3JvdXBDb21wb25lbnQsXHJcbiAgICBKc29uRGlzcGxheUNvbXBvbmVudCxcclxuICAgIFRvYXN0Q29tcG9uZW50LFxyXG4gICAgVG9hc3RlckNvbXBvbmVudCxcclxuICAgIFBhZ2VWaWV3Q29tcG9uZW50LFxyXG4gICAgUGFnZVRpdGxlQ29tcG9uZW50XHJcbiAgXSxcclxuICBpbXBvcnRzOiBbXHJcbiAgICBDb21tb25Nb2R1bGUsXHJcbiAgICBGb3Jtc01vZHVsZSxcclxuXHRcdFJlYWN0aXZlRm9ybXNNb2R1bGUsXHJcbiAgICBSb3V0ZXJNb2R1bGUsXHJcbiAgICBUcmFuc2xhdGVNb2R1bGUsXHJcbiAgICBBMTF5TW9kdWxlLFxyXG4gICAgT3ZlcmxheU1vZHVsZVxyXG4gIF0sXHJcbiAgcHJvdmlkZXJzOiBbXHJcbiAgICBGb3JtR3JvdXBIZWxwZXIsXHJcbiAgICBEaWFsb2dTZXJ2aWNlLFxyXG4gICAgRGF0ZURpc3BsYXlQaXBlLFxyXG4gICAgVGltZURpc3BsYXlQaXBlLFxyXG4gICAgTW9ja0RhdGVEaXNwbGF5UGlwZSxcclxuICAgIFJvd0NvdW50UGlwZVxyXG4gIF0sXHJcbiAgZXhwb3J0czogW1xyXG4gICAgQnV0dG9uQ29tcG9uZW50LFxyXG4gICAgVGFic0NvbXBvbmVudCxcclxuICAgIFRleHRib3hDb21wb25lbnQsXHJcbiAgICBOYXZJdGVtQWN0aXZlRGlyZWN0aXZlLFxyXG4gICAgU3Bpbm5lckNvbXBvbmVudCxcclxuICAgIFZpZXdPdmVybGF5Q29tcG9uZW50LFxyXG4gICAgQmFubmVyQ29tcG9uZW50LFxyXG4gICAgVGFic0NvbXBvbmVudCxcclxuICAgIFRhYmxlQ29tcG9uZW50LFxyXG4gICAgU2VhcmNoYWJsZVRhYmxlQ29tcG9uZW50LFxyXG4gICAgQ29tYm9ib3hDb21wb25lbnQsXHJcbiAgICBNZW51Q29tcG9uZW50LFxyXG4gICAgUG9wdXBDb250YWluZXJEaXJlY3RpdmUsXHJcbiAgICBEcm9wZG93bkNvbXBvbmVudCxcclxuICAgIENvbmZpcm1Db21wb25lbnQsXHJcbiAgICBEaWFsb2dDb21wb25lbnQsXHJcbiAgICBEYXRlRGlzcGxheVBpcGUsXHJcbiAgICBUaW1lRGlzcGxheVBpcGUsXHJcbiAgICBSYWRpb0J1dHRvbkNvbXBvbmVudCxcclxuICAgIENoZWNrYm94Q29tcG9uZW50LFxyXG4gICAgTnVtZXJpY2JveENvbXBvbmVudCxcclxuICAgIEF2YXRhckNvbXBvbmVudCxcclxuICAgIEFwcEJhckNvbXBvbmVudCxcclxuICAgIFNwbGFzaENvbXBvbmVudCxcclxuICAgIElmVmlld3BvcnRXaWR0aERpcmVjdGl2ZSxcclxuICAgIENsaWNrQXJlYUZvckRpcmVjdGl2ZSxcclxuICAgIENvbGxhcHNpYmxlVG9nZ2xlQ29tcG9uZW50LFxyXG4gICAgVGFibGVNYXN0ZXJSb3dDb21wb25lbnQsXHJcbiAgICBUYWJsZU1hc3RlckhlYWRlclJvd0NvbXBvbmVudCxcclxuICAgIFRhYmxlTG9ja2VkQ29sdW1uQ29tcG9uZW50LFxyXG4gICAgVGFibGVTZWxlY3RhYmxlUm93Q29tcG9uZW50LFxyXG4gICAgUG9wb3ZlckNvbXBvbmVudCxcclxuICAgIENvcHlCdXR0b25EaXJlY3RpdmUsXHJcbiAgICBUYWJsZVBhZ2luYXRpb25Db21wb25lbnQsXHJcbiAgICBUYWdzQ29tcG9uZW50LFxyXG4gICAgRm9ybUNvbnRyb2xDb21wb25lbnQsXHJcbiAgICBTZWxlY3RDb21wb25lbnQsXHJcbiAgICBJdGVtRGlzcGxheUNvbXBvbmVudCxcclxuICAgIFJlc2l6YWJsZUNvbHVtbkNvbXBvbmVudCxcclxuICAgIERpYWxvZ0dyb3VwQ29tcG9uZW50LFxyXG4gICAgRmlsZVVwbG9hZENvbXBvbmVudCxcclxuICAgIEZvcm1Hcm91cENvbXBvbmVudCxcclxuICAgIEpzb25EaXNwbGF5Q29tcG9uZW50LFxyXG4gICAgVG9hc3RDb21wb25lbnQsXHJcbiAgICBUb2FzdGVyQ29tcG9uZW50LFxyXG4gICAgUGFnZVZpZXdDb21wb25lbnQsXHJcbiAgICBQYWdlVGl0bGVDb21wb25lbnRcclxuICBdXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBDb21wb25lbnRzTW9kdWxlIHtcclxuICAvKipcclxuICAgKiBQcm92aWRpbmcgc2VydmljZXMgdGhyb3VnaCB0aGUgZm9yUm9vdCBwYXR0ZXJuIGhlcmUgZW5zdXJlcyB0aGF0IHRoZSBjb21wb25lbnRzIG1vZHVsZSBhbmQgdGhlIGltcG9ydGluZ1xyXG4gICAqIG1vZHVsZSB1c2UgdGhlIHNhbWUgc2luZ2xldG9uIHNlcnZpY2UgaW5zdGFuY2UuXHJcbiAgICogRm9yIG1vcmUgaW5mbzogaHR0cHM6Ly9hbmd1bGFyLmlvL2d1aWRlL3NpbmdsZXRvbi1zZXJ2aWNlcyN0aGUtZm9ycm9vdC1wYXR0ZXJuXHJcbiAgICovXHJcbiAgcHVibGljIHN0YXRpYyBmb3JSb290KGNvbmZpZzogQ29tcG9uZW50c01vZHVsZUNvbmZpZyk6IE1vZHVsZVdpdGhQcm92aWRlcnM8Q29tcG9uZW50c01vZHVsZT57XHJcbiAgICByZXR1cm4ge1xyXG4gICAgICBuZ01vZHVsZTogQ29tcG9uZW50c01vZHVsZSxcclxuICAgICAgcHJvdmlkZXJzOiBbXHJcbiAgICAgICAgeyBwcm92aWRlOiBUZWxlbWV0cnlTZXJ2aWNlLCB1c2VDbGFzczogY29uZmlnLnRlbGVtZXRyeVNlcnZpY2UgfVxyXG4gICAgICBdXHJcbiAgICB9XHJcbiAgfVxyXG59XHJcbiJdfQ==
215
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tcG9uZW50cy5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9jb21wb25lbnRzL3NyYy9saWIvY29tcG9uZW50cy5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUNyRCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUF1QixRQUFRLEVBQVksTUFBTSxlQUFlLENBQUM7QUFDeEUsT0FBTyxFQUFFLFdBQVcsRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ2xFLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFFdEQsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ25ELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQztBQUNyRSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sb0NBQW9DLENBQUM7QUFDckUsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0seUNBQXlDLENBQUM7QUFDOUUsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sd0NBQXdDLENBQUM7QUFDM0UsT0FBTyxFQUFFLDBCQUEwQixFQUFFLE1BQU0sNERBQTRELENBQUM7QUFDeEcsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sd0NBQXdDLENBQUM7QUFDM0UsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sd0NBQXdDLENBQUM7QUFDM0UsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sOENBQThDLENBQUM7QUFDbkYsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0s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ckIsMEJBQTBCO29CQUMxQix1QkFBdUI7b0JBQ3ZCLDZCQUE2QjtvQkFDN0IsMEJBQTBCO29CQUMxQiwyQkFBMkI7b0JBQzNCLGdCQUFnQjtvQkFDaEIsbUJBQW1CO29CQUNuQix3QkFBd0I7b0JBQ3hCLGFBQWE7b0JBQ2Isb0JBQW9CO29CQUNwQixlQUFlO29CQUNmLG9CQUFvQjtvQkFDcEIsd0JBQXdCO29CQUN4QixvQkFBb0I7b0JBQ3BCLG1CQUFtQjtvQkFDbkIsa0JBQWtCO29CQUNsQixvQkFBb0I7b0JBQ3BCLGNBQWM7b0JBQ2QsZ0JBQWdCO29CQUNoQixpQkFBaUI7b0JBQ2pCLGtCQUFrQjtvQkFDbEIsdUJBQXVCO29CQUN2QixzQkFBc0I7b0JBQ3RCLHNCQUFzQjtvQkFDdEIsYUFBYTtvQkFDYixrQkFBa0I7aUJBQ25CO2FBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBMTF5TW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2ExMXknO1xyXG5pbXBvcnQgeyBPdmVybGF5TW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL292ZXJsYXknO1xyXG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xyXG5pbXBvcnQgeyBNb2R1bGVXaXRoUHJvdmlkZXJzLCBOZ01vZHVsZSwgUHJvdmlkZXIgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgRm9ybXNNb2R1bGUsIFJlYWN0aXZlRm9ybXNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcbmltcG9ydCB7IFJvdXRlck1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XHJcbmltcG9ydCB7IFRyYW5zbGF0ZU1vZHVsZSB9IGZyb20gJ0BuZ3gtdHJhbnNsYXRlL2NvcmUnO1xyXG5cclxuaW1wb3J0IHsgUmVzaXphYmxlQ29tcG9uZW50IH0gZnJvbSAnLi4vcHVibGljLWFwaSc7XHJcbmltcG9ydCB7IEJhbm5lckNvbXBvbmVudCB9IGZyb20gJy4vY29udHJvbHMvYmFubmVyL2Jhbm5lci5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBCdXR0b25Db21wb25lbnQgfSBmcm9tICcuL2NvbnRyb2xzL2J1dHRvbi9idXR0b24uY29tcG9uZW50JztcclxuaW1wb3J0IHsgQ29weUJ1dHRvbkRpcmVjdGl2ZSB9IGZyb20gJy4vY29udHJvbHMvYnV0dG9uL2NvcHktYnV0dG9uLmRpcmVjdGl2ZSc7XHJcbmltcG9ydCB7IENoZWNrYm94Q29tcG9uZW50IH0gZnJvbSAnLi9jb250cm9scy9jaGVja2JveC9jaGVja2JveC5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBDb2xsYXBzaWJsZVRvZ2dsZUNvbXBvbmVudCB9IGZyb20gJy4vY29udHJvbHMvY29sbGFwc2libGUtdG9nZ2xlL2NvbGxhcHNpYmxlLXRvZ2dsZS5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBDb21ib2JveENvbXBvbmVudCB9IGZyb20gJy4vY29udHJvbHMvY29tYm9ib3gvY29tYm9ib3guY29tcG9uZW50JztcclxuaW1wb3J0IHsgRHJvcGRvd25Db21wb25lbnQgfSBmcm9tICcuL2NvbnRyb2xzL2Ryb3Bkb3duL2Ryb3Bkb3duLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IEZpbGVVcGxvYWRDb21wb25lbnQgfSBmcm9tICcuL2NvbnRyb2xzL2ZpbGUtdXBsb2FkL2ZpbGUtdXBsb2FkLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IEZvcm1Db250cm9sQ29tcG9uZW50IH0gZnJvbSAnLi9jb250cm9scy9mb3JtLWNvbnRyb2wvZm9ybS1jb250cm9sLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IEZvcm1Hcm91cENvbXBvbmVudCB9IGZyb20gJy4vY29udHJvbHMvZm9ybS1ncm91cC9mb3JtLWdyb3VwLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IE1lbnVDb21wb25lbnQgfSBmcm9tICcuL2NvbnRyb2xzL21lbnUvbWVudS5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBOYXZJdGVtQWN0aXZlRGlyZWN0aXZlIH0gZnJvbSAnLi9jb250cm9scy9uYXZpZ2F0aW9uL25hdi1pdGVtLWFjdGl2ZS5kaXJlY3RpdmUnO1xyXG5pbXBvcnQgeyBOdW1lcmljYm94Q29tcG9uZW50IH0gZnJvbSAnLi9jb250cm9scy9udW1lcmljYm94L251bWVyaWNib3guY29tcG9uZW50JztcclxuaW1wb3J0IHsgUG9wb3ZlckNvbXBvbmVudCB9IGZyb20gJy4vY29udHJvbHMvcG9wb3Zlci9wb3BvdmVyLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IFJhZGlvQnV0dG9uQ29tcG9uZW50IH0gZnJvbSAnLi9jb250cm9scy9yYWRpby1idXR0b24vcmFkaW8tYnV0dG9uLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IFNlbGVjdENvbXBvbmVudCB9IGZyb20gJy4vY29udHJvbHMvc2VsZWN0L3NlbGVjdC5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBUYWJzQ29tcG9uZW50IH0gZnJvbSAnLi9jb250cm9scy90YWJzL3RhYnMuY29tcG9uZW50JztcclxuaW1wb3J0IHsgVGV4dGJveENvbXBvbmVudCB9IGZyb20gJy4vY29udHJvbHMvdGV4dGJveC90ZXh0Ym94LmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IEFwcEJhckNvbXBvbmVudCB9IGZyb20gJy4vZGlzcGxheS9hcHAtYmFyL2FwcC1iYXIuY29tcG9uZW50JztcclxuaW1wb3J0IHsgQXZhdGFyQ29tcG9uZW50IH0gZnJvbSAnLi9kaXNwbGF5L2F2YXRhci9hdmF0YXIuY29tcG9uZW50JztcclxuaW1wb3J0IHsgQ29uZmlybUNvbXBvbmVudCB9IGZyb20gJy4vZGlzcGxheS9jb25maXJtL2NvbmZpcm0uY29tcG9uZW50JztcclxuaW1wb3J0IHsgRGlhbG9nR3JvdXBDb21wb25lbnQgfSBmcm9tICcuL2Rpc3BsYXkvZGlhbG9nL2RpYWxvZy1ncm91cC9kaWFsb2ctZ3JvdXAuY29tcG9uZW50JztcclxuaW1wb3J0IHsgRGlhbG9nQ29tcG9uZW50IH0gZnJvbSAnLi9kaXNwbGF5L2RpYWxvZy9kaWFsb2cuY29tcG9uZW50JztcclxuaW1wb3J0IHsgRGlhbG9nU2VydmljZSB9IGZyb20gJy4vZGlzcGxheS9kaWFsb2cvZGlhbG9nLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBIaWVyYXJjaHlUcmVlQ29tcG9uZW50IH0gZnJvbSAnLi9kaXNwbGF5L2hpZXJhcmNoeS9oaWVyYXJjaHktdHJlZS9oaWVyYXJjaHktdHJlZS5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBJdGVtRGlzcGxheUNvbXBvbmVudCB9IGZyb20gJy4vZGlzcGxheS9pdGVtLWRpc3BsYXkvaXRlbS1kaXNwbGF5LmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IEpzb25EaXNwbGF5Q29tcG9uZW50IH0gZnJvbSAnLi9kaXNwbGF5L2pzb24tZGlzcGxheS9qc29uLWRpc3BsYXkuY29tcG9uZW50JztcclxuaW1wb3J0IHsgU3Bpbm5lckNvbXBvbmVudCB9IGZyb20gJy4vZGlzcGxheS9zcGlubmVyL3NwaW5uZXIuY29tcG9uZW50JztcclxuaW1wb3J0IHsgU3BsYXNoQ29tcG9uZW50IH0gZnJvbSAnLi9kaXNwbGF5L3NwbGFzaC9zcGxhc2guY29tcG9uZW50JztcclxuaW1wb3J0IHsgUmVzaXphYmxlQ29sdW1uQ29tcG9uZW50IH0gZnJvbSAnLi9kaXNwbGF5L3RhYmxlL3Jlc2l6YWJsZS1jb2x1bW4uY29tcG9uZW50JztcclxuaW1wb3J0IHsgUmVzaXphYmxlVGFibGVEaXJlY3RpdmUgfSBmcm9tICcuL2Rpc3BsYXkvdGFibGUvcmVzaXphYmxlLXRhYmxlLmRpcmVjdGl2ZSc7XHJcbmltcG9ydCB7IFNlYXJjaGFibGVUYWJsZUNvbXBvbmVudCB9IGZyb20gJy4vZGlzcGxheS90YWJsZS9zZWFyY2hhYmxlLXRhYmxlLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IFRhYmxlRGV0YWlsUm93Q29tcG9uZW50IH0gZnJvbSAnLi9kaXNwbGF5L3RhYmxlL3RhYmxlLWRldGFpbC1yb3cuY29tcG9uZW50JztcclxuaW1wb3J0IHsgVGFibGVMb2NrZWRDb2x1bW5Db21wb25lbnQgfSBmcm9tICcuL2Rpc3BsYXkvdGFibGUvdGFibGUtbG9ja2VkLWNvbHVtbi5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBUYWJsZU1hc3RlckhlYWRlclJvd0NvbXBvbmVudCB9IGZyb20gJy4vZGlzcGxheS90YWJsZS90YWJsZS1tYXN0ZXItaGVhZGVyLXJvdy5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBUYWJsZU1hc3RlclJvd0NvbXBvbmVudCB9IGZyb20gJy4vZGlzcGxheS90YWJsZS90YWJsZS1tYXN0ZXItcm93LmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IFRhYmxlUGFnaW5hdGlvbkNvbXBvbmVudCB9IGZyb20gJy4vZGlzcGxheS90YWJsZS90YWJsZS1wYWdpbmF0aW9uLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IFRhYmxlU2VsZWN0YWJsZVJvd0NvbXBvbmVudCB9IGZyb20gJy4vZGlzcGxheS90YWJsZS90YWJsZS1zZWxlY3RhYmxlLXJvdy5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBUYWJsZUNvbXBvbmVudCB9IGZyb20gJy4vZGlzcGxheS90YWJsZS90YWJsZS5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBUYWdzQ29tcG9uZW50IH0gZnJvbSAnLi9kaXNwbGF5L3RhZ3MvdGFncy5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBUb2FzdENvbXBvbmVudCB9IGZyb20gJy4vZGlzcGxheS90b2FzdC90b2FzdC90b2FzdC5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBUb2FzdGVyQ29tcG9uZW50IH0gZnJvbSAnLi9kaXNwbGF5L3RvYXN0L3RvYXN0ZXIvdG9hc3Rlci5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBUcmVlQ29tcG9uZW50IH0gZnJvbSAnLi9kaXNwbGF5L3RyZWUvdHJlZS5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBWaWV3T3ZlcmxheUNvbXBvbmVudCB9IGZyb20gJy4vZGlzcGxheS92aWV3LW92ZXJsYXkvdmlldy1vdmVybGF5LmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IENsaWNrQXJlYUZvckRpcmVjdGl2ZSB9IGZyb20gJy4vc2hhcmVkL2RpcmVjdGl2ZXMvY2xpY2stYXJlYS1mb3IvY2xpY2stYXJlYS1mb3IuZGlyZWN0aXZlJztcclxuaW1wb3J0IHsgSWZWaWV3cG9ydFdpZHRoRGlyZWN0aXZlIH0gZnJvbSAnLi9zaGFyZWQvZGlyZWN0aXZlcy9pZi12aWV3cG9ydC13aWR0aC9pZi12aWV3cG9ydC13aWR0aC5kaXJlY3RpdmUnO1xyXG5pbXBvcnQgeyBQb3B1cENvbnRhaW5lckRpcmVjdGl2ZSB9IGZyb20gJy4vc2hhcmVkL2RpcmVjdGl2ZXMvcG9wdXAvcG9wdXAtY29udGFpbmVyLmRpcmVjdGl2ZSc7XHJcbmltcG9ydCB7IERhdGVEaXNwbGF5UGlwZSB9IGZyb20gJy4vc2hhcmVkL2Rpc3BsYXkvcGlwZXMvZGF0ZS1kaXNwbGF5LnBpcGUnO1xyXG5pbXBvcnQgeyBSb3dDb3VudFBpcGUgfSBmcm9tICcuL3NoYXJlZC9kaXNwbGF5L3BpcGVzL3Jvdy1jb3VudC5waXBlJztcclxuaW1wb3J0IHsgVGltZURpc3BsYXlQaXBlIH0gZnJvbSAnLi9zaGFyZWQvZGlzcGxheS9waXBlcy90aW1lLWRpc3BsYXkucGlwZSc7XHJcbmltcG9ydCB7IEZvcm1Hcm91cEhlbHBlciB9IGZyb20gJy4vc2hhcmVkL2Zvcm0tZ3JvdXAuaGVscGVyJztcclxuaW1wb3J0IHsgUGFnZVRpdGxlQ29tcG9uZW50IH0gZnJvbSAnLi9zaGFyZWQvcGFnZS9wYWdlLXRpdGxlL3BhZ2UtdGl0bGUuY29tcG9uZW50JztcclxuaW1wb3J0IHsgUGFnZVZpZXdDb21wb25lbnQgfSBmcm9tICcuL3NoYXJlZC9wYWdlL3BhZ2Utdmlldy9wYWdlLXZpZXcuY29tcG9uZW50JztcclxuaW1wb3J0IHsgTW9ja0RhdGVEaXNwbGF5UGlwZSB9IGZyb20gJy4vc2hhcmVkL3Rlc3RpbmcvcHVibGljLW1vY2tzLnNwZWMnO1xyXG5pbXBvcnQgeyBXaXphcmRCdXR0b25zQ29tcG9uZW50IH0gZnJvbSAnLi9zaGFyZWQvd2l6YXJkL3dpemFyZC1idXR0b25zL3dpemFyZC1idXR0b25zLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IFdpemFyZFByb2dyZXNzQ29tcG9uZW50IH0gZnJvbSAnLi9zaGFyZWQvd2l6YXJkL3dpemFyZC1wcm9ncmVzcy93aXphcmQtcHJvZ3Jlc3MuY29tcG9uZW50JztcclxuXHJcbmV4cG9ydCB0eXBlIENvbXBvbmVudHNNb2R1bGVDb25maWcgPSB7XHJcbiAgdHJhY2tlcjogUHJvdmlkZXJcclxufTtcclxuXHJcbkBOZ01vZHVsZSh7XHJcbiAgZGVjbGFyYXRpb25zOiBbXHJcbiAgICBCdXR0b25Db21wb25lbnQsXHJcbiAgICBUYWJzQ29tcG9uZW50LFxyXG4gICAgVGV4dGJveENvbXBvbmVudCxcclxuICAgIE5hdkl0ZW1BY3RpdmVEaXJlY3RpdmUsXHJcbiAgICBTcGlubmVyQ29tcG9uZW50LFxyXG4gICAgVmlld092ZXJsYXlDb21wb25lbnQsXHJcbiAgICBCYW5uZXJDb21wb25lbnQsXHJcbiAgICBSZXNpemFibGVUYWJsZURpcmVjdGl2ZSxcclxuICAgIFRhYnNDb21wb25lbnQsXHJcbiAgICBUYWJsZUNvbXBvbmVudCxcclxuICAgIFNlYXJjaGFibGVUYWJsZUNvbXBvbmVudCxcclxuICAgIENvbWJvYm94Q29tcG9uZW50LFxyXG4gICAgTWVudUNvbXBvbmVudCxcclxuICAgIFBvcHVwQ29udGFpbmVyRGlyZWN0aXZlLFxyXG4gICAgRHJvcGRvd25Db21wb25lbnQsXHJcbiAgICBDb25maXJtQ29tcG9uZW50LFxyXG4gICAgRGlhbG9nQ29tcG9uZW50LFxyXG4gICAgRGF0ZURpc3BsYXlQaXBlLFxyXG4gICAgVGltZURpc3BsYXlQaXBlLFxyXG4gICAgTW9ja0RhdGVEaXNwbGF5UGlwZSxcclxuICAgIFJhZGlvQnV0dG9uQ29tcG9uZW50LFxyXG4gICAgQ2hlY2tib3hDb21wb25lbnQsXHJcbiAgICBOdW1lcmljYm94Q29tcG9uZW50LFxyXG4gICAgQXZhdGFyQ29tcG9uZW50LFxyXG4gICAgQXBwQmFyQ29tcG9uZW50LFxyXG4gICAgU3BsYXNoQ29tcG9uZW50LFxyXG4gICAgSWZWaWV3cG9ydFdpZHRoRGlyZWN0aXZlLFxyXG4gICAgQ2xpY2tBcmVhRm9yRGlyZWN0aXZlLFxyXG4gICAgQ29sbGFwc2libGVUb2dnbGVDb21wb25lbnQsXHJcbiAgICBUYWJsZU1hc3RlclJvd0NvbXBvbmVudCxcclxuICAgIFRhYmxlTWFzdGVySGVhZGVyUm93Q29tcG9uZW50LFxyXG4gICAgVGFibGVEZXRhaWxSb3dDb21wb25lbnQsXHJcbiAgICBUYWJsZUxvY2tlZENvbHVtbkNvbXBvbmVudCxcclxuICAgIFRhYmxlU2VsZWN0YWJsZVJvd0NvbXBvbmVudCxcclxuICAgIFBvcG92ZXJDb21wb25lbnQsXHJcbiAgICBUYWJsZVBhZ2luYXRpb25Db21wb25lbnQsXHJcbiAgICBSb3dDb3VudFBpcGUsXHJcbiAgICBDb3B5QnV0dG9uRGlyZWN0aXZlLFxyXG4gICAgVGFibGVQYWdpbmF0aW9uQ29tcG9uZW50LFxyXG4gICAgVGFnc0NvbXBvbmVudCxcclxuICAgIEZvcm1Db250cm9sQ29tcG9uZW50LFxyXG4gICAgU2VsZWN0Q29tcG9uZW50LFxyXG4gICAgSXRlbURpc3BsYXlDb21wb25lbnQsXHJcbiAgICBUYWJsZVNlbGVjdGFibGVSb3dDb21wb25lbnQsXHJcbiAgICBSZXNpemFibGVDb2x1bW5Db21wb25lbnQsXHJcbiAgICBEaWFsb2dHcm91cENvbXBvbmVudCxcclxuICAgIEZpbGVVcGxvYWRDb21wb25lbnQsXHJcbiAgICBGb3JtR3JvdXBDb21wb25lbnQsXHJcbiAgICBKc29uRGlzcGxheUNvbXBvbmVudCxcclxuICAgIFRvYXN0Q29tcG9uZW50LFxyXG4gICAgVG9hc3RlckNvbXBvbmVudCxcclxuICAgIFBhZ2VWaWV3Q29tcG9uZW50LFxyXG4gICAgUGFnZVRpdGxlQ29tcG9uZW50LFxyXG4gICAgV2l6YXJkUHJvZ3Jlc3NDb21wb25lbnQsXHJcbiAgICBXaXphcmRCdXR0b25zQ29tcG9uZW50LFxyXG4gICAgSGllcmFyY2h5VHJlZUNvbXBvbmVudCxcclxuICAgIFRyZWVDb21wb25lbnQsXHJcbiAgICBSZXNpemFibGVDb21wb25lbnRcclxuICBdLFxyXG4gIGltcG9ydHM6IFtcclxuICAgIENvbW1vbk1vZHVsZSxcclxuICAgIEZvcm1zTW9kdWxlLFxyXG5cdFx0UmVhY3RpdmVGb3Jtc01vZHVsZSxcclxuICAgIFJvdXRlck1vZHVsZSxcclxuICAgIFRyYW5zbGF0ZU1vZHVsZSxcclxuICAgIEExMXlNb2R1bGUsXHJcbiAgICBPdmVybGF5TW9kdWxlXHJcbiAgXSxcclxuICBwcm92aWRlcnM6IFtcclxuICAgIEZvcm1Hcm91cEhlbHBlcixcclxuICAgIERpYWxvZ1NlcnZpY2UsXHJcbiAgICBEYXRlRGlzcGxheVBpcGUsXHJcbiAgICBUaW1lRGlzcGxheVBpcGUsXHJcbiAgICBNb2NrRGF0ZURpc3BsYXlQaXBlLFxyXG4gICAgUm93Q291bnRQaXBlXHJcbiAgXSxcclxuICBleHBvcnRzOiBbXHJcbiAgICBCdXR0b25Db21wb25lbnQsXHJcbiAgICBUYWJzQ29tcG9uZW50LFxyXG4gICAgVGV4dGJveENvbXBvbmVudCxcclxuICAgIE5hdkl0ZW1BY3RpdmVEaXJlY3RpdmUsXHJcbiAgICBTcGlubmVyQ29tcG9uZW50LFxyXG4gICAgVmlld092ZXJsYXlDb21wb25lbnQsXHJcbiAgICBCYW5uZXJDb21wb25lbnQsXHJcbiAgICBUYWJzQ29tcG9uZW50LFxyXG4gICAgVGFibGVDb21wb25lbnQsXHJcbiAgICBTZWFyY2hhYmxlVGFibGVDb21wb25lbnQsXHJcbiAgICBDb21ib2JveENvbXBvbmVudCxcclxuICAgIE1lbnVDb21wb25lbnQsXHJcbiAgICBQb3B1cENvbnRhaW5lckRpcmVjdGl2ZSxcclxuICAgIERyb3Bkb3duQ29tcG9uZW50LFxyXG4gICAgQ29uZmlybUNvbXBvbmVudCxcclxuICAgIERpYWxvZ0NvbXBvbmVudCxcclxuICAgIERhdGVEaXNwbGF5UGlwZSxcclxuICAgIFRpbWVEaXNwbGF5UGlwZSxcclxuICAgIFJhZGlvQnV0dG9uQ29tcG9uZW50LFxyXG4gICAgQ2hlY2tib3hDb21wb25lbnQsXHJcbiAgICBOdW1lcmljYm94Q29tcG9uZW50LFxyXG4gICAgQXZhdGFyQ29tcG9uZW50LFxyXG4gICAgQXBwQmFyQ29tcG9uZW50LFxyXG4gICAgU3BsYXNoQ29tcG9uZW50LFxyXG4gICAgSWZWaWV3cG9ydFdpZHRoRGlyZWN0aXZlLFxyXG4gICAgQ2xpY2tBcmVhRm9yRGlyZWN0aXZlLFxyXG4gICAgQ29sbGFwc2libGVUb2dnbGVDb21wb25lbnQsXHJcbiAgICBUYWJsZU1hc3RlclJvd0NvbXBvbmVudCxcclxuICAgIFRhYmxlTWFzdGVySGVhZGVyUm93Q29tcG9uZW50LFxyXG4gICAgVGFibGVMb2NrZWRDb2x1bW5Db21wb25lbnQsXHJcbiAgICBUYWJsZVNlbGVjdGFibGVSb3dDb21wb25lbnQsXHJcbiAgICBQb3BvdmVyQ29tcG9uZW50LFxyXG4gICAgQ29weUJ1dHRvbkRpcmVjdGl2ZSxcclxuICAgIFRhYmxlUGFnaW5hdGlvbkNvbXBvbmVudCxcclxuICAgIFRhZ3NDb21wb25lbnQsXHJcbiAgICBGb3JtQ29udHJvbENvbXBvbmVudCxcclxuICAgIFNlbGVjdENvbXBvbmVudCxcclxuICAgIEl0ZW1EaXNwbGF5Q29tcG9uZW50LFxyXG4gICAgUmVzaXphYmxlQ29sdW1uQ29tcG9uZW50LFxyXG4gICAgRGlhbG9nR3JvdXBDb21wb25lbnQsXHJcbiAgICBGaWxlVXBsb2FkQ29tcG9uZW50LFxyXG4gICAgRm9ybUdyb3VwQ29tcG9uZW50LFxyXG4gICAgSnNvbkRpc3BsYXlDb21wb25lbnQsXHJcbiAgICBUb2FzdENvbXBvbmVudCxcclxuICAgIFRvYXN0ZXJDb21wb25lbnQsXHJcbiAgICBQYWdlVmlld0NvbXBvbmVudCxcclxuICAgIFBhZ2VUaXRsZUNvbXBvbmVudCxcclxuICAgIFdpemFyZFByb2dyZXNzQ29tcG9uZW50LFxyXG4gICAgV2l6YXJkQnV0dG9uc0NvbXBvbmVudCxcclxuICAgIEhpZXJhcmNoeVRyZWVDb21wb25lbnQsXHJcbiAgICBUcmVlQ29tcG9uZW50LFxyXG4gICAgUmVzaXphYmxlQ29tcG9uZW50XHJcbiAgXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgQ29tcG9uZW50c01vZHVsZSB7XHJcbiAgLyoqXHJcbiAgICogUHJvdmlkaW5nIHNlcnZpY2VzIHRocm91Z2ggdGhlIGZvclJvb3QgcGF0dGVybiBoZXJlIGVuc3VyZXMgdGhhdCB0aGUgY29tcG9uZW50cyBtb2R1bGUgYW5kIHRoZSBpbXBvcnRpbmdcclxuICAgKiBtb2R1bGUgdXNlIHRoZSBzYW1lIHNpbmdsZXRvbiBzZXJ2aWNlIGluc3RhbmNlLlxyXG4gICAqIEZvciBtb3JlIGluZm86IGh0dHBzOi8vYW5ndWxhci5pby9ndWlkZS9zaW5nbGV0b24tc2VydmljZXMjdGhlLWZvcnJvb3QtcGF0dGVyblxyXG4gICAqL1xyXG4gIHB1YmxpYyBzdGF0aWMgZm9yUm9vdChjb25maWc6IENvbXBvbmVudHNNb2R1bGVDb25maWcpOiBNb2R1bGVXaXRoUHJvdmlkZXJzPENvbXBvbmVudHNNb2R1bGU+e1xyXG4gICAgcmV0dXJuIHtcclxuICAgICAgbmdNb2R1bGU6IENvbXBvbmVudHNNb2R1bGUsXHJcbiAgICAgIHByb3ZpZGVyczogW1xyXG4gICAgICAgIGNvbmZpZy50cmFja2VyXHJcbiAgICAgIF1cclxuICAgIH1cclxuICB9XHJcbn1cclxuIl19
@@ -1,6 +1,39 @@
1
- import { Injectable } from "@angular/core";
1
+ import { Injectable } from '@angular/core';
2
2
  import * as i0 from "@angular/core";
3
3
  export class CacheService {
4
+ constructor() {
5
+ this.localStorageAvailable = false;
6
+ this.sessionStorageAvailable = false;
7
+ let cacheError = null;
8
+ try {
9
+ let dateStr = 'roundtrip-test-' + new Date().getTime();
10
+ const value = 'val-' + dateStr;
11
+ localStorage.setItem(dateStr, value);
12
+ sessionStorage.setItem(dateStr, value);
13
+ this.localStorageAvailable = localStorage.getItem(dateStr) == value;
14
+ this.sessionStorageAvailable = sessionStorage.getItem(dateStr) == value;
15
+ localStorage.removeItem(dateStr);
16
+ sessionStorage.removeItem(dateStr);
17
+ }
18
+ catch (error) {
19
+ cacheError = error;
20
+ }
21
+ finally {
22
+ if (!this.localStorageAvailable || !this.sessionStorageAvailable) {
23
+ console.warn('storage unavailable for caching purposes. Some features will not be fully supported. ', {
24
+ local: this.localStorageAvailable,
25
+ session: this.sessionStorageAvailable,
26
+ error: cacheError
27
+ });
28
+ }
29
+ }
30
+ }
31
+ /**Return true if the requested cache allows the user to round-trip data in the current environment.
32
+ * Security settings can prevent it and the app may need to know if "not found" means "never set" or "not supported"
33
+ */
34
+ isCacheAvailable(sessionOnly = false) {
35
+ return sessionOnly ? this.sessionStorageAvailable : this.localStorageAvailable;
36
+ }
4
37
  /**
5
38
  * Retrieve an item from cache
6
39
  */
@@ -45,9 +78,20 @@ export class CacheService {
45
78
  storage.setItem(key, JSON.stringify(value));
46
79
  }
47
80
  }
48
- /**Returns the local or session storage to use for backing the given cache request */
81
+ /**Returns the local or session storage to use for backing the given cache request.
82
+ * If the browser does not support the requested storage the result will be null.
83
+ * This can happen if the user is in Firefox for example with the setting dom.storage.enabled = false
84
+ */
49
85
  getStorage(sessionOnly) {
50
- return sessionOnly ? window.sessionStorage : window.localStorage;
86
+ if (sessionOnly && this.sessionStorageAvailable) {
87
+ return window.sessionStorage;
88
+ }
89
+ else if (this.localStorageAvailable) {
90
+ return window.localStorage;
91
+ }
92
+ else {
93
+ return null;
94
+ }
51
95
  }
52
96
  }
53
97
  CacheService.ɵprov = i0.ɵɵdefineInjectable({ factory: function CacheService_Factory() { return new CacheService(); }, token: CacheService, providedIn: "root" });
@@ -56,4 +100,5 @@ CacheService.decorators = [
56
100
  providedIn: 'root'
57
101
  },] }
58
102
  ];
59
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FjaGUuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvbXBvbmVudHMvc3JjL2xpYi9jb3JlL2NhY2hlLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQzs7QUFLM0MsTUFBTSxPQUFPLFlBQVk7SUFFckI7O09BRUc7SUFDSSxPQUFPLENBQUksR0FBVyxFQUFFLFdBQVcsR0FBRyxLQUFLO1FBQzlDLElBQUksT0FBTyxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsV0FBVyxDQUFDLENBQUM7UUFDM0MsSUFBSSxPQUFPLEVBQUU7WUFDVCxJQUFJLE1BQU0sR0FBRyxPQUFPLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1lBQ2xDLElBQUksTUFBTSxFQUFFO2dCQUNSLE9BQVUsSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQzthQUNoQztTQUNKO1FBQ0QsT0FBTyxJQUFJLENBQUM7SUFDaEIsQ0FBQztJQUVEOztPQUVHO0lBQ0ksSUFBSSxDQUFDLFdBQVcsR0FBRyxLQUFLO1FBQzNCLElBQUksTUFBTSxHQUFHLElBQUksS0FBSyxFQUFVLENBQUM7UUFDakMsSUFBSSxPQUFPLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxXQUFXLENBQUMsQ0FBQztRQUUzQyxJQUFJLE9BQU8sRUFBRTtZQUNULEtBQUssSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLEdBQUcsR0FBRyxPQUFPLENBQUMsTUFBTSxFQUFFLENBQUMsR0FBRyxHQUFHLEVBQUUsRUFBRSxDQUFDLEVBQUU7Z0JBQ2hELE1BQU0sQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUUsQ0FBQyxDQUFDO2FBQ2hDO1NBQ0o7UUFDRCxPQUFPLE1BQU0sQ0FBQztJQUNsQixDQUFDO0lBRUQ7O09BRUc7SUFDSSxVQUFVLENBQUMsR0FBVyxFQUFFLFdBQVcsR0FBRyxLQUFLO1FBQzlDLElBQUksT0FBTyxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsV0FBVyxDQUFDLENBQUM7UUFFM0MsSUFBSSxPQUFPLEVBQUU7WUFDVCxPQUFPLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1NBQzNCO0lBQ0wsQ0FBQztJQUVEOztPQUVHO0lBQ0ksT0FBTyxDQUFDLEdBQVcsRUFBRSxLQUFhLEVBQUUsV0FBVyxHQUFHLEtBQUs7UUFDMUQsSUFBSSxPQUFPLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxXQUFXLENBQUMsQ0FBQztRQUMzQyxJQUFJLE9BQU8sRUFBRTtZQUNULE9BQU8sQ0FBQyxPQUFPLENBQUMsR0FBRyxFQUFFLElBQUksQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQztTQUMvQztJQUNMLENBQUM7SUFFRCxxRkFBcUY7SUFDN0UsVUFBVSxDQUFDLFdBQW9CO1FBQ25DLE9BQU8sV0FBVyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsY0FBYyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsWUFBWSxDQUFDO0lBQ3JFLENBQUM7Ozs7WUExREosVUFBVSxTQUFDO2dCQUNWLFVBQVUsRUFBRSxNQUFNO2FBQ25CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XHJcblxyXG5ASW5qZWN0YWJsZSh7XHJcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBDYWNoZVNlcnZpY2Uge1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogUmV0cmlldmUgYW4gaXRlbSBmcm9tIGNhY2hlXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBnZXRJdGVtPFQ+KGtleTogc3RyaW5nLCBzZXNzaW9uT25seSA9IGZhbHNlKTogVCB8IG51bGwge1xyXG4gICAgICAgIGxldCBzdG9yYWdlID0gdGhpcy5nZXRTdG9yYWdlKHNlc3Npb25Pbmx5KTtcclxuICAgICAgICBpZiAoc3RvcmFnZSkge1xyXG4gICAgICAgICAgICBsZXQgcmVzdWx0ID0gc3RvcmFnZS5nZXRJdGVtKGtleSk7XHJcbiAgICAgICAgICAgIGlmIChyZXN1bHQpIHtcclxuICAgICAgICAgICAgICAgIHJldHVybiA8VD5KU09OLnBhcnNlKHJlc3VsdCk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIG51bGw7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBSZXRyaWV2ZXMgYWxsIGtleXMgZnJvbSBjYWNoZVxyXG4gICAgICovXHJcbiAgICBwdWJsaWMga2V5cyhzZXNzaW9uT25seSA9IGZhbHNlKTogQXJyYXk8c3RyaW5nPiB7XHJcbiAgICAgICAgbGV0IHJlc3VsdCA9IG5ldyBBcnJheTxzdHJpbmc+KCk7XHJcbiAgICAgICAgbGV0IHN0b3JhZ2UgPSB0aGlzLmdldFN0b3JhZ2Uoc2Vzc2lvbk9ubHkpO1xyXG5cclxuICAgICAgICBpZiAoc3RvcmFnZSkge1xyXG4gICAgICAgICAgICBmb3IgKHZhciBpID0gMCwgbGVuID0gc3RvcmFnZS5sZW5ndGg7IGkgPCBsZW47ICsraSkge1xyXG4gICAgICAgICAgICAgICAgcmVzdWx0LnB1c2goc3RvcmFnZS5rZXkoaSkhKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gcmVzdWx0O1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogUmVtb3ZlcyBhbiBpdGVtIGZyb20gdGhlIGNhY2hlXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyByZW1vdmVJdGVtKGtleTogc3RyaW5nLCBzZXNzaW9uT25seSA9IGZhbHNlKSB7XHJcbiAgICAgICAgbGV0IHN0b3JhZ2UgPSB0aGlzLmdldFN0b3JhZ2Uoc2Vzc2lvbk9ubHkpO1xyXG5cclxuICAgICAgICBpZiAoc3RvcmFnZSkge1xyXG4gICAgICAgICAgICBzdG9yYWdlLnJlbW92ZUl0ZW0oa2V5KTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBQZXJzaXN0cyBhbiBpdGVtIHRvIGNhY2hlIFxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgc2V0SXRlbShrZXk6IHN0cmluZywgdmFsdWU6IG9iamVjdCwgc2Vzc2lvbk9ubHkgPSBmYWxzZSkge1xyXG4gICAgICAgIGxldCBzdG9yYWdlID0gdGhpcy5nZXRTdG9yYWdlKHNlc3Npb25Pbmx5KTtcclxuICAgICAgICBpZiAoc3RvcmFnZSkge1xyXG4gICAgICAgICAgICBzdG9yYWdlLnNldEl0ZW0oa2V5LCBKU09OLnN0cmluZ2lmeSh2YWx1ZSkpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICAvKipSZXR1cm5zIHRoZSBsb2NhbCBvciBzZXNzaW9uIHN0b3JhZ2UgdG8gdXNlIGZvciBiYWNraW5nIHRoZSBnaXZlbiBjYWNoZSByZXF1ZXN0ICovXHJcbiAgICBwcml2YXRlIGdldFN0b3JhZ2Uoc2Vzc2lvbk9ubHk6IGJvb2xlYW4pIDogU3RvcmFnZSB7XHJcbiAgICAgICAgcmV0dXJuIHNlc3Npb25Pbmx5ID8gd2luZG93LnNlc3Npb25TdG9yYWdlIDogd2luZG93LmxvY2FsU3RvcmFnZTtcclxuICAgIH1cclxuXHJcbiAgICAvL1RPRE86IGFkZCB1c2VyIGluZm8gdG8gaXNvbGF0ZSBjYWNoZSB2YWx1ZXMgZnJvbSBlYWNoIG90aGVyXHJcbn0iXX0=
103
+ CacheService.ctorParameters = () => [];
104
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FjaGUuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvbXBvbmVudHMvc3JjL2xpYi9jb3JlL2NhY2hlLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQzs7QUFLM0MsTUFBTSxPQUFPLFlBQVk7SUFLckI7UUFIUSwwQkFBcUIsR0FBWSxLQUFLLENBQUM7UUFDdkMsNEJBQXVCLEdBQVksS0FBSyxDQUFDO1FBRzdDLElBQUksVUFBVSxHQUFHLElBQUksQ0FBQztRQUN0QixJQUFJO1lBQ0EsSUFBSSxPQUFPLEdBQUcsaUJBQWlCLEdBQUcsSUFBSSxJQUFJLEVBQUUsQ0FBQyxPQUFPLEVBQUUsQ0FBQztZQUN2RCxNQUFNLEtBQUssR0FBRyxNQUFNLEdBQUcsT0FBTyxDQUFDO1lBRS9CLFlBQVksQ0FBQyxPQUFPLENBQUMsT0FBTyxFQUFFLEtBQUssQ0FBQyxDQUFDO1lBQ3JDLGNBQWMsQ0FBQyxPQUFPLENBQUMsT0FBTyxFQUFFLEtBQUssQ0FBQyxDQUFDO1lBRXZDLElBQUksQ0FBQyxxQkFBcUIsR0FBRyxZQUFZLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxJQUFJLEtBQUssQ0FBQztZQUNwRSxJQUFJLENBQUMsdUJBQXVCLEdBQUcsY0FBYyxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsSUFBSSxLQUFLLENBQUM7WUFFeEUsWUFBWSxDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUMsQ0FBQztZQUNqQyxjQUFjLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1NBRXRDO1FBQUMsT0FBTSxLQUFLLEVBQUU7WUFDWCxVQUFVLEdBQUcsS0FBSyxDQUFDO1NBQ3RCO2dCQUFTO1lBQ04sSUFBRyxDQUFDLElBQUksQ0FBQyxxQkFBcUIsSUFBSSxDQUFDLElBQUksQ0FBQyx1QkFBdUIsRUFBQztnQkFDNUQsT0FBTyxDQUFDLElBQUksQ0FBQyx1RkFBdUYsRUFDaEc7b0JBQ0ksS0FBSyxFQUFFLElBQUksQ0FBQyxxQkFBcUI7b0JBQ2pDLE9BQU8sRUFBRSxJQUFJLENBQUMsdUJBQXVCO29CQUNyQyxLQUFLLEVBQUUsVUFBVTtpQkFDcEIsQ0FDSixDQUFDO2FBQ0w7U0FDSjtJQUNMLENBQUM7SUFFRDs7T0FFRztJQUNJLGdCQUFnQixDQUFDLFdBQVcsR0FBRyxLQUFLO1FBQ3ZDLE9BQU8sV0FBVyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsdUJBQXVCLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxxQkFBcUIsQ0FBQztJQUNuRixDQUFDO0lBRUQ7O09BRUc7SUFDSSxPQUFPLENBQUksR0FBVyxFQUFFLFdBQVcsR0FBRyxLQUFLO1FBQzlDLElBQUksT0FBTyxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsV0FBVyxDQUFDLENBQUM7UUFDM0MsSUFBSSxPQUFPLEVBQUU7WUFDVCxJQUFJLE1BQU0sR0FBRyxPQUFPLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1lBQ2xDLElBQUksTUFBTSxFQUFFO2dCQUNSLE9BQVUsSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQzthQUNoQztTQUNKO1FBQ0QsT0FBTyxJQUFJLENBQUM7SUFDaEIsQ0FBQztJQUVEOztPQUVHO0lBQ0ksSUFBSSxDQUFDLFdBQVcsR0FBRyxLQUFLO1FBQzNCLElBQUksTUFBTSxHQUFHLElBQUksS0FBSyxFQUFVLENBQUM7UUFDakMsSUFBSSxPQUFPLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxXQUFXLENBQUMsQ0FBQztRQUUzQyxJQUFJLE9BQU8sRUFBRTtZQUNULEtBQUssSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLEdBQUcsR0FBRyxPQUFPLENBQUMsTUFBTSxFQUFFLENBQUMsR0FBRyxHQUFHLEVBQUUsRUFBRSxDQUFDLEVBQUU7Z0JBQ2hELE1BQU0sQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUUsQ0FBQyxDQUFDO2FBQ2hDO1NBQ0o7UUFDRCxPQUFPLE1BQU0sQ0FBQztJQUNsQixDQUFDO0lBRUQ7O09BRUc7SUFDSSxVQUFVLENBQUMsR0FBVyxFQUFFLFdBQVcsR0FBRyxLQUFLO1FBQzlDLElBQUksT0FBTyxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsV0FBVyxDQUFDLENBQUM7UUFFM0MsSUFBSSxPQUFPLEVBQUU7WUFDVCxPQUFPLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1NBQzNCO0lBQ0wsQ0FBQztJQUVEOztPQUVHO0lBQ0ksT0FBTyxDQUFDLEdBQVcsRUFBRSxLQUFhLEVBQUUsV0FBVyxHQUFHLEtBQUs7UUFDMUQsSUFBSSxPQUFPLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxXQUFXLENBQUMsQ0FBQztRQUMzQyxJQUFJLE9BQU8sRUFBRTtZQUNULE9BQU8sQ0FBQyxPQUFPLENBQUMsR0FBRyxFQUFFLElBQUksQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQztTQUMvQztJQUNMLENBQUM7SUFFRDs7O01BR0U7SUFDTSxVQUFVLENBQUMsV0FBb0I7UUFDbkMsSUFBRyxXQUFXLElBQUksSUFBSSxDQUFDLHVCQUF1QixFQUFDO1lBQzNDLE9BQU8sTUFBTSxDQUFDLGNBQWMsQ0FBQztTQUNoQzthQUFNLElBQUcsSUFBSSxDQUFDLHFCQUFxQixFQUFDO1lBQ2pDLE9BQU8sTUFBTSxDQUFDLFlBQVksQ0FBQztTQUM5QjthQUFNO1lBQ0gsT0FBTyxJQUFJLENBQUM7U0FDZjtJQUNMLENBQUM7Ozs7WUEzR0osVUFBVSxTQUFDO2dCQUNWLFVBQVUsRUFBRSxNQUFNO2FBQ25CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5cclxuQEluamVjdGFibGUoe1xyXG4gIHByb3ZpZGVkSW46ICdyb290J1xyXG59KVxyXG5leHBvcnQgY2xhc3MgQ2FjaGVTZXJ2aWNlIHtcclxuXHJcbiAgICBwcml2YXRlIGxvY2FsU3RvcmFnZUF2YWlsYWJsZTogYm9vbGVhbiA9IGZhbHNlO1xyXG4gICAgcHJpdmF0ZSBzZXNzaW9uU3RvcmFnZUF2YWlsYWJsZTogYm9vbGVhbiA9IGZhbHNlO1xyXG5cclxuICAgIGNvbnN0cnVjdG9yKCkge1xyXG4gICAgICAgIGxldCBjYWNoZUVycm9yID0gbnVsbDtcclxuICAgICAgICB0cnkge1xyXG4gICAgICAgICAgICBsZXQgZGF0ZVN0ciA9ICdyb3VuZHRyaXAtdGVzdC0nICsgbmV3IERhdGUoKS5nZXRUaW1lKCk7XHJcbiAgICAgICAgICAgIGNvbnN0IHZhbHVlID0gJ3ZhbC0nICsgZGF0ZVN0cjtcclxuXHJcbiAgICAgICAgICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKGRhdGVTdHIsIHZhbHVlKTtcclxuICAgICAgICAgICAgc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbShkYXRlU3RyLCB2YWx1ZSk7XHJcblxyXG4gICAgICAgICAgICB0aGlzLmxvY2FsU3RvcmFnZUF2YWlsYWJsZSA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKGRhdGVTdHIpID09IHZhbHVlO1xyXG4gICAgICAgICAgICB0aGlzLnNlc3Npb25TdG9yYWdlQXZhaWxhYmxlID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbShkYXRlU3RyKSA9PSB2YWx1ZTtcclxuXHJcbiAgICAgICAgICAgIGxvY2FsU3RvcmFnZS5yZW1vdmVJdGVtKGRhdGVTdHIpO1xyXG4gICAgICAgICAgICBzZXNzaW9uU3RvcmFnZS5yZW1vdmVJdGVtKGRhdGVTdHIpO1xyXG5cclxuICAgICAgICB9IGNhdGNoKGVycm9yKSB7XHJcbiAgICAgICAgICAgIGNhY2hlRXJyb3IgPSBlcnJvcjtcclxuICAgICAgICB9IGZpbmFsbHkge1xyXG4gICAgICAgICAgICBpZighdGhpcy5sb2NhbFN0b3JhZ2VBdmFpbGFibGUgfHwgIXRoaXMuc2Vzc2lvblN0b3JhZ2VBdmFpbGFibGUpe1xyXG4gICAgICAgICAgICAgICAgY29uc29sZS53YXJuKCdzdG9yYWdlIHVuYXZhaWxhYmxlIGZvciBjYWNoaW5nIHB1cnBvc2VzLiBTb21lIGZlYXR1cmVzIHdpbGwgbm90IGJlIGZ1bGx5IHN1cHBvcnRlZC4gJyxcclxuICAgICAgICAgICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGxvY2FsOiB0aGlzLmxvY2FsU3RvcmFnZUF2YWlsYWJsZSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgc2Vzc2lvbjogdGhpcy5zZXNzaW9uU3RvcmFnZUF2YWlsYWJsZSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgZXJyb3I6IGNhY2hlRXJyb3JcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICApO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIC8qKlJldHVybiB0cnVlIGlmIHRoZSByZXF1ZXN0ZWQgY2FjaGUgYWxsb3dzIHRoZSB1c2VyIHRvIHJvdW5kLXRyaXAgZGF0YSBpbiB0aGUgY3VycmVudCBlbnZpcm9ubWVudC5cclxuICAgICAqIFNlY3VyaXR5IHNldHRpbmdzIGNhbiBwcmV2ZW50IGl0IGFuZCB0aGUgYXBwIG1heSBuZWVkIHRvIGtub3cgaWYgXCJub3QgZm91bmRcIiBtZWFucyBcIm5ldmVyIHNldFwiIG9yIFwibm90IHN1cHBvcnRlZFwiXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBpc0NhY2hlQXZhaWxhYmxlKHNlc3Npb25Pbmx5ID0gZmFsc2UpOiBib29sZWFuIHtcclxuICAgICAgICByZXR1cm4gc2Vzc2lvbk9ubHkgPyB0aGlzLnNlc3Npb25TdG9yYWdlQXZhaWxhYmxlIDogdGhpcy5sb2NhbFN0b3JhZ2VBdmFpbGFibGU7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBSZXRyaWV2ZSBhbiBpdGVtIGZyb20gY2FjaGVcclxuICAgICAqL1xyXG4gICAgcHVibGljIGdldEl0ZW08VD4oa2V5OiBzdHJpbmcsIHNlc3Npb25Pbmx5ID0gZmFsc2UpOiBUIHwgbnVsbCB7XHJcbiAgICAgICAgbGV0IHN0b3JhZ2UgPSB0aGlzLmdldFN0b3JhZ2Uoc2Vzc2lvbk9ubHkpO1xyXG4gICAgICAgIGlmIChzdG9yYWdlKSB7XHJcbiAgICAgICAgICAgIGxldCByZXN1bHQgPSBzdG9yYWdlLmdldEl0ZW0oa2V5KTtcclxuICAgICAgICAgICAgaWYgKHJlc3VsdCkge1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuIDxUPkpTT04ucGFyc2UocmVzdWx0KTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gbnVsbDtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIFJldHJpZXZlcyBhbGwga2V5cyBmcm9tIGNhY2hlXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBrZXlzKHNlc3Npb25Pbmx5ID0gZmFsc2UpOiBBcnJheTxzdHJpbmc+IHtcclxuICAgICAgICBsZXQgcmVzdWx0ID0gbmV3IEFycmF5PHN0cmluZz4oKTtcclxuICAgICAgICBsZXQgc3RvcmFnZSA9IHRoaXMuZ2V0U3RvcmFnZShzZXNzaW9uT25seSk7XHJcblxyXG4gICAgICAgIGlmIChzdG9yYWdlKSB7XHJcbiAgICAgICAgICAgIGZvciAodmFyIGkgPSAwLCBsZW4gPSBzdG9yYWdlLmxlbmd0aDsgaSA8IGxlbjsgKytpKSB7XHJcbiAgICAgICAgICAgICAgICByZXN1bHQucHVzaChzdG9yYWdlLmtleShpKSEpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJldHVybiByZXN1bHQ7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBSZW1vdmVzIGFuIGl0ZW0gZnJvbSB0aGUgY2FjaGVcclxuICAgICAqL1xyXG4gICAgcHVibGljIHJlbW92ZUl0ZW0oa2V5OiBzdHJpbmcsIHNlc3Npb25Pbmx5ID0gZmFsc2UpIHtcclxuICAgICAgICBsZXQgc3RvcmFnZSA9IHRoaXMuZ2V0U3RvcmFnZShzZXNzaW9uT25seSk7XHJcblxyXG4gICAgICAgIGlmIChzdG9yYWdlKSB7XHJcbiAgICAgICAgICAgIHN0b3JhZ2UucmVtb3ZlSXRlbShrZXkpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIFBlcnNpc3RzIGFuIGl0ZW0gdG8gY2FjaGVcclxuICAgICAqL1xyXG4gICAgcHVibGljIHNldEl0ZW0oa2V5OiBzdHJpbmcsIHZhbHVlOiBvYmplY3QsIHNlc3Npb25Pbmx5ID0gZmFsc2UpIHtcclxuICAgICAgICBsZXQgc3RvcmFnZSA9IHRoaXMuZ2V0U3RvcmFnZShzZXNzaW9uT25seSk7XHJcbiAgICAgICAgaWYgKHN0b3JhZ2UpIHtcclxuICAgICAgICAgICAgc3RvcmFnZS5zZXRJdGVtKGtleSwgSlNPTi5zdHJpbmdpZnkodmFsdWUpKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgLyoqUmV0dXJucyB0aGUgbG9jYWwgb3Igc2Vzc2lvbiBzdG9yYWdlIHRvIHVzZSBmb3IgYmFja2luZyB0aGUgZ2l2ZW4gY2FjaGUgcmVxdWVzdC5cclxuICAgICAqIElmIHRoZSBicm93c2VyIGRvZXMgbm90IHN1cHBvcnQgdGhlIHJlcXVlc3RlZCBzdG9yYWdlIHRoZSByZXN1bHQgd2lsbCBiZSBudWxsLlxyXG4gICAgICogVGhpcyBjYW4gaGFwcGVuIGlmIHRoZSB1c2VyIGlzIGluIEZpcmVmb3ggZm9yIGV4YW1wbGUgd2l0aCB0aGUgc2V0dGluZyBkb20uc3RvcmFnZS5lbmFibGVkID0gZmFsc2VcclxuICAgICovXHJcbiAgICBwcml2YXRlIGdldFN0b3JhZ2Uoc2Vzc2lvbk9ubHk6IGJvb2xlYW4pIDogU3RvcmFnZSB8IG51bGwge1xyXG4gICAgICAgIGlmKHNlc3Npb25Pbmx5ICYmIHRoaXMuc2Vzc2lvblN0b3JhZ2VBdmFpbGFibGUpe1xyXG4gICAgICAgICAgICByZXR1cm4gd2luZG93LnNlc3Npb25TdG9yYWdlO1xyXG4gICAgICAgIH0gZWxzZSBpZih0aGlzLmxvY2FsU3RvcmFnZUF2YWlsYWJsZSl7XHJcbiAgICAgICAgICAgIHJldHVybiB3aW5kb3cubG9jYWxTdG9yYWdlO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIHJldHVybiBudWxsO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICAvL1RPRE86IGFkZCB1c2VyIGluZm8gdG8gaXNvbGF0ZSBjYWNoZSB2YWx1ZXMgZnJvbSBlYWNoIG90aGVyXHJcbn0iXX0=
@@ -0,0 +1,14 @@
1
+ import { Injectable } from '@angular/core';
2
+ import * as i0 from "@angular/core";
3
+ /** Default No-op telemetry implementation */
4
+ export class TelemetryTrackerService {
5
+ trackPageView(pageName, url, properties) { }
6
+ trackEvent(name, properties, measurements) { }
7
+ }
8
+ TelemetryTrackerService.ɵprov = i0.ɵɵdefineInjectable({ factory: function TelemetryTrackerService_Factory() { return new TelemetryTrackerService(); }, token: TelemetryTrackerService, providedIn: "root" });
9
+ TelemetryTrackerService.decorators = [
10
+ { type: Injectable, args: [{
11
+ providedIn: 'root'
12
+ },] }
13
+ ];
14
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVsZW1ldHJ5LXRyYWNrZXIuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvbXBvbmVudHMvc3JjL2xpYi9jb3JlL3RlbGVtZXRyeS10cmFja2VyLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQzs7QUFLM0MsNkNBQTZDO0FBQzdDLE1BQU0sT0FBTyx1QkFBdUI7SUFDM0IsYUFBYSxDQUFDLFFBQWdCLEVBQUUsR0FBVSxFQUFFLFVBQStDLElBQUksQ0FBQztJQUNoRyxVQUFVLENBQUMsSUFBWSxFQUFFLFVBQW1DLEVBQUUsWUFBb0MsSUFBSSxDQUFDOzs7O1lBTi9HLFVBQVUsU0FBQztnQkFDVixVQUFVLEVBQUUsTUFBTTthQUNuQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuXHJcbkBJbmplY3RhYmxlKHtcclxuICBwcm92aWRlZEluOiAncm9vdCdcclxufSlcclxuLyoqIERlZmF1bHQgTm8tb3AgdGVsZW1ldHJ5IGltcGxlbWVudGF0aW9uICovXHJcbmV4cG9ydCBjbGFzcyBUZWxlbWV0cnlUcmFja2VyU2VydmljZSB7XHJcbiAgcHVibGljIHRyYWNrUGFnZVZpZXcocGFnZU5hbWU6IHN0cmluZywgdXJsOnN0cmluZywgcHJvcGVydGllcz86IHsgW2tleTogc3RyaW5nXTogc3RyaW5nIHwgbnVtYmVyIH0pIHsgfVxyXG4gIHB1YmxpYyB0cmFja0V2ZW50KG5hbWU6IHN0cmluZywgcHJvcGVydGllcz86IHtba2V5OiBzdHJpbmddOnN0cmluZ30sIG1lYXN1cmVtZW50cz86IHtbdmFsOnN0cmluZ106bnVtYmVyfSkgeyB9XHJcbn1cclxuIl19
@@ -1,15 +1,40 @@
1
1
  import { Injectable } from '@angular/core';
2
- import { TelemetryBaseService } from './telemetry-base.service';
2
+ import { TelemetryTrackerService } from './telemetry-tracker.service';
3
3
  import * as i0 from "@angular/core";
4
- /** Default No-op telemetry implementation */
5
- export class TelemetryService extends TelemetryBaseService {
6
- trackPageView(pageName, url, properties) { }
7
- trackEvent(name, properties, measurements) { }
4
+ import * as i1 from "./telemetry-tracker.service";
5
+ export class TelemetryService {
6
+ constructor(telemetryTrackerService) {
7
+ this.telemetryTrackerService = telemetryTrackerService;
8
+ }
9
+ /**
10
+ * Tracks a Page View / State change
11
+ *
12
+ * @param {string} pageName
13
+ * @param {string} url
14
+ * @memberof TelemetryService
15
+ */
16
+ trackPageView(pageName, url, properties) {
17
+ this.telemetryTrackerService.trackPageView(pageName, url, properties);
18
+ }
19
+ /**
20
+ * Tracks a generic event
21
+ *
22
+ * @param {string} name
23
+ * @param {{[key: string]:string}} [properties]
24
+ * @param {{[val:string]:number}} [measurements]
25
+ * @memberof TelemetryService
26
+ */
27
+ trackEvent(name, properties, measurements) {
28
+ this.telemetryTrackerService.trackEvent(name, properties, measurements);
29
+ }
8
30
  }
9
- TelemetryService.ɵprov = i0.ɵɵdefineInjectable({ factory: function TelemetryService_Factory() { return new TelemetryService(); }, token: TelemetryService, providedIn: "root" });
31
+ TelemetryService.ɵprov = i0.ɵɵdefineInjectable({ factory: function TelemetryService_Factory() { return new TelemetryService(i0.ɵɵinject(i1.TelemetryTrackerService)); }, token: TelemetryService, providedIn: "root" });
10
32
  TelemetryService.decorators = [
11
33
  { type: Injectable, args: [{
12
34
  providedIn: 'root'
13
35
  },] }
14
36
  ];
15
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVsZW1ldHJ5LnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb21wb25lbnRzL3NyYy9saWIvY29yZS90ZWxlbWV0cnkuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNDLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLDBCQUEwQixDQUFDOztBQUtoRSw2Q0FBNkM7QUFDN0MsTUFBTSxPQUFPLGdCQUFpQixTQUFRLG9CQUFvQjtJQUNqRCxhQUFhLENBQUMsUUFBZ0IsRUFBRSxHQUFVLEVBQUUsVUFBK0MsSUFBSSxDQUFDO0lBQ2hHLFVBQVUsQ0FBQyxJQUFZLEVBQUUsVUFBbUMsRUFBRSxZQUFvQyxJQUFJLENBQUM7Ozs7WUFOL0csVUFBVSxTQUFDO2dCQUNWLFVBQVUsRUFBRSxNQUFNO2FBQ25CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBUZWxlbWV0cnlCYXNlU2VydmljZSB9IGZyb20gJy4vdGVsZW1ldHJ5LWJhc2Uuc2VydmljZSc7XHJcblxyXG5ASW5qZWN0YWJsZSh7XHJcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnXHJcbn0pXHJcbi8qKiBEZWZhdWx0IE5vLW9wIHRlbGVtZXRyeSBpbXBsZW1lbnRhdGlvbiAqL1xyXG5leHBvcnQgY2xhc3MgVGVsZW1ldHJ5U2VydmljZSBleHRlbmRzIFRlbGVtZXRyeUJhc2VTZXJ2aWNlIHtcclxuICBwdWJsaWMgdHJhY2tQYWdlVmlldyhwYWdlTmFtZTogc3RyaW5nLCB1cmw6c3RyaW5nLCBwcm9wZXJ0aWVzPzogeyBba2V5OiBzdHJpbmddOiBzdHJpbmcgfCBudW1iZXIgfSkgeyB9XHJcbiAgcHVibGljIHRyYWNrRXZlbnQobmFtZTogc3RyaW5nLCBwcm9wZXJ0aWVzPzoge1trZXk6IHN0cmluZ106c3RyaW5nfSwgbWVhc3VyZW1lbnRzPzoge1t2YWw6c3RyaW5nXTpudW1iZXJ9KSB7IH1cclxufVxyXG4iXX0=
37
+ TelemetryService.ctorParameters = () => [
38
+ { type: TelemetryTrackerService }
39
+ ];
40
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVsZW1ldHJ5LnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb21wb25lbnRzL3NyYy9saWIvY29yZS90ZWxlbWV0cnkuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNDLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLDZCQUE2QixDQUFDOzs7QUFLdEUsTUFBTSxPQUFPLGdCQUFnQjtJQUUzQixZQUFvQix1QkFBZ0Q7UUFBaEQsNEJBQXVCLEdBQXZCLHVCQUF1QixDQUF5QjtJQUFHLENBQUM7SUFFeEU7Ozs7OztPQU1HO0lBQ0ksYUFBYSxDQUFDLFFBQWdCLEVBQUUsR0FBVSxFQUFFLFVBQStDO1FBQ2hHLElBQUksQ0FBQyx1QkFBdUIsQ0FBQyxhQUFhLENBQUMsUUFBUSxFQUFFLEdBQUcsRUFBRSxVQUFVLENBQUMsQ0FBQztJQUN4RSxDQUFDO0lBRUQ7Ozs7Ozs7T0FPRztJQUNJLFVBQVUsQ0FBQyxJQUFZLEVBQUUsVUFBbUMsRUFBRSxZQUFvQztRQUN2RyxJQUFJLENBQUMsdUJBQXVCLENBQUMsVUFBVSxDQUFDLElBQUksRUFBRSxVQUFVLEVBQUUsWUFBWSxDQUFDLENBQUM7SUFDMUUsQ0FBQzs7OztZQTVCRixVQUFVLFNBQUM7Z0JBQ1YsVUFBVSxFQUFFLE1BQU07YUFDbkI7OztZQUpRLHVCQUF1QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgVGVsZW1ldHJ5VHJhY2tlclNlcnZpY2UgfSBmcm9tICcuL3RlbGVtZXRyeS10cmFja2VyLnNlcnZpY2UnO1xyXG5cclxuQEluamVjdGFibGUoe1xyXG4gIHByb3ZpZGVkSW46ICdyb290J1xyXG59KVxyXG5leHBvcnQgY2xhc3MgVGVsZW1ldHJ5U2VydmljZSB7XHJcblxyXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgdGVsZW1ldHJ5VHJhY2tlclNlcnZpY2U6IFRlbGVtZXRyeVRyYWNrZXJTZXJ2aWNlKSB7fVxyXG5cclxuICAvKipcclxuICAgKiBUcmFja3MgYSBQYWdlIFZpZXcgLyBTdGF0ZSBjaGFuZ2UgXHJcbiAgICogXHJcbiAgICogQHBhcmFtIHtzdHJpbmd9IHBhZ2VOYW1lIFxyXG4gICAqIEBwYXJhbSB7c3RyaW5nfSB1cmwgXHJcbiAgICogQG1lbWJlcm9mIFRlbGVtZXRyeVNlcnZpY2VcclxuICAgKi9cclxuICBwdWJsaWMgdHJhY2tQYWdlVmlldyhwYWdlTmFtZTogc3RyaW5nLCB1cmw6c3RyaW5nLCBwcm9wZXJ0aWVzPzogeyBba2V5OiBzdHJpbmddOiBzdHJpbmcgfCBudW1iZXIgfSkge1xyXG4gICAgdGhpcy50ZWxlbWV0cnlUcmFja2VyU2VydmljZS50cmFja1BhZ2VWaWV3KHBhZ2VOYW1lLCB1cmwsIHByb3BlcnRpZXMpO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogVHJhY2tzIGEgZ2VuZXJpYyBldmVudFxyXG4gICAqIFxyXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBuYW1lIFxyXG4gICAqIEBwYXJhbSB7e1trZXk6IHN0cmluZ106c3RyaW5nfX0gW3Byb3BlcnRpZXNdIFxyXG4gICAqIEBwYXJhbSB7e1t2YWw6c3RyaW5nXTpudW1iZXJ9fSBbbWVhc3VyZW1lbnRzXSBcclxuICAgKiBAbWVtYmVyb2YgVGVsZW1ldHJ5U2VydmljZVxyXG4gICAqL1xyXG4gIHB1YmxpYyB0cmFja0V2ZW50KG5hbWU6IHN0cmluZywgcHJvcGVydGllcz86IHtba2V5OiBzdHJpbmddOnN0cmluZ30sIG1lYXN1cmVtZW50cz86IHtbdmFsOnN0cmluZ106bnVtYmVyfSkge1xyXG4gICAgdGhpcy50ZWxlbWV0cnlUcmFja2VyU2VydmljZS50cmFja0V2ZW50KG5hbWUsIHByb3BlcnRpZXMsIG1lYXN1cmVtZW50cyk7XHJcbiAgfVxyXG59XHJcbiJdfQ==
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGVscC10eXBlcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvbXBvbmVudHMvc3JjL2xpYi9kaXNwbGF5L2hlbHAvaGVscC10eXBlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IHR5cGUgSGVscCA9IHtcclxuICBjb250cm9sczogSGVscENvbnRyb2xbXSxcclxuICBvdmVydmlldz86IHN0cmluZyxcclxuICBhbHdheXNWaXNpYmxlPzogYm9vbGVhbixcclxuICBpZ25vcmVVc2VyU2V0dGluZz86IGJvb2xlYW5cclxufTtcclxuXHJcbi8qKlxyXG4gKiBBIGZvcm0gY29udHJvbCBpbiB0aGUgY3VycmVudCB2aWV3IHRvIGRlZmluZSBpbiB0aGUgaGVscCBwYW5lbFxyXG4gKi9cclxuIGV4cG9ydCB0eXBlIEhlbHBDb250cm9sID0ge1xyXG4gIC8qKlxyXG4gICAqIFRoZSBjb250cm9scyBpZFxyXG4gICAqIEB0eXBlIHtzdHJpbmd9XHJcbiAgICovXHJcbiAgaWQ6IHN0cmluZyxcclxuXHJcbiAgLyoqXHJcbiAgICogVGhlIGZvcm0gY29udHJvbCBpZHMgdG8gbWF0Y2ggdGhpcyBoZWxwIGNvbnRyb2xcclxuICAgKiBJZiB0aGlzIGFycmF5IGlzIGRlZmluZWQgdGhlIGlkJ3Mgd2l0aGluIHRoaXMgd2lsbCB0YWtlIHByZWNpZGVuY2Ugb3ZlciB0aGVcclxuICAgKiBpZCBvZiB0aGUgaGVscCBjb250cm9sIHdoZW4gdHJ5aW5nIHRvIG1hdGNoIHVwIGEgY29udHJvbFxyXG4gICAqIEB0eXBlIHtzdHJpbmdbXX1cclxuICAgKi9cclxuICBpZEdyb3VwPzogQXJyYXk8c3RyaW5nPixcclxuXHJcbiAgLyoqXHJcbiAgICogVGhlIG5hbWUgb2YgdGhlIGNvbnRyb2xcclxuICAgKiBAdHlwZSB7c3RyaW5nfVxyXG4gICAqL1xyXG4gIGxhYmVsOiBzdHJpbmcsXHJcblxyXG4gIC8qKlxyXG4gICAqIFRoZSBkZWZpbml0aW9uIGZvciB0aGUgY29udHJvbFxyXG4gICAqIEB0eXBlIHtzdHJpbmd9XHJcbiAgICovXHJcbiAgZGVmaW5pdGlvbjogc3RyaW5nXHJcbn07XHJcbiJdfQ==
@@ -0,0 +1,106 @@
1
+ import { Directive, EventEmitter, Injector, Input, Output } from '@angular/core';
2
+ import { Subject } from 'rxjs';
3
+ import { TelemetryService } from '../../core/telemetry.service';
4
+ export class HierarchyItem {
5
+ constructor() {
6
+ this.id = '';
7
+ /** Label to display for the item */
8
+ this.label = '';
9
+ /** Indicates how many levels deep the item is in the parent structure */
10
+ this.level = 0;
11
+ /** Display item as a link or a heading */
12
+ this.display = 'default';
13
+ /** Set to hide toggle, even if item has children */
14
+ this.hideToggle = false;
15
+ /** Flag to indicate whether the item has children or not, mostly drives
16
+ * whether you get the expand/collapse button
17
+ */
18
+ this.hasChildren = false;
19
+ /** Array of children if any for the item */
20
+ this.children = [];
21
+ /** Flag to indicate if the item has been expanded */
22
+ this.expanded = false;
23
+ /** Flag to indicate if the item is selected */
24
+ this.selected = false;
25
+ /** Flag to indicate if the item can be selected */
26
+ this.selectable = false;
27
+ this.readonly = false;
28
+ /** Status of each item to indicate whether children lookup is pending or
29
+ * if an error occurred retrieving data
30
+ */
31
+ this.status = "hasData";
32
+ /** Indicates if the item is a top level entity, e.g. Organization or Cost Center */
33
+ this.topLevel = false;
34
+ /**
35
+ * When checking the url for activeness, the url must match exactly or partially
36
+ * @see https://angular.io/guide/router#active-router-links
37
+ */
38
+ this.isActiveExactMatch = true;
39
+ }
40
+ }
41
+ export class HierarchyBase {
42
+ constructor(injector) {
43
+ /** Event emitter to request children for a given item */
44
+ this.getItemChildren = new EventEmitter();
45
+ /**
46
+ * Used to unsubscribe from observables
47
+ */
48
+ this._destroyed = new Subject();
49
+ this.telemetryService = injector.get(TelemetryService);
50
+ }
51
+ get destroyed() {
52
+ return this._destroyed;
53
+ }
54
+ ngOnChanges(changes) {
55
+ if (changes && changes.rootNode && changes.rootNode.currentValue) {
56
+ /** If the rootNode has children and we don't know about them yet we must be loading
57
+ * the view without the new hierarchy api
58
+ */
59
+ if (this.rootNode.hasChildren && this.rootNode.children.length === 0) {
60
+ this.getItemChildren.emit(this.rootNode);
61
+ }
62
+ }
63
+ }
64
+ /**
65
+ * Function called when the component is destroyed
66
+ */
67
+ ngOnDestroy() {
68
+ this.destroyed.next();
69
+ this.destroyed.unsubscribe();
70
+ }
71
+ /** Handler for the toggle button */
72
+ toggleItemClicked(item, expanded) {
73
+ item.expanded = expanded;
74
+ this.telemetryService.trackEvent('toggle-tree-node', {
75
+ newExpandState: item.expanded ? 'expanded' : 'collapsed',
76
+ itemDepth: `${item.level}`,
77
+ });
78
+ if (item.expanded && item.hasChildren && item.children.length === 0) {
79
+ item.status = "pending";
80
+ this.getItemChildren.emit(item);
81
+ }
82
+ }
83
+ /** Method exposed to the parent component to set the items children once they are available
84
+ */
85
+ setItemChildren(parentItem, items) {
86
+ parentItem.children = items;
87
+ parentItem.status = "hasData";
88
+ }
89
+ /** Method exposed to the parent component to indicate that something happened on the
90
+ * item that caused an error, could be retrieving children
91
+ */
92
+ setItemError(parentItem) {
93
+ parentItem.status = "error";
94
+ }
95
+ }
96
+ HierarchyBase.decorators = [
97
+ { type: Directive }
98
+ ];
99
+ HierarchyBase.ctorParameters = () => [
100
+ { type: Injector }
101
+ ];
102
+ HierarchyBase.propDecorators = {
103
+ rootNode: [{ type: Input }],
104
+ getItemChildren: [{ type: Output }]
105
+ };
106
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGllcmFyY2h5LWJhc2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb21wb25lbnRzL3NyYy9saWIvZGlzcGxheS9oaWVyYXJjaHkvaGllcmFyY2h5LWJhc2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsUUFBUSxFQUFFLEtBQUssRUFBd0IsTUFBTSxFQUFpQixNQUFNLGVBQWUsQ0FBQztBQUV0SCxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBRS9CLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBR2hFLE1BQU0sT0FBTyxhQUFhO0lBQTFCO1FBQ0UsT0FBRSxHQUFXLEVBQUUsQ0FBQztRQUVoQixvQ0FBb0M7UUFDcEMsVUFBSyxHQUFXLEVBQUUsQ0FBQztRQUVuQix5RUFBeUU7UUFDekUsVUFBSyxHQUFXLENBQUMsQ0FBQztRQVVsQiwwQ0FBMEM7UUFDMUMsWUFBTyxHQUEyQixTQUFTLENBQUM7UUFFNUMsb0RBQW9EO1FBQ3BELGVBQVUsR0FBYSxLQUFLLENBQUM7UUFFN0I7O1dBRUc7UUFDSCxnQkFBVyxHQUFZLEtBQUssQ0FBQztRQUU3Qiw0Q0FBNEM7UUFDNUMsYUFBUSxHQUF5QixFQUFFLENBQUM7UUFFcEMscURBQXFEO1FBQ3JELGFBQVEsR0FBYSxLQUFLLENBQUM7UUFFM0IsK0NBQStDO1FBQy9DLGFBQVEsR0FBYSxLQUFLLENBQUM7UUFFM0IsbURBQW1EO1FBQ25ELGVBQVUsR0FBYSxLQUFLLENBQUM7UUFFN0IsYUFBUSxHQUFhLEtBQUssQ0FBQztRQUUzQjs7V0FFRztRQUNILFdBQU0sR0FBZ0IsU0FBUyxDQUFDO1FBRWhDLG9GQUFvRjtRQUNwRixhQUFRLEdBQWEsS0FBSyxDQUFDO1FBRTNCOzs7V0FHRztRQUNILHVCQUFrQixHQUFhLElBQUksQ0FBQztJQUN0QyxDQUFDO0NBQUE7QUFHRCxNQUFNLE9BQWdCLGFBQWE7SUFrQmpDLFlBQVksUUFBa0I7UUFiOUIseURBQXlEO1FBQ3hDLG9CQUFlLEdBQWdDLElBQUksWUFBWSxFQUFpQixDQUFDO1FBRWxHOztVQUVFO1FBQ00sZUFBVSxHQUFpQixJQUFJLE9BQU8sRUFBTyxDQUFDO1FBUXBELElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxRQUFRLENBQUMsR0FBRyxDQUFDLGdCQUFnQixDQUFDLENBQUM7SUFDekQsQ0FBQztJQVJELElBQVcsU0FBUztRQUNsQixPQUFPLElBQUksQ0FBQyxVQUFVLENBQUM7SUFDekIsQ0FBQztJQVFNLFdBQVcsQ0FBQyxPQUFzQjtRQUN2QyxJQUFJLE9BQU8sSUFBSSxPQUFPLENBQUMsUUFBUSxJQUFJLE9BQU8sQ0FBQyxRQUFRLENBQUMsWUFBWSxFQUFFO1lBQ2hFOztjQUVFO1lBQ0YsSUFBSSxJQUFJLENBQUMsUUFBUSxDQUFDLFdBQVcsSUFBSSxJQUFJLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxNQUFNLEtBQUssQ0FBQyxFQUFFO2dCQUNwRSxJQUFJLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7YUFDMUM7U0FDRjtJQUNILENBQUM7SUFFRDs7TUFFRTtJQUNLLFdBQVc7UUFDaEIsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUN0QixJQUFJLENBQUMsU0FBUyxDQUFDLFdBQVcsRUFBRSxDQUFDO0lBQy9CLENBQUM7SUFFRCxvQ0FBb0M7SUFDN0IsaUJBQWlCLENBQUMsSUFBbUIsRUFBRSxRQUFpQjtRQUM3RCxJQUFJLENBQUMsUUFBUSxHQUFHLFFBQVEsQ0FBQztRQUN6QixJQUFJLENBQUMsZ0JBQWdCLENBQUMsVUFBVSxDQUFDLGtCQUFrQixFQUFFO1lBQ25ELGNBQWMsRUFBRSxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLFdBQVc7WUFDeEQsU0FBUyxFQUFFLEdBQUcsSUFBSSxDQUFDLEtBQUssRUFBRTtTQUMzQixDQUFDLENBQUM7UUFFSCxJQUFJLElBQUksQ0FBQyxRQUFRLElBQUksSUFBSSxDQUFDLFdBQVcsSUFBSSxJQUFJLENBQUMsUUFBUSxDQUFDLE1BQU0sS0FBSyxDQUFDLEVBQUU7WUFDbkUsSUFBSSxDQUFDLE1BQU0sR0FBRyxTQUFTLENBQUM7WUFDeEIsSUFBSSxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7U0FDakM7SUFDSCxDQUFDO0lBRUQ7T0FDRztJQUNJLGVBQWUsQ0FBQyxVQUF5QixFQUFFLEtBQTJCO1FBQzNFLFVBQVUsQ0FBQyxRQUFRLEdBQUcsS0FBSyxDQUFDO1FBQzVCLFVBQVUsQ0FBQyxNQUFNLEdBQUcsU0FBUyxDQUFDO0lBQ2hDLENBQUM7SUFFRDs7TUFFRTtJQUNLLFlBQVksQ0FBQyxVQUF5QjtRQUMzQyxVQUFVLENBQUMsTUFBTSxHQUFHLE9BQU8sQ0FBQztJQUM5QixDQUFDOzs7WUFwRUYsU0FBUzs7O1lBaEV3QixRQUFROzs7dUJBb0V2QyxLQUFLOzhCQUdMLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEaXJlY3RpdmUsIEV2ZW50RW1pdHRlciwgSW5qZWN0b3IsIElucHV0LCBPbkNoYW5nZXMsIE9uRGVzdHJveSwgT3V0cHV0LCBTaW1wbGVDaGFuZ2VzIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IFBhcmFtcywgUXVlcnlQYXJhbXNIYW5kbGluZyB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XHJcbmltcG9ydCB7IFN1YmplY3QgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgTGlua0l0ZW0gfSBmcm9tICcuLi8uLi9jb250cm9scy9uYXZpZ2F0aW9uL2xpbmstaXRlbSc7XHJcbmltcG9ydCB7IFRlbGVtZXRyeVNlcnZpY2UgfSBmcm9tICcuLi8uLi9jb3JlL3RlbGVtZXRyeS5zZXJ2aWNlJztcclxuaW1wb3J0IHsgVmlld1N0YXR1cyB9IGZyb20gJy4uLy4uL3NoYXJlZC9kaXNwbGF5JztcclxuXHJcbmV4cG9ydCBjbGFzcyBIaWVyYXJjaHlJdGVtIGltcGxlbWVudHMgTGlua0l0ZW0ge1xyXG4gIGlkOiBzdHJpbmcgPSAnJztcclxuXHJcbiAgLyoqIExhYmVsIHRvIGRpc3BsYXkgZm9yIHRoZSBpdGVtICovXHJcbiAgbGFiZWw6IHN0cmluZyA9ICcnO1xyXG5cclxuICAvKiogSW5kaWNhdGVzIGhvdyBtYW55IGxldmVscyBkZWVwIHRoZSBpdGVtIGlzIGluIHRoZSBwYXJlbnQgc3RydWN0dXJlICovXHJcbiAgbGV2ZWw6IG51bWJlciA9IDA7XHJcblxyXG4gIHVybD86IHN0cmluZztcclxuXHJcbiAgcXVlcnlQYXJhbXM/OiBQYXJhbXMgfCBudWxsO1xyXG5cclxuICBxdWVyeVBhcmFtc0hhbmRsaW5nPzogUXVlcnlQYXJhbXNIYW5kbGluZztcclxuXHJcbiAgaWNvbj86IHN0cmluZztcclxuXHJcbiAgLyoqIERpc3BsYXkgaXRlbSBhcyBhIGxpbmsgb3IgYSBoZWFkaW5nICovXHJcbiAgZGlzcGxheT86ICdkZWZhdWx0JyB8ICdoZWFkaW5nJyA9ICdkZWZhdWx0JztcclxuXHJcbiAgLyoqIFNldCB0byBoaWRlIHRvZ2dsZSwgZXZlbiBpZiBpdGVtIGhhcyBjaGlsZHJlbiAqL1xyXG4gIGhpZGVUb2dnbGU/OiBib29sZWFuID0gZmFsc2U7XHJcblxyXG4gIC8qKiBGbGFnIHRvIGluZGljYXRlIHdoZXRoZXIgdGhlIGl0ZW0gaGFzIGNoaWxkcmVuIG9yIG5vdCwgbW9zdGx5IGRyaXZlc1xyXG4gICAqICB3aGV0aGVyIHlvdSBnZXQgdGhlIGV4cGFuZC9jb2xsYXBzZSBidXR0b25cclxuICAgKi9cclxuICBoYXNDaGlsZHJlbjogYm9vbGVhbiA9IGZhbHNlO1xyXG5cclxuICAvKiogQXJyYXkgb2YgY2hpbGRyZW4gaWYgYW55IGZvciB0aGUgaXRlbSAqL1xyXG4gIGNoaWxkcmVuOiBBcnJheTxIaWVyYXJjaHlJdGVtPiA9IFtdO1xyXG5cclxuICAvKiogRmxhZyB0byBpbmRpY2F0ZSBpZiB0aGUgaXRlbSBoYXMgYmVlbiBleHBhbmRlZCAqL1xyXG4gIGV4cGFuZGVkPzogYm9vbGVhbiA9IGZhbHNlO1xyXG5cclxuICAvKiogRmxhZyB0byBpbmRpY2F0ZSBpZiB0aGUgaXRlbSBpcyBzZWxlY3RlZCAqL1xyXG4gIHNlbGVjdGVkPzogYm9vbGVhbiA9IGZhbHNlO1xyXG5cclxuICAvKiogRmxhZyB0byBpbmRpY2F0ZSBpZiB0aGUgaXRlbSBjYW4gYmUgc2VsZWN0ZWQgKi9cclxuICBzZWxlY3RhYmxlPzogYm9vbGVhbiA9IGZhbHNlO1xyXG5cclxuICByZWFkb25seT86IGJvb2xlYW4gPSBmYWxzZTtcclxuXHJcbiAgLyoqIFN0YXR1cyBvZiBlYWNoIGl0ZW0gdG8gaW5kaWNhdGUgd2hldGhlciBjaGlsZHJlbiBsb29rdXAgaXMgcGVuZGluZyBvclxyXG4gICAqICBpZiBhbiBlcnJvciBvY2N1cnJlZCByZXRyaWV2aW5nIGRhdGFcclxuICAgKi9cclxuICBzdGF0dXM/OiBWaWV3U3RhdHVzID0gXCJoYXNEYXRhXCI7XHJcblxyXG4gIC8qKiBJbmRpY2F0ZXMgaWYgdGhlIGl0ZW0gaXMgYSB0b3AgbGV2ZWwgZW50aXR5LCBlLmcuIE9yZ2FuaXphdGlvbiBvciBDb3N0IENlbnRlciAqL1xyXG4gIHRvcExldmVsPzogYm9vbGVhbiA9IGZhbHNlO1xyXG5cclxuICAvKipcclxuICAgKiBXaGVuIGNoZWNraW5nIHRoZSB1cmwgZm9yIGFjdGl2ZW5lc3MsIHRoZSB1cmwgbXVzdCBtYXRjaCBleGFjdGx5IG9yIHBhcnRpYWxseVxyXG4gICAqIEBzZWUgaHR0cHM6Ly9hbmd1bGFyLmlvL2d1aWRlL3JvdXRlciNhY3RpdmUtcm91dGVyLWxpbmtzXHJcbiAgICovXHJcbiAgaXNBY3RpdmVFeGFjdE1hdGNoPzogYm9vbGVhbiA9IHRydWU7XHJcbn1cclxuXHJcbkBEaXJlY3RpdmUoKVxyXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgSGllcmFyY2h5QmFzZSBpbXBsZW1lbnRzIE9uQ2hhbmdlcywgT25EZXN0cm95IHtcclxuXHJcbiAgLyoqIEZpcnN0IGl0ZW0gdG8gc3RhcnQgdGhlIGhpZXJhcmNoeSBzdHJ1Y3R1cmUgKi9cclxuICBASW5wdXQoKSBwdWJsaWMgcm9vdE5vZGUhOiBIaWVyYXJjaHlJdGVtO1xyXG5cclxuICAvKiogRXZlbnQgZW1pdHRlciB0byByZXF1ZXN0IGNoaWxkcmVuIGZvciBhIGdpdmVuIGl0ZW0gKi9cclxuICBAT3V0cHV0KCkgcHVibGljIGdldEl0ZW1DaGlsZHJlbjogRXZlbnRFbWl0dGVyPEhpZXJhcmNoeUl0ZW0+ID0gbmV3IEV2ZW50RW1pdHRlcjxIaWVyYXJjaHlJdGVtPigpO1xyXG5cclxuICAvKipcclxuICAqIFVzZWQgdG8gdW5zdWJzY3JpYmUgZnJvbSBvYnNlcnZhYmxlc1xyXG4gICovXHJcbiAgcHJpdmF0ZSBfZGVzdHJveWVkOiBTdWJqZWN0PGFueT4gPSBuZXcgU3ViamVjdDxhbnk+KCk7XHJcbiAgcHVibGljIGdldCBkZXN0cm95ZWQoKTogU3ViamVjdDxhbnk+IHtcclxuICAgIHJldHVybiB0aGlzLl9kZXN0cm95ZWQ7XHJcbiAgfVxyXG5cclxuICBwcm90ZWN0ZWQgdGVsZW1ldHJ5U2VydmljZTogVGVsZW1ldHJ5U2VydmljZTtcclxuXHJcbiAgY29uc3RydWN0b3IoaW5qZWN0b3I6IEluamVjdG9yKSB7XHJcbiAgICB0aGlzLnRlbGVtZXRyeVNlcnZpY2UgPSBpbmplY3Rvci5nZXQoVGVsZW1ldHJ5U2VydmljZSk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcyk6IHZvaWQge1xyXG4gICAgaWYgKGNoYW5nZXMgJiYgY2hhbmdlcy5yb290Tm9kZSAmJiBjaGFuZ2VzLnJvb3ROb2RlLmN1cnJlbnRWYWx1ZSkge1xyXG4gICAgICAvKiogSWYgdGhlIHJvb3ROb2RlIGhhcyBjaGlsZHJlbiBhbmQgd2UgZG9uJ3Qga25vdyBhYm91dCB0aGVtIHlldCB3ZSBtdXN0IGJlIGxvYWRpbmdcclxuICAgICAgKiAgdGhlIHZpZXcgd2l0aG91dCB0aGUgbmV3IGhpZXJhcmNoeSBhcGlcclxuICAgICAgKi9cclxuICAgICAgaWYgKHRoaXMucm9vdE5vZGUuaGFzQ2hpbGRyZW4gJiYgdGhpcy5yb290Tm9kZS5jaGlsZHJlbi5sZW5ndGggPT09IDApIHtcclxuICAgICAgICB0aGlzLmdldEl0ZW1DaGlsZHJlbi5lbWl0KHRoaXMucm9vdE5vZGUpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAqIEZ1bmN0aW9uIGNhbGxlZCB3aGVuIHRoZSBjb21wb25lbnQgaXMgZGVzdHJveWVkXHJcbiAgKi9cclxuICBwdWJsaWMgbmdPbkRlc3Ryb3koKTogdm9pZCB7XHJcbiAgICB0aGlzLmRlc3Ryb3llZC5uZXh0KCk7XHJcbiAgICB0aGlzLmRlc3Ryb3llZC51bnN1YnNjcmliZSgpO1xyXG4gIH1cclxuXHJcbiAgLyoqIEhhbmRsZXIgZm9yIHRoZSB0b2dnbGUgYnV0dG9uICovXHJcbiAgcHVibGljIHRvZ2dsZUl0ZW1DbGlja2VkKGl0ZW06IEhpZXJhcmNoeUl0ZW0sIGV4cGFuZGVkOiBib29sZWFuKSB7XHJcbiAgICBpdGVtLmV4cGFuZGVkID0gZXhwYW5kZWQ7XHJcbiAgICB0aGlzLnRlbGVtZXRyeVNlcnZpY2UudHJhY2tFdmVudCgndG9nZ2xlLXRyZWUtbm9kZScsIHtcclxuICAgICAgbmV3RXhwYW5kU3RhdGU6IGl0ZW0uZXhwYW5kZWQgPyAnZXhwYW5kZWQnIDogJ2NvbGxhcHNlZCcsXHJcbiAgICAgIGl0ZW1EZXB0aDogYCR7aXRlbS5sZXZlbH1gLFxyXG4gICAgfSk7XHJcblxyXG4gICAgaWYgKGl0ZW0uZXhwYW5kZWQgJiYgaXRlbS5oYXNDaGlsZHJlbiAmJiBpdGVtLmNoaWxkcmVuLmxlbmd0aCA9PT0gMCkge1xyXG4gICAgICBpdGVtLnN0YXR1cyA9IFwicGVuZGluZ1wiO1xyXG4gICAgICB0aGlzLmdldEl0ZW1DaGlsZHJlbi5lbWl0KGl0ZW0pO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLyoqIE1ldGhvZCBleHBvc2VkIHRvIHRoZSBwYXJlbnQgY29tcG9uZW50IHRvIHNldCB0aGUgaXRlbXMgY2hpbGRyZW4gb25jZSB0aGV5IGFyZSBhdmFpbGFibGVcclxuICAgKi9cclxuICBwdWJsaWMgc2V0SXRlbUNoaWxkcmVuKHBhcmVudEl0ZW06IEhpZXJhcmNoeUl0ZW0sIGl0ZW1zOiBBcnJheTxIaWVyYXJjaHlJdGVtPik6IHZvaWQge1xyXG4gICAgcGFyZW50SXRlbS5jaGlsZHJlbiA9IGl0ZW1zO1xyXG4gICAgcGFyZW50SXRlbS5zdGF0dXMgPSBcImhhc0RhdGFcIjtcclxuICB9XHJcblxyXG4gIC8qKiBNZXRob2QgZXhwb3NlZCB0byB0aGUgcGFyZW50IGNvbXBvbmVudCB0byBpbmRpY2F0ZSB0aGF0IHNvbWV0aGluZyBoYXBwZW5lZCBvbiB0aGVcclxuICAgKiAgaXRlbSB0aGF0IGNhdXNlZCBhbiBlcnJvciwgY291bGQgYmUgcmV0cmlldmluZyBjaGlsZHJlblxyXG4gICovXHJcbiAgcHVibGljIHNldEl0ZW1FcnJvcihwYXJlbnRJdGVtOiBIaWVyYXJjaHlJdGVtKTogdm9pZCB7XHJcbiAgICBwYXJlbnRJdGVtLnN0YXR1cyA9IFwiZXJyb3JcIjtcclxuICB9XHJcbn1cclxuIl19
@@ -0,0 +1,58 @@
1
+ export var HierarchyMocks;
2
+ (function (HierarchyMocks) {
3
+ HierarchyMocks.mockRoot = () => ({
4
+ id: "1",
5
+ level: 0,
6
+ hasChildren: true,
7
+ children: [],
8
+ label: ''
9
+ });
10
+ HierarchyMocks.bldgWithChildren = () => {
11
+ return {
12
+ placeId: 3, parentId: 0, placeTypeId: 2, placeCode: 'HASCHILDREN_BLDG', placeInfo: 'A Cool Bldg Has Children',
13
+ hasChildren: true, placeChildren: [], meterChildren: [], hasActiveChildren: true
14
+ };
15
+ };
16
+ HierarchyMocks.bldgWithChildrenHierarchyItem = () => ({
17
+ id: HierarchyMocks.bldgWithChildren().placeId.toString(),
18
+ icon: 'icon-building', label: `${HierarchyMocks.bldgWithChildren().placeInfo} [${HierarchyMocks.bldgWithChildren().placeCode}]`,
19
+ children: [], hasChildren: true, level: 1, selectable: true, topLevel: false
20
+ });
21
+ HierarchyMocks.orgWithChildren = () => {
22
+ return {
23
+ placeId: 1, parentId: 0, placeTypeId: 1, placeCode: 'HASCHILDREN_ORG', placeInfo: 'A Org Has Children',
24
+ hasChildren: true, placeChildren: [], meterChildren: [], hasActiveChildren: true
25
+ };
26
+ };
27
+ HierarchyMocks.orgWithChildrenHierarchyItem = () => ({
28
+ id: HierarchyMocks.orgWithChildren().placeId.toString(),
29
+ icon: 'icon-organization', label: `${HierarchyMocks.orgWithChildren().placeInfo} [${HierarchyMocks.orgWithChildren().placeCode}]`,
30
+ children: [], hasChildren: true, level: 1, selectable: true, topLevel: true
31
+ });
32
+ HierarchyMocks.orgWithoutChildren = () => {
33
+ return {
34
+ placeId: 2, parentId: 0, placeTypeId: 1, placeCode: 'NOCHILDREN_ORG', placeInfo: 'No Children Org',
35
+ hasChildren: false, placeChildren: [], meterChildren: [], hasActiveChildren: false
36
+ };
37
+ };
38
+ HierarchyMocks.orgWithoutChildrenHierarchyItem = () => ({
39
+ id: HierarchyMocks.orgWithoutChildren().placeId.toString(),
40
+ icon: 'icon-organization', label: `${HierarchyMocks.orgWithoutChildren().placeInfo} [${HierarchyMocks.orgWithoutChildren().placeCode}]`,
41
+ children: [], hasChildren: false, level: 1, selectable: true, topLevel: true
42
+ });
43
+ HierarchyMocks.bldgWithoutChildren = () => {
44
+ return {
45
+ placeId: 4, parentId: 0, placeTypeId: 2, placeCode: 'NOCHILDREN_BLDG', placeInfo: 'Zzz No Children Bldg',
46
+ hasChildren: false, placeChildren: [], meterChildren: [], hasActiveChildren: false
47
+ };
48
+ };
49
+ HierarchyMocks.bldgWithoutChildrenHierarchyItem = () => ({
50
+ id: HierarchyMocks.bldgWithoutChildren().placeId.toString(),
51
+ icon: 'icon-building', label: `${HierarchyMocks.bldgWithoutChildren().placeInfo} [${HierarchyMocks.bldgWithoutChildren().placeCode}]`,
52
+ children: [], hasChildren: false, level: 1, selectable: true, topLevel: false
53
+ });
54
+ HierarchyMocks.sortedHierarchyPlaces = () => [
55
+ HierarchyMocks.bldgWithChildrenHierarchyItem(), HierarchyMocks.orgWithChildrenHierarchyItem(), HierarchyMocks.orgWithoutChildrenHierarchyItem(), HierarchyMocks.bldgWithoutChildrenHierarchyItem()
56
+ ];
57
+ })(HierarchyMocks || (HierarchyMocks = {}));
58
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGllcmFyY2h5LW1vY2tzLnNwZWMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb21wb25lbnRzL3NyYy9saWIvZGlzcGxheS9oaWVyYXJjaHkvaGllcmFyY2h5LW1vY2tzLnNwZWMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsTUFBTSxLQUFXLGNBQWMsQ0FvRDlCO0FBcERELFdBQWlCLGNBQWM7SUFDaEIsdUJBQVEsR0FBRyxHQUFHLEVBQUUsQ0FBQyxDQUFlO1FBQzNDLEVBQUUsRUFBRSxHQUFHO1FBQ1AsS0FBSyxFQUFFLENBQUM7UUFDUixXQUFXLEVBQUUsSUFBSTtRQUNqQixRQUFRLEVBQUUsRUFBRTtRQUNaLEtBQUssRUFBRSxFQUFFO0tBQ1YsQ0FBQSxDQUFDO0lBRVcsK0JBQWdCLEdBQUcsR0FBRyxFQUFFO1FBQUcsT0FBTztZQUM3QyxPQUFPLEVBQUUsQ0FBQyxFQUFFLFFBQVEsRUFBRSxDQUFDLEVBQUUsV0FBVyxFQUFFLENBQUMsRUFBRSxTQUFTLEVBQUUsa0JBQWtCLEVBQUUsU0FBUyxFQUFFLDBCQUEwQjtZQUM3RyxXQUFXLEVBQUUsSUFBSSxFQUFFLGFBQWEsRUFBRSxFQUFFLEVBQUUsYUFBYSxFQUFFLEVBQUUsRUFBRSxpQkFBaUIsRUFBRSxJQUFJO1NBQ2pGLENBQUE7SUFBQSxDQUFDLENBQUM7SUFFVSw0Q0FBNkIsR0FBRyxHQUFHLEVBQUUsQ0FBQyxDQUFlO1FBQ2hFLEVBQUUsRUFBRSxlQUFBLGdCQUFnQixFQUFFLENBQUMsT0FBUSxDQUFDLFFBQVEsRUFBRTtRQUFFLElBQUksRUFBRSxlQUFlLEVBQUUsS0FBSyxFQUFFLEdBQUcsZUFBQSxnQkFBZ0IsRUFBRSxDQUFDLFNBQVMsS0FBSyxlQUFBLGdCQUFnQixFQUFFLENBQUMsU0FBUyxHQUFHO1FBQzdJLFFBQVEsRUFBRSxFQUFFLEVBQUUsV0FBVyxFQUFFLElBQUksRUFBRSxLQUFLLEVBQUUsQ0FBQyxFQUFFLFVBQVUsRUFBRSxJQUFJLEVBQUUsUUFBUSxFQUFFLEtBQUs7S0FDN0UsQ0FBQSxDQUFDO0lBRVcsOEJBQWUsR0FBRyxHQUFHLEVBQUU7UUFBRyxPQUFPO1lBQzVDLE9BQU8sRUFBRSxDQUFDLEVBQUUsUUFBUSxFQUFFLENBQUMsRUFBRSxXQUFXLEVBQUUsQ0FBQyxFQUFFLFNBQVMsRUFBRSxpQkFBaUIsRUFBRSxTQUFTLEVBQUUsb0JBQW9CO1lBQ3RHLFdBQVcsRUFBRSxJQUFJLEVBQUUsYUFBYSxFQUFFLEVBQUUsRUFBRSxhQUFhLEVBQUUsRUFBRSxFQUFFLGlCQUFpQixFQUFFLElBQUk7U0FDakYsQ0FBQTtJQUFBLENBQUMsQ0FBQztJQUVVLDJDQUE0QixHQUFHLEdBQUcsRUFBRSxDQUFDLENBQWU7UUFDL0QsRUFBRSxFQUFFLGVBQUEsZUFBZSxFQUFFLENBQUMsT0FBUSxDQUFDLFFBQVEsRUFBRTtRQUFFLElBQUksRUFBRSxtQkFBbUIsRUFBRSxLQUFLLEVBQUUsR0FBRyxlQUFBLGVBQWUsRUFBRSxDQUFDLFNBQVMsS0FBSyxlQUFBLGVBQWUsRUFBRSxDQUFDLFNBQVMsR0FBRztRQUM5SSxRQUFRLEVBQUUsRUFBRSxFQUFFLFdBQVcsRUFBRSxJQUFJLEVBQUUsS0FBSyxFQUFFLENBQUMsRUFBRSxVQUFVLEVBQUUsSUFBSSxFQUFFLFFBQVEsRUFBRSxJQUFJO0tBQzVFLENBQUEsQ0FBQztJQUVXLGlDQUFrQixHQUFHLEdBQUcsRUFBRTtRQUFHLE9BQU87WUFDL0MsT0FBTyxFQUFFLENBQUMsRUFBRSxRQUFRLEVBQUUsQ0FBQyxFQUFFLFdBQVcsRUFBRSxDQUFDLEVBQUUsU0FBUyxFQUFFLGdCQUFnQixFQUFFLFNBQVMsRUFBRSxpQkFBaUI7WUFDbEcsV0FBVyxFQUFFLEtBQUssRUFBRSxhQUFhLEVBQUUsRUFBRSxFQUFFLGFBQWEsRUFBRSxFQUFFLEVBQUUsaUJBQWlCLEVBQUUsS0FBSztTQUNuRixDQUFBO0lBQUEsQ0FBQyxDQUFDO0lBRVUsOENBQStCLEdBQUcsR0FBRyxFQUFFLENBQUMsQ0FBZTtRQUNsRSxFQUFFLEVBQUUsZUFBQSxrQkFBa0IsRUFBRSxDQUFDLE9BQVEsQ0FBQyxRQUFRLEVBQUU7UUFBRSxJQUFJLEVBQUUsbUJBQW1CLEVBQUUsS0FBSyxFQUFFLEdBQUcsZUFBQSxrQkFBa0IsRUFBRSxDQUFDLFNBQVMsS0FBSyxlQUFBLGtCQUFrQixFQUFFLENBQUMsU0FBUyxHQUFHO1FBQ3ZKLFFBQVEsRUFBRSxFQUFFLEVBQUUsV0FBVyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsQ0FBQyxFQUFFLFVBQVUsRUFBRSxJQUFJLEVBQUUsUUFBUSxFQUFFLElBQUk7S0FDN0UsQ0FBQSxDQUFDO0lBRVcsa0NBQW1CLEdBQUcsR0FBRyxFQUFFO1FBQUcsT0FBTztZQUNoRCxPQUFPLEVBQUUsQ0FBQyxFQUFFLFFBQVEsRUFBRSxDQUFDLEVBQUUsV0FBVyxFQUFFLENBQUMsRUFBRSxTQUFTLEVBQUUsaUJBQWlCLEVBQUUsU0FBUyxFQUFFLHNCQUFzQjtZQUN4RyxXQUFXLEVBQUUsS0FBSyxFQUFFLGFBQWEsRUFBRSxFQUFFLEVBQUUsYUFBYSxFQUFFLEVBQUUsRUFBRSxpQkFBaUIsRUFBRSxLQUFLO1NBQ25GLENBQUE7SUFBQSxDQUFDLENBQUM7SUFFVSwrQ0FBZ0MsR0FBRyxHQUFHLEVBQUUsQ0FBQyxDQUFlO1FBQ25FLEVBQUUsRUFBRSxlQUFBLG1CQUFtQixFQUFFLENBQUMsT0FBUSxDQUFDLFFBQVEsRUFBRTtRQUFFLElBQUksRUFBRSxlQUFlLEVBQUUsS0FBSyxFQUFFLEdBQUcsZUFBQSxtQkFBbUIsRUFBRSxDQUFDLFNBQVMsS0FBSyxlQUFBLG1CQUFtQixFQUFFLENBQUMsU0FBUyxHQUFHO1FBQ3RKLFFBQVEsRUFBRSxFQUFFLEVBQUUsV0FBVyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsQ0FBQyxFQUFFLFVBQVUsRUFBRSxJQUFJLEVBQUUsUUFBUSxFQUFFLEtBQUs7S0FDOUUsQ0FBQSxDQUFDO0lBRVcsb0NBQXFCLEdBQUcsR0FBRyxFQUFFLENBQXVCO1FBQy9ELGVBQUEsNkJBQTZCLEVBQUUsRUFBRSxlQUFBLDRCQUE0QixFQUFFLEVBQUUsZUFBQSwrQkFBK0IsRUFBRSxFQUFFLGVBQUEsZ0NBQWdDLEVBQUU7S0FDdkksQ0FBQztBQUNKLENBQUMsRUFwRGdCLGNBQWMsS0FBZCxjQUFjLFFBb0Q5QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEhpZXJhcmNoeUl0ZW0gfSBmcm9tICcuL2hpZXJhcmNoeS1iYXNlJztcclxuXHJcbmV4cG9ydCBuYW1lc3BhY2UgSGllcmFyY2h5TW9ja3Mge1xyXG4gIGV4cG9ydCBjb25zdCBtb2NrUm9vdCA9ICgpID0+IDxIaWVyYXJjaHlJdGVtPntcclxuICAgIGlkOiBcIjFcIixcclxuICAgIGxldmVsOiAwLFxyXG4gICAgaGFzQ2hpbGRyZW46IHRydWUsXHJcbiAgICBjaGlsZHJlbjogW10sXHJcbiAgICBsYWJlbDogJydcclxuICB9O1xyXG5cclxuICBleHBvcnQgY29uc3QgYmxkZ1dpdGhDaGlsZHJlbiA9ICgpID0+IHsgcmV0dXJuIHtcclxuICAgIHBsYWNlSWQ6IDMsIHBhcmVudElkOiAwLCBwbGFjZVR5cGVJZDogMiwgcGxhY2VDb2RlOiAnSEFTQ0hJTERSRU5fQkxERycsIHBsYWNlSW5mbzogJ0EgQ29vbCBCbGRnIEhhcyBDaGlsZHJlbicsXHJcbiAgICBoYXNDaGlsZHJlbjogdHJ1ZSwgcGxhY2VDaGlsZHJlbjogW10sIG1ldGVyQ2hpbGRyZW46IFtdLCBoYXNBY3RpdmVDaGlsZHJlbjogdHJ1ZVxyXG4gIH19O1xyXG5cclxuICBleHBvcnQgY29uc3QgYmxkZ1dpdGhDaGlsZHJlbkhpZXJhcmNoeUl0ZW0gPSAoKSA9PiA8SGllcmFyY2h5SXRlbT57XHJcbiAgICBpZDogYmxkZ1dpdGhDaGlsZHJlbigpLnBsYWNlSWQhLnRvU3RyaW5nKCksIGljb246ICdpY29uLWJ1aWxkaW5nJywgbGFiZWw6IGAke2JsZGdXaXRoQ2hpbGRyZW4oKS5wbGFjZUluZm99IFske2JsZGdXaXRoQ2hpbGRyZW4oKS5wbGFjZUNvZGV9XWAsXHJcbiAgICBjaGlsZHJlbjogW10sIGhhc0NoaWxkcmVuOiB0cnVlLCBsZXZlbDogMSwgc2VsZWN0YWJsZTogdHJ1ZSwgdG9wTGV2ZWw6IGZhbHNlXHJcbiAgfTtcclxuXHJcbiAgZXhwb3J0IGNvbnN0IG9yZ1dpdGhDaGlsZHJlbiA9ICgpID0+IHsgcmV0dXJuIHtcclxuICAgIHBsYWNlSWQ6IDEsIHBhcmVudElkOiAwLCBwbGFjZVR5cGVJZDogMSwgcGxhY2VDb2RlOiAnSEFTQ0hJTERSRU5fT1JHJywgcGxhY2VJbmZvOiAnQSBPcmcgSGFzIENoaWxkcmVuJyxcclxuICAgIGhhc0NoaWxkcmVuOiB0cnVlLCBwbGFjZUNoaWxkcmVuOiBbXSwgbWV0ZXJDaGlsZHJlbjogW10sIGhhc0FjdGl2ZUNoaWxkcmVuOiB0cnVlXHJcbiAgfX07XHJcblxyXG4gIGV4cG9ydCBjb25zdCBvcmdXaXRoQ2hpbGRyZW5IaWVyYXJjaHlJdGVtID0gKCkgPT4gPEhpZXJhcmNoeUl0ZW0+e1xyXG4gICAgaWQ6IG9yZ1dpdGhDaGlsZHJlbigpLnBsYWNlSWQhLnRvU3RyaW5nKCksIGljb246ICdpY29uLW9yZ2FuaXphdGlvbicsIGxhYmVsOiBgJHtvcmdXaXRoQ2hpbGRyZW4oKS5wbGFjZUluZm99IFske29yZ1dpdGhDaGlsZHJlbigpLnBsYWNlQ29kZX1dYCxcclxuICAgIGNoaWxkcmVuOiBbXSwgaGFzQ2hpbGRyZW46IHRydWUsIGxldmVsOiAxLCBzZWxlY3RhYmxlOiB0cnVlLCB0b3BMZXZlbDogdHJ1ZVxyXG4gIH07XHJcblxyXG4gIGV4cG9ydCBjb25zdCBvcmdXaXRob3V0Q2hpbGRyZW4gPSAoKSA9PiB7IHJldHVybiB7XHJcbiAgICBwbGFjZUlkOiAyLCBwYXJlbnRJZDogMCwgcGxhY2VUeXBlSWQ6IDEsIHBsYWNlQ29kZTogJ05PQ0hJTERSRU5fT1JHJywgcGxhY2VJbmZvOiAnTm8gQ2hpbGRyZW4gT3JnJyxcclxuICAgIGhhc0NoaWxkcmVuOiBmYWxzZSwgcGxhY2VDaGlsZHJlbjogW10sIG1ldGVyQ2hpbGRyZW46IFtdLCBoYXNBY3RpdmVDaGlsZHJlbjogZmFsc2VcclxuICB9fTtcclxuXHJcbiAgZXhwb3J0IGNvbnN0IG9yZ1dpdGhvdXRDaGlsZHJlbkhpZXJhcmNoeUl0ZW0gPSAoKSA9PiA8SGllcmFyY2h5SXRlbT57XHJcbiAgICBpZDogb3JnV2l0aG91dENoaWxkcmVuKCkucGxhY2VJZCEudG9TdHJpbmcoKSwgaWNvbjogJ2ljb24tb3JnYW5pemF0aW9uJywgbGFiZWw6IGAke29yZ1dpdGhvdXRDaGlsZHJlbigpLnBsYWNlSW5mb30gWyR7b3JnV2l0aG91dENoaWxkcmVuKCkucGxhY2VDb2RlfV1gLFxyXG4gICAgY2hpbGRyZW46IFtdLCBoYXNDaGlsZHJlbjogZmFsc2UsIGxldmVsOiAxLCBzZWxlY3RhYmxlOiB0cnVlLCB0b3BMZXZlbDogdHJ1ZVxyXG4gIH07XHJcblxyXG4gIGV4cG9ydCBjb25zdCBibGRnV2l0aG91dENoaWxkcmVuID0gKCkgPT4geyByZXR1cm4ge1xyXG4gICAgcGxhY2VJZDogNCwgcGFyZW50SWQ6IDAsIHBsYWNlVHlwZUlkOiAyLCBwbGFjZUNvZGU6ICdOT0NISUxEUkVOX0JMREcnLCBwbGFjZUluZm86ICdaenogTm8gQ2hpbGRyZW4gQmxkZycsXHJcbiAgICBoYXNDaGlsZHJlbjogZmFsc2UsIHBsYWNlQ2hpbGRyZW46IFtdLCBtZXRlckNoaWxkcmVuOiBbXSwgaGFzQWN0aXZlQ2hpbGRyZW46IGZhbHNlXHJcbiAgfX07XHJcblxyXG4gIGV4cG9ydCBjb25zdCBibGRnV2l0aG91dENoaWxkcmVuSGllcmFyY2h5SXRlbSA9ICgpID0+IDxIaWVyYXJjaHlJdGVtPntcclxuICAgIGlkOiBibGRnV2l0aG91dENoaWxkcmVuKCkucGxhY2VJZCEudG9TdHJpbmcoKSwgaWNvbjogJ2ljb24tYnVpbGRpbmcnLCBsYWJlbDogYCR7YmxkZ1dpdGhvdXRDaGlsZHJlbigpLnBsYWNlSW5mb30gWyR7YmxkZ1dpdGhvdXRDaGlsZHJlbigpLnBsYWNlQ29kZX1dYCxcclxuICAgIGNoaWxkcmVuOiBbXSwgaGFzQ2hpbGRyZW46IGZhbHNlLCBsZXZlbDogMSwgc2VsZWN0YWJsZTogdHJ1ZSwgdG9wTGV2ZWw6IGZhbHNlXHJcbiAgfTtcclxuXHJcbiAgZXhwb3J0IGNvbnN0IHNvcnRlZEhpZXJhcmNoeVBsYWNlcyA9ICgpID0+IDxBcnJheTxIaWVyYXJjaHlJdGVtPj5bXHJcbiAgICBibGRnV2l0aENoaWxkcmVuSGllcmFyY2h5SXRlbSgpLCBvcmdXaXRoQ2hpbGRyZW5IaWVyYXJjaHlJdGVtKCksIG9yZ1dpdGhvdXRDaGlsZHJlbkhpZXJhcmNoeUl0ZW0oKSwgYmxkZ1dpdGhvdXRDaGlsZHJlbkhpZXJhcmNoeUl0ZW0oKVxyXG4gIF07XHJcbn1cclxuIl19