@skyux/tabs 7.0.0-beta.1 → 7.0.0-beta.10
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 +970 -830
- package/esm2020/lib/modules/sectioned-form/sectioned-form-section.component.mjs +20 -14
- package/esm2020/lib/modules/sectioned-form/sectioned-form.component.mjs +25 -19
- package/esm2020/lib/modules/sectioned-form/sectioned-form.service.mjs +1 -1
- package/esm2020/lib/modules/shared/sky-tabs-resources.module.mjs +9 -1
- package/esm2020/lib/modules/tabs/tab-button-view-model.mjs +1 -1
- package/esm2020/lib/modules/tabs/tab-button.component.mjs +48 -10
- 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 +32 -42
- 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 +219 -226
- package/esm2020/lib/modules/tabs/tabset.service.mjs +67 -51
- package/esm2020/lib/modules/vertical-tabset/vertical-tab-media-query.service.mjs +11 -12
- package/esm2020/lib/modules/vertical-tabset/vertical-tab.component.mjs +67 -54
- package/esm2020/lib/modules/vertical-tabset/vertical-tabset-adapter.service.mjs +11 -8
- package/esm2020/lib/modules/vertical-tabset/vertical-tabset-group.component.mjs +28 -34
- package/esm2020/lib/modules/vertical-tabset/vertical-tabset.component.mjs +23 -20
- package/esm2020/lib/modules/vertical-tabset/vertical-tabset.service.mjs +55 -56
- 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 +764 -624
- 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 +867 -731
- package/fesm2020/skyux-tabs.mjs.map +1 -1
- package/lib/modules/sectioned-form/sectioned-form-section.component.d.ts +7 -10
- package/lib/modules/sectioned-form/sectioned-form.component.d.ts +4 -6
- package/lib/modules/sectioned-form/sectioned-form.service.d.ts +4 -4
- package/lib/modules/tabs/tab-button-view-model.d.ts +7 -5
- package/lib/modules/tabs/tab-button.component.d.ts +17 -11
- 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 -5
- 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 +9 -56
- package/lib/modules/tabs/tabset.service.d.ts +8 -12
- package/lib/modules/vertical-tabset/vertical-tab-media-query.service.d.ts +2 -3
- package/lib/modules/vertical-tabset/vertical-tab.component.d.ts +13 -22
- package/lib/modules/vertical-tabset/vertical-tabset-adapter.service.d.ts +1 -2
- package/lib/modules/vertical-tabset/vertical-tabset-group.component.d.ts +7 -11
- package/lib/modules/vertical-tabset/vertical-tabset.component.d.ts +10 -13
- package/lib/modules/vertical-tabset/vertical-tabset.service.d.ts +10 -17
- 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
|
}
|
|
@@ -32,20 +32,20 @@ export class SkyTabsetNavButtonComponent {
|
|
|
32
32
|
* Specifies the tabset wizard component to associate with the nav button.
|
|
33
33
|
* @required
|
|
34
34
|
*/
|
|
35
|
+
get tabset() {
|
|
36
|
+
return __classPrivateFieldGet(this, _SkyTabsetNavButtonComponent__tabset, "f");
|
|
37
|
+
}
|
|
35
38
|
set tabset(value) {
|
|
36
39
|
__classPrivateFieldSet(this, _SkyTabsetNavButtonComponent__tabset, value, "f");
|
|
37
40
|
if (__classPrivateFieldGet(this, _SkyTabsetNavButtonComponent_currentTabsetSub, "f")) {
|
|
38
41
|
__classPrivateFieldGet(this, _SkyTabsetNavButtonComponent_currentTabsetSub, "f").unsubscribe();
|
|
39
42
|
}
|
|
40
43
|
if (value) {
|
|
41
|
-
|
|
42
|
-
__classPrivateFieldGet(this, _SkyTabsetNavButtonComponent__tabset, "f").hasFinishButton = true;
|
|
43
|
-
}
|
|
44
|
-
__classPrivateFieldSet(this, _SkyTabsetNavButtonComponent_currentTabsetSub, __classPrivateFieldGet(this, _SkyTabsetNavButtonComponent__tabset, "f").activeChange
|
|
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 (__classPrivateFieldGet(this, _SkyTabsetNavButtonComponent__buttonType, "f") === 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,57 +91,53 @@ export class SkyTabsetNavButtonComponent {
|
|
|
97
91
|
}
|
|
98
92
|
buttonClick() {
|
|
99
93
|
/* istanbul ignore else */
|
|
100
|
-
if (
|
|
101
|
-
|
|
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;
|
|
107
|
-
if (
|
|
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;
|
|
101
|
+
if (this.buttonType === buttonTypeFinish) {
|
|
108
102
|
this.isVisible = isLastStep;
|
|
109
|
-
return;
|
|
110
103
|
}
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
this.isVisible =
|
|
116
|
-
return;
|
|
104
|
+
else if (this.buttonType === buttonTypeNext) {
|
|
105
|
+
this.isVisible = !isLastStep;
|
|
106
|
+
}
|
|
107
|
+
else {
|
|
108
|
+
this.isVisible = true;
|
|
117
109
|
}
|
|
118
|
-
this.isVisible = true;
|
|
119
110
|
}, _SkyTabsetNavButtonComponent_updateButtonProperties = function _SkyTabsetNavButtonComponent_updateButtonProperties() {
|
|
120
|
-
if (
|
|
121
|
-
|
|
122
|
-
__classPrivateFieldGet(this, _SkyTabsetNavButtonComponent__tabset, "f")?.hasFinishButton) {
|
|
111
|
+
if (this.buttonType === buttonTypeNext ||
|
|
112
|
+
this.buttonType === buttonTypeFinish) {
|
|
123
113
|
this.buttonClassName = 'sky-btn-primary';
|
|
124
114
|
}
|
|
125
115
|
else {
|
|
126
116
|
this.buttonClassName = 'sky-btn-default';
|
|
127
117
|
}
|
|
128
|
-
this.ariaControls =
|
|
118
|
+
this.ariaControls = this.tabToSelect?.tabPanelId;
|
|
129
119
|
}, _SkyTabsetNavButtonComponent_updateTabToSelect = function _SkyTabsetNavButtonComponent_updateTabToSelect() {
|
|
130
|
-
if (
|
|
131
|
-
const tabs =
|
|
132
|
-
|
|
120
|
+
if (this.tabset?.tabs) {
|
|
121
|
+
const tabs = this.tabset.tabs.toArray();
|
|
122
|
+
this.tabToSelect = undefined;
|
|
133
123
|
// tab index can be a number or a string, but we need the actual number index
|
|
134
124
|
__classPrivateFieldSet(this, _SkyTabsetNavButtonComponent_activeIndexNumber, tabs.findIndex((tab) => tab.tabIndex === __classPrivateFieldGet(this, _SkyTabsetNavButtonComponent_activeSkyTabIndex, "f")), "f");
|
|
135
125
|
/* istanbul ignore else */
|
|
136
126
|
if (__classPrivateFieldGet(this, _SkyTabsetNavButtonComponent_activeIndexNumber, "f") !== undefined) {
|
|
137
|
-
if (
|
|
138
|
-
|
|
127
|
+
if (this.buttonType === buttonTypeNext) {
|
|
128
|
+
this.tabToSelect = tabs[__classPrivateFieldGet(this, _SkyTabsetNavButtonComponent_activeIndexNumber, "f") + 1];
|
|
139
129
|
}
|
|
140
|
-
else if (
|
|
141
|
-
|
|
130
|
+
else if (this.buttonType === buttonTypePrevious) {
|
|
131
|
+
this.tabToSelect = tabs[__classPrivateFieldGet(this, _SkyTabsetNavButtonComponent_activeIndexNumber, "f") - 1];
|
|
142
132
|
}
|
|
143
133
|
}
|
|
144
134
|
}
|
|
145
135
|
};
|
|
146
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 });
|
|
147
|
-
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" }] });
|
|
148
138
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.0", ngImport: i0, type: SkyTabsetNavButtonComponent, decorators: [{
|
|
149
139
|
type: Component,
|
|
150
|
-
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" }]
|
|
151
141
|
}], ctorParameters: function () { return [{ type: i1.SkyLogService }]; }, propDecorators: { tabset: [{
|
|
152
142
|
type: Input
|
|
153
143
|
}], buttonType: [{
|
|
@@ -157,4 +147,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.0", ngImpor
|
|
|
157
147
|
}], disabled: [{
|
|
158
148
|
type: Input
|
|
159
149
|
}] } });
|
|
160
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFic2V0LW5hdi1idXR0b24uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL3RhYnMvc3JjL2xpYi9tb2R1bGVzL3RhYnMvdGFic2V0LW5hdi1idXR0b24uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL3RhYnMvc3JjL2xpYi9tb2R1bGVzL3RhYnMvdGFic2V0LW5hdi1idXR0b24uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBYSxNQUFNLGVBQWUsQ0FBQztBQUM1RCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBRTVDLE9BQU8sRUFBRSxPQUFPLEVBQWdCLE1BQU0sTUFBTSxDQUFDO0FBQzdDLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUtqRSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQzs7Ozs7QUFFeEQsTUFBTSxjQUFjLEdBQUcsTUFBTSxDQUFDO0FBQzlCLE1BQU0sa0JBQWtCLEdBQUcsVUFBVSxDQUFDO0FBQ3RDLE1BQU0sZ0JBQWdCLEdBQUcsUUFBUSxDQUFDO0FBTWxDLE1BQU0sT0FBTywyQkFBMkI7SUFtR3RDLFlBQVksTUFBcUI7O1FBZjFCLGNBQVMsR0FBRyxLQUFLLENBQUM7UUFJekIsMkRBQThDO1FBQzlDLHlEQUFnQztRQUNoQyx1REFBNkI7UUFDN0IsaUVBQTJCO1FBQzNCLGlFQUFnQztRQUNoQyxnRUFBZ0M7UUFDaEMsc0RBQXVCO1FBQ3ZCLHdEQUFrQjtRQUNsQiwyREFBMEM7UUFDMUMscURBQWlCLElBQUksT0FBTyxFQUFRLEVBQUM7UUFHbkMsdUJBQUEsSUFBSSx1Q0FBVyxNQUFNLE1BQUEsQ0FBQztJQUN4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QUUsRUFBRSxDQUFDLEdBQUcsQ0FBQyxRQUFRLEtBQUssdUJBQUEsSUFBSSxzREFBbUIsQ0FDbEQsTUFBQSxDQUFDO1FBRUYsMEJBQTBCO1FBQzFCLElBQUksdUJBQUEsSUFBSSxzREFBbUIsS0FBSyxTQUFTLEVBQUU7WUFDekMsSUFBSSx1QkFBQSxJQUFJLGdEQUFhLEtBQUssY0FBYyxFQUFFO2dCQUN4Qyx1QkFBQSxJQUFJLDRDQUFnQixJQUFJLENBQUMsdUJBQUEsSUFBSSxzREFBbUIsR0FBRyxDQUFDLENBQUMsTUFBQSxDQUFDO2FBQ3ZEO2lCQUFNLElBQUksdUJBQUEsSUFBSSxnREFBYSxLQUFLLGtCQUFrQixFQUFFO2dCQUNuRCx1QkFBQSxJQUFJLDRDQUFnQixJQUFJLENBQUMsdUJBQUEsSUFBSSxzREFBbUIsR0FBRyxDQUFDLENBQUMsTUFBQSxDQUFDO2FBQ3ZEO1NBQ0Y7S0FDRjtBQUNILENBQUM7d0hBektVLDJCQUEyQjs0R0FBM0IsMkJBQTJCLHFLQ25CeEMsZ1dBV0E7MkZEUWEsMkJBQTJCO2tCQUp2QyxTQUFTOytCQUNFLHVCQUF1QjtvR0FTdEIsTUFBTTtzQkFEaEIsS0FBSztnQkFrQ0ssVUFBVTtzQkFEcEIsS0FBSztnQkF1QkMsVUFBVTtzQkFEaEIsS0FBSztnQkFTSyxRQUFRO3NCQURsQixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBJbnB1dCwgT25EZXN0cm95IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBTa3lMb2dTZXJ2aWNlIH0gZnJvbSAnQHNreXV4L2NvcmUnO1xuXG5pbXBvcnQgeyBTdWJqZWN0LCBTdWJzY3JpcHRpb24gfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IGRpc3RpbmN0VW50aWxDaGFuZ2VkLCB0YWtlVW50aWwgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5cbmltcG9ydCB7IFNreVRhYkluZGV4IH0gZnJvbSAnLi90YWItaW5kZXgnO1xuaW1wb3J0IHsgU2t5VGFiQ29tcG9uZW50IH0gZnJvbSAnLi90YWIuY29tcG9uZW50JztcbmltcG9ydCB7IFNreVRhYnNldE5hdkJ1dHRvblR5cGUgfSBmcm9tICcuL3RhYnNldC1uYXYtYnV0dG9uLXR5cGUnO1xuaW1wb3J0IHsgU2t5VGFic2V0Q29tcG9uZW50IH0gZnJvbSAnLi90YWJzZXQuY29tcG9uZW50JztcblxuY29uc3QgYnV0dG9uVHlwZU5leHQgPSAnbmV4dCc7XG5jb25zdCBidXR0b25UeXBlUHJldmlvdXMgPSAncHJldmlvdXMnO1xuY29uc3QgYnV0dG9uVHlwZUZpbmlzaCA9ICdmaW5pc2gnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdza3ktdGFic2V0LW5hdi1idXR0b24nLFxuICB0ZW1wbGF0ZVVybDogJy4vdGFic2V0LW5hdi1idXR0b24uY29tcG9uZW50Lmh0bWwnLFxufSlcbmV4cG9ydCBjbGFzcyBTa3lUYWJzZXROYXZCdXR0b25Db21wb25lbnQgaW1wbGVtZW50cyBPbkRlc3Ryb3kge1xuICAvKipcbiAgICogU3BlY2lmaWVzIHRoZSB0YWJzZXQgd2l6YXJkIGNvbXBvbmVudCB0byBhc3NvY2lhdGUgd2l0aCB0aGUgbmF2IGJ1dHRvbi5cbiAgICogQHJlcXVpcmVkXG4gICAqL1xuICBASW5wdXQoKVxuICBwdWJsaWMgc2V0IHRhYnNldCh2YWx1ZTogU2t5VGFic2V0Q29tcG9uZW50KSB7XG4gICAgdGhpcy4jX3RhYnNldCA9IHZhbHVlO1xuXG4gICAgaWYgKHRoaXMuI2N1cnJlbnRUYWJzZXRTdWIpIHtcbiAgICAgIHRoaXMuI2N1cnJlbnRUYWJzZXRTdWIudW5zdWJzY3JpYmUoKTtcbiAgICB9XG5cbiAgICBpZiAodmFsdWUpIHtcbiAgICAgIGlmICh0aGlzLiNfYnV0dG9uVHlwZSA9PT0gYnV0dG9uVHlwZUZpbmlzaCkge1xuICAgICAgICB0aGlzLiNfdGFic2V0Lmhhc0ZpbmlzaEJ1dHRvbiA9IHRydWU7XG4gICAgICB9XG5cbiAgICAgIHRoaXMuI2N1cnJlbnRUYWJzZXRTdWIgPSB0aGlzLiNfdGFic2V0LmFjdGl2ZUNoYW5nZVxuICAgICAgICAucGlwZShkaXN0aW5jdFVudGlsQ2hhbmdlZCgpLCB0YWtlVW50aWwodGhpcy4jbmdVbnN1YnNjcmliZSkpXG4gICAgICAgIC5zdWJzY3JpYmUoKGluZGV4OiBTa3lUYWJJbmRleCkgPT4ge1xuICAgICAgICAgIHRoaXMuI2FjdGl2ZVNreVRhYkluZGV4ID0gaW5kZXg7XG4gICAgICAgICAgdGhpcy4jdGFiQ291bnQgPSB0aGlzLiNfdGFic2V0LnRhYnMubGVuZ3RoO1xuICAgICAgICAgIHRoaXMuI3VwZGF0ZVRhYlRvU2VsZWN0KCk7XG4gICAgICAgICAgdGhpcy4jdXBkYXRlQnV0dG9uVmlzaWJpbGl0eSgpO1xuICAgICAgICAgIHRoaXMuI3VwZGF0ZUJ1dHRvblByb3BlcnRpZXMoKTtcbiAgICAgICAgfSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuI2xvZ2dlci5lcnJvcihcbiAgICAgICAgJ1RoZSBTa3lUYWJzZXROYXZCdXR0b25Db21wb25lbnQgcmVxdWlyZXMgYSByZWZlcmVuY2UgdG8gdGhlIFNreVRhYnNldENvbXBvbmVudCBpdCBjb250cm9scy4nXG4gICAgICApO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBTcGVjaWZpZXMgdGhlIHR5cGUgb2YgbmF2IGJ1dHRvbiB0byBpbmNsdWRlLlxuICAgKiBAcmVxdWlyZWRcbiAgICovXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBnZXQgYnV0dG9uVHlwZSgpOiBTa3lUYWJzZXROYXZCdXR0b25UeXBlIHwgc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy4jX2J1dHRvblR5cGU7XG4gIH1cblxuICBwdWJsaWMgc2V0IGJ1dHRvblR5cGUodmFsdWU6IFNreVRhYnNldE5hdkJ1dHRvblR5cGUgfCBzdHJpbmcpIHtcbiAgICB0aGlzLiNfYnV0dG9uVHlwZSA9IHZhbHVlO1xuICAgIHRoaXMuI3VwZGF0ZVRhYlRvU2VsZWN0KCk7XG4gICAgdGhpcy4jdXBkYXRlQnV0dG9uUHJvcGVydGllcygpO1xuICAgIHRoaXMuI3VwZGF0ZUJ1dHRvblZpc2liaWxpdHkoKTtcblxuICAgIGlmICh2YWx1ZSA9PT0gYnV0dG9uVHlwZUZpbmlzaCkge1xuICAgICAgdGhpcy50eXBlID0gJ3N1Ym1pdCc7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMudHlwZSA9ICdidXR0b24nO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBTcGVjaWZpZXMgdGhlIGxhYmVsIHRvIGRpc3BsYXkgb24gdGhlIG5hdiBidXR0b24uIFRoZSBmb2xsb3dpbmcgYXJlIHRoZSBkZWZhdWx0cyBmb3IgZWFjaCBgYnV0dG9uVHlwZWAuXG4gICAqIGBuZXh0YCA9IFwiTmV4dFwiLCBgcHJldmlvdXNgID0gXCJQcmV2aW91c1wiLCBgZmluaXNoYCA9IFwiRmluaXNoXCJcbiAgICovXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBidXR0b25UZXh0Pzogc3RyaW5nIHwgdW5kZWZpbmVkO1xuXG4gIC8qKlxuICAgKiBJbmRpY2F0ZXMgd2hldGhlciB0byBkaXNhYmxlIHRoZSBuYXYgYnV0dG9uLlxuICAgKiBEZWZhdWx0cyB0byB0aGUgZGlzYWJsZWQgc3RhdGUgb2YgdGhlIG5leHQgdGFiIGZvciBgbmV4dGAsIHRoZSBleGlzdGVuY2Ugb2YgYSBwcmV2aW91cyB0YWIgZm9yIGBwcmV2aW91c2AsXG4gICAqIGFuZCBmYWxzZSBmb3IgYGZpbmlzaGAuXG4gICAqL1xuICBASW5wdXQoKVxuICBwdWJsaWMgc2V0IGRpc2FibGVkKHZhbHVlOiBib29sZWFuKSB7XG4gICAgdGhpcy4jX2Rpc2FibGVkID0gdmFsdWU7XG4gIH1cblxuICBwdWJsaWMgZ2V0IGRpc2FibGVkKCk6IGJvb2xlYW4ge1xuICAgIGlmICh0aGlzLiNfZGlzYWJsZWQgIT09IHVuZGVmaW5lZCkge1xuICAgICAgcmV0dXJuIHRoaXMuI19kaXNhYmxlZDtcbiAgICB9IGVsc2UgaWYgKHRoaXMuI19idXR0b25UeXBlID09PSBidXR0b25UeXBlRmluaXNoKSB7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuXG4gICAgcmV0dXJuICF0aGlzLiN0YWJUb1NlbGVjdCB8fCB0aGlzLiN0YWJUb1NlbGVjdC5kaXNhYmxlZDtcbiAgfVxuXG4gIHB1YmxpYyBidXR0b25DbGFzc05hbWU6IHN0cmluZyB8IHVuZGVmaW5lZDtcbiAgcHVibGljIGlzVmlzaWJsZSA9IGZhbHNlO1xuICBwdWJsaWMgdHlwZTogJ3N1Ym1pdCcgfCAnYnV0dG9uJztcbiAgcHVibGljIGFyaWFDb250cm9sczogc3RyaW5nIHwgdW5kZWZpbmVkO1xuXG4gICNfYnV0dG9uVHlwZTogU2t5VGFic2V0TmF2QnV0dG9uVHlwZSB8IHN0cmluZztcbiAgI19kaXNhYmxlZDogYm9vbGVhbiB8IHVuZGVmaW5lZDtcbiAgI190YWJzZXQ6IFNreVRhYnNldENvbXBvbmVudDtcbiAgI2FjdGl2ZUluZGV4TnVtYmVyOiBudW1iZXI7XG4gICNhY3RpdmVTa3lUYWJJbmRleDogU2t5VGFiSW5kZXg7XG4gICNjdXJyZW50VGFic2V0U3ViOiBTdWJzY3JpcHRpb247XG4gICNsb2dnZXI6IFNreUxvZ1NlcnZpY2U7XG4gICN0YWJDb3VudDogbnVtYmVyO1xuICAjdGFiVG9TZWxlY3Q6IFNreVRhYkNvbXBvbmVudCB8IHVuZGVmaW5lZDtcbiAgI25nVW5zdWJzY3JpYmUgPSBuZXcgU3ViamVjdDx2b2lkPigpO1xuXG4gIGNvbnN0cnVjdG9yKGxvZ2dlcjogU2t5TG9nU2VydmljZSkge1xuICAgIHRoaXMuI2xvZ2dlciA9IGxvZ2dlcjtcbiAgfVxuXG4gIHB1YmxpYyBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICB0aGlzLiNuZ1Vuc3Vic2NyaWJlLm5leHQoKTtcbiAgICB0aGlzLiNuZ1Vuc3Vic2NyaWJlLmNvbXBsZXRlKCk7XG4gIH1cblxuICBwdWJsaWMgYnV0dG9uQ2xpY2soKSB7XG4gICAgLyogaXN0YW5idWwgaWdub3JlIGVsc2UgKi9cbiAgICBpZiAodGhpcy4jdGFiVG9TZWxlY3QgJiYgIXRoaXMuI3RhYlRvU2VsZWN0LmRpc2FibGVkKSB7XG4gICAgICB0aGlzLiNfdGFic2V0LmFjdGl2ZSA9IHRoaXMuI3RhYlRvU2VsZWN0LnRhYkluZGV4O1xuICAgIH1cbiAgfVxuXG4gICN1cGRhdGVCdXR0b25WaXNpYmlsaXR5KCk6IHZvaWQge1xuICAgIGNvbnN0IGlzTGFzdFN0ZXAgPSB0aGlzLiNhY3RpdmVJbmRleE51bWJlciA9PT0gdGhpcy4jdGFiQ291bnQgLSAxO1xuXG4gICAgaWYgKHRoaXMuI19idXR0b25UeXBlID09PSBidXR0b25UeXBlRmluaXNoKSB7XG4gICAgICB0aGlzLmlzVmlzaWJsZSA9IGlzTGFzdFN0ZXA7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgLy8gSGlkZSB0aGUgbmV4dCBidXR0b24gb24gdGhlIGxhc3Qgc3RlcCBvbmx5IGlmIGEgZmluaXNoIGJ1dHRvbiBleGlzdHMuXG4gICAgaWYgKFxuICAgICAgdGhpcy4jX2J1dHRvblR5cGUgPT09IGJ1dHRvblR5cGVOZXh0ICYmXG4gICAgICBpc0xhc3RTdGVwICYmXG4gICAgICB0aGlzLiNfdGFic2V0Lmhhc0ZpbmlzaEJ1dHRvblxuICAgICkge1xuICAgICAgdGhpcy5pc1Zpc2libGUgPSBmYWxzZTtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICB0aGlzLmlzVmlzaWJsZSA9IHRydWU7XG4gIH1cblxuICAjdXBkYXRlQnV0dG9uUHJvcGVydGllcygpOiB2b2lkIHtcbiAgICBpZiAoXG4gICAgICAodGhpcy4jX2J1dHRvblR5cGUgPT09IGJ1dHRvblR5cGVOZXh0IHx8XG4gICAgICAgIHRoaXMuI19idXR0b25UeXBlID09PSBidXR0b25UeXBlRmluaXNoKSAmJlxuICAgICAgdGhpcy4jX3RhYnNldD8uaGFzRmluaXNoQnV0dG9uXG4gICAgKSB7XG4gICAgICB0aGlzLmJ1dHRvbkNsYXNzTmFtZSA9ICdza3ktYnRuLXByaW1hcnknO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmJ1dHRvbkNsYXNzTmFtZSA9ICdza3ktYnRuLWRlZmF1bHQnO1xuICAgIH1cblxuICAgIHRoaXMuYXJpYUNvbnRyb2xzID0gdGhpcy4jdGFiVG9TZWxlY3Q/LnRhYlBhbmVsSWQ7XG4gIH1cblxuICAjdXBkYXRlVGFiVG9TZWxlY3QoKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuI190YWJzZXQ/LnRhYnMpIHtcbiAgICAgIGNvbnN0IHRhYnMgPSB0aGlzLiNfdGFic2V0LnRhYnMudG9BcnJheSgpO1xuICAgICAgdGhpcy4jdGFiVG9TZWxlY3QgPSB1bmRlZmluZWQ7XG5cbiAgICAgIC8vIHRhYiBpbmRleCBjYW4gYmUgYSBudW1iZXIgb3IgYSBzdHJpbmcsIGJ1dCB3ZSBuZWVkIHRoZSBhY3R1YWwgbnVtYmVyIGluZGV4XG4gICAgICB0aGlzLiNhY3RpdmVJbmRleE51bWJlciA9IHRhYnMuZmluZEluZGV4KFxuICAgICAgICAodGFiKSA9PiB0YWIudGFiSW5kZXggPT09IHRoaXMuI2FjdGl2ZVNreVRhYkluZGV4XG4gICAgICApO1xuXG4gICAgICAvKiBpc3RhbmJ1bCBpZ25vcmUgZWxzZSAqL1xuICAgICAgaWYgKHRoaXMuI2FjdGl2ZUluZGV4TnVtYmVyICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgaWYgKHRoaXMuI19idXR0b25UeXBlID09PSBidXR0b25UeXBlTmV4dCkge1xuICAgICAgICAgIHRoaXMuI3RhYlRvU2VsZWN0ID0gdGFic1t0aGlzLiNhY3RpdmVJbmRleE51bWJlciArIDFdO1xuICAgICAgICB9IGVsc2UgaWYgKHRoaXMuI19idXR0b25UeXBlID09PSBidXR0b25UeXBlUHJldmlvdXMpIHtcbiAgICAgICAgICB0aGlzLiN0YWJUb1NlbGVjdCA9IHRhYnNbdGhpcy4jYWN0aXZlSW5kZXhOdW1iZXIgLSAxXTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxufVxuIiwiPGJ1dHRvblxuICAqbmdJZj1cImlzVmlzaWJsZVwiXG4gIGNsYXNzPVwic2t5LWJ0biBza3ktbWFyZ2luLWlubGluZS1zbVwiXG4gIFthdHRyLmFyaWEtY29udHJvbHNdPVwiYXJpYUNvbnRyb2xzXCJcbiAgW2Rpc2FibGVkXT1cImRpc2FibGVkXCJcbiAgW25nQ2xhc3NdPVwiYnV0dG9uQ2xhc3NOYW1lXCJcbiAgW3R5cGVdPVwidHlwZVwiXG4gIChjbGljayk9XCJidXR0b25UeXBlID09PSAnZmluaXNoJyA/IG51bGwgOiBidXR0b25DbGljaygpXCJcbj5cbiAge3sgYnV0dG9uVGV4dCB8fCAoJ3NreXV4X3RhYnNfbmF2aWdhdG9yXycgKyBidXR0b25UeXBlIHwgc2t5TGliUmVzb3VyY2VzKSB9fVxuPC9idXR0b24+XG4iXX0=
|
|
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=
|