@c8y/ngx-components 1021.21.0 → 1021.24.1

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 (97) hide show
  1. package/alarms/alarm-details.component.d.ts +1 -3
  2. package/alarms/alarm-details.component.d.ts.map +1 -1
  3. package/alarms/alarm-info.component.d.ts +9 -14
  4. package/alarms/alarm-info.component.d.ts.map +1 -1
  5. package/alarms/alarms-date-filter.component.d.ts +22 -10
  6. package/alarms/alarms-date-filter.component.d.ts.map +1 -1
  7. package/alarms/alarms-type-filter.component.d.ts +21 -14
  8. package/alarms/alarms-type-filter.component.d.ts.map +1 -1
  9. package/alarms/alarms-view.service.d.ts +7 -0
  10. package/alarms/alarms-view.service.d.ts.map +1 -1
  11. package/alarms/alarms.component.d.ts.map +1 -1
  12. package/alarms/alarms.helper.d.ts +5 -0
  13. package/alarms/alarms.helper.d.ts.map +1 -0
  14. package/alarms/alarms.model.d.ts +1 -6
  15. package/alarms/alarms.model.d.ts.map +1 -1
  16. package/alarms/alarms.module.d.ts +1 -1
  17. package/alarms/alarms.module.d.ts.map +1 -1
  18. package/alarms/cockpit/index.d.ts.map +1 -1
  19. package/alarms/devicemanagement/index.d.ts.map +1 -1
  20. package/alarms/index.d.ts +6 -4
  21. package/alarms/index.d.ts.map +1 -1
  22. package/context-dashboard/context-dashboard.service.d.ts.map +1 -1
  23. package/core/router/context-route.component.d.ts +8 -3
  24. package/core/router/context-route.component.d.ts.map +1 -1
  25. package/core/router/context-route.service.d.ts +29 -3
  26. package/core/router/context-route.service.d.ts.map +1 -1
  27. package/core/router/router-tabs.resolver.d.ts +4 -1
  28. package/core/router/router-tabs.resolver.d.ts.map +1 -1
  29. package/core/router/router.model.d.ts +40 -3
  30. package/core/router/router.model.d.ts.map +1 -1
  31. package/core/router/router.module.d.ts +2 -1
  32. package/core/router/router.module.d.ts.map +1 -1
  33. package/core/router/router.service.d.ts +5 -4
  34. package/core/router/router.service.d.ts.map +1 -1
  35. package/core/router/scoped-context-route.service.d.ts +57 -0
  36. package/core/router/scoped-context-route.service.d.ts.map +1 -0
  37. package/core/router/view-context.service.d.ts +8 -18
  38. package/core/router/view-context.service.d.ts.map +1 -1
  39. package/esm2022/alarms/alarm-details.component.mjs +7 -9
  40. package/esm2022/alarms/alarm-info.component.mjs +23 -33
  41. package/esm2022/alarms/alarm-severity-to-label.pipe.mjs +2 -2
  42. package/esm2022/alarms/alarms-date-filter.component.mjs +92 -42
  43. package/esm2022/alarms/alarms-type-filter.component.mjs +102 -72
  44. package/esm2022/alarms/alarms-view.service.mjs +17 -3
  45. package/esm2022/alarms/alarms.component.mjs +12 -5
  46. package/esm2022/alarms/alarms.helper.mjs +32 -0
  47. package/esm2022/alarms/alarms.model.mjs +1 -1
  48. package/esm2022/alarms/alarms.module.mjs +7 -7
  49. package/esm2022/alarms/cockpit/index.mjs +13 -17
  50. package/esm2022/alarms/devicemanagement/index.mjs +15 -18
  51. package/esm2022/alarms/index.mjs +7 -5
  52. package/esm2022/context-dashboard/context-dashboard.service.mjs +18 -5
  53. package/esm2022/core/router/context-route.component.mjs +23 -13
  54. package/esm2022/core/router/context-route.service.mjs +37 -5
  55. package/esm2022/core/router/router-tabs.resolver.mjs +46 -15
  56. package/esm2022/core/router/router.model.mjs +6 -1
  57. package/esm2022/core/router/router.module.mjs +20 -13
  58. package/esm2022/core/router/router.service.mjs +24 -10
  59. package/esm2022/core/router/scoped-context-route.service.mjs +157 -0
  60. package/esm2022/core/router/view-context.service.mjs +59 -16
  61. package/esm2022/core/tabs/tabs-outlet.component.mjs +3 -3
  62. package/esm2022/interval-picker/interval-picker.component.mjs +1 -1
  63. package/esm2022/interval-picker/interval-picker.model.mjs +1 -1
  64. package/esm2022/widgets/definitions/alarms/alarm-list/index.mjs +2 -1
  65. package/esm2022/widgets/implementations/alarms/alarm-list-widget-config/alarm-list-widget-config.component.mjs +73 -4
  66. package/esm2022/widgets/implementations/alarms/alarm-list-widget-view/alarm-list-widget.component.mjs +29 -5
  67. package/esm2022/widgets/implementations/alarms/alarm-list-widget.model.mjs +7 -1
  68. package/esm2022/widgets/implementations/alarms/alarm-widget.service.mjs +11 -1
  69. package/fesm2022/c8y-ngx-components-alarms-cockpit.mjs +12 -16
  70. package/fesm2022/c8y-ngx-components-alarms-cockpit.mjs.map +1 -1
  71. package/fesm2022/c8y-ngx-components-alarms-devicemanagement.mjs +14 -17
  72. package/fesm2022/c8y-ngx-components-alarms-devicemanagement.mjs.map +1 -1
  73. package/fesm2022/c8y-ngx-components-alarms.mjs +388 -268
  74. package/fesm2022/c8y-ngx-components-alarms.mjs.map +1 -1
  75. package/fesm2022/c8y-ngx-components-context-dashboard.mjs +17 -4
  76. package/fesm2022/c8y-ngx-components-context-dashboard.mjs.map +1 -1
  77. package/fesm2022/c8y-ngx-components-interval-picker.mjs.map +1 -1
  78. package/fesm2022/c8y-ngx-components-widgets-definitions-alarms-alarm-list.mjs +1 -0
  79. package/fesm2022/c8y-ngx-components-widgets-definitions-alarms-alarm-list.mjs.map +1 -1
  80. package/fesm2022/c8y-ngx-components-widgets-implementations-alarms.mjs +123 -14
  81. package/fesm2022/c8y-ngx-components-widgets-implementations-alarms.mjs.map +1 -1
  82. package/fesm2022/c8y-ngx-components.mjs +410 -133
  83. package/fesm2022/c8y-ngx-components.mjs.map +1 -1
  84. package/interval-picker/interval-picker.component.d.ts +2 -2
  85. package/interval-picker/interval-picker.component.d.ts.map +1 -1
  86. package/interval-picker/interval-picker.model.d.ts +5 -0
  87. package/interval-picker/interval-picker.model.d.ts.map +1 -1
  88. package/locales/locales.pot +18 -6
  89. package/package.json +1 -1
  90. package/widgets/definitions/alarms/alarm-list/index.d.ts.map +1 -1
  91. package/widgets/implementations/alarms/alarm-list-widget-config/alarm-list-widget-config.component.d.ts +12 -1
  92. package/widgets/implementations/alarms/alarm-list-widget-config/alarm-list-widget-config.component.d.ts.map +1 -1
  93. package/widgets/implementations/alarms/alarm-list-widget-view/alarm-list-widget.component.d.ts +12 -1
  94. package/widgets/implementations/alarms/alarm-list-widget-view/alarm-list-widget.component.d.ts.map +1 -1
  95. package/widgets/implementations/alarms/alarm-list-widget.model.d.ts +11 -1
  96. package/widgets/implementations/alarms/alarm-list-widget.model.d.ts.map +1 -1
  97. package/widgets/implementations/alarms/alarm-widget.service.d.ts.map +1 -1
@@ -20,8 +20,8 @@ export class ContextRouteService {
20
20
  this.apiService = apiService;
21
21
  this.injector = injector;
22
22
  this.lastAddedTabs = [];
23
- this.refreshTrigger = new Subject();
24
23
  this.ID_REGEX = /([0-9]+)/;
24
+ this.refreshTrigger$ = new Subject();
25
25
  /**
26
26
  * Last context data snapshot
27
27
  */
@@ -47,24 +47,53 @@ export class ContextRouteService {
47
47
  }
48
48
  return null;
49
49
  }
50
+ /**
51
+ * Returns a route for the given ContextData.
52
+ *
53
+ * @param contextData The ContextData object.
54
+ * @returns A route with the ids set correctly.
55
+ */
50
56
  getContextRoute(contextData) {
51
- return contextData.context.replace(':id', contextData.contextData.id);
57
+ return contextData.context.replace(/:id/g, contextData.contextData.id);
58
+ }
59
+ /**
60
+ * Verifies if a given url is a view context route.
61
+ *
62
+ * @param url A route url.
63
+ * @param contextToCheck The view context(s) to check. If not provided, all contexts are checked.
64
+ * @returns true if the given url is a view context route.
65
+ */
66
+ isContextRoute(url, contextToCheck = []) {
67
+ const viewContexts = contextToCheck.length === 0 ? Object.values(ViewContext) : contextToCheck;
68
+ // replace all :id placeholders with a regex matcher for a number
69
+ const regexMatchers = viewContexts.map(context => `/${context.replace(/:id/g, '([0-9]+)')}`);
70
+ const matchingRegexContext = regexMatchers.find(context => new RegExp(context).test(url));
71
+ return !!matchingRegexContext;
52
72
  }
73
+ /**
74
+ * @deprecated: Use ScopedContextRouteService instead. Will be removed in 10.22
75
+ */
53
76
  init(route) {
54
77
  this.routerSubscription = this.router.events
55
78
  .pipe(filter(e => e instanceof NavigationEnd))
56
79
  .subscribe(() => this.redirectToFirstTab());
57
80
  this.dataSubscription = route.data
58
- .pipe(merge(this.updatedContext(route), this.refreshTrigger), switchMap(() => this.tabsResolver.resolve(route.snapshot)))
81
+ .pipe(merge(this.updatedContext(route), this.refreshTrigger$), switchMap(() => this.tabsResolver.resolve(route.snapshot)))
59
82
  .subscribe(tabs => this.updateTabs(tabs));
60
83
  }
84
+ /**
85
+ * @deprecated: Use ScopedContextRouteService instead. Will be removed in 10.22
86
+ */
61
87
  destroy() {
62
88
  this.dataSubscription.unsubscribe();
63
89
  this.routerSubscription.unsubscribe();
64
90
  this.lastAddedTabs.forEach(t => this.tabsService.remove(t));
65
91
  }
92
+ /**
93
+ * Reloads all ViewContexts.
94
+ */
66
95
  refreshContext() {
67
- this.refreshTrigger.next();
96
+ this.refreshTrigger$.next();
68
97
  }
69
98
  /**
70
99
  * Sets a new contextData in the ActivatedRoute.
@@ -80,6 +109,9 @@ export class ContextRouteService {
80
109
  }
81
110
  data.contextData = { ...contextData };
82
111
  }
112
+ /**
113
+ * @deprecated: Use ScopedContextRouteService instead. Will be removed in 10.21
114
+ */
83
115
  updatedContext(route) {
84
116
  const { data } = route.snapshot;
85
117
  const serviceInstance = ViewContextServices.contextToService(data.context);
@@ -158,4 +190,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.9", ngImpor
158
190
  providedIn: 'root'
159
191
  }]
160
192
  }], ctorParameters: () => [{ type: i1.RouterTabsResolver }, { type: i2.TabsService }, { type: i3.Router }, { type: i4.ApiService }, { type: i0.Injector }] });
161
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udGV4dC1yb3V0ZS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vY29yZS9yb3V0ZXIvY29udGV4dC1yb3V0ZS5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsUUFBUSxFQUFRLE1BQU0sZUFBZSxDQUFDO0FBQzNELE9BQU8sRUFDTCxjQUFjLEVBRWQsYUFBYSxFQUViLGFBQWEsRUFDYixjQUFjLEVBQ2QsTUFBTSxFQUdQLE1BQU0saUJBQWlCLENBQUM7QUFFekIsT0FBTyxFQUFXLFVBQVUsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQzlELE9BQU8sRUFBRSxLQUFLLEVBQWMsT0FBTyxFQUFnQixNQUFNLE1BQU0sQ0FBQztBQUNoRSxPQUFPLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUUxRCxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDbkQsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDNUQsT0FBTyxFQUFlLFdBQVcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzFELE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHdCQUF3QixDQUFDOzs7Ozs7QUFLN0QsTUFBTSxPQUFPLG1CQUFtQjtJQVk5QixZQUNVLFlBQWdDLEVBQ2hDLFdBQXdCLEVBQ3hCLE1BQWMsRUFDZCxVQUFzQixFQUN0QixRQUFrQjtRQUpsQixpQkFBWSxHQUFaLFlBQVksQ0FBb0I7UUFDaEMsZ0JBQVcsR0FBWCxXQUFXLENBQWE7UUFDeEIsV0FBTSxHQUFOLE1BQU0sQ0FBUTtRQUNkLGVBQVUsR0FBVixVQUFVLENBQVk7UUFDdEIsYUFBUSxHQUFSLFFBQVEsQ0FBVTtRQWRwQixrQkFBYSxHQUFHLEVBQUUsQ0FBQztRQUNuQixtQkFBYyxHQUFHLElBQUksT0FBTyxFQUFRLENB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QUFjO1lBQzdDLENBQUMsQ0FBRSxjQUFrRSxFQUFFLFFBQVE7WUFDL0UsQ0FBQyxDQUFFLGNBQWtFLENBQUMsUUFBUTtZQUM5RSxDQUFDLENBQUMsY0FBYyxDQUFDO0lBQ3JCLENBQUM7SUFFTyxzQkFBc0IsQ0FDNUIsY0FBc0M7UUFFdEMsSUFBSSxLQUFLLEdBQUcsY0FBYyxDQUFDO1FBQzNCLE9BQU8sS0FBSyxFQUFFLENBQUM7WUFDYixJQUFJLEtBQUssQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUM7Z0JBQ3ZCLE9BQU8sS0FBSyxDQUFDLElBQUksQ0FBQztZQUNwQixDQUFDO1lBQ0QsS0FBSyxHQUFHLEtBQUssQ0FBQyxNQUFNLENBQUM7UUFDdkIsQ0FBQztRQUNELE9BQU8sRUFBRSxDQUFDO0lBQ1osQ0FBQzs4R0ExS1UsbUJBQW1CO2tIQUFuQixtQkFBbUIsY0FGbEIsTUFBTTs7MkZBRVAsbUJBQW1CO2tCQUgvQixVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUsIEluamVjdG9yLCBUeXBlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1xuICBBY3RpdmF0ZWRSb3V0ZSxcbiAgQWN0aXZhdGVkUm91dGVTbmFwc2hvdCxcbiAgQWN0aXZhdGlvbkVuZCxcbiAgRGF0YSxcbiAgTmF2aWdhdGlvbkVuZCxcbiAgUFJJTUFSWV9PVVRMRVQsXG4gIFJvdXRlcixcbiAgVXJsU2VnbWVudEdyb3VwLFxuICBVcmxUcmVlXG59IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQgeyBJSWRlbnRpZmllZCB9IGZyb20gJ0BjOHkvY2xpZW50JztcbmltcG9ydCB7IEFwaUNhbGwsIEFwaVNlcnZpY2UgfSBmcm9tICdAYzh5L25neC1jb21wb25lbnRzL2FwaSc7XG5pbXBvcnQgeyBORVZFUiwgT2JzZXJ2YWJsZSwgU3ViamVjdCwgU3Vic2NyaXB0aW9uIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBmaWx0ZXIsIG1lcmdlLCBzd2l0Y2hNYXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBUYWIgfSBmcm9tICcuLi90YWJzL3RhYi5tb2RlbCc7XG5pbXBvcnQgeyBUYWJzU2VydmljZSB9IGZyb20gJy4uL3RhYnMvdGFicy5zZXJ2aWNlJztcbmltcG9ydCB7IFJvdXRlclRhYnNSZXNvbHZlciB9IGZyb20gJy4vcm91dGVyLXRhYnMucmVzb2x2ZXInO1xuaW1wb3J0IHsgQ29udGV4dERhdGEsIFZpZXdDb250ZXh0IH0gZnJvbSAnLi9yb3V0ZXIubW9kZWwnO1xuaW1wb3J0IHsgVmlld0NvbnRleHRTZXJ2aWNlcyB9IGZyb20gJy4vdmlldy1jb250ZXh0LnNlcnZpY2UnO1xuXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290J1xufSlcbmV4cG9ydCBjbGFzcyBDb250ZXh0Um91dGVTZXJ2aWNlIHtcbiAgcHJpdmF0ZSBkYXRhU3Vic2NyaXB0aW9uOiBTdWJzY3JpcHRpb247XG4gIHByaXZhdGUgcm91dGVyU3Vic2NyaXB0aW9uOiBTdWJzY3JpcHRpb247XG4gIHByaXZhdGUgbGFzdEFkZGVkVGFicyA9IFtdO1xuICBwcml2YXRlIHJlZnJlc2hUcmlnZ2VyID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcbiAgcHJpdmF0ZSBJRF9SRUdFWCA9IC8oWzAtOV0rKS87XG5cbiAgLyoqXG4gICAqIExhc3QgY29udGV4dCBkYXRhIHNuYXBzaG90XG4gICAqL1xuICBhY3RpdmF0ZWRDb250ZXh0RGF0YTogQ29udGV4dERhdGEgPSBudWxsO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgdGFic1Jlc29sdmVyOiBSb3V0ZXJUYWJzUmVzb2x2ZXIsXG4gICAgcHJpdmF0ZSB0YWJzU2VydmljZTogVGFic1NlcnZpY2UsXG4gICAgcHJpdmF0ZSByb3V0ZXI6IFJvdXRlcixcbiAgICBwcml2YXRlIGFwaVNlcnZpY2U6IEFwaVNlcnZpY2UsXG4gICAgcHJpdmF0ZSBpbmplY3RvcjogSW5qZWN0b3JcbiAgKSB7XG4gICAgdGhpcy5yb3V0ZXIuZXZlbnRzXG4gICAgICAucGlwZShmaWx0ZXIoZXZlbnQgPT4gZXZlbnQgaW5zdGFuY2VvZiBBY3RpdmF0aW9uRW5kKSlcbiAgICAgIC5zdWJzY3JpYmUoKGV2ZW50OiBBY3RpdmF0aW9uRW5kKSA9PiB7XG4gICAgICAgIGNvbnN0IGN1cnJlbnRDb250ZXh0ID0gdGhpcy5nZXRDb250ZXh0RGF0YVNuYXBzaG90KGV2ZW50LnNuYXBzaG90KTtcbiAgICAgICAgaWYgKGN1cnJlbnRDb250ZXh0KSB7XG4gICAgICAgICAgdGhpcy5hY3RpdmF0ZWRDb250ZXh0RGF0YSA9IGN1cnJlbnRDb250ZXh0IGFzIENvbnRleHREYXRhO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXNvbHZlcyB0aGUgY3VycmVudCBjb250ZXh0IGRhdGEuIElmIG5vIGNvbnRleHQgd2FzIGZvdW5kLCBudWxsIGlzIHJldHVybmVkLlxuICAgKlxuICAgKiBAcGFyYW0gYWN0aXZhdGVkUm91dGUgVGhlIGN1cnJlbnQgYWN0aXZhdGVkIHJvdXRlLlxuICAgKi9cbiAgZ2V0Q29udGV4dERhdGEoXG4gICAgYWN0aXZhdGVkUm91dGU6IEFjdGl2YXRlZFJvdXRlIHwgQWN0aXZhdGVkUm91dGVTbmFwc2hvdFxuICApOiAoRGF0YSAmIENvbnRleHREYXRhKSB8IG51bGwge1xuICAgIGNvbnN0IGRhdGEgPSB0aGlzLmdldENvbnRleHREYXRhU25hcHNob3QodGhpcy5nZXRTbmFwc2hvdChhY3RpdmF0ZWRSb3V0ZSkpO1xuICAgIGlmIChkYXRhPy5jb250ZXh0KSB7XG4gICAgICByZXR1cm4gZGF0YSBhcyBEYXRhICYgQ29udGV4dERhdGE7XG4gICAgfVxuICAgIHJldHVybiBudWxsO1xuICB9XG5cbiAgZ2V0Q29udGV4dFJvdXRlKGNvbnRleHREYXRhOiBDb250ZXh0RGF0YSk6IHN0cmluZyB7XG4gICAgcmV0dXJuIGNvbnRleHREYXRhLmNvbnRleHQucmVwbGFjZSgnOmlkJywgY29udGV4dERhdGEuY29udGV4dERhdGEuaWQgYXMgc3RyaW5nKTtcbiAgfVxuXG4gIGluaXQocm91dGU6IEFjdGl2YXRlZFJvdXRlKTogdm9pZCB7XG4gICAgdGhpcy5yb3V0ZXJTdWJzY3JpcHRpb24gPSB0aGlzLnJvdXRlci5ldmVudHNcbiAgICAgIC5waXBlKGZpbHRlcihlID0+IGUgaW5zdGFuY2VvZiBOYXZpZ2F0aW9uRW5kKSlcbiAgICAgIC5zdWJzY3JpYmUoKCkgPT4gdGhpcy5yZWRpcmVjdFRvRmlyc3RUYWIoKSk7XG5cbiAgICB0aGlzLmRhdGFTdWJzY3JpcHRpb24gPSByb3V0ZS5kYXRhXG4gICAgICAucGlwZShcbiAgICAgICAgbWVyZ2UodGhpcy51cGRhdGVkQ29udGV4dChyb3V0ZSksIHRoaXMucmVmcmVzaFRyaWdnZXIpLFxuICAgICAgICBzd2l0Y2hNYXAoKCkgPT4gdGhpcy50YWJzUmVzb2x2ZXIucmVzb2x2ZShyb3V0ZS5zbmFwc2hvdCkpXG4gICAgICApXG4gICAgICAuc3Vic2NyaWJlKHRhYnMgPT4gdGhpcy51cGRhdGVUYWJzKHRhYnMpKTtcbiAgfVxuXG4gIGRlc3Ryb3koKTogdm9pZCB7XG4gICAgdGhpcy5kYXRhU3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCk7XG4gICAgdGhpcy5yb3V0ZXJTdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKTtcbiAgICB0aGlzLmxhc3RBZGRlZFRhYnMuZm9yRWFjaCh0ID0+IHRoaXMudGFic1NlcnZpY2UucmVtb3ZlKHQpKTtcbiAgfVxuXG4gIHJlZnJlc2hDb250ZXh0KCkge1xuICAgIHRoaXMucmVmcmVzaFRyaWdnZXIubmV4dCgpO1xuICB9XG5cbiAgLyoqXG4gICAqIFNldHMgYSBuZXcgY29udGV4dERhdGEgaW4gdGhlIEFjdGl2YXRlZFJvdXRlLlxuICAgKiBAcGFyYW0gYWN0aXZhdGVkUm91dGUgVGhlIGN1cnJlbnQgYWN0aXZhdGVkIHJvdXRlLlxuICAgKiBAcGFyYW0gY29udGV4dERhdGEgTmV3IGNvbnRleHREYXRhLlxuICAgKi9cbiAgc2V0Q29udGV4dChhY3RpdmF0ZWRSb3V0ZTogQWN0aXZhdGVkUm91dGUsIGNvbnRleHREYXRhOiBJSWRlbnRpZmllZCk6IHZvaWQge1xuICAgIGNvbnN0IGRhdGEgPVxuICAgICAgIWFjdGl2YXRlZFJvdXRlLnNuYXBzaG90LnBhcmVudCB8fCBhY3RpdmF0ZWRSb3V0ZS5zbmFwc2hvdC5kYXRhLmNvbnRleHRcbiAgICAgICAgPyBhY3RpdmF0ZWRSb3V0ZS5zbmFwc2hvdC5kYXRhXG4gICAgICAgIDogYWN0aXZhdGVkUm91dGUucGFyZW50LnNuYXBzaG90LmRhdGE7XG5cbiAgICBpZiAoIWRhdGEpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgZGF0YS5jb250ZXh0RGF0YSA9IHsgLi4uY29udGV4dERhdGEgfTtcbiAgfVxuXG4gIHVwZGF0ZWRDb250ZXh0KHJvdXRlOiBBY3RpdmF0ZWRSb3V0ZSk6IE9ic2VydmFibGU8QXBpQ2FsbD4ge1xuICAgIGNvbnN0IHsgZGF0YSB9ID0gcm91dGUuc25hcHNob3Q7XG4gICAgY29uc3Qgc2VydmljZUluc3RhbmNlID0gVmlld0NvbnRleHRTZXJ2aWNlcy5jb250ZXh0VG9TZXJ2aWNlKGRhdGEuY29udGV4dCk7XG4gICAgaWYgKHNlcnZpY2VJbnN0YW5jZSkge1xuICAgICAgY29uc3Qgc2VydmljZSA9IHRoaXMuaW5qZWN0b3IuZ2V0KFxuICAgICAgICBzZXJ2aWNlSW5zdGFuY2UgYXMgVHlwZTxJbnN0YW5jZVR5cGU8dHlwZW9mIHNlcnZpY2VJbnN0YW5jZT4+XG4gICAgICApO1xuICAgICAgY29uc3QgZGV0YWlsc1VybFJlZ2V4ID0gKHNlcnZpY2UgYXMgdHlwZW9mIHNlcnZpY2UgJiB7IGdldERldGFpbFVybD86ICguLi5hcmdzKSA9PiBzdHJpbmcgfSlcbiAgICAgICAgLmdldERldGFpbFVybChkYXRhLmNvbnRleHREYXRhKVxuICAgICAgICAucmVwbGFjZSgvXFxkKy9nLCAnP1xcXFxkKicpO1xuICAgICAgY29uc3QgY29udGV4dFJlZ2V4ID0gbmV3IFJlZ0V4cChkZXRhaWxzVXJsUmVnZXgsICdpJyk7XG4gICAgICBjb25zdCBjaGlsZHJlblJlZ2V4ID0gbmV3IFJlZ0V4cChgJHtkZXRhaWxzVXJsUmVnZXh9L2NoaWxkYCwgJ2knKTtcbiAgICAgIGNvbnN0IGZpbHRlclJlc3BvbnNlID0gKHsgdXJsLCBtZXRob2QgfSkgPT4ge1xuICAgICAgICBjb25zdCBjb250ZXh0Q2hhbmdlZCA9IGNvbnRleHRSZWdleC50ZXN0KHVybCkgJiYgWydQT1NUJywgJ1BVVCddLmluY2x1ZGVzKG1ldGhvZCk7XG4gICAgICAgIGNvbnN0IGNoaWxkcmVuQWZmZWN0ZWQgPSBjaGlsZHJlblJlZ2V4LnRlc3QodXJsKSAmJiBbJ1BPU1QnLCAnREVMRVRFJ10uaW5jbHVkZXMobWV0aG9kKTtcbiAgICAgICAgcmV0dXJuIGNvbnRleHRDaGFuZ2VkIHx8IGNoaWxkcmVuQWZmZWN0ZWQ7XG4gICAgICB9O1xuICAgICAgcmV0dXJuIHRoaXMuYXBpU2VydmljZS5ob29rUmVzcG9uc2UoZmlsdGVyUmVzcG9uc2UpO1xuICAgIH1cbiAgICByZXR1cm4gTkVWRVI7XG4gIH1cblxuICBwcml2YXRlIHVwZGF0ZVRhYnModGFicyA9IFtdKSB7XG4gICAgdGhpcy5sYXN0QWRkZWRUYWJzLmZvckVhY2godCA9PiB0aGlzLnRhYnNTZXJ2aWNlLnJlbW92ZSh0KSk7XG4gICAgdGhpcy5sYXN0QWRkZWRUYWJzID0gdGFicztcbiAgICB0YWJzLmZvckVhY2godCA9PiB0aGlzLnRhYnNTZXJ2aWNlLmFkZCh0KSk7XG4gICAgdGhpcy5yZWRpcmVjdFRvRmlyc3RUYWIoKTtcbiAgfVxuXG4gIHByaXZhdGUgcmVkaXJlY3RUb0ZpcnN0VGFiKCkge1xuICAgIGNvbnN0IGN1cnJlbnRDb250ZXh0SWQgPSAodGhpcy5yb3V0ZXIudXJsLm1hdGNoKHRoaXMuSURfUkVHRVgpIHx8IFtdKS5zaGlmdCgpO1xuXG4gICAgaWYgKHRoaXMubmVlZHNSZWRpcmVjdCgpKSB7XG4gICAgICB0aGlzLnRhYnNTZXJ2aWNlLmZpcnN0VGFiJC5waXBlKGZpbHRlcigodGFiOiBUYWIpID0+ICEhdGFiPy5wYXRoKSkuc3Vic2NyaWJlKCh0YWI6IFRhYikgPT4ge1xuICAgICAgICBjb25zdCB0YWJQYXRoSWQgPSAodGFiLnBhdGgubWF0Y2godGhpcy5JRF9SRUdFWCkgfHwgW10pLnNoaWZ0KCk7XG4gICAgICAgIGlmIChjdXJyZW50Q29udGV4dElkID09PSB0YWJQYXRoSWQpIHtcbiAgICAgICAgICB0aGlzLnJvdXRlci5uYXZpZ2F0ZUJ5VXJsKHRhYi5wYXRoLCB7IHJlcGxhY2VVcmw6IHRydWUgfSk7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgbmVlZHNSZWRpcmVjdCgpIHtcbiAgICBjb25zdCB0cmVlOiBVcmxUcmVlID0gdGhpcy5yb3V0ZXIucGFyc2VVcmwodGhpcy5yb3V0ZXIudXJsKTtcbiAgICBjb25zdCBncm91cHM6IFVybFNlZ21lbnRHcm91cCA9IHRyZWUucm9vdC5jaGlsZHJlbltQUklNQVJZX09VVExFVF07XG5cbiAgICBjb25zdCBjb250ZXh0ID0gdGhpcy5nZXRNYXRjaGluZ0NvbnRleHRSb3V0ZSh0aGlzLnJvdXRlci51cmwpO1xuICAgIGlmICghY29udGV4dCkge1xuICAgICAgcmV0dXJuIGdyb3Vwcy5zZWdtZW50cy5sZW5ndGggPT09IDI7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiBjb250ZXh0LnNwbGl0KCcvJykubGVuZ3RoID09PSBncm91cHMuc2VnbWVudHMubGVuZ3RoO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgZ2V0TWF0Y2hpbmdDb250ZXh0Um91dGUodXJsKSB7XG4gICAgY29uc3Qgdmlld0NvbnRleHRzID0gT2JqZWN0LnZhbHVlcyhWaWV3Q29udGV4dCk7XG5cbiAgICBjb25zdCB1cmxXaXRob3V0SWQgPSB1cmwucmVwbGFjZSgvXFxkKC4qKS9nLCAnJyk7XG4gICAgY29uc3QgaWQgPSB2aWV3Q29udGV4dHMuZmluZEluZGV4KGNvbnRleHQgPT4gYC8ke2NvbnRleHQucmVwbGFjZSgnOmlkJywgJycpfWAgPT09IHVybFdpdGhvdXRJZCk7XG4gICAgcmV0dXJuIHZpZXdDb250ZXh0c1tpZF07XG4gIH1cblxuICBwcml2YXRlIGdldFNuYXBzaG90KFxuICAgIGFjdGl2YXRlZFJvdXRlOiBBY3RpdmF0ZWRSb3V0ZSB8IEFjdGl2YXRlZFJvdXRlU25hcHNob3RcbiAgKTogQWN0aXZhdGVkUm91dGVTbmFwc2hvdCB7XG4gICAgcmV0dXJuIGFjdGl2YXRlZFJvdXRlIGluc3RhbmNlb2YgQWN0aXZhdGVkUm91dGUgfHxcbiAgICAgICEhKGFjdGl2YXRlZFJvdXRlIGFzIHVua25vd24gYXMgeyBzbmFwc2hvdDogQWN0aXZhdGVkUm91dGVTbmFwc2hvdCB9KT8uc25hcHNob3RcbiAgICAgID8gKGFjdGl2YXRlZFJvdXRlIGFzIHVua25vd24gYXMgeyBzbmFwc2hvdDogQWN0aXZhdGVkUm91dGVTbmFwc2hvdCB9KS5zbmFwc2hvdFxuICAgICAgOiBhY3RpdmF0ZWRSb3V0ZTtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0Q29udGV4dERhdGFTbmFwc2hvdChcbiAgICBhY3RpdmF0ZWRSb3V0ZTogQWN0aXZhdGVkUm91dGVTbmFwc2hvdFxuICApOiBEYXRhICYgUGFydGlhbDxDb250ZXh0RGF0YT4ge1xuICAgIGxldCByb3V0ZSA9IGFjdGl2YXRlZFJvdXRlO1xuICAgIHdoaWxlIChyb3V0ZSkge1xuICAgICAgaWYgKHJvdXRlLmRhdGEuY29udGV4dCkge1xuICAgICAgICByZXR1cm4gcm91dGUuZGF0YTtcbiAgICAgIH1cbiAgICAgIHJvdXRlID0gcm91dGUucGFyZW50O1xuICAgIH1cbiAgICByZXR1cm4ge307XG4gIH1cbn1cbiJdfQ==
193
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udGV4dC1yb3V0ZS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vY29yZS9yb3V0ZXIvY29udGV4dC1yb3V0ZS5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsUUFBUSxFQUFRLE1BQU0sZUFBZSxDQUFDO0FBQzNELE9BQU8sRUFDTCxjQUFjLEVBRWQsYUFBYSxFQUViLGFBQWEsRUFDYixjQUFjLEVBQ2QsTUFBTSxFQUdQLE1BQU0saUJBQWlCLENBQUM7QUFFekIsT0FBTyxFQUFXLFVBQVUsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQzlELE9BQU8sRUFBRSxLQUFLLEVBQWMsT0FBTyxFQUFnQixNQUFNLE1BQU0sQ0FBQztBQUNoRSxPQUFPLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUUxRCxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDbkQsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDNUQsT0FBTyxFQUFlLFdBQVcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzFELE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHdCQUF3QixDQUFDOzs7Ozs7QUFLN0QsTUFBTSxPQUFPLG1CQUFtQjtJQWE5QixZQUNVLFlBQWdDLEVBQ2hDLFdBQXdCLEVBQ3hCLE1BQWMsRUFDZCxVQUFzQixFQUN0QixRQUFrQjtRQUpsQixpQkFBWSxHQUFaLFlBQVksQ0FBb0I7UUFDaEMsZ0JBQVcsR0FBWCxXQUFXLENBQWE7UUFDeEIsV0FBTSxHQUFOLE1BQU0sQ0FBUTtRQUNkLGVBQVUsR0FBVixVQUFVLENBQVk7UUFDdEIsYUFBUSxHQUFSLFFBQVEsQ0FBVTtRQWZwQixrQkFBYSxHQUFHLEVBQUUsQ0FBQztRQUNuQixhQUFRLEdBQUcsVUFBVSxDQUFDO1FBRTlCLG9C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QUFtQixjQUZsQixNQUFNOzsyRkFFUCxtQkFBbUI7a0JBSC9CLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSwgSW5qZWN0b3IsIFR5cGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7XG4gIEFjdGl2YXRlZFJvdXRlLFxuICBBY3RpdmF0ZWRSb3V0ZVNuYXBzaG90LFxuICBBY3RpdmF0aW9uRW5kLFxuICBEYXRhLFxuICBOYXZpZ2F0aW9uRW5kLFxuICBQUklNQVJZX09VVExFVCxcbiAgUm91dGVyLFxuICBVcmxTZWdtZW50R3JvdXAsXG4gIFVybFRyZWVcbn0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcbmltcG9ydCB7IElJZGVudGlmaWVkIH0gZnJvbSAnQGM4eS9jbGllbnQnO1xuaW1wb3J0IHsgQXBpQ2FsbCwgQXBpU2VydmljZSB9IGZyb20gJ0BjOHkvbmd4LWNvbXBvbmVudHMvYXBpJztcbmltcG9ydCB7IE5FVkVSLCBPYnNlcnZhYmxlLCBTdWJqZWN0LCBTdWJzY3JpcHRpb24gfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IGZpbHRlciwgbWVyZ2UsIHN3aXRjaE1hcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IFRhYiB9IGZyb20gJy4uL3RhYnMvdGFiLm1vZGVsJztcbmltcG9ydCB7IFRhYnNTZXJ2aWNlIH0gZnJvbSAnLi4vdGFicy90YWJzLnNlcnZpY2UnO1xuaW1wb3J0IHsgUm91dGVyVGFic1Jlc29sdmVyIH0gZnJvbSAnLi9yb3V0ZXItdGFicy5yZXNvbHZlcic7XG5pbXBvcnQgeyBDb250ZXh0RGF0YSwgVmlld0NvbnRleHQgfSBmcm9tICcuL3JvdXRlci5tb2RlbCc7XG5pbXBvcnQgeyBWaWV3Q29udGV4dFNlcnZpY2VzIH0gZnJvbSAnLi92aWV3LWNvbnRleHQuc2VydmljZSc7XG5cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnXG59KVxuZXhwb3J0IGNsYXNzIENvbnRleHRSb3V0ZVNlcnZpY2Uge1xuICBwcml2YXRlIGRhdGFTdWJzY3JpcHRpb246IFN1YnNjcmlwdGlvbjtcbiAgcHJpdmF0ZSByb3V0ZXJTdWJzY3JpcHRpb246IFN1YnNjcmlwdGlvbjtcbiAgcHJpdmF0ZSBsYXN0QWRkZWRUYWJzID0gW107XG4gIHByaXZhdGUgSURfUkVHRVggPSAvKFswLTldKykvO1xuXG4gIHJlZnJlc2hUcmlnZ2VyJCA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XG5cbiAgLyoqXG4gICAqIExhc3QgY29udGV4dCBkYXRhIHNuYXBzaG90XG4gICAqL1xuICBhY3RpdmF0ZWRDb250ZXh0RGF0YTogQ29udGV4dERhdGEgPSBudWxsO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgdGFic1Jlc29sdmVyOiBSb3V0ZXJUYWJzUmVzb2x2ZXIsXG4gICAgcHJpdmF0ZSB0YWJzU2VydmljZTogVGFic1NlcnZpY2UsXG4gICAgcHJpdmF0ZSByb3V0ZXI6IFJvdXRlcixcbiAgICBwcml2YXRlIGFwaVNlcnZpY2U6IEFwaVNlcnZpY2UsXG4gICAgcHJpdmF0ZSBpbmplY3RvcjogSW5qZWN0b3JcbiAgKSB7XG4gICAgdGhpcy5yb3V0ZXIuZXZlbnRzXG4gICAgICAucGlwZShmaWx0ZXIoZXZlbnQgPT4gZXZlbnQgaW5zdGFuY2VvZiBBY3RpdmF0aW9uRW5kKSlcbiAgICAgIC5zdWJzY3JpYmUoKGV2ZW50OiBBY3RpdmF0aW9uRW5kKSA9PiB7XG4gICAgICAgIGNvbnN0IGN1cnJlbnRDb250ZXh0ID0gdGhpcy5nZXRDb250ZXh0RGF0YVNuYXBzaG90KGV2ZW50LnNuYXBzaG90KTtcbiAgICAgICAgaWYgKGN1cnJlbnRDb250ZXh0KSB7XG4gICAgICAgICAgdGhpcy5hY3RpdmF0ZWRDb250ZXh0RGF0YSA9IGN1cnJlbnRDb250ZXh0IGFzIENvbnRleHREYXRhO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXNvbHZlcyB0aGUgY3VycmVudCBjb250ZXh0IGRhdGEuIElmIG5vIGNvbnRleHQgd2FzIGZvdW5kLCBudWxsIGlzIHJldHVybmVkLlxuICAgKlxuICAgKiBAcGFyYW0gYWN0aXZhdGVkUm91dGUgVGhlIGN1cnJlbnQgYWN0aXZhdGVkIHJvdXRlLlxuICAgKi9cbiAgZ2V0Q29udGV4dERhdGEoXG4gICAgYWN0aXZhdGVkUm91dGU6IEFjdGl2YXRlZFJvdXRlIHwgQWN0aXZhdGVkUm91dGVTbmFwc2hvdFxuICApOiAoRGF0YSAmIENvbnRleHREYXRhKSB8IG51bGwge1xuICAgIGNvbnN0IGRhdGEgPSB0aGlzLmdldENvbnRleHREYXRhU25hcHNob3QodGhpcy5nZXRTbmFwc2hvdChhY3RpdmF0ZWRSb3V0ZSkpO1xuICAgIGlmIChkYXRhPy5jb250ZXh0KSB7XG4gICAgICByZXR1cm4gZGF0YSBhcyBEYXRhICYgQ29udGV4dERhdGE7XG4gICAgfVxuICAgIHJldHVybiBudWxsO1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybnMgYSByb3V0ZSBmb3IgdGhlIGdpdmVuIENvbnRleHREYXRhLlxuICAgKlxuICAgKiBAcGFyYW0gY29udGV4dERhdGEgVGhlIENvbnRleHREYXRhIG9iamVjdC5cbiAgICogQHJldHVybnMgQSByb3V0ZSB3aXRoIHRoZSBpZHMgc2V0IGNvcnJlY3RseS5cbiAgICovXG4gIGdldENvbnRleHRSb3V0ZShjb250ZXh0RGF0YTogQ29udGV4dERhdGEpOiBzdHJpbmcge1xuICAgIHJldHVybiBjb250ZXh0RGF0YS5jb250ZXh0LnJlcGxhY2UoLzppZC9nLCBjb250ZXh0RGF0YS5jb250ZXh0RGF0YS5pZCBhcyBzdHJpbmcpO1xuICB9XG5cbiAgLyoqXG4gICAqIFZlcmlmaWVzIGlmIGEgZ2l2ZW4gdXJsIGlzIGEgdmlldyBjb250ZXh0IHJvdXRlLlxuICAgKlxuICAgKiBAcGFyYW0gdXJsIEEgcm91dGUgdXJsLlxuICAgKiBAcGFyYW0gY29udGV4dFRvQ2hlY2sgVGhlIHZpZXcgY29udGV4dChzKSB0byBjaGVjay4gSWYgbm90IHByb3ZpZGVkLCBhbGwgY29udGV4dHMgYXJlIGNoZWNrZWQuXG4gICAqIEByZXR1cm5zIHRydWUgaWYgdGhlIGdpdmVuIHVybCBpcyBhIHZpZXcgY29udGV4dCByb3V0ZS5cbiAgICovXG4gIGlzQ29udGV4dFJvdXRlKHVybDogc3RyaW5nLCBjb250ZXh0VG9DaGVjazogVmlld0NvbnRleHRbXSA9IFtdKTogYm9vbGVhbiB7XG4gICAgY29uc3Qgdmlld0NvbnRleHRzID0gY29udGV4dFRvQ2hlY2subGVuZ3RoID09PSAwID8gT2JqZWN0LnZhbHVlcyhWaWV3Q29udGV4dCkgOiBjb250ZXh0VG9DaGVjaztcbiAgICAvLyByZXBsYWNlIGFsbCA6aWQgcGxhY2Vob2xkZXJzIHdpdGggYSByZWdleCBtYXRjaGVyIGZvciBhIG51bWJlclxuICAgIGNvbnN0IHJlZ2V4TWF0Y2hlcnMgPSB2aWV3Q29udGV4dHMubWFwKGNvbnRleHQgPT4gYC8ke2NvbnRleHQucmVwbGFjZSgvOmlkL2csICcoWzAtOV0rKScpfWApO1xuICAgIGNvbnN0IG1hdGNoaW5nUmVnZXhDb250ZXh0ID0gcmVnZXhNYXRjaGVycy5maW5kKGNvbnRleHQgPT4gbmV3IFJlZ0V4cChjb250ZXh0KS50ZXN0KHVybCkpO1xuICAgIHJldHVybiAhIW1hdGNoaW5nUmVnZXhDb250ZXh0O1xuICB9XG5cbiAgLyoqXG4gICAqIEBkZXByZWNhdGVkOiBVc2UgU2NvcGVkQ29udGV4dFJvdXRlU2VydmljZSBpbnN0ZWFkLiBXaWxsIGJlIHJlbW92ZWQgaW4gMTAuMjJcbiAgICovXG4gIGluaXQocm91dGU6IEFjdGl2YXRlZFJvdXRlKTogdm9pZCB7XG4gICAgdGhpcy5yb3V0ZXJTdWJzY3JpcHRpb24gPSB0aGlzLnJvdXRlci5ldmVudHNcbiAgICAgIC5waXBlKGZpbHRlcihlID0+IGUgaW5zdGFuY2VvZiBOYXZpZ2F0aW9uRW5kKSlcbiAgICAgIC5zdWJzY3JpYmUoKCkgPT4gdGhpcy5yZWRpcmVjdFRvRmlyc3RUYWIoKSk7XG5cbiAgICB0aGlzLmRhdGFTdWJzY3JpcHRpb24gPSByb3V0ZS5kYXRhXG4gICAgICAucGlwZShcbiAgICAgICAgbWVyZ2UodGhpcy51cGRhdGVkQ29udGV4dChyb3V0ZSksIHRoaXMucmVmcmVzaFRyaWdnZXIkKSxcbiAgICAgICAgc3dpdGNoTWFwKCgpID0+IHRoaXMudGFic1Jlc29sdmVyLnJlc29sdmUocm91dGUuc25hcHNob3QpKVxuICAgICAgKVxuICAgICAgLnN1YnNjcmliZSh0YWJzID0+IHRoaXMudXBkYXRlVGFicyh0YWJzKSk7XG4gIH1cblxuICAvKipcbiAgICogQGRlcHJlY2F0ZWQ6IFVzZSBTY29wZWRDb250ZXh0Um91dGVTZXJ2aWNlIGluc3RlYWQuIFdpbGwgYmUgcmVtb3ZlZCBpbiAxMC4yMlxuICAgKi9cbiAgZGVzdHJveSgpOiB2b2lkIHtcbiAgICB0aGlzLmRhdGFTdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKTtcbiAgICB0aGlzLnJvdXRlclN1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpO1xuICAgIHRoaXMubGFzdEFkZGVkVGFicy5mb3JFYWNoKHQgPT4gdGhpcy50YWJzU2VydmljZS5yZW1vdmUodCkpO1xuICB9XG5cbiAgLyoqXG4gICAqIFJlbG9hZHMgYWxsIFZpZXdDb250ZXh0cy5cbiAgICovXG4gIHJlZnJlc2hDb250ZXh0KCkge1xuICAgIHRoaXMucmVmcmVzaFRyaWdnZXIkLm5leHQoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBTZXRzIGEgbmV3IGNvbnRleHREYXRhIGluIHRoZSBBY3RpdmF0ZWRSb3V0ZS5cbiAgICogQHBhcmFtIGFjdGl2YXRlZFJvdXRlIFRoZSBjdXJyZW50IGFjdGl2YXRlZCByb3V0ZS5cbiAgICogQHBhcmFtIGNvbnRleHREYXRhIE5ldyBjb250ZXh0RGF0YS5cbiAgICovXG4gIHNldENvbnRleHQoYWN0aXZhdGVkUm91dGU6IEFjdGl2YXRlZFJvdXRlLCBjb250ZXh0RGF0YTogSUlkZW50aWZpZWQpOiB2b2lkIHtcbiAgICBjb25zdCBkYXRhID1cbiAgICAgICFhY3RpdmF0ZWRSb3V0ZS5zbmFwc2hvdC5wYXJlbnQgfHwgYWN0aXZhdGVkUm91dGUuc25hcHNob3QuZGF0YS5jb250ZXh0XG4gICAgICAgID8gYWN0aXZhdGVkUm91dGUuc25hcHNob3QuZGF0YVxuICAgICAgICA6IGFjdGl2YXRlZFJvdXRlLnBhcmVudC5zbmFwc2hvdC5kYXRhO1xuXG4gICAgaWYgKCFkYXRhKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGRhdGEuY29udGV4dERhdGEgPSB7IC4uLmNvbnRleHREYXRhIH07XG4gIH1cblxuICAvKipcbiAgICogQGRlcHJlY2F0ZWQ6IFVzZSBTY29wZWRDb250ZXh0Um91dGVTZXJ2aWNlIGluc3RlYWQuIFdpbGwgYmUgcmVtb3ZlZCBpbiAxMC4yMVxuICAgKi9cbiAgdXBkYXRlZENvbnRleHQocm91dGU6IEFjdGl2YXRlZFJvdXRlKTogT2JzZXJ2YWJsZTxBcGlDYWxsPiB7XG4gICAgY29uc3QgeyBkYXRhIH0gPSByb3V0ZS5zbmFwc2hvdDtcbiAgICBjb25zdCBzZXJ2aWNlSW5zdGFuY2UgPSBWaWV3Q29udGV4dFNlcnZpY2VzLmNvbnRleHRUb1NlcnZpY2UoZGF0YS5jb250ZXh0KTtcbiAgICBpZiAoc2VydmljZUluc3RhbmNlKSB7XG4gICAgICBjb25zdCBzZXJ2aWNlID0gdGhpcy5pbmplY3Rvci5nZXQoXG4gICAgICAgIHNlcnZpY2VJbnN0YW5jZSBhcyBUeXBlPEluc3RhbmNlVHlwZTx0eXBlb2Ygc2VydmljZUluc3RhbmNlPj5cbiAgICAgICk7XG4gICAgICBjb25zdCBkZXRhaWxzVXJsUmVnZXggPSAoc2VydmljZSBhcyB0eXBlb2Ygc2VydmljZSAmIHsgZ2V0RGV0YWlsVXJsPzogKC4uLmFyZ3MpID0+IHN0cmluZyB9KVxuICAgICAgICAuZ2V0RGV0YWlsVXJsKGRhdGEuY29udGV4dERhdGEpXG4gICAgICAgIC5yZXBsYWNlKC9cXGQrL2csICc/XFxcXGQqJyk7XG4gICAgICBjb25zdCBjb250ZXh0UmVnZXggPSBuZXcgUmVnRXhwKGRldGFpbHNVcmxSZWdleCwgJ2knKTtcbiAgICAgIGNvbnN0IGNoaWxkcmVuUmVnZXggPSBuZXcgUmVnRXhwKGAke2RldGFpbHNVcmxSZWdleH0vY2hpbGRgLCAnaScpO1xuICAgICAgY29uc3QgZmlsdGVyUmVzcG9uc2UgPSAoeyB1cmwsIG1ldGhvZCB9KSA9PiB7XG4gICAgICAgIGNvbnN0IGNvbnRleHRDaGFuZ2VkID0gY29udGV4dFJlZ2V4LnRlc3QodXJsKSAmJiBbJ1BPU1QnLCAnUFVUJ10uaW5jbHVkZXMobWV0aG9kKTtcbiAgICAgICAgY29uc3QgY2hpbGRyZW5BZmZlY3RlZCA9IGNoaWxkcmVuUmVnZXgudGVzdCh1cmwpICYmIFsnUE9TVCcsICdERUxFVEUnXS5pbmNsdWRlcyhtZXRob2QpO1xuICAgICAgICByZXR1cm4gY29udGV4dENoYW5nZWQgfHwgY2hpbGRyZW5BZmZlY3RlZDtcbiAgICAgIH07XG4gICAgICByZXR1cm4gdGhpcy5hcGlTZXJ2aWNlLmhvb2tSZXNwb25zZShmaWx0ZXJSZXNwb25zZSk7XG4gICAgfVxuICAgIHJldHVybiBORVZFUjtcbiAgfVxuXG4gIHByaXZhdGUgdXBkYXRlVGFicyh0YWJzID0gW10pIHtcbiAgICB0aGlzLmxhc3RBZGRlZFRhYnMuZm9yRWFjaCh0ID0+IHRoaXMudGFic1NlcnZpY2UucmVtb3ZlKHQpKTtcbiAgICB0aGlzLmxhc3RBZGRlZFRhYnMgPSB0YWJzO1xuICAgIHRhYnMuZm9yRWFjaCh0ID0+IHRoaXMudGFic1NlcnZpY2UuYWRkKHQpKTtcbiAgICB0aGlzLnJlZGlyZWN0VG9GaXJzdFRhYigpO1xuICB9XG5cbiAgcHJpdmF0ZSByZWRpcmVjdFRvRmlyc3RUYWIoKSB7XG4gICAgY29uc3QgY3VycmVudENvbnRleHRJZCA9ICh0aGlzLnJvdXRlci51cmwubWF0Y2godGhpcy5JRF9SRUdFWCkgfHwgW10pLnNoaWZ0KCk7XG4gICAgaWYgKHRoaXMubmVlZHNSZWRpcmVjdCgpKSB7XG4gICAgICB0aGlzLnRhYnNTZXJ2aWNlLmZpcnN0VGFiJC5waXBlKGZpbHRlcigodGFiOiBUYWIpID0+ICEhdGFiPy5wYXRoKSkuc3Vic2NyaWJlKCh0YWI6IFRhYikgPT4ge1xuICAgICAgICBjb25zdCB0YWJQYXRoSWQgPSAodGFiLnBhdGgubWF0Y2godGhpcy5JRF9SRUdFWCkgfHwgW10pLnNoaWZ0KCk7XG4gICAgICAgIGlmIChjdXJyZW50Q29udGV4dElkID09PSB0YWJQYXRoSWQpIHtcbiAgICAgICAgICB0aGlzLnJvdXRlci5uYXZpZ2F0ZUJ5VXJsKHRhYi5wYXRoLCB7IHJlcGxhY2VVcmw6IHRydWUgfSk7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgbmVlZHNSZWRpcmVjdCgpIHtcbiAgICBjb25zdCB0cmVlOiBVcmxUcmVlID0gdGhpcy5yb3V0ZXIucGFyc2VVcmwodGhpcy5yb3V0ZXIudXJsKTtcbiAgICBjb25zdCBncm91cHM6IFVybFNlZ21lbnRHcm91cCA9IHRyZWUucm9vdC5jaGlsZHJlbltQUklNQVJZX09VVExFVF07XG5cbiAgICBjb25zdCBjb250ZXh0ID0gdGhpcy5nZXRNYXRjaGluZ0NvbnRleHRSb3V0ZSh0aGlzLnJvdXRlci51cmwpO1xuICAgIGlmICghY29udGV4dCkge1xuICAgICAgcmV0dXJuIGdyb3Vwcy5zZWdtZW50cy5sZW5ndGggPT09IDI7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiBjb250ZXh0LnNwbGl0KCcvJykubGVuZ3RoID09PSBncm91cHMuc2VnbWVudHMubGVuZ3RoO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgZ2V0TWF0Y2hpbmdDb250ZXh0Um91dGUodXJsKSB7XG4gICAgY29uc3Qgdmlld0NvbnRleHRzID0gT2JqZWN0LnZhbHVlcyhWaWV3Q29udGV4dCk7XG5cbiAgICBjb25zdCB1cmxXaXRob3V0SWQgPSB1cmwucmVwbGFjZSgvXFxkKC4qKS9nLCAnJyk7XG4gICAgY29uc3QgaWQgPSB2aWV3Q29udGV4dHMuZmluZEluZGV4KGNvbnRleHQgPT4gYC8ke2NvbnRleHQucmVwbGFjZSgnOmlkJywgJycpfWAgPT09IHVybFdpdGhvdXRJZCk7XG4gICAgcmV0dXJuIHZpZXdDb250ZXh0c1tpZF07XG4gIH1cblxuICBwcml2YXRlIGdldFNuYXBzaG90KFxuICAgIGFjdGl2YXRlZFJvdXRlOiBBY3RpdmF0ZWRSb3V0ZSB8IEFjdGl2YXRlZFJvdXRlU25hcHNob3RcbiAgKTogQWN0aXZhdGVkUm91dGVTbmFwc2hvdCB7XG4gICAgcmV0dXJuIGFjdGl2YXRlZFJvdXRlIGluc3RhbmNlb2YgQWN0aXZhdGVkUm91dGUgfHxcbiAgICAgICEhKGFjdGl2YXRlZFJvdXRlIGFzIHVua25vd24gYXMgeyBzbmFwc2hvdDogQWN0aXZhdGVkUm91dGVTbmFwc2hvdCB9KT8uc25hcHNob3RcbiAgICAgID8gKGFjdGl2YXRlZFJvdXRlIGFzIHVua25vd24gYXMgeyBzbmFwc2hvdDogQWN0aXZhdGVkUm91dGVTbmFwc2hvdCB9KS5zbmFwc2hvdFxuICAgICAgOiBhY3RpdmF0ZWRSb3V0ZTtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0Q29udGV4dERhdGFTbmFwc2hvdChcbiAgICBhY3RpdmF0ZWRSb3V0ZTogQWN0aXZhdGVkUm91dGVTbmFwc2hvdFxuICApOiBEYXRhICYgUGFydGlhbDxDb250ZXh0RGF0YT4ge1xuICAgIGxldCByb3V0ZSA9IGFjdGl2YXRlZFJvdXRlO1xuICAgIHdoaWxlIChyb3V0ZSkge1xuICAgICAgaWYgKHJvdXRlLmRhdGEuY29udGV4dCkge1xuICAgICAgICByZXR1cm4gcm91dGUuZGF0YTtcbiAgICAgIH1cbiAgICAgIHJvdXRlID0gcm91dGUucGFyZW50O1xuICAgIH1cbiAgICByZXR1cm4ge307XG4gIH1cbn1cbiJdfQ==
@@ -12,9 +12,10 @@ export class RouterTabsResolver {
12
12
  get routerStateSnapshot() {
13
13
  return this.router.routerState.snapshot;
14
14
  }
15
- resolve(route) {
16
- const latestChildren = this.router.config.find(r => route.routeConfig.path === r.path).children;
17
- return from(latestChildren || []).pipe(mergeMap((child) => from(this.getGuards(child)).pipe(map((guard) => guard.canActivate(route, this.routerStateSnapshot)), mergeMap((result) => {
15
+ resolve(currentRoute) {
16
+ const routeConfig = currentRoute.routeConfig;
17
+ const latestChildren = this.getLatestChildRoutes(routeConfig.rootContext);
18
+ return from(latestChildren || []).pipe(mergeMap((child) => from(this.getGuards(child)).pipe(map((guard) => guard.canActivate(currentRoute, this.routerStateSnapshot)), mergeMap((result) => {
18
19
  if (isObservable(result)) {
19
20
  return result;
20
21
  }
@@ -26,18 +27,48 @@ export class RouterTabsResolver {
26
27
  if (Array.isArray(result)) {
27
28
  child.tabs = result;
28
29
  }
29
- }), every(result => !!result), filter(result => result), mergeMap(() => (Array.isArray(child.tabs) ? from(child.tabs) : of(child))), map(result => result.label || result.path
30
- ? {
31
- label: result.label,
32
- icon: result.icon,
33
- path: `${decodeURIComponent(route.url.join('/'))}/${result.path}`,
34
- priority: result.priority,
35
- hide: result.hide,
36
- badge: result.badge,
37
- tooltipText: result.tooltipText,
38
- featureId: result.featureId
30
+ }), every(result => !!result), filter(result => result), mergeMap(() => (Array.isArray(child.tabs) ? from(child.tabs) : of(child))), map(result => {
31
+ const url = this.getBaselUrl(currentRoute).join('/');
32
+ return result.label || result.path
33
+ ? {
34
+ label: result.label,
35
+ icon: result.icon,
36
+ path: `/${decodeURIComponent(url)}/${result.path}`,
37
+ priority: result.priority,
38
+ hide: result.hide,
39
+ badge: result.badge,
40
+ tooltipText: result.tooltipText,
41
+ featureId: result.featureId,
42
+ tabsOutlet: result.tabsOutlet,
43
+ showAlways: result.showAlways
44
+ }
45
+ : undefined;
46
+ }))), filter(tabs => !!tabs), toArray());
47
+ }
48
+ getBaselUrl(currentRoute) {
49
+ let prefix = [];
50
+ if (currentRoute.parent?.url.length > 0) {
51
+ prefix = this.getBaselUrl(currentRoute.parent);
52
+ }
53
+ return [...prefix, ...currentRoute.url];
54
+ }
55
+ getLatestChildRoutes(context) {
56
+ const thisContextRoute = this.findRootContextRoutes(this.router.config, context);
57
+ return thisContextRoute?.children || [];
58
+ }
59
+ findRootContextRoutes(routes, context) {
60
+ for (const route of routes) {
61
+ if (route.rootContext === context) {
62
+ return route;
63
+ }
64
+ if (route.children) {
65
+ const childResult = this.findRootContextRoutes(route.children, context);
66
+ if (childResult) {
67
+ return childResult;
68
+ }
39
69
  }
40
- : undefined))), filter(tabs => !!tabs), toArray());
70
+ }
71
+ return null;
41
72
  }
42
73
  getGuards(child) {
43
74
  const guards = (child.canActivate || []).map(guard => {
@@ -57,4 +88,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.9", ngImpor
57
88
  providedIn: 'root'
58
89
  }]
59
90
  }], ctorParameters: () => [{ type: i0.Injector }, { type: i1.Router }] });
60
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm91dGVyLXRhYnMucmVzb2x2ZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9jb3JlL3JvdXRlci9yb3V0ZXItdGFicy5yZXNvbHZlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNyRCxPQUFPLEVBQTBCLE1BQU0sRUFBaUIsTUFBTSxpQkFBaUIsQ0FBQztBQUNoRixPQUFPLEVBQUUsSUFBSSxFQUFFLFlBQVksRUFBRSxFQUFFLEVBQWMsTUFBTSxNQUFNLENBQUM7QUFDMUQsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsR0FBRyxFQUFFLFFBQVEsRUFBRSxPQUFPLEVBQUUsR0FBRyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7OztBQU81RSxNQUFNLE9BQU8sa0JBQWtCO0lBQzdCLFlBQ1UsUUFBa0IsRUFDbEIsTUFBYztRQURkLGFBQVEsR0FBUixRQUFRLENBQVU7UUFDbEIsV0FBTSxHQUFOLE1BQU0sQ0FBUTtJQUNyQixDQUFDO0lBRUosSUFBSSxtQkFBbUI7UUFDckIsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDLFdBQVcsQ0FBQyxRQUFRLENBQUM7SUFDMUMsQ0FBQztJQUVELE9BQU8sQ0FBQyxLQUE2QjtRQUNuQyxNQUFNLGNBQWMsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxLQUFLLENBQUMsV0FBVyxDQUFDLElBQUksS0FBSyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsUUFBUSxDQUFDO1FBQ2hHLE9BQU8sSUFBSSxDQUFDLGNBQWMsSUFBSSxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQ3BDLFFBQVEsQ0FBQyxDQUFDLEtBQW1CLEVBQUUsRUFBRSxDQUMvQixJQUFJLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFD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QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdG9yLCBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBBY3RpdmF0ZWRSb3V0ZVNuYXBzaG90LCBSb3V0ZXIsIENhbkFjdGl2YXRlRm4gfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuaW1wb3J0IHsgZnJvbSwgaXNPYnNlcnZhYmxlLCBvZiwgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgZXZlcnksIGZpbHRlciwgbWFwLCBtZXJnZU1hcCwgdG9BcnJheSwgdGFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgVGFiIH0gZnJvbSAnLi4vdGFicy90YWIubW9kZWwnO1xuaW1wb3J0IHsgUm91dGUsIFJvdXRlV2l0aFRhYiB9IGZyb20gJy4vcm91dGVyLm1vZGVsJztcblxuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCdcbn0pXG5leHBvcnQgY2xhc3MgUm91dGVyVGFic1Jlc29sdmVyIHtcbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBpbmplY3RvcjogSW5qZWN0b3IsXG4gICAgcHJpdmF0ZSByb3V0ZXI6IFJvdXRlclxuICApIHt9XG5cbiAgZ2V0IHJvdXRlclN0YXRlU25hcHNob3QoKSB7XG4gICAgcmV0dXJuIHRoaXMucm91dGVyLnJvdXRlclN0YXRlLnNuYXBzaG90O1xuICB9XG5cbiAgcmVzb2x2ZShyb3V0ZTogQWN0aXZhdGVkUm91dGVTbmFwc2hvdCkge1xuICAgIGNvbnN0IGxhdGVzdENoaWxkcmVuID0gdGhpcy5yb3V0ZXIuY29uZmlnLmZpbmQociA9PiByb3V0ZS5yb3V0ZUNvbmZpZy5wYXRoID09PSByLnBhdGgpLmNoaWxkcmVuO1xuICAgIHJldHVybiBmcm9tKGxhdGVzdENoaWxkcmVuIHx8IFtdKS5waXBlKFxuICAgICAgbWVyZ2VNYXAoKGNoaWxkOiBSb3V0ZVdpdGhUYWIpID0+XG4gICAgICAgIGZyb20odGhpcy5nZXRHdWFyZHMoY2hpbGQpKS5waXBlKFxuICAgICAgICAgIG1hcCgoZ3VhcmQ6IHsgY2FuQWN0aXZhdGU6IENhbkFjdGl2YXRlRm4gfSkgPT5cbiAgICAgICAgICAgIGd1YXJkLmNhbkFjdGl2YXRlKHJvdXRlLCB0aGlzLnJvdXRlclN0YXRlU25hcHNob3QpXG4gICAgICAgICAgKSxcbiAgICAgICAgICBtZXJnZU1hcCgocmVzdWx0OiBhbnkpID0+IHtcbiAgICAgICAgICAgIGlmIChpc09ic2VydmFibGUocmVzdWx0KSkge1xuICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0O1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKHJlc3VsdCAmJiB0eXBlb2YgcmVzdWx0LnRoZW4gPT09ICdmdW5jdGlvbicpIHtcbiAgICAgICAgICAgICAgcmV0dXJuIGZyb20ocmVzdWx0KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiBvZihyZXN1bHQpO1xuICAgICAgICAgIH0pLFxuICAgICAgICAgIHRhcChyZXN1bHQgPT4ge1xuICAgICAgICAgICAgaWYgKEFycmF5LmlzQXJyYXkocmVzdWx0KSkge1xuICAgICAgICAgICAgICBjaGlsZC50YWJzID0gcmVzdWx0O1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH0pLFxuICAgICAgICAgIGV2ZXJ5KHJlc3VsdCA9PiAhIXJlc3VsdCksXG4gICAgICAgICAgZmlsdGVyKHJlc3VsdCA9PiByZXN1bHQpLFxuICAgICAgICAgIG1lcmdlTWFwKCgpID0+IChBcnJheS5pc0FycmF5KGNoaWxkLnRhYnMpID8gZnJvbShjaGlsZC50YWJzKSA6IG9mKGNoaWxkKSkpLFxuICAgICAgICAgIG1hcChyZXN1bHQgPT5cbiAgICAgICAgICAgIHJlc3VsdC5sYWJlbCB8fCByZXN1bHQucGF0aFxuICAgICAgICAgICAgICA/ICh7XG4gICAgICAgICAgICAgICAgICBsYWJlbDogcmVzdWx0LmxhYmVsLFxuICAgICAgICAgICAgICAgICAgaWNvbjogcmVzdWx0Lmljb24sXG4gICAgICAgICAgICAgICAgICBwYXRoOiBgJHtkZWNvZGVVUklDb21wb25lbnQocm91dGUudXJsLmpvaW4oJy8nKSl9LyR7cmVzdWx0LnBhdGh9YCxcbiAgICAgICAgICAgICAgICAgIHByaW9yaXR5OiByZXN1bHQucHJpb3JpdHksXG4gICAgICAgICAgICAgICAgICBoaWRlOiByZXN1bHQuaGlkZSxcbiAgICAgICAgICAgICAgICAgIGJhZGdlOiByZXN1bHQuYmFkZ2UsXG4gICAgICAgICAgICAgICAgICB0b29sdGlwVGV4dDogcmVzdWx0LnRvb2x0aXBUZXh0LFxuICAgICAgICAgICAgICAgICAgZmVhdHVyZUlkOiByZXN1bHQuZmVhdHVyZUlkXG4gICAgICAgICAgICAgICAgfSBhcyBUYWIpXG4gICAgICAgICAgICAgIDogdW5kZWZpbmVkXG4gICAgICAgICAgKVxuICAgICAgICApXG4gICAgICApLFxuICAgICAgZmlsdGVyKHRhYnMgPT4gISF0YWJzKSxcbiAgICAgIHRvQXJyYXkoKVxuICAgICkgYXMgT2JzZXJ2YWJsZTxUYWJbXT47XG4gIH1cblxuICBwcml2YXRlIGdldEd1YXJkcyhjaGlsZDogUm91dGUpIHtcbiAgICBjb25zdCBndWFyZHMgPSAoY2hpbGQuY2FuQWN0aXZhdGUgfHwgW10pLm1hcChndWFyZCA9PiB7XG4gICAgICByZXR1cm4gdGhpcy5pbmplY3Rvci5nZXQoZ3VhcmQpO1xuICAgIH0pO1xuICAgIGlmIChjaGlsZC5kYXRhICYmIGNoaWxkLmRhdGEuc2hvd0lmKSB7XG4gICAgICBndWFyZHMucHVzaCh7IGNhbkFjdGl2YXRlOiBjaGlsZC5kYXRhLnNob3dJZiB9KTtcbiAgICB9XG4gICAgcmV0dXJuIGd1YXJkcztcbiAgfVxufVxuIl19
91
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm91dGVyLXRhYnMucmVzb2x2ZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9jb3JlL3JvdXRlci9yb3V0ZXItdGFicy5yZXNvbHZlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNyRCxPQUFPLEVBQTBCLE1BQU0sRUFBcUMsTUFBTSxpQkFBaUIsQ0FBQztBQUNwRyxPQUFPLEVBQUUsSUFBSSxFQUFFLFlBQVksRUFBRSxFQUFFLEVBQWMsTUFBTSxNQUFNLENBQUM7QUFDMUQsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsR0FBRyxFQUFFLFFBQVEsRUFBRSxPQUFPLEVBQUUsR0FBRyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7OztBQU81RSxNQUFNLE9BQU8sa0JBQWtCO0lBQzdCLFlBQ1UsUUFBa0IsRUFDbEIsTUFBYztRQURkLGFBQVEsR0FBUixRQUFRLENBQVU7UUFDbEIsV0FBTSxHQUFOLE1BQU0sQ0FBUTtJQUNyQixDQUFDO0lBRUosSUFBSSxtQkFBbUI7UUFDckIsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDLFdBQVcsQ0FBQyxRQUFRLENBQUM7SUFDMUMsQ0FBQztJQUVELE9BQU8sQ0FBQyxZQUFvQztRQUMxQyxNQUFNLFdBQVcsR0FBeUIsWUFBWSxDQUFDLFdBQW1DLENBQUM7UUFDM0YsTUFBTSxjQUFjLEdBQUcsSUFBSSxDQUFDLG9CQUFvQixDQUFDLFdBQVcsQ0FBQyxXQUFXLENBQUMsQ0FBQztRQUMxRSxPQUFPLElBQUksQ0FBQyxjQUFjLElBQUksRUFBRSxDQUFDLENBQUMsSUFBSSxDQUNwQyxRQUFRLENBQUMsQ0FBQyxLQUFtQixFQUFFLEVBQUUsQ0FDL0IsSUFBSSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQzlCLEdBQUcsQ0FBQyxDQUFDLEtBQXFDLEVB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O2lCQUNuQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdG9yLCBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBBY3RpdmF0ZWRSb3V0ZVNuYXBzaG90LCBSb3V0ZXIsIENhbkFjdGl2YXRlRm4sIFJvdXRlcywgVXJsU2VnbWVudCB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQgeyBmcm9tLCBpc09ic2VydmFibGUsIG9mLCBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBldmVyeSwgZmlsdGVyLCBtYXAsIG1lcmdlTWFwLCB0b0FycmF5LCB0YXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBUYWIgfSBmcm9tICcuLi90YWJzL3RhYi5tb2RlbCc7XG5pbXBvcnQgeyBSb3V0ZSwgUm91dGVXaXRoVGFiLCBWaWV3Q29udGV4dCwgVmlld0NvbnRleHRSb290Um91dGUgfSBmcm9tICcuL3JvdXRlci5tb2RlbCc7XG5cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnXG59KVxuZXhwb3J0IGNsYXNzIFJvdXRlclRhYnNSZXNvbHZlciB7XG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgaW5qZWN0b3I6IEluamVjdG9yLFxuICAgIHByaXZhdGUgcm91dGVyOiBSb3V0ZXJcbiAgKSB7fVxuXG4gIGdldCByb3V0ZXJTdGF0ZVNuYXBzaG90KCkge1xuICAgIHJldHVybiB0aGlzLnJvdXRlci5yb3V0ZXJTdGF0ZS5zbmFwc2hvdDtcbiAgfVxuXG4gIHJlc29sdmUoY3VycmVudFJvdXRlOiBBY3RpdmF0ZWRSb3V0ZVNuYXBzaG90KSB7XG4gICAgY29uc3Qgcm91dGVDb25maWc6IFZpZXdDb250ZXh0Um9vdFJvdXRlID0gY3VycmVudFJvdXRlLnJvdXRlQ29uZmlnIGFzIFZpZXdDb250ZXh0Um9vdFJvdXRlO1xuICAgIGNvbnN0IGxhdGVzdENoaWxkcmVuID0gdGhpcy5nZXRMYXRlc3RDaGlsZFJvdXRlcyhyb3V0ZUNvbmZpZy5yb290Q29udGV4dCk7XG4gICAgcmV0dXJuIGZyb20obGF0ZXN0Q2hpbGRyZW4gfHwgW10pLnBpcGUoXG4gICAgICBtZXJnZU1hcCgoY2hpbGQ6IFJvdXRlV2l0aFRhYikgPT5cbiAgICAgICAgZnJvbSh0aGlzLmdldEd1YXJkcyhjaGlsZCkpLnBpcGUoXG4gICAgICAgICAgbWFwKChndWFyZDogeyBjYW5BY3RpdmF0ZTogQ2FuQWN0aXZhdGVGbiB9KSA9PlxuICAgICAgICAgICAgZ3VhcmQuY2FuQWN0aXZhdGUoY3VycmVudFJvdXRlLCB0aGlzLnJvdXRlclN0YXRlU25hcHNob3QpXG4gICAgICAgICAgKSxcbiAgICAgICAgICBtZXJnZU1hcCgocmVzdWx0OiBhbnkpID0+IHtcbiAgICAgICAgICAgIGlmIChpc09ic2VydmFibGUocmVzdWx0KSkge1xuICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0O1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKHJlc3VsdCAmJiB0eXBlb2YgcmVzdWx0LnRoZW4gPT09ICdmdW5jdGlvbicpIHtcbiAgICAgICAgICAgICAgcmV0dXJuIGZyb20ocmVzdWx0KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiBvZihyZXN1bHQpO1xuICAgICAgICAgIH0pLFxuICAgICAgICAgIHRhcChyZXN1bHQgPT4ge1xuICAgICAgICAgICAgaWYgKEFycmF5LmlzQXJyYXkocmVzdWx0KSkge1xuICAgICAgICAgICAgICBjaGlsZC50YWJzID0gcmVzdWx0O1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH0pLFxuICAgICAgICAgIGV2ZXJ5KHJlc3VsdCA9PiAhIXJlc3VsdCksXG4gICAgICAgICAgZmlsdGVyKHJlc3VsdCA9PiByZXN1bHQpLFxuICAgICAgICAgIG1lcmdlTWFwKCgpID0+IChBcnJheS5pc0FycmF5KGNoaWxkLnRhYnMpID8gZnJvbShjaGlsZC50YWJzKSA6IG9mKGNoaWxkKSkpLFxuICAgICAgICAgIG1hcChyZXN1bHQgPT4ge1xuICAgICAgICAgICAgY29uc3QgdXJsID0gdGhpcy5nZXRCYXNlbFVybChjdXJyZW50Um91dGUpLmpvaW4oJy8nKTtcbiAgICAgICAgICAgIHJldHVybiByZXN1bHQubGFiZWwgfHwgcmVzdWx0LnBhdGhcbiAgICAgICAgICAgICAgPyAoe1xuICAgICAgICAgICAgICAgICAgbGFiZWw6IHJlc3VsdC5sYWJlbCxcbiAgICAgICAgICAgICAgICAgIGljb246IHJlc3VsdC5pY29uLFxuICAgICAgICAgICAgICAgICAgcGF0aDogYC8ke2RlY29kZVVSSUNvbXBvbmVudCh1cmwpfS8ke3Jlc3VsdC5wYXRofWAsXG4gICAgICAgICAgICAgICAgICBwcmlvcml0eTogcmVzdWx0LnByaW9yaXR5LFxuICAgICAgICAgICAgICAgICAgaGlkZTogcmVzdWx0LmhpZGUsXG4gICAgICAgICAgICAgICAgICBiYWRnZTogcmVzdWx0LmJhZGdlLFxuICAgICAgICAgICAgICAgICAgdG9vbHRpcFRleHQ6IHJlc3VsdC50b29sdGlwVGV4dCxcbiAgICAgICAgICAgICAgICAgIGZlYXR1cmVJZDogcmVzdWx0LmZlYXR1cmVJZCxcbiAgICAgICAgICAgICAgICAgIHRhYnNPdXRsZXQ6IHJlc3VsdC50YWJzT3V0bGV0LFxuICAgICAgICAgICAgICAgICAgc2hvd0Fsd2F5czogcmVzdWx0LnNob3dBbHdheXNcbiAgICAgICAgICAgICAgICB9IGFzIFRhYilcbiAgICAgICAgICAgICAgOiB1bmRlZmluZWQ7XG4gICAgICAgICAgfSlcbiAgICAgICAgKVxuICAgICAgKSxcbiAgICAgIGZpbHRlcih0YWJzID0+ICEhdGFicyksXG4gICAgICB0b0FycmF5KClcbiAgICApIGFzIE9ic2VydmFibGU8VGFiW10+O1xuICB9XG5cbiAgcHJpdmF0ZSBnZXRCYXNlbFVybChjdXJyZW50Um91dGU6IEFjdGl2YXRlZFJvdXRlU25hcHNob3QpIHtcbiAgICBsZXQgcHJlZml4OiBVcmxTZWdtZW50W10gPSBbXTtcbiAgICBpZiAoY3VycmVudFJvdXRlLnBhcmVudD8udXJsLmxlbmd0aCA+IDApIHtcbiAgICAgIHByZWZpeCA9IHRoaXMuZ2V0QmFzZWxVcmwoY3VycmVudFJvdXRlLnBhcmVudCk7XG4gICAgfVxuXG4gICAgcmV0dXJuIFsuLi5wcmVmaXgsIC4uLmN1cnJlbnRSb3V0ZS51cmxdO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXRMYXRlc3RDaGlsZFJvdXRlcyhjb250ZXh0OiBWaWV3Q29udGV4dCkge1xuICAgIGNvbnN0IHRoaXNDb250ZXh0Um91dGUgPSB0aGlzLmZpbmRSb290Q29udGV4dFJvdXRlcyh0aGlzLnJvdXRlci5jb25maWcsIGNvbnRleHQpO1xuICAgIHJldHVybiB0aGlzQ29udGV4dFJvdXRlPy5jaGlsZHJlbiB8fCBbXTtcbiAgfVxuXG4gIHByaXZhdGUgZmluZFJvb3RDb250ZXh0Um91dGVzKHJvdXRlczogUm91dGVzLCBjb250ZXh0OiBWaWV3Q29udGV4dCkge1xuICAgIGZvciAoY29uc3Qgcm91dGUgb2Ygcm91dGVzKSB7XG4gICAgICBpZiAoKHJvdXRlIGFzIFZpZXdDb250ZXh0Um9vdFJvdXRlKS5yb290Q29udGV4dCA9PT0gY29udGV4dCkge1xuICAgICAgICByZXR1cm4gcm91dGU7XG4gICAgICB9XG4gICAgICBpZiAocm91dGUuY2hpbGRyZW4pIHtcbiAgICAgICAgY29uc3QgY2hpbGRSZXN1bHQgPSB0aGlzLmZpbmRSb290Q29udGV4dFJvdXRlcyhyb3V0ZS5jaGlsZHJlbiwgY29udGV4dCk7XG4gICAgICAgIGlmIChjaGlsZFJlc3VsdCkge1xuICAgICAgICAgIHJldHVybiBjaGlsZFJlc3VsdDtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gbnVsbDtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0R3VhcmRzKGNoaWxkOiBSb3V0ZSkge1xuICAgIGNvbnN0IGd1YXJkcyA9IChjaGlsZC5jYW5BY3RpdmF0ZSB8fCBbXSkubWFwKGd1YXJkID0+IHtcbiAgICAgIHJldHVybiB0aGlzLmluamVjdG9yLmdldChndWFyZCk7XG4gICAgfSk7XG4gICAgaWYgKGNoaWxkLmRhdGEgJiYgY2hpbGQuZGF0YS5zaG93SWYpIHtcbiAgICAgIGd1YXJkcy5wdXNoKHsgY2FuQWN0aXZhdGU6IGNoaWxkLmRhdGEuc2hvd0lmIH0pO1xuICAgIH1cbiAgICByZXR1cm4gZ3VhcmRzO1xuICB9XG59XG4iXX0=
@@ -16,5 +16,10 @@ export var ViewContext;
16
16
  ViewContext["Service"] = "service/:id";
17
17
  ViewContext["DatapointLibrary"] = "datapointlibrary/:id";
18
18
  ViewContext["Simulators"] = "simulators/:id";
19
+ ViewContext["Alarms"] = "alarms/:id";
20
+ ViewContext["GroupAlarms"] = "group/:id/alarms/:id";
21
+ ViewContext["DeviceAlarms"] = "device/:id/alarms/:id";
22
+ ViewContext["ServiceAlarms"] = "service/:id/alarms/:id";
23
+ ViewContext["SimulatorsAlarms"] = "simulators/:id/alarms/:id";
19
24
  })(ViewContext || (ViewContext = {}));
20
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm91dGVyLm1vZGVsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vY29yZS9yb3V0ZXIvcm91dGVyLm1vZGVsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQWtCQTs7R0FFRztBQUNILE1BQU0sQ0FBTixJQUFZLFdBY1g7QUFkRCxXQUFZLFdBQVc7SUFDckIsb0NBQXFCLENBQUE7SUFDckIsa0NBQW1CLENBQUE7SUFDbkIsaUNBQWtCLENBQUE7SUFDbEIscUVBQXNELENBQUE7SUFDdEQsK0RBQWdELENBQUE7SUFDaEQsNkRBQThDLENBQUE7SUFDOUMsd0VBQXlELENBQUE7SUFDekQsb0VBQXFELENBQUE7SUFDckQscUNBQXNCLENBQUE7SUFDdEIscUNBQXNCLENBQUE7SUFDdEIsc0NBQXVCLENBQUE7SUFDdkIsd0RBQXlDLENBQUE7SUFDekMsNENBQTZCLENBQUE7QUFDL0IsQ0FBQyxFQWRXLFdBQVcsS0FBWCxXQUFXLFFBY3RCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgUm91dGUgYXMgbmdSb3V0ZSB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQgeyBJSWRlbnRpZmllZCB9IGZyb20gJ0BjOHkvY2xpZW50JztcbmltcG9ydCB7IEV4dGVuc2lvbkZhY3RvcnkgfSBmcm9tICcuLi9jb21tb24vZXh0ZW5zaW9uLWhvb2tzJztcbmltcG9ydCB7IFRhYiwgVGFiV2l0aFRlbXBsYXRlIH0gZnJvbSAnLi4vdGFicy90YWIubW9kZWwnO1xuaW1wb3J0IHsgSW5qZWN0b3IgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuZXhwb3J0IGludGVyZmFjZSBDb250ZXh0RGF0YSB7XG4gIC8qKlxuICAgKiBUaGUgZGF0YSBvZiB0aGlzIHJvdXRlLiBFLmcuIG9uIFZpZXdDb250ZXh0LkRldmljZSBhbiBtYW5hZ2VkIG9iamVjdFxuICAgKiBvZiB0aGUgZGV2aWNlLlxuICAgKi9cbiAgY29udGV4dERhdGE6IElJZGVudGlmaWVkO1xuICAvKipcbiAgICogVGhlIGN1cnJlbnQgVmlld0NvbnRleHQgdXNlZC5cbiAgICovXG4gIGNvbnRleHQ6IFZpZXdDb250ZXh0O1xufVxuXG4vKipcbiAqIFRoZSBjb250ZXh0IHJvdXRlcyB0aGF0IGFyZSBzdXBwb3J0ZWQgYnkgdGhlIGFwcGxpY2F0aW9uLlxuICovXG5leHBvcnQgZW51bSBWaWV3Q29udGV4dCB7XG4gIERldmljZSA9ICdkZXZpY2UvOmlkJyxcbiAgR3JvdXAgPSAnZ3JvdXAvOmlkJyxcbiAgVXNlciA9ICd1c2Vycy86aWQnLFxuICBBcHBsaWNhdGlvbiA9ICdlY29zeXN0ZW0vYXBwbGljYXRpb24vYXBwbGljYXRpb25zLzppZCcsXG4gIEV4dGVuc2lvbiA9ICdlY29zeXN0ZW0vZXh0ZW5zaW9uL2V4dGVuc2lvbnMvOmlkJyxcbiAgRmVhdHVyZSA9ICdlY29zeXN0ZW0vYXBwbGljYXRpb24vZmVhdHVyZXMvOmlkJyxcbiAgTWljcm9zZXJ2aWNlID0gJ2Vjb3N5c3RlbS9taWNyb3NlcnZpY2UvbWljcm9zZXJ2aWNlcy86aWQnLFxuICBTdWJzY3JpYmVkQXBwbGljYXRpb25zID0gJ3N1YnNjcmliZWRBcHBsaWNhdGlvbnMvOmlkJyxcbiAgVGVuYW50ID0gJ3RlbmFudHMvOmlkJyxcbiAgUmVwb3J0ID0gJ3JlcG9ydHMvOmlkJyxcbiAgU2VydmljZSA9ICdzZXJ2aWNlLzppZCcsXG4gIERhdGFwb2ludExpYnJhcnkgPSAnZGF0YXBvaW50bGlicmFyeS86aWQnLFxuICBTaW11bGF0b3JzID0gJ3NpbXVsYXRvcnMvOmlkJ1xufVxuXG4vKipcbiAqIEEgcm91dGUgdGhhdCBjYW4gYmUgYWRkZWQgdmlhIHRoZSBIT09LX1JPVVRFLlxuICovXG5leHBvcnQgdHlwZSBSb3V0ZSA9IFJvdXRlRGVmYXVsdCB8IFJvdXRlV2l0aFRhYiB8IFJvdXRlV2l0aENvbXBvbmVudDtcblxuLyoqXG4gKiBBIHVzdWFsIHJvdXRlXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgUm91dGVEZWZhdWx0IGV4dGVuZHMgbmdSb3V0ZSB7XG4gIGNvbnRleHQ/OiBuZXZlcjtcbiAgbGFiZWw/OiBuZXZlcjtcbiAgdGFicz86IG5ldmVyO1xufVxuXG5pbnRlcmZhY2UgUm91dGVCYXNlIHtcbiAgLyoqXG4gICAqIFdoaWNoIG9yZGVyIHNob3VsZCBiZSB1c2VkLlxuICAgKi9cbiAgcHJpb3JpdHk/OiBudW1iZXI7XG5cbiAgLyoqXG4gICAqIElkIHRvIGlkZW50aWZ5IHNwZWNpZmljIGZlYXR1cmUuXG4gICAqL1xuICBmZWF0dXJlSWQ/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBpbmplY3RvciB0byB1c2UuIElmIG5vdCBzZXQsIHRoZSBkZWZhdWx0IHJvb3QgaW5qZWN0b3Igd2lsbCBiZSB1c2VkLlxuICAgKi9cbiAgX2luamVjdG9yPzogSW5qZWN0b3I7XG59XG5cbi8qKlxuICogQSBjb21wb25lbnQgYmFzZWQgY29udGV4dCByb3V0ZS5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBSb3V0ZVdpdGhDb21wb25lbnQgZXh0ZW5kcyBuZ1JvdXRlLCBSb3V0ZUJhc2Uge1xuICAvKipcbiAgICogVGhlIHZpZXcgY29udGV4dCB0byBhZGQgdGhpcyByb3V0ZSB0by5cbiAgICovXG4gIGNvbnRleHQ6IFZpZXdDb250ZXh0O1xuICBsYWJlbD86IG5ldmVyO1xufVxuXG4vKipcbiAqIEEgdGFiIHRoYXQgaXMgYWRkZWQgdG8gYSBjb250ZXh0IHJvdXRlIGFuZCBvcGVucyB0aGUgYXNzb2NpYXRlZFxuICogY29tcG9uZW50IG9uIHRoaXMgY29udGV4dC5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBSb3V0ZVdpdGhUYWJcbiAgZXh0ZW5kcyBPbWl0PFRhYldpdGhUZW1wbGF0ZSwgJ2luamVjdG9yJyB8ICdwYXRoJyB8ICdjb21wb25lbnQnPixcbiAgICBuZ1JvdXRlLFxuICAgIFJvdXRlQmFzZSB7XG4gIC8qKlxuICAgKiBUaGUgdmlldyBjb250ZXh0IHRvIGFkZCB0aGlzIHJvdXRlIHRvLlxuICAgKi9cbiAgY29udGV4dDogVmlld0NvbnRleHQ7XG5cbiAgLyoqXG4gICAqIEFsbG93IHRvIGVtaXQgbXVsdGlwbGUgdGFicyBvbiBvbmUgY29udGV4dCByb3V0ZS5cbiAgICovXG4gIHRhYnM/OiBUYWJbXTtcbn1cblxuZXhwb3J0IHR5cGUgUm91dGVGYWN0b3J5ID0gUm91dGUgfCBSb3V0ZVtdIHwgRXh0ZW5zaW9uRmFjdG9yeTxSb3V0ZT47XG4iXX0=
25
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm91dGVyLm1vZGVsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vY29yZS9yb3V0ZXIvcm91dGVyLm1vZGVsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQWtCQTs7R0FFRztBQUNILE1BQU0sQ0FBTixJQUFZLFdBbUJYO0FBbkJELFdBQVksV0FBVztJQUNyQixvQ0FBcUIsQ0FBQTtJQUNyQixrQ0FBbUIsQ0FBQTtJQUNuQixpQ0FBa0IsQ0FBQTtJQUNsQixxRUFBc0QsQ0FBQTtJQUN0RCwrREFBZ0QsQ0FBQTtJQUNoRCw2REFBOEMsQ0FBQTtJQUM5Qyx3RUFBeUQsQ0FBQTtJQUN6RCxvRUFBcUQsQ0FBQTtJQUNyRCxxQ0FBc0IsQ0FBQTtJQUN0QixxQ0FBc0IsQ0FBQTtJQUN0QixzQ0FBdUIsQ0FBQTtJQUN2Qix3REFBeUMsQ0FBQTtJQUN6Qyw0Q0FBNkIsQ0FBQTtJQUM3QixvQ0FBcUIsQ0FBQTtJQUNyQixtREFBb0MsQ0FBQTtJQUNwQyxxREFBc0MsQ0FBQTtJQUN0Qyx1REFBd0MsQ0FBQTtJQUN4Qyw2REFBOEMsQ0FBQTtBQUNoRCxDQUFDLEVBbkJXLFdBQVcsS0FBWCxXQUFXLFFBbUJ0QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFJvdXRlIGFzIG5nUm91dGUgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuaW1wb3J0IHsgSUlkZW50aWZpZWQsIElSZXN1bHQsIElSZXN1bHRMaXN0IH0gZnJvbSAnQGM4eS9jbGllbnQnO1xuaW1wb3J0IHsgRXh0ZW5zaW9uRmFjdG9yeSB9IGZyb20gJy4uL2NvbW1vbi9leHRlbnNpb24taG9va3MnO1xuaW1wb3J0IHsgVGFiLCBUYWJXaXRoVGVtcGxhdGUgfSBmcm9tICcuLi90YWJzL3RhYi5tb2RlbCc7XG5pbXBvcnQgeyBJbmplY3RvciwgVHlwZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5leHBvcnQgaW50ZXJmYWNlIENvbnRleHREYXRhIHtcbiAgLyoqXG4gICAqIFRoZSBkYXRhIG9mIHRoaXMgcm91dGUuIEUuZy4gb24gVmlld0NvbnRleHQuRGV2aWNlIGFuIG1hbmFnZWQgb2JqZWN0XG4gICAqIG9mIHRoZSBkZXZpY2UuXG4gICAqL1xuICBjb250ZXh0RGF0YTogSUlkZW50aWZpZWQ7XG4gIC8qKlxuICAgKiBUaGUgY3VycmVudCBWaWV3Q29udGV4dCB1c2VkLlxuICAgKi9cbiAgY29udGV4dDogVmlld0NvbnRleHQ7XG59XG5cbi8qKlxuICogVGhlIGNvbnRleHQgcm91dGVzIHRoYXQgYXJlIHN1cHBvcnRlZCBieSB0aGUgYXBwbGljYXRpb24uXG4gKi9cbmV4cG9ydCBlbnVtIFZpZXdDb250ZXh0IHtcbiAgRGV2aWNlID0gJ2RldmljZS86aWQnLFxuICBHcm91cCA9ICdncm91cC86aWQnLFxuICBVc2VyID0gJ3VzZXJzLzppZCcsXG4gIEFwcGxpY2F0aW9uID0gJ2Vjb3N5c3RlbS9hcHBsaWNhdGlvbi9hcHBsaWNhdGlvbnMvOmlkJyxcbiAgRXh0ZW5zaW9uID0gJ2Vjb3N5c3RlbS9leHRlbnNpb24vZXh0ZW5zaW9ucy86aWQnLFxuICBGZWF0dXJlID0gJ2Vjb3N5c3RlbS9hcHBsaWNhdGlvbi9mZWF0dXJlcy86aWQnLFxuICBNaWNyb3NlcnZpY2UgPSAnZWNvc3lzdGVtL21pY3Jvc2VydmljZS9taWNyb3NlcnZpY2VzLzppZCcsXG4gIFN1YnNjcmliZWRBcHBsaWNhdGlvbnMgPSAnc3Vic2NyaWJlZEFwcGxpY2F0aW9ucy86aWQnLFxuICBUZW5hbnQgPSAndGVuYW50cy86aWQnLFxuICBSZXBvcnQgPSAncmVwb3J0cy86aWQnLFxuICBTZXJ2aWNlID0gJ3NlcnZpY2UvOmlkJyxcbiAgRGF0YXBvaW50TGlicmFyeSA9ICdkYXRhcG9pbnRsaWJyYXJ5LzppZCcsXG4gIFNpbXVsYXRvcnMgPSAnc2ltdWxhdG9ycy86aWQnLFxuICBBbGFybXMgPSAnYWxhcm1zLzppZCcsXG4gIEdyb3VwQWxhcm1zID0gJ2dyb3VwLzppZC9hbGFybXMvOmlkJyxcbiAgRGV2aWNlQWxhcm1zID0gJ2RldmljZS86aWQvYWxhcm1zLzppZCcsXG4gIFNlcnZpY2VBbGFybXMgPSAnc2VydmljZS86aWQvYWxhcm1zLzppZCcsXG4gIFNpbXVsYXRvcnNBbGFybXMgPSAnc2ltdWxhdG9ycy86aWQvYWxhcm1zLzppZCdcbn1cblxuZXhwb3J0IGludGVyZmFjZSBWaWV3Q29udGV4U2VydmljZUNvbmZpZyB7XG4gIFtrZXk6IHN0cmluZ106IHtcbiAgICAvKipcbiAgICAgKiBEZWZpbmVzIGlmIHRoZSByb3V0ZSBpcyBhdXRvbWF0aWNhbGx5IGdlbmVyYXRlZCBieSB0aGUgcm91dGVyIHNlcnZpY2Ugb3JcbiAgICAgKiBpZiB0aGUgcm91dGUgaXMgc29tZXdoZXJlIGRlZmluZWQgYnkgdGhlIGRldmVsb3Blci5cbiAgICAgKi9cbiAgICBhdXRvUm91dGU6IGJvb2xlYW47XG4gICAgLyoqXG4gICAgICogVGhlIHBhdGggdXNlZCB0byByb3V0ZS5cbiAgICAgKi9cbiAgICBwYXRoOiBzdHJpbmc7XG4gICAgLyoqXG4gICAgICogVGhlIEBjOHkvY2xpZW50IHNlcnZpY2UgdG8gdXNlIGZvciB0aGlzIGNvbnRleHQuXG4gICAgICovXG4gICAgc2VydmljZTogVHlwZTx7XG4gICAgICBkZXRhaWwoXG4gICAgICAgIGVudGl0eU9ySWQ6IHN0cmluZyB8IG51bWJlciB8IElJZGVudGlmaWVkLFxuICAgICAgICBmaWx0ZXI/OiBvYmplY3RcbiAgICAgICk6IFByb21pc2U8SVJlc3VsdDxJSWRlbnRpZmllZD4+O1xuICAgICAgbGlzdChmaWx0ZXI/OiBvYmplY3QpOiBQcm9taXNlPElSZXN1bHRMaXN0PElJZGVudGlmaWVkPj47XG4gICAgfT47XG4gIH07XG59XG5cbi8qKlxuICogQSBWaWV3Q29udGV4dCBiYXNlIHJvdXRlLlxuICovXG5leHBvcnQgdHlwZSBWaWV3Q29udGV4dFJvb3RSb3V0ZSA9IFJvdXRlICYgeyByb290Q29udGV4dDogVmlld0NvbnRleHQgfTtcblxuLyoqXG4gKiBBIHJvdXRlIHRoYXQgaXMgYWRkZWQgdG8gYSBjZXJ0YWluIHZpZXcgY29udGV4dC5cbiAqL1xuZXhwb3J0IHR5cGUgVmlld0NvbnRleHRSb3V0ZSA9IFJvdXRlICYgeyBjb250ZXh0OiBWaWV3Q29udGV4dCB9O1xuXG4vKipcbiAqIEEgcm91dGUgdGhhdCBjYW4gYmUgYWRkZWQgdmlhIHRoZSBIT09LX1JPVVRFLlxuICovXG5leHBvcnQgdHlwZSBSb3V0ZSA9IFJvdXRlRGVmYXVsdCB8IFJvdXRlV2l0aFRhYiB8IFJvdXRlV2l0aENvbXBvbmVudDtcblxuLyoqXG4gKiBBIHVzdWFsIHJvdXRlXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgUm91dGVEZWZhdWx0IGV4dGVuZHMgbmdSb3V0ZSB7XG4gIGNvbnRleHQ/OiBuZXZlcjtcbiAgbGFiZWw/OiBuZXZlcjtcbiAgdGFicz86IG5ldmVyO1xufVxuXG5pbnRlcmZhY2UgUm91dGVCYXNlIHtcbiAgLyoqXG4gICAqIFdoaWNoIG9yZGVyIHNob3VsZCBiZSB1c2VkLlxuICAgKi9cbiAgcHJpb3JpdHk/OiBudW1iZXI7XG5cbiAgLyoqXG4gICAqIElkIHRvIGlkZW50aWZ5IHNwZWNpZmljIGZlYXR1cmUuXG4gICAqL1xuICBmZWF0dXJlSWQ/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBpbmplY3RvciB0byB1c2UuIElmIG5vdCBzZXQsIHRoZSBkZWZhdWx0IHJvb3QgaW5qZWN0b3Igd2lsbCBiZSB1c2VkLlxuICAgKi9cbiAgX2luamVjdG9yPzogSW5qZWN0b3I7XG59XG5cbi8qKlxuICogQSBjb21wb25lbnQgYmFzZWQgY29udGV4dCByb3V0ZS5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBSb3V0ZVdpdGhDb21wb25lbnQgZXh0ZW5kcyBuZ1JvdXRlLCBSb3V0ZUJhc2Uge1xuICAvKipcbiAgICogVGhlIHZpZXcgY29udGV4dCB0byBhZGQgdGhpcyByb3V0ZSB0by5cbiAgICovXG4gIGNvbnRleHQ6IFZpZXdDb250ZXh0O1xuICBsYWJlbD86IG5ldmVyO1xufVxuXG4vKipcbiAqIEEgdGFiIHRoYXQgaXMgYWRkZWQgdG8gYSBjb250ZXh0IHJvdXRlIGFuZCBvcGVucyB0aGUgYXNzb2NpYXRlZFxuICogY29tcG9uZW50IG9uIHRoaXMgY29udGV4dC5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBSb3V0ZVdpdGhUYWJcbiAgZXh0ZW5kcyBPbWl0PFRhYldpdGhUZW1wbGF0ZSwgJ2luamVjdG9yJyB8ICdwYXRoJyB8ICdjb21wb25lbnQnPixcbiAgICBuZ1JvdXRlLFxuICAgIFJvdXRlQmFzZSB7XG4gIC8qKlxuICAgKiBUaGUgdmlldyBjb250ZXh0IHRvIGFkZCB0aGlzIHJvdXRlIHRvLlxuICAgKi9cbiAgY29udGV4dDogVmlld0NvbnRleHQ7XG5cbiAgLyoqXG4gICAqIEFsbG93IHRvIGVtaXQgbXVsdGlwbGUgdGFicyBvbiBvbmUgY29udGV4dCByb3V0ZS5cbiAgICovXG4gIHRhYnM/OiBUYWJbXTtcbn1cblxuZXhwb3J0IHR5cGUgUm91dGVGYWN0b3J5ID0gUm91dGUgfCBSb3V0ZVtdIHwgRXh0ZW5zaW9uRmFjdG9yeTxSb3V0ZT47XG4iXX0=
@@ -1,13 +1,15 @@
1
1
  import { NgModule } from '@angular/core';
2
2
  import { RouterModule as NgRouterModule } from '@angular/router';
3
- import { RouterService } from './router.service';
4
- import { ContextRouteComponent } from './context-route.component';
5
- import { HeaderModule } from '../header/header.module';
6
3
  import { CommonModule } from '../common/common.module';
4
+ import { HeaderModule } from '../header/header.module';
5
+ import { ContextRouteComponent } from './context-route.component';
7
6
  import { ContextRouteGuard } from './context-route.guard';
8
- import { ViewContext } from './router.model';
9
- import { RouterTabsResolver } from './router-tabs.resolver';
10
7
  import { EmptyComponent } from './empty.component';
8
+ import { RouterTabsResolver } from './router-tabs.resolver';
9
+ import { ViewContext } from './router.model';
10
+ import { RouterService } from './router.service';
11
+ import { ScopedContextRouteService } from './scoped-context-route.service';
12
+ import { ViewContextServices } from './view-context.service';
11
13
  import * as i0 from "@angular/core";
12
14
  import * as i1 from "./router.service";
13
15
  export const extraRoutes = [
@@ -20,17 +22,21 @@ export const extraRoutes = [
20
22
  component: EmptyComponent
21
23
  }
22
24
  ];
25
+ export const viewContextRoutes = [];
23
26
  // tslint:disable-next-line: forin
24
27
  for (const key in ViewContext) {
25
28
  const context = ViewContext[key];
26
- extraRoutes.push({
27
- path: context,
29
+ if (!ViewContextServices.isAutoRoute(context)) {
30
+ continue;
31
+ }
32
+ viewContextRoutes.push({
33
+ path: ViewContextServices.getPath(context),
34
+ rootContext: context,
28
35
  component: ContextRouteComponent,
29
36
  canActivate: [ContextRouteGuard],
30
37
  data: { context, contextData: {} },
31
38
  resolve: {
32
39
  tabs: RouterTabsResolver
33
- // contextData: ContextRouteGuard
34
40
  }
35
41
  });
36
42
  }
@@ -59,10 +65,10 @@ export class RouterModule {
59
65
  // initialNavigation disabled by default because of MTM-44047 (routes triggered before the actual login)
60
66
  config.initialNavigation = config.initialNavigation ?? 'disabled';
61
67
  config.useHash = config.useHash ?? true;
62
- const ngRouterModule = NgRouterModule.forRoot([...routes, ...extraRoutes], config);
68
+ const ngRouterModule = NgRouterModule.forRoot([...routes, ...extraRoutes, ...viewContextRoutes], config);
63
69
  return {
64
70
  ngModule: RouterModule,
65
- providers: [...ngRouterModule.providers]
71
+ providers: [...ngRouterModule.providers, ScopedContextRouteService]
66
72
  };
67
73
  }
68
74
  constructor(
@@ -72,13 +78,14 @@ export class RouterModule {
72
78
  }
73
79
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: RouterModule, deps: [{ token: i1.RouterService }], target: i0.ɵɵFactoryTarget.NgModule }); }
74
80
  static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.9", ngImport: i0, type: RouterModule, declarations: [ContextRouteComponent, EmptyComponent], imports: [NgRouterModule, HeaderModule, CommonModule] }); }
75
- static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: RouterModule, imports: [NgRouterModule, HeaderModule, CommonModule] }); }
81
+ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: RouterModule, providers: [ScopedContextRouteService], imports: [NgRouterModule, HeaderModule, CommonModule] }); }
76
82
  }
77
83
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: RouterModule, decorators: [{
78
84
  type: NgModule,
79
85
  args: [{
80
86
  declarations: [ContextRouteComponent, EmptyComponent],
81
- imports: [NgRouterModule, HeaderModule, CommonModule]
87
+ imports: [NgRouterModule, HeaderModule, CommonModule],
88
+ providers: [ScopedContextRouteService]
82
89
  }]
83
90
  }], ctorParameters: () => [{ type: i1.RouterService }] });
84
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm91dGVyLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL2NvcmUvcm91dGVyL3JvdXRlci5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUF1QixRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDOUQsT0FBTyxFQUFnQixZQUFZLElBQUksY0FBYyxFQUFVLE1BQU0saUJBQWlCLENBQUM7QUFDdkYsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQ2pELE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQ2xFLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUN2RCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDdkQsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDMUQsT0FBTyxFQUFFLFdBQVcsRUFBUyxNQUFNLGdCQUFnQixDQUFDO0FBQ3BELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQzVELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQzs7O0FBRW5ELE1BQU0sQ0FBQyxNQUFNLFdBQVcsR0FBWTtJQUNsQztRQUNFLElBQUksRUFBRSxXQUFXO1FBQ2pCLFNBQVMsRUFBRSxjQUFjO0tBQzFCO0lBQ0Q7UUFDRSxJQUFJLEVBQUUsYUFBYTtRQUNuQixTQUFTLEVBQUUsY0FBYztLQUMxQjtDQUNGLENBQUM7QUFDRixrQ0FBa0M7QUFDbEMsS0FBSyxNQUFNLEdBQUcsSUFBSSxXQUFXLEVBQUUsQ0FBQztJQUM5QixNQUFNLE9BQU8sR0FBRyxXQUFXLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDakMsV0FBVyxDQUFDLElBQUksQ0FBQztRQUNmLElBQUksRUFBRSxPQUFPO1FBQ2IsU0FBUyxFQUFFLHFCQUFxQjtRQUNoQyxXQUFXLEVBQUUsQ0FBQyxpQkFBaUIsQ0FBQztRQUNoQyxJQUFJLEVBQUUsRUFBRSxPQUFPLEVBQUUsV0FBVyxFQUFFLEVBQUUsRUFBRTtRQUNsQyxPQUFPLEVBQUU7WUFDUCxJQUFJLEVBQUUsa0JBQWtCO1lBQ3hCLGlDQUFpQztTQUNsQztLQUNGLENBQUMsQ0FBQztBQUNMLENBQUM7QUFFRDs7Ozs7Ozs7O0dBU0c7QUFLSCxNQUFNLE9BQU8sWUFBWTtJQUN2Qjs7Ozs7O09BTUc7SUFDSCxNQUFNLENBQUMsT0FBTyxDQUFDLFNBQWlCLEVBQUUsRUFBRSxNQUFxQjtRQUN2RCxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUM7WUFDWixNQUFNLEdBQUcsRUFBRSxDQUFDO1FBQ2QsQ0FBQztRQUNELHdHQUF3RztRQUN4RyxNQUFNLENBQUMsaUJBQWlCLEdBQUcsTUFBTSxDQUFDLGlCQUFpQixJQUFJLFVBQVUsQ0FBQztRQUNsRSxNQUFNLENBQUMsT0FBTyxHQUFHLE1BQU0sQ0FBQyxPQUFPLElBQUksSUFBSSxDQUFDO1FBRXhDLE1BQU0sY0FBYyxHQUFHLGNBQWMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxHQUFHLE1BQU0sRUFBRSxHQUFHLFdBQVcsQ0FBQyxFQUFFLE1BQU0sQ0FBQyxDQUFDO1FBRW5GLE9BQU87WUFDTCxRQUFRLEVBQUUsWUFBWTtZQUN0QixTQUFTLEVBQUUsQ0FBQyxHQUFHLGNBQWMsQ0FBQyxTQUFTLENBQUM7U0FDekMsQ0FBQztJQUNKLENBQUM7SUFFRDtJQUNFLG1GQUFtRjtJQUMzRSxhQUE0QjtRQUE1QixrQkFBYSxHQUFiLGFBQWEsQ0FBZTtJQUNuQyxDQUFDOzhHQTNCTyxZQUFZOytHQUFaLFlBQVksaUJBSFIscUJBQXFCLEVBQUUsY0FBYyxhQUMxQyxjQUFjLEVBQUUsWUFBWSxFQUFFLFlBQVk7K0dBRXpDLFlBQVksWUFGYixjQUFjLEVBQUUsWUFBWSxFQUFFLFlBQVk7OzJGQUV6QyxZQUFZO2tCQUp4QixRQUFRO21CQUFDO29CQUNSLFlBQVksRUFBRSxDQUFDLHFCQUFxQixFQUFFLGNBQWMsQ0FBQztvQkFDckQsT0FBTyxFQUFFLENBQUMsY0FBYyxFQUFFLFlBQVksRUFBRSxZQUFZLENBQUM7aUJBQ3REIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTW9kdWxlV2l0aFByb3ZpZGVycywgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEV4dHJhT3B0aW9ucywgUm91dGVyTW9kdWxlIGFzIE5nUm91dGVyTW9kdWxlLCBSb3V0ZXMgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuaW1wb3J0IHsgUm91dGVyU2VydmljZSB9IGZyb20gJy4vcm91dGVyLnNlcnZpY2UnO1xuaW1wb3J0IHsgQ29udGV4dFJvdXRlQ29tcG9uZW50IH0gZnJvbSAnLi9jb250ZXh0LXJvdXRlLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBIZWFkZXJNb2R1bGUgfSBmcm9tICcuLi9oZWFkZXIvaGVhZGVyLm1vZHVsZSc7XG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICcuLi9jb21tb24vY29tbW9uLm1vZHVsZSc7XG5pbXBvcnQgeyBDb250ZXh0Um91dGVHdWFyZCB9IGZyb20gJy4vY29udGV4dC1yb3V0ZS5ndWFyZCc7XG5pbXBvcnQgeyBWaWV3Q29udGV4dCwgUm91dGUgfSBmcm9tICcuL3JvdXRlci5tb2RlbCc7XG5pbXBvcnQgeyBSb3V0ZXJUYWJzUmVzb2x2ZXIgfSBmcm9tICcuL3JvdXRlci10YWJzLnJlc29sdmVyJztcbmltcG9ydCB7IEVtcHR5Q29tcG9uZW50IH0gZnJvbSAnLi9lbXB0eS5jb21wb25lbnQnO1xuXG5leHBvcnQgY29uc3QgZXh0cmFSb3V0ZXM6IFJvdXRlW10gPSBbXG4gIHtcbiAgICBwYXRoOiAndXNlcnMvbmV3JyxcbiAgICBjb21wb25lbnQ6IEVtcHR5Q29tcG9uZW50XG4gIH0sXG4gIHtcbiAgICBwYXRoOiAndGVuYW50cy9uZXcnLFxuICAgIGNvbXBvbmVudDogRW1wdHlDb21wb25lbnRcbiAgfVxuXTtcbi8vIHRzbGludDpkaXNhYmxlLW5leHQtbGluZTogZm9yaW5cbmZvciAoY29uc3Qga2V5IGluIFZpZXdDb250ZXh0KSB7XG4gIGNvbnN0IGNvbnRleHQgPSBWaWV3Q29udGV4dFtrZXldO1xuICBleHRyYVJvdXRlcy5wdXNoKHtcbiAgICBwYXRoOiBjb250ZXh0LFxuICAgIGNvbXBvbmVudDogQ29udGV4dFJvdXRlQ29tcG9uZW50LFxuICAgIGNhbkFjdGl2YXRlOiBbQ29udGV4dFJvdXRlR3VhcmRdLFxuICAgIGRhdGE6IHsgY29udGV4dCwgY29udGV4dERhdGE6IHt9IH0sXG4gICAgcmVzb2x2ZToge1xuICAgICAgdGFiczogUm91dGVyVGFic1Jlc29sdmVyXG4gICAgICAvLyBjb250ZXh0RGF0YTogQ29udGV4dFJvdXRlR3VhcmRcbiAgICB9XG4gIH0pO1xufVxuXG4vKipcbiAqIEEgQzhZIHJvdXRlciBpbXBsZW1lbnRhdGlvbi4gSXQgaW1wbGVtZW50cyBzb21lIGRlZmF1bHQgcm91dGVzIG5lZWRlZFxuICogYXMgd2VsbCBhcyBjb250ZXh0IHJvdXRlcy4gQ29udGV4dCByb3V0ZXMgYXJlIHVzZWZ1bCwgaWYgeW91IHdhbnQgdG9cbiAqIHVzZSBjb250ZXh0IGRhdGEgb24gYSBjZXJ0YWluIHZpZXcgKGUuZy4gYSBkZXZpY2UpLCB0aGVuIHRoaXMgcm91dGVzXG4gKiBhdXRvbWF0aWNhbGx5IHJlc29sdmUgdGhlIGFzc29jaWF0ZWQgbWFuYWdlZCBvYmplY3QuXG4gKlxuICogWW91IGNhbiB1c2UgdGhpcyBpbiBjb21iaW5hdGlvbiBvZiB0aGUgQW5ndWxhciBkZWZhdWx0IFJvdXRlck1vZHVsZVxuICogb3IgdXNlIG9ubHkgdGhpcyBtb2R1bGUuIENvbnRleHQgcm91dGVzIGNhbiBvbmx5IGJlIGFkZGVkIHZpYSB0aGVcbiAqIEhPT0tfUk9VVEVTIGhvb2suXG4gKi9cbkBOZ01vZHVsZSh7XG4gIGRlY2xhcmF0aW9uczogW0NvbnRleHRSb3V0ZUNvbXBvbmVudCwgRW1wdHlDb21wb25lbnRdLFxuICBpbXBvcnRzOiBbTmdSb3V0ZXJNb2R1bGUsIEhlYWRlck1vZHVsZSwgQ29tbW9uTW9kdWxlXVxufSlcbmV4cG9ydCBjbGFzcyBSb3V0ZXJNb2R1bGUge1xuICAvKipcbiAgICogU2FtZSBpbnRlcmZhY2UgYXMgQGFuZ3VsYXIvcm91dGVyIG1vZHVsZS5cbiAgICogU2V0cyBgaW5pdGlhbE5hdmlnYXRpb25gIGFsd2F5cyB0byBgZGlzYWJsZWRgIGFuZCBgdXNlSGFzaGAgYWx3YXlzIHRvIGB0cnVlYC5cbiAgICogQHBhcmFtIHJvdXRlcyBUaGUgY29uZmlndXJlZCByb3V0ZXMuXG4gICAqIEBwYXJhbSBjb25maWcgVGhlIHJvdXRlciBkZWZhdWx0IGNvbmZpZ3VyYXRpb24uXG4gICAqIEByZXR1cm5zIFRoZSBtb2R1bGUgYW5kIHByb3ZpZGVycy5cbiAgICovXG4gIHN0YXRpYyBmb3JSb290KHJvdXRlczogUm91dGVzID0gW10sIGNvbmZpZz86IEV4dHJhT3B0aW9ucyk6IE1vZHVsZVdpdGhQcm92aWRlcnM8Um91dGVyTW9kdWxlPiB7XG4gICAgaWYgKCFjb25maWcpIHtcbiAgICAgIGNvbmZpZyA9IHt9O1xuICAgIH1cbiAgICAvLyBpbml0aWFsTmF2aWdhdGlvbiBkaXNhYmxlZCBieSBkZWZhdWx0IGJlY2F1c2Ugb2YgTVRNLTQ0MDQ3IChyb3V0ZXMgdHJpZ2dlcmVkIGJlZm9yZSB0aGUgYWN0dWFsIGxvZ2luKVxuICAgIGNvbmZpZy5pbml0aWFsTmF2aWdhdGlvbiA9IGNvbmZpZy5pbml0aWFsTmF2aWdhdGlvbiA/PyAnZGlzYWJsZWQnO1xuICAgIGNvbmZpZy51c2VIYXNoID0gY29uZmlnLnVzZUhhc2ggPz8gdHJ1ZTtcblxuICAgIGNvbnN0IG5nUm91dGVyTW9kdWxlID0gTmdSb3V0ZXJNb2R1bGUuZm9yUm9vdChbLi4ucm91dGVzLCAuLi5leHRyYVJvdXRlc10sIGNvbmZpZyk7XG5cbiAgICByZXR1cm4ge1xuICAgICAgbmdNb2R1bGU6IFJvdXRlck1vZHVsZSxcbiAgICAgIHByb3ZpZGVyczogWy4uLm5nUm91dGVyTW9kdWxlLnByb3ZpZGVyc11cbiAgICB9O1xuICB9XG5cbiAgY29uc3RydWN0b3IoXG4gICAgLy8gRGVjbGFyZWQgYnV0IG5ldmVyIHVzZWQgaXMgaW50ZW5kZWQ6IHRvIGFsd2F5cyBoYXZlIGEgaW5zdGFuY2Ugb2YgUm91dGVyU2VydmljZS5cbiAgICBwcml2YXRlIHJvdXRlclNlcnZpY2U6IFJvdXRlclNlcnZpY2VcbiAgKSB7fVxufVxuIl19
91
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm91dGVyLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL2NvcmUvcm91dGVyL3JvdXRlci5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUF1QixRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDOUQsT0FBTyxFQUFnQixZQUFZLElBQUksY0FBYyxFQUFVLE1BQU0saUJBQWlCLENBQUM7QUFDdkYsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUN2RCxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUNsRSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUMxRCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDbkQsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDNUQsT0FBTyxFQUFTLFdBQVcsRUFBd0IsTUFBTSxnQkFBZ0IsQ0FBQztBQUMxRSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDakQsT0FBTyxFQUFFLHlCQUF5QixFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDM0UsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sd0JBQXdCLENBQUM7OztBQUU3RCxNQUFNLENBQUMsTUFBTSxXQUFXLEdBQVk7SUFDbEM7UUFDRSxJQUFJLEVBQUUsV0FBVztRQUNqQixTQUFTLEVBQUUsY0FBYztLQUMxQjtJQUNEO1FBQ0UsSUFBSSxFQUFFLGFBQWE7UUFDbkIsU0FBUyxFQUFFLGNBQWM7S0FDMUI7Q0FDRixDQUFDO0FBRUYsTUFBTSxDQUFDLE1BQU0saUJBQWlCLEdBQTJCLEVBQUUsQ0FBQztBQUM1RCxrQ0FBa0M7QUFDbEMsS0FBSyxNQUFNLEdBQUcsSUFBSSxXQUFXLEVBQUUsQ0FBQztJQUM5QixNQUFNLE9BQU8sR0FBRyxXQUFXLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDakMsSUFBSSxDQUFDLG1CQUFtQixDQUFDLFdBQVcsQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDO1FBQzlDLFNBQVM7SUFDWCxDQUFDO0lBQ0QsaUJBQWlCLENBQUMsSUFBSSxDQUFDO1FBQ3JCLElBQUksRUFBRSxtQkFBbUIsQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDO1FBQzFDLFdBQVcsRUFBRSxPQUFPO1FBQ3BCLFNBQVMsRUFBRSxxQkFBcUI7UUFDaEMsV0FBVyxFQUFFLENBQUMsaUJBQWlCLENBQUM7UUFDaEMsSUFBSSxFQUFFLEVBQUUsT0FBTyxFQUFFLFdBQVcsRUFBRSxFQUFFLEVBQUU7UUFDbEMsT0FBTyxFQUFFO1lBQ1AsSUFBSSxFQUFFLGtCQUFrQjtTQUN6QjtLQUNGLENBQUMsQ0FBQztBQUNMLENBQUM7QUFFRDs7Ozs7Ozs7O0dBU0c7QUFNSCxNQUFNLE9BQU8sWUFBWTtJQUN2Qjs7Ozs7O09BTUc7SUFDSCxNQUFNLENBQUMsT0FBTyxDQUFDLFNBQWlCLEVBQUUsRUFBRSxNQUFxQjtRQUN2RCxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUM7WUFDWixNQUFNLEdBQUcsRUFBRSxDQUFDO1FBQ2QsQ0FBQztRQUNELHdHQUF3RztRQUN4RyxNQUFNLENBQUMsaUJBQWlCLEdBQUcsTUFBTSxDQUFDLGlCQUFpQixJQUFJLFVBQVUsQ0FBQztRQUNsRSxNQUFNLENBQUMsT0FBTyxHQUFHLE1BQU0sQ0FBQyxPQUFPLElBQUksSUFBSSxDQUFDO1FBRXhDLE1BQU0sY0FBYyxHQUFHLGNBQWMsQ0FBQyxPQUFPLENBQzNDLENBQUMsR0FBRyxNQUFNLEVBQUUsR0FBRyxXQUFXLEVBQUUsR0FBRyxpQkFBaUIsQ0FBQyxFQUNqRCxNQUFNLENBQ1AsQ0FBQztRQUVGLE9BQU87WUFDTCxRQUFRLEVBQUUsWUFBWTtZQUN0QixTQUFTLEVBQUUsQ0FBQyxHQUFHLGNBQWMsQ0FBQyxTQUFTLEVBQUUseUJBQXlCLENBQUM7U0FDcEUsQ0FBQztJQUNKLENBQUM7SUFFRDtJQUNFLG1GQUFtRjtJQUMzRSxhQUE0QjtRQUE1QixrQkFBYSxHQUFiLGFBQWEsQ0FBZTtJQUNuQyxDQUFDOzhHQTlCTyxZQUFZOytHQUFaLFlBQVksaUJBSlIscUJBQXFCLEVBQUUsY0FBYyxhQUMxQyxjQUFjLEVBQUUsWUFBWSxFQUFFLFlBQVk7K0dBR3pDLFlBQVksYUFGWixDQUFDLHlCQUF5QixDQUFDLFlBRDVCLGNBQWMsRUFBRSxZQUFZLEVBQUUsWUFBWTs7MkZBR3pDLFlBQVk7a0JBTHhCLFFBQVE7bUJBQUM7b0JBQ1IsWUFBWSxFQUFFLENBQUMscUJBQXFCLEVBQUUsY0FBYyxDQUFDO29CQUNyRCxPQUFPLEVBQUUsQ0FBQyxjQUFjLEVBQUUsWUFBWSxFQUFFLFlBQVksQ0FBQztvQkFDckQsU0FBUyxFQUFFLENBQUMseUJBQXlCLENBQUM7aUJBQ3ZDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTW9kdWxlV2l0aFByb3ZpZGVycywgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEV4dHJhT3B0aW9ucywgUm91dGVyTW9kdWxlIGFzIE5nUm91dGVyTW9kdWxlLCBSb3V0ZXMgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnLi4vY29tbW9uL2NvbW1vbi5tb2R1bGUnO1xuaW1wb3J0IHsgSGVhZGVyTW9kdWxlIH0gZnJvbSAnLi4vaGVhZGVyL2hlYWRlci5tb2R1bGUnO1xuaW1wb3J0IHsgQ29udGV4dFJvdXRlQ29tcG9uZW50IH0gZnJvbSAnLi9jb250ZXh0LXJvdXRlLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBDb250ZXh0Um91dGVHdWFyZCB9IGZyb20gJy4vY29udGV4dC1yb3V0ZS5ndWFyZCc7XG5pbXBvcnQgeyBFbXB0eUNvbXBvbmVudCB9IGZyb20gJy4vZW1wdHkuY29tcG9uZW50JztcbmltcG9ydCB7IFJvdXRlclRhYnNSZXNvbHZlciB9IGZyb20gJy4vcm91dGVyLXRhYnMucmVzb2x2ZXInO1xuaW1wb3J0IHsgUm91dGUsIFZpZXdDb250ZXh0LCBWaWV3Q29udGV4dFJvb3RSb3V0ZSB9IGZyb20gJy4vcm91dGVyLm1vZGVsJztcbmltcG9ydCB7IFJvdXRlclNlcnZpY2UgfSBmcm9tICcuL3JvdXRlci5zZXJ2aWNlJztcbmltcG9ydCB7IFNjb3BlZENvbnRleHRSb3V0ZVNlcnZpY2UgfSBmcm9tICcuL3Njb3BlZC1jb250ZXh0LXJvdXRlLnNlcnZpY2UnO1xuaW1wb3J0IHsgVmlld0NvbnRleHRTZXJ2aWNlcyB9IGZyb20gJy4vdmlldy1jb250ZXh0LnNlcnZpY2UnO1xuXG5leHBvcnQgY29uc3QgZXh0cmFSb3V0ZXM6IFJvdXRlW10gPSBbXG4gIHtcbiAgICBwYXRoOiAndXNlcnMvbmV3JyxcbiAgICBjb21wb25lbnQ6IEVtcHR5Q29tcG9uZW50XG4gIH0sXG4gIHtcbiAgICBwYXRoOiAndGVuYW50cy9uZXcnLFxuICAgIGNvbXBvbmVudDogRW1wdHlDb21wb25lbnRcbiAgfVxuXTtcblxuZXhwb3J0IGNvbnN0IHZpZXdDb250ZXh0Um91dGVzOiBWaWV3Q29udGV4dFJvb3RSb3V0ZVtdID0gW107XG4vLyB0c2xpbnQ6ZGlzYWJsZS1uZXh0LWxpbmU6IGZvcmluXG5mb3IgKGNvbnN0IGtleSBpbiBWaWV3Q29udGV4dCkge1xuICBjb25zdCBjb250ZXh0ID0gVmlld0NvbnRleHRba2V5XTtcbiAgaWYgKCFWaWV3Q29udGV4dFNlcnZpY2VzLmlzQXV0b1JvdXRlKGNvbnRleHQpKSB7XG4gICAgY29udGludWU7XG4gIH1cbiAgdmlld0NvbnRleHRSb3V0ZXMucHVzaCh7XG4gICAgcGF0aDogVmlld0NvbnRleHRTZXJ2aWNlcy5nZXRQYXRoKGNvbnRleHQpLFxuICAgIHJvb3RDb250ZXh0OiBjb250ZXh0LFxuICAgIGNvbXBvbmVudDogQ29udGV4dFJvdXRlQ29tcG9uZW50LFxuICAgIGNhbkFjdGl2YXRlOiBbQ29udGV4dFJvdXRlR3VhcmRdLFxuICAgIGRhdGE6IHsgY29udGV4dCwgY29udGV4dERhdGE6IHt9IH0sXG4gICAgcmVzb2x2ZToge1xuICAgICAgdGFiczogUm91dGVyVGFic1Jlc29sdmVyXG4gICAgfVxuICB9KTtcbn1cblxuLyoqXG4gKiBBIEM4WSByb3V0ZXIgaW1wbGVtZW50YXRpb24uIEl0IGltcGxlbWVudHMgc29tZSBkZWZhdWx0IHJvdXRlcyBuZWVkZWRcbiAqIGFzIHdlbGwgYXMgY29udGV4dCByb3V0ZXMuIENvbnRleHQgcm91dGVzIGFyZSB1c2VmdWwsIGlmIHlvdSB3YW50IHRvXG4gKiB1c2UgY29udGV4dCBkYXRhIG9uIGEgY2VydGFpbiB2aWV3IChlLmcuIGEgZGV2aWNlKSwgdGhlbiB0aGlzIHJvdXRlc1xuICogYXV0b21hdGljYWxseSByZXNvbHZlIHRoZSBhc3NvY2lhdGVkIG1hbmFnZWQgb2JqZWN0LlxuICpcbiAqIFlvdSBjYW4gdXNlIHRoaXMgaW4gY29tYmluYXRpb24gb2YgdGhlIEFuZ3VsYXIgZGVmYXVsdCBSb3V0ZXJNb2R1bGVcbiAqIG9yIHVzZSBvbmx5IHRoaXMgbW9kdWxlLiBDb250ZXh0IHJvdXRlcyBjYW4gb25seSBiZSBhZGRlZCB2aWEgdGhlXG4gKiBIT09LX1JPVVRFUyBob29rLlxuICovXG5ATmdNb2R1bGUoe1xuICBkZWNsYXJhdGlvbnM6IFtDb250ZXh0Um91dGVDb21wb25lbnQsIEVtcHR5Q29tcG9uZW50XSxcbiAgaW1wb3J0czogW05nUm91dGVyTW9kdWxlLCBIZWFkZXJNb2R1bGUsIENvbW1vbk1vZHVsZV0sXG4gIHByb3ZpZGVyczogW1Njb3BlZENvbnRleHRSb3V0ZVNlcnZpY2VdXG59KVxuZXhwb3J0IGNsYXNzIFJvdXRlck1vZHVsZSB7XG4gIC8qKlxuICAgKiBTYW1lIGludGVyZmFjZSBhcyBAYW5ndWxhci9yb3V0ZXIgbW9kdWxlLlxuICAgKiBTZXRzIGBpbml0aWFsTmF2aWdhdGlvbmAgYWx3YXlzIHRvIGBkaXNhYmxlZGAgYW5kIGB1c2VIYXNoYCBhbHdheXMgdG8gYHRydWVgLlxuICAgKiBAcGFyYW0gcm91dGVzIFRoZSBjb25maWd1cmVkIHJvdXRlcy5cbiAgICogQHBhcmFtIGNvbmZpZyBUaGUgcm91dGVyIGRlZmF1bHQgY29uZmlndXJhdGlvbi5cbiAgICogQHJldHVybnMgVGhlIG1vZHVsZSBhbmQgcHJvdmlkZXJzLlxuICAgKi9cbiAgc3RhdGljIGZvclJvb3Qocm91dGVzOiBSb3V0ZXMgPSBbXSwgY29uZmlnPzogRXh0cmFPcHRpb25zKTogTW9kdWxlV2l0aFByb3ZpZGVyczxSb3V0ZXJNb2R1bGU+IHtcbiAgICBpZiAoIWNvbmZpZykge1xuICAgICAgY29uZmlnID0ge307XG4gICAgfVxuICAgIC8vIGluaXRpYWxOYXZpZ2F0aW9uIGRpc2FibGVkIGJ5IGRlZmF1bHQgYmVjYXVzZSBvZiBNVE0tNDQwNDcgKHJvdXRlcyB0cmlnZ2VyZWQgYmVmb3JlIHRoZSBhY3R1YWwgbG9naW4pXG4gICAgY29uZmlnLmluaXRpYWxOYXZpZ2F0aW9uID0gY29uZmlnLmluaXRpYWxOYXZpZ2F0aW9uID8/ICdkaXNhYmxlZCc7XG4gICAgY29uZmlnLnVzZUhhc2ggPSBjb25maWcudXNlSGFzaCA/PyB0cnVlO1xuXG4gICAgY29uc3QgbmdSb3V0ZXJNb2R1bGUgPSBOZ1JvdXRlck1vZHVsZS5mb3JSb290KFxuICAgICAgWy4uLnJvdXRlcywgLi4uZXh0cmFSb3V0ZXMsIC4uLnZpZXdDb250ZXh0Um91dGVzXSxcbiAgICAgIGNvbmZpZ1xuICAgICk7XG5cbiAgICByZXR1cm4ge1xuICAgICAgbmdNb2R1bGU6IFJvdXRlck1vZHVsZSxcbiAgICAgIHByb3ZpZGVyczogWy4uLm5nUm91dGVyTW9kdWxlLnByb3ZpZGVycywgU2NvcGVkQ29udGV4dFJvdXRlU2VydmljZV1cbiAgICB9O1xuICB9XG5cbiAgY29uc3RydWN0b3IoXG4gICAgLy8gRGVjbGFyZWQgYnV0IG5ldmVyIHVzZWQgaXMgaW50ZW5kZWQ6IHRvIGFsd2F5cyBoYXZlIGEgaW5zdGFuY2Ugb2YgUm91dGVyU2VydmljZS5cbiAgICBwcml2YXRlIHJvdXRlclNlcnZpY2U6IFJvdXRlclNlcnZpY2VcbiAgKSB7fVxufVxuIl19
@@ -1,12 +1,12 @@
1
1
  import { importProvidersFrom, Injectable, InjectionToken, Injector } from '@angular/core';
2
2
  import { Router, ROUTES } from '@angular/router';
3
- import { ViewContext } from './router.model';
4
- import { ContextRouteService } from './context-route.service';
5
- import { distinctUntilChanged, filter, shareReplay, take } from 'rxjs/operators';
6
- import { fromTriggerOnce, hookGeneric, getInjectedHooks, InjectionType, ExtensionPointWithoutStateForPlugins } from '../common/extension-hooks';
7
- import { PluginsResolveService } from '../plugins';
8
3
  import { flatten } from 'lodash';
4
+ import { distinctUntilChanged, filter, shareReplay, take } from 'rxjs/operators';
5
+ import { ExtensionPointWithoutStateForPlugins, fromTriggerOnce, getInjectedHooks, hookGeneric, InjectionType } from '../common/extension-hooks';
9
6
  import { OptionsService } from '../common/options.service';
7
+ import { PluginsResolveService } from '../plugins';
8
+ import { ContextRouteService } from './context-route.service';
9
+ import { ViewContext } from './router.model';
10
10
  import * as i0 from "@angular/core";
11
11
  import * as i1 from "@angular/router";
12
12
  import * as i2 from "./context-route.service";
@@ -114,16 +114,17 @@ export class RouterService extends ExtensionPointWithoutStateForPlugins {
114
114
  // Empty route needs to be last as of navigation to angularjs routes
115
115
  // if ** route hit, the angularjs routes are loaded.
116
116
  const emptyRoute = this.router.config.find(r => r.path === '**');
117
+ const rootContextRoutes = this.findAllRootContextRoutes([...this.router.config, ...routes]);
117
118
  this.router.resetConfig([
118
119
  ...this.router.config.filter(r => r.path !== '**'),
119
- ...routes.map((r) => this.convertRoute(this.router.config, r)),
120
+ ...routes.map((r) => this.convertRoute(rootContextRoutes, r)),
120
121
  emptyRoute
121
122
  ].filter(Boolean));
122
123
  }
123
- convertRoute(initialConfig, route) {
124
+ convertRoute(rootContextRoutes, route) {
124
125
  if (route.context) {
125
- initialConfig.forEach((r) => {
126
- if (r.data && r.data.context === route.context) {
126
+ rootContextRoutes.forEach((r) => {
127
+ if (r.rootContext === route.context) {
127
128
  r.children = [route, ...(r.children || [])];
128
129
  }
129
130
  });
@@ -131,6 +132,19 @@ export class RouterService extends ExtensionPointWithoutStateForPlugins {
131
132
  }
132
133
  return route;
133
134
  }
135
+ findAllRootContextRoutes(routes) {
136
+ const result = [];
137
+ routes.forEach(route => {
138
+ if (route.rootContext) {
139
+ result.push(route);
140
+ }
141
+ if (route.children) {
142
+ const childRoutes = this.findAllRootContextRoutes(route.children);
143
+ result.push(...childRoutes);
144
+ }
145
+ });
146
+ return result;
147
+ }
134
148
  resolveRouterForChildRoutes(moduleRef, remoteNgModule) {
135
149
  // NOTE: stolen from lazy loaded routes from Angular itself.
136
150
  // https://github.com/angular/angular/blob/da58801f95c66c201e332189af25702bdd722f3f/packages/router/src/router_config_loader.ts#L103-L108
@@ -152,4 +166,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.9", ngImpor
152
166
  providedIn: 'root'
153
167
  }]
154
168
  }], ctorParameters: () => [{ type: i0.Injector }, { type: i1.Router }, { type: i2.ContextRouteService }, { type: i3.PluginsResolveService }, { type: i4.OptionsService }] });
155
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm91dGVyLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9jb3JlL3JvdXRlci9yb3V0ZXIuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsbUJBQW1CLEVBQ25CLFVBQVUsRUFDVixjQUFjLEVBQ2QsUUFBUSxFQUVULE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDakQsT0FBTyxFQUF1QixXQUFXLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNsRSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUc5RCxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxFQUFFLFdBQVcsRUFBRSxJQUFJLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNqRixPQUFPLEVBRUwsZUFBZSxFQUVmLFdBQVcsRUFDWCxnQkFBZ0IsRUFDaEIsYUFBYSxFQUNiLG9DQUFvQyxFQUVyQyxNQUFNLDJCQUEyQixDQUFDO0FBQ25DLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLFlBQVksQ0FBQztBQUNuRCxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sUUFBUSxDQUFDO0FBQ2pDLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQzs7Ozs7O0FBc0IzRDs7O0dBR0c7QUFDSCxNQUFNLENBQUMsTUFBTSxVQUFVLEdBQUcsSUFBSSxjQUFjLENBQWUsWUFBWSxDQUFDLENBQUM7QUFFekU7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBb0JHO0FBQ0gsTUFBTSxVQUFVLFNBQVMsQ0FBQyxLQUE2QixFQUFFLE9BQXFDO0lBQzVGLE9BQU8sV0FBVyxDQUFRLEtBQUssRUFBRSxVQUFVLEVBQUUsT0FBTyxDQUFDLENBQUM7QUFDeEQsQ0FBQztBQUVEOzs7R0FHRztBQUlILE1BQU0sT0FBTyxhQUFjLFNBQVEsb0NB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SSxDQUFDLE9BQU8sS0FBSyxLQUFLLENBQUMsT0FBTyxFQUFFLENBQUM7b0JBQy9DLENBQUMsQ0FBQyxRQUFRLEdBQUcsQ0FBQyxLQUFLLEVBQUUsR0FBRyxDQUFDLENBQUMsQ0FBQyxRQUFRLElBQUksRUFBRSxDQUFDLENBQUMsQ0FBQztnQkFDOUMsQ0FBQztZQUNILENBQUMsQ0FBQyxDQUFDO1lBQ0gsT0FBTztRQUNULENBQUM7UUFDRCxPQUFPLEtBQUssQ0FBQztJQUNmLENBQUM7SUFFTywyQkFBMkIsQ0FBQyxTQUEyQixFQUFFLGNBQW1CO1FBQ2xGLDREQUE0RDtRQUM1RCx5SUFBeUk7UUFDekksTUFBTSxTQUFTLEdBQUcsT0FBTyxDQUFDLFNBQVMsQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLE1BQU0sRUFBRSxFQUFFLEVBQUUsRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDLENBQUM7UUFFOUYsSUFBSSxTQUFTLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRSxDQUFDO1lBQ3pCLE1BQU0saUJBQWlCLEdBQUcsU0FBUyxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsRUFBRTtnQkFDOUMsS0FBSyxDQUFDLFNBQVMsR0FBRyxDQUFDLG1CQUFtQixDQUFDLGNBQWMsQ0FBQyxDQUFDLENBQUM7Z0JBQ3hELE9BQU8sS0FBSyxDQUFDO1lBQ2YsQ0FBQyxDQUFDLENBQUM7WUFDSCxJQUFJLENBQUMsUUFBUSxDQUFDLGlCQUFpQixDQUFDLENBQUM7UUFDbkMsQ0FBQztJQUNILENBQUM7OEdBdEhVLGFBQWE7a0hBQWIsYUFBYSxjQUZaLE1BQU07OzJGQUVQLGFBQWE7a0JBSHpCLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgaW1wb3J0UHJvdmlkZXJzRnJvbSxcbiAgSW5qZWN0YWJsZSxcbiAgSW5qZWN0aW9uVG9rZW4sXG4gIEluamVjdG9yLFxuICBOZ01vZHVsZVJlZlxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFJvdXRlciwgUk9VVEVTIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcbmltcG9ydCB7IFJvdXRlRmFjdG9yeSwgUm91dGUsIFZpZXdDb250ZXh0IH0gZnJvbSAnLi9yb3V0ZXIubW9kZWwnO1xuaW1wb3J0IHsgQ29udGV4dFJvdXRlU2VydmljZSB9IGZyb20gJy4vY29udGV4dC1yb3V0ZS5zZXJ2aWNlJztcbmltcG9ydCB7IElNYW5hZ2VkT2JqZWN0IH0gZnJvbSAnQGM4eS9jbGllbnQnO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgZGlzdGluY3RVbnRpbENoYW5nZWQsIGZpbHRlciwgc2hhcmVSZXBsYXksIHRha2UgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQge1xuICBFeHRlbnNpb25GYWN0b3J5LFxuICBmcm9tVHJpZ2dlck9uY2UsXG4gIEdlbmVyaWNIb29rVHlwZSxcbiAgaG9va0dlbmVyaWMsXG4gIGdldEluamVjdGVkSG9va3MsXG4gIEluamVjdGlvblR5cGUsXG4gIEV4dGVuc2lvblBvaW50V2l0aG91dFN0YXRlRm9yUGx1Z2lucyxcbiAgR2VuZXJpY0hvb2tPcHRpb25zXG59IGZyb20gJy4uL2NvbW1vbi9leHRlbnNpb24taG9va3MnO1xuaW1wb3J0IHsgUGx1Z2luc1Jlc29sdmVTZXJ2aWNlIH0gZnJvbSAnLi4vcGx1Z2lucyc7XG5pbXBvcnQgeyBmbGF0dGVuIH0gZnJvbSAnbG9kYXNoJztcbmltcG9ydCB7IE9wdGlvbnNTZXJ2aWNlIH0gZnJvbSAnLi4vY29tbW9uL29wdGlvbnMuc2VydmljZSc7XG5cbi8qKlxuICogQW4gZXh0ZW5zaW9uIEhPT0sgY2FuIHVzZSBlaXRoZXIgYSBwdXJlIHZhbHVlOlxuICogYGBgdHlwZXNjcmlwdFxuICogIHsgcHJvdmlkZTogSE9PS19YLCB1c2VWYWx1ZTogeyAuLi5ob29rVmFsdWUgfSwgbXVsdGk6IHRydWUgfVxuICogYGBgXG4gKlxuICogT3IgYW4gYXJyYXkgdG8gZGlyZWN0bHkgcmVnaXN0ZXIgbXVsdGlwbGU6XG4gKiBgYGB0eXBlc2NyaXB0XG4gKiAgeyBwcm92aWRlOiBIT09LX1gsIHVzZVZhbHVlOiBbeyAuLi5ob29rVmFsdWVzIH1dLCBtdWx0aTogdHJ1ZSB9XG4gKiBgYGBcbiAqXG4gKiBPciBhbiBFeHRlbnNpb25GYWN0b3J5IHdoaWNoIGFsbG93cyB0byBkZWZpbmUgYSBnZXQoKSBmdW5jdGlvbi4gVGhpcyBmdW5jdGlvblxuICogZ2V0cyBjYWxsZWQgb24gZWFjaCBuYXZpZ2F0aW9uIHdpdGggdGhlIGN1cnJlbnQgcm91dGUgYW5kIGNhbiByZXR1cm4gdmFsdWVzXG4gKiBhc3luYyAob2JzZXJ2YWJsZSBvciBwcm9taXNlKS5cbiAqIGBgYHR5cGVzY3JpcHRcbiAqICB7IHByb3ZpZGU6IEhPT0tfWCwgdXNlRmFjdG9yeTogeyBnZXQ6IChyb3V0ZSkgPT4gZG9Tb21ldGhpbmdBc3luYyhyb3V0ZSkgfSwgbXVsdGk6IHRydWUgfVxuICogYGBgXG4gKi9cbmV4cG9ydCB0eXBlIFJvdXRlRXh0ZW5zaW9uID0gUm91dGUgfCBSb3V0ZVtdIHwgRXh0ZW5zaW9uRmFjdG9yeTxSb3V0ZT47XG5cbi8qKlxuICogQSBob29rIHRvIHVzZSBmb3IgTXVsdGkgUHJvdmlkZXIgZXh0ZW5zaW9uLlxuICogQGRlcHJlY2F0ZWQgQ29uc2lkZXIgdXNpbmcgdGhlIGBob29rUm91dGVgIGZ1bmN0aW9uIGluc3RlYWQuXG4gKi9cbmV4cG9ydCBjb25zdCBIT09LX1JPVVRFID0gbmV3IEluamVjdGlvblRva2VuPFJvdXRlRmFjdG9yeT4oJ0hPT0tfUk9VVEUnKTtcblxuLyoqXG4gKiBZb3UgY2FuIGVpdGhlciBwcm92aWRlIGEgc2luZ2xlIGBSb3V0ZWAgYXMgcGFyYW1ldGVyOlxuICogYGBgdHlwZXNjcmlwdFxuICogIGhvb2tSb3V0ZSguLi4pXG4gKiBgYGBcbiAqXG4gKiBPciBhbiBhcnJheSB0byBkaXJlY3RseSByZWdpc3RlciBtdWx0aXBsZTpcbiAqIGBgYHR5cGVzY3JpcHRcbiAqICBob29rUm91dGUoWy4uLl0pXG4gKiBgYGBcbiAqXG4gKiBPciB5b3UgcHJvdmlkZSBhbiBTZXJ2aWNlIHRoYXQgaW1wbGVtZW50cyBgRXh0ZW5zaW9uRmFjdG9yeTxSb3V0ZT5gXG4gKiBgYGB0eXBlc2NyaXB0XG4gKiAgZXhwb3J0IGNsYXNzIE15Um91dGVGYWN0b3J5IGltcGxlbWVudHMgRXh0ZW5zaW9uRmFjdG9yeTxSb3V0ZT4gey4uLn1cbiAqICAuLi5cbiAqICBob29rUm91dGUoTXlSb3V0ZUZhY3RvcnkpXG4gKiBgYGBcbiAqIEEgdHlwZWQgYWx0ZXJuYXRpdmUgdG8gYEhPT0tfUk9VVEVgLlxuICogQHBhcmFtIHJvdXRlIFRoZSBgUm91dGVgJ3Mgb3IgYEV4dGVuc2lvbkZhY3RvcnlgIHRvIGJlIHByb3ZpZGVkLlxuICogQHJldHVybnMgQW4gYFByb3ZpZGVyYCB0byBiZSBwcm92aWRlZCBpbiB5b3VyIG1vZHVsZS5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGhvb2tSb3V0ZShyb3V0ZTogR2VuZXJpY0hvb2tUeXBlPFJvdXRlPiwgb3B0aW9ucz86IFBhcnRpYWw8R2VuZXJpY0hvb2tPcHRpb25zPikge1xuICByZXR1cm4gaG9va0dlbmVyaWM8Um91dGU+KHJvdXRlLCBIT09LX1JPVVRFLCBvcHRpb25zKTtcbn1cblxuLyoqXG4gKiBBIHNlcnZpY2Ugd2hpY2ggZGVmaW5lcyByb3V0ZXMgZm9yIHRoZSBhcHBsaWNhdGlvbi4gWW91IGNhbiB1c2VcbiAqIEhPT0tfUk9VVEVTIG9yIHBhc3NcbiAqL1xuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCdcbn0pXG5leHBvcnQgY2xhc3MgUm91dGVyU2VydmljZSBleHRlbmRzIEV4dGVuc2lvblBvaW50V2l0aG91dFN0YXRlRm9yUGx1Z2luczxSb3V0ZT4ge1xuICByZWFkb25seSBzdGF0ZSA9IG5ldyBNYXA8c3RyaW5nLCBSb3V0ZT4oKTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICByb290SW5qZWN0b3I6IEluamVjdG9yLFxuICAgIHB1YmxpYyByb3V0ZXI6IFJvdXRlcixcbiAgICBwcml2YXRlIGNvbnRleHRSb3V0ZVNlcnZpY2U6IENvbnRleHRSb3V0ZVNlcnZpY2UsXG4gICAgcGx1Z2luczogUGx1Z2luc1Jlc29sdmVTZXJ2aWNlLFxuICAgIG9wdGlvbnM6IE9wdGlvbnNTZXJ2aWNlXG4gICkge1xuICAgIHN1cGVyKHJvb3RJbmplY3RvciwgcGx1Z2lucyk7XG4gICAgdGhpcy5pdGVtcyQgPSB0aGlzLnNldHVwSXRlbXNPYnNlcnZhYmxlKCk7XG5cbiAgICAvLyBXZSBhcmUgZG9pbmcgYSBzZWxmIHN1YnNjcmlwdGlvbiB0byBhZGQgdGhlIG5ldyByb3V0ZXNcbiAgICAvLyB0byB0aGUgcm91dGVyIGNvbmZpZ3VyYXRpb24uXG4gICAgdGhpcy5pdGVtcyQuc3Vic2NyaWJlKChyb3V0ZXM6IFJvdXRlW10pID0+IHtcbiAgICAgIGNvbnN0IHRvQWRkUm91dGVzID0gcm91dGVzLmZpbHRlcigocm91dGU6IFJvdXRlKSA9PiB7XG4gICAgICAgIGNvbnN0IHBhdGggPSBgJHtyb3V0ZS5jb250ZXh0IHx8ICcnfSR7cm91dGUucGF0aH1gO1xuICAgICAgICBjb25zdCBpc0FscmVhZHlBZGRlZCA9IHRoaXMuc3RhdGUuaGFzKHBhdGgpO1xuICAgICAgICBpZiAoIWlzQWxyZWFkeUFkZGVkKSB7XG4gICAgICAgICAgdGhpcy5zdGF0ZS5zZXQocGF0aCwgcm91dGUpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiAhaXNBbHJlYWR5QWRkZWQ7XG4gICAgICB9KTtcbiAgICAgIHRoaXMuYWRkUm91dGUodG9BZGRSb3V0ZXMpO1xuICAgIH0pO1xuXG4gICAgcGx1Z2lucy5wbHVnaW5EZXRhaWxzJC5zdWJzY3JpYmUoKHsgbW9kdWxlUmVmLCByZW1vdGVOZ01vZHVsZSB9KSA9PiB7XG4gICAgICB0aGlzLnJlc29sdmVSb3V0ZXJGb3JDaGlsZFJvdXRlcyhtb2R1bGVSZWYsIHJlbW90ZU5nTW9kdWxlKTtcbiAgICB9KTtcblxuICAgIC8vIG9ubHkgbmVlZGVkIGluIGNhc2Ugb2YgcHVyZSBhbmd1bGFyIGFwcGxpY2F0aW9uXG4gICAgLy8gb3RoZXJ3aXNlIGhhbmRsZWQgYnkgYnJpZGdlIHNlcnZpY2VcbiAgICBpZiAoIW9wdGlvbnMudXBncmFkZSkge1xuICAgICAgcGx1Z2lucy5hbGxQbHVnaW5zTG9hZGVkJFxuICAgICAgICAucGlwZShcbiAgICAgICAgICBmaWx0ZXIodG1wID0+ICEhdG1wKSxcbiAgICAgICAgICB0YWtlKDEpXG4gICAgICAgIClcbiAgICAgICAgLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgICAgdGhpcy5yb3V0ZXIuaW5pdGlhbE5hdmlnYXRpb24oKTtcbiAgICAgICAgfSk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIFJlZnJlc2ggdGhlIGN1cnJlbnQgY29udGV4dFxuICAgKi9cbiAgcmVmcmVzaCgpIHtcbiAgICBzdXBlci5yZWZyZXNoKCk7XG4gICAgdGhpcy5jb250ZXh0Um91dGVTZXJ2aWNlLnJlZnJlc2hDb250ZXh0KCk7XG4gIH1cblxuICAvKipcbiAgICogQWRkIGEgbmV3IHJvdXRlIHRvIHRoZSByb3V0ZXIgY29uZmlndXJhdGlvbiBvciBhIGNvbnRleHQuXG4gICAqIEBwYXJhbSByb3V0ZSBUaGUgcm91dGUgdG8gYWRkXG4gICAqL1xuICBhZGRSb3V0ZShyb3V0ZTogUm91dGUgfCBSb3V0ZVtdKSB7XG4gICAgdGhpcy5hZGRSb3V0ZXMoQXJyYXkuaXNBcnJheShyb3V0ZSkgPyByb3V0ZSA6IFtyb3V0ZV0pO1xuICB9XG5cbiAgLyoqXG4gICAqIERldGVybWluZXMgaWYgdGhlIGdpdmVuIE1PIGlzIGFuIGdyb3VwIG9yIGFuIGRldmljZSBhbmQgcmV0dXJuc1xuICAgKiB0aGUgY29ycmVjdCBocmVmIHRvIGxpbmsgY29ycmVjdGx5IHRvIHRoYXQgTU8uXG4gICAqIEBwYXJhbSBncm91cE9yRGV2aWNlIFRoZSBNTyBvZiBhIGdyb3VwIG9yIHRoZSBkZXZpY2UuXG4gICAqIEBwYXJhbSBwcmVmaXggSG93IHNob3VsZCB0aGUgbGluayBiZSBwcmVmaXhlZC5cbiAgICovXG4gIGdldEhyZWYoZ3JvdXBPckRldmljZTogSU1hbmFnZWRPYmplY3QsIHByZWZpeCA9ICcjLycpOiBzdHJpbmcge1xuICAgIGlmIChncm91cE9yRGV2aWNlLmM4eV9Jc0RldmljZUdyb3VwIHx8IGdyb3VwT3JEZXZpY2UuYzh5X0lzRHluYW1pY0dyb3VwKSB7XG4gICAgICByZXR1cm4gYCR7cHJlZml4fSR7Vmlld0NvbnRleHQuR3JvdXAucmVwbGFjZSgnOmlkJywgZ3JvdXBPckRldmljZS5pZCl9YDtcbiAgICB9XG4gICAgcmV0dXJuIGAke3ByZWZpeH0ke1ZpZXdDb250ZXh0LkRldmljZS5yZXBsYWNlKCc6aWQnLCBncm91cE9yRGV2aWNlLmlkKX1gO1xuICB9XG5cbiAgcHJvdGVjdGVkIHNldHVwSXRlbXNPYnNlcnZhYmxlKCk6IE9ic2VydmFibGU8Um91dGVbXT4ge1xuICAgIHJldHVybiBmcm9tVHJpZ2dlck9uY2U8Um91dGU+KHRoaXMucm91dGVyLCB0aGlzLnJlZnJlc2gkLCBbXG4gICAgICBnZXRJbmplY3RlZEhvb2tzPFJvdXRlPihIT09LX1JPVVRFLCB0aGlzLmluamVjdG9ycywgSW5qZWN0aW9uVHlwZS5ST1VURSksXG4gICAgICAoKSA9PiB0aGlzLmZhY3Rvcmllc1xuICAgIF0pLnBpcGUoZGlzdGluY3RVbnRpbENoYW5nZWQoKSwgc2hhcmVSZXBsYXkoMSkpO1xuICB9XG5cbiAgcHJpdmF0ZSBhZGRSb3V0ZXMocm91dGVzKSB7XG4gICAgLy8gRW1wdHkgcm91dGUgbmVlZHMgdG8gYmUgbGFzdCBhcyBvZiBuYXZpZ2F0aW9uIHRvIGFuZ3VsYXJqcyByb3V0ZXNcbiAgICAvLyBpZiAqKiByb3V0ZSBoaXQsIHRoZSBhbmd1bGFyanMgcm91dGVzIGFyZSBsb2FkZWQuXG4gICAgY29uc3QgZW1wdHlSb3V0ZSA9IHRoaXMucm91dGVyLmNvbmZpZy5maW5kKHIgPT4gci5wYXRoID09PSAnKionKTtcbiAgICB0aGlzLnJvdXRlci5yZXNldENvbmZpZyhcbiAgICAgIFtcbiAgICAgICAgLi4udGhpcy5yb3V0ZXIuY29uZmlnLmZpbHRlcihyID0+IHIucGF0aCAhPT0gJyoqJyksXG4gICAgICAgIC4uLnJvdXRlcy5tYXAoKHI6IFJvdXRlKSA9PiB0aGlzLmNvbnZlcnRSb3V0ZSh0aGlzLnJvdXRlci5jb25maWcsIHIpKSxcbiAgICAgICAgZW1wdHlSb3V0ZVxuICAgICAgXS5maWx0ZXIoQm9vbGVhbilcbiAgICApO1xuICB9XG5cbiAgcHJpdmF0ZSBjb252ZXJ0Um91dGUoaW5pdGlhbENvbmZpZywgcm91dGU6IFJvdXRlKSB7XG4gICAgaWYgKHJvdXRlLmNvbnRleHQpIHtcbiAgICAgIGluaXRpYWxDb25maWcuZm9yRWFjaCgocjogUm91dGUpID0+IHtcbiAgICAgICAgaWYgKHIuZGF0YSAmJiByLmRhdGEuY29udGV4dCA9PT0gcm91dGUuY29udGV4dCkge1xuICAgICAgICAgIHIuY2hpbGRyZW4gPSBbcm91dGUsIC4uLihyLmNoaWxkcmVuIHx8IFtdKV07XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICByZXR1cm4gcm91dGU7XG4gIH1cblxuICBwcml2YXRlIHJlc29sdmVSb3V0ZXJGb3JDaGlsZFJvdXRlcyhtb2R1bGVSZWY6IE5nTW9kdWxlUmVmPGFueT4sIHJlbW90ZU5nTW9kdWxlOiBhbnkpIHtcbiAgICAvLyBOT1RFOiBzdG9sZW4gZnJvbSBsYXp5IGxvYWRlZCByb3V0ZXMgZnJvbSBBbmd1bGFyIGl0c2VsZi5cbiAgICAvLyBodHRwczovL2dpdGh1Yi5jb20vYW5ndWxhci9hbmd1bGFyL2Jsb2IvZGE1ODgwMWY5NWM2NmMyMDFlMzMyMTg5YWYyNTcwMmJkZDcyMmYzZi9wYWNrYWdlcy9yb3V0ZXIvc3JjL3JvdXRlcl9jb25maWdfbG9hZGVyLnRzI0wxMDMtTDEwOFxuICAgIGNvbnN0IHJhd1JvdXRlcyA9IGZsYXR0ZW4obW9kdWxlUmVmLmluamVjdG9yLmdldChST1VURVMsIFtdLCB7IHNlbGY6IHRydWUsIG9wdGlvbmFsOiB0cnVlIH0pKTtcblxuICAgIGlmIChyYXdSb3V0ZXMubGVuZ3RoID4gMCkge1xuICAgICAgY29uc3Qgcm91dGVXaXRoSW5qZWN0b3IgPSByYXdSb3V0ZXMubWFwKHJvdXRlID0+IHtcbiAgICAgICAgcm91dGUucHJvdmlkZXJzID0gW2ltcG9ydFByb3ZpZGVyc0Zyb20ocmVtb3RlTmdNb2R1bGUpXTtcbiAgICAgICAgcmV0dXJuIHJvdXRlO1xuICAgICAgfSk7XG4gICAgICB0aGlzLmFkZFJvdXRlKHJvdXRlV2l0aEluamVjdG9yKTtcbiAgICB9XG4gIH1cbn1cbiJdfQ==
169
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm91dGVyLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9jb3JlL3JvdXRlci9yb3V0ZXIuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsbUJBQW1CLEVBQ25CLFVBQVUsRUFDVixjQUFjLEVBQ2QsUUFBUSxFQUVULE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxNQUFNLEVBQVUsTUFBTSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFFekQsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLFFBQVEsQ0FBQztBQUVqQyxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxFQUFFLFdBQVcsRUFBRSxJQUFJLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNqRixPQUFPLEVBRUwsb0NBQW9DLEVBQ3BDLGVBQWUsRUFHZixnQkFBZ0IsRUFDaEIsV0FBVyxFQUNYLGFBQWEsRUFDZCxNQUFNLDJCQUEyQixDQUFDO0FBQ25DLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUMzRCxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxZQUFZLENBQUM7QUFDbkQsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDOUQsT0FBTyxFQUF1QixXQUFXLEVBQXdCLE1BQU0sZ0JBQWdCLENBQUM7Ozs7OztBQXNCeEY7OztHQUdHO0FBQ0gsTUFBTSxDQUFDLE1BQU0sVUFBVSxHQUFHLElBQUksY0FBYyxDQUFlLFlBQVksQ0FBQyxDQUFDO0FBRXpFOzs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQW9CRztBQUNILE1BQU0sVUFBVSxTQUFTLENBQUMsS0FBNkIsRUFBRSxPQUFxQztJQUM1RixPQUFPLFdBQVcsQ0FBUSxLQUFLLEVBQUUsVUFBVSxFQUFFLE9BQU8sQ0FBQyxDQUFDO0FBQ3hELENBQUM7QUFFRDs7O0dBR0c7QUFJSCxNQUFNLE9BQU8sYUFBYyxTQUFRLG9DQUEyQztJQUc1RSxZQUNFLFlBQXNCLEVBQ2YsTUFBYyxFQUNiLG1CQUF3QyxFQUNoRCxPQUE4QixFQUM5QixPQUF1QjtRQUV2QixLQUFLLENBQUMsWUFBWSxFQUFFLE9BQU8sQ0FBQyxDQUFDO1FBTHRCLFdBQU0sR0FBTixNQUFNLENBQVE7UUFDYix3QkFBbUIsR0FBbkIsbUJBQW1CLENBQXFCO1FBTHpDLFVBQUssR0FBRyxJQUFJLEdBQUcsRUFBaUIsQ0FBQztRQVV4QyxJQUFJLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQyxvQkFBb0IsRUFBRSxDQUFDO1FBRTFDLHlEQUF5RDtRQUN6RCwrQkFBK0I7UUFDL0IsSUFBSSxDQUFDLE1BQU0sQ0FBQyxTQUFTLENBQUMsQ0FBQyxNQUFlLEVBQUUsRUFBRTtZQUN4QyxNQUFNLFdBQVcsR0FBRyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUMsS0FBWSxFQUFFLEVBQUU7Z0JBQ2pELE1BQU0sSUFBSSxHQUFHLEdBQUcsS0FBSyxDQUFDLE9BQU8sSUFBSSxFQUFFLEdBQUcsS0FBSyxDQUFDLElBQUksRUFBRSxDQUFDO2dCQUNuRCxNQUFNLGNBQWMsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQztnQkFDNUMsSUFBSSxDQUFDLGNBQWMsRUFBRSxDQUFDO29CQUNwQixJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxJQUFJLEVBQUUsS0FBSyxDQUFDLENBQUM7Z0JBQzlCLENBQUM7Z0JBQ0QsT0FBTyxDQUFDLGNBQWMsQ0FBQztZQUN6QixDQUFDLENBQUMsQ0FBQztZQUNILElBQUksQ0FBQyxRQUFRLENBQUMsV0FBVyxDQUFDLENBQUM7UUFDN0IsQ0FBQyxDQUFDLENBQUM7UUFFSCxPQUFPLENBQUMsY0FBYyxDQUFDLFNBQVMsQ0FBQyxDQUFDLEVBQUUsU0FBUyxFQUFFLGNBQWMsRUFBRSxFQUFFLEVBQUU7WUFDakUsSUFBSSxDQUFDLDJCQUEyQixDQUFDLFNBQVMsRUFBRSxjQUFjLENBQUMsQ0FBQztRQUM5RCxDQUFDLENBQUMsQ0FBQztRQUVILGtEQUFrRDtRQUNsRCxzQ0FBc0M7UUFDdEMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxPQUFPLEVBQUUsQ0FBQztZQUNyQixPQUFPLENBQUMsaUJBQWlCO2lCQUN0QixJQUFJLENBQ0gsTUFBTSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxFQUNwQixJQUFJLENBQUMsQ0FBQyxDQUFDLENBQ1I7aUJBQ0EsU0FBUyxDQUFDLEdBQUcsRUFBRTtnQkFDZCxJQUFJLENBQUMsTUFBTSxDQUFDLGlCQUFpQixFQUFFLENBQUM7WUFDbEMsQ0FBQyxDQUFDLENBQUM7UUFDUCxDQUFDO0lBQ0gsQ0FBQztJQUVEOztPQUVHO0lBQ0gsT0FBTztRQUNMLEtBQUssQ0FBQyxPQUFPLEVBQUUsQ0FBQztRQUNoQixJQUFJLENBQUMsbUJBQW1CLENBQUMsY0FBYyxFQUFFLENBQUM7SUFDNUMsQ0FBQztJQUVEOzs7T0FHRztJQUNILFFBQVEsQ0FBQyxLQUFzQjtRQUM3QixJQUFJLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO0lBQ3pELENBQUM7SUFFRDs7Ozs7T0FLRztJQUNILE9BQU8sQ0FBQyxhQUE2QixFQUFFLE1BQU0sR0FBRyxJQUFJO1FBQ2xELElBQUksYUFBYSxDQUFDLGlCQUFpQixJQUFJLGFBQWEsQ0FBQyxrQkFBa0IsRUFBRSxDQUFDO1lBQ3hFLE9BQU8sR0FBRyxNQUFNLEdBQUcsV0FBVyxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsS0FBSyxFQUFFLGFBQWEsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDO1FBQzFFLENBQUM7UUFDRCxPQUFPLEdBQUcsTUFBTSxHQUFHLFdBQVcsQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLEtBQUssRUFBRSxhQUFhLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQztJQUMzRSxDQUFDO0lBRVMsb0JBQW9CO1FBQzVCLE9BQU8sZUFBZSxDQUFRLElBQUksQ0FBQyxNQUFNLEVBQUUsSUFBSSxDQUFDLFFBQVEsRUFBRTtZQUN4RCxnQkFBZ0IsQ0FBUSxVQUFVLEVBQUUsSUFBSSxDQUFDLFNBQVMsRUFBRSxhQUFhLENBQUMsS0FBSyxDQUFDO1lBQ3hFLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxTQUFTO1NBQ3JCLENBQUMsQ0FBQyxJQUFJLENBQUMsb0JBQW9CLEVBQUUsRUFBRSxXQUFXLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUNsRCxDQUFDO0lBRU8sU0FBUyxDQUFDLE1BQU07UUFDdEIsb0VBQW9FO1FBQ3BFLG9EQUFvRDtRQUNwRCxNQUFNLFVBQVUsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxLQUFLLElBQUksQ0FBQyxDQUFDO1FBQ2pFLE1BQU0saUJBQWlCLEdBQUcsSUFBSSxDQUFDLHdCQUF3QixDQUFDLENBQUMsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU0sRUFBRSxHQUFHLE1BQU0sQ0FBQyxDQUFDLENBQUM7UUFDNUYsSUFBSSxDQUFDLE1BQU0sQ0FBQyxXQUFXLENBQ3JCO1lBQ0UsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxLQUFLLElBQUksQ0FBQztZQUNsRCxHQUFHLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFRLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsaUJBQWlCLEVBQUUsQ0FBQyxDQUFDLENBQUM7WUFDcEUsVUFBVTtTQUNYLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUNsQixDQUFDO0lBQ0osQ0FBQztJQUVPLFlBQVksQ0FBQyxpQkFBeUIsRUFBRSxLQUFZO1FBQzFELElBQUksS0FBSyxDQUFDLE9BQU8sRUFBRSxDQUFDO1lBQ2xCLGlCQUFpQixDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQXVCLEVBQUUsRUFBRTtnQkFDcEQsSUFBSSxDQUFDLENBQUMsV0FBVyxLQUFLLEtBQUssQ0FBQyxPQUFPLEVBQUUsQ0FBQztvQkFDcEMsQ0FBQyxDQUFDLFFBQVEsR0FBRyxDQUFDLEtBQUssRUFBRSxHQUFHLENBQUMsQ0FBQyxDQUFDLFFBQVEsSUFBSSxFQUFFLENBQUMsQ0FBQyxDQUFDO2dCQUM5QyxDQUFDO1lBQ0gsQ0FBQyxDQUFDLENBQUM7WUFDSCxPQUFPO1FBQ1QsQ0FBQztRQUNELE9BQU8sS0FBSyxDQUFDO0lBQ2YsQ0FBQztJQUVPLHdCQUF3QixDQUFDLE1BQWM7UUFDN0MsTUFBTSxNQUFNLEdBQTJCLEVBQUUsQ0FBQztRQUMxQyxNQUFNLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxFQUFFO1lBQ3JCLElBQUssS0FBOEIsQ0FBQyxXQUFXLEVBQUUsQ0FBQztnQkFDaEQsTUFBTSxDQUFDLElBQUksQ0FBQyxLQUE2QixDQUFDLENBQUM7WUFDN0MsQ0FBQztZQUNELElBQUksS0FBSyxDQUFDLFFBQVEsRUFBRSxDQUFDO2dCQUNuQixNQUFNLFdBQVcsR0FBRyxJQUFJLENBQUMsd0JBQXdCLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxDQUFDO2dCQUNsRSxNQUFNLENBQUMsSUFBSSxDQUFDLEdBQUcsV0FBVyxDQUFDLENBQUM7WUFDOUIsQ0FBQztRQUNILENBQUMsQ0FBQyxDQUFDO1FBQ0gsT0FBTyxNQUFNLENBQUM7SUFDaEIsQ0FBQztJQUVPLDJCQUEyQixDQUFDLFNBQTJCLEVBQUUsY0FBbUI7UUFDbEYsNERBQTREO1FBQzVELHlJQUF5STtRQUN6SSxNQUFNLFNBQVMsR0FBRyxPQUFPLENBQUMsU0FBUyxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsTUFBTSxFQUFFLEVBQUUsRUFBRSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRSxDQUFDLENBQUMsQ0FBQztRQUU5RixJQUFJLFNBQVMsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFLENBQUM7WUFDekIsTUFBTSxpQkFBaUIsR0FBRyxTQUFTLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxFQUFFO2dCQUM5QyxLQUFLLENBQUMsU0FBUyxHQUFHLENBQUMsbUJBQW1CLENBQUMsY0FBYyxDQUFDLENBQUMsQ0FBQztnQkFDeEQsT0FBTyxLQUFLLENBQUM7WUFDZixDQUFDLENBQUMsQ0FBQztZQUNILElBQUksQ0FBQyxRQUFRLENBQUMsaUJBQWlCLENBQUMsQ0FBQztRQUNuQyxDQUFDO0lBQ0gsQ0FBQzs4R0FySVUsYUFBYTtrSEFBYixhQUFhLGNBRlosTUFBTTs7MkZBRVAsYUFBYTtrQkFIekIsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBpbXBvcnRQcm92aWRlcnNGcm9tLFxuICBJbmplY3RhYmxlLFxuICBJbmplY3Rpb25Ub2tlbixcbiAgSW5qZWN0b3IsXG4gIE5nTW9kdWxlUmVmXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgUm91dGVyLCBSb3V0ZXMsIFJPVVRFUyB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQgeyBJTWFuYWdlZE9iamVjdCB9IGZyb20gJ0BjOHkvY2xpZW50JztcbmltcG9ydCB7IGZsYXR0ZW4gfSBmcm9tICdsb2Rhc2gnO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgZGlzdGluY3RVbnRpbENoYW5nZWQsIGZpbHRlciwgc2hhcmVSZXBsYXksIHRha2UgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQge1xuICBFeHRlbnNpb25GYWN0b3J5LFxuICBFeHRlbnNpb25Qb2ludFdpdGhvdXRTdGF0ZUZvclBsdWdpbnMsXG4gIGZyb21UcmlnZ2VyT25jZSxcbiAgR2VuZXJpY0hvb2tPcHRpb25zLFxuICBHZW5lcmljSG9va1R5cGUsXG4gIGdldEluamVjdGVkSG9va3MsXG4gIGhvb2tHZW5lcmljLFxuICBJbmplY3Rpb25UeXBlXG59IGZyb20gJy4uL2NvbW1vbi9leHRlbnNpb24taG9va3MnO1xuaW1wb3J0IHsgT3B0aW9uc1NlcnZpY2UgfSBmcm9tICcuLi9jb21tb24vb3B0aW9ucy5zZXJ2aWNlJztcbmltcG9ydCB7IFBsdWdpbnNSZXNvbHZlU2VydmljZSB9IGZyb20gJy4uL3BsdWdpbnMnO1xuaW1wb3J0IHsgQ29udGV4dFJvdXRlU2VydmljZSB9IGZyb20gJy4vY29udGV4dC1yb3V0ZS5zZXJ2aWNlJztcbmltcG9ydCB7IFJvdXRlLCBSb3V0ZUZhY3RvcnksIFZpZXdDb250ZXh0LCBWaWV3Q29udGV4dFJvb3RSb3V0ZSB9IGZyb20gJy4vcm91dGVyLm1vZGVsJztcblxuLyoqXG4gKiBBbiBleHRlbnNpb24gSE9PSyBjYW4gdXNlIGVpdGhlciBhIHB1cmUgdmFsdWU6XG4gKiBgYGB0eXBlc2NyaXB0XG4gKiAgeyBwcm92aWRlOiBIT09LX1gsIHVzZVZhbHVlOiB7IC4uLmhvb2tWYWx1ZSB9LCBtdWx0aTogdHJ1ZSB9XG4gKiBgYGBcbiAqXG4gKiBPciBhbiBhcnJheSB0byBkaXJlY3RseSByZWdpc3RlciBtdWx0aXBsZTpcbiAqIGBgYHR5cGVzY3JpcHRcbiAqICB7IHByb3ZpZGU6IEhPT0tfWCwgdXNlVmFsdWU6IFt7IC4uLmhvb2tWYWx1ZXMgfV0sIG11bHRpOiB0cnVlIH1cbiAqIGBgYFxuICpcbiAqIE9yIGFuIEV4dGVuc2lvbkZhY3Rvcnkgd2hpY2ggYWxsb3dzIHRvIGRlZmluZSBhIGdldCgpIGZ1bmN0aW9uLiBUaGlzIGZ1bmN0aW9uXG4gKiBnZXRzIGNhbGxlZCBvbiBlYWNoIG5hdmlnYXRpb24gd2l0aCB0aGUgY3VycmVudCByb3V0ZSBhbmQgY2FuIHJldHVybiB2YWx1ZXNcbiAqIGFzeW5jIChvYnNlcnZhYmxlIG9yIHByb21pc2UpLlxuICogYGBgdHlwZXNjcmlwdFxuICogIHsgcHJvdmlkZTogSE9PS19YLCB1c2VGYWN0b3J5OiB7IGdldDogKHJvdXRlKSA9PiBkb1NvbWV0aGluZ0FzeW5jKHJvdXRlKSB9LCBtdWx0aTogdHJ1ZSB9XG4gKiBgYGBcbiAqL1xuZXhwb3J0IHR5cGUgUm91dGVFeHRlbnNpb24gPSBSb3V0ZSB8IFJvdXRlW10gfCBFeHRlbnNpb25GYWN0b3J5PFJvdXRlPjtcblxuLyoqXG4gKiBBIGhvb2sgdG8gdXNlIGZvciBNdWx0aSBQcm92aWRlciBleHRlbnNpb24uXG4gKiBAZGVwcmVjYXRlZCBDb25zaWRlciB1c2luZyB0aGUgYGhvb2tSb3V0ZWAgZnVuY3Rpb24gaW5zdGVhZC5cbiAqL1xuZXhwb3J0IGNvbnN0IEhPT0tfUk9VVEUgPSBuZXcgSW5qZWN0aW9uVG9rZW48Um91dGVGYWN0b3J5PignSE9PS19ST1VURScpO1xuXG4vKipcbiAqIFlvdSBjYW4gZWl0aGVyIHByb3ZpZGUgYSBzaW5nbGUgYFJvdXRlYCBhcyBwYXJhbWV0ZXI6XG4gKiBgYGB0eXBlc2NyaXB0XG4gKiAgaG9va1JvdXRlKC4uLilcbiAqIGBgYFxuICpcbiAqIE9yIGFuIGFycmF5IHRvIGRpcmVjdGx5IHJlZ2lzdGVyIG11bHRpcGxlOlxuICogYGBgdHlwZXNjcmlwdFxuICogIGhvb2tSb3V0ZShbLi4uXSlcbiAqIGBgYFxuICpcbiAqIE9yIHlvdSBwcm92aWRlIGFuIFNlcnZpY2UgdGhhdCBpbXBsZW1lbnRzIGBFeHRlbnNpb25GYWN0b3J5PFJvdXRlPmBcbiAqIGBgYHR5cGVzY3JpcHRcbiAqICBleHBvcnQgY2xhc3MgTXlSb3V0ZUZhY3RvcnkgaW1wbGVtZW50cyBFeHRlbnNpb25GYWN0b3J5PFJvdXRlPiB7Li4ufVxuICogIC4uLlxuICogIGhvb2tSb3V0ZShNeVJvdXRlRmFjdG9yeSlcbiAqIGBgYFxuICogQSB0eXBlZCBhbHRlcm5hdGl2ZSB0byBgSE9PS19ST1VURWAuXG4gKiBAcGFyYW0gcm91dGUgVGhlIGBSb3V0ZWAncyBvciBgRXh0ZW5zaW9uRmFjdG9yeWAgdG8gYmUgcHJvdmlkZWQuXG4gKiBAcmV0dXJucyBBbiBgUHJvdmlkZXJgIHRvIGJlIHByb3ZpZGVkIGluIHlvdXIgbW9kdWxlLlxuICovXG5leHBvcnQgZnVuY3Rpb24gaG9va1JvdXRlKHJvdXRlOiBHZW5lcmljSG9va1R5cGU8Um91dGU+LCBvcHRpb25zPzogUGFydGlhbDxHZW5lcmljSG9va09wdGlvbnM+KSB7XG4gIHJldHVybiBob29rR2VuZXJpYzxSb3V0ZT4ocm91dGUsIEhPT0tfUk9VVEUsIG9wdGlvbnMpO1xufVxuXG4vKipcbiAqIEEgc2VydmljZSB3aGljaCBkZWZpbmVzIHJvdXRlcyBmb3IgdGhlIGFwcGxpY2F0aW9uLiBZb3UgY2FuIHVzZVxuICogSE9PS19ST1VURVMgb3IgcGFzc1xuICovXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290J1xufSlcbmV4cG9ydCBjbGFzcyBSb3V0ZXJTZXJ2aWNlIGV4dGVuZHMgRXh0ZW5zaW9uUG9pbnRXaXRob3V0U3RhdGVGb3JQbHVnaW5zPFJvdXRlPiB7XG4gIHJlYWRvbmx5IHN0YXRlID0gbmV3IE1hcDxzdHJpbmcsIFJvdXRlPigpO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHJvb3RJbmplY3RvcjogSW5qZWN0b3IsXG4gICAgcHVibGljIHJvdXRlcjogUm91dGVyLFxuICAgIHByaXZhdGUgY29udGV4dFJvdXRlU2VydmljZTogQ29udGV4dFJvdXRlU2VydmljZSxcbiAgICBwbHVnaW5zOiBQbHVnaW5zUmVzb2x2ZVNlcnZpY2UsXG4gICAgb3B0aW9uczogT3B0aW9uc1NlcnZpY2VcbiAgKSB7XG4gICAgc3VwZXIocm9vdEluamVjdG9yLCBwbHVnaW5zKTtcbiAgICB0aGlzLml0ZW1zJCA9IHRoaXMuc2V0dXBJdGVtc09ic2VydmFibGUoKTtcblxuICAgIC8vIFdlIGFyZSBkb2luZyBhIHNlbGYgc3Vic2NyaXB0aW9uIHRvIGFkZCB0aGUgbmV3IHJvdXRlc1xuICAgIC8vIHRvIHRoZSByb3V0ZXIgY29uZmlndXJhdGlvbi5cbiAgICB0aGlzLml0ZW1zJC5zdWJzY3JpYmUoKHJvdXRlczogUm91dGVbXSkgPT4ge1xuICAgICAgY29uc3QgdG9BZGRSb3V0ZXMgPSByb3V0ZXMuZmlsdGVyKChyb3V0ZTogUm91dGUpID0+IHtcbiAgICAgICAgY29uc3QgcGF0aCA9IGAke3JvdXRlLmNvbnRleHQgfHwgJyd9JHtyb3V0ZS5wYXRofWA7XG4gICAgICAgIGNvbnN0IGlzQWxyZWFkeUFkZGVkID0gdGhpcy5zdGF0ZS5oYXMocGF0aCk7XG4gICAgICAgIGlmICghaXNBbHJlYWR5QWRkZWQpIHtcbiAgICAgICAgICB0aGlzLnN0YXRlLnNldChwYXRoLCByb3V0ZSk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuICFpc0FscmVhZHlBZGRlZDtcbiAgICAgIH0pO1xuICAgICAgdGhpcy5hZGRSb3V0ZSh0b0FkZFJvdXRlcyk7XG4gICAgfSk7XG5cbiAgICBwbHVnaW5zLnBsdWdpbkRldGFpbHMkLnN1YnNjcmliZSgoeyBtb2R1bGVSZWYsIHJlbW90ZU5nTW9kdWxlIH0pID0+IHtcbiAgICAgIHRoaXMucmVzb2x2ZVJvdXRlckZvckNoaWxkUm91dGVzKG1vZHVsZVJlZiwgcmVtb3RlTmdNb2R1bGUpO1xuICAgIH0pO1xuXG4gICAgLy8gb25seSBuZWVkZWQgaW4gY2FzZSBvZiBwdXJlIGFuZ3VsYXIgYXBwbGljYXRpb25cbiAgICAvLyBvdGhlcndpc2UgaGFuZGxlZCBieSBicmlkZ2Ugc2VydmljZVxuICAgIGlmICghb3B0aW9ucy51cGdyYWRlKSB7XG4gICAgICBwbHVnaW5zLmFsbFBsdWdpbnNMb2FkZWQkXG4gICAgICAgIC5waXBlKFxuICAgICAgICAgIGZpbHRlcih0bXAgPT4gISF0bXApLFxuICAgICAgICAgIHRha2UoMSlcbiAgICAgICAgKVxuICAgICAgICAuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgICB0aGlzLnJvdXRlci5pbml0aWFsTmF2aWdhdGlvbigpO1xuICAgICAgICB9KTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogUmVmcmVzaCB0aGUgY3VycmVudCBjb250ZXh0XG4gICAqL1xuICByZWZyZXNoKCkge1xuICAgIHN1cGVyLnJlZnJlc2goKTtcbiAgICB0aGlzLmNvbnRleHRSb3V0ZVNlcnZpY2UucmVmcmVzaENvbnRleHQoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBBZGQgYSBuZXcgcm91dGUgdG8gdGhlIHJvdXRlciBjb25maWd1cmF0aW9uIG9yIGEgY29udGV4dC5cbiAgICogQHBhcmFtIHJvdXRlIFRoZSByb3V0ZSB0byBhZGRcbiAgICovXG4gIGFkZFJvdXRlKHJvdXRlOiBSb3V0ZSB8IFJvdXRlW10pIHtcbiAgICB0aGlzLmFkZFJvdXRlcyhBcnJheS5pc0FycmF5KHJvdXRlKSA/IHJvdXRlIDogW3JvdXRlXSk7XG4gIH1cblxuICAvKipcbiAgICogRGV0ZXJtaW5lcyBpZiB0aGUgZ2l2ZW4gTU8gaXMgYW4gZ3JvdXAgb3IgYW4gZGV2aWNlIGFuZCByZXR1cm5zXG4gICAqIHRoZSBjb3JyZWN0IGhyZWYgdG8gbGluayBjb3JyZWN0bHkgdG8gdGhhdCBNTy5cbiAgICogQHBhcmFtIGdyb3VwT3JEZXZpY2UgVGhlIE1PIG9mIGEgZ3JvdXAgb3IgdGhlIGRldmljZS5cbiAgICogQHBhcmFtIHByZWZpeCBIb3cgc2hvdWxkIHRoZSBsaW5rIGJlIHByZWZpeGVkLlxuICAgKi9cbiAgZ2V0SHJlZihncm91cE9yRGV2aWNlOiBJTWFuYWdlZE9iamVjdCwgcHJlZml4ID0gJyMvJyk6IHN0cmluZyB7XG4gICAgaWYgKGdyb3VwT3JEZXZpY2UuYzh5X0lzRGV2aWNlR3JvdXAgfHwgZ3JvdXBPckRldmljZS5jOHlfSXNEeW5hbWljR3JvdXApIHtcbiAgICAgIHJldHVybiBgJHtwcmVmaXh9JHtWaWV3Q29udGV4dC5Hcm91cC5yZXBsYWNlKCc6aWQnLCBncm91cE9yRGV2aWNlLmlkKX1gO1xuICAgIH1cbiAgICByZXR1cm4gYCR7cHJlZml4fSR7Vmlld0NvbnRleHQuRGV2aWNlLnJlcGxhY2UoJzppZCcsIGdyb3VwT3JEZXZpY2UuaWQpfWA7XG4gIH1cblxuICBwcm90ZWN0ZWQgc2V0dXBJdGVtc09ic2VydmFibGUoKTogT2JzZXJ2YWJsZTxSb3V0ZVtdPiB7XG4gICAgcmV0dXJuIGZyb21UcmlnZ2VyT25jZTxSb3V0ZT4odGhpcy5yb3V0ZXIsIHRoaXMucmVmcmVzaCQsIFtcbiAgICAgIGdldEluamVjdGVkSG9va3M8Um91dGU+KEhPT0tfUk9VVEUsIHRoaXMuaW5qZWN0b3JzLCBJbmplY3Rpb25UeXBlLlJPVVRFKSxcbiAgICAgICgpID0+IHRoaXMuZmFjdG9yaWVzXG4gICAgXSkucGlwZShkaXN0aW5jdFVudGlsQ2hhbmdlZCgpLCBzaGFyZVJlcGxheSgxKSk7XG4gIH1cblxuICBwcml2YXRlIGFkZFJvdXRlcyhyb3V0ZXMpIHtcbiAgICAvLyBFbXB0eSByb3V0ZSBuZWVkcyB0byBiZSBsYXN0IGFzIG9mIG5hdmlnYXRpb24gdG8gYW5ndWxhcmpzIHJvdXRlc1xuICAgIC8vIGlmICoqIHJvdXRlIGhpdCwgdGhlIGFuZ3VsYXJqcyByb3V0ZXMgYXJlIGxvYWRlZC5cbiAgICBjb25zdCBlbXB0eVJvdXRlID0gdGhpcy5yb3V0ZXIuY29uZmlnLmZpbmQociA9PiByLnBhdGggPT09ICcqKicpO1xuICAgIGNvbnN0IHJvb3RDb250ZXh0Um91dGVzID0gdGhpcy5maW5kQWxsUm9vdENvbnRleHRSb3V0ZXMoWy4uLnRoaXMucm91dGVyLmNvbmZpZywgLi4ucm91dGVzXSk7XG4gICAgdGhpcy5yb3V0ZXIucmVzZXRDb25maWcoXG4gICAgICBbXG4gICAgICAgIC4uLnRoaXMucm91dGVyLmNvbmZpZy5maWx0ZXIociA9PiByLnBhdGggIT09ICcqKicpLFxuICAgICAgICAuLi5yb3V0ZXMubWFwKChyOiBSb3V0ZSkgPT4gdGhpcy5jb252ZXJ0Um91dGUocm9vdENvbnRleHRSb3V0ZXMsIHIpKSxcbiAgICAgICAgZW1wdHlSb3V0ZVxuICAgICAgXS5maWx0ZXIoQm9vbGVhbilcbiAgICApO1xuICB9XG5cbiAgcHJpdmF0ZSBjb252ZXJ0Um91dGUocm9vdENvbnRleHRSb3V0ZXM6IFJvdXRlcywgcm91dGU6IFJvdXRlKSB7XG4gICAgaWYgKHJvdXRlLmNvbnRleHQpIHtcbiAgICAgIHJvb3RDb250ZXh0Um91dGVzLmZvckVhY2goKHI6IFZpZXdDb250ZXh0Um9vdFJvdXRlKSA9PiB7XG4gICAgICAgIGlmIChyLnJvb3RDb250ZXh0ID09PSByb3V0ZS5jb250ZXh0KSB7XG4gICAgICAgICAgci5jaGlsZHJlbiA9IFtyb3V0ZSwgLi4uKHIuY2hpbGRyZW4gfHwgW10pXTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIHJldHVybiByb3V0ZTtcbiAgfVxuXG4gIHByaXZhdGUgZmluZEFsbFJvb3RDb250ZXh0Um91dGVzKHJvdXRlczogUm91dGVzKTogVmlld0NvbnRleHRSb290Um91dGVbXSB7XG4gICAgY29uc3QgcmVzdWx0OiBWaWV3Q29udGV4dFJvb3RSb3V0ZVtdID0gW107XG4gICAgcm91dGVzLmZvckVhY2gocm91dGUgPT4ge1xuICAgICAgaWYgKChyb3V0ZSBhcyBWaWV3Q29udGV4dFJvb3RSb3V0ZSkucm9vdENvbnRleHQpIHtcbiAgICAgICAgcmVzdWx0LnB1c2gocm91dGUgYXMgVmlld0NvbnRleHRSb290Um91dGUpO1xuICAgICAgfVxuICAgICAgaWYgKHJvdXRlLmNoaWxkcmVuKSB7XG4gICAgICAgIGNvbnN0IGNoaWxkUm91dGVzID0gdGhpcy5maW5kQWxsUm9vdENvbnRleHRSb3V0ZXMocm91dGUuY2hpbGRyZW4pO1xuICAgICAgICByZXN1bHQucHVzaCguLi5jaGlsZFJvdXRlcyk7XG4gICAgICB9XG4gICAgfSk7XG4gICAgcmV0dXJuIHJlc3VsdDtcbiAgfVxuXG4gIHByaXZhdGUgcmVzb2x2ZVJvdXRlckZvckNoaWxkUm91dGVzKG1vZHVsZVJlZjogTmdNb2R1bGVSZWY8YW55PiwgcmVtb3RlTmdNb2R1bGU6IGFueSkge1xuICAgIC8vIE5PVEU6IHN0b2xlbiBmcm9tIGxhenkgbG9hZGVkIHJvdXRlcyBmcm9tIEFuZ3VsYXIgaXRzZWxmLlxuICAgIC8vIGh0dHBzOi8vZ2l0aHViLmNvbS9hbmd1bGFyL2FuZ3VsYXIvYmxvYi9kYTU4ODAxZjk1YzY2YzIwMWUzMzIxODlhZjI1NzAyYmRkNzIyZjNmL3BhY2thZ2VzL3JvdXRlci9zcmMvcm91dGVyX2NvbmZpZ19sb2FkZXIudHMjTDEwMy1MMTA4XG4gICAgY29uc3QgcmF3Um91dGVzID0gZmxhdHRlbihtb2R1bGVSZWYuaW5qZWN0b3IuZ2V0KFJPVVRFUywgW10sIHsgc2VsZjogdHJ1ZSwgb3B0aW9uYWw6IHRydWUgfSkpO1xuXG4gICAgaWYgKHJhd1JvdXRlcy5sZW5ndGggPiAwKSB7XG4gICAgICBjb25zdCByb3V0ZVdpdGhJbmplY3RvciA9IHJhd1JvdXRlcy5tYXAocm91dGUgPT4ge1xuICAgICAgICByb3V0ZS5wcm92aWRlcnMgPSBbaW1wb3J0UHJvdmlkZXJzRnJvbShyZW1vdGVOZ01vZHVsZSldO1xuICAgICAgICByZXR1cm4gcm91dGU7XG4gICAgICB9KTtcbiAgICAgIHRoaXMuYWRkUm91dGUocm91dGVXaXRoSW5qZWN0b3IpO1xuICAgIH1cbiAgfVxufVxuIl19