@ieeesa-npm/presentation 0.14.4 → 0.14.6

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.
@@ -239,7 +239,7 @@
239
239
  },
240
240
  "breadcrumb": {
241
241
  "label": {
242
- "dashboard": "Dashboard"
242
+ "initial": "Dashboard"
243
243
  }
244
244
  },
245
245
  "loader": {
@@ -2,7 +2,7 @@ import { Component, Input, ViewEncapsulation } from '@angular/core';
2
2
  import { CommonModule } from '@angular/common';
3
3
  import { Subject } from 'rxjs';
4
4
  import { filter, takeUntil } from 'rxjs/operators';
5
- import { NavigationEnd, PRIMARY_OUTLET, RouterModule, } from '@angular/router';
5
+ import { NavigationEnd, PRIMARY_OUTLET, RouterModule } from '@angular/router';
6
6
  import * as screenTexts from '../../assets/constants.json';
7
7
  import * as i0 from "@angular/core";
8
8
  import * as i1 from "@angular/router";
@@ -18,6 +18,7 @@ export class BreadcrumbComponent {
18
18
  this.router = router;
19
19
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
20
20
  this.breadcrumbTexts = screenTexts;
21
+ this.rootParentCount = 0;
21
22
  /**
22
23
  * Initial route for the breadcrumb component.
23
24
  * @type {string}
@@ -28,10 +29,10 @@ export class BreadcrumbComponent {
28
29
  /**
29
30
  * Initial label for the breadcrumb component.
30
31
  * @type {string}
31
- * @default breadcrumbTexts?.breadcrumb?.label?.dashboard
32
+ * @default breadcrumbTexts?.breadcrumb?.label?.initial
32
33
  * @memberof BreadcrumbComponent
33
34
  */
34
- this.breadcrumbInitialRouteLabel = this.breadcrumbTexts?.breadcrumb?.label?.dashboard;
35
+ this.breadcrumbInitialRouteLabel = this.breadcrumbTexts?.breadcrumb?.label?.initial;
35
36
  this.destroy$ = new Subject();
36
37
  this.breadcrumbs = [];
37
38
  this.setRouteData();
@@ -41,10 +42,12 @@ export class BreadcrumbComponent {
41
42
  * @memberof BreadcrumbComponent
42
43
  */
43
44
  setRouteData() {
44
- this.router?.events?.pipe(filter((event) => event instanceof NavigationEnd), takeUntil(this.destroy$))
45
+ this.router?.events
46
+ ?.pipe(filter((event) => event instanceof NavigationEnd), takeUntil(this.destroy$))
45
47
  // eslint-disable-next-line no-unused-vars, @typescript-eslint/no-unused-vars
46
- ?.subscribe((event) => {
48
+ ?.subscribe(() => {
47
49
  const data = this.activatedRoute?.root;
50
+ this.rootParentCount = 0;
48
51
  this.breadcrumbs = this.getBreadcrumbs(data);
49
52
  if (this.breadcrumbs[this.breadcrumbs?.length - 1]?.label === null)
50
53
  this.breadcrumbs?.pop();
@@ -65,6 +68,7 @@ export class BreadcrumbComponent {
65
68
  const ROUTE_DATA_BREADCRUMB = 'breadcrumb';
66
69
  const children = route?.children;
67
70
  if (children?.length === 0) {
71
+ this.rootParentCount = 0;
68
72
  return breadcrumbs;
69
73
  }
70
74
  if (children) {
@@ -77,9 +81,19 @@ export class BreadcrumbComponent {
77
81
  if (!child?.snapshot?.data?.hasOwnProperty(ROUTE_DATA_BREADCRUMB)) {
78
82
  return this.getBreadcrumbs(child, url, breadcrumbs);
79
83
  }
80
- const routeURL = child?.snapshot?.url
81
- .map((segment) => segment?.path)
82
- .join('/');
84
+ let routeURL;
85
+ if (this.rootParentCount === 0 &&
86
+ child?.snapshot?.parent?.url?.length) {
87
+ this.rootParentCount++;
88
+ routeURL = child?.snapshot?.parent?.url
89
+ .map((segment) => segment?.path)
90
+ .join('/');
91
+ }
92
+ else {
93
+ routeURL = child?.snapshot?.url
94
+ .map((segment) => segment?.path)
95
+ .join('/');
96
+ }
83
97
  url += `/${routeURL}`;
84
98
  const breadcrumb = {
85
99
  label: child?.snapshot?.data[ROUTE_DATA_BREADCRUMB],
@@ -111,4 +125,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
111
125
  }], breadcrumbInitialRouteLabel: [{
112
126
  type: Input
113
127
  }] } });
114
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnJlYWRjcnVtYi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9wcmVzZW50YXRpb24vc3JjL2xpYi9jb21wb25lbnRzL2JyZWFkY3J1bWIvYnJlYWRjcnVtYi5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9wcmVzZW50YXRpb24vc3JjL2xpYi9jb21wb25lbnRzL2JyZWFkY3J1bWIvYnJlYWRjcnVtYi5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBYSxpQkFBaUIsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMvRSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUMvQixPQUFPLEVBQUUsTUFBTSxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ25ELE9BQU8sRUFFTCxhQUFhLEVBQ2IsY0FBYyxFQUVkLFlBQVksR0FDYixNQUFNLGlCQUFpQixDQUFDO0FBQ3pCLE9BQU8sS0FBSyxXQUFXLE1BQU0sNkJBQTZCLENBQUM7Ozs7QUFJM0Q7OztHQUdHO0FBU0gsTUFBTSxPQUFPLG1CQUFtQjtJQW1COUIsMENBQTBDO0lBQzFDLFlBQW9CLGNBQThCLEVBQVUsTUFBYztRQUF0RCxtQkFBYyxHQUFkLGNBQWMsQ0FBZ0I7UUFBVSxXQUFNLEdBQU4sTUFBTSxDQUFRO1FBbkIxRSw4REFBOEQ7UUFDOUQsb0JBQWUsR0FBUSxXQUFXLENBQUM7UUFDbkM7Ozs7O1dBS0c7UUFDTSwyQkFBc0IsR0FBRyxHQUFHLENBQUM7UUFDdEM7Ozs7O1dBS0c7UUFDTSxnQ0FBMkIsR0FBRyxJQUFJLENBQUMsZUFBZSxFQUFFLFVBQVUsRUFBRSxLQUFLLEVBQUUsU0FBUyxDQUFDO1FBRTFGLGFBQVEs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QUt6QixtQkFBbUI7a0JBUi9CLFNBQVM7K0JBQ0UsbUJBQW1CLGNBQ2pCLElBQUksV0FDUCxDQUFDLFlBQVksRUFBRSxZQUFZLENBQUMsaUJBR3RCLGlCQUFpQixDQUFDLElBQUk7MEhBVzVCLHNCQUFzQjtzQkFBOUIsS0FBSztnQkFPRywyQkFBMkI7c0JBQW5DLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIElucHV0LCBPbkRlc3Ryb3ksIFZpZXdFbmNhcHN1bGF0aW9uIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XHJcbmltcG9ydCB7IFN1YmplY3QgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgZmlsdGVyLCB0YWtlVW50aWwgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XHJcbmltcG9ydCB7XHJcbiAgQWN0aXZhdGVkUm91dGUsXHJcbiAgTmF2aWdhdGlvbkVuZCxcclxuICBQUklNQVJZX09VVExFVCxcclxuICBSb3V0ZXIsXHJcbiAgUm91dGVyTW9kdWxlLFxyXG59IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XHJcbmltcG9ydCAqIGFzIHNjcmVlblRleHRzIGZyb20gJy4uLy4uL2Fzc2V0cy9jb25zdGFudHMuanNvbic7XHJcbmltcG9ydCB7IEJyZWFkY3J1bWIgfSBmcm9tICcuLi8uLi9tb2RlbHMvYnJlYWRjcnVtYi5tb2RlbCc7XHJcblxyXG5cclxuLyoqXHJcbiAqIFJldXNhYmxlIGJyZWFkY3J1bWIgY29tcG9uZW50IGZvciBkaXNwbGF5aW5nIGFuZCBuYXZpZ2F0aW5nIHRocm91Z2ggYSBoaWVyYXJjaHkgb2YgcGFnZXMuXHJcbiAqIEBjbGFzcyBCcmVhZGNydW1iQ29tcG9uZW50XHJcbiAqL1xyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2llZWVzYS1icmVhZGNydW1iJyxcclxuICBzdGFuZGFsb25lOiB0cnVlLFxyXG4gIGltcG9ydHM6IFtDb21tb25Nb2R1bGUsIFJvdXRlck1vZHVsZV0sXHJcbiAgdGVtcGxhdGVVcmw6ICcuL2JyZWFkY3J1bWIuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL2JyZWFkY3J1bWIuY29tcG9uZW50LnNjc3MnXSxcclxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgQnJlYWRjcnVtYkNvbXBvbmVudCBpbXBsZW1lbnRzIE9uRGVzdHJveSB7XHJcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnlcclxuICBicmVhZGNydW1iVGV4dHM6IGFueSA9IHNjcmVlblRleHRzO1xyXG4gIC8qKlxyXG4gICAqIEluaXRpYWwgcm91dGUgZm9yIHRoZSBicmVhZGNydW1iIGNvbXBvbmVudC5cclxuICAgKiBAdHlwZSB7c3RyaW5nfVxyXG4gICAqIEBkZWZhdWx0ICcvJ1xyXG4gICAqIEBtZW1iZXJvZiBCcmVhZGNydW1iQ29tcG9uZW50XHJcbiAgICovXHJcbiAgQElucHV0KCkgYnJlYWRjcnVtYkluaXRpYWxSb3V0ZSA9ICcvJztcclxuICAvKipcclxuICAgKiBJbml0aWFsIGxhYmVsIGZvciB0aGUgYnJlYWRjcnVtYiBjb21wb25lbnQuXHJcbiAgICogQHR5cGUge3N0cmluZ31cclxuICAgKiBAZGVmYXVsdCBicmVhZGNydW1iVGV4dHM/LmJyZWFkY3J1bWI/LmxhYmVsPy5kYXNoYm9hcmRcclxuICAgKiBAbWVtYmVyb2YgQnJlYWRjcnVtYkNvbXBvbmVudFxyXG4gICAqL1xyXG4gIEBJbnB1dCgpIGJyZWFkY3J1bWJJbml0aWFsUm91dGVMYWJlbCA9IHRoaXMuYnJlYWRjcnVtYlRleHRzPy5icmVhZGNydW1iPy5sYWJlbD8uZGFzaGJvYXJkO1xyXG4gIGJyZWFkY3J1bWJzITogQnJlYWRjcnVtYltdO1xyXG4gIGRlc3Ryb3kkOiBTdWJqZWN0PGJvb2xlYW4+ID0gbmV3IFN1YmplY3Q8Ym9vbGVhbj4oKTtcclxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tdW51c2VkLXZhcnNcclxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGFjdGl2YXRlZFJvdXRlOiBBY3RpdmF0ZWRSb3V0ZSwgcHJpdmF0ZSByb3V0ZXI6IFJvdXRlcikge1xyXG4gICAgdGhpcy5icmVhZGNydW1icyA9IFtdO1xyXG4gICAgdGhpcy5zZXRSb3V0ZURhdGEoKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFNldHMgdXAgdGhlIHN1YnNjcmlwdGlvbiB0byByb3V0ZXIgZXZlbnRzIHRvIHVwZGF0ZSBicmVhZGNydW1icy5cclxuICAgKiBAbWVtYmVyb2YgQnJlYWRjcnVtYkNvbXBvbmVudFxyXG4gICAqL1xyXG4gIHNldFJvdXRlRGF0YSgpe1xyXG4gICAgdGhpcy5yb3V0ZXI/LmV2ZW50cz8ucGlwZShcclxuICAgICAgZmlsdGVyKChldmVudCkgPT4gZXZlbnQgaW5zdGFuY2VvZiBOYXZpZ2F0aW9uRW5kKSxcclxuICAgICAgdGFrZVVudGlsKHRoaXMuZGVzdHJveSQpXHJcbiAgICApXHJcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tdW51c2VkLXZhcnMsIEB0eXBlc2NyaXB0LWVzbGludC9uby11bnVzZWQtdmFyc1xyXG4gICAgPy5zdWJzY3JpYmUoKGV2ZW50KSA9PiB7XHJcbiAgICAgIGNvbnN0IGRhdGEgPSB0aGlzLmFjdGl2YXRlZFJvdXRlPy5yb290O1xyXG4gICAgICB0aGlzLmJyZWFkY3J1bWJzID0gdGhpcy5nZXRCcmVhZGNydW1icyhkYXRhKTtcclxuICAgICAgaWYgKHRoaXMuYnJlYWRjcnVtYnNbdGhpcy5icmVhZGNydW1icz8ubGVuZ3RoIC0gMV0/LmxhYmVsID09PSBudWxsKVxyXG4gICAgICAgIHRoaXMuYnJlYWRjcnVtYnM/LnBvcCgpO1xyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBSZWN1cnNpdmVseSBnZXRzIHRoZSBicmVhZGNydW1iIGl0ZW1zIGZvciB0aGUgZ2l2ZW4gcm91dGUuXHJcbiAgICogQHBhcmFtIHtBY3RpdmF0ZWRSb3V0ZX0gcm91dGUgLSBUaGUgYWN0aXZhdGVkIHJvdXRlLlxyXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBbdXJsPScnXSAtIFRoZSBjdXJyZW50IFVSTC5cclxuICAgKiBAcGFyYW0ge0JyZWFkY3J1bWJbXX0gW2JyZWFkY3J1bWJzPVtdXSAtIFRoZSBjdXJyZW50IGJyZWFkY3J1bWIgaXRlbXMuXHJcbiAgICogQHJldHVybiB7QnJlYWRjcnVtYltdfSAtIFRoZSBhcnJheSBvZiBicmVhZGNydW1iIGl0ZW1zLlxyXG4gICAqIEBtZW1iZXJvZiBCcmVhZGNydW1iQ29tcG9uZW50XHJcbiAgICovXHJcbiAgZ2V0QnJlYWRjcnVtYnMoXHJcbiAgICByb3V0ZTogQWN0aXZhdGVkUm91dGUsXHJcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWluZmVycmFibGUtdHlwZXNcclxuICAgIHVybDogc3RyaW5nID0gJycsXHJcbiAgICBicmVhZGNydW1iczogQnJlYWRjcnVtYltdID0gW11cclxuICApOiBCcmVhZGNydW1iW10ge1xyXG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1pbmZlcnJhYmxlLXR5cGVzXHJcbiAgICBjb25zdCBST1VURV9EQVRBX0JSRUFEQ1JVTUI6IHN0cmluZyA9ICdicmVhZGNydW1iJztcclxuICAgIGNvbnN0IGNoaWxkcmVuOiBBY3RpdmF0ZWRSb3V0ZVtdID0gcm91dGU/LmNoaWxkcmVuO1xyXG5cclxuICAgIGlmIChjaGlsZHJlbj8ubGVuZ3RoID09PSAwKSB7XHJcbiAgICAgIHJldHVybiBicmVhZGNydW1icztcclxuICAgIH1cclxuICAgIGlmIChjaGlsZHJlbikge1xyXG4gICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgcHJlZmVyLWNvbnN0XHJcbiAgICAgIGZvciAobGV0IGNoaWxkIG9mIGNoaWxkcmVuKSB7XHJcbiAgICAgICAgaWYgKGNoaWxkPy5vdXRsZXQgIT09IFBSSU1BUllfT1VUTEVUKSB7XHJcbiAgICAgICAgICBjb250aW51ZTtcclxuICAgICAgICB9XHJcbiAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXByb3RvdHlwZS1idWlsdGluc1xyXG4gICAgICAgIGlmICghY2hpbGQ/LnNuYXBzaG90Py5kYXRhPy5oYXNPd25Qcm9wZXJ0eShST1VURV9EQVRBX0JSRUFEQ1JVTUIpKSB7XHJcbiAgICAgICAgICByZXR1cm4gdGhpcy5nZXRCcmVhZGNydW1icyhjaGlsZCwgdXJsLCBicmVhZGNydW1icyk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGNvbnN0IHJvdXRlVVJMOiBzdHJpbmcgPSBjaGlsZD8uc25hcHNob3Q/LnVybFxyXG4gICAgICAgICAgLm1hcCgoc2VnbWVudCkgPT4gc2VnbWVudD8ucGF0aClcclxuICAgICAgICAgIC5qb2luKCcvJyk7XHJcbiAgICAgICAgdXJsICs9IGAvJHtyb3V0ZVVSTH1gO1xyXG4gICAgICAgIGNvbnN0IGJyZWFkY3J1bWI6IEJyZWFkY3J1bWIgPSB7XHJcbiAgICAgICAgICBsYWJlbDogY2hpbGQ/LnNuYXBzaG90Py5kYXRhW1JPVVRFX0RBVEFfQlJFQURDUlVNQl0sXHJcbiAgICAgICAgICBwYXJhbXM6IGNoaWxkPy5zbmFwc2hvdD8ucGFyYW1zLFxyXG4gICAgICAgICAgdXJsOiB1cmwsXHJcbiAgICAgICAgfTtcclxuICAgICAgICBicmVhZGNydW1icz8ucHVzaChicmVhZGNydW1iKTtcclxuICAgICAgICByZXR1cm4gdGhpcy5nZXRCcmVhZGNydW1icyhjaGlsZCwgdXJsLCBicmVhZGNydW1icyk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIHJldHVybiBicmVhZGNydW1icztcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIE5nT25EZXN0cm95IHBlcmZvcm1zIG5lY2Vzc2FyeSBjbGVhbnVwIHRhc2tzLCBzdWNoIGFzIHVuc3Vic2NyaWJpbmcgZnJvbSBzdWJzY3JpcHRpb24gd2hlbiB0aGUgY29tcG9uZW50IGlzIGJlaW5nIGRlc3Ryb3llZC5cclxuICAgKiBAbWVtYmVyb2YgQnJlYWRjcnVtYkNvbXBvbmVudFxyXG4gICAqL1xyXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xyXG4gICAgdGhpcy5kZXN0cm95JC5uZXh0KHRydWUpO1xyXG4gICAgdGhpcy5kZXN0cm95JC51bnN1YnNjcmliZSgpO1xyXG4gIH1cclxufVxyXG4iLCI8dWwgY2xhc3M9XCJpZWVlc2EtYnJlYWRjcnVtYiBicmVhZGNydW1iXCI+XHJcbiAgPGxpPlxyXG4gICAgPGEgW3JvdXRlckxpbmtdPVwiYnJlYWRjcnVtYkluaXRpYWxSb3V0ZVwiIGNsYXNzPVwiaWVlZXNhLWJvZHktc20tMTQgdGV4dC1kZWNvcmF0aW9uLW5vbmVcIlxyXG4gICAgICA+e3sgYnJlYWRjcnVtYkluaXRpYWxSb3V0ZUxhYmVsIH19XHJcbiAgICA8L2E+XHJcbiAgPC9saT5cclxuICA8bGkgKm5nRm9yPVwibGV0IGJyZWFkY3J1bWIgb2YgYnJlYWRjcnVtYnNcIj5cclxuICAgIDxhXHJcbiAgICAgIFtyb3V0ZXJMaW5rXT1cIlticmVhZGNydW1iPy51cmwsIGJyZWFkY3J1bWI/LnBhcmFtc11cIlxyXG4gICAgICBjbGFzcz1cImllZWVzYS1ib2R5LXNtLTE0IHRleHQtZGVjb3JhdGlvbi1ub25lXCJcclxuICAgICAgPnt7IGJyZWFkY3J1bWIubGFiZWwgfX1cclxuICAgIDwvYT5cclxuICA8L2xpPlxyXG48L3VsPiJdfQ==
128
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnJlYWRjcnVtYi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9wcmVzZW50YXRpb24vc3JjL2xpYi9jb21wb25lbnRzL2JyZWFkY3J1bWIvYnJlYWRjcnVtYi5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9wcmVzZW50YXRpb24vc3JjL2xpYi9jb21wb25lbnRzL2JyZWFkY3J1bWIvYnJlYWRjcnVtYi5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBYSxpQkFBaUIsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMvRSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUMvQixPQUFPLEVBQUUsTUFBTSxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ25ELE9BQU8sRUFFTCxhQUFhLEVBQ2IsY0FBYyxFQUVkLFlBQVksRUFFYixNQUFNLGlCQUFpQixDQUFDO0FBQ3pCLE9BQU8sS0FBSyxXQUFXLE1BQU0sNkJBQTZCLENBQUM7Ozs7QUFHM0Q7OztHQUdHO0FBU0gsTUFBTSxPQUFPLG1CQUFtQjtJQXFCOUIsMENBQTBDO0lBQzFDLFlBQW9CLGNBQThCLEVBQVUsTUFBYztRQUF0RCxtQkFBYyxHQUFkLGNBQWMsQ0FBZ0I7UUFBVSxXQUFNLEdBQU4sTUFBTSxDQUFRO1FBckIxRSw4REFBOEQ7UUFDOUQsb0JBQWUsR0FBUSxXQUFXLENBQUM7UUFDbkMsb0JBQWUsR0FBRyxDQUFDLENBQUM7UUFDcEI7Ozs7O1dBS0c7UUFDTSwyQkFBc0IsR0FBRyxHQUFHLENBQUM7UUFDdEM7Ozs7O1dBS0c7UUFDTSxnQ0FBMkIsR0FDbEMsSUFBSSxDQUFDLGVBQWUsRUFBRSxVQUFVLEVBQUUsS0FB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QUUsS0FBSyxFQUFFLFFBQVEsRUFBRSxNQUFNO29CQUMvQixHQUFHLEVBQUUsR0FBRztpQkFDVCxDQUFDO2dCQUNGLFdBQVcsRUFBRSxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUM7Z0JBQzlCLE9BQU8sSUFBSSxDQUFDLGNBQWMsQ0FBQyxLQUFLLEVBQUUsR0FBRyxFQUFFLFdBQVcsQ0FBQyxDQUFDO2FBQ3JEO1NBQ0Y7UUFDRCxPQUFPLFdBQVcsQ0FBQztJQUNyQixDQUFDO0lBRUQ7OztPQUdHO0lBQ0gsV0FBVztRQUNULElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ3pCLElBQUksQ0FBQyxRQUFRLENBQUMsV0FBVyxFQUFFLENBQUM7SUFDOUIsQ0FBQzsrR0FoSFUsbUJBQW1CO21HQUFuQixtQkFBbUIsdU1DM0JoQyxxZEFhSyxxcVFEU08sWUFBWSwySkFBRSxZQUFZOzs0RkFLekIsbUJBQW1CO2tCQVIvQixTQUFTOytCQUNFLG1CQUFtQixjQUNqQixJQUFJLFdBQ1AsQ0FBQyxZQUFZLEVBQUUsWUFBWSxDQUFDLGlCQUd0QixpQkFBaUIsQ0FBQyxJQUFJOzBIQVk1QixzQkFBc0I7c0JBQTlCLEtBQUs7Z0JBT0csMkJBQTJCO3NCQUFuQyxLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBJbnB1dCwgT25EZXN0cm95LCBWaWV3RW5jYXBzdWxhdGlvbiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xyXG5pbXBvcnQgeyBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IGZpbHRlciwgdGFrZVVudGlsIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xyXG5pbXBvcnQge1xyXG4gIEFjdGl2YXRlZFJvdXRlLFxyXG4gIE5hdmlnYXRpb25FbmQsXHJcbiAgUFJJTUFSWV9PVVRMRVQsXHJcbiAgUm91dGVyLFxyXG4gIFJvdXRlck1vZHVsZSxcclxuICBVcmxTZWdtZW50XHJcbn0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcclxuaW1wb3J0ICogYXMgc2NyZWVuVGV4dHMgZnJvbSAnLi4vLi4vYXNzZXRzL2NvbnN0YW50cy5qc29uJztcclxuaW1wb3J0IHsgQnJlYWRjcnVtYiB9IGZyb20gJy4uLy4uL21vZGVscy9icmVhZGNydW1iLm1vZGVsJztcclxuXHJcbi8qKlxyXG4gKiBSZXVzYWJsZSBicmVhZGNydW1iIGNvbXBvbmVudCBmb3IgZGlzcGxheWluZyBhbmQgbmF2aWdhdGluZyB0aHJvdWdoIGEgaGllcmFyY2h5IG9mIHBhZ2VzLlxyXG4gKiBAY2xhc3MgQnJlYWRjcnVtYkNvbXBvbmVudFxyXG4gKi9cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdpZWVlc2EtYnJlYWRjcnVtYicsXHJcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcclxuICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlLCBSb3V0ZXJNb2R1bGVdLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9icmVhZGNydW1iLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi9icmVhZGNydW1iLmNvbXBvbmVudC5zY3NzJ10sXHJcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcclxufSlcclxuZXhwb3J0IGNsYXNzIEJyZWFkY3J1bWJDb21wb25lbnQgaW1wbGVtZW50cyBPbkRlc3Ryb3kge1xyXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55XHJcbiAgYnJlYWRjcnVtYlRleHRzOiBhbnkgPSBzY3JlZW5UZXh0cztcclxuICByb290UGFyZW50Q291bnQgPSAwO1xyXG4gIC8qKlxyXG4gICAqIEluaXRpYWwgcm91dGUgZm9yIHRoZSBicmVhZGNydW1iIGNvbXBvbmVudC5cclxuICAgKiBAdHlwZSB7c3RyaW5nfVxyXG4gICAqIEBkZWZhdWx0ICcvJ1xyXG4gICAqIEBtZW1iZXJvZiBCcmVhZGNydW1iQ29tcG9uZW50XHJcbiAgICovXHJcbiAgQElucHV0KCkgYnJlYWRjcnVtYkluaXRpYWxSb3V0ZSA9ICcvJztcclxuICAvKipcclxuICAgKiBJbml0aWFsIGxhYmVsIGZvciB0aGUgYnJlYWRjcnVtYiBjb21wb25lbnQuXHJcbiAgICogQHR5cGUge3N0cmluZ31cclxuICAgKiBAZGVmYXVsdCBicmVhZGNydW1iVGV4dHM/LmJyZWFkY3J1bWI/LmxhYmVsPy5pbml0aWFsXHJcbiAgICogQG1lbWJlcm9mIEJyZWFkY3J1bWJDb21wb25lbnRcclxuICAgKi9cclxuICBASW5wdXQoKSBicmVhZGNydW1iSW5pdGlhbFJvdXRlTGFiZWwgPVxyXG4gICAgdGhpcy5icmVhZGNydW1iVGV4dHM/LmJyZWFkY3J1bWI/LmxhYmVsPy5pbml0aWFsO1xyXG4gIGJyZWFkY3J1bWJzITogQnJlYWRjcnVtYltdO1xyXG4gIGRlc3Ryb3kkOiBTdWJqZWN0PGJvb2xlYW4+ID0gbmV3IFN1YmplY3Q8Ym9vbGVhbj4oKTtcclxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tdW51c2VkLXZhcnNcclxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGFjdGl2YXRlZFJvdXRlOiBBY3RpdmF0ZWRSb3V0ZSwgcHJpdmF0ZSByb3V0ZXI6IFJvdXRlcikge1xyXG4gICAgdGhpcy5icmVhZGNydW1icyA9IFtdO1xyXG4gICAgdGhpcy5zZXRSb3V0ZURhdGEoKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFNldHMgdXAgdGhlIHN1YnNjcmlwdGlvbiB0byByb3V0ZXIgZXZlbnRzIHRvIHVwZGF0ZSBicmVhZGNydW1icy5cclxuICAgKiBAbWVtYmVyb2YgQnJlYWRjcnVtYkNvbXBvbmVudFxyXG4gICAqL1xyXG4gIHNldFJvdXRlRGF0YSgpIHtcclxuICAgIHRoaXMucm91dGVyPy5ldmVudHNcclxuICAgICAgPy5waXBlKFxyXG4gICAgICAgIGZpbHRlcigoZXZlbnQpID0+IGV2ZW50IGluc3RhbmNlb2YgTmF2aWdhdGlvbkVuZCksXHJcbiAgICAgICAgdGFrZVVudGlsKHRoaXMuZGVzdHJveSQpXHJcbiAgICAgIClcclxuICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXVudXNlZC12YXJzLCBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tdW51c2VkLXZhcnNcclxuICAgICAgPy5zdWJzY3JpYmUoKCkgPT4ge1xyXG4gICAgICAgIGNvbnN0IGRhdGEgPSB0aGlzLmFjdGl2YXRlZFJvdXRlPy5yb290O1xyXG4gICAgICAgIHRoaXMucm9vdFBhcmVudENvdW50ID0gMDtcclxuICAgICAgICB0aGlzLmJyZWFkY3J1bWJzID0gdGhpcy5nZXRCcmVhZGNydW1icyhkYXRhKTtcclxuICAgICAgICBpZiAodGhpcy5icmVhZGNydW1ic1t0aGlzLmJyZWFkY3J1bWJzPy5sZW5ndGggLSAxXT8ubGFiZWwgPT09IG51bGwpXHJcbiAgICAgICAgICB0aGlzLmJyZWFkY3J1bWJzPy5wb3AoKTtcclxuICAgICAgfSk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBSZWN1cnNpdmVseSBnZXRzIHRoZSBicmVhZGNydW1iIGl0ZW1zIGZvciB0aGUgZ2l2ZW4gcm91dGUuXHJcbiAgICogQHBhcmFtIHtBY3RpdmF0ZWRSb3V0ZX0gcm91dGUgLSBUaGUgYWN0aXZhdGVkIHJvdXRlLlxyXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBbdXJsPScnXSAtIFRoZSBjdXJyZW50IFVSTC5cclxuICAgKiBAcGFyYW0ge0JyZWFkY3J1bWJbXX0gW2JyZWFkY3J1bWJzPVtdXSAtIFRoZSBjdXJyZW50IGJyZWFkY3J1bWIgaXRlbXMuXHJcbiAgICogQHJldHVybiB7QnJlYWRjcnVtYltdfSAtIFRoZSBhcnJheSBvZiBicmVhZGNydW1iIGl0ZW1zLlxyXG4gICAqIEBtZW1iZXJvZiBCcmVhZGNydW1iQ29tcG9uZW50XHJcbiAgICovXHJcbiAgZ2V0QnJlYWRjcnVtYnMoXHJcbiAgICByb3V0ZTogQWN0aXZhdGVkUm91dGUsXHJcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWluZmVycmFibGUtdHlwZXNcclxuICAgIHVybDogc3RyaW5nID0gJycsXHJcbiAgICBicmVhZGNydW1iczogQnJlYWRjcnVtYltdID0gW11cclxuICApOiBCcmVhZGNydW1iW10ge1xyXG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1pbmZlcnJhYmxlLXR5cGVzXHJcbiAgICBjb25zdCBST1VURV9EQVRBX0JSRUFEQ1JVTUI6IHN0cmluZyA9ICdicmVhZGNydW1iJztcclxuICAgIGNvbnN0IGNoaWxkcmVuOiBBY3RpdmF0ZWRSb3V0ZVtdID0gcm91dGU/LmNoaWxkcmVuO1xyXG4gICAgaWYgKGNoaWxkcmVuPy5sZW5ndGggPT09IDApIHtcclxuICAgICAgdGhpcy5yb290UGFyZW50Q291bnQgPSAwO1xyXG4gICAgICByZXR1cm4gYnJlYWRjcnVtYnM7XHJcbiAgICB9XHJcbiAgICBpZiAoY2hpbGRyZW4pIHtcclxuICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIHByZWZlci1jb25zdFxyXG4gICAgICBmb3IgKGxldCBjaGlsZCBvZiBjaGlsZHJlbikge1xyXG4gICAgICAgIGlmIChjaGlsZD8ub3V0bGV0ICE9PSBQUklNQVJZX09VVExFVCkge1xyXG4gICAgICAgICAgY29udGludWU7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby1wcm90b3R5cGUtYnVpbHRpbnNcclxuICAgICAgICBpZiAoIWNoaWxkPy5zbmFwc2hvdD8uZGF0YT8uaGFzT3duUHJvcGVydHkoUk9VVEVfREFUQV9CUkVBRENSVU1CKSkge1xyXG4gICAgICAgICAgcmV0dXJuIHRoaXMuZ2V0QnJlYWRjcnVtYnMoY2hpbGQsIHVybCwgYnJlYWRjcnVtYnMpO1xyXG4gICAgICAgIH1cclxuICAgICAgICBsZXQgcm91dGVVUkw6IHN0cmluZztcclxuICAgICAgICBpZiAoXHJcbiAgICAgICAgICB0aGlzLnJvb3RQYXJlbnRDb3VudCA9PT0gMCAmJlxyXG4gICAgICAgICAgY2hpbGQ/LnNuYXBzaG90Py5wYXJlbnQ/LnVybD8ubGVuZ3RoXHJcbiAgICAgICAgKSB7XHJcbiAgICAgICAgICB0aGlzLnJvb3RQYXJlbnRDb3VudCsrO1xyXG4gICAgICAgICAgcm91dGVVUkwgPSBjaGlsZD8uc25hcHNob3Q/LnBhcmVudD8udXJsXHJcbiAgICAgICAgICAgIC5tYXAoKHNlZ21lbnQ6IFVybFNlZ21lbnQpID0+IHNlZ21lbnQ/LnBhdGgpXHJcbiAgICAgICAgICAgIC5qb2luKCcvJyk7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgIHJvdXRlVVJMID0gY2hpbGQ/LnNuYXBzaG90Py51cmxcclxuICAgICAgICAgICAgLm1hcCgoc2VnbWVudDogVXJsU2VnbWVudCkgPT4gc2VnbWVudD8ucGF0aClcclxuICAgICAgICAgICAgLmpvaW4oJy8nKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgdXJsICs9IGAvJHtyb3V0ZVVSTH1gO1xyXG4gICAgICAgIGNvbnN0IGJyZWFkY3J1bWI6IEJyZWFkY3J1bWIgPSB7XHJcbiAgICAgICAgICBsYWJlbDogY2hpbGQ/LnNuYXBzaG90Py5kYXRhW1JPVVRFX0RBVEFfQlJFQURDUlVNQl0sXHJcbiAgICAgICAgICBwYXJhbXM6IGNoaWxkPy5zbmFwc2hvdD8ucGFyYW1zLFxyXG4gICAgICAgICAgdXJsOiB1cmwsXHJcbiAgICAgICAgfTtcclxuICAgICAgICBicmVhZGNydW1icz8ucHVzaChicmVhZGNydW1iKTtcclxuICAgICAgICByZXR1cm4gdGhpcy5nZXRCcmVhZGNydW1icyhjaGlsZCwgdXJsLCBicmVhZGNydW1icyk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIHJldHVybiBicmVhZGNydW1icztcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIE5nT25EZXN0cm95IHBlcmZvcm1zIG5lY2Vzc2FyeSBjbGVhbnVwIHRhc2tzLCBzdWNoIGFzIHVuc3Vic2NyaWJpbmcgZnJvbSBzdWJzY3JpcHRpb24gd2hlbiB0aGUgY29tcG9uZW50IGlzIGJlaW5nIGRlc3Ryb3llZC5cclxuICAgKiBAbWVtYmVyb2YgQnJlYWRjcnVtYkNvbXBvbmVudFxyXG4gICAqL1xyXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xyXG4gICAgdGhpcy5kZXN0cm95JC5uZXh0KHRydWUpO1xyXG4gICAgdGhpcy5kZXN0cm95JC51bnN1YnNjcmliZSgpO1xyXG4gIH1cclxufVxyXG4iLCI8dWwgY2xhc3M9XCJpZWVlc2EtYnJlYWRjcnVtYiBicmVhZGNydW1iXCI+XHJcbiAgPGxpPlxyXG4gICAgPGEgW3JvdXRlckxpbmtdPVwiYnJlYWRjcnVtYkluaXRpYWxSb3V0ZVwiIGNsYXNzPVwiaWVlZXNhLWJvZHktc20tMTQgdGV4dC1kZWNvcmF0aW9uLW5vbmVcIlxyXG4gICAgICA+e3sgYnJlYWRjcnVtYkluaXRpYWxSb3V0ZUxhYmVsIH19XHJcbiAgICA8L2E+XHJcbiAgPC9saT5cclxuICA8bGkgKm5nRm9yPVwibGV0IGJyZWFkY3J1bWIgb2YgYnJlYWRjcnVtYnNcIj5cclxuICAgIDxhXHJcbiAgICAgIFtyb3V0ZXJMaW5rXT1cIlticmVhZGNydW1iPy51cmwsIGJyZWFkY3J1bWI/LnBhcmFtc11cIlxyXG4gICAgICBjbGFzcz1cImllZWVzYS1ib2R5LXNtLTE0IHRleHQtZGVjb3JhdGlvbi1ub25lXCJcclxuICAgICAgPnt7IGJyZWFkY3J1bWIubGFiZWwgfX1cclxuICAgIDwvYT5cclxuICA8L2xpPlxyXG48L3VsPiJdfQ==