@skyux/tabs 7.0.0-beta.5 → 7.0.0-beta.7
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/documentation.json +664 -557
- package/esm2020/lib/modules/sectioned-form/sectioned-form.component.mjs +2 -2
- package/esm2020/lib/modules/tabs/tab-button-view-model.mjs +1 -1
- package/esm2020/lib/modules/tabs/tab-button.component.mjs +5 -3
- package/esm2020/lib/modules/tabs/tab.component.mjs +73 -33
- package/esm2020/lib/modules/tabs/tabs.module.mjs +5 -2
- package/esm2020/lib/modules/tabs/tabset-adapter.service.mjs +34 -22
- package/esm2020/lib/modules/tabs/tabset-nav-button-disabled.pipe.mjs +22 -0
- package/esm2020/lib/modules/tabs/tabset-nav-button.component.mjs +17 -23
- package/esm2020/lib/modules/tabs/tabset-permalink.service.mjs +41 -35
- package/esm2020/lib/modules/tabs/tabset-tab-indexes-change.mjs +1 -1
- package/esm2020/lib/modules/tabs/tabset.component.mjs +220 -216
- package/esm2020/lib/modules/tabs/tabset.service.mjs +67 -51
- package/esm2020/lib/modules/vertical-tabset/vertical-tab.component.mjs +5 -3
- package/esm2020/lib/modules/vertical-tabset/vertical-tabset-group.component.mjs +2 -2
- package/esm2020/lib/modules/vertical-tabset/vertical-tabset.component.mjs +2 -2
- package/esm2020/testing/tabs/tab-fixture-tab.mjs +1 -1
- package/esm2020/testing/tabs/tabset-fixture.mjs +44 -47
- package/fesm2015/skyux-tabs-testing.mjs +47 -49
- package/fesm2015/skyux-tabs-testing.mjs.map +1 -1
- package/fesm2015/skyux-tabs.mjs +478 -383
- package/fesm2015/skyux-tabs.mjs.map +1 -1
- package/fesm2020/skyux-tabs-testing.mjs +43 -46
- package/fesm2020/skyux-tabs-testing.mjs.map +1 -1
- package/fesm2020/skyux-tabs.mjs +597 -504
- package/fesm2020/skyux-tabs.mjs.map +1 -1
- package/lib/modules/tabs/tab-button-view-model.d.ts +5 -5
- package/lib/modules/tabs/tab-button.component.d.ts +9 -9
- package/lib/modules/tabs/tab.component.d.ts +13 -18
- package/lib/modules/tabs/tabs.module.d.ts +9 -8
- package/lib/modules/tabs/tabset-adapter.service.d.ts +5 -10
- package/lib/modules/tabs/tabset-nav-button-disabled.pipe.d.ts +8 -0
- package/lib/modules/tabs/tabset-nav-button.component.d.ts +8 -6
- package/lib/modules/tabs/tabset-permalink.service.d.ts +3 -11
- package/lib/modules/tabs/tabset-tab-indexes-change.d.ts +2 -2
- package/lib/modules/tabs/tabset.component.d.ts +10 -53
- package/lib/modules/tabs/tabset.service.d.ts +8 -12
- package/package.json +9 -9
- package/testing/tabs/tab-fixture-tab.d.ts +3 -3
- package/testing/tabs/tabset-fixture.d.ts +3 -9
|
@@ -1,14 +1,14 @@
|
|
|
1
|
-
var _SkyTabsetNavButtonComponent_instances, _SkyTabsetNavButtonComponent__buttonType, _SkyTabsetNavButtonComponent__disabled, _SkyTabsetNavButtonComponent__tabset, _SkyTabsetNavButtonComponent_activeIndexNumber, _SkyTabsetNavButtonComponent_activeSkyTabIndex, _SkyTabsetNavButtonComponent_currentTabsetSub, _SkyTabsetNavButtonComponent_logger, _SkyTabsetNavButtonComponent_tabCount,
|
|
1
|
+
var _SkyTabsetNavButtonComponent_instances, _SkyTabsetNavButtonComponent__buttonType, _SkyTabsetNavButtonComponent__disabled, _SkyTabsetNavButtonComponent__tabset, _SkyTabsetNavButtonComponent_activeIndexNumber, _SkyTabsetNavButtonComponent_activeSkyTabIndex, _SkyTabsetNavButtonComponent_currentTabsetSub, _SkyTabsetNavButtonComponent_logger, _SkyTabsetNavButtonComponent_tabCount, _SkyTabsetNavButtonComponent_ngUnsubscribe, _SkyTabsetNavButtonComponent_updateButtonVisibility, _SkyTabsetNavButtonComponent_updateButtonProperties, _SkyTabsetNavButtonComponent_updateTabToSelect;
|
|
2
2
|
import { __classPrivateFieldGet, __classPrivateFieldSet } from "tslib";
|
|
3
3
|
import { Component, Input } from '@angular/core';
|
|
4
4
|
import { SkyLogService } from '@skyux/core';
|
|
5
5
|
import { Subject } from 'rxjs';
|
|
6
6
|
import { distinctUntilChanged, takeUntil } from 'rxjs/operators';
|
|
7
|
-
import { SkyTabsetComponent } from './tabset.component';
|
|
8
7
|
import * as i0 from "@angular/core";
|
|
9
8
|
import * as i1 from "@skyux/core";
|
|
10
9
|
import * as i2 from "@angular/common";
|
|
11
10
|
import * as i3 from "@skyux/i18n";
|
|
11
|
+
import * as i4 from "./tabset-nav-button-disabled.pipe";
|
|
12
12
|
const buttonTypeNext = 'next';
|
|
13
13
|
const buttonTypePrevious = 'previous';
|
|
14
14
|
const buttonTypeFinish = 'finish';
|
|
@@ -16,6 +16,7 @@ export class SkyTabsetNavButtonComponent {
|
|
|
16
16
|
constructor(logger) {
|
|
17
17
|
_SkyTabsetNavButtonComponent_instances.add(this);
|
|
18
18
|
this.isVisible = false;
|
|
19
|
+
this.type = 'submit';
|
|
19
20
|
_SkyTabsetNavButtonComponent__buttonType.set(this, void 0);
|
|
20
21
|
_SkyTabsetNavButtonComponent__disabled.set(this, void 0);
|
|
21
22
|
_SkyTabsetNavButtonComponent__tabset.set(this, void 0);
|
|
@@ -24,7 +25,6 @@ export class SkyTabsetNavButtonComponent {
|
|
|
24
25
|
_SkyTabsetNavButtonComponent_currentTabsetSub.set(this, void 0);
|
|
25
26
|
_SkyTabsetNavButtonComponent_logger.set(this, void 0);
|
|
26
27
|
_SkyTabsetNavButtonComponent_tabCount.set(this, void 0);
|
|
27
|
-
_SkyTabsetNavButtonComponent_tabToSelect.set(this, void 0);
|
|
28
28
|
_SkyTabsetNavButtonComponent_ngUnsubscribe.set(this, new Subject());
|
|
29
29
|
__classPrivateFieldSet(this, _SkyTabsetNavButtonComponent_logger, logger, "f");
|
|
30
30
|
}
|
|
@@ -41,11 +41,11 @@ export class SkyTabsetNavButtonComponent {
|
|
|
41
41
|
__classPrivateFieldGet(this, _SkyTabsetNavButtonComponent_currentTabsetSub, "f").unsubscribe();
|
|
42
42
|
}
|
|
43
43
|
if (value) {
|
|
44
|
-
__classPrivateFieldSet(this, _SkyTabsetNavButtonComponent_currentTabsetSub,
|
|
44
|
+
__classPrivateFieldSet(this, _SkyTabsetNavButtonComponent_currentTabsetSub, value.activeChange
|
|
45
45
|
.pipe(distinctUntilChanged(), takeUntil(__classPrivateFieldGet(this, _SkyTabsetNavButtonComponent_ngUnsubscribe, "f")))
|
|
46
46
|
.subscribe((index) => {
|
|
47
47
|
__classPrivateFieldSet(this, _SkyTabsetNavButtonComponent_activeSkyTabIndex, index, "f");
|
|
48
|
-
__classPrivateFieldSet(this, _SkyTabsetNavButtonComponent_tabCount, __classPrivateFieldGet(this, _SkyTabsetNavButtonComponent__tabset, "f")
|
|
48
|
+
__classPrivateFieldSet(this, _SkyTabsetNavButtonComponent_tabCount, __classPrivateFieldGet(this, _SkyTabsetNavButtonComponent__tabset, "f")?.tabs?.length, "f");
|
|
49
49
|
__classPrivateFieldGet(this, _SkyTabsetNavButtonComponent_instances, "m", _SkyTabsetNavButtonComponent_updateTabToSelect).call(this);
|
|
50
50
|
__classPrivateFieldGet(this, _SkyTabsetNavButtonComponent_instances, "m", _SkyTabsetNavButtonComponent_updateButtonVisibility).call(this);
|
|
51
51
|
__classPrivateFieldGet(this, _SkyTabsetNavButtonComponent_instances, "m", _SkyTabsetNavButtonComponent_updateButtonProperties).call(this);
|
|
@@ -83,13 +83,7 @@ export class SkyTabsetNavButtonComponent {
|
|
|
83
83
|
__classPrivateFieldSet(this, _SkyTabsetNavButtonComponent__disabled, value, "f");
|
|
84
84
|
}
|
|
85
85
|
get disabled() {
|
|
86
|
-
|
|
87
|
-
return __classPrivateFieldGet(this, _SkyTabsetNavButtonComponent__disabled, "f");
|
|
88
|
-
}
|
|
89
|
-
else if (this.buttonType === buttonTypeFinish) {
|
|
90
|
-
return false;
|
|
91
|
-
}
|
|
92
|
-
return !__classPrivateFieldGet(this, _SkyTabsetNavButtonComponent_tabToSelect, "f") || __classPrivateFieldGet(this, _SkyTabsetNavButtonComponent_tabToSelect, "f").disabled;
|
|
86
|
+
return __classPrivateFieldGet(this, _SkyTabsetNavButtonComponent__disabled, "f");
|
|
93
87
|
}
|
|
94
88
|
ngOnDestroy() {
|
|
95
89
|
__classPrivateFieldGet(this, _SkyTabsetNavButtonComponent_ngUnsubscribe, "f").next();
|
|
@@ -97,13 +91,13 @@ export class SkyTabsetNavButtonComponent {
|
|
|
97
91
|
}
|
|
98
92
|
buttonClick() {
|
|
99
93
|
/* istanbul ignore else */
|
|
100
|
-
if (
|
|
101
|
-
this.tabset.active =
|
|
94
|
+
if (this.tabToSelect && !this.tabToSelect.disabled && this.tabset) {
|
|
95
|
+
this.tabset.active = this.tabToSelect.tabIndex;
|
|
102
96
|
}
|
|
103
97
|
}
|
|
104
98
|
}
|
|
105
|
-
_SkyTabsetNavButtonComponent__buttonType = new WeakMap(), _SkyTabsetNavButtonComponent__disabled = new WeakMap(), _SkyTabsetNavButtonComponent__tabset = new WeakMap(), _SkyTabsetNavButtonComponent_activeIndexNumber = new WeakMap(), _SkyTabsetNavButtonComponent_activeSkyTabIndex = new WeakMap(), _SkyTabsetNavButtonComponent_currentTabsetSub = new WeakMap(), _SkyTabsetNavButtonComponent_logger = new WeakMap(), _SkyTabsetNavButtonComponent_tabCount = new WeakMap(),
|
|
106
|
-
const isLastStep = __classPrivateFieldGet(this, _SkyTabsetNavButtonComponent_activeIndexNumber, "f") === __classPrivateFieldGet(this, _SkyTabsetNavButtonComponent_tabCount, "f") - 1;
|
|
99
|
+
_SkyTabsetNavButtonComponent__buttonType = new WeakMap(), _SkyTabsetNavButtonComponent__disabled = new WeakMap(), _SkyTabsetNavButtonComponent__tabset = new WeakMap(), _SkyTabsetNavButtonComponent_activeIndexNumber = new WeakMap(), _SkyTabsetNavButtonComponent_activeSkyTabIndex = new WeakMap(), _SkyTabsetNavButtonComponent_currentTabsetSub = new WeakMap(), _SkyTabsetNavButtonComponent_logger = new WeakMap(), _SkyTabsetNavButtonComponent_tabCount = new WeakMap(), _SkyTabsetNavButtonComponent_ngUnsubscribe = new WeakMap(), _SkyTabsetNavButtonComponent_instances = new WeakSet(), _SkyTabsetNavButtonComponent_updateButtonVisibility = function _SkyTabsetNavButtonComponent_updateButtonVisibility() {
|
|
100
|
+
const isLastStep = !!__classPrivateFieldGet(this, _SkyTabsetNavButtonComponent_tabCount, "f") && __classPrivateFieldGet(this, _SkyTabsetNavButtonComponent_activeIndexNumber, "f") === __classPrivateFieldGet(this, _SkyTabsetNavButtonComponent_tabCount, "f") - 1;
|
|
107
101
|
if (this.buttonType === buttonTypeFinish) {
|
|
108
102
|
this.isVisible = isLastStep;
|
|
109
103
|
}
|
|
@@ -121,29 +115,29 @@ _SkyTabsetNavButtonComponent__buttonType = new WeakMap(), _SkyTabsetNavButtonCom
|
|
|
121
115
|
else {
|
|
122
116
|
this.buttonClassName = 'sky-btn-default';
|
|
123
117
|
}
|
|
124
|
-
this.ariaControls =
|
|
118
|
+
this.ariaControls = this.tabToSelect?.tabPanelId;
|
|
125
119
|
}, _SkyTabsetNavButtonComponent_updateTabToSelect = function _SkyTabsetNavButtonComponent_updateTabToSelect() {
|
|
126
120
|
if (this.tabset?.tabs) {
|
|
127
121
|
const tabs = this.tabset.tabs.toArray();
|
|
128
|
-
|
|
122
|
+
this.tabToSelect = undefined;
|
|
129
123
|
// tab index can be a number or a string, but we need the actual number index
|
|
130
124
|
__classPrivateFieldSet(this, _SkyTabsetNavButtonComponent_activeIndexNumber, tabs.findIndex((tab) => tab.tabIndex === __classPrivateFieldGet(this, _SkyTabsetNavButtonComponent_activeSkyTabIndex, "f")), "f");
|
|
131
125
|
/* istanbul ignore else */
|
|
132
126
|
if (__classPrivateFieldGet(this, _SkyTabsetNavButtonComponent_activeIndexNumber, "f") !== undefined) {
|
|
133
127
|
if (this.buttonType === buttonTypeNext) {
|
|
134
|
-
|
|
128
|
+
this.tabToSelect = tabs[__classPrivateFieldGet(this, _SkyTabsetNavButtonComponent_activeIndexNumber, "f") + 1];
|
|
135
129
|
}
|
|
136
130
|
else if (this.buttonType === buttonTypePrevious) {
|
|
137
|
-
|
|
131
|
+
this.tabToSelect = tabs[__classPrivateFieldGet(this, _SkyTabsetNavButtonComponent_activeIndexNumber, "f") - 1];
|
|
138
132
|
}
|
|
139
133
|
}
|
|
140
134
|
}
|
|
141
135
|
};
|
|
142
136
|
SkyTabsetNavButtonComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.0", ngImport: i0, type: SkyTabsetNavButtonComponent, deps: [{ token: i1.SkyLogService }], target: i0.ɵɵFactoryTarget.Component });
|
|
143
|
-
SkyTabsetNavButtonComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.0", type: SkyTabsetNavButtonComponent, selector: "sky-tabset-nav-button", inputs: { tabset: "tabset", buttonType: "buttonType", buttonText: "buttonText", disabled: "disabled" }, ngImport: i0, template: "<button\n *ngIf=\"isVisible\"\n class=\"sky-btn sky-margin-inline-sm\"\n [attr.aria-controls]=\"ariaControls\"\n [disabled]=\"disabled\"\n [ngClass]=\"buttonClassName\"\n [type]=\"type\"\n (click)=\"buttonType === 'finish' ? null : buttonClick()\"\n>\n {{ buttonText || ('skyux_tabs_navigator_' + buttonType | skyLibResources) }}\n</button>\n", dependencies: [{ kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "pipe", type: i3.SkyLibResourcesPipe, name: "skyLibResources" }] });
|
|
137
|
+
SkyTabsetNavButtonComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.0", type: SkyTabsetNavButtonComponent, selector: "sky-tabset-nav-button", inputs: { tabset: "tabset", buttonType: "buttonType", buttonText: "buttonText", disabled: "disabled" }, ngImport: i0, template: "<button\n *ngIf=\"isVisible\"\n class=\"sky-btn sky-margin-inline-sm\"\n [attr.aria-controls]=\"ariaControls\"\n [disabled]=\"\n disabled\n | skyTabsetNavButtonDisabled\n : buttonType\n : !!tabToSelect\n : tabToSelect?.disabled\n \"\n [ngClass]=\"buttonClassName\"\n [type]=\"type\"\n (click)=\"buttonType === 'finish' ? null : buttonClick()\"\n>\n {{ buttonText || ('skyux_tabs_navigator_' + buttonType | skyLibResources) }}\n</button>\n", dependencies: [{ kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "pipe", type: i3.SkyLibResourcesPipe, name: "skyLibResources" }, { kind: "pipe", type: i4.SkyTabsetNavButtonDisabledPipe, name: "skyTabsetNavButtonDisabled" }] });
|
|
144
138
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.0", ngImport: i0, type: SkyTabsetNavButtonComponent, decorators: [{
|
|
145
139
|
type: Component,
|
|
146
|
-
args: [{ selector: 'sky-tabset-nav-button', template: "<button\n *ngIf=\"isVisible\"\n class=\"sky-btn sky-margin-inline-sm\"\n [attr.aria-controls]=\"ariaControls\"\n [disabled]=\"disabled\"\n [ngClass]=\"buttonClassName\"\n [type]=\"type\"\n (click)=\"buttonType === 'finish' ? null : buttonClick()\"\n>\n {{ buttonText || ('skyux_tabs_navigator_' + buttonType | skyLibResources) }}\n</button>\n" }]
|
|
140
|
+
args: [{ selector: 'sky-tabset-nav-button', template: "<button\n *ngIf=\"isVisible\"\n class=\"sky-btn sky-margin-inline-sm\"\n [attr.aria-controls]=\"ariaControls\"\n [disabled]=\"\n disabled\n | skyTabsetNavButtonDisabled\n : buttonType\n : !!tabToSelect\n : tabToSelect?.disabled\n \"\n [ngClass]=\"buttonClassName\"\n [type]=\"type\"\n (click)=\"buttonType === 'finish' ? null : buttonClick()\"\n>\n {{ buttonText || ('skyux_tabs_navigator_' + buttonType | skyLibResources) }}\n</button>\n" }]
|
|
147
141
|
}], ctorParameters: function () { return [{ type: i1.SkyLogService }]; }, propDecorators: { tabset: [{
|
|
148
142
|
type: Input
|
|
149
143
|
}], buttonType: [{
|
|
@@ -153,4 +147,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.0", ngImpor
|
|
|
153
147
|
}], disabled: [{
|
|
154
148
|
type: Input
|
|
155
149
|
}] } });
|
|
156
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFic2V0LW5hdi1idXR0b24uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL3RhYnMvc3JjL2xpYi9tb2R1bGVzL3RhYnMvdGFic2V0LW5hdi1idXR0b24uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL3RhYnMvc3JjL2xpYi9tb2R1bGVzL3RhYnMvdGFic2V0LW5hdi1idXR0b24uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBYSxNQUFNLGVBQWUsQ0FBQztBQUM1RCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBRTVDLE9BQU8sRUFBRSxPQUFPLEVBQWdCLE1BQU0sTUFBTSxDQUFDO0FBQzdDLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUtqRSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQzs7Ozs7QUFFeEQsTUFBTSxjQUFjLEdBQUcsTUFBTSxDQUFDO0FBQzlCLE1BQU0sa0JBQWtCLEdBQUcsVUFBVSxDQUFDO0FBQ3RDLE1BQU0sZ0JBQWdCLEdBQUcsUUFBUSxDQUFDO0FBTWxDLE1BQU0sT0FBTywyQkFBMkI7SUFtR3RDLFlBQVksTUFBcUI7O1FBZjFCLGNBQVMsR0FBRyxLQUFLLENBQUM7UUFJekIsMkRBQThDO1FBQzlDLHlEQUFnQztRQUNoQyx1REFBNkI7UUFDN0IsaUVBQTJCO1FBQzNCLGlFQUFnQztRQUNoQyxnRUFBZ0M7UUFDaEMsc0RBQXVCO1FBQ3ZCLHdEQUFrQjtRQUNsQiwyREFBMEM7UUFDMUMscURBQWlCLElBQUksT0FBTyxFQUFRLEVBQUM7UUFHbkMsdUJBQUEsSUFBSSx1Q0FBVyxNQUFNLE1BQUEsQ0FBQztJQUN4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QUU7Z0JBQ3RDLHVCQUFBLElBQUksNENBQWdCLElBQUksQ0FBQyx1QkFBQSxJQUFJLHNEQUFtQixHQUFHLENBQUMsQ0FBQyxNQUFBLENBQUM7YUFDdkQ7aUJBQU0sSUFBSSxJQUFJLENBQUMsVUFBVSxLQUFLLGtCQUFrQixFQUFFO2dCQUNqRCx1QkFBQSxJQUFJLDRDQUFnQixJQUFJLENBQUMsdUJBQUEsSUFBSSxzREFBbUIsR0FBRyxDQUFDLENBQUMsTUFBQSxDQUFDO2FBQ3ZEO1NBQ0Y7S0FDRjtBQUNILENBQUM7d0hBL0pVLDJCQUEyQjs0R0FBM0IsMkJBQTJCLHFLQ25CeEMsZ1dBV0E7MkZEUWEsMkJBQTJCO2tCQUp2QyxTQUFTOytCQUNFLHVCQUF1QjtvR0FTdEIsTUFBTTtzQkFEaEIsS0FBSztnQkFrQ0ssVUFBVTtzQkFEcEIsS0FBSztnQkF1QkMsVUFBVTtzQkFEaEIsS0FBSztnQkFTSyxRQUFRO3NCQURsQixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBJbnB1dCwgT25EZXN0cm95IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBTa3lMb2dTZXJ2aWNlIH0gZnJvbSAnQHNreXV4L2NvcmUnO1xuXG5pbXBvcnQgeyBTdWJqZWN0LCBTdWJzY3JpcHRpb24gfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IGRpc3RpbmN0VW50aWxDaGFuZ2VkLCB0YWtlVW50aWwgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5cbmltcG9ydCB7IFNreVRhYkluZGV4IH0gZnJvbSAnLi90YWItaW5kZXgnO1xuaW1wb3J0IHsgU2t5VGFiQ29tcG9uZW50IH0gZnJvbSAnLi90YWIuY29tcG9uZW50JztcbmltcG9ydCB7IFNreVRhYnNldE5hdkJ1dHRvblR5cGUgfSBmcm9tICcuL3RhYnNldC1uYXYtYnV0dG9uLXR5cGUnO1xuaW1wb3J0IHsgU2t5VGFic2V0Q29tcG9uZW50IH0gZnJvbSAnLi90YWJzZXQuY29tcG9uZW50JztcblxuY29uc3QgYnV0dG9uVHlwZU5leHQgPSAnbmV4dCc7XG5jb25zdCBidXR0b25UeXBlUHJldmlvdXMgPSAncHJldmlvdXMnO1xuY29uc3QgYnV0dG9uVHlwZUZpbmlzaCA9ICdmaW5pc2gnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdza3ktdGFic2V0LW5hdi1idXR0b24nLFxuICB0ZW1wbGF0ZVVybDogJy4vdGFic2V0LW5hdi1idXR0b24uY29tcG9uZW50Lmh0bWwnLFxufSlcbmV4cG9ydCBjbGFzcyBTa3lUYWJzZXROYXZCdXR0b25Db21wb25lbnQgaW1wbGVtZW50cyBPbkRlc3Ryb3kge1xuICAvKipcbiAgICogU3BlY2lmaWVzIHRoZSB0YWJzZXQgd2l6YXJkIGNvbXBvbmVudCB0byBhc3NvY2lhdGUgd2l0aCB0aGUgbmF2IGJ1dHRvbi5cbiAgICogQHJlcXVpcmVkXG4gICAqL1xuICBASW5wdXQoKVxuICBwdWJsaWMgZ2V0IHRhYnNldCgpOiBTa3lUYWJzZXRDb21wb25lbnQge1xuICAgIHJldHVybiB0aGlzLiNfdGFic2V0O1xuICB9XG5cbiAgcHVibGljIHNldCB0YWJzZXQodmFsdWU6IFNreVRhYnNldENvbXBvbmVudCkge1xuICAgIHRoaXMuI190YWJzZXQgPSB2YWx1ZTtcblxuICAgIGlmICh0aGlzLiNjdXJyZW50VGFic2V0U3ViKSB7XG4gICAgICB0aGlzLiNjdXJyZW50VGFic2V0U3ViLnVuc3Vic2NyaWJlKCk7XG4gICAgfVxuXG4gICAgaWYgKHZhbHVlKSB7XG4gICAgICB0aGlzLiNjdXJyZW50VGFic2V0U3ViID0gdGhpcy4jX3RhYnNldC5hY3RpdmVDaGFuZ2VcbiAgICAgICAgLnBpcGUoZGlzdGluY3RVbnRpbENoYW5nZWQoKSwgdGFrZVVudGlsKHRoaXMuI25nVW5zdWJzY3JpYmUpKVxuICAgICAgICAuc3Vic2NyaWJlKChpbmRleDogU2t5VGFiSW5kZXgpID0+IHtcbiAgICAgICAgICB0aGlzLiNhY3RpdmVTa3lUYWJJbmRleCA9IGluZGV4O1xuICAgICAgICAgIHRoaXMuI3RhYkNvdW50ID0gdGhpcy4jX3RhYnNldC50YWJzLmxlbmd0aDtcbiAgICAgICAgICB0aGlzLiN1cGRhdGVUYWJUb1NlbGVjdCgpO1xuICAgICAgICAgIHRoaXMuI3VwZGF0ZUJ1dHRvblZpc2liaWxpdHkoKTtcbiAgICAgICAgICB0aGlzLiN1cGRhdGVCdXR0b25Qcm9wZXJ0aWVzKCk7XG4gICAgICAgIH0pO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLiNsb2dnZXIuZXJyb3IoXG4gICAgICAgICdUaGUgU2t5VGFic2V0TmF2QnV0dG9uQ29tcG9uZW50IHJlcXVpcmVzIGEgcmVmZXJlbmNlIHRvIHRoZSBTa3lUYWJzZXRDb21wb25lbnQgaXQgY29udHJvbHMuJ1xuICAgICAgKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogU3BlY2lmaWVzIHRoZSB0eXBlIG9mIG5hdiBidXR0b24gdG8gaW5jbHVkZS5cbiAgICogQHJlcXVpcmVkXG4gICAqL1xuICBASW5wdXQoKVxuICBwdWJsaWMgZ2V0IGJ1dHRvblR5cGUoKTogU2t5VGFic2V0TmF2QnV0dG9uVHlwZSB8IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMuI19idXR0b25UeXBlO1xuICB9XG5cbiAgcHVibGljIHNldCBidXR0b25UeXBlKHZhbHVlOiBTa3lUYWJzZXROYXZCdXR0b25UeXBlIHwgc3RyaW5nKSB7XG4gICAgdGhpcy4jX2J1dHRvblR5cGUgPSB2YWx1ZTtcbiAgICB0aGlzLiN1cGRhdGVUYWJUb1NlbGVjdCgpO1xuICAgIHRoaXMuI3VwZGF0ZUJ1dHRvblByb3BlcnRpZXMoKTtcbiAgICB0aGlzLiN1cGRhdGVCdXR0b25WaXNpYmlsaXR5KCk7XG5cbiAgICBpZiAodmFsdWUgPT09IGJ1dHRvblR5cGVGaW5pc2gpIHtcbiAgICAgIHRoaXMudHlwZSA9ICdzdWJtaXQnO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLnR5cGUgPSAnYnV0dG9uJztcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogU3BlY2lmaWVzIHRoZSBsYWJlbCB0byBkaXNwbGF5IG9uIHRoZSBuYXYgYnV0dG9uLiBUaGUgZm9sbG93aW5nIGFyZSB0aGUgZGVmYXVsdHMgZm9yIGVhY2ggYGJ1dHRvblR5cGVgLlxuICAgKiBgbmV4dGAgPSBcIk5leHRcIiwgYHByZXZpb3VzYCA9IFwiUHJldmlvdXNcIiwgYGZpbmlzaGAgPSBcIkZpbmlzaFwiXG4gICAqL1xuICBASW5wdXQoKVxuICBwdWJsaWMgYnV0dG9uVGV4dD86IHN0cmluZyB8IHVuZGVmaW5lZDtcblxuICAvKipcbiAgICogSW5kaWNhdGVzIHdoZXRoZXIgdG8gZGlzYWJsZSB0aGUgbmF2IGJ1dHRvbi5cbiAgICogRGVmYXVsdHMgdG8gdGhlIGRpc2FibGVkIHN0YXRlIG9mIHRoZSBuZXh0IHRhYiBmb3IgYG5leHRgLCB0aGUgZXhpc3RlbmNlIG9mIGEgcHJldmlvdXMgdGFiIGZvciBgcHJldmlvdXNgLFxuICAgKiBhbmQgZmFsc2UgZm9yIGBmaW5pc2hgLlxuICAgKi9cbiAgQElucHV0KClcbiAgcHVibGljIHNldCBkaXNhYmxlZCh2YWx1ZTogYm9vbGVhbikge1xuICAgIHRoaXMuI19kaXNhYmxlZCA9IHZhbHVlO1xuICB9XG5cbiAgcHVibGljIGdldCBkaXNhYmxlZCgpOiBib29sZWFuIHtcbiAgICBpZiAodGhpcy4jX2Rpc2FibGVkICE9PSB1bmRlZmluZWQpIHtcbiAgICAgIHJldHVybiB0aGlzLiNfZGlzYWJsZWQ7XG4gICAgfSBlbHNlIGlmICh0aGlzLmJ1dHRvblR5cGUgPT09IGJ1dHRvblR5cGVGaW5pc2gpIHtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG5cbiAgICByZXR1cm4gIXRoaXMuI3RhYlRvU2VsZWN0IHx8IHRoaXMuI3RhYlRvU2VsZWN0LmRpc2FibGVkO1xuICB9XG5cbiAgcHVibGljIGJ1dHRvbkNsYXNzTmFtZTogc3RyaW5nIHwgdW5kZWZpbmVkO1xuICBwdWJsaWMgaXNWaXNpYmxlID0gZmFsc2U7XG4gIHB1YmxpYyB0eXBlOiAnc3VibWl0JyB8ICdidXR0b24nO1xuICBwdWJsaWMgYXJpYUNvbnRyb2xzOiBzdHJpbmcgfCB1bmRlZmluZWQ7XG5cbiAgI19idXR0b25UeXBlOiBTa3lUYWJzZXROYXZCdXR0b25UeXBlIHwgc3RyaW5nO1xuICAjX2Rpc2FibGVkOiBib29sZWFuIHwgdW5kZWZpbmVkO1xuICAjX3RhYnNldDogU2t5VGFic2V0Q29tcG9uZW50O1xuICAjYWN0aXZlSW5kZXhOdW1iZXI6IG51bWJlcjtcbiAgI2FjdGl2ZVNreVRhYkluZGV4OiBTa3lUYWJJbmRleDtcbiAgI2N1cnJlbnRUYWJzZXRTdWI6IFN1YnNjcmlwdGlvbjtcbiAgI2xvZ2dlcjogU2t5TG9nU2VydmljZTtcbiAgI3RhYkNvdW50OiBudW1iZXI7XG4gICN0YWJUb1NlbGVjdDogU2t5VGFiQ29tcG9uZW50IHwgdW5kZWZpbmVkO1xuICAjbmdVbnN1YnNjcmliZSA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XG5cbiAgY29uc3RydWN0b3IobG9nZ2VyOiBTa3lMb2dTZXJ2aWNlKSB7XG4gICAgdGhpcy4jbG9nZ2VyID0gbG9nZ2VyO1xuICB9XG5cbiAgcHVibGljIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIHRoaXMuI25nVW5zdWJzY3JpYmUubmV4dCgpO1xuICAgIHRoaXMuI25nVW5zdWJzY3JpYmUuY29tcGxldGUoKTtcbiAgfVxuXG4gIHB1YmxpYyBidXR0b25DbGljaygpIHtcbiAgICAvKiBpc3RhbmJ1bCBpZ25vcmUgZWxzZSAqL1xuICAgIGlmICh0aGlzLiN0YWJUb1NlbGVjdCAmJiAhdGhpcy4jdGFiVG9TZWxlY3QuZGlzYWJsZWQpIHtcbiAgICAgIHRoaXMudGFic2V0LmFjdGl2ZSA9IHRoaXMuI3RhYlRvU2VsZWN0LnRhYkluZGV4O1xuICAgIH1cbiAgfVxuXG4gICN1cGRhdGVCdXR0b25WaXNpYmlsaXR5KCk6IHZvaWQge1xuICAgIGNvbnN0IGlzTGFzdFN0ZXAgPSB0aGlzLiNhY3RpdmVJbmRleE51bWJlciA9PT0gdGhpcy4jdGFiQ291bnQgLSAxO1xuXG4gICAgaWYgKHRoaXMuYnV0dG9uVHlwZSA9PT0gYnV0dG9uVHlwZUZpbmlzaCkge1xuICAgICAgdGhpcy5pc1Zpc2libGUgPSBpc0xhc3RTdGVwO1xuICAgIH0gZWxzZSBpZiAodGhpcy5idXR0b25UeXBlID09PSBidXR0b25UeXBlTmV4dCkge1xuICAgICAgdGhpcy5pc1Zpc2libGUgPSAhaXNMYXN0U3RlcDtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5pc1Zpc2libGUgPSB0cnVlO1xuICAgIH1cbiAgfVxuXG4gICN1cGRhdGVCdXR0b25Qcm9wZXJ0aWVzKCk6IHZvaWQge1xuICAgIGlmIChcbiAgICAgIHRoaXMuYnV0dG9uVHlwZSA9PT0gYnV0dG9uVHlwZU5leHQgfHxcbiAgICAgIHRoaXMuYnV0dG9uVHlwZSA9PT0gYnV0dG9uVHlwZUZpbmlzaFxuICAgICkge1xuICAgICAgdGhpcy5idXR0b25DbGFzc05hbWUgPSAnc2t5LWJ0bi1wcmltYXJ5JztcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5idXR0b25DbGFzc05hbWUgPSAnc2t5LWJ0bi1kZWZhdWx0JztcbiAgICB9XG5cbiAgICB0aGlzLmFyaWFDb250cm9scyA9IHRoaXMuI3RhYlRvU2VsZWN0Py50YWJQYW5lbElkO1xuICB9XG5cbiAgI3VwZGF0ZVRhYlRvU2VsZWN0KCk6IHZvaWQge1xuICAgIGlmICh0aGlzLnRhYnNldD8udGFicykge1xuICAgICAgY29uc3QgdGFicyA9IHRoaXMudGFic2V0LnRhYnMudG9BcnJheSgpO1xuICAgICAgdGhpcy4jdGFiVG9TZWxlY3QgPSB1bmRlZmluZWQ7XG5cbiAgICAgIC8vIHRhYiBpbmRleCBjYW4gYmUgYSBudW1iZXIgb3IgYSBzdHJpbmcsIGJ1dCB3ZSBuZWVkIHRoZSBhY3R1YWwgbnVtYmVyIGluZGV4XG4gICAgICB0aGlzLiNhY3RpdmVJbmRleE51bWJlciA9IHRhYnMuZmluZEluZGV4KFxuICAgICAgICAodGFiKSA9PiB0YWIudGFiSW5kZXggPT09IHRoaXMuI2FjdGl2ZVNreVRhYkluZGV4XG4gICAgICApO1xuXG4gICAgICAvKiBpc3RhbmJ1bCBpZ25vcmUgZWxzZSAqL1xuICAgICAgaWYgKHRoaXMuI2FjdGl2ZUluZGV4TnVtYmVyICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgaWYgKHRoaXMuYnV0dG9uVHlwZSA9PT0gYnV0dG9uVHlwZU5leHQpIHtcbiAgICAgICAgICB0aGlzLiN0YWJUb1NlbGVjdCA9IHRhYnNbdGhpcy4jYWN0aXZlSW5kZXhOdW1iZXIgKyAxXTtcbiAgICAgICAgfSBlbHNlIGlmICh0aGlzLmJ1dHRvblR5cGUgPT09IGJ1dHRvblR5cGVQcmV2aW91cykge1xuICAgICAgICAgIHRoaXMuI3RhYlRvU2VsZWN0ID0gdGFic1t0aGlzLiNhY3RpdmVJbmRleE51bWJlciAtIDFdO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG59XG4iLCI8YnV0dG9uXG4gICpuZ0lmPVwiaXNWaXNpYmxlXCJcbiAgY2xhc3M9XCJza3ktYnRuIHNreS1tYXJnaW4taW5saW5lLXNtXCJcbiAgW2F0dHIuYXJpYS1jb250cm9sc109XCJhcmlhQ29udHJvbHNcIlxuICBbZGlzYWJsZWRdPVwiZGlzYWJsZWRcIlxuICBbbmdDbGFzc109XCJidXR0b25DbGFzc05hbWVcIlxuICBbdHlwZV09XCJ0eXBlXCJcbiAgKGNsaWNrKT1cImJ1dHRvblR5cGUgPT09ICdmaW5pc2gnID8gbnVsbCA6IGJ1dHRvbkNsaWNrKClcIlxuPlxuICB7eyBidXR0b25UZXh0IHx8ICgnc2t5dXhfdGFic19uYXZpZ2F0b3JfJyArIGJ1dHRvblR5cGUgfCBza3lMaWJSZXNvdXJjZXMpIH19XG48L2J1dHRvbj5cbiJdfQ==
|
|
150
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFic2V0LW5hdi1idXR0b24uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL3RhYnMvc3JjL2xpYi9tb2R1bGVzL3RhYnMvdGFic2V0LW5hdi1idXR0b24uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL3RhYnMvc3JjL2xpYi9tb2R1bGVzL3RhYnMvdGFic2V0LW5hdi1idXR0b24uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBYSxNQUFNLGVBQWUsQ0FBQztBQUM1RCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBRTVDLE9BQU8sRUFBRSxPQUFPLEVBQWdCLE1BQU0sTUFBTSxDQUFDO0FBQzdDLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQzs7Ozs7O0FBT2pFLE1BQU0sY0FBYyxHQUFHLE1BQU0sQ0FBQztBQUM5QixNQUFNLGtCQUFrQixHQUFHLFVBQVUsQ0FBQztBQUN0QyxNQUFNLGdCQUFnQixHQUFHLFFBQVEsQ0FBQztBQU1sQyxNQUFNLE9BQU8sMkJBQTJCO0lBOEZ0QyxZQUFZLE1BQXFCOztRQWhCMUIsY0FBUyxHQUFHLEtBQUssQ0FBQztRQUNsQixTQUFJLEdBQXdCLFFBQVEsQ0FBQztRQUs1QywyREFBMEQ7UUFDMUQseURBQWdDO1FBQ2hDLHVEQUF5QztRQUN6QyxpRUFBdUM7UUFDdkMsaUVBQTRDO1FBQzVDLGdFQUE0QztRQUM1QyxzREFBdUI7UUFDdkIsd0RBQThCO1FBQzlCLHFEQUFpQixJQUFJLE9BQU8sRUFBUSxFQUFDO1FBR25DLHVCQUFBLElBQUksdUNBQVcsTUFBTSxNQUFBLENBQUM7SUFDeEIsQ0FBQztJQS9GRDs7O09BR0c7SUFDSCxJQUNX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RyxDQUFDLENBQUMsQ0FBQzthQUN0RDtTQUNGO0tBQ0Y7QUFDSCxDQUFDO3dIQTNKVSwyQkFBMkI7NEdBQTNCLDJCQUEyQixxS0NuQnhDLDhkQWlCQTsyRkRFYSwyQkFBMkI7a0JBSnZDLFNBQVM7K0JBQ0UsdUJBQXVCO29HQVN0QixNQUFNO3NCQURoQixLQUFLO2dCQWtDSyxVQUFVO3NCQURwQixLQUFLO2dCQXVCQyxVQUFVO3NCQURoQixLQUFLO2dCQVNLLFFBQVE7c0JBRGxCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIElucHV0LCBPbkRlc3Ryb3kgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFNreUxvZ1NlcnZpY2UgfSBmcm9tICdAc2t5dXgvY29yZSc7XG5cbmltcG9ydCB7IFN1YmplY3QsIFN1YnNjcmlwdGlvbiB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgZGlzdGluY3RVbnRpbENoYW5nZWQsIHRha2VVbnRpbCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcblxuaW1wb3J0IHsgU2t5VGFiSW5kZXggfSBmcm9tICcuL3RhYi1pbmRleCc7XG5pbXBvcnQgeyBTa3lUYWJDb21wb25lbnQgfSBmcm9tICcuL3RhYi5jb21wb25lbnQnO1xuaW1wb3J0IHsgU2t5VGFic2V0TmF2QnV0dG9uVHlwZSB9IGZyb20gJy4vdGFic2V0LW5hdi1idXR0b24tdHlwZSc7XG5pbXBvcnQgeyBTa3lUYWJzZXRDb21wb25lbnQgfSBmcm9tICcuL3RhYnNldC5jb21wb25lbnQnO1xuXG5jb25zdCBidXR0b25UeXBlTmV4dCA9ICduZXh0JztcbmNvbnN0IGJ1dHRvblR5cGVQcmV2aW91cyA9ICdwcmV2aW91cyc7XG5jb25zdCBidXR0b25UeXBlRmluaXNoID0gJ2ZpbmlzaCc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3NreS10YWJzZXQtbmF2LWJ1dHRvbicsXG4gIHRlbXBsYXRlVXJsOiAnLi90YWJzZXQtbmF2LWJ1dHRvbi5jb21wb25lbnQuaHRtbCcsXG59KVxuZXhwb3J0IGNsYXNzIFNreVRhYnNldE5hdkJ1dHRvbkNvbXBvbmVudCBpbXBsZW1lbnRzIE9uRGVzdHJveSB7XG4gIC8qKlxuICAgKiBTcGVjaWZpZXMgdGhlIHRhYnNldCB3aXphcmQgY29tcG9uZW50IHRvIGFzc29jaWF0ZSB3aXRoIHRoZSBuYXYgYnV0dG9uLlxuICAgKiBAcmVxdWlyZWRcbiAgICovXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBnZXQgdGFic2V0KCk6IFNreVRhYnNldENvbXBvbmVudCB8IHVuZGVmaW5lZCB7XG4gICAgcmV0dXJuIHRoaXMuI190YWJzZXQ7XG4gIH1cblxuICBwdWJsaWMgc2V0IHRhYnNldCh2YWx1ZTogU2t5VGFic2V0Q29tcG9uZW50IHwgdW5kZWZpbmVkKSB7XG4gICAgdGhpcy4jX3RhYnNldCA9IHZhbHVlO1xuXG4gICAgaWYgKHRoaXMuI2N1cnJlbnRUYWJzZXRTdWIpIHtcbiAgICAgIHRoaXMuI2N1cnJlbnRUYWJzZXRTdWIudW5zdWJzY3JpYmUoKTtcbiAgICB9XG5cbiAgICBpZiAodmFsdWUpIHtcbiAgICAgIHRoaXMuI2N1cnJlbnRUYWJzZXRTdWIgPSB2YWx1ZS5hY3RpdmVDaGFuZ2VcbiAgICAgICAgLnBpcGUoZGlzdGluY3RVbnRpbENoYW5nZWQoKSwgdGFrZVVudGlsKHRoaXMuI25nVW5zdWJzY3JpYmUpKVxuICAgICAgICAuc3Vic2NyaWJlKChpbmRleDogU2t5VGFiSW5kZXgpID0+IHtcbiAgICAgICAgICB0aGlzLiNhY3RpdmVTa3lUYWJJbmRleCA9IGluZGV4O1xuICAgICAgICAgIHRoaXMuI3RhYkNvdW50ID0gdGhpcy4jX3RhYnNldD8udGFicz8ubGVuZ3RoO1xuICAgICAgICAgIHRoaXMuI3VwZGF0ZVRhYlRvU2VsZWN0KCk7XG4gICAgICAgICAgdGhpcy4jdXBkYXRlQnV0dG9uVmlzaWJpbGl0eSgpO1xuICAgICAgICAgIHRoaXMuI3VwZGF0ZUJ1dHRvblByb3BlcnRpZXMoKTtcbiAgICAgICAgfSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuI2xvZ2dlci5lcnJvcihcbiAgICAgICAgJ1RoZSBTa3lUYWJzZXROYXZCdXR0b25Db21wb25lbnQgcmVxdWlyZXMgYSByZWZlcmVuY2UgdG8gdGhlIFNreVRhYnNldENvbXBvbmVudCBpdCBjb250cm9scy4nXG4gICAgICApO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBTcGVjaWZpZXMgdGhlIHR5cGUgb2YgbmF2IGJ1dHRvbiB0byBpbmNsdWRlLlxuICAgKiBAcmVxdWlyZWRcbiAgICovXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBnZXQgYnV0dG9uVHlwZSgpOiBTa3lUYWJzZXROYXZCdXR0b25UeXBlIHwgc3RyaW5nIHwgdW5kZWZpbmVkIHtcbiAgICByZXR1cm4gdGhpcy4jX2J1dHRvblR5cGU7XG4gIH1cblxuICBwdWJsaWMgc2V0IGJ1dHRvblR5cGUodmFsdWU6IFNreVRhYnNldE5hdkJ1dHRvblR5cGUgfCBzdHJpbmcgfCB1bmRlZmluZWQpIHtcbiAgICB0aGlzLiNfYnV0dG9uVHlwZSA9IHZhbHVlO1xuICAgIHRoaXMuI3VwZGF0ZVRhYlRvU2VsZWN0KCk7XG4gICAgdGhpcy4jdXBkYXRlQnV0dG9uUHJvcGVydGllcygpO1xuICAgIHRoaXMuI3VwZGF0ZUJ1dHRvblZpc2liaWxpdHkoKTtcblxuICAgIGlmICh2YWx1ZSA9PT0gYnV0dG9uVHlwZUZpbmlzaCkge1xuICAgICAgdGhpcy50eXBlID0gJ3N1Ym1pdCc7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMudHlwZSA9ICdidXR0b24nO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBTcGVjaWZpZXMgdGhlIGxhYmVsIHRvIGRpc3BsYXkgb24gdGhlIG5hdiBidXR0b24uIFRoZSBmb2xsb3dpbmcgYXJlIHRoZSBkZWZhdWx0cyBmb3IgZWFjaCBgYnV0dG9uVHlwZWAuXG4gICAqIGBuZXh0YCA9IFwiTmV4dFwiLCBgcHJldmlvdXNgID0gXCJQcmV2aW91c1wiLCBgZmluaXNoYCA9IFwiRmluaXNoXCJcbiAgICovXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBidXR0b25UZXh0Pzogc3RyaW5nIHwgdW5kZWZpbmVkO1xuXG4gIC8qKlxuICAgKiBJbmRpY2F0ZXMgd2hldGhlciB0byBkaXNhYmxlIHRoZSBuYXYgYnV0dG9uLlxuICAgKiBEZWZhdWx0cyB0byB0aGUgZGlzYWJsZWQgc3RhdGUgb2YgdGhlIG5leHQgdGFiIGZvciBgbmV4dGAsIHRoZSBleGlzdGVuY2Ugb2YgYSBwcmV2aW91cyB0YWIgZm9yIGBwcmV2aW91c2AsXG4gICAqIGFuZCBmYWxzZSBmb3IgYGZpbmlzaGAuXG4gICAqL1xuICBASW5wdXQoKVxuICBwdWJsaWMgc2V0IGRpc2FibGVkKHZhbHVlOiBib29sZWFuIHwgdW5kZWZpbmVkKSB7XG4gICAgdGhpcy4jX2Rpc2FibGVkID0gdmFsdWU7XG4gIH1cblxuICBwdWJsaWMgZ2V0IGRpc2FibGVkKCk6IGJvb2xlYW4gfCB1bmRlZmluZWQge1xuICAgIHJldHVybiB0aGlzLiNfZGlzYWJsZWQ7XG4gIH1cblxuICBwdWJsaWMgYnV0dG9uQ2xhc3NOYW1lOiBzdHJpbmcgfCB1bmRlZmluZWQ7XG4gIHB1YmxpYyBpc1Zpc2libGUgPSBmYWxzZTtcbiAgcHVibGljIHR5cGU6ICdzdWJtaXQnIHwgJ2J1dHRvbicgPSAnc3VibWl0JztcbiAgcHVibGljIGFyaWFDb250cm9sczogc3RyaW5nIHwgdW5kZWZpbmVkO1xuXG4gIHByb3RlY3RlZCB0YWJUb1NlbGVjdDogU2t5VGFiQ29tcG9uZW50IHwgdW5kZWZpbmVkO1xuXG4gICNfYnV0dG9uVHlwZTogU2t5VGFic2V0TmF2QnV0dG9uVHlwZSB8IHN0cmluZyB8IHVuZGVmaW5lZDtcbiAgI19kaXNhYmxlZDogYm9vbGVhbiB8IHVuZGVmaW5lZDtcbiAgI190YWJzZXQ6IFNreVRhYnNldENvbXBvbmVudCB8IHVuZGVmaW5lZDtcbiAgI2FjdGl2ZUluZGV4TnVtYmVyOiBudW1iZXIgfCB1bmRlZmluZWQ7XG4gICNhY3RpdmVTa3lUYWJJbmRleDogU2t5VGFiSW5kZXggfCB1bmRlZmluZWQ7XG4gICNjdXJyZW50VGFic2V0U3ViOiBTdWJzY3JpcHRpb24gfCB1bmRlZmluZWQ7XG4gICNsb2dnZXI6IFNreUxvZ1NlcnZpY2U7XG4gICN0YWJDb3VudDogbnVtYmVyIHwgdW5kZWZpbmVkO1xuICAjbmdVbnN1YnNjcmliZSA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XG5cbiAgY29uc3RydWN0b3IobG9nZ2VyOiBTa3lMb2dTZXJ2aWNlKSB7XG4gICAgdGhpcy4jbG9nZ2VyID0gbG9nZ2VyO1xuICB9XG5cbiAgcHVibGljIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIHRoaXMuI25nVW5zdWJzY3JpYmUubmV4dCgpO1xuICAgIHRoaXMuI25nVW5zdWJzY3JpYmUuY29tcGxldGUoKTtcbiAgfVxuXG4gIHB1YmxpYyBidXR0b25DbGljaygpIHtcbiAgICAvKiBpc3RhbmJ1bCBpZ25vcmUgZWxzZSAqL1xuICAgIGlmICh0aGlzLnRhYlRvU2VsZWN0ICYmICF0aGlzLnRhYlRvU2VsZWN0LmRpc2FibGVkICYmIHRoaXMudGFic2V0KSB7XG4gICAgICB0aGlzLnRhYnNldC5hY3RpdmUgPSB0aGlzLnRhYlRvU2VsZWN0LnRhYkluZGV4O1xuICAgIH1cbiAgfVxuXG4gICN1cGRhdGVCdXR0b25WaXNpYmlsaXR5KCk6IHZvaWQge1xuICAgIGNvbnN0IGlzTGFzdFN0ZXAgPVxuICAgICAgISF0aGlzLiN0YWJDb3VudCAmJiB0aGlzLiNhY3RpdmVJbmRleE51bWJlciA9PT0gdGhpcy4jdGFiQ291bnQgLSAxO1xuXG4gICAgaWYgKHRoaXMuYnV0dG9uVHlwZSA9PT0gYnV0dG9uVHlwZUZpbmlzaCkge1xuICAgICAgdGhpcy5pc1Zpc2libGUgPSBpc0xhc3RTdGVwO1xuICAgIH0gZWxzZSBpZiAodGhpcy5idXR0b25UeXBlID09PSBidXR0b25UeXBlTmV4dCkge1xuICAgICAgdGhpcy5pc1Zpc2libGUgPSAhaXNMYXN0U3RlcDtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5pc1Zpc2libGUgPSB0cnVlO1xuICAgIH1cbiAgfVxuXG4gICN1cGRhdGVCdXR0b25Qcm9wZXJ0aWVzKCk6IHZvaWQge1xuICAgIGlmIChcbiAgICAgIHRoaXMuYnV0dG9uVHlwZSA9PT0gYnV0dG9uVHlwZU5leHQgfHxcbiAgICAgIHRoaXMuYnV0dG9uVHlwZSA9PT0gYnV0dG9uVHlwZUZpbmlzaFxuICAgICkge1xuICAgICAgdGhpcy5idXR0b25DbGFzc05hbWUgPSAnc2t5LWJ0bi1wcmltYXJ5JztcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5idXR0b25DbGFzc05hbWUgPSAnc2t5LWJ0bi1kZWZhdWx0JztcbiAgICB9XG5cbiAgICB0aGlzLmFyaWFDb250cm9scyA9IHRoaXMudGFiVG9TZWxlY3Q/LnRhYlBhbmVsSWQ7XG4gIH1cblxuICAjdXBkYXRlVGFiVG9TZWxlY3QoKTogdm9pZCB7XG4gICAgaWYgKHRoaXMudGFic2V0Py50YWJzKSB7XG4gICAgICBjb25zdCB0YWJzID0gdGhpcy50YWJzZXQudGFicy50b0FycmF5KCk7XG4gICAgICB0aGlzLnRhYlRvU2VsZWN0ID0gdW5kZWZpbmVkO1xuXG4gICAgICAvLyB0YWIgaW5kZXggY2FuIGJlIGEgbnVtYmVyIG9yIGEgc3RyaW5nLCBidXQgd2UgbmVlZCB0aGUgYWN0dWFsIG51bWJlciBpbmRleFxuICAgICAgdGhpcy4jYWN0aXZlSW5kZXhOdW1iZXIgPSB0YWJzLmZpbmRJbmRleChcbiAgICAgICAgKHRhYikgPT4gdGFiLnRhYkluZGV4ID09PSB0aGlzLiNhY3RpdmVTa3lUYWJJbmRleFxuICAgICAgKTtcblxuICAgICAgLyogaXN0YW5idWwgaWdub3JlIGVsc2UgKi9cbiAgICAgIGlmICh0aGlzLiNhY3RpdmVJbmRleE51bWJlciAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgIGlmICh0aGlzLmJ1dHRvblR5cGUgPT09IGJ1dHRvblR5cGVOZXh0KSB7XG4gICAgICAgICAgdGhpcy50YWJUb1NlbGVjdCA9IHRhYnNbdGhpcy4jYWN0aXZlSW5kZXhOdW1iZXIgKyAxXTtcbiAgICAgICAgfSBlbHNlIGlmICh0aGlzLmJ1dHRvblR5cGUgPT09IGJ1dHRvblR5cGVQcmV2aW91cykge1xuICAgICAgICAgIHRoaXMudGFiVG9TZWxlY3QgPSB0YWJzW3RoaXMuI2FjdGl2ZUluZGV4TnVtYmVyIC0gMV07XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cbiIsIjxidXR0b25cbiAgKm5nSWY9XCJpc1Zpc2libGVcIlxuICBjbGFzcz1cInNreS1idG4gc2t5LW1hcmdpbi1pbmxpbmUtc21cIlxuICBbYXR0ci5hcmlhLWNvbnRyb2xzXT1cImFyaWFDb250cm9sc1wiXG4gIFtkaXNhYmxlZF09XCJcbiAgICBkaXNhYmxlZFxuICAgICAgfCBza3lUYWJzZXROYXZCdXR0b25EaXNhYmxlZFxuICAgICAgICA6IGJ1dHRvblR5cGVcbiAgICAgICAgOiAhIXRhYlRvU2VsZWN0XG4gICAgICAgIDogdGFiVG9TZWxlY3Q/LmRpc2FibGVkXG4gIFwiXG4gIFtuZ0NsYXNzXT1cImJ1dHRvbkNsYXNzTmFtZVwiXG4gIFt0eXBlXT1cInR5cGVcIlxuICAoY2xpY2spPVwiYnV0dG9uVHlwZSA9PT0gJ2ZpbmlzaCcgPyBudWxsIDogYnV0dG9uQ2xpY2soKVwiXG4+XG4gIHt7IGJ1dHRvblRleHQgfHwgKCdza3l1eF90YWJzX25hdmlnYXRvcl8nICsgYnV0dG9uVHlwZSB8IHNreUxpYlJlc291cmNlcykgfX1cbjwvYnV0dG9uPlxuIl19
|
|
@@ -1,3 +1,5 @@
|
|
|
1
|
+
var _SkyTabsetPermalinkService_instances, _SkyTabsetPermalinkService_popStateChange, _SkyTabsetPermalinkService_subscription, _SkyTabsetPermalinkService_activatedRoute, _SkyTabsetPermalinkService_location, _SkyTabsetPermalinkService_router, _SkyTabsetPermalinkService_getParams;
|
|
2
|
+
import { __classPrivateFieldGet, __classPrivateFieldSet } from "tslib";
|
|
1
3
|
import { Location } from '@angular/common';
|
|
2
4
|
import { Injectable } from '@angular/core';
|
|
3
5
|
import { ActivatedRoute, Router } from '@angular/router';
|
|
@@ -10,35 +12,42 @@ import * as i2 from "@angular/common";
|
|
|
10
12
|
*/
|
|
11
13
|
export class SkyTabsetPermalinkService {
|
|
12
14
|
constructor(activatedRoute, location, router) {
|
|
13
|
-
this
|
|
14
|
-
this
|
|
15
|
-
this
|
|
16
|
-
this
|
|
15
|
+
_SkyTabsetPermalinkService_instances.add(this);
|
|
16
|
+
_SkyTabsetPermalinkService_popStateChange.set(this, void 0);
|
|
17
|
+
_SkyTabsetPermalinkService_subscription.set(this, void 0);
|
|
18
|
+
_SkyTabsetPermalinkService_activatedRoute.set(this, void 0);
|
|
19
|
+
_SkyTabsetPermalinkService_location.set(this, void 0);
|
|
20
|
+
_SkyTabsetPermalinkService_router.set(this, void 0);
|
|
21
|
+
__classPrivateFieldSet(this, _SkyTabsetPermalinkService_activatedRoute, activatedRoute, "f");
|
|
22
|
+
__classPrivateFieldSet(this, _SkyTabsetPermalinkService_location, location, "f");
|
|
23
|
+
__classPrivateFieldSet(this, _SkyTabsetPermalinkService_router, router, "f");
|
|
24
|
+
__classPrivateFieldSet(this, _SkyTabsetPermalinkService_popStateChange, new Subject(), "f");
|
|
17
25
|
}
|
|
18
26
|
get popStateChange() {
|
|
19
|
-
return this
|
|
27
|
+
return __classPrivateFieldGet(this, _SkyTabsetPermalinkService_popStateChange, "f");
|
|
20
28
|
}
|
|
21
29
|
ngOnDestroy() {
|
|
22
|
-
if (this
|
|
23
|
-
this.
|
|
30
|
+
if (__classPrivateFieldGet(this, _SkyTabsetPermalinkService_subscription, "f")) {
|
|
31
|
+
__classPrivateFieldGet(this, _SkyTabsetPermalinkService_subscription, "f").unsubscribe();
|
|
24
32
|
}
|
|
33
|
+
__classPrivateFieldGet(this, _SkyTabsetPermalinkService_popStateChange, "f").complete();
|
|
25
34
|
}
|
|
26
35
|
init() {
|
|
27
|
-
this
|
|
28
|
-
this.
|
|
29
|
-
});
|
|
36
|
+
__classPrivateFieldSet(this, _SkyTabsetPermalinkService_subscription, __classPrivateFieldGet(this, _SkyTabsetPermalinkService_location, "f").subscribe(() => {
|
|
37
|
+
__classPrivateFieldGet(this, _SkyTabsetPermalinkService_popStateChange, "f").next();
|
|
38
|
+
}), "f");
|
|
30
39
|
}
|
|
31
40
|
/**
|
|
32
41
|
* Returns the value of a URL query param.
|
|
33
42
|
*/
|
|
34
43
|
getParam(name) {
|
|
35
|
-
return this.
|
|
44
|
+
return __classPrivateFieldGet(this, _SkyTabsetPermalinkService_instances, "m", _SkyTabsetPermalinkService_getParams).call(this)[name];
|
|
36
45
|
}
|
|
37
46
|
/**
|
|
38
47
|
* Sets the value of a URL query param.
|
|
39
48
|
*/
|
|
40
49
|
setParam(name, value) {
|
|
41
|
-
const params = this.
|
|
50
|
+
const params = __classPrivateFieldGet(this, _SkyTabsetPermalinkService_instances, "m", _SkyTabsetPermalinkService_getParams).call(this);
|
|
42
51
|
if (value === null) {
|
|
43
52
|
delete params[name];
|
|
44
53
|
}
|
|
@@ -47,18 +56,18 @@ export class SkyTabsetPermalinkService {
|
|
|
47
56
|
}
|
|
48
57
|
// Update the URL without triggering a navigation state change.
|
|
49
58
|
// See: https://stackoverflow.com/a/46486677
|
|
50
|
-
const url = this
|
|
59
|
+
const url = __classPrivateFieldGet(this, _SkyTabsetPermalinkService_router, "f")
|
|
51
60
|
.createUrlTree([], {
|
|
52
|
-
relativeTo: this
|
|
61
|
+
relativeTo: __classPrivateFieldGet(this, _SkyTabsetPermalinkService_activatedRoute, "f"),
|
|
53
62
|
queryParams: params,
|
|
54
63
|
queryParamsHandling: 'merge',
|
|
55
64
|
})
|
|
56
65
|
.toString();
|
|
57
66
|
// Abort redirect if the current URL is equal to the new URL.
|
|
58
|
-
if (this.
|
|
67
|
+
if (__classPrivateFieldGet(this, _SkyTabsetPermalinkService_location, "f").isCurrentPathEqualTo(url)) {
|
|
59
68
|
return;
|
|
60
69
|
}
|
|
61
|
-
this.
|
|
70
|
+
__classPrivateFieldGet(this, _SkyTabsetPermalinkService_location, "f").go(url);
|
|
62
71
|
}
|
|
63
72
|
/**
|
|
64
73
|
* Removes the provided query param from the URL.
|
|
@@ -74,13 +83,13 @@ export class SkyTabsetPermalinkService {
|
|
|
74
83
|
if (!name) {
|
|
75
84
|
return null;
|
|
76
85
|
}
|
|
77
|
-
const params = this.
|
|
86
|
+
const params = __classPrivateFieldGet(this, _SkyTabsetPermalinkService_instances, "m", _SkyTabsetPermalinkService_getParams).call(this);
|
|
78
87
|
params[name] = value;
|
|
79
|
-
const baseUrl = this.
|
|
88
|
+
const baseUrl = __classPrivateFieldGet(this, _SkyTabsetPermalinkService_location, "f").path().split('?')[0];
|
|
80
89
|
const paramString = Object.keys(params)
|
|
81
90
|
.map((k) => `${k}=${params[k]}`)
|
|
82
91
|
.join('&');
|
|
83
|
-
return this.
|
|
92
|
+
return __classPrivateFieldGet(this, _SkyTabsetPermalinkService_location, "f").prepareExternalUrl(`${baseUrl}?${paramString}`);
|
|
84
93
|
}
|
|
85
94
|
/**
|
|
86
95
|
* Converts the provided string into a value that can be safely used in a URL.
|
|
@@ -99,26 +108,23 @@ export class SkyTabsetPermalinkService {
|
|
|
99
108
|
.replace(/--/g, '-');
|
|
100
109
|
return sanitized;
|
|
101
110
|
}
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
const path = this.location.path();
|
|
108
|
-
if (path.indexOf('?') === -1) {
|
|
109
|
-
return params;
|
|
110
|
-
}
|
|
111
|
-
const existingParamPairs = path.split('?')[1].split('&');
|
|
112
|
-
existingParamPairs.forEach((pair) => {
|
|
113
|
-
const fragments = pair.split('=');
|
|
114
|
-
params[fragments[0]] = decodeURIComponent(fragments[1]);
|
|
115
|
-
});
|
|
111
|
+
}
|
|
112
|
+
_SkyTabsetPermalinkService_popStateChange = new WeakMap(), _SkyTabsetPermalinkService_subscription = new WeakMap(), _SkyTabsetPermalinkService_activatedRoute = new WeakMap(), _SkyTabsetPermalinkService_location = new WeakMap(), _SkyTabsetPermalinkService_router = new WeakMap(), _SkyTabsetPermalinkService_instances = new WeakSet(), _SkyTabsetPermalinkService_getParams = function _SkyTabsetPermalinkService_getParams() {
|
|
113
|
+
const params = {};
|
|
114
|
+
const path = __classPrivateFieldGet(this, _SkyTabsetPermalinkService_location, "f").path();
|
|
115
|
+
if (path.indexOf('?') === -1) {
|
|
116
116
|
return params;
|
|
117
117
|
}
|
|
118
|
-
|
|
118
|
+
const existingParamPairs = path.split('?')[1].split('&');
|
|
119
|
+
existingParamPairs.forEach((pair) => {
|
|
120
|
+
const fragments = pair.split('=');
|
|
121
|
+
params[fragments[0]] = decodeURIComponent(fragments[1]);
|
|
122
|
+
});
|
|
123
|
+
return params;
|
|
124
|
+
};
|
|
119
125
|
SkyTabsetPermalinkService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.0", ngImport: i0, type: SkyTabsetPermalinkService, deps: [{ token: i1.ActivatedRoute }, { token: i2.Location }, { token: i1.Router }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
120
126
|
SkyTabsetPermalinkService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "14.2.0", ngImport: i0, type: SkyTabsetPermalinkService });
|
|
121
127
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.0", ngImport: i0, type: SkyTabsetPermalinkService, decorators: [{
|
|
122
128
|
type: Injectable
|
|
123
129
|
}], ctorParameters: function () { return [{ type: i1.ActivatedRoute }, { type: i2.Location }, { type: i1.Router }]; } });
|
|
124
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
130
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFic2V0LXBlcm1hbGluay5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL3RhYnMvc3JjL2xpYi9tb2R1bGVzL3RhYnMvdGFic2V0LXBlcm1hbGluay5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQzNDLE9BQU8sRUFBRSxVQUFVLEVBQWEsTUFBTSxlQUFlLENBQUM7QUFDdEQsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUV6RCxPQUFPLEVBQWMsT0FBTyxFQUFvQixNQUFNLE1BQU0sQ0FBQzs7OztBQVM3RDs7R0FFRztBQUVILE1BQU0sT0FBTyx5QkFBeUI7SUFhcEMsWUFDRSxjQUE4QixFQUM5QixRQUFrQixFQUNsQixNQUFjOztRQVhoQiw0REFBK0I7UUFFL0IsMERBQTRDO1FBRTVDLDREQUFnQztRQUNoQyxzREFBb0I7UUFDcEIsb0RBQWdCO1FBT2QsdUJBQUEsSUFBSSw2Q0FBbUIsY0FBYyxNQUFBLENBQUM7UUFDdEMsdUJBQUEsSUFBSSx1Q0FBYSxRQUFRLE1BQUEsQ0FBQztRQUMxQix1QkFBQSxJQUFJLHFDQUFXLE1BQU0sTUFBQSxDQUFDO1FBRXRCLHVCQUFBLElBQUksNkNBQW1CLElBQUksT0FBTyxFQUFRLE1BQUEsQ0FBQztJQUM3QyxDQUFDO0lBdEJELElBQVcsY0FBYztRQUN2QixPQUFPLHVCQUFBLElBQUksaURBQWdCLENBQUM7SUFDOUIsQ0FBQztJQXNCTSxXQUFXO1FBQ2hCLElBQUksdUJBQUEsSUFBSSwrQ0FBYyxFQUFFO1lBQ3RCLHVCQUFBLElBQUksK0NBQWMsQ0FBQyxXQUFXLEVBQUUsQ0FBQztTQUNsQztRQUNELHVCQUFBLElBQUksaURBQWdCLENBQUMsUUFBUSxFQUFFLENBQUM7SUFDbEMsQ0FB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TSxHQUFvQixFQUFFLENBQUM7SUFFbkMsTUFBTSxJQUFJLEdBQUcsdUJBQUEsSUFBSSwyQ0FBVSxDQUFDLElBQUksRUFBRSxDQUFDO0lBQ25DLElBQUksSUFBSSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBRTtRQUM1QixPQUFPLE1BQU0sQ0FBQztLQUNmO0lBRUQsTUFBTSxrQkFBa0IsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUN6RCxrQkFBa0IsQ0FBQyxPQUFPLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRTtRQUNsQyxNQUFNLFNBQVMsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQ2xDLE1BQU0sQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxrQkFBa0IsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUMxRCxDQUFDLENBQUMsQ0FBQztJQUVILE9BQU8sTUFBTSxDQUFDO0FBQ2hCLENBQUM7c0hBL0lVLHlCQUF5QjswSEFBekIseUJBQXlCOzJGQUF6Qix5QkFBeUI7a0JBRHJDLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBMb2NhdGlvbiB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBJbmplY3RhYmxlLCBPbkRlc3Ryb3kgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEFjdGl2YXRlZFJvdXRlLCBSb3V0ZXIgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuXG5pbXBvcnQgeyBPYnNlcnZhYmxlLCBTdWJqZWN0LCBTdWJzY3JpcHRpb25MaWtlIH0gZnJvbSAncnhqcyc7XG5cbi8qKlxuICogQGludGVybmFsXG4gKi9cbmludGVyZmFjZSBQZXJtYWxpbmtQYXJhbXMge1xuICBbXzogc3RyaW5nXTogc3RyaW5nO1xufVxuXG4vKipcbiAqIEBpbnRlcm5hbFxuICovXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgU2t5VGFic2V0UGVybWFsaW5rU2VydmljZSBpbXBsZW1lbnRzIE9uRGVzdHJveSB7XG4gIHB1YmxpYyBnZXQgcG9wU3RhdGVDaGFuZ2UoKTogT2JzZXJ2YWJsZTx2b2lkPiB7XG4gICAgcmV0dXJuIHRoaXMuI3BvcFN0YXRlQ2hhbmdlO1xuICB9XG5cbiAgI3BvcFN0YXRlQ2hhbmdlOiBTdWJqZWN0PHZvaWQ+O1xuXG4gICNzdWJzY3JpcHRpb246IFN1YnNjcmlwdGlvbkxpa2UgfCB1bmRlZmluZWQ7XG5cbiAgI2FjdGl2YXRlZFJvdXRlOiBBY3RpdmF0ZWRSb3V0ZTtcbiAgI2xvY2F0aW9uOiBMb2NhdGlvbjtcbiAgI3JvdXRlcjogUm91dGVyO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIGFjdGl2YXRlZFJvdXRlOiBBY3RpdmF0ZWRSb3V0ZSxcbiAgICBsb2NhdGlvbjogTG9jYXRpb24sXG4gICAgcm91dGVyOiBSb3V0ZXJcbiAgKSB7XG4gICAgdGhpcy4jYWN0aXZhdGVkUm91dGUgPSBhY3RpdmF0ZWRSb3V0ZTtcbiAgICB0aGlzLiNsb2NhdGlvbiA9IGxvY2F0aW9uO1xuICAgIHRoaXMuI3JvdXRlciA9IHJvdXRlcjtcblxuICAgIHRoaXMuI3BvcFN0YXRlQ2hhbmdlID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcbiAgfVxuXG4gIHB1YmxpYyBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICBpZiAodGhpcy4jc3Vic2NyaXB0aW9uKSB7XG4gICAgICB0aGlzLiNzdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKTtcbiAgICB9XG4gICAgdGhpcy4jcG9wU3RhdGVDaGFuZ2UuY29tcGxldGUoKTtcbiAgfVxuXG4gIHB1YmxpYyBpbml0KCk6IHZvaWQge1xuICAgIHRoaXMuI3N1YnNjcmlwdGlvbiA9IHRoaXMuI2xvY2F0aW9uLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICB0aGlzLiNwb3BTdGF0ZUNoYW5nZS5uZXh0KCk7XG4gICAgfSk7XG4gIH1cblxuICAvKipcbiAgICogUmV0dXJucyB0aGUgdmFsdWUgb2YgYSBVUkwgcXVlcnkgcGFyYW0uXG4gICAqL1xuICBwdWJsaWMgZ2V0UGFyYW0obmFtZTogc3RyaW5nKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy4jZ2V0UGFyYW1zKClbbmFtZV07XG4gIH1cblxuICAvKipcbiAgICogU2V0cyB0aGUgdmFsdWUgb2YgYSBVUkwgcXVlcnkgcGFyYW0uXG4gICAqL1xuICBwdWJsaWMgc2V0UGFyYW0obmFtZTogc3RyaW5nLCB2YWx1ZTogc3RyaW5nIHwgbnVsbCk6IHZvaWQge1xuICAgIGNvbnN0IHBhcmFtcyA9IHRoaXMuI2dldFBhcmFtcygpO1xuXG4gICAgaWYgKHZhbHVlID09PSBudWxsKSB7XG4gICAgICBkZWxldGUgcGFyYW1zW25hbWVdO1xuICAgIH0gZWxzZSB7XG4gICAgICBwYXJhbXNbbmFtZV0gPSB2YWx1ZTtcbiAgICB9XG5cbiAgICAvLyBVcGRhdGUgdGhlIFVSTCB3aXRob3V0IHRyaWdnZXJpbmcgYSBuYXZpZ2F0aW9uIHN0YXRlIGNoYW5nZS5cbiAgICAvLyBTZWU6IGh0dHBzOi8vc3RhY2tvdmVyZmxvdy5jb20vYS80NjQ4NjY3N1xuICAgIGNvbnN0IHVybCA9IHRoaXMuI3JvdXRlclxuICAgICAgLmNyZWF0ZVVybFRyZWUoW10sIHtcbiAgICAgICAgcmVsYXRpdmVUbzogdGhpcy4jYWN0aXZhdGVkUm91dGUsXG4gICAgICAgIHF1ZXJ5UGFyYW1zOiBwYXJhbXMsXG4gICAgICAgIHF1ZXJ5UGFyYW1zSGFuZGxpbmc6ICdtZXJnZScsXG4gICAgICB9KVxuICAgICAgLnRvU3RyaW5nKCk7XG5cbiAgICAvLyBBYm9ydCByZWRpcmVjdCBpZiB0aGUgY3VycmVudCBVUkwgaXMgZXF1YWwgdG8gdGhlIG5ldyBVUkwuXG4gICAgaWYgKHRoaXMuI2xvY2F0aW9uLmlzQ3VycmVudFBhdGhFcXVhbFRvKHVybCkpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICB0aGlzLiNsb2NhdGlvbi5nbyh1cmwpO1xuICB9XG5cbiAgLyoqXG4gICAqIFJlbW92ZXMgdGhlIHByb3ZpZGVkIHF1ZXJ5IHBhcmFtIGZyb20gdGhlIFVSTC5cbiAgICovXG4gIHB1YmxpYyBjbGVhclBhcmFtKG5hbWU6IHN0cmluZyk6IHZvaWQge1xuICAgIHRoaXMuc2V0UGFyYW0obmFtZSwgbnVsbCk7XG4gIH1cblxuICAvKipcbiAgICogUmV0dXJucyBhIHJlbGF0aXZlIFVSTCB0aGF0IGluY2x1ZGVzIHRoZSBwcm92aWRlZCBxdWVyeSBwYXJhbWV0ZXIuIFRoZSB2YWx1ZSBpcyBpbnRlZGVkIHRvIGJlXG4gICAqIHVzZWQgYnkgYW4gSFRNTCBhbmNob3IgZWxlbWVudC5cbiAgICovXG4gIHB1YmxpYyBnZXRQYXJhbUhyZWYobmFtZTogc3RyaW5nIHwgdW5kZWZpbmVkLCB2YWx1ZTogc3RyaW5nKTogc3RyaW5nIHwgbnVsbCB7XG4gICAgaWYgKCFuYW1lKSB7XG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG5cbiAgICBjb25zdCBwYXJhbXMgPSB0aGlzLiNnZXRQYXJhbXMoKTtcbiAgICBwYXJhbXNbbmFtZV0gPSB2YWx1ZTtcblxuICAgIGNvbnN0IGJhc2VVcmwgPSB0aGlzLiNsb2NhdGlvbi5wYXRoKCkuc3BsaXQoJz8nKVswXTtcbiAgICBjb25zdCBwYXJhbVN0cmluZyA9IE9iamVjdC5rZXlzKHBhcmFtcylcbiAgICAgIC5tYXAoKGspID0+IGAke2t9PSR7cGFyYW1zW2tdfWApXG4gICAgICAuam9pbignJicpO1xuXG4gICAgcmV0dXJuIHRoaXMuI2xvY2F0aW9uLnByZXBhcmVFeHRlcm5hbFVybChgJHtiYXNlVXJsfT8ke3BhcmFtU3RyaW5nfWApO1xuICB9XG5cbiAgLyoqXG4gICAqIENvbnZlcnRzIHRoZSBwcm92aWRlZCBzdHJpbmcgaW50byBhIHZhbHVlIHRoYXQgY2FuIGJlIHNhZmVseSB1c2VkIGluIGEgVVJMLlxuICAgKi9cbiAgcHVibGljIHVybGlmeSh2YWx1ZTogc3RyaW5nIHwgdW5kZWZpbmVkKTogc3RyaW5nIHtcbiAgICBpZiAoIXZhbHVlKSB7XG4gICAgICByZXR1cm4gJyc7XG4gICAgfVxuXG4gICAgY29uc3Qgc2FuaXRpemVkID0gdmFsdWVcbiAgICAgIC50b0xvd2VyQ2FzZSgpXG5cbiAgICAgIC8vIFJlbW92ZSBzcGVjaWFsIGNoYXJhY3RlcnMuXG4gICAgICAucmVwbGFjZSgvW19+YEAhIyQlXiYqKClbXFxde307OicvXFxcXDw+LC4/PSt8XCJdL2csICcnKVxuXG4gICAgICAvLyBSZXBsYWNlIHNwYWNlIGNoYXJhY3RlcnMgd2l0aCBhIGRhc2guXG4gICAgICAucmVwbGFjZSgvXFxzL2csICctJylcblxuICAgICAgLy8gUmVtb3ZlIGFueSBkb3VibGUtZGFzaGVzLlxuICAgICAgLnJlcGxhY2UoLy0tL2csICctJyk7XG5cbiAgICByZXR1cm4gc2FuaXRpemVkO1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybnMgYWxsIHF1ZXJ5IHBhcmFtcyB0aGF0IGV4aXN0IGluIHRoZSBjdXJyZW50IFVSTC5cbiAgICovXG4gICNnZXRQYXJhbXMoKTogUGVybWFsaW5rUGFyYW1zIHtcbiAgICBjb25zdCBwYXJhbXM6IFBlcm1hbGlua1BhcmFtcyA9IHt9O1xuXG4gICAgY29uc3QgcGF0aCA9IHRoaXMuI2xvY2F0aW9uLnBhdGgoKTtcbiAgICBpZiAocGF0aC5pbmRleE9mKCc/JykgPT09IC0xKSB7XG4gICAgICByZXR1cm4gcGFyYW1zO1xuICAgIH1cblxuICAgIGNvbnN0IGV4aXN0aW5nUGFyYW1QYWlycyA9IHBhdGguc3BsaXQoJz8nKVsxXS5zcGxpdCgnJicpO1xuICAgIGV4aXN0aW5nUGFyYW1QYWlycy5mb3JFYWNoKChwYWlyKSA9PiB7XG4gICAgICBjb25zdCBmcmFnbWVudHMgPSBwYWlyLnNwbGl0KCc9Jyk7XG4gICAgICBwYXJhbXNbZnJhZ21lbnRzWzBdXSA9IGRlY29kZVVSSUNvbXBvbmVudChmcmFnbWVudHNbMV0pO1xuICAgIH0pO1xuXG4gICAgcmV0dXJuIHBhcmFtcztcbiAgfVxufVxuIl19
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
export {};
|
|
2
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFic2V0LXRhYi1pbmRleGVzLWNoYW5nZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tcG9uZW50cy90YWJzL3NyYy9saWIvbW9kdWxlcy90YWJzL3RhYnNldC10YWItaW5kZXhlcy1jaGFuZ2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFNreVRhYkluZGV4IH0gZnJvbSAnLi90YWItaW5kZXgnO1xuXG5leHBvcnQgaW50ZXJmYWNlIFNreVRhYnNldFRhYkluZGV4ZXNDaGFuZ2Uge1xuICB0YWJzPzoge1xuICAgIHRhYkhlYWRpbmc/OiBzdHJpbmc7XG5cbiAgICB0YWJJbmRleD86IFNreVRhYkluZGV4O1xuICB9W107XG59XG4iXX0=
|