@sumaris-net/ngx-components 18.19.7 → 18.20.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.
- package/doc/changelog.md +4 -0
- package/esm2022/src/app/core/home/home.mjs +12 -9
- package/esm2022/src/app/core/menu/menu.component.mjs +6 -5
- package/esm2022/src/app/core/menu/menu.model.mjs +21 -1
- package/esm2022/src/app/core/menu/sub-menu-tab.directive.mjs +9 -5
- package/esm2022/src/app/core/menu/testing/menu-other.testing.mjs +7 -6
- package/esm2022/src/app/core/menu/testing/menu.testing.mjs +14 -7
- package/esm2022/src/app/core/services/local-settings.service.mjs +3 -2
- package/esm2022/src/app/shared/functions.mjs +2 -2
- package/fesm2022/sumaris-net.ngx-components.mjs +79 -45
- package/fesm2022/sumaris-net.ngx-components.mjs.map +1 -1
- package/package.json +2 -2
- package/src/app/core/home/home.d.ts +3 -3
- package/src/app/core/menu/menu.model.d.ts +11 -0
- package/src/app/core/menu/sub-menu-tab.directive.d.ts +3 -3
- package/src/app/core/menu/testing/menu.testing.d.ts +3 -1
- package/src/app/shared/functions.d.ts +1 -1
- package/src/assets/manifest.json +1 -1
- package/src/theme/_ngx-components.scss +17 -0
|
@@ -10,14 +10,14 @@ export class SubMenuTabDirective {
|
|
|
10
10
|
tabGroup;
|
|
11
11
|
tab;
|
|
12
12
|
router;
|
|
13
|
+
_menuItem;
|
|
13
14
|
label;
|
|
14
15
|
disabled;
|
|
15
16
|
parentPath;
|
|
16
17
|
path;
|
|
17
18
|
subMenuTitle;
|
|
19
|
+
subMenuBadge;
|
|
18
20
|
subMenuIcon = null; // { icon: 'none' };
|
|
19
|
-
_menuItem;
|
|
20
|
-
_enable;
|
|
21
21
|
constructor(menuService, tabGroup, tab, router) {
|
|
22
22
|
this.menuService = menuService;
|
|
23
23
|
this.tabGroup = tabGroup;
|
|
@@ -30,7 +30,7 @@ export class SubMenuTabDirective {
|
|
|
30
30
|
this._addToMenu();
|
|
31
31
|
}
|
|
32
32
|
ngOnChanges(changes) {
|
|
33
|
-
if (changes.disabled || changes.label || changes.subMenuTitle || changes.parentPath || changes.path) {
|
|
33
|
+
if (changes.disabled || changes.label || changes.subMenuTitle || changes.parentPath || changes.path || changes.subMenuBadge) {
|
|
34
34
|
if (this.disabled) {
|
|
35
35
|
this._removeToMenu();
|
|
36
36
|
}
|
|
@@ -65,6 +65,7 @@ export class SubMenuTabDirective {
|
|
|
65
65
|
path: this.path,
|
|
66
66
|
pathParams: tabParams,
|
|
67
67
|
parentPath,
|
|
68
|
+
badge: this.subMenuBadge,
|
|
68
69
|
});
|
|
69
70
|
}
|
|
70
71
|
// Update existing
|
|
@@ -76,6 +77,7 @@ export class SubMenuTabDirective {
|
|
|
76
77
|
// Update item (title and icon)
|
|
77
78
|
if (this._menuItem) {
|
|
78
79
|
this._menuItem.title = this.title;
|
|
80
|
+
this._menuItem.badge = this.subMenuBadge;
|
|
79
81
|
if (this.subMenuIcon) {
|
|
80
82
|
Object.assign(this._menuItem, this.subMenuIcon);
|
|
81
83
|
}
|
|
@@ -86,7 +88,7 @@ export class SubMenuTabDirective {
|
|
|
86
88
|
return isNotNil(this.subMenuTitle) ? this.subMenuTitle : this.label;
|
|
87
89
|
}
|
|
88
90
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: SubMenuTabDirective, deps: [{ token: i1.MenuService }, { token: i2.MatTabGroup }, { token: i2.MatTab }, { token: i3.Router }], target: i0.ɵɵFactoryTarget.Directive });
|
|
89
|
-
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.13", type: SubMenuTabDirective, selector: "[appSubMenuTab]", inputs: { label: "label", disabled: "disabled", parentPath: "parentPath", path: "path", subMenuTitle: "subMenuTitle", subMenuIcon: "subMenuIcon" }, usesOnChanges: true, ngImport: i0 });
|
|
91
|
+
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.13", type: SubMenuTabDirective, selector: "[appSubMenuTab]", inputs: { label: "label", disabled: "disabled", parentPath: "parentPath", path: "path", subMenuTitle: "subMenuTitle", subMenuBadge: "subMenuBadge", subMenuIcon: "subMenuIcon" }, usesOnChanges: true, ngImport: i0 });
|
|
90
92
|
}
|
|
91
93
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: SubMenuTabDirective, decorators: [{
|
|
92
94
|
type: Directive,
|
|
@@ -103,7 +105,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
103
105
|
type: Input
|
|
104
106
|
}], subMenuTitle: [{
|
|
105
107
|
type: Input
|
|
108
|
+
}], subMenuBadge: [{
|
|
109
|
+
type: Input
|
|
106
110
|
}], subMenuIcon: [{
|
|
107
111
|
type: Input
|
|
108
112
|
}] } });
|
|
109
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
113
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3ViLW1lbnUtdGFiLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvY29yZS9tZW51L3N1Yi1tZW51LXRhYi5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFpQixTQUFTLEVBQUUsS0FBSyxFQUE0QixNQUFNLGVBQWUsQ0FBQztBQUkxRixPQUFPLEVBQVksU0FBUyxFQUFFLE1BQU0sY0FBYyxDQUFDO0FBQ25ELE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQzs7Ozs7QUFNbEQsTUFBTSxPQUFPLG1CQUFtQjtJQVlwQjtJQUNBO0lBQ0E7SUFDQTtJQWRGLFNBQVMsQ0FBVztJQUVuQixLQUFLLENBQVM7SUFDZCxRQUFRLENBQVU7SUFDbEIsVUFBVSxDQUFTO0lBQ25CLElBQUksQ0FBUztJQUNiLFlBQVksQ0FBUztJQUNyQixZQUFZLENBQWtCO0lBQzlCLFdBQVcsR0FBWSxJQUFJLENBQUMsQ0FBQyxvQkFBb0I7SUFFMUQsWUFDVSxXQUF3QixFQUN4QixRQUFxQixFQUNyQixHQUFXLEVBQ1gsTUFBYztRQUhkLGdCQUFXLEdBQVgsV0FBVyxDQUFhO1FBQ3hCLGFBQVEsR0FBUixRQUFRLENBQWE7UUFDckIsUUFBRyxHQUFILEdBQUcsQ0FBUTtRQUNYLFdBQU0sR0FBTixNQUFNLENBQVE7UUFFdEIsSUFBSSxDQUFDLElBQUksR0FBRyxTQUFTLENBQUMsa0JBQWtCLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxXQUFXLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQztJQUN0RixDQUFDO0lBRUQsZUFBZTtRQUNiLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLFFBQVE7WUFBRSxJQUFJLENBQUMsVUFBVSxFQUFFLENBQUM7SUFDNUMsQ0FBQztJQUVELFdBQVcsQ0FBQyxPQUFzQjtRQUNoQyxJQUFJLE9BQU8s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LE9BQU8sSUFBSSxDQUFDLFNBQVMsQ0FBQztJQUN4QixDQUFDO0lBRUQsSUFBWSxLQUFLO1FBQ2YsT0FBTyxRQUFRLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDO0lBQ3RFLENBQUM7d0dBeEZVLG1CQUFtQjs0RkFBbkIsbUJBQW1COzs0RkFBbkIsbUJBQW1CO2tCQUgvQixTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSxpQkFBaUI7aUJBQzVCO29KQUlVLEtBQUs7c0JBQWIsS0FBSztnQkFDRyxRQUFRO3NCQUFoQixLQUFLO2dCQUNHLFVBQVU7c0JBQWxCLEtBQUs7Z0JBQ0csSUFBSTtzQkFBWixLQUFLO2dCQUNHLFlBQVk7c0JBQXBCLEtBQUs7Z0JBQ0csWUFBWTtzQkFBcEIsS0FBSztnQkFDRyxXQUFXO3NCQUFuQixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQWZ0ZXJWaWV3SW5pdCwgRGlyZWN0aXZlLCBJbnB1dCwgT25DaGFuZ2VzLCBTaW1wbGVDaGFuZ2VzIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBNYXRUYWIsIE1hdFRhYkdyb3VwIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvdGFicyc7XG5pbXBvcnQgeyBSb3V0ZXIgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuaW1wb3J0IHsgTWVudVNlcnZpY2UgfSBmcm9tICcuL21lbnUuc2VydmljZSc7XG5pbXBvcnQgeyBNZW51SXRlbSwgTWVudUl0ZW1zIH0gZnJvbSAnLi9tZW51Lm1vZGVsJztcbmltcG9ydCB7IGlzTm90TmlsIH0gZnJvbSAnLi4vLi4vc2hhcmVkL2Z1bmN0aW9ucyc7XG5pbXBvcnQgeyBJY29uUmVmIH0gZnJvbSAnLi4vLi4vc2hhcmVkL3R5cGVzJztcblxuQERpcmVjdGl2ZSh7XG4gIHNlbGVjdG9yOiAnW2FwcFN1Yk1lbnVUYWJdJyxcbn0pXG5leHBvcnQgY2xhc3MgU3ViTWVudVRhYkRpcmVjdGl2ZSBpbXBsZW1lbnRzIE9uQ2hhbmdlcywgQWZ0ZXJWaWV3SW5pdCB7XG4gIHByaXZhdGUgX21lbnVJdGVtOiBNZW51SXRlbTtcblxuICBASW5wdXQoKSBsYWJlbDogc3RyaW5nO1xuICBASW5wdXQoKSBkaXNhYmxlZDogYm9vbGVhbjtcbiAgQElucHV0KCkgcGFyZW50UGF0aDogc3RyaW5nO1xuICBASW5wdXQoKSBwYXRoOiBzdHJpbmc7XG4gIEBJbnB1dCgpIHN1Yk1lbnVUaXRsZTogc3RyaW5nO1xuICBASW5wdXQoKSBzdWJNZW51QmFkZ2U6IHN0cmluZyB8IG51bWJlcjtcbiAgQElucHV0KCkgc3ViTWVudUljb246IEljb25SZWYgPSBudWxsOyAvLyB7IGljb246ICdub25lJyB9O1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgbWVudVNlcnZpY2U6IE1lbnVTZXJ2aWNlLFxuICAgIHByaXZhdGUgdGFiR3JvdXA6IE1hdFRhYkdyb3VwLFxuICAgIHByaXZhdGUgdGFiOiBNYXRUYWIsXG4gICAgcHJpdmF0ZSByb3V0ZXI6IFJvdXRlclxuICApIHtcbiAgICB0aGlzLnBhdGggPSBNZW51SXRlbXMucGFyc2VQYXRoV2l0aFF1ZXJ5KHRoaXMucm91dGVyLnJvdXRlclN0YXRlLnNuYXBzaG90LnVybCkucGF0aDtcbiAgfVxuXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpIHtcbiAgICBpZiAoIXRoaXMudGFiLmRpc2FibGVkKSB0aGlzLl9hZGRUb01lbnUoKTtcbiAgfVxuXG4gIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcbiAgICBpZiAoY2hhbmdlcy5kaXNhYmxlZCB8fCBjaGFuZ2VzLmxhYmVsIHx8IGNoYW5nZXMuc3ViTWVudVRpdGxlIHx8IGNoYW5nZXMucGFyZW50UGF0aCB8fCBjaGFuZ2VzLnBhdGggfHwgY2hhbmdlcy5zdWJNZW51QmFkZ2UpIHtcbiAgICAgIGlmICh0aGlzLmRpc2FibGVkKSB7XG4gICAgICAgIHRoaXMuX3JlbW92ZVRvTWVudSgpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy5fYWRkVG9NZW51KCk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBhc3luYyBfcmVtb3ZlVG9NZW51KCkge1xuICAgIGNvbnN0IG1lbnVJdGVtID0gdGhpcy5tZW51SXRlbTtcbiAgICBpZiAobWVudUl0ZW0pIHtcbiAgICAgIGF3YWl0IHRoaXMubWVudVNlcnZpY2UucmVtb3ZlU3ViTWVudUl0ZW0obWVudUl0ZW0pO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgYXN5bmMgX2FkZFRvTWVudSgpIHtcbiAgICBjb25zdCBtZW51SXRlbSA9IHRoaXMubWVudUl0ZW07XG4gICAgaWYgKCFtZW51SXRlbT8ucGFyZW50UGF0aCkgcmV0dXJuO1xuXG4gICAgLy8gREVCVUdcbiAgICAvL2lmICh0aGlzLl9kZWJ1ZykgY29uc29sZS5kZWJ1ZyhgW3N1Yi1tZW51LXRhYl0gUmVmcmVzaGluZyBzdWIgbWVudSB7JHttZW51SXRlbS5wYXRofT90YWI9JHttZW51SXRlbS5wYXRoUGFyYW1zPy50YWIgfHwgMH0gb24gcGFyZW50IHske21lbnVJdGVtLnBhcmVudFBhdGh9fWApO1xuXG4gICAgdGhpcy5fbWVudUl0ZW0gPSBhd2FpdCB0aGlzLm1lbnVTZXJ2aWNlLmFkZFN1Yk1lbnVJdGVtKG1lbnVJdGVtLCB7IHNraXBJZkV4aXN0czogZmFsc2UgfSk7XG4gIH1cblxuICBwcml2YXRlIGdldCBtZW51SXRlbSgpOiBNZW51SXRlbSB7XG4gICAgY29uc3QgaW5kZXggPSB0aGlzLnRhYkdyb3VwLnNlbGVjdGVkSW5kZXggKyB0aGlzLnRhYi5wb3NpdGlvbjtcbiAgICBjb25zdCBwYXJlbnRQYXRoID0gaW5kZXggPT09IDAgPyB0aGlzLnBhcmVudFBhdGggOiB0aGlzLnBhdGg7XG4gICAgaWYgKCFwYXJlbnRQYXRoKSByZXR1cm4gbnVsbDtcbiAgICBjb25zdCB0YWJQYXJhbXMgPSBpbmRleCA9PT0gMCA/IHt9IDogeyB0YWI6IGluZGV4LnRvU3RyaW5nKCkgfTtcblxuICAgIC8vIENyZWF0ZSBvciBsb2FkXG4gICAgaWYgKCF0aGlzLl9tZW51SXRlbSkge1xuICAgICAgdGhpcy5fbWVudUl0ZW0gPSB0aGlzLm1lbnVTZXJ2aWNlLmNyZWF0ZVN1Yk1lbnUoe1xuICAgICAgICBwYXRoOiB0aGlzLnBhdGgsXG4gICAgICAgIHBhdGhQYXJhbXM6IHRhYlBhcmFtcyxcbiAgICAgICAgcGFyZW50UGF0aCxcbiAgICAgICAgYmFkZ2U6IHRoaXMuc3ViTWVudUJhZGdlLFxuICAgICAgfSk7XG4gICAgfVxuXG4gICAgLy8gVXBkYXRlIGV4aXN0aW5nXG4gICAgZWxzZSB7XG4gICAgICBjb25zdCB7IHBhdGgsIHBhcmFtcyB9ID0gTWVudUl0ZW1zLnBhcnNlUGF0aFdpdGhRdWVyeSh0aGlzLnBhdGgpO1xuICAgICAgdGhpcy5fbWVudUl0ZW0ucGF0aCA9IHBhdGg7XG4gICAgICB0aGlzLl9tZW51SXRlbS5wYXRoUGFyYW1zID0geyAuLi5wYXJhbXMsIC4uLnRhYlBhcmFtcyB9O1xuICAgIH1cblxuICAgIC8vIFVwZGF0ZSBpdGVtICh0aXRsZSBhbmQgaWNvbilcbiAgICBpZiAodGhpcy5fbWVudUl0ZW0pIHtcbiAgICAgIHRoaXMuX21lbnVJdGVtLnRpdGxlID0gdGhpcy50aXRsZTtcbiAgICAgIHRoaXMuX21lbnVJdGVtLmJhZGdlID0gdGhpcy5zdWJNZW51QmFkZ2U7XG4gICAgICBpZiAodGhpcy5zdWJNZW51SWNvbikge1xuICAgICAgICBPYmplY3QuYXNzaWduKHRoaXMuX21lbnVJdGVtLCB0aGlzLnN1Yk1lbnVJY29uKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gdGhpcy5fbWVudUl0ZW07XG4gIH1cblxuICBwcml2YXRlIGdldCB0aXRsZSgpOiBzdHJpbmcge1xuICAgIHJldHVybiBpc05vdE5pbCh0aGlzLnN1Yk1lbnVUaXRsZSkgPyB0aGlzLnN1Yk1lbnVUaXRsZSA6IHRoaXMubGFiZWw7XG4gIH1cbn1cbiJdfQ==
|
|
@@ -8,9 +8,10 @@ import * as i3 from "@ngx-translate/core";
|
|
|
8
8
|
import * as i4 from "../menu.service";
|
|
9
9
|
import * as i5 from "@angular/common";
|
|
10
10
|
import * as i6 from "../sub-menu-tab.directive";
|
|
11
|
-
import * as i7 from "@angular/material/
|
|
12
|
-
import * as i8 from "@angular/material/
|
|
13
|
-
import * as i9 from "
|
|
11
|
+
import * as i7 from "@angular/material/icon";
|
|
12
|
+
import * as i8 from "@angular/material/tabs";
|
|
13
|
+
import * as i9 from "@angular/material/badge";
|
|
14
|
+
import * as i10 from "../../../shared/toolbar/toolbar";
|
|
14
15
|
export class OtherMenuTestingPage extends MenuTestingPage {
|
|
15
16
|
constructor(route, // Modal editor give 'null'
|
|
16
17
|
router, navController, alertCtrl, translate, menuService) {
|
|
@@ -41,10 +42,10 @@ export class OtherMenuTestingPage extends MenuTestingPage {
|
|
|
41
42
|
return this.getDefaultTitle() + ' ' + otherId;
|
|
42
43
|
}
|
|
43
44
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: OtherMenuTestingPage, deps: [{ token: i1.ActivatedRoute }, { token: i1.Router }, { token: i2.NavController }, { token: i2.AlertController }, { token: i3.TranslateService }, { token: i4.MenuService }], target: i0.ɵɵFactoryTarget.Component });
|
|
44
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: OtherMenuTestingPage, selector: "app-testing-menu-other", usesInheritance: true, ngImport: i0, template: "<app-toolbar [defaultBackHref]=\"parentPath\">\n <ion-title [innerHTML]=\"$title | async\"></ion-title>\n</app-toolbar>\n\n<ion-content>\n <mat-tab-group\n #tabGroup\n [(selectedIndex)]=\"selectedTabIndex\"\n (selectedTabChange)=\"onTabChange($event)\"\n class=\"mat-mdc-tab-disabled-hidden\"\n dynamicHeight\n [mat-stretch-tabs]=\"toggleStretchTab.checked\"\n >\n <!-- TAB: 1 -->\n <mat-tab\n label=\"Details\"\n class=\"ion-padding\"\n appSubMenuTab\n [subMenuTitle]=\"($title | async) || ''\"\n [parentPath]=\"parentPath\"\n >\n <ng-template mat-tab-label>\n <ion-label>Details</ion-label>\n </ng-template>\n\n <div class=\"ion-padding\">\n <p>A first tab</p>\n\n <p [class.cdk-visually-hidden]=\"showThirdTab\">\n <ion-toggle #toggleThird>Toggle Third Tab</ion-toggle>\n </p>\n\n <p>\n <ion-toggle #toggleStretchTab>Stretch Tabs</ion-toggle>\n </p>\n\n <p>\n <ion-button (click)=\"changeTitle($event)\">Change page title</ion-button>\n\n <ion-button (click)=\"addSubMenuItem($event)\">Add sub menu other 3</ion-button>\n\n <ion-button (click)=\"addOutsideRouteSubMenuItem($event, true)\">\n Add sub menu (outside route) - pinned\n </ion-button>\n\n <ion-button (click)=\"addOutsideRouteSubMenuItem($event, false)\">\n Add sub menu (outside route) - not pinned\n </ion-button>\n </p>\n\n <p>\n \n <ion-button (click)=\"enableMenu(false)\" *ngIf=\"menuService.enabled | async\">Disable menu</ion-button>\n <ion-button (click)=\"enableMenu(true)\" *ngIf=\"(menuService.enabled | async) !== true\">Enable menu</ion-button>\n <ion-button (click)=\"toggleSplitPaneWhen()\" [disabled]=\"(menuService.enabled | async) !== true\">\n Toggle split pane\n </ion-button>\n </p>\n </div>\n </mat-tab>\n\n <!-- TAB: 2 -->\n <mat-tab\n label=\"Second\"\n class=\"ion-padding\"\n appSubMenuTab\n [subMenuIcon]=\"{ icon: 'settings' }\"\n [subMenuTitle]=\"$secondTabTitle | async\"\n >\n <ng-template mat-tab-label>\n <ion-label [innerHTML]=\"$secondTabTitle | async\"></ion-label>\n </ng-template>\n\n <div class=\"ion-padding\">\n <p>A second tab</p>\n\n <p *ngIf=\"showOtherLinks\">\n Navigate to :\n <a [routerLink]=\"childPath + '/1'\">{{ childPath }}/1</a>\n <br />\n Navigate to :\n <a [routerLink]=\"childPath + '/2'\">{{ childPath }}/2</a>\n </p>\n\n <p>\n <ion-button (click)=\"changeSecondTabTitle($event)\">Change tab label</ion-button>\n </p>\n </div>\n </mat-tab>\n\n <!-- TAB: 3 -->\n <mat-tab\n [label]=\"thirdTabTitle\"\n class=\"ion-padding\"\n [disabled]=\"!showThirdTab && !toggleThird.checked\"\n appSubMenuTab\n [subMenuIcon]=\"{ icon: 'none' }\"\n >\n <ng-template mat-tab-label>\n <ion-label matBadge=\"
|
|
45
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: OtherMenuTestingPage, selector: "app-testing-menu-other", usesInheritance: true, ngImport: i0, template: "<app-toolbar [defaultBackHref]=\"parentPath\">\n <ion-title [innerHTML]=\"$title | async\"></ion-title>\n</app-toolbar>\n\n<ion-content>\n <mat-tab-group\n #tabGroup\n [(selectedIndex)]=\"selectedTabIndex\"\n (selectedTabChange)=\"onTabChange($event)\"\n class=\"mat-mdc-tab-disabled-hidden\"\n dynamicHeight\n [mat-stretch-tabs]=\"toggleStretchTab.checked\"\n >\n <!-- TAB: 1 -->\n <mat-tab\n label=\"Details\"\n class=\"ion-padding\"\n appSubMenuTab\n [subMenuTitle]=\"($title | async) || ''\"\n [parentPath]=\"parentPath\"\n >\n <ng-template mat-tab-label>\n <mat-icon>information-circle</mat-icon>\n <ion-label>Details</ion-label>\n </ng-template>\n\n <div class=\"ion-padding\">\n <p>A first tab</p>\n\n <p [class.cdk-visually-hidden]=\"showThirdTab\">\n <ion-toggle #toggleThird>Toggle Third Tab</ion-toggle>\n </p>\n\n <p>\n <ion-toggle #toggleStretchTab>Stretch Tabs</ion-toggle>\n </p>\n\n <p>\n <ion-button (click)=\"changeTitle($event)\">Change page title</ion-button>\n\n <ion-button (click)=\"addSubMenuItem($event)\">Add sub menu other 3</ion-button>\n\n <ion-button (click)=\"addOutsideRouteSubMenuItem($event, true)\">\n Add sub menu (outside route) - pinned\n </ion-button>\n\n <ion-button (click)=\"addOutsideRouteSubMenuItem($event, false)\">\n Add sub menu (outside route) - not pinned\n </ion-button>\n </p>\n\n <p>\n \n <ion-button (click)=\"enableMenu(false)\" *ngIf=\"menuService.enabled | async\">Disable menu</ion-button>\n <ion-button (click)=\"enableMenu(true)\" *ngIf=\"(menuService.enabled | async) !== true\">Enable menu</ion-button>\n <ion-button (click)=\"toggleSplitPaneWhen()\" [disabled]=\"(menuService.enabled | async) !== true\">\n Toggle split pane\n </ion-button>\n </p>\n </div>\n </mat-tab>\n\n <!-- TAB: 2 -->\n <mat-tab\n label=\"Second\"\n class=\"ion-padding\"\n appSubMenuTab\n [subMenuIcon]=\"{ icon: 'settings' }\"\n [subMenuTitle]=\"$secondTabTitle | async\"\n >\n <ng-template mat-tab-label>\n <mat-icon><ion-icon name=\"settings\"></ion-icon></mat-icon>\n <ion-label [innerHTML]=\"$secondTabTitle | async\"></ion-label>\n </ng-template>\n\n <div class=\"ion-padding\">\n <p>A second tab</p>\n\n <p *ngIf=\"showOtherLinks\">\n Navigate to :\n <a [routerLink]=\"childPath + '/1'\">{{ childPath }}/1</a>\n <br />\n Navigate to :\n <a [routerLink]=\"childPath + '/2'\">{{ childPath }}/2</a>\n </p>\n\n <p>\n <ion-button (click)=\"changeSecondTabTitle($event)\">Change tab label</ion-button>\n </p>\n </div>\n </mat-tab>\n\n <!-- TAB: 3 -->\n <mat-tab\n [label]=\"thirdTabTitle\"\n class=\"ion-padding\"\n [disabled]=\"!showThirdTab && !toggleThird.checked\"\n appSubMenuTab\n [subMenuBadge]=\"$thirdTabBadge | async\"\n [subMenuIcon]=\"{ icon: 'none' }\"\n >\n <ng-template mat-tab-label>\n <ion-label [matBadge]=\"$thirdTabBadge | async\" matBadgeColor=\"primary\" matBadgeOverlap=\"false\" matBadgeSize=\"small\">\n {{ thirdTabTitle }}\n </ion-label>\n </ng-template>\n\n <div class=\"ion-padding\">\n <p>\n A third tab (with a badge)\n </p>\n <ion-button (click)=\"incrementThirdTabBadge()\">Increment badge count</ion-button>\n </div>\n </mat-tab>\n\n <!-- TAB: 4 -->\n <mat-tab appSubMenuTab [subMenuIcon]=\"{ icon: 'person' }\" label=\"Sub Tab\" class=\"ion-padding\">\n <ng-template mat-tab-label>\n <mat-icon><ion-icon name=\"person\"></ion-icon></mat-icon>\n <ion-label>Sub Tab</ion-label>\n </ng-template>\n\n <mat-tab-group\n #subTabGroup\n [(selectedIndex)]=\"subSelectedTabIndex\"\n (selectedTabChange)=\"onTabChange($event, 'subtab')\"\n class=\"mat-mdc-tab-disabled-hidden\"\n dynamicHeight\n >\n <mat-tab label=\"Sub1\" class=\"ion-padding\">\n <ng-template mat-tab-label>\n <ion-label>Sub1</ion-label>\n </ng-template>\n\n <div class=\"ion-padding\">\n <p>First SubTab</p>\n </div>\n </mat-tab>\n\n <mat-tab label=\"Sub2\" class=\"ion-padding\">\n <ng-template mat-tab-label>\n <ion-label>Sub2</ion-label>\n </ng-template>\n\n <div class=\"ion-padding\">\n <p>Second SubTab</p>\n </div>\n </mat-tab>\n </mat-tab-group>\n </mat-tab>\n </mat-tab-group>\n</ion-content>\n", styles: [".menu-item{padding-left:0 px}\n"], dependencies: [{ kind: "directive", type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "info", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }, { kind: "directive", type: i6.SubMenuTabDirective, selector: "[appSubMenuTab]", inputs: ["label", "disabled", "parentPath", "path", "subMenuTitle", "subMenuBadge", "subMenuIcon"] }, { kind: "component", type: i2.IonButton, selector: "ion-button", inputs: ["buttonType", "color", "disabled", "download", "expand", "fill", "form", "href", "mode", "rel", "routerAnimation", "routerDirection", "shape", "size", "strong", "target", "type"] }, { kind: "component", type: i2.IonContent, selector: "ion-content", inputs: ["color", "forceOverscroll", "fullscreen", "scrollEvents", "scrollX", "scrollY"] }, { kind: "component", type: i2.IonIcon, selector: "ion-icon", inputs: ["color", "flipRtl", "icon", "ios", "lazy", "md", "mode", "name", "sanitize", "size", "src"] }, { kind: "component", type: i2.IonLabel, selector: "ion-label", inputs: ["color", "mode", "position"] }, { kind: "component", type: i2.IonTitle, selector: "ion-title", inputs: ["color", "size"] }, { kind: "component", type: i2.IonToggle, selector: "ion-toggle", inputs: ["alignment", "checked", "color", "disabled", "enableOnOffLabels", "justify", "labelPlacement", "legacy", "mode", "name", "value"] }, { kind: "directive", type: i2.BooleanValueAccessor, selector: "ion-checkbox,ion-toggle" }, { kind: "directive", type: i2.RouterLinkWithHrefDelegate, selector: "a[routerLink],area[routerLink]" }, { kind: "component", type: i7.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "directive", type: i8.MatTabLabel, selector: "[mat-tab-label], [matTabLabel]" }, { kind: "component", type: i8.MatTab, selector: "mat-tab", inputs: ["disabled", "label", "aria-label", "aria-labelledby", "labelClass", "bodyClass"], exportAs: ["matTab"] }, { kind: "component", type: i8.MatTabGroup, selector: "mat-tab-group", inputs: ["color", "fitInkBarToContent", "mat-stretch-tabs", "dynamicHeight", "selectedIndex", "headerPosition", "animationDuration", "contentTabIndex", "disablePagination", "disableRipple", "preserveContent", "backgroundColor", "aria-label", "aria-labelledby"], outputs: ["selectedIndexChange", "focusChange", "animationDone", "selectedTabChange"], exportAs: ["matTabGroup"] }, { kind: "directive", type: i9.MatBadge, selector: "[matBadge]", inputs: ["matBadgeColor", "matBadgeOverlap", "matBadgeDisabled", "matBadgePosition", "matBadge", "matBadgeDescription", "matBadgeSize", "matBadgeHidden"] }, { kind: "component", type: i10.ToolbarComponent, selector: "app-toolbar", inputs: ["progressBarMode", "title", "color", "class", "id", "backHref", "defaultBackHref", "hasValidate", "hasClose", "hasSearch", "canGoBack", "canShowMenu"], outputs: ["onValidate", "onClose", "onValidateAndClose", "onBackClick", "onSearch"] }, { kind: "pipe", type: i5.AsyncPipe, name: "async" }] });
|
|
45
46
|
}
|
|
46
47
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: OtherMenuTestingPage, decorators: [{
|
|
47
48
|
type: Component,
|
|
48
|
-
args: [{ selector: 'app-testing-menu-other', template: "<app-toolbar [defaultBackHref]=\"parentPath\">\n <ion-title [innerHTML]=\"$title | async\"></ion-title>\n</app-toolbar>\n\n<ion-content>\n <mat-tab-group\n #tabGroup\n [(selectedIndex)]=\"selectedTabIndex\"\n (selectedTabChange)=\"onTabChange($event)\"\n class=\"mat-mdc-tab-disabled-hidden\"\n dynamicHeight\n [mat-stretch-tabs]=\"toggleStretchTab.checked\"\n >\n <!-- TAB: 1 -->\n <mat-tab\n label=\"Details\"\n class=\"ion-padding\"\n appSubMenuTab\n [subMenuTitle]=\"($title | async) || ''\"\n [parentPath]=\"parentPath\"\n >\n <ng-template mat-tab-label>\n <ion-label>Details</ion-label>\n </ng-template>\n\n <div class=\"ion-padding\">\n <p>A first tab</p>\n\n <p [class.cdk-visually-hidden]=\"showThirdTab\">\n <ion-toggle #toggleThird>Toggle Third Tab</ion-toggle>\n </p>\n\n <p>\n <ion-toggle #toggleStretchTab>Stretch Tabs</ion-toggle>\n </p>\n\n <p>\n <ion-button (click)=\"changeTitle($event)\">Change page title</ion-button>\n\n <ion-button (click)=\"addSubMenuItem($event)\">Add sub menu other 3</ion-button>\n\n <ion-button (click)=\"addOutsideRouteSubMenuItem($event, true)\">\n Add sub menu (outside route) - pinned\n </ion-button>\n\n <ion-button (click)=\"addOutsideRouteSubMenuItem($event, false)\">\n Add sub menu (outside route) - not pinned\n </ion-button>\n </p>\n\n <p>\n \n <ion-button (click)=\"enableMenu(false)\" *ngIf=\"menuService.enabled | async\">Disable menu</ion-button>\n <ion-button (click)=\"enableMenu(true)\" *ngIf=\"(menuService.enabled | async) !== true\">Enable menu</ion-button>\n <ion-button (click)=\"toggleSplitPaneWhen()\" [disabled]=\"(menuService.enabled | async) !== true\">\n Toggle split pane\n </ion-button>\n </p>\n </div>\n </mat-tab>\n\n <!-- TAB: 2 -->\n <mat-tab\n label=\"Second\"\n class=\"ion-padding\"\n appSubMenuTab\n [subMenuIcon]=\"{ icon: 'settings' }\"\n [subMenuTitle]=\"$secondTabTitle | async\"\n >\n <ng-template mat-tab-label>\n <ion-label [innerHTML]=\"$secondTabTitle | async\"></ion-label>\n </ng-template>\n\n <div class=\"ion-padding\">\n <p>A second tab</p>\n\n <p *ngIf=\"showOtherLinks\">\n Navigate to :\n <a [routerLink]=\"childPath + '/1'\">{{ childPath }}/1</a>\n <br />\n Navigate to :\n <a [routerLink]=\"childPath + '/2'\">{{ childPath }}/2</a>\n </p>\n\n <p>\n <ion-button (click)=\"changeSecondTabTitle($event)\">Change tab label</ion-button>\n </p>\n </div>\n </mat-tab>\n\n <!-- TAB: 3 -->\n <mat-tab\n [label]=\"thirdTabTitle\"\n class=\"ion-padding\"\n [disabled]=\"!showThirdTab && !toggleThird.checked\"\n appSubMenuTab\n [subMenuIcon]=\"{ icon: 'none' }\"\n >\n <ng-template mat-tab-label>\n <ion-label matBadge=\"
|
|
49
|
+
args: [{ selector: 'app-testing-menu-other', template: "<app-toolbar [defaultBackHref]=\"parentPath\">\n <ion-title [innerHTML]=\"$title | async\"></ion-title>\n</app-toolbar>\n\n<ion-content>\n <mat-tab-group\n #tabGroup\n [(selectedIndex)]=\"selectedTabIndex\"\n (selectedTabChange)=\"onTabChange($event)\"\n class=\"mat-mdc-tab-disabled-hidden\"\n dynamicHeight\n [mat-stretch-tabs]=\"toggleStretchTab.checked\"\n >\n <!-- TAB: 1 -->\n <mat-tab\n label=\"Details\"\n class=\"ion-padding\"\n appSubMenuTab\n [subMenuTitle]=\"($title | async) || ''\"\n [parentPath]=\"parentPath\"\n >\n <ng-template mat-tab-label>\n <mat-icon>information-circle</mat-icon>\n <ion-label>Details</ion-label>\n </ng-template>\n\n <div class=\"ion-padding\">\n <p>A first tab</p>\n\n <p [class.cdk-visually-hidden]=\"showThirdTab\">\n <ion-toggle #toggleThird>Toggle Third Tab</ion-toggle>\n </p>\n\n <p>\n <ion-toggle #toggleStretchTab>Stretch Tabs</ion-toggle>\n </p>\n\n <p>\n <ion-button (click)=\"changeTitle($event)\">Change page title</ion-button>\n\n <ion-button (click)=\"addSubMenuItem($event)\">Add sub menu other 3</ion-button>\n\n <ion-button (click)=\"addOutsideRouteSubMenuItem($event, true)\">\n Add sub menu (outside route) - pinned\n </ion-button>\n\n <ion-button (click)=\"addOutsideRouteSubMenuItem($event, false)\">\n Add sub menu (outside route) - not pinned\n </ion-button>\n </p>\n\n <p>\n \n <ion-button (click)=\"enableMenu(false)\" *ngIf=\"menuService.enabled | async\">Disable menu</ion-button>\n <ion-button (click)=\"enableMenu(true)\" *ngIf=\"(menuService.enabled | async) !== true\">Enable menu</ion-button>\n <ion-button (click)=\"toggleSplitPaneWhen()\" [disabled]=\"(menuService.enabled | async) !== true\">\n Toggle split pane\n </ion-button>\n </p>\n </div>\n </mat-tab>\n\n <!-- TAB: 2 -->\n <mat-tab\n label=\"Second\"\n class=\"ion-padding\"\n appSubMenuTab\n [subMenuIcon]=\"{ icon: 'settings' }\"\n [subMenuTitle]=\"$secondTabTitle | async\"\n >\n <ng-template mat-tab-label>\n <mat-icon><ion-icon name=\"settings\"></ion-icon></mat-icon>\n <ion-label [innerHTML]=\"$secondTabTitle | async\"></ion-label>\n </ng-template>\n\n <div class=\"ion-padding\">\n <p>A second tab</p>\n\n <p *ngIf=\"showOtherLinks\">\n Navigate to :\n <a [routerLink]=\"childPath + '/1'\">{{ childPath }}/1</a>\n <br />\n Navigate to :\n <a [routerLink]=\"childPath + '/2'\">{{ childPath }}/2</a>\n </p>\n\n <p>\n <ion-button (click)=\"changeSecondTabTitle($event)\">Change tab label</ion-button>\n </p>\n </div>\n </mat-tab>\n\n <!-- TAB: 3 -->\n <mat-tab\n [label]=\"thirdTabTitle\"\n class=\"ion-padding\"\n [disabled]=\"!showThirdTab && !toggleThird.checked\"\n appSubMenuTab\n [subMenuBadge]=\"$thirdTabBadge | async\"\n [subMenuIcon]=\"{ icon: 'none' }\"\n >\n <ng-template mat-tab-label>\n <ion-label [matBadge]=\"$thirdTabBadge | async\" matBadgeColor=\"primary\" matBadgeOverlap=\"false\" matBadgeSize=\"small\">\n {{ thirdTabTitle }}\n </ion-label>\n </ng-template>\n\n <div class=\"ion-padding\">\n <p>\n A third tab (with a badge)\n </p>\n <ion-button (click)=\"incrementThirdTabBadge()\">Increment badge count</ion-button>\n </div>\n </mat-tab>\n\n <!-- TAB: 4 -->\n <mat-tab appSubMenuTab [subMenuIcon]=\"{ icon: 'person' }\" label=\"Sub Tab\" class=\"ion-padding\">\n <ng-template mat-tab-label>\n <mat-icon><ion-icon name=\"person\"></ion-icon></mat-icon>\n <ion-label>Sub Tab</ion-label>\n </ng-template>\n\n <mat-tab-group\n #subTabGroup\n [(selectedIndex)]=\"subSelectedTabIndex\"\n (selectedTabChange)=\"onTabChange($event, 'subtab')\"\n class=\"mat-mdc-tab-disabled-hidden\"\n dynamicHeight\n >\n <mat-tab label=\"Sub1\" class=\"ion-padding\">\n <ng-template mat-tab-label>\n <ion-label>Sub1</ion-label>\n </ng-template>\n\n <div class=\"ion-padding\">\n <p>First SubTab</p>\n </div>\n </mat-tab>\n\n <mat-tab label=\"Sub2\" class=\"ion-padding\">\n <ng-template mat-tab-label>\n <ion-label>Sub2</ion-label>\n </ng-template>\n\n <div class=\"ion-padding\">\n <p>Second SubTab</p>\n </div>\n </mat-tab>\n </mat-tab-group>\n </mat-tab>\n </mat-tab-group>\n</ion-content>\n", styles: [".menu-item{padding-left:0 px}\n"] }]
|
|
49
50
|
}], ctorParameters: () => [{ type: i1.ActivatedRoute }, { type: i1.Router }, { type: i2.NavController }, { type: i2.AlertController }, { type: i3.TranslateService }, { type: i4.MenuService }] });
|
|
50
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVudS1vdGhlci50ZXN0aW5nLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2FwcC9jb3JlL21lbnUvdGVzdGluZy9tZW51LW90aGVyLnRlc3RpbmcudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBwL2NvcmUvbWVudS90ZXN0aW5nL21lbnUudGVzdGluZy5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxTQUFTLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFJeEMsT0FBTyxFQUFDLEtBQUssRUFBQyxNQUFNLDJCQUEyQixDQUFDO0FBRWhELE9BQU8sRUFBQyxlQUFlLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQzs7Ozs7Ozs7Ozs7QUFPL0MsTUFBTSxPQUFPLG9CQUFxQixTQUFRLGVBQWU7SUFDdkQsWUFDRSxLQUFxQixFQUFFLDJCQUEyQjtJQUNsRCxNQUFjLEVBRWQsYUFBNEIsRUFDNUIsU0FBMEIsRUFDMUIsU0FBMkIsRUFDM0IsV0FBd0I7UUFFeEIsS0FBSyxDQUFDLEtBQUssRUFBRSxNQUFNLEVBQUUsYUFBYSxFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQUUsV0FBVyxDQUFDLENBQUM7UUFDdkUsSUFBSSxDQUFDLFNBQVMsR0FBRyx1QkFBdUIsQ0FBQztRQUN6QyxJQUFJLENBQUMsY0FBYyxHQUFHLEtBQUssQ0FBQztRQUM1QixJQUFJLENBQUMsWUFBWSxHQUFHLElBQUksQ0FBQztRQUN6QixJQUFJLENBQUMsV0FBVyxHQUFHLENBQUMsQ0FBQztJQUN2QixDQUFDO0lBRUQsS0FBSyxDQUFDLFdBQVc7UUFDZixJQUFJLENBQUMsY0FBYyxHQUFHLFFBQVEsQ0FBQztRQUMvQixJQUFJLENBQUMsVUFBVSxHQUFHLDRCQUE0QixDQUFDO1FBQy9DLElBQUksQ0FBQyxTQUFTLEdBQUcsRUFBRSxDQUFDO1FBQ3BCLElBQUksQ0FBQyxJQUFJLEdBQUcsOEJBQThCLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUN6RixPQUFPLENBQUMsS0FBSyxDQUFDLEdBQUcsSUFBSSxDQUFDLFNBQVMsYUFBYSxFQUFFLEVBQUUsSUFBSSxFQUFFLElBQUksQ0FBQyxJQUFJLEVBQUUsVUFBVSxFQUFFLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQyxDQUFDO1FBQ2hHLElBQUksQ0FBQyxhQUFhLEdBQUcsT0FBTyxDQUFDO1FBQzdCLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQztRQUVwQixJQUFJLENBQUMsS0FBSyxHQUFHLE1BQU0sSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDO1FBQ3ZDLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQztJQUN0QixDQUFDO0lBRVMsZUFBZTtRQUN2QixPQUFPLE9BQU8sQ0FBQztJQUNqQixDQUFDO0lBRVMsS0FBSyxDQUFDLFlBQVk7UUFDMUIsb0RBQW9EO1FBQ3BELE1BQU0sS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDO1FBRWxCLE1BQU0sT0FBTyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsU0FBUyxDQUFDLENBQUM7UUFFNUQsT0FBTyxJQUFJLENBQUMsZUFBZSxFQUFFLEdBQUcsR0FBRyxHQUFHLE9BQU8sQ0FBQztJQUNoRCxDQUFDO3dHQXpDVSxvQkFBb0I7NEZBQXBCLG9CQUFvQixxRkNiakMseTFJQStJQTs7NEZEbElhLG9CQUFvQjtrQkFMaEMsU0FBUzsrQkFDRSx3QkFBd0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0NvbXBvbmVudH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge0FjdGl2YXRlZFJvdXRlLCBSb3V0ZXJ9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQge0FsZXJ0Q29udHJvbGxlciwgTmF2Q29udHJvbGxlcn0gZnJvbSAnQGlvbmljL2FuZ3VsYXInO1xuaW1wb3J0IHtUcmFuc2xhdGVTZXJ2aWNlfSBmcm9tICdAbmd4LXRyYW5zbGF0ZS9jb3JlJztcbmltcG9ydCB7c2xlZXB9IGZyb20gJy4uLy4uLy4uL3NoYXJlZC9mdW5jdGlvbnMnO1xuaW1wb3J0IHtNZW51U2VydmljZX0gZnJvbSAnLi4vbWVudS5zZXJ2aWNlJztcbmltcG9ydCB7TWVudVRlc3RpbmdQYWdlfSBmcm9tICcuL21lbnUudGVzdGluZyc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2FwcC10ZXN0aW5nLW1lbnUtb3RoZXInLFxuICB0ZW1wbGF0ZVVybDogJy4vbWVudS50ZXN0aW5nLmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9tZW51LnRlc3Rpbmcuc2NzcyddLFxufSlcbmV4cG9ydCBjbGFzcyBPdGhlck1lbnVUZXN0aW5nUGFnZSBleHRlbmRzIE1lbnVUZXN0aW5nUGFnZSB7XG4gIGNvbnN0cnVjdG9yKFxuICAgIHJvdXRlOiBBY3RpdmF0ZWRSb3V0ZSwgLy8gTW9kYWwgZWRpdG9yIGdpdmUgJ251bGwnXG4gICAgcm91dGVyOiBSb3V0ZXIsXG5cbiAgICBuYXZDb250cm9sbGVyOiBOYXZDb250cm9sbGVyLFxuICAgIGFsZXJ0Q3RybDogQWxlcnRDb250cm9sbGVyLFxuICAgIHRyYW5zbGF0ZTogVHJhbnNsYXRlU2VydmljZSxcbiAgICBtZW51U2VydmljZTogTWVudVNlcnZpY2VcbiAgKSB7XG4gICAgc3VwZXIocm91dGUsIHJvdXRlciwgbmF2Q29udHJvbGxlciwgYWxlcnRDdHJsLCB0cmFuc2xhdGUsIG1lbnVTZXJ2aWNlKTtcbiAgICB0aGlzLmxvZ1ByZWZpeCA9ICdbbWVudS10ZXN0aW5nLW90aGVyXSAnO1xuICAgIHRoaXMuc2hvd090aGVyTGlua3MgPSBmYWxzZTtcbiAgICB0aGlzLnNob3dUaGlyZFRhYiA9IHRydWU7XG4gICAgdGhpcy5zdWJUYWJDb3VudCA9IDI7XG4gIH1cblxuICBhc3luYyBpbml0U3ViTWVudSgpIHtcbiAgICB0aGlzLnNlY29uZFRhYlRpdGxlID0gJ1NlY29uZCc7XG4gICAgdGhpcy5wYXJlbnRQYXRoID0gJy90ZXN0aW5nL3NoYXJlZC9tZW51P3RhYj0xJztcbiAgICB0aGlzLmNoaWxkUGF0aCA9ICcnO1xuICAgIHRoaXMucGF0aCA9ICcvdGVzdGluZy9zaGFyZWQvbWVudS9vdGhlcnMvJyArIHRoaXMucm91dGUuc25hcHNob3QucGFyYW1NYXAuZ2V0KCdvdGhlcklkJyk7XG4gICAgY29uc29sZS5kZWJ1ZyhgJHt0aGlzLmxvZ1ByZWZpeH0gU2V0dXAgd2l0aGAsIHsgcGF0aDogdGhpcy5wYXRoLCBwYXJlbnRQYXRoOiB0aGlzLnBhcmVudFBhdGggfSk7XG4gICAgdGhpcy50aGlyZFRhYlRpdGxlID0gJ1RoaXJkJztcbiAgICB0aGlzLm1hcmtGb3JDaGVjaygpO1xuXG4gICAgdGhpcy50aXRsZSA9IGF3YWl0IHRoaXMuY29tcHV0ZVRpdGxlKCk7XG4gICAgdGhpcy5tYXJrRm9yQ2hlY2soKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBnZXREZWZhdWx0VGl0bGUoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gJ090aGVyJztcbiAgfVxuXG4gIHByb3RlY3RlZCBhc3luYyBjb21wdXRlVGl0bGUoKTogUHJvbWlzZTxzdHJpbmc+IHtcbiAgICAvLyBMb2FkIHRpdGxlICh3aXRoIGEgZGVsYXkgKGUuZy4gd2hlbiBsb2FkaW5nIGRhdGEpXG4gICAgYXdhaXQgc2xlZXAoMjAwMCk7XG5cbiAgICBjb25zdCBvdGhlcklkID0gdGhpcy5yb3V0ZS5zbmFwc2hvdC5wYXJhbU1hcC5nZXQoJ290aGVySWQnKTtcblxuICAgIHJldHVybiB0aGlzLmdldERlZmF1bHRUaXRsZSgpICsgJyAnICsgb3RoZXJJZDtcbiAgfVxuXG59XG4iLCI8YXBwLXRvb2xiYXIgW2RlZmF1bHRCYWNrSHJlZl09XCJwYXJlbnRQYXRoXCI+XG4gIDxpb24tdGl0bGUgW2lubmVySFRNTF09XCIkdGl0bGUgfCBhc3luY1wiPjwvaW9uLXRpdGxlPlxuPC9hcHAtdG9vbGJhcj5cblxuPGlvbi1jb250ZW50PlxuICA8bWF0LXRhYi1ncm91cFxuICAgICN0YWJHcm91cFxuICAgIFsoc2VsZWN0ZWRJbmRleCldPVwic2VsZWN0ZWRUYWJJbmRleFwiXG4gICAgKHNlbGVjdGVkVGFiQ2hhbmdlKT1cIm9uVGFiQ2hhbmdlKCRldmVudClcIlxuICAgIGNsYXNzPVwibWF0LW1kYy10YWItZGlzYWJsZWQtaGlkZGVuXCJcbiAgICBkeW5hbWljSGVpZ2h0XG4gICAgW21hdC1zdHJldGNoLXRhYnNdPVwidG9nZ2xlU3RyZXRjaFRhYi5jaGVja2VkXCJcbiAgPlxuICAgIDwhLS0gVEFCOiAxIC0tPlxuICAgIDxtYXQtdGFiXG4gICAgICBsYWJlbD1cIkRldGFpbHNcIlxuICAgICAgY2xhc3M9XCJpb24tcGFkZGluZ1wiXG4gICAgICBhcHBTdWJNZW51VGFiXG4gICAgICBbc3ViTWVudVRpdGxlXT1cIigkdGl0bGUgfCBhc3luYykgfHwgJydcIlxuICAgICAgW3BhcmVudFBhdGhdPVwicGFyZW50UGF0aFwiXG4gICAgPlxuICAgICAgPG5nLXRlbXBsYXRlIG1hdC10YWItbGFiZWw+XG4gICAgICAgIDxpb24tbGFiZWw+RGV0YWlsczwvaW9uLWxhYmVsPlxuICAgICAgPC9uZy10ZW1wbGF0ZT5cblxuICAgICAgPGRpdiBjbGFzcz1cImlvbi1wYWRkaW5nXCI+XG4gICAgICAgIDxwPkEgZmlyc3QgdGFiPC9wPlxuXG4gICAgICAgIDxwIFtjbGFzcy5jZGstdmlzdWFsbHktaGlkZGVuXT1cInNob3dUaGlyZFRhYlwiPlxuICAgICAgICAgIDxpb24tdG9nZ2xlICN0b2dnbGVUaGlyZD5Ub2dnbGUgVGhpcmQgVGFiPC9pb24tdG9nZ2xlPlxuICAgICAgICA8L3A+XG5cbiAgICAgICAgPHA+XG4gICAgICAgICAgPGlvbi10b2dnbGUgI3RvZ2dsZVN0cmV0Y2hUYWI+U3RyZXRjaCBUYWJzPC9pb24tdG9nZ2xlPlxuICAgICAgICA8L3A+XG5cbiAgICAgICAgPHA+XG4gICAgICAgICAgPGlvbi1idXR0b24gKGNsaWNrKT1cImNoYW5nZVRpdGxlKCRldmVudClcIj5DaGFuZ2UgcGFnZSB0aXRsZTwvaW9uLWJ1dHRvbj5cblxuICAgICAgICAgIDxpb24tYnV0dG9uIChjbGljayk9XCJhZGRTdWJNZW51SXRlbSgkZXZlbnQpXCI+QWRkIHN1YiBtZW51IG90aGVyIDM8L2lvbi1idXR0b24+XG5cbiAgICAgICAgICA8aW9uLWJ1dHRvbiAoY2xpY2spPVwiYWRkT3V0c2lkZVJvdXRlU3ViTWVudUl0ZW0oJGV2ZW50LCB0cnVlKVwiPlxuICAgICAgICAgICAgQWRkIHN1YiBtZW51IChvdXRzaWRlIHJvdXRlKSAtIHBpbm5lZFxuICAgICAgICAgIDwvaW9uLWJ1dHRvbj5cblxuICAgICAgICAgIDxpb24tYnV0dG9uIChjbGljayk9XCJhZGRPdXRzaWRlUm91dGVTdWJNZW51SXRlbSgkZXZlbnQsIGZhbHNlKVwiPlxuICAgICAgICAgICAgQWRkIHN1YiBtZW51IChvdXRzaWRlIHJvdXRlKSAtIG5vdCBwaW5uZWRcbiAgICAgICAgICA8L2lvbi1idXR0b24+XG4gICAgICAgIDwvcD5cblxuICAgICAgICA8cD5cbiAgICAgICAgICAmbmJzcDsmbmJzcDtcbiAgICAgICAgICA8aW9uLWJ1dHRvbiAoY2xpY2spPVwiZW5hYmxlTWVudShmYWxzZSlcIiAqbmdJZj1cIm1lbnVTZXJ2aWNlLmVuYWJsZWQgfCBhc3luY1wiPkRpc2FibGUgbWVudTwvaW9uLWJ1dHRvbj5cbiAgICAgICAgICA8aW9uLWJ1dHRvbiAoY2xpY2spPVwiZW5hYmxlTWVudSh0cnVlKVwiICpuZ0lmPVwiKG1lbnVTZXJ2aWNlLmVuYWJsZWQgfCBhc3luYykgIT09IHRydWVcIj5FbmFibGUgbWVudTwvaW9uLWJ1dHRvbj5cbiAgICAgICAgICA8aW9uLWJ1dHRvbiAoY2xpY2spPVwidG9nZ2xlU3BsaXRQYW5lV2hlbigpXCIgW2Rpc2FibGVkXT1cIihtZW51U2VydmljZS5lbmFibGVkIHwgYXN5bmMpICE9PSB0cnVlXCI+XG4gICAgICAgICAgICBUb2dnbGUgc3BsaXQgcGFuZVxuICAgICAgICAgIDwvaW9uLWJ1dHRvbj5cbiAgICAgICAgPC9wPlxuICAgICAgPC9kaXY+XG4gICAgPC9tYXQtdGFiPlxuXG4gICAgPCEtLSBUQUI6IDIgLS0+XG4gICAgPG1hdC10YWJcbiAgICAgIGxhYmVsPVwiU2Vjb25kXCJcbiAgICAgIGNsYXNzPVwiaW9uLXBhZGRpbmdcIlxuICAgICAgYXBwU3ViTWVudVRhYlxuICAgICAgW3N1Yk1lbnVJY29uXT1cInsgaWNvbjogJ3NldHRpbmdzJyB9XCJcbiAgICAgIFtzdWJNZW51VGl0bGVdPVwiJHNlY29uZFRhYlRpdGxlIHwgYXN5bmNcIlxuICAgID5cbiAgICAgIDxuZy10ZW1wbGF0ZSBtYXQtdGFiLWxhYmVsPlxuICAgICAgICA8aW9uLWxhYmVsIFtpbm5lckhUTUxdPVwiJHNlY29uZFRhYlRpdGxlIHwgYXN5bmNcIj48L2lvbi1sYWJlbD5cbiAgICAgIDwvbmctdGVtcGxhdGU+XG5cbiAgICAgIDxkaXYgY2xhc3M9XCJpb24tcGFkZGluZ1wiPlxuICAgICAgICA8cD5BIHNlY29uZCB0YWI8L3A+XG5cbiAgICAgICAgPHAgKm5nSWY9XCJzaG93T3RoZXJMaW5rc1wiPlxuICAgICAgICAgIE5hdmlnYXRlIHRvIDpcbiAgICAgICAgICA8YSBbcm91dGVyTGlua109XCJjaGlsZFBhdGggKyAnLzEnXCI+e3sgY2hpbGRQYXRoIH19LzE8L2E+XG4gICAgICAgICAgPGJyIC8+XG4gICAgICAgICAgTmF2aWdhdGUgdG8gOlxuICAgICAgICAgIDxhIFtyb3V0ZXJMaW5rXT1cImNoaWxkUGF0aCArICcvMidcIj57eyBjaGlsZFBhdGggfX0vMjwvYT5cbiAgICAgICAgPC9wPlxuXG4gICAgICAgIDxwPlxuICAgICAgICAgIDxpb24tYnV0dG9uIChjbGljayk9XCJjaGFuZ2VTZWNvbmRUYWJUaXRsZSgkZXZlbnQpXCI+Q2hhbmdlIHRhYiBsYWJlbDwvaW9uLWJ1dHRvbj5cbiAgICAgICAgPC9wPlxuICAgICAgPC9kaXY+XG4gICAgPC9tYXQtdGFiPlxuXG4gICAgPCEtLSBUQUI6IDMgLS0+XG4gICAgPG1hdC10YWJcbiAgICAgIFtsYWJlbF09XCJ0aGlyZFRhYlRpdGxlXCJcbiAgICAgIGNsYXNzPVwiaW9uLXBhZGRpbmdcIlxuICAgICAgW2Rpc2FibGVkXT1cIiFzaG93VGhpcmRUYWIgJiYgIXRvZ2dsZVRoaXJkLmNoZWNrZWRcIlxuICAgICAgYXBwU3ViTWVudVRhYlxuICAgICAgW3N1Yk1lbnVJY29uXT1cInsgaWNvbjogJ25vbmUnIH1cIlxuICAgID5cbiAgICAgIDxuZy10ZW1wbGF0ZSBtYXQtdGFiLWxhYmVsPlxuICAgICAgICA8aW9uLWxhYmVsIG1hdEJhZGdlPVwiMVwiIG1hdEJhZGdlQ29sb3I9XCJwcmltYXJ5XCIgbWF0QmFkZ2VPdmVybGFwPVwiZmFsc2VcIiBtYXRCYWRnZVNpemU9XCJzbWFsbFwiPlxuICAgICAgICAgIHt7IHRoaXJkVGFiVGl0bGUgfX1cbiAgICAgICAgPC9pb24tbGFiZWw+XG4gICAgICA8L25nLXRlbXBsYXRlPlxuXG4gICAgICA8ZGl2IGNsYXNzPVwiaW9uLXBhZGRpbmdcIj5BIHRoaXJkIHRhYjwvZGl2PlxuICAgIDwvbWF0LXRhYj5cblxuICAgIDwhLS0gVEFCOiA0IC0tPlxuICAgIDxtYXQtdGFiIGFwcFN1Yk1lbnVUYWIgW3N1Yk1lbnVJY29uXT1cInsgaWNvbjogJ3BlcnNvbicgfVwiIGxhYmVsPVwiU3ViIFRhYlwiIGNsYXNzPVwiaW9uLXBhZGRpbmdcIj5cbiAgICAgIDxuZy10ZW1wbGF0ZSBtYXQtdGFiLWxhYmVsPlxuICAgICAgICA8aW9uLWxhYmVsPlN1YiBUYWI8L2lvbi1sYWJlbD5cbiAgICAgIDwvbmctdGVtcGxhdGU+XG5cbiAgICAgIDxtYXQtdGFiLWdyb3VwXG4gICAgICAgICNzdWJUYWJHcm91cFxuICAgICAgICBbKHNlbGVjdGVkSW5kZXgpXT1cInN1YlNlbGVjdGVkVGFiSW5kZXhcIlxuICAgICAgICAoc2VsZWN0ZWRUYWJDaGFuZ2UpPVwib25UYWJDaGFuZ2UoJGV2ZW50LCAnc3VidGFiJylcIlxuICAgICAgICBjbGFzcz1cIm1hdC1tZGMtdGFiLWRpc2FibGVkLWhpZGRlblwiXG4gICAgICAgIGR5bmFtaWNIZWlnaHRcbiAgICAgID5cbiAgICAgICAgPG1hdC10YWIgbGFiZWw9XCJTdWIxXCIgY2xhc3M9XCJpb24tcGFkZGluZ1wiPlxuICAgICAgICAgIDxuZy10ZW1wbGF0ZSBtYXQtdGFiLWxhYmVsPlxuICAgICAgICAgICAgPGlvbi1sYWJlbD5TdWIxPC9pb24tbGFiZWw+XG4gICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cblxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJpb24tcGFkZGluZ1wiPlxuICAgICAgICAgICAgPHA+Rmlyc3QgU3ViVGFiPC9wPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L21hdC10YWI+XG5cbiAgICAgICAgPG1hdC10YWIgbGFiZWw9XCJTdWIyXCIgY2xhc3M9XCJpb24tcGFkZGluZ1wiPlxuICAgICAgICAgIDxuZy10ZW1wbGF0ZSBtYXQtdGFiLWxhYmVsPlxuICAgICAgICAgICAgPGlvbi1sYWJlbD5TdWIyPC9pb24tbGFiZWw+XG4gICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cblxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJpb24tcGFkZGluZ1wiPlxuICAgICAgICAgICAgPHA+U2Vjb25kIFN1YlRhYjwvcD5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9tYXQtdGFiPlxuICAgICAgPC9tYXQtdGFiLWdyb3VwPlxuICAgIDwvbWF0LXRhYj5cbiAgPC9tYXQtdGFiLWdyb3VwPlxuPC9pb24tY29udGVudD5cbiJdfQ==
|
|
51
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVudS1vdGhlci50ZXN0aW5nLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2FwcC9jb3JlL21lbnUvdGVzdGluZy9tZW51LW90aGVyLnRlc3RpbmcudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBwL2NvcmUvbWVudS90ZXN0aW5nL21lbnUudGVzdGluZy5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxTQUFTLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFJeEMsT0FBTyxFQUFDLEtBQUssRUFBQyxNQUFNLDJCQUEyQixDQUFDO0FBRWhELE9BQU8sRUFBQyxlQUFlLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQzs7Ozs7Ozs7Ozs7O0FBTy9DLE1BQU0sT0FBTyxvQkFBcUIsU0FBUSxlQUFlO0lBQ3ZELFlBQ0UsS0FBcUIsRUFBRSwyQkFBMkI7SUFDbEQsTUFBYyxFQUVkLGFBQTRCLEVBQzVCLFNBQTBCLEVBQzFCLFNBQTJCLEVBQzNCLFdBQXdCO1FBRXhCLEtBQUssQ0FBQyxLQUFLLEVBQUUsTUFBTSxFQUFFLGFBQWEsRUFBRSxTQUFTLEVBQUUsU0FBUyxFQUFFLFdBQVcsQ0FBQyxDQUFDO1FBQ3ZFLElBQUksQ0FBQyxTQUFTLEdBQUcsdUJBQXVCLENBQUM7UUFDekMsSUFBSSxDQUFDLGNBQWMsR0FBRyxLQUFLLENBQUM7UUFDNUIsSUFBSSxDQUFDLFlBQVksR0FBRyxJQUFJLENBQUM7UUFDekIsSUFBSSxDQUFDLFdBQVcsR0FBRyxDQUFDLENBQUM7SUFDdkIsQ0FBQztJQUVELEtBQUssQ0FBQyxXQUFXO1FBQ2YsSUFBSSxDQUFDLGNBQWMsR0FBRyxRQUFRLENBQUM7UUFDL0IsSUFBSSxDQUFDLFVBQVUsR0FBRyw0QkFBNEIsQ0FBQztRQUMvQyxJQUFJLENBQUMsU0FBUyxHQUFHLEVBQUUsQ0FBQztRQUNwQixJQUFJLENBQUMsSUFBSSxHQUFHLDhCQUE4QixHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsU0FBUyxDQUFDLENBQUM7UUFDekYsT0FBTyxDQUFDLEtBQUssQ0FBQyxHQUFHLElBQUksQ0FBQyxTQUFTLGFBQWEsRUFBRSxFQUFFLElBQUksRUFBRSxJQUFJLENBQUMsSUFBSSxFQUFFLFVBQVUsRUFBRSxJQUFJLENBQUMsVUFBVSxFQUFFLENBQUMsQ0FBQztRQUNoRyxJQUFJLENBQUMsYUFBYSxHQUFHLE9BQU8sQ0FBQztRQUM3QixJQUFJLENBQUMsWUFBWSxFQUFFLENBQUM7UUFFcEIsSUFBSSxDQUFDLEtBQUssR0FBRyxNQUFNLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQztRQUN2QyxJQUFJLENBQUMsWUFBWSxFQUFFLENBQUM7SUFDdEIsQ0FBQztJQUVTLGVBQWU7UUFDdkIsT0FBTyxPQUFPLENBQUM7SUFDakIsQ0FBQztJQUVTLEtBQUssQ0FBQyxZQUFZO1FBQzFCLG9EQUFvRDtRQUNwRCxNQUFNLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUVsQixNQUFNLE9BQU8sR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBRTVELE9BQU8sSUFBSSxDQUFDLGVBQWUsRUFBRSxHQUFHLEdBQUcsR0FBRyxPQUFPLENBQUM7SUFDaEQsQ0FBQzt3R0F6Q1Usb0JBQW9COzRGQUFwQixvQkFBb0IscUZDYmpDLHV2SkF3SkE7OzRGRDNJYSxvQkFBb0I7a0JBTGhDLFNBQVM7K0JBQ0Usd0JBQXdCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtDb21wb25lbnR9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtBY3RpdmF0ZWRSb3V0ZSwgUm91dGVyfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuaW1wb3J0IHtBbGVydENvbnRyb2xsZXIsIE5hdkNvbnRyb2xsZXJ9IGZyb20gJ0Bpb25pYy9hbmd1bGFyJztcbmltcG9ydCB7VHJhbnNsYXRlU2VydmljZX0gZnJvbSAnQG5neC10cmFuc2xhdGUvY29yZSc7XG5pbXBvcnQge3NsZWVwfSBmcm9tICcuLi8uLi8uLi9zaGFyZWQvZnVuY3Rpb25zJztcbmltcG9ydCB7TWVudVNlcnZpY2V9IGZyb20gJy4uL21lbnUuc2VydmljZSc7XG5pbXBvcnQge01lbnVUZXN0aW5nUGFnZX0gZnJvbSAnLi9tZW51LnRlc3RpbmcnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdhcHAtdGVzdGluZy1tZW51LW90aGVyJyxcbiAgdGVtcGxhdGVVcmw6ICcuL21lbnUudGVzdGluZy5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vbWVudS50ZXN0aW5nLnNjc3MnXSxcbn0pXG5leHBvcnQgY2xhc3MgT3RoZXJNZW51VGVzdGluZ1BhZ2UgZXh0ZW5kcyBNZW51VGVzdGluZ1BhZ2Uge1xuICBjb25zdHJ1Y3RvcihcbiAgICByb3V0ZTogQWN0aXZhdGVkUm91dGUsIC8vIE1vZGFsIGVkaXRvciBnaXZlICdudWxsJ1xuICAgIHJvdXRlcjogUm91dGVyLFxuXG4gICAgbmF2Q29udHJvbGxlcjogTmF2Q29udHJvbGxlcixcbiAgICBhbGVydEN0cmw6IEFsZXJ0Q29udHJvbGxlcixcbiAgICB0cmFuc2xhdGU6IFRyYW5zbGF0ZVNlcnZpY2UsXG4gICAgbWVudVNlcnZpY2U6IE1lbnVTZXJ2aWNlXG4gICkge1xuICAgIHN1cGVyKHJvdXRlLCByb3V0ZXIsIG5hdkNvbnRyb2xsZXIsIGFsZXJ0Q3RybCwgdHJhbnNsYXRlLCBtZW51U2VydmljZSk7XG4gICAgdGhpcy5sb2dQcmVmaXggPSAnW21lbnUtdGVzdGluZy1vdGhlcl0gJztcbiAgICB0aGlzLnNob3dPdGhlckxpbmtzID0gZmFsc2U7XG4gICAgdGhpcy5zaG93VGhpcmRUYWIgPSB0cnVlO1xuICAgIHRoaXMuc3ViVGFiQ291bnQgPSAyO1xuICB9XG5cbiAgYXN5bmMgaW5pdFN1Yk1lbnUoKSB7XG4gICAgdGhpcy5zZWNvbmRUYWJUaXRsZSA9ICdTZWNvbmQnO1xuICAgIHRoaXMucGFyZW50UGF0aCA9ICcvdGVzdGluZy9zaGFyZWQvbWVudT90YWI9MSc7XG4gICAgdGhpcy5jaGlsZFBhdGggPSAnJztcbiAgICB0aGlzLnBhdGggPSAnL3Rlc3Rpbmcvc2hhcmVkL21lbnUvb3RoZXJzLycgKyB0aGlzLnJvdXRlLnNuYXBzaG90LnBhcmFtTWFwLmdldCgnb3RoZXJJZCcpO1xuICAgIGNvbnNvbGUuZGVidWcoYCR7dGhpcy5sb2dQcmVmaXh9IFNldHVwIHdpdGhgLCB7IHBhdGg6IHRoaXMucGF0aCwgcGFyZW50UGF0aDogdGhpcy5wYXJlbnRQYXRoIH0pO1xuICAgIHRoaXMudGhpcmRUYWJUaXRsZSA9ICdUaGlyZCc7XG4gICAgdGhpcy5tYXJrRm9yQ2hlY2soKTtcblxuICAgIHRoaXMudGl0bGUgPSBhd2FpdCB0aGlzLmNvbXB1dGVUaXRsZSgpO1xuICAgIHRoaXMubWFya0ZvckNoZWNrKCk7XG4gIH1cblxuICBwcm90ZWN0ZWQgZ2V0RGVmYXVsdFRpdGxlKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuICdPdGhlcic7XG4gIH1cblxuICBwcm90ZWN0ZWQgYXN5bmMgY29tcHV0ZVRpdGxlKCk6IFByb21pc2U8c3RyaW5nPiB7XG4gICAgLy8gTG9hZCB0aXRsZSAod2l0aCBhIGRlbGF5IChlLmcuIHdoZW4gbG9hZGluZyBkYXRhKVxuICAgIGF3YWl0IHNsZWVwKDIwMDApO1xuXG4gICAgY29uc3Qgb3RoZXJJZCA9IHRoaXMucm91dGUuc25hcHNob3QucGFyYW1NYXAuZ2V0KCdvdGhlcklkJyk7XG5cbiAgICByZXR1cm4gdGhpcy5nZXREZWZhdWx0VGl0bGUoKSArICcgJyArIG90aGVySWQ7XG4gIH1cblxufVxuIiwiPGFwcC10b29sYmFyIFtkZWZhdWx0QmFja0hyZWZdPVwicGFyZW50UGF0aFwiPlxuICA8aW9uLXRpdGxlIFtpbm5lckhUTUxdPVwiJHRpdGxlIHwgYXN5bmNcIj48L2lvbi10aXRsZT5cbjwvYXBwLXRvb2xiYXI+XG5cbjxpb24tY29udGVudD5cbiAgPG1hdC10YWItZ3JvdXBcbiAgICAjdGFiR3JvdXBcbiAgICBbKHNlbGVjdGVkSW5kZXgpXT1cInNlbGVjdGVkVGFiSW5kZXhcIlxuICAgIChzZWxlY3RlZFRhYkNoYW5nZSk9XCJvblRhYkNoYW5nZSgkZXZlbnQpXCJcbiAgICBjbGFzcz1cIm1hdC1tZGMtdGFiLWRpc2FibGVkLWhpZGRlblwiXG4gICAgZHluYW1pY0hlaWdodFxuICAgIFttYXQtc3RyZXRjaC10YWJzXT1cInRvZ2dsZVN0cmV0Y2hUYWIuY2hlY2tlZFwiXG4gID5cbiAgICA8IS0tIFRBQjogMSAtLT5cbiAgICA8bWF0LXRhYlxuICAgICAgbGFiZWw9XCJEZXRhaWxzXCJcbiAgICAgIGNsYXNzPVwiaW9uLXBhZGRpbmdcIlxuICAgICAgYXBwU3ViTWVudVRhYlxuICAgICAgW3N1Yk1lbnVUaXRsZV09XCIoJHRpdGxlIHwgYXN5bmMpIHx8ICcnXCJcbiAgICAgIFtwYXJlbnRQYXRoXT1cInBhcmVudFBhdGhcIlxuICAgID5cbiAgICAgIDxuZy10ZW1wbGF0ZSBtYXQtdGFiLWxhYmVsPlxuICAgICAgICA8bWF0LWljb24+aW5mb3JtYXRpb24tY2lyY2xlPC9tYXQtaWNvbj5cbiAgICAgICAgPGlvbi1sYWJlbD5EZXRhaWxzPC9pb24tbGFiZWw+XG4gICAgICA8L25nLXRlbXBsYXRlPlxuXG4gICAgICA8ZGl2IGNsYXNzPVwiaW9uLXBhZGRpbmdcIj5cbiAgICAgICAgPHA+QSBmaXJzdCB0YWI8L3A+XG5cbiAgICAgICAgPHAgW2NsYXNzLmNkay12aXN1YWxseS1oaWRkZW5dPVwic2hvd1RoaXJkVGFiXCI+XG4gICAgICAgICAgPGlvbi10b2dnbGUgI3RvZ2dsZVRoaXJkPlRvZ2dsZSBUaGlyZCBUYWI8L2lvbi10b2dnbGU+XG4gICAgICAgIDwvcD5cblxuICAgICAgICA8cD5cbiAgICAgICAgICA8aW9uLXRvZ2dsZSAjdG9nZ2xlU3RyZXRjaFRhYj5TdHJldGNoIFRhYnM8L2lvbi10b2dnbGU+XG4gICAgICAgIDwvcD5cblxuICAgICAgICA8cD5cbiAgICAgICAgICA8aW9uLWJ1dHRvbiAoY2xpY2spPVwiY2hhbmdlVGl0bGUoJGV2ZW50KVwiPkNoYW5nZSBwYWdlIHRpdGxlPC9pb24tYnV0dG9uPlxuXG4gICAgICAgICAgPGlvbi1idXR0b24gKGNsaWNrKT1cImFkZFN1Yk1lbnVJdGVtKCRldmVudClcIj5BZGQgc3ViIG1lbnUgb3RoZXIgMzwvaW9uLWJ1dHRvbj5cblxuICAgICAgICAgIDxpb24tYnV0dG9uIChjbGljayk9XCJhZGRPdXRzaWRlUm91dGVTdWJNZW51SXRlbSgkZXZlbnQsIHRydWUpXCI+XG4gICAgICAgICAgICBBZGQgc3ViIG1lbnUgKG91dHNpZGUgcm91dGUpIC0gcGlubmVkXG4gICAgICAgICAgPC9pb24tYnV0dG9uPlxuXG4gICAgICAgICAgPGlvbi1idXR0b24gKGNsaWNrKT1cImFkZE91dHNpZGVSb3V0ZVN1Yk1lbnVJdGVtKCRldmVudCwgZmFsc2UpXCI+XG4gICAgICAgICAgICBBZGQgc3ViIG1lbnUgKG91dHNpZGUgcm91dGUpIC0gbm90IHBpbm5lZFxuICAgICAgICAgIDwvaW9uLWJ1dHRvbj5cbiAgICAgICAgPC9wPlxuXG4gICAgICAgIDxwPlxuICAgICAgICAgICZuYnNwOyZuYnNwO1xuICAgICAgICAgIDxpb24tYnV0dG9uIChjbGljayk9XCJlbmFibGVNZW51KGZhbHNlKVwiICpuZ0lmPVwibWVudVNlcnZpY2UuZW5hYmxlZCB8IGFzeW5jXCI+RGlzYWJsZSBtZW51PC9pb24tYnV0dG9uPlxuICAgICAgICAgIDxpb24tYnV0dG9uIChjbGljayk9XCJlbmFibGVNZW51KHRydWUpXCIgKm5nSWY9XCIobWVudVNlcnZpY2UuZW5hYmxlZCB8IGFzeW5jKSAhPT0gdHJ1ZVwiPkVuYWJsZSBtZW51PC9pb24tYnV0dG9uPlxuICAgICAgICAgIDxpb24tYnV0dG9uIChjbGljayk9XCJ0b2dnbGVTcGxpdFBhbmVXaGVuKClcIiBbZGlzYWJsZWRdPVwiKG1lbnVTZXJ2aWNlLmVuYWJsZWQgfCBhc3luYykgIT09IHRydWVcIj5cbiAgICAgICAgICAgIFRvZ2dsZSBzcGxpdCBwYW5lXG4gICAgICAgICAgPC9pb24tYnV0dG9uPlxuICAgICAgICA8L3A+XG4gICAgICA8L2Rpdj5cbiAgICA8L21hdC10YWI+XG5cbiAgICA8IS0tIFRBQjogMiAtLT5cbiAgICA8bWF0LXRhYlxuICAgICAgbGFiZWw9XCJTZWNvbmRcIlxuICAgICAgY2xhc3M9XCJpb24tcGFkZGluZ1wiXG4gICAgICBhcHBTdWJNZW51VGFiXG4gICAgICBbc3ViTWVudUljb25dPVwieyBpY29uOiAnc2V0dGluZ3MnIH1cIlxuICAgICAgW3N1Yk1lbnVUaXRsZV09XCIkc2Vjb25kVGFiVGl0bGUgfCBhc3luY1wiXG4gICAgPlxuICAgICAgPG5nLXRlbXBsYXRlIG1hdC10YWItbGFiZWw+XG4gICAgICAgIDxtYXQtaWNvbj48aW9uLWljb24gbmFtZT1cInNldHRpbmdzXCI+PC9pb24taWNvbj48L21hdC1pY29uPlxuICAgICAgICA8aW9uLWxhYmVsIFtpbm5lckhUTUxdPVwiJHNlY29uZFRhYlRpdGxlIHwgYXN5bmNcIj48L2lvbi1sYWJlbD5cbiAgICAgIDwvbmctdGVtcGxhdGU+XG5cbiAgICAgIDxkaXYgY2xhc3M9XCJpb24tcGFkZGluZ1wiPlxuICAgICAgICA8cD5BIHNlY29uZCB0YWI8L3A+XG5cbiAgICAgICAgPHAgKm5nSWY9XCJzaG93T3RoZXJMaW5rc1wiPlxuICAgICAgICAgIE5hdmlnYXRlIHRvIDpcbiAgICAgICAgICA8YSBbcm91dGVyTGlua109XCJjaGlsZFBhdGggKyAnLzEnXCI+e3sgY2hpbGRQYXRoIH19LzE8L2E+XG4gICAgICAgICAgPGJyIC8+XG4gICAgICAgICAgTmF2aWdhdGUgdG8gOlxuICAgICAgICAgIDxhIFtyb3V0ZXJMaW5rXT1cImNoaWxkUGF0aCArICcvMidcIj57eyBjaGlsZFBhdGggfX0vMjwvYT5cbiAgICAgICAgPC9wPlxuXG4gICAgICAgIDxwPlxuICAgICAgICAgIDxpb24tYnV0dG9uIChjbGljayk9XCJjaGFuZ2VTZWNvbmRUYWJUaXRsZSgkZXZlbnQpXCI+Q2hhbmdlIHRhYiBsYWJlbDwvaW9uLWJ1dHRvbj5cbiAgICAgICAgPC9wPlxuICAgICAgPC9kaXY+XG4gICAgPC9tYXQtdGFiPlxuXG4gICAgPCEtLSBUQUI6IDMgLS0+XG4gICAgPG1hdC10YWJcbiAgICAgIFtsYWJlbF09XCJ0aGlyZFRhYlRpdGxlXCJcbiAgICAgIGNsYXNzPVwiaW9uLXBhZGRpbmdcIlxuICAgICAgW2Rpc2FibGVkXT1cIiFzaG93VGhpcmRUYWIgJiYgIXRvZ2dsZVRoaXJkLmNoZWNrZWRcIlxuICAgICAgYXBwU3ViTWVudVRhYlxuICAgICAgW3N1Yk1lbnVCYWRnZV09XCIkdGhpcmRUYWJCYWRnZSB8IGFzeW5jXCJcbiAgICAgIFtzdWJNZW51SWNvbl09XCJ7IGljb246ICdub25lJyB9XCJcbiAgICA+XG4gICAgICA8bmctdGVtcGxhdGUgbWF0LXRhYi1sYWJlbD5cbiAgICAgICAgPGlvbi1sYWJlbCBbbWF0QmFkZ2VdPVwiJHRoaXJkVGFiQmFkZ2UgfCBhc3luY1wiIG1hdEJhZGdlQ29sb3I9XCJwcmltYXJ5XCIgbWF0QmFkZ2VPdmVybGFwPVwiZmFsc2VcIiBtYXRCYWRnZVNpemU9XCJzbWFsbFwiPlxuICAgICAgICAgIHt7IHRoaXJkVGFiVGl0bGUgfX1cbiAgICAgICAgPC9pb24tbGFiZWw+XG4gICAgICA8L25nLXRlbXBsYXRlPlxuXG4gICAgICA8ZGl2IGNsYXNzPVwiaW9uLXBhZGRpbmdcIj5cbiAgICAgICAgPHA+XG4gICAgICAgICAgQSB0aGlyZCB0YWIgKHdpdGggYSBiYWRnZSlcbiAgICAgICAgPC9wPlxuICAgICAgICA8aW9uLWJ1dHRvbiAoY2xpY2spPVwiaW5jcmVtZW50VGhpcmRUYWJCYWRnZSgpXCI+SW5jcmVtZW50IGJhZGdlIGNvdW50PC9pb24tYnV0dG9uPlxuICAgICAgPC9kaXY+XG4gICAgPC9tYXQtdGFiPlxuXG4gICAgPCEtLSBUQUI6IDQgLS0+XG4gICAgPG1hdC10YWIgYXBwU3ViTWVudVRhYiBbc3ViTWVudUljb25dPVwieyBpY29uOiAncGVyc29uJyB9XCIgbGFiZWw9XCJTdWIgVGFiXCIgY2xhc3M9XCJpb24tcGFkZGluZ1wiPlxuICAgICAgPG5nLXRlbXBsYXRlIG1hdC10YWItbGFiZWw+XG4gICAgICAgIDxtYXQtaWNvbj48aW9uLWljb24gbmFtZT1cInBlcnNvblwiPjwvaW9uLWljb24+PC9tYXQtaWNvbj5cbiAgICAgICAgPGlvbi1sYWJlbD5TdWIgVGFiPC9pb24tbGFiZWw+XG4gICAgICA8L25nLXRlbXBsYXRlPlxuXG4gICAgICA8bWF0LXRhYi1ncm91cFxuICAgICAgICAjc3ViVGFiR3JvdXBcbiAgICAgICAgWyhzZWxlY3RlZEluZGV4KV09XCJzdWJTZWxlY3RlZFRhYkluZGV4XCJcbiAgICAgICAgKHNlbGVjdGVkVGFiQ2hhbmdlKT1cIm9uVGFiQ2hhbmdlKCRldmVudCwgJ3N1YnRhYicpXCJcbiAgICAgICAgY2xhc3M9XCJtYXQtbWRjLXRhYi1kaXNhYmxlZC1oaWRkZW5cIlxuICAgICAgICBkeW5hbWljSGVpZ2h0XG4gICAgICA+XG4gICAgICAgIDxtYXQtdGFiIGxhYmVsPVwiU3ViMVwiIGNsYXNzPVwiaW9uLXBhZGRpbmdcIj5cbiAgICAgICAgICA8bmctdGVtcGxhdGUgbWF0LXRhYi1sYWJlbD5cbiAgICAgICAgICAgIDxpb24tbGFiZWw+U3ViMTwvaW9uLWxhYmVsPlxuICAgICAgICAgIDwvbmctdGVtcGxhdGU+XG5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiaW9uLXBhZGRpbmdcIj5cbiAgICAgICAgICAgIDxwPkZpcnN0IFN1YlRhYjwvcD5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9tYXQtdGFiPlxuXG4gICAgICAgIDxtYXQtdGFiIGxhYmVsPVwiU3ViMlwiIGNsYXNzPVwiaW9uLXBhZGRpbmdcIj5cbiAgICAgICAgICA8bmctdGVtcGxhdGUgbWF0LXRhYi1sYWJlbD5cbiAgICAgICAgICAgIDxpb24tbGFiZWw+U3ViMjwvaW9uLWxhYmVsPlxuICAgICAgICAgIDwvbmctdGVtcGxhdGU+XG5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiaW9uLXBhZGRpbmdcIj5cbiAgICAgICAgICAgIDxwPlNlY29uZCBTdWJUYWI8L3A+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvbWF0LXRhYj5cbiAgICAgIDwvbWF0LXRhYi1ncm91cD5cbiAgICA8L21hdC10YWI+XG4gIDwvbWF0LXRhYi1ncm91cD5cbjwvaW9uLWNvbnRlbnQ+XG4iXX0=
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { Component, EventEmitter, Input, Output, ViewChild } from '@angular/core';
|
|
2
|
-
import { Subject } from 'rxjs';
|
|
2
|
+
import { BehaviorSubject, Subject } from 'rxjs';
|
|
3
3
|
import { DateUtils } from '../../../shared/dates';
|
|
4
4
|
import { toBoolean } from '../../../shared/functions';
|
|
5
5
|
import { AppTabEditor } from '../../form/entity/tab-editor.class';
|
|
@@ -10,9 +10,10 @@ import * as i3 from "@ngx-translate/core";
|
|
|
10
10
|
import * as i4 from "../menu.service";
|
|
11
11
|
import * as i5 from "@angular/common";
|
|
12
12
|
import * as i6 from "../sub-menu-tab.directive";
|
|
13
|
-
import * as i7 from "@angular/material/
|
|
14
|
-
import * as i8 from "@angular/material/
|
|
15
|
-
import * as i9 from "
|
|
13
|
+
import * as i7 from "@angular/material/icon";
|
|
14
|
+
import * as i8 from "@angular/material/tabs";
|
|
15
|
+
import * as i9 from "@angular/material/badge";
|
|
16
|
+
import * as i10 from "../../../shared/toolbar/toolbar";
|
|
16
17
|
export class MenuTestingPage extends AppTabEditor {
|
|
17
18
|
menuService;
|
|
18
19
|
logPrefix = '[menu-testing] ';
|
|
@@ -24,6 +25,7 @@ export class MenuTestingPage extends AppTabEditor {
|
|
|
24
25
|
showThirdTab = false;
|
|
25
26
|
$title = new Subject();
|
|
26
27
|
$secondTabTitle = new Subject();
|
|
28
|
+
$thirdTabBadge = new BehaviorSubject(1);
|
|
27
29
|
_subSelectedTabIndex = 0;
|
|
28
30
|
subTabCount;
|
|
29
31
|
set subSelectedTabIndex(value) {
|
|
@@ -50,6 +52,7 @@ export class MenuTestingPage extends AppTabEditor {
|
|
|
50
52
|
ngOnInit() {
|
|
51
53
|
console.debug(`${this.logPrefix} Init page...`);
|
|
52
54
|
super.ngOnInit();
|
|
55
|
+
this.showThirdTab = this.route.snapshot.queryParamMap.get('tab') === '2';
|
|
53
56
|
}
|
|
54
57
|
ngAfterViewInit() {
|
|
55
58
|
super.ngAfterViewInit();
|
|
@@ -141,12 +144,16 @@ export class MenuTestingPage extends AppTabEditor {
|
|
|
141
144
|
setTimeout(() => this.subTabGroup.realignInkBar(), 200);
|
|
142
145
|
}
|
|
143
146
|
}
|
|
147
|
+
incrementThirdTabBadge() {
|
|
148
|
+
console.log('incrementThirdTabBadge');
|
|
149
|
+
this.$thirdTabBadge.next(this.$thirdTabBadge.value + 1);
|
|
150
|
+
}
|
|
144
151
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: MenuTestingPage, deps: [{ token: i1.ActivatedRoute }, { token: i1.Router }, { token: i2.NavController }, { token: i2.AlertController }, { token: i3.TranslateService }, { token: i4.MenuService }], target: i0.ɵɵFactoryTarget.Component });
|
|
145
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: MenuTestingPage, selector: "app-testing-menu", inputs: { subSelectedTabIndex: "subSelectedTabIndex" }, outputs: { subSelectedTabIndexChange: "subSelectedTabIndexChange" }, viewQueries: [{ propertyName: "subTabGroup", first: true, predicate: ["subTabGroup"], descendants: true, static: true }], usesInheritance: true, ngImport: i0, template: "<app-toolbar [defaultBackHref]=\"parentPath\">\n <ion-title [innerHTML]=\"$title | async\"></ion-title>\n</app-toolbar>\n\n<ion-content>\n <mat-tab-group\n #tabGroup\n [(selectedIndex)]=\"selectedTabIndex\"\n (selectedTabChange)=\"onTabChange($event)\"\n class=\"mat-mdc-tab-disabled-hidden\"\n dynamicHeight\n [mat-stretch-tabs]=\"toggleStretchTab.checked\"\n >\n <!-- TAB: 1 -->\n <mat-tab\n label=\"Details\"\n class=\"ion-padding\"\n appSubMenuTab\n [subMenuTitle]=\"($title | async) || ''\"\n [parentPath]=\"parentPath\"\n >\n <ng-template mat-tab-label>\n <ion-label>Details</ion-label>\n </ng-template>\n\n <div class=\"ion-padding\">\n <p>A first tab</p>\n\n <p [class.cdk-visually-hidden]=\"showThirdTab\">\n <ion-toggle #toggleThird>Toggle Third Tab</ion-toggle>\n </p>\n\n <p>\n <ion-toggle #toggleStretchTab>Stretch Tabs</ion-toggle>\n </p>\n\n <p>\n <ion-button (click)=\"changeTitle($event)\">Change page title</ion-button>\n\n <ion-button (click)=\"addSubMenuItem($event)\">Add sub menu other 3</ion-button>\n\n <ion-button (click)=\"addOutsideRouteSubMenuItem($event, true)\">\n Add sub menu (outside route) - pinned\n </ion-button>\n\n <ion-button (click)=\"addOutsideRouteSubMenuItem($event, false)\">\n Add sub menu (outside route) - not pinned\n </ion-button>\n </p>\n\n <p>\n \n <ion-button (click)=\"enableMenu(false)\" *ngIf=\"menuService.enabled | async\">Disable menu</ion-button>\n <ion-button (click)=\"enableMenu(true)\" *ngIf=\"(menuService.enabled | async) !== true\">Enable menu</ion-button>\n <ion-button (click)=\"toggleSplitPaneWhen()\" [disabled]=\"(menuService.enabled | async) !== true\">\n Toggle split pane\n </ion-button>\n </p>\n </div>\n </mat-tab>\n\n <!-- TAB: 2 -->\n <mat-tab\n label=\"Second\"\n class=\"ion-padding\"\n appSubMenuTab\n [subMenuIcon]=\"{ icon: 'settings' }\"\n [subMenuTitle]=\"$secondTabTitle | async\"\n >\n <ng-template mat-tab-label>\n <ion-label [innerHTML]=\"$secondTabTitle | async\"></ion-label>\n </ng-template>\n\n <div class=\"ion-padding\">\n <p>A second tab</p>\n\n <p *ngIf=\"showOtherLinks\">\n Navigate to :\n <a [routerLink]=\"childPath + '/1'\">{{ childPath }}/1</a>\n <br />\n Navigate to :\n <a [routerLink]=\"childPath + '/2'\">{{ childPath }}/2</a>\n </p>\n\n <p>\n <ion-button (click)=\"changeSecondTabTitle($event)\">Change tab label</ion-button>\n </p>\n </div>\n </mat-tab>\n\n <!-- TAB: 3 -->\n <mat-tab\n [label]=\"thirdTabTitle\"\n class=\"ion-padding\"\n [disabled]=\"!showThirdTab && !toggleThird.checked\"\n appSubMenuTab\n [subMenuIcon]=\"{ icon: 'none' }\"\n >\n <ng-template mat-tab-label>\n <ion-label matBadge=\"
|
|
152
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: MenuTestingPage, selector: "app-testing-menu", inputs: { subSelectedTabIndex: "subSelectedTabIndex" }, outputs: { subSelectedTabIndexChange: "subSelectedTabIndexChange" }, viewQueries: [{ propertyName: "subTabGroup", first: true, predicate: ["subTabGroup"], descendants: true, static: true }], usesInheritance: true, ngImport: i0, template: "<app-toolbar [defaultBackHref]=\"parentPath\">\n <ion-title [innerHTML]=\"$title | async\"></ion-title>\n</app-toolbar>\n\n<ion-content>\n <mat-tab-group\n #tabGroup\n [(selectedIndex)]=\"selectedTabIndex\"\n (selectedTabChange)=\"onTabChange($event)\"\n class=\"mat-mdc-tab-disabled-hidden\"\n dynamicHeight\n [mat-stretch-tabs]=\"toggleStretchTab.checked\"\n >\n <!-- TAB: 1 -->\n <mat-tab\n label=\"Details\"\n class=\"ion-padding\"\n appSubMenuTab\n [subMenuTitle]=\"($title | async) || ''\"\n [parentPath]=\"parentPath\"\n >\n <ng-template mat-tab-label>\n <mat-icon>information-circle</mat-icon>\n <ion-label>Details</ion-label>\n </ng-template>\n\n <div class=\"ion-padding\">\n <p>A first tab</p>\n\n <p [class.cdk-visually-hidden]=\"showThirdTab\">\n <ion-toggle #toggleThird>Toggle Third Tab</ion-toggle>\n </p>\n\n <p>\n <ion-toggle #toggleStretchTab>Stretch Tabs</ion-toggle>\n </p>\n\n <p>\n <ion-button (click)=\"changeTitle($event)\">Change page title</ion-button>\n\n <ion-button (click)=\"addSubMenuItem($event)\">Add sub menu other 3</ion-button>\n\n <ion-button (click)=\"addOutsideRouteSubMenuItem($event, true)\">\n Add sub menu (outside route) - pinned\n </ion-button>\n\n <ion-button (click)=\"addOutsideRouteSubMenuItem($event, false)\">\n Add sub menu (outside route) - not pinned\n </ion-button>\n </p>\n\n <p>\n \n <ion-button (click)=\"enableMenu(false)\" *ngIf=\"menuService.enabled | async\">Disable menu</ion-button>\n <ion-button (click)=\"enableMenu(true)\" *ngIf=\"(menuService.enabled | async) !== true\">Enable menu</ion-button>\n <ion-button (click)=\"toggleSplitPaneWhen()\" [disabled]=\"(menuService.enabled | async) !== true\">\n Toggle split pane\n </ion-button>\n </p>\n </div>\n </mat-tab>\n\n <!-- TAB: 2 -->\n <mat-tab\n label=\"Second\"\n class=\"ion-padding\"\n appSubMenuTab\n [subMenuIcon]=\"{ icon: 'settings' }\"\n [subMenuTitle]=\"$secondTabTitle | async\"\n >\n <ng-template mat-tab-label>\n <mat-icon><ion-icon name=\"settings\"></ion-icon></mat-icon>\n <ion-label [innerHTML]=\"$secondTabTitle | async\"></ion-label>\n </ng-template>\n\n <div class=\"ion-padding\">\n <p>A second tab</p>\n\n <p *ngIf=\"showOtherLinks\">\n Navigate to :\n <a [routerLink]=\"childPath + '/1'\">{{ childPath }}/1</a>\n <br />\n Navigate to :\n <a [routerLink]=\"childPath + '/2'\">{{ childPath }}/2</a>\n </p>\n\n <p>\n <ion-button (click)=\"changeSecondTabTitle($event)\">Change tab label</ion-button>\n </p>\n </div>\n </mat-tab>\n\n <!-- TAB: 3 -->\n <mat-tab\n [label]=\"thirdTabTitle\"\n class=\"ion-padding\"\n [disabled]=\"!showThirdTab && !toggleThird.checked\"\n appSubMenuTab\n [subMenuBadge]=\"$thirdTabBadge | async\"\n [subMenuIcon]=\"{ icon: 'none' }\"\n >\n <ng-template mat-tab-label>\n <ion-label [matBadge]=\"$thirdTabBadge | async\" matBadgeColor=\"primary\" matBadgeOverlap=\"false\" matBadgeSize=\"small\">\n {{ thirdTabTitle }}\n </ion-label>\n </ng-template>\n\n <div class=\"ion-padding\">\n <p>\n A third tab (with a badge)\n </p>\n <ion-button (click)=\"incrementThirdTabBadge()\">Increment badge count</ion-button>\n </div>\n </mat-tab>\n\n <!-- TAB: 4 -->\n <mat-tab appSubMenuTab [subMenuIcon]=\"{ icon: 'person' }\" label=\"Sub Tab\" class=\"ion-padding\">\n <ng-template mat-tab-label>\n <mat-icon><ion-icon name=\"person\"></ion-icon></mat-icon>\n <ion-label>Sub Tab</ion-label>\n </ng-template>\n\n <mat-tab-group\n #subTabGroup\n [(selectedIndex)]=\"subSelectedTabIndex\"\n (selectedTabChange)=\"onTabChange($event, 'subtab')\"\n class=\"mat-mdc-tab-disabled-hidden\"\n dynamicHeight\n >\n <mat-tab label=\"Sub1\" class=\"ion-padding\">\n <ng-template mat-tab-label>\n <ion-label>Sub1</ion-label>\n </ng-template>\n\n <div class=\"ion-padding\">\n <p>First SubTab</p>\n </div>\n </mat-tab>\n\n <mat-tab label=\"Sub2\" class=\"ion-padding\">\n <ng-template mat-tab-label>\n <ion-label>Sub2</ion-label>\n </ng-template>\n\n <div class=\"ion-padding\">\n <p>Second SubTab</p>\n </div>\n </mat-tab>\n </mat-tab-group>\n </mat-tab>\n </mat-tab-group>\n</ion-content>\n", styles: [".menu-item{padding-left:0 px}\n"], dependencies: [{ kind: "directive", type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "info", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }, { kind: "directive", type: i6.SubMenuTabDirective, selector: "[appSubMenuTab]", inputs: ["label", "disabled", "parentPath", "path", "subMenuTitle", "subMenuBadge", "subMenuIcon"] }, { kind: "component", type: i2.IonButton, selector: "ion-button", inputs: ["buttonType", "color", "disabled", "download", "expand", "fill", "form", "href", "mode", "rel", "routerAnimation", "routerDirection", "shape", "size", "strong", "target", "type"] }, { kind: "component", type: i2.IonContent, selector: "ion-content", inputs: ["color", "forceOverscroll", "fullscreen", "scrollEvents", "scrollX", "scrollY"] }, { kind: "component", type: i2.IonIcon, selector: "ion-icon", inputs: ["color", "flipRtl", "icon", "ios", "lazy", "md", "mode", "name", "sanitize", "size", "src"] }, { kind: "component", type: i2.IonLabel, selector: "ion-label", inputs: ["color", "mode", "position"] }, { kind: "component", type: i2.IonTitle, selector: "ion-title", inputs: ["color", "size"] }, { kind: "component", type: i2.IonToggle, selector: "ion-toggle", inputs: ["alignment", "checked", "color", "disabled", "enableOnOffLabels", "justify", "labelPlacement", "legacy", "mode", "name", "value"] }, { kind: "directive", type: i2.BooleanValueAccessor, selector: "ion-checkbox,ion-toggle" }, { kind: "directive", type: i2.RouterLinkWithHrefDelegate, selector: "a[routerLink],area[routerLink]" }, { kind: "component", type: i7.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "directive", type: i8.MatTabLabel, selector: "[mat-tab-label], [matTabLabel]" }, { kind: "component", type: i8.MatTab, selector: "mat-tab", inputs: ["disabled", "label", "aria-label", "aria-labelledby", "labelClass", "bodyClass"], exportAs: ["matTab"] }, { kind: "component", type: i8.MatTabGroup, selector: "mat-tab-group", inputs: ["color", "fitInkBarToContent", "mat-stretch-tabs", "dynamicHeight", "selectedIndex", "headerPosition", "animationDuration", "contentTabIndex", "disablePagination", "disableRipple", "preserveContent", "backgroundColor", "aria-label", "aria-labelledby"], outputs: ["selectedIndexChange", "focusChange", "animationDone", "selectedTabChange"], exportAs: ["matTabGroup"] }, { kind: "directive", type: i9.MatBadge, selector: "[matBadge]", inputs: ["matBadgeColor", "matBadgeOverlap", "matBadgeDisabled", "matBadgePosition", "matBadge", "matBadgeDescription", "matBadgeSize", "matBadgeHidden"] }, { kind: "component", type: i10.ToolbarComponent, selector: "app-toolbar", inputs: ["progressBarMode", "title", "color", "class", "id", "backHref", "defaultBackHref", "hasValidate", "hasClose", "hasSearch", "canGoBack", "canShowMenu"], outputs: ["onValidate", "onClose", "onValidateAndClose", "onBackClick", "onSearch"] }, { kind: "pipe", type: i5.AsyncPipe, name: "async" }] });
|
|
146
153
|
}
|
|
147
154
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: MenuTestingPage, decorators: [{
|
|
148
155
|
type: Component,
|
|
149
|
-
args: [{ selector: 'app-testing-menu', template: "<app-toolbar [defaultBackHref]=\"parentPath\">\n <ion-title [innerHTML]=\"$title | async\"></ion-title>\n</app-toolbar>\n\n<ion-content>\n <mat-tab-group\n #tabGroup\n [(selectedIndex)]=\"selectedTabIndex\"\n (selectedTabChange)=\"onTabChange($event)\"\n class=\"mat-mdc-tab-disabled-hidden\"\n dynamicHeight\n [mat-stretch-tabs]=\"toggleStretchTab.checked\"\n >\n <!-- TAB: 1 -->\n <mat-tab\n label=\"Details\"\n class=\"ion-padding\"\n appSubMenuTab\n [subMenuTitle]=\"($title | async) || ''\"\n [parentPath]=\"parentPath\"\n >\n <ng-template mat-tab-label>\n <ion-label>Details</ion-label>\n </ng-template>\n\n <div class=\"ion-padding\">\n <p>A first tab</p>\n\n <p [class.cdk-visually-hidden]=\"showThirdTab\">\n <ion-toggle #toggleThird>Toggle Third Tab</ion-toggle>\n </p>\n\n <p>\n <ion-toggle #toggleStretchTab>Stretch Tabs</ion-toggle>\n </p>\n\n <p>\n <ion-button (click)=\"changeTitle($event)\">Change page title</ion-button>\n\n <ion-button (click)=\"addSubMenuItem($event)\">Add sub menu other 3</ion-button>\n\n <ion-button (click)=\"addOutsideRouteSubMenuItem($event, true)\">\n Add sub menu (outside route) - pinned\n </ion-button>\n\n <ion-button (click)=\"addOutsideRouteSubMenuItem($event, false)\">\n Add sub menu (outside route) - not pinned\n </ion-button>\n </p>\n\n <p>\n \n <ion-button (click)=\"enableMenu(false)\" *ngIf=\"menuService.enabled | async\">Disable menu</ion-button>\n <ion-button (click)=\"enableMenu(true)\" *ngIf=\"(menuService.enabled | async) !== true\">Enable menu</ion-button>\n <ion-button (click)=\"toggleSplitPaneWhen()\" [disabled]=\"(menuService.enabled | async) !== true\">\n Toggle split pane\n </ion-button>\n </p>\n </div>\n </mat-tab>\n\n <!-- TAB: 2 -->\n <mat-tab\n label=\"Second\"\n class=\"ion-padding\"\n appSubMenuTab\n [subMenuIcon]=\"{ icon: 'settings' }\"\n [subMenuTitle]=\"$secondTabTitle | async\"\n >\n <ng-template mat-tab-label>\n <ion-label [innerHTML]=\"$secondTabTitle | async\"></ion-label>\n </ng-template>\n\n <div class=\"ion-padding\">\n <p>A second tab</p>\n\n <p *ngIf=\"showOtherLinks\">\n Navigate to :\n <a [routerLink]=\"childPath + '/1'\">{{ childPath }}/1</a>\n <br />\n Navigate to :\n <a [routerLink]=\"childPath + '/2'\">{{ childPath }}/2</a>\n </p>\n\n <p>\n <ion-button (click)=\"changeSecondTabTitle($event)\">Change tab label</ion-button>\n </p>\n </div>\n </mat-tab>\n\n <!-- TAB: 3 -->\n <mat-tab\n [label]=\"thirdTabTitle\"\n class=\"ion-padding\"\n [disabled]=\"!showThirdTab && !toggleThird.checked\"\n appSubMenuTab\n [subMenuIcon]=\"{ icon: 'none' }\"\n >\n <ng-template mat-tab-label>\n <ion-label matBadge=\"
|
|
156
|
+
args: [{ selector: 'app-testing-menu', template: "<app-toolbar [defaultBackHref]=\"parentPath\">\n <ion-title [innerHTML]=\"$title | async\"></ion-title>\n</app-toolbar>\n\n<ion-content>\n <mat-tab-group\n #tabGroup\n [(selectedIndex)]=\"selectedTabIndex\"\n (selectedTabChange)=\"onTabChange($event)\"\n class=\"mat-mdc-tab-disabled-hidden\"\n dynamicHeight\n [mat-stretch-tabs]=\"toggleStretchTab.checked\"\n >\n <!-- TAB: 1 -->\n <mat-tab\n label=\"Details\"\n class=\"ion-padding\"\n appSubMenuTab\n [subMenuTitle]=\"($title | async) || ''\"\n [parentPath]=\"parentPath\"\n >\n <ng-template mat-tab-label>\n <mat-icon>information-circle</mat-icon>\n <ion-label>Details</ion-label>\n </ng-template>\n\n <div class=\"ion-padding\">\n <p>A first tab</p>\n\n <p [class.cdk-visually-hidden]=\"showThirdTab\">\n <ion-toggle #toggleThird>Toggle Third Tab</ion-toggle>\n </p>\n\n <p>\n <ion-toggle #toggleStretchTab>Stretch Tabs</ion-toggle>\n </p>\n\n <p>\n <ion-button (click)=\"changeTitle($event)\">Change page title</ion-button>\n\n <ion-button (click)=\"addSubMenuItem($event)\">Add sub menu other 3</ion-button>\n\n <ion-button (click)=\"addOutsideRouteSubMenuItem($event, true)\">\n Add sub menu (outside route) - pinned\n </ion-button>\n\n <ion-button (click)=\"addOutsideRouteSubMenuItem($event, false)\">\n Add sub menu (outside route) - not pinned\n </ion-button>\n </p>\n\n <p>\n \n <ion-button (click)=\"enableMenu(false)\" *ngIf=\"menuService.enabled | async\">Disable menu</ion-button>\n <ion-button (click)=\"enableMenu(true)\" *ngIf=\"(menuService.enabled | async) !== true\">Enable menu</ion-button>\n <ion-button (click)=\"toggleSplitPaneWhen()\" [disabled]=\"(menuService.enabled | async) !== true\">\n Toggle split pane\n </ion-button>\n </p>\n </div>\n </mat-tab>\n\n <!-- TAB: 2 -->\n <mat-tab\n label=\"Second\"\n class=\"ion-padding\"\n appSubMenuTab\n [subMenuIcon]=\"{ icon: 'settings' }\"\n [subMenuTitle]=\"$secondTabTitle | async\"\n >\n <ng-template mat-tab-label>\n <mat-icon><ion-icon name=\"settings\"></ion-icon></mat-icon>\n <ion-label [innerHTML]=\"$secondTabTitle | async\"></ion-label>\n </ng-template>\n\n <div class=\"ion-padding\">\n <p>A second tab</p>\n\n <p *ngIf=\"showOtherLinks\">\n Navigate to :\n <a [routerLink]=\"childPath + '/1'\">{{ childPath }}/1</a>\n <br />\n Navigate to :\n <a [routerLink]=\"childPath + '/2'\">{{ childPath }}/2</a>\n </p>\n\n <p>\n <ion-button (click)=\"changeSecondTabTitle($event)\">Change tab label</ion-button>\n </p>\n </div>\n </mat-tab>\n\n <!-- TAB: 3 -->\n <mat-tab\n [label]=\"thirdTabTitle\"\n class=\"ion-padding\"\n [disabled]=\"!showThirdTab && !toggleThird.checked\"\n appSubMenuTab\n [subMenuBadge]=\"$thirdTabBadge | async\"\n [subMenuIcon]=\"{ icon: 'none' }\"\n >\n <ng-template mat-tab-label>\n <ion-label [matBadge]=\"$thirdTabBadge | async\" matBadgeColor=\"primary\" matBadgeOverlap=\"false\" matBadgeSize=\"small\">\n {{ thirdTabTitle }}\n </ion-label>\n </ng-template>\n\n <div class=\"ion-padding\">\n <p>\n A third tab (with a badge)\n </p>\n <ion-button (click)=\"incrementThirdTabBadge()\">Increment badge count</ion-button>\n </div>\n </mat-tab>\n\n <!-- TAB: 4 -->\n <mat-tab appSubMenuTab [subMenuIcon]=\"{ icon: 'person' }\" label=\"Sub Tab\" class=\"ion-padding\">\n <ng-template mat-tab-label>\n <mat-icon><ion-icon name=\"person\"></ion-icon></mat-icon>\n <ion-label>Sub Tab</ion-label>\n </ng-template>\n\n <mat-tab-group\n #subTabGroup\n [(selectedIndex)]=\"subSelectedTabIndex\"\n (selectedTabChange)=\"onTabChange($event, 'subtab')\"\n class=\"mat-mdc-tab-disabled-hidden\"\n dynamicHeight\n >\n <mat-tab label=\"Sub1\" class=\"ion-padding\">\n <ng-template mat-tab-label>\n <ion-label>Sub1</ion-label>\n </ng-template>\n\n <div class=\"ion-padding\">\n <p>First SubTab</p>\n </div>\n </mat-tab>\n\n <mat-tab label=\"Sub2\" class=\"ion-padding\">\n <ng-template mat-tab-label>\n <ion-label>Sub2</ion-label>\n </ng-template>\n\n <div class=\"ion-padding\">\n <p>Second SubTab</p>\n </div>\n </mat-tab>\n </mat-tab-group>\n </mat-tab>\n </mat-tab-group>\n</ion-content>\n", styles: [".menu-item{padding-left:0 px}\n"] }]
|
|
150
157
|
}], ctorParameters: () => [{ type: i1.ActivatedRoute }, { type: i1.Router }, { type: i2.NavController }, { type: i2.AlertController }, { type: i3.TranslateService }, { type: i4.MenuService }], propDecorators: { subSelectedTabIndex: [{
|
|
151
158
|
type: Input
|
|
152
159
|
}], subSelectedTabIndexChange: [{
|
|
@@ -155,4 +162,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
155
162
|
type: ViewChild,
|
|
156
163
|
args: ['subTabGroup', { static: true }]
|
|
157
164
|
}] } });
|
|
158
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVudS50ZXN0aW5nLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2FwcC9jb3JlL21lbnUvdGVzdGluZy9tZW51LnRlc3RpbmcudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBwL2NvcmUvbWVudS90ZXN0aW5nL21lbnUudGVzdGluZy5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBaUIsU0FBUyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQXFCLE1BQU0sRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFLcEgsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUMvQixPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDbEQsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBRXRELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQzs7Ozs7Ozs7Ozs7QUFPbEUsTUFBTSxPQUFPLGVBQWdCLFNBQVEsWUFBWTtJQXdDbkM7SUF2Q0YsU0FBUyxHQUFHLGlCQUFpQixDQUFDO0lBQzlCLFNBQVMsR0FBRyxFQUFFLENBQUM7SUFDZixhQUFhLEdBQUcsRUFBRSxDQUFDO0lBQ25CLFVBQVUsR0FBVyxJQUFJLENBQUM7SUFDMUIsSUFBSSxHQUFXLElBQUksQ0FBQztJQUNwQixjQUFjLEdBQUcsSUFBSSxDQUFDO0lBQ3RCLFlBQVksR0FBRyxLQUFLLENBQUM7SUFFckIsTUFBTSxHQUFHLElBQUksT0FBTyxFQUFVLENBQUM7SUFDL0IsZUFBZSxHQUFHLElBQUksT0FBTyxFQUFVLENBQUM7SUFDeEMsb0JBQW9CLEdBQUcsQ0FBQyxDQUFDO0lBRW5DLFdBQVcsQ0FBUztJQUVwQixJQUFhLG1CQUFtQixDQUFDLEtBQWE7UUFDNUMsSUFBSSxDQUFDLHNCQUFzQixDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ3JDLENB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LEtBQWE7UUFDbEMsWUFBWTtRQUNaLElBQUksS0FBSyxHQUFHLENBQUMsRUFBRSxDQUFDO1lBQ2QsS0FBSyxHQUFHLENBQUMsQ0FBQztRQUNaLENBQUM7YUFBTSxJQUFJLEtBQUssR0FBRyxJQUFJLENBQUMsUUFBUSxHQUFHLENBQUMsRUFBRSxDQUFDO1lBQ3JDLE9BQU8sQ0FBQyxJQUFJLENBQUMsa0NBQWtDLEtBQUssa0JBQWtCLElBQUksQ0FBQyxXQUFXLEdBQUcsQ0FBQyxFQUFFLENBQUMsQ0FBQztZQUM5RixLQUFLLEdBQUcsSUFBSSxDQUFDLG9CQUFvQixDQUFDO1FBQ3BDLENBQUM7UUFFRCxJQUFJLENBQUMsb0JBQW9CLEdBQUcsS0FBSyxDQUFDO1FBQ2xDLElBQUksQ0FBQyx5QkFBeUIsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7UUFFM0MsSUFBSSxJQUFJLENBQUMsV0FBVyxFQUFFLENBQUM7WUFDckIsSUFBSSxDQUFDLFdBQVcsQ0FBQyxhQUFhLEdBQUcsS0FBSyxDQUFDO1lBQ3ZDLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQztZQUNwQixnREFBZ0Q7WUFDaEQsVUFBVSxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsYUFBYSxFQUFFLEVBQUUsR0FBRyxDQUFDLENBQUM7UUFDMUQsQ0FBQztJQUNILENBQUM7d0dBN0pVLGVBQWU7NEZBQWYsZUFBZSxzVUNoQjVCLHkxSUErSUE7OzRGRC9IYSxlQUFlO2tCQUwzQixTQUFTOytCQUNFLGtCQUFrQjsyTkFtQmYsbUJBQW1CO3NCQUEvQixLQUFLO2dCQU9hLHlCQUF5QjtzQkFBM0MsTUFBTTtnQkFFcUMsV0FBVztzQkFBdEQsU0FBUzt1QkFBQyxhQUFhLEVBQUUsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQWZ0ZXJWaWV3SW5pdCwgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIElucHV0LCBPbkRlc3Ryb3ksIE9uSW5pdCwgT3V0cHV0LCBWaWV3Q2hpbGQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE1lbnVTZXJ2aWNlIH0gZnJvbSAnLi4vbWVudS5zZXJ2aWNlJztcbmltcG9ydCB7IEFjdGl2YXRlZFJvdXRlLCBSb3V0ZXIgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuaW1wb3J0IHsgQWxlcnRDb250cm9sbGVyLCBOYXZDb250cm9sbGVyIH0gZnJvbSAnQGlvbmljL2FuZ3VsYXInO1xuaW1wb3J0IHsgVHJhbnNsYXRlU2VydmljZSB9IGZyb20gJ0BuZ3gtdHJhbnNsYXRlL2NvcmUnO1xuaW1wb3J0IHsgU3ViamVjdCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgRGF0ZVV0aWxzIH0gZnJvbSAnLi4vLi4vLi4vc2hhcmVkL2RhdGVzJztcbmltcG9ydCB7IHRvQm9vbGVhbiB9IGZyb20gJy4uLy4uLy4uL3NoYXJlZC9mdW5jdGlvbnMnO1xuaW1wb3J0IHsgTWF0VGFiR3JvdXAgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC90YWJzJztcbmltcG9ydCB7IEFwcFRhYkVkaXRvciB9IGZyb20gJy4uLy4uL2Zvcm0vZW50aXR5L3RhYi1lZGl0b3IuY2xhc3MnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdhcHAtdGVzdGluZy1tZW51JyxcbiAgdGVtcGxhdGVVcmw6ICcuL21lbnUudGVzdGluZy5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vbWVudS50ZXN0aW5nLnNjc3MnXSxcbn0pXG5leHBvcnQgY2xhc3MgTWVudVRlc3RpbmdQYWdlIGV4dGVuZHMgQXBwVGFiRWRpdG9yIGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3ksIEFmdGVyVmlld0luaXQge1xuICBwcm90ZWN0ZWQgbG9nUHJlZml4ID0gJ1ttZW51LXRlc3RpbmddICc7XG4gIHByb3RlY3RlZCBjaGlsZFBhdGggPSAnJztcbiAgcHJvdGVjdGVkIHRoaXJkVGFiVGl0bGUgPSAnJztcbiAgcHJvdGVjdGVkIHBhcmVudFBhdGg6IHN0cmluZyA9IG51bGw7XG4gIHByb3RlY3RlZCBwYXRoOiBzdHJpbmcgPSBudWxsO1xuICBwcm90ZWN0ZWQgc2hvd090aGVyTGlua3MgPSB0cnVlO1xuICBwcm90ZWN0ZWQgc2hvd1RoaXJkVGFiID0gZmFsc2U7XG5cbiAgcHJvdGVjdGVkICR0aXRsZSA9IG5ldyBTdWJqZWN0PHN0cmluZz4oKTtcbiAgcHJvdGVjdGVkICRzZWNvbmRUYWJUaXRsZSA9IG5ldyBTdWJqZWN0PHN0cmluZz4oKTtcbiAgcHJvdGVjdGVkIF9zdWJTZWxlY3RlZFRhYkluZGV4ID0gMDtcblxuICBzdWJUYWJDb3VudDogbnVtYmVyO1xuXG4gIEBJbnB1dCgpIHNldCBzdWJTZWxlY3RlZFRhYkluZGV4KHZhbHVlOiBudW1iZXIpIHtcbiAgICB0aGlzLnNldFN1YlNlbGVjdGVkVGFiSW5kZXgodmFsdWUpO1xuICB9XG4gIGdldCBzdWJTZWxlY3RlZFRhYkluZGV4KCk6IG51bWJlciB7XG4gICAgcmV0dXJuIHRoaXMuX3N1YlNlbGVjdGVkVGFiSW5kZXg7XG4gIH1cblxuICBAT3V0cHV0KCkgcmVhZG9ubHkgc3ViU2VsZWN0ZWRUYWJJbmRleENoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8bnVtYmVyPigpO1xuXG4gIEBWaWV3Q2hpbGQoJ3N1YlRhYkdyb3VwJywgeyBzdGF0aWM6IHRydWUgfSkgc3ViVGFiR3JvdXA6IE1hdFRhYkdyb3VwO1xuXG4gIHByb3RlY3RlZCBzZXQgdGl0bGUodmFsdWU6IHN0cmluZykge1xuICAgIHRoaXMuJHRpdGxlLm5leHQodmFsdWUpO1xuICB9XG5cbiAgcHJvdGVjdGVkIHNldCBzZWNvbmRUYWJUaXRsZSh2YWx1ZTogc3RyaW5nKSB7XG4gICAgdGhpcy4kc2Vjb25kVGFiVGl0bGUubmV4dCh2YWx1ZSk7XG4gIH1cblxuICBjb25zdHJ1Y3RvcihcbiAgICByb3V0ZTogQWN0aXZhdGVkUm91dGUsIC8vIE1vZGFsIGVkaXRvciBnaXZlICdudWxsJ1xuICAgIHJvdXRlcjogUm91dGVyLFxuICAgIG5hdkNvbnRyb2xsZXI6IE5hdkNvbnRyb2xsZXIsXG4gICAgYWxlcnRDdHJsOiBBbGVydENvbnRyb2xsZXIsXG4gICAgdHJhbnNsYXRlOiBUcmFuc2xhdGVTZXJ2aWNlLFxuICAgIHByb3RlY3RlZCBtZW51U2VydmljZTogTWVudVNlcnZpY2VcbiAgKSB7XG4gICAgc3VwZXIocm91dGUsIHJvdXRlciwgbmF2Q29udHJvbGxlciwgYWxlcnRDdHJsLCB0cmFuc2xhdGUsIHtcbiAgICAgIHRhYkNvdW50OiA0LFxuICAgIH0pO1xuICB9XG5cbiAgbmdPbkluaXQoKSB7XG4gICAgY29uc29sZS5kZWJ1ZyhgJHt0aGlzLmxvZ1ByZWZpeH0gSW5pdCBwYWdlLi4uYCk7XG5cbiAgICBzdXBlci5uZ09uSW5pdCgpO1xuICB9XG5cbiAgbmdBZnRlclZpZXdJbml0KCkge1xuICAgIHN1cGVyLm5nQWZ0ZXJWaWV3SW5pdCgpO1xuICAgIHRoaXMuaW5pdFN1Yk1lbnUoKTtcbiAgfVxuXG4gIG5nT25EZXN0cm95KCkge1xuICAgIHN1cGVyLm5nT25EZXN0cm95KCk7XG4gICAgY29uc29sZS5kZWJ1ZyhgJHt0aGlzLmxvZ1ByZWZpeH1EZXN0cm95aW5nLi4uYCk7XG4gIH1cblxuICBsb2FkKGlkPzogbnVtYmVyLCBvcHRpb25zPzogYW55KTogUHJvbWlzZTx2b2lkPiB7XG4gICAgcmV0dXJuIFByb21pc2UucmVzb2x2ZSh1bmRlZmluZWQpO1xuICB9XG5cbiAgZ2V0IGlzTmV3RGF0YSgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICByZWxvYWQoKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgcmV0dXJuIFByb21pc2UucmVzb2x2ZSh1bmRlZmluZWQpO1xuICB9XG5cbiAgc2F2ZShldmVudDogRXZlbnQgfCB1bmRlZmluZWQsIG9wdGlvbnM6IGFueSk6IFByb21pc2U8Ym9vbGVhbj4ge1xuICAgIHJldHVybiBQcm9taXNlLnJlc29sdmUoZmFsc2UpO1xuICB9XG5cbiAgY2hhbmdlVGl0bGUoZXZlbnQ/OiBVSUV2ZW50KSB7XG4gICAgdGhpcy50aXRsZSA9ICcnO1xuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgY29uc3QgdGltZSA9IERhdGVVdGlscy5tb21lbnQoKS5mb3JtYXQoJ0hIOm1tOnNzJyk7XG4gICAgICB0aGlzLnRpdGxlID0gYCR7dGhpcy5nZXREZWZhdWx0VGl0bGUoKX0gPGI+JHt0aW1lfTwvYj5gO1xuICAgIH0sIDIwMDApO1xuICB9XG5cbiAgY2hhbmdlU2Vjb25kVGFiVGl0bGUoZXZlbnQ/OiBVSUV2ZW50KSB7XG4gICAgY29uc3QgdGltZSA9IERhdGVVdGlscy5tb21lbnQoKS5mb3JtYXQoJ0hIOm1tOnNzJyk7XG4gICAgdGhpcy5zZWNvbmRUYWJUaXRsZSA9IGA8c21hbGw+JHt0aW1lfTxici8+PC9zbWFsbD5TZWNvbmRgO1xuICB9XG5cbiAgYWRkU3ViTWVudUl0ZW0oZXZlbnQ/OiBVSUV2ZW50KSB7XG4gICAgdGhpcy5tZW51U2VydmljZS5hZGRTdWJNZW51SXRlbSh7XG4gICAgICB0aXRsZTogJ0Zha2UnLFxuICAgICAgcGFyZW50UGF0aDogdGhpcy5wYXRoLFxuICAgICAgcGF0aDogdGhpcy5wYXRoICsgJy9mYWtlJyxcbiAgICAgIC8vcGlubmVkOiB0cnVlXG4gICAgfSk7XG4gIH1cblxuICBhZGRPdXRzaWRlUm91dGVTdWJNZW51SXRlbShldmVudD86IFVJRXZlbnQsIHBpbm5lZD86IGJvb2xlYW4pIHtcbiAgICB0aGlzLm1lbnVTZXJ2aWNlLmFkZFN1Yk1lbnVJdGVtKHtcbiAgICAgIHRpdGxlOiAnRmFrZScsXG4gICAgICBwYXJlbnRQYXRoOiAnL2FkbWluL3VzZXJzJyxcbiAgICAgIHBhdGg6ICcvYWRtaW4vdXNlcnMvZmFrZScsXG4gICAgICBwaW5uZWQ6IHRvQm9vbGVhbihwaW5uZWQsIGZhbHNlKSxcbiAgICB9KTtcbiAgfVxuXG4gIHByb3RlY3RlZCBlbmFibGVNZW51KHZhbHVlOiBib29sZWFuKSB7XG4gICAgdGhpcy5tZW51U2VydmljZS5lbmFibGUodmFsdWUpO1xuICB9XG4gIHByb3RlY3RlZCB0b2dnbGVTcGxpdFBhbmVXaGVuKCkge1xuICAgIHRoaXMubWVudVNlcnZpY2UudG9nZ2xlU3BsaXRQYW5lV2hlbigpO1xuICB9XG4gIHByb3RlY3RlZCBhc3luYyBpbml0U3ViTWVudSgpIHtcbiAgICB0aGlzLnRpdGxlID0gYXdhaXQgdGhpcy5jb21wdXRlVGl0bGUoKTtcbiAgICB0aGlzLnNlY29uZFRhYlRpdGxlID0gJ090aGVycyc7XG4gICAgdGhpcy50aGlyZFRhYlRpdGxlID0gJ1RoaXJkJztcbiAgICB0aGlzLnBhcmVudFBhdGggPSAnL3Rlc3RpbmcnO1xuICAgIHRoaXMucGF0aCA9IHRoaXMucGFyZW50UGF0aCArICcvc2hhcmVkL21lbnUnO1xuICAgIHRoaXMuY2hpbGRQYXRoID0gdGhpcy5wYXRoICsgJy9vdGhlcnMnO1xuICAgIGNvbnNvbGUuZGVidWcoYCR7dGhpcy5sb2dQcmVmaXh9IFNldHVwIHdpdGhgLCB7IHBhdGg6IHRoaXMucGF0aCwgcGFyZW50UGF0aDogdGhpcy5wYXJlbnRQYXRoIH0pO1xuICAgIHRoaXMubWFya0ZvckNoZWNrKCk7XG4gIH1cblxuICBwcm90ZWN0ZWQgZ2V0Rmlyc3RJbnZhbGlkVGFiSW5kZXgoKTogbnVtYmVyIHtcbiAgICByZXR1cm4gMDtcbiAgfVxuXG4gIHByb3RlY3RlZCBnZXREZWZhdWx0VGl0bGUoKSB7XG4gICAgcmV0dXJuICdNZW51JztcbiAgfVxuXG4gIHByb3RlY3RlZCBhc3luYyBjb21wdXRlVGl0bGUoKSB7XG4gICAgcmV0dXJuIHRoaXMuZ2V0RGVmYXVsdFRpdGxlKCk7XG4gIH1cblxuICBzZXRTdWJTZWxlY3RlZFRhYkluZGV4KHZhbHVlOiBudW1iZXIpIHtcbiAgICAvLyBGaXggdmFsdWVcbiAgICBpZiAodmFsdWUgPCAwKSB7XG4gICAgICB2YWx1ZSA9IDA7XG4gICAgfSBlbHNlIGlmICh2YWx1ZSA+IHRoaXMudGFiQ291bnQgLSAxKSB7XG4gICAgICBjb25zb2xlLndhcm4oYFttZW51LW90aGVyXSBJbnZhbGlkIHRhYiBpbmRleCAke3ZhbHVlfS4gTWF4IHZhbHVlIGlzICR7dGhpcy5zdWJUYWJDb3VudCAtIDF9YCk7XG4gICAgICB2YWx1ZSA9IHRoaXMuX3N1YlNlbGVjdGVkVGFiSW5kZXg7XG4gICAgfVxuXG4gICAgdGhpcy5fc3ViU2VsZWN0ZWRUYWJJbmRleCA9IHZhbHVlO1xuICAgIHRoaXMuc3ViU2VsZWN0ZWRUYWJJbmRleENoYW5nZS5uZXh0KHZhbHVlKTtcblxuICAgIGlmICh0aGlzLnN1YlRhYkdyb3VwKSB7XG4gICAgICB0aGlzLnN1YlRhYkdyb3VwLnNlbGVjdGVkSW5kZXggPSB2YWx1ZTtcbiAgICAgIHRoaXMubWFya0ZvckNoZWNrKCk7XG4gICAgICAvLyBXYWl0IHRhYiBjaGFuZ2UgaW4gVUksIGJlZm9yZSByZWFsaWduIGluayB0YWJcbiAgICAgIHNldFRpbWVvdXQoKCkgPT4gdGhpcy5zdWJUYWJHcm91cC5yZWFsaWduSW5rQmFyKCksIDIwMCk7XG4gICAgfVxuICB9XG59XG4iLCI8YXBwLXRvb2xiYXIgW2RlZmF1bHRCYWNrSHJlZl09XCJwYXJlbnRQYXRoXCI+XG4gIDxpb24tdGl0bGUgW2lubmVySFRNTF09XCIkdGl0bGUgfCBhc3luY1wiPjwvaW9uLXRpdGxlPlxuPC9hcHAtdG9vbGJhcj5cblxuPGlvbi1jb250ZW50PlxuICA8bWF0LXRhYi1ncm91cFxuICAgICN0YWJHcm91cFxuICAgIFsoc2VsZWN0ZWRJbmRleCldPVwic2VsZWN0ZWRUYWJJbmRleFwiXG4gICAgKHNlbGVjdGVkVGFiQ2hhbmdlKT1cIm9uVGFiQ2hhbmdlKCRldmVudClcIlxuICAgIGNsYXNzPVwibWF0LW1kYy10YWItZGlzYWJsZWQtaGlkZGVuXCJcbiAgICBkeW5hbWljSGVpZ2h0XG4gICAgW21hdC1zdHJldGNoLXRhYnNdPVwidG9nZ2xlU3RyZXRjaFRhYi5jaGVja2VkXCJcbiAgPlxuICAgIDwhLS0gVEFCOiAxIC0tPlxuICAgIDxtYXQtdGFiXG4gICAgICBsYWJlbD1cIkRldGFpbHNcIlxuICAgICAgY2xhc3M9XCJpb24tcGFkZGluZ1wiXG4gICAgICBhcHBTdWJNZW51VGFiXG4gICAgICBbc3ViTWVudVRpdGxlXT1cIigkdGl0bGUgfCBhc3luYykgfHwgJydcIlxuICAgICAgW3BhcmVudFBhdGhdPVwicGFyZW50UGF0aFwiXG4gICAgPlxuICAgICAgPG5nLXRlbXBsYXRlIG1hdC10YWItbGFiZWw+XG4gICAgICAgIDxpb24tbGFiZWw+RGV0YWlsczwvaW9uLWxhYmVsPlxuICAgICAgPC9uZy10ZW1wbGF0ZT5cblxuICAgICAgPGRpdiBjbGFzcz1cImlvbi1wYWRkaW5nXCI+XG4gICAgICAgIDxwPkEgZmlyc3QgdGFiPC9wPlxuXG4gICAgICAgIDxwIFtjbGFzcy5jZGstdmlzdWFsbHktaGlkZGVuXT1cInNob3dUaGlyZFRhYlwiPlxuICAgICAgICAgIDxpb24tdG9nZ2xlICN0b2dnbGVUaGlyZD5Ub2dnbGUgVGhpcmQgVGFiPC9pb24tdG9nZ2xlPlxuICAgICAgICA8L3A+XG5cbiAgICAgICAgPHA+XG4gICAgICAgICAgPGlvbi10b2dnbGUgI3RvZ2dsZVN0cmV0Y2hUYWI+U3RyZXRjaCBUYWJzPC9pb24tdG9nZ2xlPlxuICAgICAgICA8L3A+XG5cbiAgICAgICAgPHA+XG4gICAgICAgICAgPGlvbi1idXR0b24gKGNsaWNrKT1cImNoYW5nZVRpdGxlKCRldmVudClcIj5DaGFuZ2UgcGFnZSB0aXRsZTwvaW9uLWJ1dHRvbj5cblxuICAgICAgICAgIDxpb24tYnV0dG9uIChjbGljayk9XCJhZGRTdWJNZW51SXRlbSgkZXZlbnQpXCI+QWRkIHN1YiBtZW51IG90aGVyIDM8L2lvbi1idXR0b24+XG5cbiAgICAgICAgICA8aW9uLWJ1dHRvbiAoY2xpY2spPVwiYWRkT3V0c2lkZVJvdXRlU3ViTWVudUl0ZW0oJGV2ZW50LCB0cnVlKVwiPlxuICAgICAgICAgICAgQWRkIHN1YiBtZW51IChvdXRzaWRlIHJvdXRlKSAtIHBpbm5lZFxuICAgICAgICAgIDwvaW9uLWJ1dHRvbj5cblxuICAgICAgICAgIDxpb24tYnV0dG9uIChjbGljayk9XCJhZGRPdXRzaWRlUm91dGVTdWJNZW51SXRlbSgkZXZlbnQsIGZhbHNlKVwiPlxuICAgICAgICAgICAgQWRkIHN1YiBtZW51IChvdXRzaWRlIHJvdXRlKSAtIG5vdCBwaW5uZWRcbiAgICAgICAgICA8L2lvbi1idXR0b24+XG4gICAgICAgIDwvcD5cblxuICAgICAgICA8cD5cbiAgICAgICAgICAmbmJzcDsmbmJzcDtcbiAgICAgICAgICA8aW9uLWJ1dHRvbiAoY2xpY2spPVwiZW5hYmxlTWVudShmYWxzZSlcIiAqbmdJZj1cIm1lbnVTZXJ2aWNlLmVuYWJsZWQgfCBhc3luY1wiPkRpc2FibGUgbWVudTwvaW9uLWJ1dHRvbj5cbiAgICAgICAgICA8aW9uLWJ1dHRvbiAoY2xpY2spPVwiZW5hYmxlTWVudSh0cnVlKVwiICpuZ0lmPVwiKG1lbnVTZXJ2aWNlLmVuYWJsZWQgfCBhc3luYykgIT09IHRydWVcIj5FbmFibGUgbWVudTwvaW9uLWJ1dHRvbj5cbiAgICAgICAgICA8aW9uLWJ1dHRvbiAoY2xpY2spPVwidG9nZ2xlU3BsaXRQYW5lV2hlbigpXCIgW2Rpc2FibGVkXT1cIihtZW51U2VydmljZS5lbmFibGVkIHwgYXN5bmMpICE9PSB0cnVlXCI+XG4gICAgICAgICAgICBUb2dnbGUgc3BsaXQgcGFuZVxuICAgICAgICAgIDwvaW9uLWJ1dHRvbj5cbiAgICAgICAgPC9wPlxuICAgICAgPC9kaXY+XG4gICAgPC9tYXQtdGFiPlxuXG4gICAgPCEtLSBUQUI6IDIgLS0+XG4gICAgPG1hdC10YWJcbiAgICAgIGxhYmVsPVwiU2Vjb25kXCJcbiAgICAgIGNsYXNzPVwiaW9uLXBhZGRpbmdcIlxuICAgICAgYXBwU3ViTWVudVRhYlxuICAgICAgW3N1Yk1lbnVJY29uXT1cInsgaWNvbjogJ3NldHRpbmdzJyB9XCJcbiAgICAgIFtzdWJNZW51VGl0bGVdPVwiJHNlY29uZFRhYlRpdGxlIHwgYXN5bmNcIlxuICAgID5cbiAgICAgIDxuZy10ZW1wbGF0ZSBtYXQtdGFiLWxhYmVsPlxuICAgICAgICA8aW9uLWxhYmVsIFtpbm5lckhUTUxdPVwiJHNlY29uZFRhYlRpdGxlIHwgYXN5bmNcIj48L2lvbi1sYWJlbD5cbiAgICAgIDwvbmctdGVtcGxhdGU+XG5cbiAgICAgIDxkaXYgY2xhc3M9XCJpb24tcGFkZGluZ1wiPlxuICAgICAgICA8cD5BIHNlY29uZCB0YWI8L3A+XG5cbiAgICAgICAgPHAgKm5nSWY9XCJzaG93T3RoZXJMaW5rc1wiPlxuICAgICAgICAgIE5hdmlnYXRlIHRvIDpcbiAgICAgICAgICA8YSBbcm91dGVyTGlua109XCJjaGlsZFBhdGggKyAnLzEnXCI+e3sgY2hpbGRQYXRoIH19LzE8L2E+XG4gICAgICAgICAgPGJyIC8+XG4gICAgICAgICAgTmF2aWdhdGUgdG8gOlxuICAgICAgICAgIDxhIFtyb3V0ZXJMaW5rXT1cImNoaWxkUGF0aCArICcvMidcIj57eyBjaGlsZFBhdGggfX0vMjwvYT5cbiAgICAgICAgPC9wPlxuXG4gICAgICAgIDxwPlxuICAgICAgICAgIDxpb24tYnV0dG9uIChjbGljayk9XCJjaGFuZ2VTZWNvbmRUYWJUaXRsZSgkZXZlbnQpXCI+Q2hhbmdlIHRhYiBsYWJlbDwvaW9uLWJ1dHRvbj5cbiAgICAgICAgPC9wPlxuICAgICAgPC9kaXY+XG4gICAgPC9tYXQtdGFiPlxuXG4gICAgPCEtLSBUQUI6IDMgLS0+XG4gICAgPG1hdC10YWJcbiAgICAgIFtsYWJlbF09XCJ0aGlyZFRhYlRpdGxlXCJcbiAgICAgIGNsYXNzPVwiaW9uLXBhZGRpbmdcIlxuICAgICAgW2Rpc2FibGVkXT1cIiFzaG93VGhpcmRUYWIgJiYgIXRvZ2dsZVRoaXJkLmNoZWNrZWRcIlxuICAgICAgYXBwU3ViTWVudVRhYlxuICAgICAgW3N1Yk1lbnVJY29uXT1cInsgaWNvbjogJ25vbmUnIH1cIlxuICAgID5cbiAgICAgIDxuZy10ZW1wbGF0ZSBtYXQtdGFiLWxhYmVsPlxuICAgICAgICA8aW9uLWxhYmVsIG1hdEJhZGdlPVwiMVwiIG1hdEJhZGdlQ29sb3I9XCJwcmltYXJ5XCIgbWF0QmFkZ2VPdmVybGFwPVwiZmFsc2VcIiBtYXRCYWRnZVNpemU9XCJzbWFsbFwiPlxuICAgICAgICAgIHt7IHRoaXJkVGFiVGl0bGUgfX1cbiAgICAgICAgPC9pb24tbGFiZWw+XG4gICAgICA8L25nLXRlbXBsYXRlPlxuXG4gICAgICA8ZGl2IGNsYXNzPVwiaW9uLXBhZGRpbmdcIj5BIHRoaXJkIHRhYjwvZGl2PlxuICAgIDwvbWF0LXRhYj5cblxuICAgIDwhLS0gVEFCOiA0IC0tPlxuICAgIDxtYXQtdGFiIGFwcFN1Yk1lbnVUYWIgW3N1Yk1lbnVJY29uXT1cInsgaWNvbjogJ3BlcnNvbicgfVwiIGxhYmVsPVwiU3ViIFRhYlwiIGNsYXNzPVwiaW9uLXBhZGRpbmdcIj5cbiAgICAgIDxuZy10ZW1wbGF0ZSBtYXQtdGFiLWxhYmVsPlxuICAgICAgICA8aW9uLWxhYmVsPlN1YiBUYWI8L2lvbi1sYWJlbD5cbiAgICAgIDwvbmctdGVtcGxhdGU+XG5cbiAgICAgIDxtYXQtdGFiLWdyb3VwXG4gICAgICAgICNzdWJUYWJHcm91cFxuICAgICAgICBbKHNlbGVjdGVkSW5kZXgpXT1cInN1YlNlbGVjdGVkVGFiSW5kZXhcIlxuICAgICAgICAoc2VsZWN0ZWRUYWJDaGFuZ2UpPVwib25UYWJDaGFuZ2UoJGV2ZW50LCAnc3VidGFiJylcIlxuICAgICAgICBjbGFzcz1cIm1hdC1tZGMtdGFiLWRpc2FibGVkLWhpZGRlblwiXG4gICAgICAgIGR5bmFtaWNIZWlnaHRcbiAgICAgID5cbiAgICAgICAgPG1hdC10YWIgbGFiZWw9XCJTdWIxXCIgY2xhc3M9XCJpb24tcGFkZGluZ1wiPlxuICAgICAgICAgIDxuZy10ZW1wbGF0ZSBtYXQtdGFiLWxhYmVsPlxuICAgICAgICAgICAgPGlvbi1sYWJlbD5TdWIxPC9pb24tbGFiZWw+XG4gICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cblxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJpb24tcGFkZGluZ1wiPlxuICAgICAgICAgICAgPHA+Rmlyc3QgU3ViVGFiPC9wPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L21hdC10YWI+XG5cbiAgICAgICAgPG1hdC10YWIgbGFiZWw9XCJTdWIyXCIgY2xhc3M9XCJpb24tcGFkZGluZ1wiPlxuICAgICAgICAgIDxuZy10ZW1wbGF0ZSBtYXQtdGFiLWxhYmVsPlxuICAgICAgICAgICAgPGlvbi1sYWJlbD5TdWIyPC9pb24tbGFiZWw+XG4gICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cblxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJpb24tcGFkZGluZ1wiPlxuICAgICAgICAgICAgPHA+U2Vjb25kIFN1YlRhYjwvcD5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9tYXQtdGFiPlxuICAgICAgPC9tYXQtdGFiLWdyb3VwPlxuICAgIDwvbWF0LXRhYj5cbiAgPC9tYXQtdGFiLWdyb3VwPlxuPC9pb24tY29udGVudD5cbiJdfQ==
|
|
165
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVudS50ZXN0aW5nLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2FwcC9jb3JlL21lbnUvdGVzdGluZy9tZW51LnRlc3RpbmcudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBwL2NvcmUvbWVudS90ZXN0aW5nL21lbnUudGVzdGluZy5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBaUIsU0FBUyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQXFCLE1BQU0sRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFLcEgsT0FBTyxFQUFFLGVBQWUsRUFBRSxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDaEQsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQ2xELE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUV0RCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sb0NBQW9DLENBQUM7Ozs7Ozs7Ozs7OztBQU9sRSxNQUFNLE9BQU8sZUFBZ0IsU0FBUSxZQUFZO0lBeUNuQztJQXhDRixTQUFTLEdBQUcsaUJBQWlCLENBQUM7SUFDOUIsU0FBUyxHQUFHLEVBQUUsQ0FBQztJQUNmLGFBQWEsR0FBRyxFQUFFLENBQUM7SUFDbkIsVUFBVSxHQUFXLElBQUksQ0FBQztJQUMxQixJQUFJLEdBQVcsSUFBSSxDQUFDO0lBQ3BCLGNBQWMsR0FBRyxJQUFJLENBQUM7SUFDdEIsWUFBWSxHQUFHLEtBQUssQ0FBQztJQUVyQixNQUFNLEdBQUcsSUFBSSxPQUFPLEVBQVUsQ0FBQztJQUMvQixlQUFlLEdBQUcsSUFBSSxPQUFPLEVBQVUsQ0FBQztJQUN4QyxjQUFjLEdBQUcsSUFBSSxlQUFlLENBQVMsQ0FBQyxDQUFDLENBQUM7SUFDaEQsb0JBQW9CLEdBQUcsQ0FBQyxDQUFDO0lBRW5DLFdBQVcsQ0FBUztJQUVwQixJQUFhLG1CQUFtQixDQUFD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R0FyS1UsZUFBZTs0RkFBZixlQUFlLHNVQ2hCNUIsdXZKQXdKQTs7NEZEeElhLGVBQWU7a0JBTDNCLFNBQVM7K0JBQ0Usa0JBQWtCOzJOQW9CZixtQkFBbUI7c0JBQS9CLEtBQUs7Z0JBT2EseUJBQXlCO3NCQUEzQyxNQUFNO2dCQUVxQyxXQUFXO3NCQUF0RCxTQUFTO3VCQUFDLGFBQWEsRUFBRSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBZnRlclZpZXdJbml0LCBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE9uRGVzdHJveSwgT25Jbml0LCBPdXRwdXQsIFZpZXdDaGlsZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTWVudVNlcnZpY2UgfSBmcm9tICcuLi9tZW51LnNlcnZpY2UnO1xuaW1wb3J0IHsgQWN0aXZhdGVkUm91dGUsIFJvdXRlciB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQgeyBBbGVydENvbnRyb2xsZXIsIE5hdkNvbnRyb2xsZXIgfSBmcm9tICdAaW9uaWMvYW5ndWxhcic7XG5pbXBvcnQgeyBUcmFuc2xhdGVTZXJ2aWNlIH0gZnJvbSAnQG5neC10cmFuc2xhdGUvY29yZSc7XG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QsIFN1YmplY3QgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IERhdGVVdGlscyB9IGZyb20gJy4uLy4uLy4uL3NoYXJlZC9kYXRlcyc7XG5pbXBvcnQgeyB0b0Jvb2xlYW4gfSBmcm9tICcuLi8uLi8uLi9zaGFyZWQvZnVuY3Rpb25zJztcbmltcG9ydCB7IE1hdFRhYkdyb3VwIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvdGFicyc7XG5pbXBvcnQgeyBBcHBUYWJFZGl0b3IgfSBmcm9tICcuLi8uLi9mb3JtL2VudGl0eS90YWItZWRpdG9yLmNsYXNzJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYXBwLXRlc3RpbmctbWVudScsXG4gIHRlbXBsYXRlVXJsOiAnLi9tZW51LnRlc3RpbmcuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL21lbnUudGVzdGluZy5zY3NzJ10sXG59KVxuZXhwb3J0IGNsYXNzIE1lbnVUZXN0aW5nUGFnZSBleHRlbmRzIEFwcFRhYkVkaXRvciBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95LCBBZnRlclZpZXdJbml0IHtcbiAgcHJvdGVjdGVkIGxvZ1ByZWZpeCA9ICdbbWVudS10ZXN0aW5nXSAnO1xuICBwcm90ZWN0ZWQgY2hpbGRQYXRoID0gJyc7XG4gIHByb3RlY3RlZCB0aGlyZFRhYlRpdGxlID0gJyc7XG4gIHByb3RlY3RlZCBwYXJlbnRQYXRoOiBzdHJpbmcgPSBudWxsO1xuICBwcm90ZWN0ZWQgcGF0aDogc3RyaW5nID0gbnVsbDtcbiAgcHJvdGVjdGVkIHNob3dPdGhlckxpbmtzID0gdHJ1ZTtcbiAgcHJvdGVjdGVkIHNob3dUaGlyZFRhYiA9IGZhbHNlO1xuXG4gIHByb3RlY3RlZCAkdGl0bGUgPSBuZXcgU3ViamVjdDxzdHJpbmc+KCk7XG4gIHByb3RlY3RlZCAkc2Vjb25kVGFiVGl0bGUgPSBuZXcgU3ViamVjdDxzdHJpbmc+KCk7XG4gIHByb3RlY3RlZCAkdGhpcmRUYWJCYWRnZSA9IG5ldyBCZWhhdmlvclN1YmplY3Q8bnVtYmVyPigxKTtcbiAgcHJvdGVjdGVkIF9zdWJTZWxlY3RlZFRhYkluZGV4ID0gMDtcblxuICBzdWJUYWJDb3VudDogbnVtYmVyO1xuXG4gIEBJbnB1dCgpIHNldCBzdWJTZWxlY3RlZFRhYkluZGV4KHZhbHVlOiBudW1iZXIpIHtcbiAgICB0aGlzLnNldFN1YlNlbGVjdGVkVGFiSW5kZXgodmFsdWUpO1xuICB9XG4gIGdldCBzdWJTZWxlY3RlZFRhYkluZGV4KCk6IG51bWJlciB7XG4gICAgcmV0dXJuIHRoaXMuX3N1YlNlbGVjdGVkVGFiSW5kZXg7XG4gIH1cblxuICBAT3V0cHV0KCkgcmVhZG9ubHkgc3ViU2VsZWN0ZWRUYWJJbmRleENoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8bnVtYmVyPigpO1xuXG4gIEBWaWV3Q2hpbGQoJ3N1YlRhYkdyb3VwJywgeyBzdGF0aWM6IHRydWUgfSkgc3ViVGFiR3JvdXA6IE1hdFRhYkdyb3VwO1xuXG4gIHByb3RlY3RlZCBzZXQgdGl0bGUodmFsdWU6IHN0cmluZykge1xuICAgIHRoaXMuJHRpdGxlLm5leHQodmFsdWUpO1xuICB9XG5cbiAgcHJvdGVjdGVkIHNldCBzZWNvbmRUYWJUaXRsZSh2YWx1ZTogc3RyaW5nKSB7XG4gICAgdGhpcy4kc2Vjb25kVGFiVGl0bGUubmV4dCh2YWx1ZSk7XG4gIH1cblxuICBjb25zdHJ1Y3RvcihcbiAgICByb3V0ZTogQWN0aXZhdGVkUm91dGUsIC8vIE1vZGFsIGVkaXRvciBnaXZlICdudWxsJ1xuICAgIHJvdXRlcjogUm91dGVyLFxuICAgIG5hdkNvbnRyb2xsZXI6IE5hdkNvbnRyb2xsZXIsXG4gICAgYWxlcnRDdHJsOiBBbGVydENvbnRyb2xsZXIsXG4gICAgdHJhbnNsYXRlOiBUcmFuc2xhdGVTZXJ2aWNlLFxuICAgIHByb3RlY3RlZCBtZW51U2VydmljZTogTWVudVNlcnZpY2VcbiAgKSB7XG4gICAgc3VwZXIocm91dGUsIHJvdXRlciwgbmF2Q29udHJvbGxlciwgYWxlcnRDdHJsLCB0cmFuc2xhdGUsIHtcbiAgICAgIHRhYkNvdW50OiA0LFxuICAgIH0pO1xuICB9XG5cbiAgbmdPbkluaXQoKSB7XG4gICAgY29uc29sZS5kZWJ1ZyhgJHt0aGlzLmxvZ1ByZWZpeH0gSW5pdCBwYWdlLi4uYCk7XG5cbiAgICBzdXBlci5uZ09uSW5pdCgpO1xuXG4gICAgdGhpcy5zaG93VGhpcmRUYWIgPSB0aGlzLnJvdXRlLnNuYXBzaG90LnF1ZXJ5UGFyYW1NYXAuZ2V0KCd0YWInKSA9PT0gJzInO1xuICB9XG5cbiAgbmdBZnRlclZpZXdJbml0KCkge1xuICAgIHN1cGVyLm5nQWZ0ZXJWaWV3SW5pdCgpO1xuICAgIHRoaXMuaW5pdFN1Yk1lbnUoKTtcbiAgfVxuXG4gIG5nT25EZXN0cm95KCkge1xuICAgIHN1cGVyLm5nT25EZXN0cm95KCk7XG4gICAgY29uc29sZS5kZWJ1ZyhgJHt0aGlzLmxvZ1ByZWZpeH1EZXN0cm95aW5nLi4uYCk7XG4gIH1cblxuICBsb2FkKGlkPzogbnVtYmVyLCBvcHRpb25zPzogYW55KTogUHJvbWlzZTx2b2lkPiB7XG4gICAgcmV0dXJuIFByb21pc2UucmVzb2x2ZSh1bmRlZmluZWQpO1xuICB9XG5cbiAgZ2V0IGlzTmV3RGF0YSgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICByZWxvYWQoKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgcmV0dXJuIFByb21pc2UucmVzb2x2ZSh1bmRlZmluZWQpO1xuICB9XG5cbiAgc2F2ZShldmVudDogRXZlbnQgfCB1bmRlZmluZWQsIG9wdGlvbnM6IGFueSk6IFByb21pc2U8Ym9vbGVhbj4ge1xuICAgIHJldHVybiBQcm9taXNlLnJlc29sdmUoZmFsc2UpO1xuICB9XG5cbiAgY2hhbmdlVGl0bGUoZXZlbnQ/OiBVSUV2ZW50KSB7XG4gICAgdGhpcy50aXRsZSA9ICcnO1xuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgY29uc3QgdGltZSA9IERhdGVVdGlscy5tb21lbnQoKS5mb3JtYXQoJ0hIOm1tOnNzJyk7XG4gICAgICB0aGlzLnRpdGxlID0gYCR7dGhpcy5nZXREZWZhdWx0VGl0bGUoKX0gPGI+JHt0aW1lfTwvYj5gO1xuICAgIH0sIDIwMDApO1xuICB9XG5cbiAgY2hhbmdlU2Vjb25kVGFiVGl0bGUoZXZlbnQ/OiBVSUV2ZW50KSB7XG4gICAgY29uc3QgdGltZSA9IERhdGVVdGlscy5tb21lbnQoKS5mb3JtYXQoJ0hIOm1tOnNzJyk7XG4gICAgdGhpcy5zZWNvbmRUYWJUaXRsZSA9IGA8c21hbGw+JHt0aW1lfTxici8+PC9zbWFsbD5TZWNvbmRgO1xuICB9XG5cbiAgYWRkU3ViTWVudUl0ZW0oZXZlbnQ/OiBVSUV2ZW50KSB7XG4gICAgdGhpcy5tZW51U2VydmljZS5hZGRTdWJNZW51SXRlbSh7XG4gICAgICB0aXRsZTogJ0Zha2UnLFxuICAgICAgcGFyZW50UGF0aDogdGhpcy5wYXRoLFxuICAgICAgcGF0aDogdGhpcy5wYXRoICsgJy9mYWtlJyxcbiAgICAgIC8vcGlubmVkOiB0cnVlXG4gICAgfSk7XG4gIH1cblxuICBhZGRPdXRzaWRlUm91dGVTdWJNZW51SXRlbShldmVudD86IFVJRXZlbnQsIHBpbm5lZD86IGJvb2xlYW4pIHtcbiAgICB0aGlzLm1lbnVTZXJ2aWNlLmFkZFN1Yk1lbnVJdGVtKHtcbiAgICAgIHRpdGxlOiAnRmFrZScsXG4gICAgICBwYXJlbnRQYXRoOiAnL2FkbWluL3VzZXJzJyxcbiAgICAgIHBhdGg6ICcvYWRtaW4vdXNlcnMvZmFrZScsXG4gICAgICBwaW5uZWQ6IHRvQm9vbGVhbihwaW5uZWQsIGZhbHNlKSxcbiAgICB9KTtcbiAgfVxuXG4gIHByb3RlY3RlZCBlbmFibGVNZW51KHZhbHVlOiBib29sZWFuKSB7XG4gICAgdGhpcy5tZW51U2VydmljZS5lbmFibGUodmFsdWUpO1xuICB9XG4gIHByb3RlY3RlZCB0b2dnbGVTcGxpdFBhbmVXaGVuKCkge1xuICAgIHRoaXMubWVudVNlcnZpY2UudG9nZ2xlU3BsaXRQYW5lV2hlbigpO1xuICB9XG4gIHByb3RlY3RlZCBhc3luYyBpbml0U3ViTWVudSgpIHtcbiAgICB0aGlzLnRpdGxlID0gYXdhaXQgdGhpcy5jb21wdXRlVGl0bGUoKTtcbiAgICB0aGlzLnNlY29uZFRhYlRpdGxlID0gJ090aGVycyc7XG4gICAgdGhpcy50aGlyZFRhYlRpdGxlID0gJ1RoaXJkJztcbiAgICB0aGlzLnBhcmVudFBhdGggPSAnL3Rlc3RpbmcnO1xuICAgIHRoaXMucGF0aCA9IHRoaXMucGFyZW50UGF0aCArICcvc2hhcmVkL21lbnUnO1xuICAgIHRoaXMuY2hpbGRQYXRoID0gdGhpcy5wYXRoICsgJy9vdGhlcnMnO1xuICAgIGNvbnNvbGUuZGVidWcoYCR7dGhpcy5sb2dQcmVmaXh9IFNldHVwIHdpdGhgLCB7IHBhdGg6IHRoaXMucGF0aCwgcGFyZW50UGF0aDogdGhpcy5wYXJlbnRQYXRoIH0pO1xuICAgIHRoaXMubWFya0ZvckNoZWNrKCk7XG4gIH1cblxuICBwcm90ZWN0ZWQgZ2V0Rmlyc3RJbnZhbGlkVGFiSW5kZXgoKTogbnVtYmVyIHtcbiAgICByZXR1cm4gMDtcbiAgfVxuXG4gIHByb3RlY3RlZCBnZXREZWZhdWx0VGl0bGUoKSB7XG4gICAgcmV0dXJuICdNZW51JztcbiAgfVxuXG4gIHByb3RlY3RlZCBhc3luYyBjb21wdXRlVGl0bGUoKSB7XG4gICAgcmV0dXJuIHRoaXMuZ2V0RGVmYXVsdFRpdGxlKCk7XG4gIH1cblxuICBzZXRTdWJTZWxlY3RlZFRhYkluZGV4KHZhbHVlOiBudW1iZXIpIHtcbiAgICAvLyBGaXggdmFsdWVcbiAgICBpZiAodmFsdWUgPCAwKSB7XG4gICAgICB2YWx1ZSA9IDA7XG4gICAgfSBlbHNlIGlmICh2YWx1ZSA+IHRoaXMudGFiQ291bnQgLSAxKSB7XG4gICAgICBjb25zb2xlLndhcm4oYFttZW51LW90aGVyXSBJbnZhbGlkIHRhYiBpbmRleCAke3ZhbHVlfS4gTWF4IHZhbHVlIGlzICR7dGhpcy5zdWJUYWJDb3VudCAtIDF9YCk7XG4gICAgICB2YWx1ZSA9IHRoaXMuX3N1YlNlbGVjdGVkVGFiSW5kZXg7XG4gICAgfVxuXG4gICAgdGhpcy5fc3ViU2VsZWN0ZWRUYWJJbmRleCA9IHZhbHVlO1xuICAgIHRoaXMuc3ViU2VsZWN0ZWRUYWJJbmRleENoYW5nZS5uZXh0KHZhbHVlKTtcblxuICAgIGlmICh0aGlzLnN1YlRhYkdyb3VwKSB7XG4gICAgICB0aGlzLnN1YlRhYkdyb3VwLnNlbGVjdGVkSW5kZXggPSB2YWx1ZTtcbiAgICAgIHRoaXMubWFya0ZvckNoZWNrKCk7XG4gICAgICAvLyBXYWl0IHRhYiBjaGFuZ2UgaW4gVUksIGJlZm9yZSByZWFsaWduIGluayB0YWJcbiAgICAgIHNldFRpbWVvdXQoKCkgPT4gdGhpcy5zdWJUYWJHcm91cC5yZWFsaWduSW5rQmFyKCksIDIwMCk7XG4gICAgfVxuICB9XG5cbiAgcHJvdGVjdGVkIGluY3JlbWVudFRoaXJkVGFiQmFkZ2UoKSB7XG4gICAgY29uc29sZS5sb2coJ2luY3JlbWVudFRoaXJkVGFiQmFkZ2UnKTtcbiAgICB0aGlzLiR0aGlyZFRhYkJhZGdlLm5leHQodGhpcy4kdGhpcmRUYWJCYWRnZS52YWx1ZSArIDEpO1xuICB9XG59XG4iLCI8YXBwLXRvb2xiYXIgW2RlZmF1bHRCYWNrSHJlZl09XCJwYXJlbnRQYXRoXCI+XG4gIDxpb24tdGl0bGUgW2lubmVySFRNTF09XCIkdGl0bGUgfCBhc3luY1wiPjwvaW9uLXRpdGxlPlxuPC9hcHAtdG9vbGJhcj5cblxuPGlvbi1jb250ZW50PlxuICA8bWF0LXRhYi1ncm91cFxuICAgICN0YWJHcm91cFxuICAgIFsoc2VsZWN0ZWRJbmRleCldPVwic2VsZWN0ZWRUYWJJbmRleFwiXG4gICAgKHNlbGVjdGVkVGFiQ2hhbmdlKT1cIm9uVGFiQ2hhbmdlKCRldmVudClcIlxuICAgIGNsYXNzPVwibWF0LW1kYy10YWItZGlzYWJsZWQtaGlkZGVuXCJcbiAgICBkeW5hbWljSGVpZ2h0XG4gICAgW21hdC1zdHJldGNoLXRhYnNdPVwidG9nZ2xlU3RyZXRjaFRhYi5jaGVja2VkXCJcbiAgPlxuICAgIDwhLS0gVEFCOiAxIC0tPlxuICAgIDxtYXQtdGFiXG4gICAgICBsYWJlbD1cIkRldGFpbHNcIlxuICAgICAgY2xhc3M9XCJpb24tcGFkZGluZ1wiXG4gICAgICBhcHBTdWJNZW51VGFiXG4gICAgICBbc3ViTWVudVRpdGxlXT1cIigkdGl0bGUgfCBhc3luYykgfHwgJydcIlxuICAgICAgW3BhcmVudFBhdGhdPVwicGFyZW50UGF0aFwiXG4gICAgPlxuICAgICAgPG5nLXRlbXBsYXRlIG1hdC10YWItbGFiZWw+XG4gICAgICAgIDxtYXQtaWNvbj5pbmZvcm1hdGlvbi1jaXJjbGU8L21hdC1pY29uPlxuICAgICAgICA8aW9uLWxhYmVsPkRldGFpbHM8L2lvbi1sYWJlbD5cbiAgICAgIDwvbmctdGVtcGxhdGU+XG5cbiAgICAgIDxkaXYgY2xhc3M9XCJpb24tcGFkZGluZ1wiPlxuICAgICAgICA8cD5BIGZpcnN0IHRhYjwvcD5cblxuICAgICAgICA8cCBbY2xhc3MuY2RrLXZpc3VhbGx5LWhpZGRlbl09XCJzaG93VGhpcmRUYWJcIj5cbiAgICAgICAgICA8aW9uLXRvZ2dsZSAjdG9nZ2xlVGhpcmQ+VG9nZ2xlIFRoaXJkIFRhYjwvaW9uLXRvZ2dsZT5cbiAgICAgICAgPC9wPlxuXG4gICAgICAgIDxwPlxuICAgICAgICAgIDxpb24tdG9nZ2xlICN0b2dnbGVTdHJldGNoVGFiPlN0cmV0Y2ggVGFiczwvaW9uLXRvZ2dsZT5cbiAgICAgICAgPC9wPlxuXG4gICAgICAgIDxwPlxuICAgICAgICAgIDxpb24tYnV0dG9uIChjbGljayk9XCJjaGFuZ2VUaXRsZSgkZXZlbnQpXCI+Q2hhbmdlIHBhZ2UgdGl0bGU8L2lvbi1idXR0b24+XG5cbiAgICAgICAgICA8aW9uLWJ1dHRvbiAoY2xpY2spPVwiYWRkU3ViTWVudUl0ZW0oJGV2ZW50KVwiPkFkZCBzdWIgbWVudSBvdGhlciAzPC9pb24tYnV0dG9uPlxuXG4gICAgICAgICAgPGlvbi1idXR0b24gKGNsaWNrKT1cImFkZE91dHNpZGVSb3V0ZVN1Yk1lbnVJdGVtKCRldmVudCwgdHJ1ZSlcIj5cbiAgICAgICAgICAgIEFkZCBzdWIgbWVudSAob3V0c2lkZSByb3V0ZSkgLSBwaW5uZWRcbiAgICAgICAgICA8L2lvbi1idXR0b24+XG5cbiAgICAgICAgICA8aW9uLWJ1dHRvbiAoY2xpY2spPVwiYWRkT3V0c2lkZVJvdXRlU3ViTWVudUl0ZW0oJGV2ZW50LCBmYWxzZSlcIj5cbiAgICAgICAgICAgIEFkZCBzdWIgbWVudSAob3V0c2lkZSByb3V0ZSkgLSBub3QgcGlubmVkXG4gICAgICAgICAgPC9pb24tYnV0dG9uPlxuICAgICAgICA8L3A+XG5cbiAgICAgICAgPHA+XG4gICAgICAgICAgJm5ic3A7Jm5ic3A7XG4gICAgICAgICAgPGlvbi1idXR0b24gKGNsaWNrKT1cImVuYWJsZU1lbnUoZmFsc2UpXCIgKm5nSWY9XCJtZW51U2VydmljZS5lbmFibGVkIHwgYXN5bmNcIj5EaXNhYmxlIG1lbnU8L2lvbi1idXR0b24+XG4gICAgICAgICAgPGlvbi1idXR0b24gKGNsaWNrKT1cImVuYWJsZU1lbnUodHJ1ZSlcIiAqbmdJZj1cIihtZW51U2VydmljZS5lbmFibGVkIHwgYXN5bmMpICE9PSB0cnVlXCI+RW5hYmxlIG1lbnU8L2lvbi1idXR0b24+XG4gICAgICAgICAgPGlvbi1idXR0b24gKGNsaWNrKT1cInRvZ2dsZVNwbGl0UGFuZVdoZW4oKVwiIFtkaXNhYmxlZF09XCIobWVudVNlcnZpY2UuZW5hYmxlZCB8IGFzeW5jKSAhPT0gdHJ1ZVwiPlxuICAgICAgICAgICAgVG9nZ2xlIHNwbGl0IHBhbmVcbiAgICAgICAgICA8L2lvbi1idXR0b24+XG4gICAgICAgIDwvcD5cbiAgICAgIDwvZGl2PlxuICAgIDwvbWF0LXRhYj5cblxuICAgIDwhLS0gVEFCOiAyIC0tPlxuICAgIDxtYXQtdGFiXG4gICAgICBsYWJlbD1cIlNlY29uZFwiXG4gICAgICBjbGFzcz1cImlvbi1wYWRkaW5nXCJcbiAgICAgIGFwcFN1Yk1lbnVUYWJcbiAgICAgIFtzdWJNZW51SWNvbl09XCJ7IGljb246ICdzZXR0aW5ncycgfVwiXG4gICAgICBbc3ViTWVudVRpdGxlXT1cIiRzZWNvbmRUYWJUaXRsZSB8IGFzeW5jXCJcbiAgICA+XG4gICAgICA8bmctdGVtcGxhdGUgbWF0LXRhYi1sYWJlbD5cbiAgICAgICAgPG1hdC1pY29uPjxpb24taWNvbiBuYW1lPVwic2V0dGluZ3NcIj48L2lvbi1pY29uPjwvbWF0LWljb24+XG4gICAgICAgIDxpb24tbGFiZWwgW2lubmVySFRNTF09XCIkc2Vjb25kVGFiVGl0bGUgfCBhc3luY1wiPjwvaW9uLWxhYmVsPlxuICAgICAgPC9uZy10ZW1wbGF0ZT5cblxuICAgICAgPGRpdiBjbGFzcz1cImlvbi1wYWRkaW5nXCI+XG4gICAgICAgIDxwPkEgc2Vjb25kIHRhYjwvcD5cblxuICAgICAgICA8cCAqbmdJZj1cInNob3dPdGhlckxpbmtzXCI+XG4gICAgICAgICAgTmF2aWdhdGUgdG8gOlxuICAgICAgICAgIDxhIFtyb3V0ZXJMaW5rXT1cImNoaWxkUGF0aCArICcvMSdcIj57eyBjaGlsZFBhdGggfX0vMTwvYT5cbiAgICAgICAgICA8YnIgLz5cbiAgICAgICAgICBOYXZpZ2F0ZSB0byA6XG4gICAgICAgICAgPGEgW3JvdXRlckxpbmtdPVwiY2hpbGRQYXRoICsgJy8yJ1wiPnt7IGNoaWxkUGF0aCB9fS8yPC9hPlxuICAgICAgICA8L3A+XG5cbiAgICAgICAgPHA+XG4gICAgICAgICAgPGlvbi1idXR0b24gKGNsaWNrKT1cImNoYW5nZVNlY29uZFRhYlRpdGxlKCRldmVudClcIj5DaGFuZ2UgdGFiIGxhYmVsPC9pb24tYnV0dG9uPlxuICAgICAgICA8L3A+XG4gICAgICA8L2Rpdj5cbiAgICA8L21hdC10YWI+XG5cbiAgICA8IS0tIFRBQjogMyAtLT5cbiAgICA8bWF0LXRhYlxuICAgICAgW2xhYmVsXT1cInRoaXJkVGFiVGl0bGVcIlxuICAgICAgY2xhc3M9XCJpb24tcGFkZGluZ1wiXG4gICAgICBbZGlzYWJsZWRdPVwiIXNob3dUaGlyZFRhYiAmJiAhdG9nZ2xlVGhpcmQuY2hlY2tlZFwiXG4gICAgICBhcHBTdWJNZW51VGFiXG4gICAgICBbc3ViTWVudUJhZGdlXT1cIiR0aGlyZFRhYkJhZGdlIHwgYXN5bmNcIlxuICAgICAgW3N1Yk1lbnVJY29uXT1cInsgaWNvbjogJ25vbmUnIH1cIlxuICAgID5cbiAgICAgIDxuZy10ZW1wbGF0ZSBtYXQtdGFiLWxhYmVsPlxuICAgICAgICA8aW9uLWxhYmVsIFttYXRCYWRnZV09XCIkdGhpcmRUYWJCYWRnZSB8IGFzeW5jXCIgbWF0QmFkZ2VDb2xvcj1cInByaW1hcnlcIiBtYXRCYWRnZU92ZXJsYXA9XCJmYWxzZVwiIG1hdEJhZGdlU2l6ZT1cInNtYWxsXCI+XG4gICAgICAgICAge3sgdGhpcmRUYWJUaXRsZSB9fVxuICAgICAgICA8L2lvbi1sYWJlbD5cbiAgICAgIDwvbmctdGVtcGxhdGU+XG5cbiAgICAgIDxkaXYgY2xhc3M9XCJpb24tcGFkZGluZ1wiPlxuICAgICAgICA8cD5cbiAgICAgICAgICBBIHRoaXJkIHRhYiAod2l0aCBhIGJhZGdlKVxuICAgICAgICA8L3A+XG4gICAgICAgIDxpb24tYnV0dG9uIChjbGljayk9XCJpbmNyZW1lbnRUaGlyZFRhYkJhZGdlKClcIj5JbmNyZW1lbnQgYmFkZ2UgY291bnQ8L2lvbi1idXR0b24+XG4gICAgICA8L2Rpdj5cbiAgICA8L21hdC10YWI+XG5cbiAgICA8IS0tIFRBQjogNCAtLT5cbiAgICA8bWF0LXRhYiBhcHBTdWJNZW51VGFiIFtzdWJNZW51SWNvbl09XCJ7IGljb246ICdwZXJzb24nIH1cIiBsYWJlbD1cIlN1YiBUYWJcIiBjbGFzcz1cImlvbi1wYWRkaW5nXCI+XG4gICAgICA8bmctdGVtcGxhdGUgbWF0LXRhYi1sYWJlbD5cbiAgICAgICAgPG1hdC1pY29uPjxpb24taWNvbiBuYW1lPVwicGVyc29uXCI+PC9pb24taWNvbj48L21hdC1pY29uPlxuICAgICAgICA8aW9uLWxhYmVsPlN1YiBUYWI8L2lvbi1sYWJlbD5cbiAgICAgIDwvbmctdGVtcGxhdGU+XG5cbiAgICAgIDxtYXQtdGFiLWdyb3VwXG4gICAgICAgICNzdWJUYWJHcm91cFxuICAgICAgICBbKHNlbGVjdGVkSW5kZXgpXT1cInN1YlNlbGVjdGVkVGFiSW5kZXhcIlxuICAgICAgICAoc2VsZWN0ZWRUYWJDaGFuZ2UpPVwib25UYWJDaGFuZ2UoJGV2ZW50LCAnc3VidGFiJylcIlxuICAgICAgICBjbGFzcz1cIm1hdC1tZGMtdGFiLWRpc2FibGVkLWhpZGRlblwiXG4gICAgICAgIGR5bmFtaWNIZWlnaHRcbiAgICAgID5cbiAgICAgICAgPG1hdC10YWIgbGFiZWw9XCJTdWIxXCIgY2xhc3M9XCJpb24tcGFkZGluZ1wiPlxuICAgICAgICAgIDxuZy10ZW1wbGF0ZSBtYXQtdGFiLWxhYmVsPlxuICAgICAgICAgICAgPGlvbi1sYWJlbD5TdWIxPC9pb24tbGFiZWw+XG4gICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cblxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJpb24tcGFkZGluZ1wiPlxuICAgICAgICAgICAgPHA+Rmlyc3QgU3ViVGFiPC9wPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L21hdC10YWI+XG5cbiAgICAgICAgPG1hdC10YWIgbGFiZWw9XCJTdWIyXCIgY2xhc3M9XCJpb24tcGFkZGluZ1wiPlxuICAgICAgICAgIDxuZy10ZW1wbGF0ZSBtYXQtdGFiLWxhYmVsPlxuICAgICAgICAgICAgPGlvbi1sYWJlbD5TdWIyPC9pb24tbGFiZWw+XG4gICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cblxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJpb24tcGFkZGluZ1wiPlxuICAgICAgICAgICAgPHA+U2Vjb25kIFN1YlRhYjwvcD5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9tYXQtdGFiPlxuICAgICAgPC9tYXQtdGFiLWdyb3VwPlxuICAgIDwvbWF0LXRhYj5cbiAgPC9tYXQtdGFiLWdyb3VwPlxuPC9pb24tY29udGVudD5cbiJdfQ==
|