@skyux/tabs 5.9.4 → 6.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 +1 -1
- package/esm2020/index.mjs +23 -0
- package/esm2020/lib/modules/sectioned-form/sectioned-form-section.component.mjs +62 -0
- package/esm2020/lib/modules/sectioned-form/sectioned-form.component.mjs +109 -0
- package/esm2020/lib/modules/sectioned-form/sectioned-form.module.mjs +35 -0
- package/esm2020/lib/modules/sectioned-form/sectioned-form.service.mjs +35 -0
- package/esm2020/lib/modules/shared/sky-tabs-resources.module.mjs +52 -0
- package/esm2020/lib/modules/tabs/tab-button.component.mjs +70 -0
- package/esm2020/lib/modules/tabs/tab-index.mjs +2 -0
- package/esm2020/lib/modules/tabs/tab.component.mjs +131 -0
- package/esm2020/lib/modules/tabs/tabs.module.mjs +57 -0
- package/esm2020/lib/modules/tabs/tabset-active-tab-unregistered-args.mjs +2 -0
- package/esm2020/lib/modules/tabs/tabset-adapter.service.mjs +56 -0
- package/esm2020/lib/modules/tabs/tabset-buttons-display-mode.mjs +2 -0
- package/esm2020/lib/modules/tabs/tabset-nav-button.component.mjs +116 -0
- package/esm2020/lib/modules/tabs/tabset-permalink.service.mjs +124 -0
- package/esm2020/lib/modules/tabs/tabset-style.mjs +2 -0
- package/esm2020/lib/modules/tabs/tabset-tab-indexes-change.mjs +2 -0
- package/esm2020/lib/modules/tabs/tabset.component.mjs +395 -0
- package/esm2020/lib/modules/tabs/tabset.service.mjs +110 -0
- package/esm2020/lib/modules/vertical-tabset/vertical-tab-media-query.service.mjs +72 -0
- package/esm2020/lib/modules/vertical-tabset/vertical-tab.component.mjs +197 -0
- package/esm2020/lib/modules/vertical-tabset/vertical-tabset-adapter.service.mjs +48 -0
- package/esm2020/lib/modules/vertical-tabset/vertical-tabset-group.component.mjs +83 -0
- package/esm2020/lib/modules/vertical-tabset/vertical-tabset.component.mjs +150 -0
- package/esm2020/lib/modules/vertical-tabset/vertical-tabset.module.mjs +60 -0
- package/esm2020/lib/modules/vertical-tabset/vertical-tabset.service.mjs +168 -0
- package/esm2020/skyux-tabs.mjs +5 -0
- package/esm2020/testing/public-api.mjs +3 -0
- package/esm2020/testing/skyux-tabs-testing.mjs +5 -0
- package/esm2020/testing/tabs/tab-fixture-tab.mjs +2 -0
- package/esm2020/testing/tabs/tabset-fixture.mjs +130 -0
- package/fesm2015/{skyux-tabs-testing.js → skyux-tabs-testing.mjs} +1 -1
- package/fesm2015/skyux-tabs-testing.mjs.map +1 -0
- package/fesm2015/{skyux-tabs.js → skyux-tabs.mjs} +184 -238
- package/fesm2015/skyux-tabs.mjs.map +1 -0
- package/{esm2015/testing/tabs/tabset-fixture.js → fesm2020/skyux-tabs-testing.mjs} +39 -43
- package/fesm2020/skyux-tabs-testing.mjs.map +1 -0
- package/fesm2020/skyux-tabs.mjs +2002 -0
- package/fesm2020/skyux-tabs.mjs.map +1 -0
- package/package.json +43 -19
- package/testing/package.json +5 -5
- package/bundles/skyux-tabs-testing.umd.js +0 -498
- package/bundles/skyux-tabs.umd.js +0 -2260
- package/esm2015/index.js +0 -23
- package/esm2015/index.js.map +0 -1
- package/esm2015/lib/modules/sectioned-form/sectioned-form-section.component.js +0 -67
- package/esm2015/lib/modules/sectioned-form/sectioned-form-section.component.js.map +0 -1
- package/esm2015/lib/modules/sectioned-form/sectioned-form.component.js +0 -116
- package/esm2015/lib/modules/sectioned-form/sectioned-form.component.js.map +0 -1
- package/esm2015/lib/modules/sectioned-form/sectioned-form.module.js +0 -35
- package/esm2015/lib/modules/sectioned-form/sectioned-form.module.js.map +0 -1
- package/esm2015/lib/modules/sectioned-form/sectioned-form.service.js +0 -35
- package/esm2015/lib/modules/sectioned-form/sectioned-form.service.js.map +0 -1
- package/esm2015/lib/modules/shared/sky-tabs-resources.module.js +0 -52
- package/esm2015/lib/modules/shared/sky-tabs-resources.module.js.map +0 -1
- package/esm2015/lib/modules/tabs/tab-button.component.js +0 -76
- package/esm2015/lib/modules/tabs/tab-button.component.js.map +0 -1
- package/esm2015/lib/modules/tabs/tab-index.js +0 -2
- package/esm2015/lib/modules/tabs/tab-index.js.map +0 -1
- package/esm2015/lib/modules/tabs/tab.component.js +0 -135
- package/esm2015/lib/modules/tabs/tab.component.js.map +0 -1
- package/esm2015/lib/modules/tabs/tabs.module.js +0 -57
- package/esm2015/lib/modules/tabs/tabs.module.js.map +0 -1
- package/esm2015/lib/modules/tabs/tabset-active-tab-unregistered-args.js +0 -2
- package/esm2015/lib/modules/tabs/tabset-active-tab-unregistered-args.js.map +0 -1
- package/esm2015/lib/modules/tabs/tabset-adapter.service.js +0 -56
- package/esm2015/lib/modules/tabs/tabset-adapter.service.js.map +0 -1
- package/esm2015/lib/modules/tabs/tabset-buttons-display-mode.js +0 -2
- package/esm2015/lib/modules/tabs/tabset-buttons-display-mode.js.map +0 -1
- package/esm2015/lib/modules/tabs/tabset-nav-button.component.js +0 -119
- package/esm2015/lib/modules/tabs/tabset-nav-button.component.js.map +0 -1
- package/esm2015/lib/modules/tabs/tabset-permalink.service.js +0 -126
- package/esm2015/lib/modules/tabs/tabset-permalink.service.js.map +0 -1
- package/esm2015/lib/modules/tabs/tabset-style.js +0 -2
- package/esm2015/lib/modules/tabs/tabset-style.js.map +0 -1
- package/esm2015/lib/modules/tabs/tabset-tab-indexes-change.js +0 -2
- package/esm2015/lib/modules/tabs/tabset-tab-indexes-change.js.map +0 -1
- package/esm2015/lib/modules/tabs/tabset.component.js +0 -407
- package/esm2015/lib/modules/tabs/tabset.component.js.map +0 -1
- package/esm2015/lib/modules/tabs/tabset.service.js +0 -110
- package/esm2015/lib/modules/tabs/tabset.service.js.map +0 -1
- package/esm2015/lib/modules/vertical-tabset/vertical-tab-media-query.service.js +0 -72
- package/esm2015/lib/modules/vertical-tabset/vertical-tab-media-query.service.js.map +0 -1
- package/esm2015/lib/modules/vertical-tabset/vertical-tab.component.js +0 -203
- package/esm2015/lib/modules/vertical-tabset/vertical-tab.component.js.map +0 -1
- package/esm2015/lib/modules/vertical-tabset/vertical-tabset-adapter.service.js +0 -48
- package/esm2015/lib/modules/vertical-tabset/vertical-tabset-adapter.service.js.map +0 -1
- package/esm2015/lib/modules/vertical-tabset/vertical-tabset-group.component.js +0 -89
- package/esm2015/lib/modules/vertical-tabset/vertical-tabset-group.component.js.map +0 -1
- package/esm2015/lib/modules/vertical-tabset/vertical-tabset.component.js +0 -157
- package/esm2015/lib/modules/vertical-tabset/vertical-tabset.component.js.map +0 -1
- package/esm2015/lib/modules/vertical-tabset/vertical-tabset.module.js +0 -60
- package/esm2015/lib/modules/vertical-tabset/vertical-tabset.module.js.map +0 -1
- package/esm2015/lib/modules/vertical-tabset/vertical-tabset.service.js +0 -170
- package/esm2015/lib/modules/vertical-tabset/vertical-tabset.service.js.map +0 -1
- package/esm2015/skyux-tabs.js +0 -5
- package/esm2015/skyux-tabs.js.map +0 -1
- package/esm2015/testing/public-api.js +0 -3
- package/esm2015/testing/public-api.js.map +0 -1
- package/esm2015/testing/skyux-tabs-testing.js +0 -5
- package/esm2015/testing/skyux-tabs-testing.js.map +0 -1
- package/esm2015/testing/tabs/tab-fixture-tab.js +0 -2
- package/esm2015/testing/tabs/tab-fixture-tab.js.map +0 -1
- package/esm2015/testing/tabs/tabset-fixture.js.map +0 -1
- package/fesm2015/skyux-tabs-testing.js.map +0 -1
- package/fesm2015/skyux-tabs.js.map +0 -1
|
@@ -0,0 +1,131 @@
|
|
|
1
|
+
import { ChangeDetectionStrategy, ChangeDetectorRef, Component, EventEmitter, Input, Output, } from '@angular/core';
|
|
2
|
+
import { BehaviorSubject } from 'rxjs';
|
|
3
|
+
import { SkyTabsetPermalinkService } from './tabset-permalink.service';
|
|
4
|
+
import { SkyTabsetService } from './tabset.service';
|
|
5
|
+
import * as i0 from "@angular/core";
|
|
6
|
+
import * as i1 from "./tabset-permalink.service";
|
|
7
|
+
import * as i2 from "./tabset.service";
|
|
8
|
+
let nextId = 0;
|
|
9
|
+
export class SkyTabComponent {
|
|
10
|
+
constructor(changeDetector, permalinkService, tabsetService) {
|
|
11
|
+
this.changeDetector = changeDetector;
|
|
12
|
+
this.permalinkService = permalinkService;
|
|
13
|
+
this.tabsetService = tabsetService;
|
|
14
|
+
/**
|
|
15
|
+
* Fires when users click the button to close the tab.
|
|
16
|
+
* The close button is added to the tab when you specify a listener for this event.
|
|
17
|
+
*/
|
|
18
|
+
this.close = new EventEmitter(); // eslint-disable-line @angular-eslint/no-output-native
|
|
19
|
+
this.showContent = false;
|
|
20
|
+
this._activeChange = new BehaviorSubject(undefined);
|
|
21
|
+
this._stateChange = new BehaviorSubject(undefined);
|
|
22
|
+
this._tabIndexChange = new BehaviorSubject(undefined);
|
|
23
|
+
const id = nextId++;
|
|
24
|
+
this.tabPanelId = `sky-tab-${id}`;
|
|
25
|
+
this.tabButtonId = `${this.tabPanelId}-nav-btn`;
|
|
26
|
+
}
|
|
27
|
+
/**
|
|
28
|
+
* Indicates whether the tab is active when the tabset loads. After initialization, the `active`
|
|
29
|
+
* property on the tabset component should be used to set the active tab.
|
|
30
|
+
* @default false
|
|
31
|
+
*/
|
|
32
|
+
set active(value) {
|
|
33
|
+
if (value !== undefined && value !== this._active) {
|
|
34
|
+
this._active = value;
|
|
35
|
+
this._activeChange.next();
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
get active() {
|
|
39
|
+
return this._active || false;
|
|
40
|
+
}
|
|
41
|
+
get activeChange() {
|
|
42
|
+
return this._activeChange.asObservable();
|
|
43
|
+
}
|
|
44
|
+
/**
|
|
45
|
+
* Specifies a custom query parameter value for the tab.
|
|
46
|
+
* This works in conjunction with the tabset's `permalinkId` to distinguish
|
|
47
|
+
* the tab's unique state in the URL by generating a query parameter that is
|
|
48
|
+
* written as `?<queryParam>-active-tab=<sanitized-tab-heading`.
|
|
49
|
+
* By default, the query parameter's value is parsed automatically from the tab's heading text.
|
|
50
|
+
*/
|
|
51
|
+
set permalinkValue(value) {
|
|
52
|
+
this._permalinkValue = this.permalinkService.urlify(value);
|
|
53
|
+
}
|
|
54
|
+
get permalinkValue() {
|
|
55
|
+
return (this._permalinkValue || this.permalinkService.urlify(this.tabHeading));
|
|
56
|
+
}
|
|
57
|
+
/**
|
|
58
|
+
* Specifies a unique identifier for the tab.
|
|
59
|
+
* If not defined, the identifier is set to the position of the tab on load, starting with `0`.
|
|
60
|
+
*/
|
|
61
|
+
set tabIndex(value) {
|
|
62
|
+
if (value !== this._tabIndex &&
|
|
63
|
+
value !== undefined &&
|
|
64
|
+
this._tabIndex !== undefined) {
|
|
65
|
+
this.tabsetService.updateTabIndex(this._tabIndex, value);
|
|
66
|
+
this._tabIndexChange.next(value);
|
|
67
|
+
}
|
|
68
|
+
this._tabIndex = value;
|
|
69
|
+
}
|
|
70
|
+
get tabIndex() {
|
|
71
|
+
return this._tabIndex;
|
|
72
|
+
}
|
|
73
|
+
get closeable() {
|
|
74
|
+
return this.close.observers.length > 0;
|
|
75
|
+
}
|
|
76
|
+
/**
|
|
77
|
+
* Alerts the tabset component when this component has changes that need to be reflected in the UI.
|
|
78
|
+
*/
|
|
79
|
+
get stateChange() {
|
|
80
|
+
return this._stateChange.asObservable();
|
|
81
|
+
}
|
|
82
|
+
get tabIndexChange() {
|
|
83
|
+
return this._tabIndexChange.asObservable();
|
|
84
|
+
}
|
|
85
|
+
ngOnChanges(changes) {
|
|
86
|
+
if ((changes.disabled && !changes.disabled.firstChange) ||
|
|
87
|
+
(changes.tabHeading && !changes.tabHeading.firstChange) ||
|
|
88
|
+
(changes.tabHeaderCount && !changes.tabHeaderCount.firstChange) ||
|
|
89
|
+
(changes.permalinkValue && !changes.permalinkValue.firstChange)) {
|
|
90
|
+
this._stateChange.next();
|
|
91
|
+
}
|
|
92
|
+
}
|
|
93
|
+
ngOnDestroy() {
|
|
94
|
+
this._stateChange.complete();
|
|
95
|
+
this.tabsetService.unregisterTab(this.tabIndex);
|
|
96
|
+
}
|
|
97
|
+
init() {
|
|
98
|
+
this._tabIndex = this.tabsetService.registerTab(this.tabIndex);
|
|
99
|
+
}
|
|
100
|
+
activate() {
|
|
101
|
+
this._active = true;
|
|
102
|
+
this.showContent = true;
|
|
103
|
+
this.changeDetector.markForCheck();
|
|
104
|
+
}
|
|
105
|
+
deactivate() {
|
|
106
|
+
this._active = false;
|
|
107
|
+
this.showContent = false;
|
|
108
|
+
this.changeDetector.markForCheck();
|
|
109
|
+
}
|
|
110
|
+
}
|
|
111
|
+
SkyTabComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: SkyTabComponent, deps: [{ token: i0.ChangeDetectorRef }, { token: i1.SkyTabsetPermalinkService }, { token: i2.SkyTabsetService }], target: i0.ɵɵFactoryTarget.Component });
|
|
112
|
+
SkyTabComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.2", type: SkyTabComponent, selector: "sky-tab", inputs: { active: "active", disabled: "disabled", permalinkValue: "permalinkValue", tabHeaderCount: "tabHeaderCount", tabHeading: "tabHeading", tabIndex: "tabIndex" }, outputs: { close: "close" }, usesOnChanges: true, ngImport: i0, template: "<div\n class=\"sky-tab\"\n role=\"tabpanel\"\n [attr.aria-labelledby]=\"tabButtonId\"\n [hidden]=\"!showContent\"\n [id]=\"tabPanelId\"\n>\n <ng-content></ng-content>\n</div>\n", changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
113
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: SkyTabComponent, decorators: [{
|
|
114
|
+
type: Component,
|
|
115
|
+
args: [{ selector: 'sky-tab', changeDetection: ChangeDetectionStrategy.OnPush, template: "<div\n class=\"sky-tab\"\n role=\"tabpanel\"\n [attr.aria-labelledby]=\"tabButtonId\"\n [hidden]=\"!showContent\"\n [id]=\"tabPanelId\"\n>\n <ng-content></ng-content>\n</div>\n" }]
|
|
116
|
+
}], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i1.SkyTabsetPermalinkService }, { type: i2.SkyTabsetService }]; }, propDecorators: { active: [{
|
|
117
|
+
type: Input
|
|
118
|
+
}], disabled: [{
|
|
119
|
+
type: Input
|
|
120
|
+
}], permalinkValue: [{
|
|
121
|
+
type: Input
|
|
122
|
+
}], tabHeaderCount: [{
|
|
123
|
+
type: Input
|
|
124
|
+
}], tabHeading: [{
|
|
125
|
+
type: Input
|
|
126
|
+
}], tabIndex: [{
|
|
127
|
+
type: Input
|
|
128
|
+
}], close: [{
|
|
129
|
+
type: Output
|
|
130
|
+
}] } });
|
|
131
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFiLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tcG9uZW50cy90YWJzL3NyYy9saWIvbW9kdWxlcy90YWJzL3RhYi5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvdGFicy9zcmMvbGliL21vZHVsZXMvdGFicy90YWIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLHVCQUF1QixFQUN2QixpQkFBaUIsRUFDakIsU0FBUyxFQUNULFlBQVksRUFDWixLQUFLLEVBR0wsTUFBTSxHQUVQLE1BQU0sZUFBZSxDQUFDO0FBRXZCLE9BQU8sRUFBRSxlQUFlLEVBQWMsTUFBTSxNQUFNLENBQUM7QUFHbkQsT0FBTyxFQUFFLHlCQUF5QixFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDdkUsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sa0JBQWtCLENBQUM7Ozs7QUFFcEQsSUFBSSxNQUFNLEdBQUcsQ0FBQyxDQUFDO0FBT2YsTUFBTSxPQUFPLGVBQWU7SUE4SDFCLFlBQ1UsY0FBaUMsRUFDakMsZ0JBQTJDLEVBQzNDLGFBQStCO1FBRi9CLG1CQUFjLEdBQWQsY0FBYyxDQUFtQjtRQUNqQyxxQkFBZ0IsR0FBaEIsZ0JBQWdCLENBQTJCO1FBQzNDLGtCQUFhLEdBQWIsYUFBYSxDQUFrQjtRQTNDekM7OztXQUdHO1FBRUksVUFBSyxHQUFHLElBQUksWUFBWSxFQUFRLENBQUMsQ0FBQyx1REFBdUQ7UUFpQnpGLGdCQUFXLEdBQUcsS0FBSyxDQUFDO1FBUW5CLGtCQUFhLEdBQUcsSUFBSSxlQUFlLENBQU8sU0FBUyxDQUFDLENBQUM7UUFJckQsaUJBQVksR0FBRyxJQUFJLGVBQWUsQ0FBTyxTQUFTLENBQUMsQ0FBQztRQUlwRCxvQkFBZSxHQUFHLElBQUksZUFBZSxDQUFjLFNBQVMsQ0FBQyxD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QztJQUNsRCxDQUFDO0lBRU0sSUFBSTtRQUNULElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBQ2pFLENBQUM7SUFFTSxRQUFRO1FBQ2IsSUFBSSxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUM7UUFDcEIsSUFBSSxDQUFDLFdBQVcsR0FBRyxJQUFJLENBQUM7UUFDeEIsSUFBSSxDQUFDLGNBQWMsQ0FBQyxZQUFZLEVBQUUsQ0FBQztJQUNyQyxDQUFDO0lBRU0sVUFBVTtRQUNmLElBQUksQ0FBQyxPQUFPLEdBQUcsS0FBSyxDQUFDO1FBQ3JCLElBQUksQ0FBQyxXQUFXLEdBQUcsS0FBSyxDQUFDO1FBQ3pCLElBQUksQ0FBQyxjQUFjLENBQUMsWUFBWSxFQUFFLENBQUM7SUFDckMsQ0FBQzs7NEdBdEtVLGVBQWU7Z0dBQWYsZUFBZSx5UUN6QjVCLHdMQVNBOzJGRGdCYSxlQUFlO2tCQUwzQixTQUFTOytCQUNFLFNBQVMsbUJBRUYsdUJBQXVCLENBQUMsTUFBTTsrS0FTcEMsTUFBTTtzQkFEaEIsS0FBSztnQkFxQkMsUUFBUTtzQkFEZCxLQUFLO2dCQVdLLGNBQWM7c0JBRHhCLEtBQUs7Z0JBZUMsY0FBYztzQkFEcEIsS0FBSztnQkFZQyxVQUFVO3NCQURoQixLQUFLO2dCQVFLLFFBQVE7c0JBRGxCLEtBQUs7Z0JBdUJDLEtBQUs7c0JBRFgsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgQ29tcG9uZW50LFxuICBFdmVudEVtaXR0ZXIsXG4gIElucHV0LFxuICBPbkNoYW5nZXMsXG4gIE9uRGVzdHJveSxcbiAgT3V0cHV0LFxuICBTaW1wbGVDaGFuZ2VzLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0LCBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XG5cbmltcG9ydCB7IFNreVRhYkluZGV4IH0gZnJvbSAnLi90YWItaW5kZXgnO1xuaW1wb3J0IHsgU2t5VGFic2V0UGVybWFsaW5rU2VydmljZSB9IGZyb20gJy4vdGFic2V0LXBlcm1hbGluay5zZXJ2aWNlJztcbmltcG9ydCB7IFNreVRhYnNldFNlcnZpY2UgfSBmcm9tICcuL3RhYnNldC5zZXJ2aWNlJztcblxubGV0IG5leHRJZCA9IDA7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3NreS10YWInLFxuICB0ZW1wbGF0ZVVybDogJy4vdGFiLmNvbXBvbmVudC5odG1sJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG59KVxuZXhwb3J0IGNsYXNzIFNreVRhYkNvbXBvbmVudCBpbXBsZW1lbnRzIE9uQ2hhbmdlcywgT25EZXN0cm95IHtcbiAgLyoqXG4gICAqIEluZGljYXRlcyB3aGV0aGVyIHRoZSB0YWIgaXMgYWN0aXZlIHdoZW4gdGhlIHRhYnNldCBsb2Fkcy4gQWZ0ZXIgaW5pdGlhbGl6YXRpb24sIHRoZSBgYWN0aXZlYFxuICAgKiBwcm9wZXJ0eSBvbiB0aGUgdGFic2V0IGNvbXBvbmVudCBzaG91bGQgYmUgdXNlZCB0byBzZXQgdGhlIGFjdGl2ZSB0YWIuXG4gICAqIEBkZWZhdWx0IGZhbHNlXG4gICAqL1xuICBASW5wdXQoKVxuICBwdWJsaWMgc2V0IGFjdGl2ZSh2YWx1ZTogYm9vbGVhbikge1xuICAgIGlmICh2YWx1ZSAhPT0gdW5kZWZpbmVkICYmIHZhbHVlICE9PSB0aGlzLl9hY3RpdmUpIHtcbiAgICAgIHRoaXMuX2FjdGl2ZSA9IHZhbHVlO1xuICAgICAgdGhpcy5fYWN0aXZlQ2hhbmdlLm5leHQoKTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgZ2V0IGFjdGl2ZSgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5fYWN0aXZlIHx8IGZhbHNlO1xuICB9XG5cbiAgcHVibGljIGdldCBhY3RpdmVDaGFuZ2UoKTogT2JzZXJ2YWJsZTx2b2lkPiB7XG4gICAgcmV0dXJuIHRoaXMuX2FjdGl2ZUNoYW5nZS5hc09ic2VydmFibGUoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBJbmRpY2F0ZXMgd2hldGhlciB0byBkaXNhYmxlIHRoZSB0YWIuXG4gICAqIEBkZWZhdWx0IGZhbHNlXG4gICAqL1xuICBASW5wdXQoKVxuICBwdWJsaWMgZGlzYWJsZWQ6IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIFNwZWNpZmllcyBhIGN1c3RvbSBxdWVyeSBwYXJhbWV0ZXIgdmFsdWUgZm9yIHRoZSB0YWIuXG4gICAqIFRoaXMgd29ya3MgaW4gY29uanVuY3Rpb24gd2l0aCB0aGUgdGFic2V0J3MgYHBlcm1hbGlua0lkYCB0byBkaXN0aW5ndWlzaFxuICAgKiB0aGUgdGFiJ3MgdW5pcXVlIHN0YXRlIGluIHRoZSBVUkwgYnkgZ2VuZXJhdGluZyBhIHF1ZXJ5IHBhcmFtZXRlciB0aGF0IGlzXG4gICAqIHdyaXR0ZW4gYXMgYD88cXVlcnlQYXJhbT4tYWN0aXZlLXRhYj08c2FuaXRpemVkLXRhYi1oZWFkaW5nYC5cbiAgICogQnkgZGVmYXVsdCwgdGhlIHF1ZXJ5IHBhcmFtZXRlcidzIHZhbHVlIGlzIHBhcnNlZCBhdXRvbWF0aWNhbGx5IGZyb20gdGhlIHRhYidzIGhlYWRpbmcgdGV4dC5cbiAgICovXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBzZXQgcGVybWFsaW5rVmFsdWUodmFsdWU6IHN0cmluZykge1xuICAgIHRoaXMuX3Blcm1hbGlua1ZhbHVlID0gdGhpcy5wZXJtYWxpbmtTZXJ2aWNlLnVybGlmeSh2YWx1ZSk7XG4gIH1cblxuICBwdWJsaWMgZ2V0IHBlcm1hbGlua1ZhbHVlKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIChcbiAgICAgIHRoaXMuX3Blcm1hbGlua1ZhbHVlIHx8IHRoaXMucGVybWFsaW5rU2VydmljZS51cmxpZnkodGhpcy50YWJIZWFkaW5nKVxuICAgICk7XG4gIH1cblxuICAvKipcbiAgICogRGlzcGxheXMgYSBjb3VudGVyIGJlc2lkZSB0aGUgdGFiIGhlYWRlci5cbiAgICovXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyB0YWJIZWFkZXJDb3VudDogc3RyaW5nIHwgdW5kZWZpbmVkO1xuXG4gIC8qKlxuICAgKiBTcGVjaWZpZXMgdGhlIHRhYiBoZWFkZXIuXG4gICAqIFdoZW4gdXNpbmcgdGFicyBhcyB0aGUgbWFpbiBuYXZpZ2F0aW9uIG9uIGEgcGFnZSxcbiAgICogdXNlIFt0aGUgQW5ndWxhciBgVGl0bGVgIHNlcnZpY2VdKGh0dHBzOi8vYW5ndWxhci5pby9kb2NzL3RzL2xhdGVzdC9jb29rYm9vay9zZXQtZG9jdW1lbnQtdGl0bGUuaHRtbClcbiAgICogYW5kIFt0aGUgU0tZIFVYIGB0aXRsZWAgY29uZmlndXJhdGlvbiBwcm9wZXJ0eV0oaHR0cHM6Ly9kZXZlbG9wZXIuYmxhY2tiYXVkLmNvbS9za3l1eC9sZWFybi9yZWZlcmVuY2UvY29uZmlndXJhdGlvbiNhcHApXG4gICAqIHRvIHJlZmxlY3QgdGhlIHRhYiBoZWFkZXIgaW4gdGhlIHBhZ2UgdGl0bGUuXG4gICAqIEByZXF1aXJlZFxuICAgKi9cbiAgQElucHV0KClcbiAgcHVibGljIHRhYkhlYWRpbmc6IHN0cmluZztcblxuICAvKipcbiAgICogU3BlY2lmaWVzIGEgdW5pcXVlIGlkZW50aWZpZXIgZm9yIHRoZSB0YWIuXG4gICAqIElmIG5vdCBkZWZpbmVkLCB0aGUgaWRlbnRpZmllciBpcyBzZXQgdG8gdGhlIHBvc2l0aW9uIG9mIHRoZSB0YWIgb24gbG9hZCwgc3RhcnRpbmcgd2l0aCBgMGAuXG4gICAqL1xuICBASW5wdXQoKVxuICBwdWJsaWMgc2V0IHRhYkluZGV4KHZhbHVlOiBTa3lUYWJJbmRleCkge1xuICAgIGlmIChcbiAgICAgIHZhbHVlICE9PSB0aGlzLl90YWJJbmRleCAmJlxuICAgICAgdmFsdWUgIT09IHVuZGVmaW5lZCAmJlxuICAgICAgdGhpcy5fdGFiSW5kZXggIT09IHVuZGVmaW5lZFxuICAgICkge1xuICAgICAgdGhpcy50YWJzZXRTZXJ2aWNlLnVwZGF0ZVRhYkluZGV4KHRoaXMuX3RhYkluZGV4LCB2YWx1ZSk7XG4gICAgICB0aGlzLl90YWJJbmRleENoYW5nZS5uZXh0KHZhbHVlKTtcbiAgICB9XG5cbiAgICB0aGlzLl90YWJJbmRleCA9IHZhbHVlO1xuICB9XG5cbiAgcHVibGljIGdldCB0YWJJbmRleCgpOiBTa3lUYWJJbmRleCB7XG4gICAgcmV0dXJuIHRoaXMuX3RhYkluZGV4O1xuICB9XG5cbiAgLyoqXG4gICAqIEZpcmVzIHdoZW4gdXNlcnMgY2xpY2sgdGhlIGJ1dHRvbiB0byBjbG9zZSB0aGUgdGFiLlxuICAgKiBUaGUgY2xvc2UgYnV0dG9uIGlzIGFkZGVkIHRvIHRoZSB0YWIgd2hlbiB5b3Ugc3BlY2lmeSBhIGxpc3RlbmVyIGZvciB0aGlzIGV2ZW50LlxuICAgKi9cbiAgQE91dHB1dCgpXG4gIHB1YmxpYyBjbG9zZSA9IG5ldyBFdmVudEVtaXR0ZXI8dm9pZD4oKTsgLy8gZXNsaW50LWRpc2FibGUtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8tb3V0cHV0LW5hdGl2ZVxuXG4gIHB1YmxpYyBnZXQgY2xvc2VhYmxlKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLmNsb3NlLm9ic2VydmVycy5sZW5ndGggPiAwO1xuICB9XG5cbiAgLyoqXG4gICAqIEFsZXJ0cyB0aGUgdGFic2V0IGNvbXBvbmVudCB3aGVuIHRoaXMgY29tcG9uZW50IGhhcyBjaGFuZ2VzIHRoYXQgbmVlZCB0byBiZSByZWZsZWN0ZWQgaW4gdGhlIFVJLlxuICAgKi9cbiAgcHVibGljIGdldCBzdGF0ZUNoYW5nZSgpOiBPYnNlcnZhYmxlPHZvaWQ+IHtcbiAgICByZXR1cm4gdGhpcy5fc3RhdGVDaGFuZ2UuYXNPYnNlcnZhYmxlKCk7XG4gIH1cblxuICBwdWJsaWMgZ2V0IHRhYkluZGV4Q2hhbmdlKCk6IE9ic2VydmFibGU8U2t5VGFiSW5kZXg+IHtcbiAgICByZXR1cm4gdGhpcy5fdGFiSW5kZXhDaGFuZ2UuYXNPYnNlcnZhYmxlKCk7XG4gIH1cblxuICBwdWJsaWMgc2hvd0NvbnRlbnQgPSBmYWxzZTtcblxuICBwdWJsaWMgdGFiQnV0dG9uSWQ6IHN0cmluZztcblxuICBwdWJsaWMgdGFiUGFuZWxJZDogc3RyaW5nO1xuXG4gIHByaXZhdGUgX2FjdGl2ZTogYm9vbGVhbjtcblxuICBwcml2YXRlIF9hY3RpdmVDaGFuZ2UgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PHZvaWQ+KHVuZGVmaW5lZCk7XG5cbiAgcHJpdmF0ZSBfcGVybWFsaW5rVmFsdWU6IHN0cmluZztcblxuICBwcml2YXRlIF9zdGF0ZUNoYW5nZSA9IG5ldyBCZWhhdmlvclN1YmplY3Q8dm9pZD4odW5kZWZpbmVkKTtcblxuICBwcml2YXRlIF90YWJJbmRleDogU2t5VGFiSW5kZXg7XG5cbiAgcHJpdmF0ZSBfdGFiSW5kZXhDaGFuZ2UgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PFNreVRhYkluZGV4Pih1bmRlZmluZWQpO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgY2hhbmdlRGV0ZWN0b3I6IENoYW5nZURldGVjdG9yUmVmLFxuICAgIHByaXZhdGUgcGVybWFsaW5rU2VydmljZTogU2t5VGFic2V0UGVybWFsaW5rU2VydmljZSxcbiAgICBwcml2YXRlIHRhYnNldFNlcnZpY2U6IFNreVRhYnNldFNlcnZpY2VcbiAgKSB7XG4gICAgY29uc3QgaWQgPSBuZXh0SWQrKztcbiAgICB0aGlzLnRhYlBhbmVsSWQgPSBgc2t5LXRhYi0ke2lkfWA7XG4gICAgdGhpcy50YWJCdXR0b25JZCA9IGAke3RoaXMudGFiUGFuZWxJZH0tbmF2LWJ0bmA7XG4gIH1cblxuICBwdWJsaWMgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcyk6IHZvaWQge1xuICAgIGlmIChcbiAgICAgIChjaGFuZ2VzLmRpc2FibGVkICYmICFjaGFuZ2VzLmRpc2FibGVkLmZpcnN0Q2hhbmdlKSB8fFxuICAgICAgKGNoYW5nZXMudGFiSGVhZGluZyAmJiAhY2hhbmdlcy50YWJIZWFkaW5nLmZpcnN0Q2hhbmdlKSB8fFxuICAgICAgKGNoYW5nZXMudGFiSGVhZGVyQ291bnQgJiYgIWNoYW5nZXMudGFiSGVhZGVyQ291bnQuZmlyc3RDaGFuZ2UpIHx8XG4gICAgICAoY2hhbmdlcy5wZXJtYWxpbmtWYWx1ZSAmJiAhY2hhbmdlcy5wZXJtYWxpbmtWYWx1ZS5maXJzdENoYW5nZSlcbiAgICApIHtcbiAgICAgIHRoaXMuX3N0YXRlQ2hhbmdlLm5leHQoKTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgdGhpcy5fc3RhdGVDaGFuZ2UuY29tcGxldGUoKTtcbiAgICB0aGlzLnRhYnNldFNlcnZpY2UudW5yZWdpc3RlclRhYih0aGlzLnRhYkluZGV4KTtcbiAgfVxuXG4gIHB1YmxpYyBpbml0KCk6IHZvaWQge1xuICAgIHRoaXMuX3RhYkluZGV4ID0gdGhpcy50YWJzZXRTZXJ2aWNlLnJlZ2lzdGVyVGFiKHRoaXMudGFiSW5kZXgpO1xuICB9XG5cbiAgcHVibGljIGFjdGl2YXRlKCk6IHZvaWQge1xuICAgIHRoaXMuX2FjdGl2ZSA9IHRydWU7XG4gICAgdGhpcy5zaG93Q29udGVudCA9IHRydWU7XG4gICAgdGhpcy5jaGFuZ2VEZXRlY3Rvci5tYXJrRm9yQ2hlY2soKTtcbiAgfVxuXG4gIHB1YmxpYyBkZWFjdGl2YXRlKCk6IHZvaWQge1xuICAgIHRoaXMuX2FjdGl2ZSA9IGZhbHNlO1xuICAgIHRoaXMuc2hvd0NvbnRlbnQgPSBmYWxzZTtcbiAgICB0aGlzLmNoYW5nZURldGVjdG9yLm1hcmtGb3JDaGVjaygpO1xuICB9XG59XG4iLCI8ZGl2XG4gIGNsYXNzPVwic2t5LXRhYlwiXG4gIHJvbGU9XCJ0YWJwYW5lbFwiXG4gIFthdHRyLmFyaWEtbGFiZWxsZWRieV09XCJ0YWJCdXR0b25JZFwiXG4gIFtoaWRkZW5dPVwiIXNob3dDb250ZW50XCJcbiAgW2lkXT1cInRhYlBhbmVsSWRcIlxuPlxuICA8bmctY29udGVudD48L25nLWNvbnRlbnQ+XG48L2Rpdj5cbiJdfQ==
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
import { CommonModule } from '@angular/common';
|
|
2
|
+
import { NgModule } from '@angular/core';
|
|
3
|
+
import { RouterModule } from '@angular/router';
|
|
4
|
+
import { SkyI18nModule } from '@skyux/i18n';
|
|
5
|
+
import { SkyIconModule } from '@skyux/indicators';
|
|
6
|
+
import { SkyDropdownModule } from '@skyux/popovers';
|
|
7
|
+
import { SkyThemeModule } from '@skyux/theme';
|
|
8
|
+
import { SkyTabsResourcesModule } from '../shared/sky-tabs-resources.module';
|
|
9
|
+
import { SkyTabButtonComponent } from './tab-button.component';
|
|
10
|
+
import { SkyTabComponent } from './tab.component';
|
|
11
|
+
import { SkyTabsetNavButtonComponent } from './tabset-nav-button.component';
|
|
12
|
+
import { SkyTabsetComponent } from './tabset.component';
|
|
13
|
+
import * as i0 from "@angular/core";
|
|
14
|
+
export class SkyTabsModule {
|
|
15
|
+
}
|
|
16
|
+
SkyTabsModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: SkyTabsModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
17
|
+
SkyTabsModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: SkyTabsModule, declarations: [SkyTabButtonComponent,
|
|
18
|
+
SkyTabComponent,
|
|
19
|
+
SkyTabsetComponent,
|
|
20
|
+
SkyTabsetNavButtonComponent], imports: [CommonModule,
|
|
21
|
+
RouterModule,
|
|
22
|
+
SkyDropdownModule,
|
|
23
|
+
SkyI18nModule,
|
|
24
|
+
SkyIconModule,
|
|
25
|
+
SkyTabsResourcesModule,
|
|
26
|
+
SkyThemeModule], exports: [SkyTabComponent, SkyTabsetComponent, SkyTabsetNavButtonComponent] });
|
|
27
|
+
SkyTabsModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: SkyTabsModule, imports: [[
|
|
28
|
+
CommonModule,
|
|
29
|
+
RouterModule,
|
|
30
|
+
SkyDropdownModule,
|
|
31
|
+
SkyI18nModule,
|
|
32
|
+
SkyIconModule,
|
|
33
|
+
SkyTabsResourcesModule,
|
|
34
|
+
SkyThemeModule,
|
|
35
|
+
]] });
|
|
36
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: SkyTabsModule, decorators: [{
|
|
37
|
+
type: NgModule,
|
|
38
|
+
args: [{
|
|
39
|
+
declarations: [
|
|
40
|
+
SkyTabButtonComponent,
|
|
41
|
+
SkyTabComponent,
|
|
42
|
+
SkyTabsetComponent,
|
|
43
|
+
SkyTabsetNavButtonComponent,
|
|
44
|
+
],
|
|
45
|
+
imports: [
|
|
46
|
+
CommonModule,
|
|
47
|
+
RouterModule,
|
|
48
|
+
SkyDropdownModule,
|
|
49
|
+
SkyI18nModule,
|
|
50
|
+
SkyIconModule,
|
|
51
|
+
SkyTabsResourcesModule,
|
|
52
|
+
SkyThemeModule,
|
|
53
|
+
],
|
|
54
|
+
exports: [SkyTabComponent, SkyTabsetComponent, SkyTabsetNavButtonComponent],
|
|
55
|
+
}]
|
|
56
|
+
}] });
|
|
57
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFicy5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvdGFicy9zcmMvbGliL21vZHVsZXMvdGFicy90YWJzLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6QyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUM1QyxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDbEQsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDcEQsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUU5QyxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSxxQ0FBcUMsQ0FBQztBQUU3RSxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUMvRCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDbEQsT0FBTyxFQUFFLDJCQUEyQixFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFDNUUsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sb0JBQW9CLENBQUM7O0FBb0J4RCxNQUFNLE9BQU8sYUFBYTs7MEdBQWIsYUFBYTsyR0FBYixhQUFhLGlCQWhCdEIscUJBQXFCO1FBQ3JCLGVBQWU7UUFDZixrQkFBa0I7UUFDbEIsMkJBQTJCLGFBRzNCLFlBQVk7UUFDWixZQUFZO1FBQ1osaUJBQWlCO1FBQ2pCLGFBQWE7UUFDYixhQUFhO1FBQ2Isc0JBQXNCO1FBQ3RCLGNBQWMsYUFFTixlQUFlLEVBQUUsa0JBQWtCLEVBQUUsMkJBQTJCOzJHQUUvRCxhQUFhLFlBWGY7WUFDUCxZQUFZO1lBQ1osWUFBWTtZQUNaLGlCQUFpQjtZQUNqQixhQUFhO1lBQ2IsYUFBYTtZQUNiLHNCQUFzQjtZQUN0QixjQUFjO1NBQ2Y7MkZBR1UsYUFBYTtrQkFsQnpCLFFBQVE7bUJBQUM7b0JBQ1IsWUFBWSxFQUFFO3dCQUNaLHFCQUFxQjt3QkFDckIsZUFBZTt3QkFDZixrQkFBa0I7d0JBQ2xCLDJCQUEyQjtxQkFDNUI7b0JBQ0QsT0FBTyxFQUFFO3dCQUNQLFlBQVk7d0JBQ1osWUFBWTt3QkFDWixpQkFBaUI7d0JBQ2pCLGFBQWE7d0JBQ2IsYUFBYTt3QkFDYixzQkFBc0I7d0JBQ3RCLGNBQWM7cUJBQ2Y7b0JBQ0QsT0FBTyxFQUFFLENBQUMsZUFBZSxFQUFFLGtCQUFrQixFQUFFLDJCQUEyQixDQUFDO2lCQUM1RSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgUm91dGVyTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcbmltcG9ydCB7IFNreUkxOG5Nb2R1bGUgfSBmcm9tICdAc2t5dXgvaTE4bic7XG5pbXBvcnQgeyBTa3lJY29uTW9kdWxlIH0gZnJvbSAnQHNreXV4L2luZGljYXRvcnMnO1xuaW1wb3J0IHsgU2t5RHJvcGRvd25Nb2R1bGUgfSBmcm9tICdAc2t5dXgvcG9wb3ZlcnMnO1xuaW1wb3J0IHsgU2t5VGhlbWVNb2R1bGUgfSBmcm9tICdAc2t5dXgvdGhlbWUnO1xuXG5pbXBvcnQgeyBTa3lUYWJzUmVzb3VyY2VzTW9kdWxlIH0gZnJvbSAnLi4vc2hhcmVkL3NreS10YWJzLXJlc291cmNlcy5tb2R1bGUnO1xuXG5pbXBvcnQgeyBTa3lUYWJCdXR0b25Db21wb25lbnQgfSBmcm9tICcuL3RhYi1idXR0b24uY29tcG9uZW50JztcbmltcG9ydCB7IFNreVRhYkNvbXBvbmVudCB9IGZyb20gJy4vdGFiLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBTa3lUYWJzZXROYXZCdXR0b25Db21wb25lbnQgfSBmcm9tICcuL3RhYnNldC1uYXYtYnV0dG9uLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBTa3lUYWJzZXRDb21wb25lbnQgfSBmcm9tICcuL3RhYnNldC5jb21wb25lbnQnO1xuXG5ATmdNb2R1bGUoe1xuICBkZWNsYXJhdGlvbnM6IFtcbiAgICBTa3lUYWJCdXR0b25Db21wb25lbnQsXG4gICAgU2t5VGFiQ29tcG9uZW50LFxuICAgIFNreVRhYnNldENvbXBvbmVudCxcbiAgICBTa3lUYWJzZXROYXZCdXR0b25Db21wb25lbnQsXG4gIF0sXG4gIGltcG9ydHM6IFtcbiAgICBDb21tb25Nb2R1bGUsXG4gICAgUm91dGVyTW9kdWxlLFxuICAgIFNreURyb3Bkb3duTW9kdWxlLFxuICAgIFNreUkxOG5Nb2R1bGUsXG4gICAgU2t5SWNvbk1vZHVsZSxcbiAgICBTa3lUYWJzUmVzb3VyY2VzTW9kdWxlLFxuICAgIFNreVRoZW1lTW9kdWxlLFxuICBdLFxuICBleHBvcnRzOiBbU2t5VGFiQ29tcG9uZW50LCBTa3lUYWJzZXRDb21wb25lbnQsIFNreVRhYnNldE5hdkJ1dHRvbkNvbXBvbmVudF0sXG59KVxuZXhwb3J0IGNsYXNzIFNreVRhYnNNb2R1bGUge31cbiJdfQ==
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
export {};
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFic2V0LWFjdGl2ZS10YWItdW5yZWdpc3RlcmVkLWFyZ3MuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvdGFicy9zcmMvbGliL21vZHVsZXMvdGFicy90YWJzZXQtYWN0aXZlLXRhYi11bnJlZ2lzdGVyZWQtYXJncy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBUaGUgYXJndW1lbnRzIGZvciB0aGUgdGFic2V0IHNlcnZpY2UncyBgYWN0aXZlVGFiVW5yZWdpc3RlcmVkYCBldmVudC5cbiAqIEBpbnRlcm5hbFxuICovXG5leHBvcnQgaW50ZXJmYWNlIFNreVRhYnNldEFjdGl2ZVRhYlVucmVnaXN0ZXJlZEFyZ3Mge1xuICAvKipcbiAgICogVGhlIGFycmF5IGluZGV4IG9mIHRoZSBhY3RpdmUgdGFiLCB3aGVuIGl0IGhhcyBiZWVuIHVucmVnaXN0ZXJlZC5cbiAgICovXG4gIGFycmF5SW5kZXg6IG51bWJlcjtcbn1cbiJdfQ==
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
import { Injectable } from '@angular/core';
|
|
2
|
+
import { BehaviorSubject } from 'rxjs';
|
|
3
|
+
import * as i0 from "@angular/core";
|
|
4
|
+
/**
|
|
5
|
+
* @internal
|
|
6
|
+
*/
|
|
7
|
+
export class SkyTabsetAdapterService {
|
|
8
|
+
constructor() {
|
|
9
|
+
this._overflowChange = new BehaviorSubject(false);
|
|
10
|
+
}
|
|
11
|
+
get overflowChange() {
|
|
12
|
+
return this._overflowChange.asObservable();
|
|
13
|
+
}
|
|
14
|
+
registerTabset(tabsetRef) {
|
|
15
|
+
this.tabsetRef = tabsetRef;
|
|
16
|
+
this.tabsOffsetLeft = this.getTabsOffsetLeft(tabsetRef.nativeElement);
|
|
17
|
+
}
|
|
18
|
+
/**
|
|
19
|
+
* Detects if the tab buttons are wider than the tabset container.
|
|
20
|
+
*/
|
|
21
|
+
detectOverflow() {
|
|
22
|
+
const nativeElement = this.tabsetRef.nativeElement;
|
|
23
|
+
const tabsetRect = nativeElement
|
|
24
|
+
.querySelector('.sky-tabset')
|
|
25
|
+
.getBoundingClientRect();
|
|
26
|
+
const tabButtonsRect = nativeElement
|
|
27
|
+
.querySelector('.sky-tabset-tabs')
|
|
28
|
+
.getBoundingClientRect();
|
|
29
|
+
const tabExtraButtonsRect = nativeElement
|
|
30
|
+
.querySelector('.sky-tabset-btns')
|
|
31
|
+
.getBoundingClientRect();
|
|
32
|
+
const tabButtonsWidth = tabButtonsRect.width + tabExtraButtonsRect.width + this.tabsOffsetLeft;
|
|
33
|
+
const newOverflow = tabButtonsWidth > tabsetRect.width;
|
|
34
|
+
if (this.currentOverflow !== newOverflow) {
|
|
35
|
+
this.currentOverflow = newOverflow;
|
|
36
|
+
this._overflowChange.next(this.currentOverflow);
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
/**
|
|
40
|
+
* Returns the number of pixels to the left of the first tab.
|
|
41
|
+
*/
|
|
42
|
+
getTabsOffsetLeft(tabsetEl) {
|
|
43
|
+
const tabsetRect = tabsetEl.getBoundingClientRect();
|
|
44
|
+
// The dropdown element is the first "tab" and always exists in the DOM, even when hidden.
|
|
45
|
+
const firstTabRect = tabsetEl
|
|
46
|
+
.querySelector('.sky-tabset-dropdown')
|
|
47
|
+
.getBoundingClientRect();
|
|
48
|
+
return firstTabRect.left - tabsetRect.left;
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
SkyTabsetAdapterService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: SkyTabsetAdapterService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
52
|
+
SkyTabsetAdapterService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: SkyTabsetAdapterService });
|
|
53
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: SkyTabsetAdapterService, decorators: [{
|
|
54
|
+
type: Injectable
|
|
55
|
+
}] });
|
|
56
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFic2V0LWFkYXB0ZXIuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tcG9uZW50cy90YWJzL3NyYy9saWIvbW9kdWxlcy90YWJzL3RhYnNldC1hZGFwdGVyLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFjLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUV2RCxPQUFPLEVBQUUsZUFBZSxFQUFjLE1BQU0sTUFBTSxDQUFDOztBQUVuRDs7R0FFRztBQUVILE1BQU0sT0FBTyx1QkFBdUI7SUFEcEM7UUFZVSxvQkFBZSxHQUFHLElBQUksZUFBZSxDQUFVLEtBQUssQ0FBQyxDQUFDO0tBZ0QvRDtJQTFEQyxJQUFXLGNBQWM7UUFDdkIsT0FBTyxJQUFJLENBQUMsZUFBZSxDQUFDLFlBQVksRUFBRSxDQUFDO0lBQzdDLENBQUM7SUFVTSxjQUFjLENBQUMsU0FBcUI7UUFDekMsSUFBSSxDQUFDLFNBQVMsR0FBRyxTQUFTLENBQUM7UUFDM0IsSUFBSSxDQUFDLGNBQWMsR0FBRyxJQUFJLENBQUMsaUJBQWlCLENBQUMsU0FBUyxDQUFDLGFBQWEsQ0FBQyxDQUFDO0lBQ3hFLENBQUM7SUFFRDs7T0FFRztJQUNJLGNBQWM7UUFDbkIsTUFBTSxhQUFhLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxhQUFhLENBQUM7UUFFbkQsTUFBTSxVQUFVLEdBQUcsYUFBYTthQUM3QixhQUFhLENBQUMsYUFBYSxDQUFDO2FBQzVCLHFCQUFxQixFQUFFLENBQUM7UUFFM0IsTUFBTSxjQUFjLEdBQUcsYUFBYTthQUNqQyxhQUFhLENBQUMsa0JBQWtCLENBQUM7YUFDakMscUJBQXFCLEVBQUUsQ0FBQztRQUUzQixNQUFNLG1CQUFtQixHQUFHLGFBQWE7YUFDdEMsYUFBYSxDQUFDLGtCQUFrQixDQUFDO2FBQ2pDLHFCQUFxQixFQUFFLENBQUM7UUFFM0IsTUFBTSxlQUFlLEdBQ25CLGNBQWMsQ0FBQyxLQUFLLEdBQUcsbUJBQW1CLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQyxjQUFjLENBQUM7UUFFekUsTUFBTSxXQUFXLEdBQUcsZUFBZSxHQUFHLFVBQVUsQ0FBQyxLQUFLLENBQUM7UUFDdkQsSUFBSSxJQUFJLENBQUMsZUFBZSxLQUFLLFdBQVcsRUFBRTtZQUN4QyxJQUFJLENBQUMsZUFBZSxHQUFHLFdBQVcsQ0FBQztZQUNuQyxJQUFJLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsZUFBZSxDQUFDLENBQUM7U0FDakQ7SUFDSCxDQUFDO0lBRUQ7O09BRUc7SUFDSyxpQkFBaUIsQ0FBQyxRQUFxQjtRQUM3QyxNQUFNLFVBQVUsR0FBRyxRQUFRLENBQUMscUJBQXFCLEVBQUUsQ0FBQztRQUVwRCwwRkFBMEY7UUFDMUYsTUFBTSxZQUFZLEdBQUcsUUFBUTthQUMxQixhQUFhLENBQUMsc0JBQXNCLENBQUM7YUFDckMscUJBQXFCLEVBQUUsQ0FBQztRQUUzQixPQUFPLFlBQVksQ0FBQyxJQUFJLEdBQUcsVUFBVSxDQUFDLElBQUksQ0FBQztJQUM3QyxDQUFDOztvSEExRFUsdUJBQXVCO3dIQUF2Qix1QkFBdUI7MkZBQXZCLHVCQUF1QjtrQkFEbkMsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEVsZW1lbnRSZWYsIEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0LCBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XG5cbi8qKlxuICogQGludGVybmFsXG4gKi9cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBTa3lUYWJzZXRBZGFwdGVyU2VydmljZSB7XG4gIHB1YmxpYyBnZXQgb3ZlcmZsb3dDaGFuZ2UoKTogT2JzZXJ2YWJsZTxib29sZWFuPiB7XG4gICAgcmV0dXJuIHRoaXMuX292ZXJmbG93Q2hhbmdlLmFzT2JzZXJ2YWJsZSgpO1xuICB9XG5cbiAgcHJpdmF0ZSBjdXJyZW50T3ZlcmZsb3c6IGJvb2xlYW47XG5cbiAgcHJpdmF0ZSB0YWJzZXRSZWY6IEVsZW1lbnRSZWY7XG5cbiAgcHJpdmF0ZSB0YWJzT2Zmc2V0TGVmdDogbnVtYmVyO1xuXG4gIHByaXZhdGUgX292ZXJmbG93Q2hhbmdlID0gbmV3IEJlaGF2aW9yU3ViamVjdDxib29sZWFuPihmYWxzZSk7XG5cbiAgcHVibGljIHJlZ2lzdGVyVGFic2V0KHRhYnNldFJlZjogRWxlbWVudFJlZik6IHZvaWQge1xuICAgIHRoaXMudGFic2V0UmVmID0gdGFic2V0UmVmO1xuICAgIHRoaXMudGFic09mZnNldExlZnQgPSB0aGlzLmdldFRhYnNPZmZzZXRMZWZ0KHRhYnNldFJlZi5uYXRpdmVFbGVtZW50KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBEZXRlY3RzIGlmIHRoZSB0YWIgYnV0dG9ucyBhcmUgd2lkZXIgdGhhbiB0aGUgdGFic2V0IGNvbnRhaW5lci5cbiAgICovXG4gIHB1YmxpYyBkZXRlY3RPdmVyZmxvdygpOiB2b2lkIHtcbiAgICBjb25zdCBuYXRpdmVFbGVtZW50ID0gdGhpcy50YWJzZXRSZWYubmF0aXZlRWxlbWVudDtcblxuICAgIGNvbnN0IHRhYnNldFJlY3QgPSBuYXRpdmVFbGVtZW50XG4gICAgICAucXVlcnlTZWxlY3RvcignLnNreS10YWJzZXQnKVxuICAgICAgLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO1xuXG4gICAgY29uc3QgdGFiQnV0dG9uc1JlY3QgPSBuYXRpdmVFbGVtZW50XG4gICAgICAucXVlcnlTZWxlY3RvcignLnNreS10YWJzZXQtdGFicycpXG4gICAgICAuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XG5cbiAgICBjb25zdCB0YWJFeHRyYUJ1dHRvbnNSZWN0ID0gbmF0aXZlRWxlbWVudFxuICAgICAgLnF1ZXJ5U2VsZWN0b3IoJy5za3ktdGFic2V0LWJ0bnMnKVxuICAgICAgLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO1xuXG4gICAgY29uc3QgdGFiQnV0dG9uc1dpZHRoID1cbiAgICAgIHRhYkJ1dHRvbnNSZWN0LndpZHRoICsgdGFiRXh0cmFCdXR0b25zUmVjdC53aWR0aCArIHRoaXMudGFic09mZnNldExlZnQ7XG5cbiAgICBjb25zdCBuZXdPdmVyZmxvdyA9IHRhYkJ1dHRvbnNXaWR0aCA+IHRhYnNldFJlY3Qud2lkdGg7XG4gICAgaWYgKHRoaXMuY3VycmVudE92ZXJmbG93ICE9PSBuZXdPdmVyZmxvdykge1xuICAgICAgdGhpcy5jdXJyZW50T3ZlcmZsb3cgPSBuZXdPdmVyZmxvdztcbiAgICAgIHRoaXMuX292ZXJmbG93Q2hhbmdlLm5leHQodGhpcy5jdXJyZW50T3ZlcmZsb3cpO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm5zIHRoZSBudW1iZXIgb2YgcGl4ZWxzIHRvIHRoZSBsZWZ0IG9mIHRoZSBmaXJzdCB0YWIuXG4gICAqL1xuICBwcml2YXRlIGdldFRhYnNPZmZzZXRMZWZ0KHRhYnNldEVsOiBIVE1MRWxlbWVudCk6IG51bWJlciB7XG4gICAgY29uc3QgdGFic2V0UmVjdCA9IHRhYnNldEVsLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO1xuXG4gICAgLy8gVGhlIGRyb3Bkb3duIGVsZW1lbnQgaXMgdGhlIGZpcnN0IFwidGFiXCIgYW5kIGFsd2F5cyBleGlzdHMgaW4gdGhlIERPTSwgZXZlbiB3aGVuIGhpZGRlbi5cbiAgICBjb25zdCBmaXJzdFRhYlJlY3QgPSB0YWJzZXRFbFxuICAgICAgLnF1ZXJ5U2VsZWN0b3IoJy5za3ktdGFic2V0LWRyb3Bkb3duJylcbiAgICAgIC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtcblxuICAgIHJldHVybiBmaXJzdFRhYlJlY3QubGVmdCAtIHRhYnNldFJlY3QubGVmdDtcbiAgfVxufVxuIl19
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
export {};
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFic2V0LWJ1dHRvbnMtZGlzcGxheS1tb2RlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL3RhYnMvc3JjL2xpYi9tb2R1bGVzL3RhYnMvdGFic2V0LWJ1dHRvbnMtZGlzcGxheS1tb2RlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgdHlwZSBTa3lUYWJzZXRCdXR0b25zRGlzcGxheU1vZGUgPSAnZHJvcGRvd24nIHwgJ3RhYnMnO1xuIl19
|
|
@@ -0,0 +1,116 @@
|
|
|
1
|
+
import { ChangeDetectorRef, Component, Input, } from '@angular/core';
|
|
2
|
+
import { SkyLibResourcesService } from '@skyux/i18n';
|
|
3
|
+
import { forkJoin } from 'rxjs';
|
|
4
|
+
import { take } from 'rxjs/operators';
|
|
5
|
+
import { SkyTabsetComponent } from './tabset.component';
|
|
6
|
+
import * as i0 from "@angular/core";
|
|
7
|
+
import * as i1 from "@skyux/i18n";
|
|
8
|
+
const buttonTypeNext = 'next';
|
|
9
|
+
const buttonTypePrevious = 'previous';
|
|
10
|
+
/**
|
|
11
|
+
* @internal
|
|
12
|
+
*/
|
|
13
|
+
export class SkyTabsetNavButtonComponent {
|
|
14
|
+
constructor(resourceService, changeDetector) {
|
|
15
|
+
this.resourceService = resourceService;
|
|
16
|
+
this.changeDetector = changeDetector;
|
|
17
|
+
}
|
|
18
|
+
set buttonText(value) {
|
|
19
|
+
this._buttonText = value;
|
|
20
|
+
}
|
|
21
|
+
get buttonText() {
|
|
22
|
+
if (this._buttonText) {
|
|
23
|
+
return this._buttonText;
|
|
24
|
+
}
|
|
25
|
+
switch (this.buttonType) {
|
|
26
|
+
case buttonTypePrevious:
|
|
27
|
+
return this.previousButtonText;
|
|
28
|
+
case buttonTypeNext:
|
|
29
|
+
return this.nextButtonText;
|
|
30
|
+
/* istanbul ignore next */
|
|
31
|
+
default:
|
|
32
|
+
return '';
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
get disabled() {
|
|
36
|
+
let tabToSelect;
|
|
37
|
+
switch (this.buttonType) {
|
|
38
|
+
case buttonTypePrevious:
|
|
39
|
+
tabToSelect = this.previousTab;
|
|
40
|
+
break;
|
|
41
|
+
case buttonTypeNext:
|
|
42
|
+
tabToSelect = this.nextTab;
|
|
43
|
+
break;
|
|
44
|
+
/* istanbul ignore next */
|
|
45
|
+
default:
|
|
46
|
+
break;
|
|
47
|
+
}
|
|
48
|
+
return !tabToSelect || tabToSelect.disabled;
|
|
49
|
+
}
|
|
50
|
+
get selectedTab() {
|
|
51
|
+
let selectedTab;
|
|
52
|
+
if (this.tabset && this.tabset.tabs) {
|
|
53
|
+
selectedTab = this.tabset.tabs.find((tab) => tab.tabIndex === this.tabset.lastActiveTabIndex);
|
|
54
|
+
}
|
|
55
|
+
return selectedTab;
|
|
56
|
+
}
|
|
57
|
+
get nextTab() {
|
|
58
|
+
const selectedTab = this.selectedTab;
|
|
59
|
+
if (selectedTab) {
|
|
60
|
+
const tabs = this.tabset.tabs.toArray();
|
|
61
|
+
return tabs[tabs.indexOf(selectedTab) + 1];
|
|
62
|
+
}
|
|
63
|
+
return undefined;
|
|
64
|
+
}
|
|
65
|
+
get previousTab() {
|
|
66
|
+
const selectedTab = this.selectedTab;
|
|
67
|
+
if (selectedTab) {
|
|
68
|
+
const tabs = this.tabset.tabs.toArray();
|
|
69
|
+
return tabs[tabs.indexOf(selectedTab) - 1];
|
|
70
|
+
}
|
|
71
|
+
return undefined;
|
|
72
|
+
}
|
|
73
|
+
ngAfterViewInit() {
|
|
74
|
+
forkJoin([
|
|
75
|
+
this.resourceService.getString('skyux_tabs_navigator_previous'),
|
|
76
|
+
this.resourceService.getString('skyux_tabs_navigator_next'),
|
|
77
|
+
])
|
|
78
|
+
.pipe(take(1))
|
|
79
|
+
.subscribe((resources) => {
|
|
80
|
+
this.previousButtonText = resources[0];
|
|
81
|
+
this.nextButtonText = resources[1];
|
|
82
|
+
this.changeDetector.detectChanges();
|
|
83
|
+
});
|
|
84
|
+
}
|
|
85
|
+
buttonClick() {
|
|
86
|
+
let tabToSelect;
|
|
87
|
+
switch (this.buttonType) {
|
|
88
|
+
case buttonTypePrevious:
|
|
89
|
+
tabToSelect = this.previousTab;
|
|
90
|
+
break;
|
|
91
|
+
case buttonTypeNext:
|
|
92
|
+
tabToSelect = this.nextTab;
|
|
93
|
+
break;
|
|
94
|
+
/* istanbul ignore next */
|
|
95
|
+
default:
|
|
96
|
+
break;
|
|
97
|
+
}
|
|
98
|
+
/* istanbul ignore else */
|
|
99
|
+
if (tabToSelect && !tabToSelect.disabled) {
|
|
100
|
+
this.tabset.active = tabToSelect.tabIndex;
|
|
101
|
+
}
|
|
102
|
+
}
|
|
103
|
+
}
|
|
104
|
+
SkyTabsetNavButtonComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: SkyTabsetNavButtonComponent, deps: [{ token: i1.SkyLibResourcesService }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
|
|
105
|
+
SkyTabsetNavButtonComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.2", type: SkyTabsetNavButtonComponent, selector: "sky-tabset-nav-button", inputs: { tabset: "tabset", buttonType: "buttonType", buttonText: "buttonText" }, ngImport: i0, template: "<button\n class=\"sky-btn sky-btn-default\"\n type=\"button\"\n [disabled]=\"disabled\"\n (click)=\"buttonClick()\"\n>\n {{ buttonText }}\n</button>\n" });
|
|
106
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: SkyTabsetNavButtonComponent, decorators: [{
|
|
107
|
+
type: Component,
|
|
108
|
+
args: [{ selector: 'sky-tabset-nav-button', template: "<button\n class=\"sky-btn sky-btn-default\"\n type=\"button\"\n [disabled]=\"disabled\"\n (click)=\"buttonClick()\"\n>\n {{ buttonText }}\n</button>\n" }]
|
|
109
|
+
}], ctorParameters: function () { return [{ type: i1.SkyLibResourcesService }, { type: i0.ChangeDetectorRef }]; }, propDecorators: { tabset: [{
|
|
110
|
+
type: Input
|
|
111
|
+
}], buttonType: [{
|
|
112
|
+
type: Input
|
|
113
|
+
}], buttonText: [{
|
|
114
|
+
type: Input
|
|
115
|
+
}] } });
|
|
116
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFic2V0LW5hdi1idXR0b24uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL3RhYnMvc3JjL2xpYi9tb2R1bGVzL3RhYnMvdGFic2V0LW5hdi1idXR0b24uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL3RhYnMvc3JjL2xpYi9tb2R1bGVzL3RhYnMvdGFic2V0LW5hdi1idXR0b24uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUVMLGlCQUFpQixFQUNqQixTQUFTLEVBQ1QsS0FBSyxHQUNOLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUVyRCxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ2hDLE9BQU8sRUFBRSxJQUFJLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUd0QyxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQzs7O0FBRXhELE1BQU0sY0FBYyxHQUFHLE1BQU0sQ0FBQztBQUU5QixNQUFNLGtCQUFrQixHQUFHLFVBQVUsQ0FBQztBQUV0Qzs7R0FFRztBQUtILE1BQU0sT0FBTywyQkFBMkI7SUFvRnRDLFlBQ1UsZUFBdUMsRUFDdkMsY0FBaUM7UUFEakMsb0JBQWUsR0FBZixlQUFlLENBQXdCO1FBQ3ZDLG1CQUFjLEdBQWQsY0FBYyxDQUFtQjtJQUN4QyxDQUFDO0lBaEZKLElBQ1csVUFBVSxDQUFDLEtBQWE7UUFDakMsSUFBSSxDQUFDLFdBQVcsR0FBRyxLQUFLLENBQUM7SUFDM0IsQ0FBQztJQUVELElBQVcsVUFBVTtRQUNuQixJQUFJLElBQUksQ0FBQyxXQUFXLEVBQUU7WUFDcEIsT0FBTyxJQUFJLENBQUMsV0FBVyxDQUFDO1NBQ3pCO1FBRUQsUUFB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Q0FBQztnQkFDM0IsTUFBTTtZQUNSLDBCQUEwQjtZQUMxQjtnQkFDRSxNQUFNO1NBQ1Q7UUFFRCwwQkFBMEI7UUFDMUIsSUFBSSxXQUFXLElBQUksQ0FBQyxXQUFXLENBQUMsUUFBUSxFQUFFO1lBQ3hDLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxHQUFHLFdBQVcsQ0FBQyxRQUFRLENBQUM7U0FDM0M7SUFDSCxDQUFDOzt3SEF6SFUsMkJBQTJCOzRHQUEzQiwyQkFBMkIsK0lDekJ4Qyw2SkFRQTsyRkRpQmEsMkJBQTJCO2tCQUp2QyxTQUFTOytCQUNFLHVCQUF1Qjs2SUFLMUIsTUFBTTtzQkFEWixLQUFLO2dCQUlDLFVBQVU7c0JBRGhCLEtBQUs7Z0JBSUssVUFBVTtzQkFEcEIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIEFmdGVyVmlld0luaXQsXG4gIENoYW5nZURldGVjdG9yUmVmLFxuICBDb21wb25lbnQsXG4gIElucHV0LFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFNreUxpYlJlc291cmNlc1NlcnZpY2UgfSBmcm9tICdAc2t5dXgvaTE4bic7XG5cbmltcG9ydCB7IGZvcmtKb2luIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyB0YWtlIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuXG5pbXBvcnQgeyBTa3lUYWJDb21wb25lbnQgfSBmcm9tICcuL3RhYi5jb21wb25lbnQnO1xuaW1wb3J0IHsgU2t5VGFic2V0Q29tcG9uZW50IH0gZnJvbSAnLi90YWJzZXQuY29tcG9uZW50JztcblxuY29uc3QgYnV0dG9uVHlwZU5leHQgPSAnbmV4dCc7XG5cbmNvbnN0IGJ1dHRvblR5cGVQcmV2aW91cyA9ICdwcmV2aW91cyc7XG5cbi8qKlxuICogQGludGVybmFsXG4gKi9cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3NreS10YWJzZXQtbmF2LWJ1dHRvbicsXG4gIHRlbXBsYXRlVXJsOiAnLi90YWJzZXQtbmF2LWJ1dHRvbi5jb21wb25lbnQuaHRtbCcsXG59KVxuZXhwb3J0IGNsYXNzIFNreVRhYnNldE5hdkJ1dHRvbkNvbXBvbmVudCBpbXBsZW1lbnRzIEFmdGVyVmlld0luaXQge1xuICBASW5wdXQoKVxuICBwdWJsaWMgdGFic2V0OiBTa3lUYWJzZXRDb21wb25lbnQ7XG5cbiAgQElucHV0KClcbiAgcHVibGljIGJ1dHRvblR5cGU6IHN0cmluZztcblxuICBASW5wdXQoKVxuICBwdWJsaWMgc2V0IGJ1dHRvblRleHQodmFsdWU6IHN0cmluZykge1xuICAgIHRoaXMuX2J1dHRvblRleHQgPSB2YWx1ZTtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgYnV0dG9uVGV4dCgpOiBzdHJpbmcge1xuICAgIGlmICh0aGlzLl9idXR0b25UZXh0KSB7XG4gICAgICByZXR1cm4gdGhpcy5fYnV0dG9uVGV4dDtcbiAgICB9XG5cbiAgICBzd2l0Y2ggKHRoaXMuYnV0dG9uVHlwZSkge1xuICAgICAgY2FzZSBidXR0b25UeXBlUHJldmlvdXM6XG4gICAgICAgIHJldHVybiB0aGlzLnByZXZpb3VzQnV0dG9uVGV4dDtcbiAgICAgIGNhc2UgYnV0dG9uVHlwZU5leHQ6XG4gICAgICAgIHJldHVybiB0aGlzLm5leHRCdXR0b25UZXh0O1xuICAgICAgLyogaXN0YW5idWwgaWdub3JlIG5leHQgKi9cbiAgICAgIGRlZmF1bHQ6XG4gICAgICAgIHJldHVybiAnJztcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgZ2V0IGRpc2FibGVkKCk6IGJvb2xlYW4ge1xuICAgIGxldCB0YWJUb1NlbGVjdDogU2t5VGFiQ29tcG9uZW50O1xuXG4gICAgc3dpdGNoICh0aGlzLmJ1dHRvblR5cGUpIHtcbiAgICAgIGNhc2UgYnV0dG9uVHlwZVByZXZpb3VzOlxuICAgICAgICB0YWJUb1NlbGVjdCA9IHRoaXMucHJldmlvdXNUYWI7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSBidXR0b25UeXBlTmV4dDpcbiAgICAgICAgdGFiVG9TZWxlY3QgPSB0aGlzLm5leHRUYWI7XG4gICAgICAgIGJyZWFrO1xuICAgICAgLyogaXN0YW5idWwgaWdub3JlIG5leHQgKi9cbiAgICAgIGRlZmF1bHQ6XG4gICAgICAgIGJyZWFrO1xuICAgIH1cblxuICAgIHJldHVybiAhdGFiVG9TZWxlY3QgfHwgdGFiVG9TZWxlY3QuZGlzYWJsZWQ7XG4gIH1cblxuICBwcml2YXRlIGdldCBzZWxlY3RlZFRhYigpOiBTa3lUYWJDb21wb25lbnQge1xuICAgIGxldCBzZWxlY3RlZFRhYjogU2t5VGFiQ29tcG9uZW50O1xuXG4gICAgaWYgKHRoaXMudGFic2V0ICYmIHRoaXMudGFic2V0LnRhYnMpIHtcbiAgICAgIHNlbGVjdGVkVGFiID0gdGhpcy50YWJzZXQudGFicy5maW5kKFxuICAgICAgICAodGFiKSA9PiB0YWIudGFiSW5kZXggPT09IHRoaXMudGFic2V0Lmxhc3RBY3RpdmVUYWJJbmRleFxuICAgICAgKTtcbiAgICB9XG5cbiAgICByZXR1cm4gc2VsZWN0ZWRUYWI7XG4gIH1cblxuICBwcml2YXRlIGdldCBuZXh0VGFiKCk6IFNreVRhYkNvbXBvbmVudCB7XG4gICAgY29uc3Qgc2VsZWN0ZWRUYWIgPSB0aGlzLnNlbGVjdGVkVGFiO1xuXG4gICAgaWYgKHNlbGVjdGVkVGFiKSB7XG4gICAgICBjb25zdCB0YWJzID0gdGhpcy50YWJzZXQudGFicy50b0FycmF5KCk7XG4gICAgICByZXR1cm4gdGFic1t0YWJzLmluZGV4T2Yoc2VsZWN0ZWRUYWIpICsgMV07XG4gICAgfVxuXG4gICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0IHByZXZpb3VzVGFiKCk6IFNreVRhYkNvbXBvbmVudCB7XG4gICAgY29uc3Qgc2VsZWN0ZWRUYWIgPSB0aGlzLnNlbGVjdGVkVGFiO1xuXG4gICAgaWYgKHNlbGVjdGVkVGFiKSB7XG4gICAgICBjb25zdCB0YWJzID0gdGhpcy50YWJzZXQudGFicy50b0FycmF5KCk7XG4gICAgICByZXR1cm4gdGFic1t0YWJzLmluZGV4T2Yoc2VsZWN0ZWRUYWIpIC0gMV07XG4gICAgfVxuXG4gICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgfVxuXG4gIHByaXZhdGUgX2J1dHRvblRleHQ6IHN0cmluZztcbiAgcHJpdmF0ZSBwcmV2aW91c0J1dHRvblRleHQ6IHN0cmluZztcbiAgcHJpdmF0ZSBuZXh0QnV0dG9uVGV4dDogc3RyaW5nO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgcmVzb3VyY2VTZXJ2aWNlOiBTa3lMaWJSZXNvdXJjZXNTZXJ2aWNlLFxuICAgIHByaXZhdGUgY2hhbmdlRGV0ZWN0b3I6IENoYW5nZURldGVjdG9yUmVmXG4gICkge31cblxuICBwdWJsaWMgbmdBZnRlclZpZXdJbml0KCkge1xuICAgIGZvcmtKb2luKFtcbiAgICAgIHRoaXMucmVzb3VyY2VTZXJ2aWNlLmdldFN0cmluZygnc2t5dXhfdGFic19uYXZpZ2F0b3JfcHJldmlvdXMnKSxcbiAgICAgIHRoaXMucmVzb3VyY2VTZXJ2aWNlLmdldFN0cmluZygnc2t5dXhfdGFic19uYXZpZ2F0b3JfbmV4dCcpLFxuICAgIF0pXG4gICAgICAucGlwZSh0YWtlKDEpKVxuICAgICAgLnN1YnNjcmliZSgocmVzb3VyY2VzKSA9PiB7XG4gICAgICAgIHRoaXMucHJldmlvdXNCdXR0b25UZXh0ID0gcmVzb3VyY2VzWzBdO1xuICAgICAgICB0aGlzLm5leHRCdXR0b25UZXh0ID0gcmVzb3VyY2VzWzFdO1xuICAgICAgICB0aGlzLmNoYW5nZURldGVjdG9yLmRldGVjdENoYW5nZXMoKTtcbiAgICAgIH0pO1xuICB9XG5cbiAgcHVibGljIGJ1dHRvbkNsaWNrKCkge1xuICAgIGxldCB0YWJUb1NlbGVjdDogU2t5VGFiQ29tcG9uZW50O1xuXG4gICAgc3dpdGNoICh0aGlzLmJ1dHRvblR5cGUpIHtcbiAgICAgIGNhc2UgYnV0dG9uVHlwZVByZXZpb3VzOlxuICAgICAgICB0YWJUb1NlbGVjdCA9IHRoaXMucHJldmlvdXNUYWI7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSBidXR0b25UeXBlTmV4dDpcbiAgICAgICAgdGFiVG9TZWxlY3QgPSB0aGlzLm5leHRUYWI7XG4gICAgICAgIGJyZWFrO1xuICAgICAgLyogaXN0YW5idWwgaWdub3JlIG5leHQgKi9cbiAgICAgIGRlZmF1bHQ6XG4gICAgICAgIGJyZWFrO1xuICAgIH1cblxuICAgIC8qIGlzdGFuYnVsIGlnbm9yZSBlbHNlICovXG4gICAgaWYgKHRhYlRvU2VsZWN0ICYmICF0YWJUb1NlbGVjdC5kaXNhYmxlZCkge1xuICAgICAgdGhpcy50YWJzZXQuYWN0aXZlID0gdGFiVG9TZWxlY3QudGFiSW5kZXg7XG4gICAgfVxuICB9XG59XG4iLCI8YnV0dG9uXG4gIGNsYXNzPVwic2t5LWJ0biBza3ktYnRuLWRlZmF1bHRcIlxuICB0eXBlPVwiYnV0dG9uXCJcbiAgW2Rpc2FibGVkXT1cImRpc2FibGVkXCJcbiAgKGNsaWNrKT1cImJ1dHRvbkNsaWNrKClcIlxuPlxuICB7eyBidXR0b25UZXh0IH19XG48L2J1dHRvbj5cbiJdfQ==
|
|
@@ -0,0 +1,124 @@
|
|
|
1
|
+
import { Location } from '@angular/common';
|
|
2
|
+
import { Injectable } from '@angular/core';
|
|
3
|
+
import { ActivatedRoute, Router } from '@angular/router';
|
|
4
|
+
import { Subject } from 'rxjs';
|
|
5
|
+
import * as i0 from "@angular/core";
|
|
6
|
+
import * as i1 from "@angular/router";
|
|
7
|
+
import * as i2 from "@angular/common";
|
|
8
|
+
/**
|
|
9
|
+
* @internal
|
|
10
|
+
*/
|
|
11
|
+
export class SkyTabsetPermalinkService {
|
|
12
|
+
constructor(activatedRoute, location, router) {
|
|
13
|
+
this.activatedRoute = activatedRoute;
|
|
14
|
+
this.location = location;
|
|
15
|
+
this.router = router;
|
|
16
|
+
this._popStateChange = new Subject();
|
|
17
|
+
}
|
|
18
|
+
get popStateChange() {
|
|
19
|
+
return this._popStateChange.asObservable();
|
|
20
|
+
}
|
|
21
|
+
ngOnDestroy() {
|
|
22
|
+
if (this.subscription) {
|
|
23
|
+
this.subscription.unsubscribe();
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
init() {
|
|
27
|
+
this.subscription = this.location.subscribe(() => {
|
|
28
|
+
this._popStateChange.next();
|
|
29
|
+
});
|
|
30
|
+
}
|
|
31
|
+
/**
|
|
32
|
+
* Returns the value of a URL query param.
|
|
33
|
+
*/
|
|
34
|
+
getParam(name) {
|
|
35
|
+
return this.getParams()[name];
|
|
36
|
+
}
|
|
37
|
+
/**
|
|
38
|
+
* Sets the value of a URL query param.
|
|
39
|
+
*/
|
|
40
|
+
setParam(name, value) {
|
|
41
|
+
const params = this.getParams();
|
|
42
|
+
if (value === null) {
|
|
43
|
+
delete params[name];
|
|
44
|
+
}
|
|
45
|
+
else {
|
|
46
|
+
params[name] = value;
|
|
47
|
+
}
|
|
48
|
+
// Update the URL without triggering a navigation state change.
|
|
49
|
+
// See: https://stackoverflow.com/a/46486677
|
|
50
|
+
const url = this.router
|
|
51
|
+
.createUrlTree([], {
|
|
52
|
+
relativeTo: this.activatedRoute,
|
|
53
|
+
queryParams: params,
|
|
54
|
+
queryParamsHandling: 'merge',
|
|
55
|
+
})
|
|
56
|
+
.toString();
|
|
57
|
+
// Abort redirect if the current URL is equal to the new URL.
|
|
58
|
+
if (this.location.isCurrentPathEqualTo(url)) {
|
|
59
|
+
return;
|
|
60
|
+
}
|
|
61
|
+
this.location.go(url);
|
|
62
|
+
}
|
|
63
|
+
/**
|
|
64
|
+
* Removes the provided query param from the URL.
|
|
65
|
+
*/
|
|
66
|
+
clearParam(name) {
|
|
67
|
+
this.setParam(name, null);
|
|
68
|
+
}
|
|
69
|
+
/**
|
|
70
|
+
* Returns a relative URL that includes the provided query parameter. The value is inteded to be
|
|
71
|
+
* used by an HTML anchor element.
|
|
72
|
+
*/
|
|
73
|
+
getParamHref(name, value) {
|
|
74
|
+
if (!name) {
|
|
75
|
+
return null;
|
|
76
|
+
}
|
|
77
|
+
const params = this.getParams();
|
|
78
|
+
params[name] = value;
|
|
79
|
+
const baseUrl = this.location.path().split('?')[0];
|
|
80
|
+
const paramString = Object.keys(params)
|
|
81
|
+
.map((k) => `${k}=${params[k]}`)
|
|
82
|
+
.join('&');
|
|
83
|
+
return this.location.prepareExternalUrl(`${baseUrl}?${paramString}`);
|
|
84
|
+
}
|
|
85
|
+
/**
|
|
86
|
+
* Converts the provided string into a value that can be safely used in a URL.
|
|
87
|
+
*/
|
|
88
|
+
urlify(value) {
|
|
89
|
+
if (!value) {
|
|
90
|
+
return '';
|
|
91
|
+
}
|
|
92
|
+
const sanitized = value
|
|
93
|
+
.toLowerCase()
|
|
94
|
+
// Remove special characters.
|
|
95
|
+
.replace(/[_~`@!#$%^&*()[\]{};:'/\\<>,.?=+|"]/g, '')
|
|
96
|
+
// Replace space characters with a dash.
|
|
97
|
+
.replace(/\s/g, '-')
|
|
98
|
+
// Remove any double-dashes.
|
|
99
|
+
.replace(/--/g, '-');
|
|
100
|
+
return sanitized;
|
|
101
|
+
}
|
|
102
|
+
/**
|
|
103
|
+
* Returns all query params that exist in the current URL.
|
|
104
|
+
*/
|
|
105
|
+
getParams() {
|
|
106
|
+
const params = {};
|
|
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
|
+
});
|
|
116
|
+
return params;
|
|
117
|
+
}
|
|
118
|
+
}
|
|
119
|
+
SkyTabsetPermalinkService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: SkyTabsetPermalinkService, deps: [{ token: i1.ActivatedRoute }, { token: i2.Location }, { token: i1.Router }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
120
|
+
SkyTabsetPermalinkService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: SkyTabsetPermalinkService });
|
|
121
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: SkyTabsetPermalinkService, decorators: [{
|
|
122
|
+
type: Injectable
|
|
123
|
+
}], ctorParameters: function () { return [{ type: i1.ActivatedRoute }, { type: i2.Location }, { type: i1.Router }]; } });
|
|
124
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFic2V0LXBlcm1hbGluay5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL3RhYnMvc3JjL2xpYi9tb2R1bGVzL3RhYnMvdGFic2V0LXBlcm1hbGluay5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMzQyxPQUFPLEVBQUUsVUFBVSxFQUFhLE1BQU0sZUFBZSxDQUFDO0FBQ3RELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFFekQsT0FBTyxFQUFjLE9BQU8sRUFBb0IsTUFBTSxNQUFNLENBQUM7Ozs7QUFTN0Q7O0dBRUc7QUFFSCxNQUFNLE9BQU8seUJBQXlCO0lBU3BDLFlBQ1UsY0FBOEIsRUFDOUIsUUFBa0IsRUFDbEIsTUFBYztRQUZkLG1CQUFjLEdBQWQsY0FBYyxDQUFnQjtRQUM5QixhQUFRLEdBQVIsUUFBUSxDQUFVO1FBQ2xCLFdBQU0sR0FBTixNQUFNLENBQVE7UUFQaEIsb0JBQWUsR0FBRyxJQUFJLE9BQU8sRUFBUSxDQUFDO0lBUTNDLENBQUM7SUFaSixJQUFXLGNBQWM7UUFDdkIsT0FBTyxJQUFJLENBQUMsZUFBZSxDQUFDLFlBQVksRUFBRSxDQUFDO0lBQzdDLENBQUM7SUFZTSxXQUFXO1FBQ2hCLElBQUksSUFBSSxDQUFDLFlBQVksRUFBRTtZQUNyQixJQUFJLENBQUMsWUFBWSxDQUFDLFdBQVcsRUFBRSxDQUFDO1NBQ2pDO0lBQ0gsQ0FBQztJQUVNLElBQUk7UUFDVCxJQUFJLENBQUMsWUFBWSxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsU0FBUyxDQUFDLEdBQUcsRUFBRTtZQUMvQyxJQUFJLENBQUMsZUFBZSxDQUFDLElBQUksRUFBRSxDQUFDO1FBQzlCLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVE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S0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUN6RCxrQkFBa0IsQ0FBQyxPQUFPLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRTtZQUNsQyxNQUFNLFNBQVMsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1lBQ2xDLE1BQU0sQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxrQkFBa0IsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUMxRCxDQUFDLENBQUMsQ0FBQztRQUVILE9BQU8sTUFBTSxDQUFDO0lBQ2hCLENBQUM7O3NIQXBJVSx5QkFBeUI7MEhBQXpCLHlCQUF5QjsyRkFBekIseUJBQXlCO2tCQURyQyxVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTG9jYXRpb24gfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgSW5qZWN0YWJsZSwgT25EZXN0cm95IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBBY3RpdmF0ZWRSb3V0ZSwgUm91dGVyIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcblxuaW1wb3J0IHsgT2JzZXJ2YWJsZSwgU3ViamVjdCwgU3Vic2NyaXB0aW9uTGlrZSB9IGZyb20gJ3J4anMnO1xuXG4vKipcbiAqIEBpbnRlcm5hbFxuICovXG5pbnRlcmZhY2UgUGVybWFsaW5rUGFyYW1zIHtcbiAgW186IHN0cmluZ106IHN0cmluZztcbn1cblxuLyoqXG4gKiBAaW50ZXJuYWxcbiAqL1xuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIFNreVRhYnNldFBlcm1hbGlua1NlcnZpY2UgaW1wbGVtZW50cyBPbkRlc3Ryb3kge1xuICBwdWJsaWMgZ2V0IHBvcFN0YXRlQ2hhbmdlKCk6IE9ic2VydmFibGU8dm9pZD4ge1xuICAgIHJldHVybiB0aGlzLl9wb3BTdGF0ZUNoYW5nZS5hc09ic2VydmFibGUoKTtcbiAgfVxuXG4gIHByaXZhdGUgX3BvcFN0YXRlQ2hhbmdlID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcblxuICBwcml2YXRlIHN1YnNjcmlwdGlvbjogU3Vic2NyaXB0aW9uTGlrZTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIGFjdGl2YXRlZFJvdXRlOiBBY3RpdmF0ZWRSb3V0ZSxcbiAgICBwcml2YXRlIGxvY2F0aW9uOiBMb2NhdGlvbixcbiAgICBwcml2YXRlIHJvdXRlcjogUm91dGVyXG4gICkge31cblxuICBwdWJsaWMgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuc3Vic2NyaXB0aW9uKSB7XG4gICAgICB0aGlzLnN1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBpbml0KCk6IHZvaWQge1xuICAgIHRoaXMuc3Vic2NyaXB0aW9uID0gdGhpcy5sb2NhdGlvbi5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgdGhpcy5fcG9wU3RhdGVDaGFuZ2UubmV4dCgpO1xuICAgIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybnMgdGhlIHZhbHVlIG9mIGEgVVJMIHF1ZXJ5IHBhcmFtLlxuICAgKi9cbiAgcHVibGljIGdldFBhcmFtKG5hbWU6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMuZ2V0UGFyYW1zKClbbmFtZV07XG4gIH1cblxuICAvKipcbiAgICogU2V0cyB0aGUgdmFsdWUgb2YgYSBVUkwgcXVlcnkgcGFyYW0uXG4gICAqL1xuICBwdWJsaWMgc2V0UGFyYW0obmFtZTogc3RyaW5nLCB2YWx1ZTogc3RyaW5nIHwgbnVsbCk6IHZvaWQge1xuICAgIGNvbnN0IHBhcmFtcyA9IHRoaXMuZ2V0UGFyYW1zKCk7XG5cbiAgICBpZiAodmFsdWUgPT09IG51bGwpIHtcbiAgICAgIGRlbGV0ZSBwYXJhbXNbbmFtZV07XG4gICAgfSBlbHNlIHtcbiAgICAgIHBhcmFtc1tuYW1lXSA9IHZhbHVlO1xuICAgIH1cblxuICAgIC8vIFVwZGF0ZSB0aGUgVVJMIHdpdGhvdXQgdHJpZ2dlcmluZyBhIG5hdmlnYXRpb24gc3RhdGUgY2hhbmdlLlxuICAgIC8vIFNlZTogaHR0cHM6Ly9zdGFja292ZXJmbG93LmNvbS9hLzQ2NDg2Njc3XG4gICAgY29uc3QgdXJsID0gdGhpcy5yb3V0ZXJcbiAgICAgIC5jcmVhdGVVcmxUcmVlKFtdLCB7XG4gICAgICAgIHJlbGF0aXZlVG86IHRoaXMuYWN0aXZhdGVkUm91dGUsXG4gICAgICAgIHF1ZXJ5UGFyYW1zOiBwYXJhbXMsXG4gICAgICAgIHF1ZXJ5UGFyYW1zSGFuZGxpbmc6ICdtZXJnZScsXG4gICAgICB9KVxuICAgICAgLnRvU3RyaW5nKCk7XG5cbiAgICAvLyBBYm9ydCByZWRpcmVjdCBpZiB0aGUgY3VycmVudCBVUkwgaXMgZXF1YWwgdG8gdGhlIG5ldyBVUkwuXG4gICAgaWYgKHRoaXMubG9jYXRpb24uaXNDdXJyZW50UGF0aEVxdWFsVG8odXJsKSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHRoaXMubG9jYXRpb24uZ28odXJsKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZW1vdmVzIHRoZSBwcm92aWRlZCBxdWVyeSBwYXJhbSBmcm9tIHRoZSBVUkwuXG4gICAqL1xuICBwdWJsaWMgY2xlYXJQYXJhbShuYW1lOiBzdHJpbmcpOiB2b2lkIHtcbiAgICB0aGlzLnNldFBhcmFtKG5hbWUsIG51bGwpO1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybnMgYSByZWxhdGl2ZSBVUkwgdGhhdCBpbmNsdWRlcyB0aGUgcHJvdmlkZWQgcXVlcnkgcGFyYW1ldGVyLiBUaGUgdmFsdWUgaXMgaW50ZWRlZCB0byBiZVxuICAgKiB1c2VkIGJ5IGFuIEhUTUwgYW5jaG9yIGVsZW1lbnQuXG4gICAqL1xuICBwdWJsaWMgZ2V0UGFyYW1IcmVmKG5hbWU6IHN0cmluZywgdmFsdWU6IHN0cmluZyk6IHN0cmluZyB8IG51bGwge1xuICAgIGlmICghbmFtZSkge1xuICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuXG4gICAgY29uc3QgcGFyYW1zID0gdGhpcy5nZXRQYXJhbXMoKTtcbiAgICBwYXJhbXNbbmFtZV0gPSB2YWx1ZTtcblxuICAgIGNvbnN0IGJhc2VVcmwgPSB0aGlzLmxvY2F0aW9uLnBhdGgoKS5zcGxpdCgnPycpWzBdO1xuICAgIGNvbnN0IHBhcmFtU3RyaW5nID0gT2JqZWN0LmtleXMocGFyYW1zKVxuICAgICAgLm1hcCgoaykgPT4gYCR7a309JHtwYXJhbXNba119YClcbiAgICAgIC5qb2luKCcmJyk7XG5cbiAgICByZXR1cm4gdGhpcy5sb2NhdGlvbi5wcmVwYXJlRXh0ZXJuYWxVcmwoYCR7YmFzZVVybH0/JHtwYXJhbVN0cmluZ31gKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDb252ZXJ0cyB0aGUgcHJvdmlkZWQgc3RyaW5nIGludG8gYSB2YWx1ZSB0aGF0IGNhbiBiZSBzYWZlbHkgdXNlZCBpbiBhIFVSTC5cbiAgICovXG4gIHB1YmxpYyB1cmxpZnkodmFsdWU6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgaWYgKCF2YWx1ZSkge1xuICAgICAgcmV0dXJuICcnO1xuICAgIH1cblxuICAgIGNvbnN0IHNhbml0aXplZCA9IHZhbHVlXG4gICAgICAudG9Mb3dlckNhc2UoKVxuXG4gICAgICAvLyBSZW1vdmUgc3BlY2lhbCBjaGFyYWN0ZXJzLlxuICAgICAgLnJlcGxhY2UoL1tffmBAISMkJV4mKigpW1xcXXt9OzonL1xcXFw8PiwuPz0rfFwiXS9nLCAnJylcblxuICAgICAgLy8gUmVwbGFjZSBzcGFjZSBjaGFyYWN0ZXJzIHdpdGggYSBkYXNoLlxuICAgICAgLnJlcGxhY2UoL1xccy9nLCAnLScpXG5cbiAgICAgIC8vIFJlbW92ZSBhbnkgZG91YmxlLWRhc2hlcy5cbiAgICAgIC5yZXBsYWNlKC8tLS9nLCAnLScpO1xuXG4gICAgcmV0dXJuIHNhbml0aXplZDtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm5zIGFsbCBxdWVyeSBwYXJhbXMgdGhhdCBleGlzdCBpbiB0aGUgY3VycmVudCBVUkwuXG4gICAqL1xuICBwcml2YXRlIGdldFBhcmFtcygpOiBQZXJtYWxpbmtQYXJhbXMge1xuICAgIGNvbnN0IHBhcmFtczogUGVybWFsaW5rUGFyYW1zID0ge307XG5cbiAgICBjb25zdCBwYXRoID0gdGhpcy5sb2NhdGlvbi5wYXRoKCk7XG4gICAgaWYgKHBhdGguaW5kZXhPZignPycpID09PSAtMSkge1xuICAgICAgcmV0dXJuIHBhcmFtcztcbiAgICB9XG5cbiAgICBjb25zdCBleGlzdGluZ1BhcmFtUGFpcnMgPSBwYXRoLnNwbGl0KCc/JylbMV0uc3BsaXQoJyYnKTtcbiAgICBleGlzdGluZ1BhcmFtUGFpcnMuZm9yRWFjaCgocGFpcikgPT4ge1xuICAgICAgY29uc3QgZnJhZ21lbnRzID0gcGFpci5zcGxpdCgnPScpO1xuICAgICAgcGFyYW1zW2ZyYWdtZW50c1swXV0gPSBkZWNvZGVVUklDb21wb25lbnQoZnJhZ21lbnRzWzFdKTtcbiAgICB9KTtcblxuICAgIHJldHVybiBwYXJhbXM7XG4gIH1cbn1cbiJdfQ==
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
export {};
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFic2V0LXN0eWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL3RhYnMvc3JjL2xpYi9tb2R1bGVzL3RhYnMvdGFic2V0LXN0eWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgdHlwZSBTa3lUYWJzZXRTdHlsZSA9ICd0YWJzJyB8ICd3aXphcmQnO1xuIl19
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
export {};
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFic2V0LXRhYi1pbmRleGVzLWNoYW5nZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tcG9uZW50cy90YWJzL3NyYy9saWIvbW9kdWxlcy90YWJzL3RhYnNldC10YWItaW5kZXhlcy1jaGFuZ2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFNreVRhYkluZGV4IH0gZnJvbSAnLi90YWItaW5kZXgnO1xuXG5leHBvcnQgaW50ZXJmYWNlIFNreVRhYnNldFRhYkluZGV4ZXNDaGFuZ2Uge1xuICB0YWJzPzoge1xuICAgIHRhYkhlYWRpbmc6IHN0cmluZztcblxuICAgIHRhYkluZGV4OiBTa3lUYWJJbmRleDtcbiAgfVtdO1xufVxuIl19
|