@skyux/tabs 4.6.9
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/CHANGELOG.md +218 -0
- package/README.md +5 -0
- package/bundles/skyux-tabs-testing.umd.js +395 -0
- package/bundles/skyux-tabs-testing.umd.js.map +1 -0
- package/bundles/skyux-tabs-testing.umd.min.js +16 -0
- package/bundles/skyux-tabs-testing.umd.min.js.map +1 -0
- package/bundles/skyux-tabs.umd.js +2414 -0
- package/bundles/skyux-tabs.umd.js.map +1 -0
- package/bundles/skyux-tabs.umd.min.js +16 -0
- package/bundles/skyux-tabs.umd.min.js.map +1 -0
- package/esm2015/modules/sectioned-form/sectioned-form-section.component.js +74 -0
- package/esm2015/modules/sectioned-form/sectioned-form.component.js +105 -0
- package/esm2015/modules/sectioned-form/sectioned-form.module.js +28 -0
- package/esm2015/modules/sectioned-form/sectioned-form.service.js +34 -0
- package/esm2015/modules/shared/tabs-resources.module.js +17 -0
- package/esm2015/modules/tabs/tab-button.component.js +71 -0
- package/esm2015/modules/tabs/tab-index.js +1 -0
- package/esm2015/modules/tabs/tab.component.js +144 -0
- package/esm2015/modules/tabs/tabs.module.js +41 -0
- package/esm2015/modules/tabs/tabset-active-tab-unregistered-args.js +1 -0
- package/esm2015/modules/tabs/tabset-adapter.service.js +53 -0
- package/esm2015/modules/tabs/tabset-buttons-display-mode.js +1 -0
- package/esm2015/modules/tabs/tabset-nav-button.component.js +122 -0
- package/esm2015/modules/tabs/tabset-permalink.service.js +123 -0
- package/esm2015/modules/tabs/tabset-style.js +1 -0
- package/esm2015/modules/tabs/tabset-tab-indexes-change.js +1 -0
- package/esm2015/modules/tabs/tabset.component.js +403 -0
- package/esm2015/modules/tabs/tabset.service.js +109 -0
- package/esm2015/modules/vertical-tabset/vertical-tab-media-query.service.js +71 -0
- package/esm2015/modules/vertical-tabset/vertical-tab.component.js +195 -0
- package/esm2015/modules/vertical-tabset/vertical-tabset-adapter.service.js +50 -0
- package/esm2015/modules/vertical-tabset/vertical-tabset-group.component.js +113 -0
- package/esm2015/modules/vertical-tabset/vertical-tabset.component.js +139 -0
- package/esm2015/modules/vertical-tabset/vertical-tabset.module.js +43 -0
- package/esm2015/modules/vertical-tabset/vertical-tabset.service.js +167 -0
- package/esm2015/plugin-resources/tabs-resources-provider.js +16 -0
- package/esm2015/public_api.js +10 -0
- package/esm2015/skyux-tabs.js +21 -0
- package/esm2015/testing/public_api.js +2 -0
- package/esm2015/testing/skyux-tabs-testing.js +5 -0
- package/esm2015/testing/tabs/tab-fixture-tab.js +1 -0
- package/esm2015/testing/tabs/tabset-fixture.js +141 -0
- package/esm5/modules/sectioned-form/sectioned-form-section.component.js +84 -0
- package/esm5/modules/sectioned-form/sectioned-form.component.js +111 -0
- package/esm5/modules/sectioned-form/sectioned-form.module.js +31 -0
- package/esm5/modules/sectioned-form/sectioned-form.service.js +35 -0
- package/esm5/modules/shared/tabs-resources.module.js +20 -0
- package/esm5/modules/tabs/tab-button.component.js +72 -0
- package/esm5/modules/tabs/tab-index.js +1 -0
- package/esm5/modules/tabs/tab.component.js +173 -0
- package/esm5/modules/tabs/tabs.module.js +44 -0
- package/esm5/modules/tabs/tabset-active-tab-unregistered-args.js +1 -0
- package/esm5/modules/tabs/tabset-adapter.service.js +58 -0
- package/esm5/modules/tabs/tabset-buttons-display-mode.js +1 -0
- package/esm5/modules/tabs/tabset-nav-button.component.js +145 -0
- package/esm5/modules/tabs/tabset-permalink.service.js +129 -0
- package/esm5/modules/tabs/tabset-style.js +1 -0
- package/esm5/modules/tabs/tabset-tab-indexes-change.js +1 -0
- package/esm5/modules/tabs/tabset.component.js +434 -0
- package/esm5/modules/tabs/tabset.service.js +122 -0
- package/esm5/modules/vertical-tabset/vertical-tab-media-query.service.js +76 -0
- package/esm5/modules/vertical-tabset/vertical-tab.component.js +214 -0
- package/esm5/modules/vertical-tabset/vertical-tabset-adapter.service.js +51 -0
- package/esm5/modules/vertical-tabset/vertical-tabset-group.component.js +119 -0
- package/esm5/modules/vertical-tabset/vertical-tabset.component.js +145 -0
- package/esm5/modules/vertical-tabset/vertical-tabset.module.js +46 -0
- package/esm5/modules/vertical-tabset/vertical-tabset.service.js +176 -0
- package/esm5/plugin-resources/tabs-resources-provider.js +17 -0
- package/esm5/public_api.js +10 -0
- package/esm5/skyux-tabs.js +21 -0
- package/esm5/testing/public_api.js +2 -0
- package/esm5/testing/skyux-tabs-testing.js +5 -0
- package/esm5/testing/tabs/tab-fixture-tab.js +1 -0
- package/esm5/testing/tabs/tabset-fixture.js +168 -0
- package/fesm2015/skyux-tabs-testing.js +148 -0
- package/fesm2015/skyux-tabs-testing.js.map +1 -0
- package/fesm2015/skyux-tabs.js +1998 -0
- package/fesm2015/skyux-tabs.js.map +1 -0
- package/fesm5/skyux-tabs-testing.js +174 -0
- package/fesm5/skyux-tabs-testing.js.map +1 -0
- package/fesm5/skyux-tabs.js +2182 -0
- package/fesm5/skyux-tabs.js.map +1 -0
- package/modules/sectioned-form/sectioned-form-section.component.d.ts +39 -0
- package/modules/sectioned-form/sectioned-form.component.d.ts +30 -0
- package/modules/sectioned-form/sectioned-form.module.d.ts +2 -0
- package/modules/sectioned-form/sectioned-form.service.d.ts +21 -0
- package/modules/shared/tabs-resources.module.d.ts +2 -0
- package/modules/tabs/tab-button.component.d.ts +21 -0
- package/modules/tabs/tab-index.d.ts +1 -0
- package/modules/tabs/tab.component.d.ts +77 -0
- package/modules/tabs/tabs.module.d.ts +2 -0
- package/modules/tabs/tabset-active-tab-unregistered-args.d.ts +10 -0
- package/modules/tabs/tabset-adapter.service.d.ts +21 -0
- package/modules/tabs/tabset-buttons-display-mode.d.ts +1 -0
- package/modules/tabs/tabset-nav-button.component.d.ts +24 -0
- package/modules/tabs/tabset-permalink.service.d.ts +43 -0
- package/modules/tabs/tabset-style.d.ts +1 -0
- package/modules/tabs/tabset-tab-indexes-change.d.ts +7 -0
- package/modules/tabs/tabset.component.d.ts +142 -0
- package/modules/tabs/tabset.service.d.ts +51 -0
- package/modules/vertical-tabset/vertical-tab-media-query.service.d.ts +15 -0
- package/modules/vertical-tabset/vertical-tab.component.d.ts +86 -0
- package/modules/vertical-tabset/vertical-tabset-adapter.service.d.ts +10 -0
- package/modules/vertical-tabset/vertical-tabset-group.component.d.ts +33 -0
- package/modules/vertical-tabset/vertical-tabset.component.d.ts +45 -0
- package/modules/vertical-tabset/vertical-tabset.module.d.ts +2 -0
- package/modules/vertical-tabset/vertical-tabset.service.d.ts +41 -0
- package/package.json +41 -0
- package/plugin-resources/tabs-resources-provider.d.ts +5 -0
- package/public_api.d.ts +9 -0
- package/skyux-tabs.d.ts +20 -0
- package/skyux-tabs.metadata.json +1 -0
- package/src/assets/img/guidelines/tabs/tabs-anatomy.png +0 -0
- package/src/assets/img/guidelines/tabs/tabs-behavior-1.png +0 -0
- package/src/assets/img/guidelines/tabs/tabs-layout-1.png +0 -0
- package/src/assets/img/guidelines/tabs/tabs-layout-2.png +0 -0
- package/src/assets/img/guidelines/tabs/tabs-layout-3.png +0 -0
- package/src/assets/img/guidelines/tabs/tabs-layout-4.png +0 -0
- package/src/assets/img/guidelines/tabs/tabs-options-1.png +0 -0
- package/src/assets/img/guidelines/tabs/tabs-options-2.png +0 -0
- package/src/assets/img/guidelines/tabs/tabs-state-collapsed-closed.png +0 -0
- package/src/assets/img/guidelines/tabs/tabs-state-collapsed-open.png +0 -0
- package/src/assets/img/guidelines/tabs/tabs-state-hover.png +0 -0
- package/src/assets/img/guidelines/tabs/tabs-state-selected.png +0 -0
- package/src/assets/img/guidelines/tabs/tabs-state-unselected.png +0 -0
- package/src/assets/img/guidelines/tabs/tabs-usage-1.png +0 -0
- package/src/assets/img/guidelines/tabs/tabs-usage-2.png +0 -0
- package/src/assets/img/guidelines/tabs/tabs-usage-3.png +0 -0
- package/src/assets/img/guidelines/tabs/tabs-usage-4.png +0 -0
- package/src/assets/img/guidelines/tabs/tabs-usage-5.png +0 -0
- package/src/assets/img/guidelines/vertical-tabs/vertical-tabs-anatomy-1.png +0 -0
- package/src/assets/img/guidelines/vertical-tabs/vertical-tabs-anatomy-2.png +0 -0
- package/src/assets/img/guidelines/vertical-tabs/vertical-tabs-layout-1.png +0 -0
- package/src/assets/img/guidelines/vertical-tabs/vertical-tabs-state-hover.png +0 -0
- package/src/assets/img/guidelines/vertical-tabs/vertical-tabs-state-selected-group.png +0 -0
- package/src/assets/img/guidelines/vertical-tabs/vertical-tabs-state-selected.png +0 -0
- package/src/assets/img/guidelines/vertical-tabs/vertical-tabs-state-unselected-group.png +0 -0
- package/src/assets/img/guidelines/vertical-tabs/vertical-tabs-state-unselected.png +0 -0
- package/src/assets/img/guidelines/vertical-tabs/vertical-tabs-usage-1.png +0 -0
- package/src/assets/img/guidelines/vertical-tabs/vertical-tabs-usage-2.png +0 -0
- package/src/assets/img/guidelines/vertical-tabs/vertical-tabs-usage-3.png +0 -0
- package/src/assets/img/guidelines/vertical-tabs/vertical-tabs-usage-4.png +0 -0
- package/src/assets/img/guidelines/vertical-tabs/vertical-tabs-usage-5.png +0 -0
- package/src/assets/img/guidelines/vertical-tabs/vertical-tabs-usage-6.png +0 -0
- package/src/assets/img/guidelines/vertical-tabs/vertical-tabs-usage-7.png +0 -0
- package/src/assets/locales/resources_en_US.json +26 -0
- package/testing/package.json +13 -0
- package/testing/public_api.d.ts +2 -0
- package/testing/skyux-tabs-testing.d.ts +4 -0
- package/testing/skyux-tabs-testing.metadata.json +1 -0
- package/testing/tabs/tab-fixture-tab.d.ts +25 -0
- package/testing/tabs/tabset-fixture.d.ts +50 -0
|
@@ -0,0 +1,109 @@
|
|
|
1
|
+
import { __decorate } from "tslib";
|
|
2
|
+
import { Injectable } from '@angular/core';
|
|
3
|
+
import { BehaviorSubject, Subject } from 'rxjs';
|
|
4
|
+
/**
|
|
5
|
+
* @internal
|
|
6
|
+
*/
|
|
7
|
+
let SkyTabsetService = class SkyTabsetService {
|
|
8
|
+
constructor() {
|
|
9
|
+
this.currentActiveTabIndex = 0;
|
|
10
|
+
this._activeTabIndex = new BehaviorSubject(0);
|
|
11
|
+
this._activeTabUnregistered = new Subject();
|
|
12
|
+
this.tabs = [];
|
|
13
|
+
this.tabCounter = 0;
|
|
14
|
+
}
|
|
15
|
+
get activeTabUnregistered() {
|
|
16
|
+
return this._activeTabUnregistered.asObservable();
|
|
17
|
+
}
|
|
18
|
+
get activeTabIndex() {
|
|
19
|
+
return this._activeTabIndex.asObservable();
|
|
20
|
+
}
|
|
21
|
+
/**
|
|
22
|
+
* Sets the active tab by its unique `tabIndex` property.
|
|
23
|
+
*/
|
|
24
|
+
setActiveTabIndex(value, config = {
|
|
25
|
+
emitChange: true
|
|
26
|
+
}) {
|
|
27
|
+
if (value !== undefined &&
|
|
28
|
+
!this.tabIndexesEqual(value, this.currentActiveTabIndex)) {
|
|
29
|
+
this.currentActiveTabIndex = value;
|
|
30
|
+
if (config.emitChange) {
|
|
31
|
+
this._activeTabIndex.next(value);
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
/**
|
|
36
|
+
* Registers a tab component.
|
|
37
|
+
*/
|
|
38
|
+
registerTab(tabIndex) {
|
|
39
|
+
if (tabIndex === undefined) {
|
|
40
|
+
tabIndex = this.tabCounter;
|
|
41
|
+
this.tabCounter++;
|
|
42
|
+
}
|
|
43
|
+
this.tabs.push({ tabIndex });
|
|
44
|
+
return tabIndex;
|
|
45
|
+
}
|
|
46
|
+
updateTabIndex(currentTabIndex, newTabIndex) {
|
|
47
|
+
const found = this.tabs.find(tab => this.tabIndexesEqual(tab.tabIndex, currentTabIndex));
|
|
48
|
+
found.tabIndex = newTabIndex;
|
|
49
|
+
}
|
|
50
|
+
/**
|
|
51
|
+
* Unregisters a tab component.
|
|
52
|
+
*/
|
|
53
|
+
unregisterTab(tabIndex) {
|
|
54
|
+
const index = this.tabs.findIndex(tab => this.tabIndexesEqual(tab.tabIndex, tabIndex));
|
|
55
|
+
// Notify the tabset component when an active tab is unregistered.
|
|
56
|
+
if (this.isTabIndexActive(this.tabs[index].tabIndex)) {
|
|
57
|
+
this._activeTabUnregistered.next({
|
|
58
|
+
arrayIndex: index
|
|
59
|
+
});
|
|
60
|
+
}
|
|
61
|
+
this.tabs.splice(index, 1);
|
|
62
|
+
}
|
|
63
|
+
/**
|
|
64
|
+
* Unregisters all tab components at once.
|
|
65
|
+
*/
|
|
66
|
+
unregisterAll() {
|
|
67
|
+
this.tabs = [];
|
|
68
|
+
}
|
|
69
|
+
/**
|
|
70
|
+
* Compares two tab indexes and returns `true` if they are equal.
|
|
71
|
+
*/
|
|
72
|
+
tabIndexesEqual(tabIndex1, tabIndex2) {
|
|
73
|
+
return (tabIndex1 === tabIndex2 ||
|
|
74
|
+
+tabIndex1 === +tabIndex2);
|
|
75
|
+
}
|
|
76
|
+
/**
|
|
77
|
+
* Verifies if a provided tab index is registered.
|
|
78
|
+
*/
|
|
79
|
+
isValidTabIndex(tabIndex) {
|
|
80
|
+
return this.tabs.some(tab => this.tabIndexesEqual(tab.tabIndex, tabIndex));
|
|
81
|
+
}
|
|
82
|
+
/**
|
|
83
|
+
* Activates the first registered tab.
|
|
84
|
+
*/
|
|
85
|
+
activateFirstTab() {
|
|
86
|
+
const firstTabIndex = this.tabs[0] && this.tabs[0].tabIndex;
|
|
87
|
+
if (firstTabIndex !== undefined) {
|
|
88
|
+
this.setActiveTabIndex(firstTabIndex);
|
|
89
|
+
return firstTabIndex;
|
|
90
|
+
}
|
|
91
|
+
}
|
|
92
|
+
/**
|
|
93
|
+
* Activates the next registered tab, or the previous one based on a provided array index.
|
|
94
|
+
*/
|
|
95
|
+
activateNearestTab(arrayIndex) {
|
|
96
|
+
const newActiveTab = this.tabs[arrayIndex] || this.tabs[arrayIndex - 1];
|
|
97
|
+
if (newActiveTab) {
|
|
98
|
+
this.currentActiveTabIndex = newActiveTab.tabIndex;
|
|
99
|
+
}
|
|
100
|
+
}
|
|
101
|
+
isTabIndexActive(tabIndex) {
|
|
102
|
+
return this.tabIndexesEqual(tabIndex, this.currentActiveTabIndex);
|
|
103
|
+
}
|
|
104
|
+
};
|
|
105
|
+
SkyTabsetService = __decorate([
|
|
106
|
+
Injectable()
|
|
107
|
+
], SkyTabsetService);
|
|
108
|
+
export { SkyTabsetService };
|
|
109
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFic2V0LnNlcnZpY2UuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9Ac2t5dXgvdGFicy8iLCJzb3VyY2VzIjpbIm1vZHVsZXMvdGFicy90YWJzZXQuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUNMLFVBQVUsRUFDWCxNQUFNLGVBQWUsQ0FBQztBQUV2QixPQUFPLEVBQ0wsZUFBZSxFQUVmLE9BQU8sRUFDUixNQUFNLE1BQU0sQ0FBQztBQVVkOztHQUVHO0FBRUgsSUFBYSxnQkFBZ0IsR0FBN0IsTUFBYSxnQkFBZ0I7SUFBN0I7UUFVUywwQkFBcUIsR0FBZ0IsQ0FBQyxDQUFDO1FBRXRDLG9CQUFlLEdBQUcsSUFBSSxlQUFlLENBQWMsQ0FBQyxDQUFDLENBQUM7UUFFdEQsMkJBQXNCLEdBQUcsSUFBSSxPQUFPLEVBQXNDLENBQUM7UUFFM0UsU0FBSSxHQUVOLEVBQUUsQ0FBQztRQUVELGVBQVUsR0FBRyxDQUFDLENBQUM7SUFzR3pCLENBQUM7SUF4SEMsSUFBVyxxQkFBcUI7UUFDOUIsT0FBTyxJQUFJLENBQUMsc0JBQXNCLENBQUMsWUFBWSxFQUFFLENBQUM7SUFDcEQsQ0FBQztJQUVELElBQVcsY0FBYztRQUN2QixPQUFPLElBQUksQ0FBQyxlQUFlLENBQUMsWUFBWSxFQUFFLENBQUM7SUFDN0MsQ0FBQztJQWNEOztPQUVHO0lBQ0ksaUJBQWlCLENBQUMsS0FBa0IsRUFBRSxNQUFNLEdBQUc7UUFDcEQsVUFBVSxFQUFFLElBQUk7S0FDakI7UUFDQyxJQUNFLEtBQUssS0FBSyxTQUFTO1lBQ25CLENBQUMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxLQUFLLEVBQUUsSUFBSSxDQUFDLHFCQUFxQixDQUFDLEVBQ3hEO1lBQ0EsSUFBSSxDQUFDLHFCQUFxQixHQUFHLEtBQUssQ0FBQztZQUNuQyxJQUFJLE1BQU0sQ0FBQyxVQUFVLEVBQUU7Z0JBQ3JCLElBQUksQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFD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WSxnQkFBZ0I7SUFENUIsVUFBVSxFQUFFO0dBQ0EsZ0JBQWdCLENBMEg1QjtTQTFIWSxnQkFBZ0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBJbmplY3RhYmxlXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQge1xuICBCZWhhdmlvclN1YmplY3QsXG4gIE9ic2VydmFibGUsXG4gIFN1YmplY3Rcbn0gZnJvbSAncnhqcyc7XG5cbmltcG9ydCB7XG4gIFNreVRhYkluZGV4XG59IGZyb20gJy4vdGFiLWluZGV4JztcblxuaW1wb3J0IHtcbiAgU2t5VGFic2V0QWN0aXZlVGFiVW5yZWdpc3RlcmVkQXJnc1xufSBmcm9tICcuL3RhYnNldC1hY3RpdmUtdGFiLXVucmVnaXN0ZXJlZC1hcmdzJztcblxuLyoqXG4gKiBAaW50ZXJuYWxcbiAqL1xuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIFNreVRhYnNldFNlcnZpY2Uge1xuXG4gIHB1YmxpYyBnZXQgYWN0aXZlVGFiVW5yZWdpc3RlcmVkKCk6IE9ic2VydmFibGU8U2t5VGFic2V0QWN0aXZlVGFiVW5yZWdpc3RlcmVkQXJncz4ge1xuICAgIHJldHVybiB0aGlzLl9hY3RpdmVUYWJVbnJlZ2lzdGVyZWQuYXNPYnNlcnZhYmxlKCk7XG4gIH1cblxuICBwdWJsaWMgZ2V0IGFjdGl2ZVRhYkluZGV4KCk6IE9ic2VydmFibGU8U2t5VGFiSW5kZXg+IHtcbiAgICByZXR1cm4gdGhpcy5fYWN0aXZlVGFiSW5kZXguYXNPYnNlcnZhYmxlKCk7XG4gIH1cblxuICBwdWJsaWMgY3VycmVudEFjdGl2ZVRhYkluZGV4OiBTa3lUYWJJbmRleCA9IDA7XG5cbiAgcHJpdmF0ZSBfYWN0aXZlVGFiSW5kZXggPSBuZXcgQmVoYXZpb3JTdWJqZWN0PFNreVRhYkluZGV4PigwKTtcblxuICBwcml2YXRlIF9hY3RpdmVUYWJVbnJlZ2lzdGVyZWQgPSBuZXcgU3ViamVjdDxTa3lUYWJzZXRBY3RpdmVUYWJVbnJlZ2lzdGVyZWRBcmdzPigpO1xuXG4gIHByaXZhdGUgdGFiczoge1xuICAgIHRhYkluZGV4OiBTa3lUYWJJbmRleDtcbiAgfVtdID0gW107XG5cbiAgcHJpdmF0ZSB0YWJDb3VudGVyID0gMDtcblxuICAvKipcbiAgICogU2V0cyB0aGUgYWN0aXZlIHRhYiBieSBpdHMgdW5pcXVlIGB0YWJJbmRleGAgcHJvcGVydHkuXG4gICAqL1xuICBwdWJsaWMgc2V0QWN0aXZlVGFiSW5kZXgodmFsdWU6IFNreVRhYkluZGV4LCBjb25maWcgPSB7XG4gICAgZW1pdENoYW5nZTogdHJ1ZVxuICB9KTogdm9pZCB7XG4gICAgaWYgKFxuICAgICAgdmFsdWUgIT09IHVuZGVmaW5lZCAmJlxuICAgICAgIXRoaXMudGFiSW5kZXhlc0VxdWFsKHZhbHVlLCB0aGlzLmN1cnJlbnRBY3RpdmVUYWJJbmRleClcbiAgICApIHtcbiAgICAgIHRoaXMuY3VycmVudEFjdGl2ZVRhYkluZGV4ID0gdmFsdWU7XG4gICAgICBpZiAoY29uZmlnLmVtaXRDaGFuZ2UpIHtcbiAgICAgICAgdGhpcy5fYWN0aXZlVGFiSW5kZXgubmV4dCh2YWx1ZSk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIFJlZ2lzdGVycyBhIHRhYiBjb21wb25lbnQuXG4gICAqL1xuICBwdWJsaWMgcmVnaXN0ZXJUYWIodGFiSW5kZXg/OiBTa3lUYWJJbmRleCk6IFNreVRhYkluZGV4IHtcbiAgICBpZiAodGFiSW5kZXggPT09IHVuZGVmaW5lZCkge1xuICAgICAgdGFiSW5kZXggPSB0aGlzLnRhYkNvdW50ZXI7XG4gICAgICB0aGlzLnRhYkNvdW50ZXIrKztcbiAgICB9XG5cbiAgICB0aGlzLnRhYnMucHVzaCh7IHRhYkluZGV4IH0pO1xuXG4gICAgcmV0dXJuIHRhYkluZGV4O1xuICB9XG5cbiAgcHVibGljIHVwZGF0ZVRhYkluZGV4KGN1cnJlbnRUYWJJbmRleDogU2t5VGFiSW5kZXgsIG5ld1RhYkluZGV4OiBTa3lUYWJJbmRleCk6IHZvaWQge1xuICAgIGNvbnN0IGZvdW5kID0gdGhpcy50YWJzLmZpbmQodGFiID0+IHRoaXMudGFiSW5kZXhlc0VxdWFsKHRhYi50YWJJbmRleCwgY3VycmVudFRhYkluZGV4KSk7XG4gICAgZm91bmQudGFiSW5kZXggPSBuZXdUYWJJbmRleDtcbiAgfVxuXG4gIC8qKlxuICAgKiBVbnJlZ2lzdGVycyBhIHRhYiBjb21wb25lbnQuXG4gICAqL1xuICBwdWJsaWMgdW5yZWdpc3RlclRhYih0YWJJbmRleDogU2t5VGFiSW5kZXgpOiB2b2lkIHtcbiAgICBjb25zdCBpbmRleCA9IHRoaXMudGFicy5maW5kSW5kZXgodGFiID0+IHRoaXMudGFiSW5kZXhlc0VxdWFsKHRhYi50YWJJbmRleCwgdGFiSW5kZXgpKTtcblxuICAgIC8vIE5vdGlmeSB0aGUgdGFic2V0IGNvbXBvbmVudCB3aGVuIGFuIGFjdGl2ZSB0YWIgaXMgdW5yZWdpc3RlcmVkLlxuICAgIGlmICh0aGlzLmlzVGFiSW5kZXhBY3RpdmUodGhpcy50YWJzW2luZGV4XS50YWJJbmRleCkpIHtcbiAgICAgIHRoaXMuX2FjdGl2ZVRhYlVucmVnaXN0ZXJlZC5uZXh0KHtcbiAgICAgICAgYXJyYXlJbmRleDogaW5kZXhcbiAgICAgIH0pO1xuICAgIH1cblxuICAgIHRoaXMudGFicy5zcGxpY2UoaW5kZXgsIDEpO1xuICB9XG5cbiAgLyoqXG4gICAqIFVucmVnaXN0ZXJzIGFsbCB0YWIgY29tcG9uZW50cyBhdCBvbmNlLlxuICAgKi9cbiAgcHVibGljIHVucmVnaXN0ZXJBbGwoKTogdm9pZCB7XG4gICAgdGhpcy50YWJzID0gW107XG4gIH1cblxuICAvKipcbiAgICogQ29tcGFyZXMgdHdvIHRhYiBpbmRleGVzIGFuZCByZXR1cm5zIGB0cnVlYCBpZiB0aGV5IGFyZSBlcXVhbC5cbiAgICovXG4gIHB1YmxpYyB0YWJJbmRleGVzRXF1YWwodGFiSW5kZXgxOiBTa3lUYWJJbmRleCwgdGFiSW5kZXgyOiBTa3lUYWJJbmRleCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiAoXG4gICAgICB0YWJJbmRleDEgPT09IHRhYkluZGV4MiB8fFxuICAgICAgK3RhYkluZGV4MSA9PT0gK3RhYkluZGV4MlxuICAgICk7XG4gIH1cblxuICAvKipcbiAgICogVmVyaWZpZXMgaWYgYSBwcm92aWRlZCB0YWIgaW5kZXggaXMgcmVnaXN0ZXJlZC5cbiAgICovXG4gIHB1YmxpYyBpc1ZhbGlkVGFiSW5kZXgodGFiSW5kZXg6IFNreVRhYkluZGV4KTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMudGFicy5zb21lKHRhYiA9PiB0aGlzLnRhYkluZGV4ZXNFcXVhbCh0YWIudGFiSW5kZXgsIHRhYkluZGV4KSk7XG4gIH1cblxuICAvKipcbiAgICogQWN0aXZhdGVzIHRoZSBmaXJzdCByZWdpc3RlcmVkIHRhYi5cbiAgICovXG4gIHB1YmxpYyBhY3RpdmF0ZUZpcnN0VGFiKCk6IFNreVRhYkluZGV4IHwgdW5kZWZpbmVkIHtcbiAgICBjb25zdCBmaXJzdFRhYkluZGV4ID0gdGhpcy50YWJzWzBdICYmIHRoaXMudGFic1swXS50YWJJbmRleDtcbiAgICBpZiAoZmlyc3RUYWJJbmRleCAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICB0aGlzLnNldEFjdGl2ZVRhYkluZGV4KGZpcnN0VGFiSW5kZXgpO1xuICAgICAgcmV0dXJuIGZpcnN0VGFiSW5kZXg7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIEFjdGl2YXRlcyB0aGUgbmV4dCByZWdpc3RlcmVkIHRhYiwgb3IgdGhlIHByZXZpb3VzIG9uZSBiYXNlZCBvbiBhIHByb3ZpZGVkIGFycmF5IGluZGV4LlxuICAgKi9cbiAgcHVibGljIGFjdGl2YXRlTmVhcmVzdFRhYihhcnJheUluZGV4OiBudW1iZXIpOiB2b2lkIHtcbiAgICBjb25zdCBuZXdBY3RpdmVUYWIgPSB0aGlzLnRhYnNbYXJyYXlJbmRleF0gfHwgdGhpcy50YWJzW2FycmF5SW5kZXggLSAxXTtcbiAgICBpZiAobmV3QWN0aXZlVGFiKSB7XG4gICAgICB0aGlzLmN1cnJlbnRBY3RpdmVUYWJJbmRleCA9IG5ld0FjdGl2ZVRhYi50YWJJbmRleDtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGlzVGFiSW5kZXhBY3RpdmUodGFiSW5kZXg6IFNreVRhYkluZGV4KTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMudGFiSW5kZXhlc0VxdWFsKHRhYkluZGV4LCB0aGlzLmN1cnJlbnRBY3RpdmVUYWJJbmRleCk7XG4gIH1cbn1cbiJdfQ==
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
import { __decorate } from "tslib";
|
|
2
|
+
import { Injectable } from '@angular/core';
|
|
3
|
+
import { SkyMediaBreakpoints } from '@skyux/core';
|
|
4
|
+
import { BehaviorSubject } from 'rxjs';
|
|
5
|
+
/**
|
|
6
|
+
* @internal
|
|
7
|
+
*/
|
|
8
|
+
let SkyVerticalTabMediaQueryService = class SkyVerticalTabMediaQueryService {
|
|
9
|
+
constructor() {
|
|
10
|
+
this.currentSubject = new BehaviorSubject(this.current);
|
|
11
|
+
this._current = SkyMediaBreakpoints.xs;
|
|
12
|
+
this.currentSubject.next(this._current);
|
|
13
|
+
}
|
|
14
|
+
get current() {
|
|
15
|
+
return this._current;
|
|
16
|
+
}
|
|
17
|
+
subscribe(listener) {
|
|
18
|
+
return this.currentSubject.subscribe({
|
|
19
|
+
next: (breakpoints) => {
|
|
20
|
+
listener(breakpoints);
|
|
21
|
+
}
|
|
22
|
+
});
|
|
23
|
+
}
|
|
24
|
+
setBreakpointForWidth(width) {
|
|
25
|
+
let breakpoint;
|
|
26
|
+
if (this.isWidthWithinBreakpiont(width, SkyMediaBreakpoints.xs)) {
|
|
27
|
+
breakpoint = SkyMediaBreakpoints.xs;
|
|
28
|
+
}
|
|
29
|
+
else if (this.isWidthWithinBreakpiont(width, SkyMediaBreakpoints.sm)) {
|
|
30
|
+
breakpoint = SkyMediaBreakpoints.sm;
|
|
31
|
+
}
|
|
32
|
+
else if (this.isWidthWithinBreakpiont(width, SkyMediaBreakpoints.md)) {
|
|
33
|
+
breakpoint = SkyMediaBreakpoints.md;
|
|
34
|
+
}
|
|
35
|
+
else {
|
|
36
|
+
breakpoint = SkyMediaBreakpoints.lg;
|
|
37
|
+
}
|
|
38
|
+
this._current = breakpoint;
|
|
39
|
+
this.currentSubject.next(this._current);
|
|
40
|
+
}
|
|
41
|
+
isWidthWithinBreakpiont(width, breakpoint) {
|
|
42
|
+
const xsBreakpointMaxPixels = 767;
|
|
43
|
+
const smBreakpointMinPixels = 768;
|
|
44
|
+
const smBreakpointMaxPixels = 991;
|
|
45
|
+
const mdBreakpointMinPixels = 992;
|
|
46
|
+
const mdBreakpointMaxPixels = 1199;
|
|
47
|
+
const lgBreakpointMinPixels = 1200;
|
|
48
|
+
switch (breakpoint) {
|
|
49
|
+
case SkyMediaBreakpoints.xs: {
|
|
50
|
+
return (width <= xsBreakpointMaxPixels);
|
|
51
|
+
}
|
|
52
|
+
case SkyMediaBreakpoints.sm: {
|
|
53
|
+
return (width >= smBreakpointMinPixels && width <= smBreakpointMaxPixels);
|
|
54
|
+
}
|
|
55
|
+
case SkyMediaBreakpoints.md: {
|
|
56
|
+
return (width >= mdBreakpointMinPixels && width <= mdBreakpointMaxPixels);
|
|
57
|
+
}
|
|
58
|
+
default: {
|
|
59
|
+
return (width >= lgBreakpointMinPixels);
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
destroy() {
|
|
64
|
+
this.currentSubject.complete();
|
|
65
|
+
}
|
|
66
|
+
};
|
|
67
|
+
SkyVerticalTabMediaQueryService = __decorate([
|
|
68
|
+
Injectable()
|
|
69
|
+
], SkyVerticalTabMediaQueryService);
|
|
70
|
+
export { SkyVerticalTabMediaQueryService };
|
|
71
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmVydGljYWwtdGFiLW1lZGlhLXF1ZXJ5LnNlcnZpY2UuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9Ac2t5dXgvdGFicy8iLCJzb3VyY2VzIjpbIm1vZHVsZXMvdmVydGljYWwtdGFic2V0L3ZlcnRpY2FsLXRhYi1tZWRpYS1xdWVyeS5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQ0wsVUFBVSxFQUNYLE1BQU0sZUFBZSxDQUFDO0FBRXZCLE9BQU8sRUFDTCxtQkFBbUIsRUFFcEIsTUFBTSxhQUFhLENBQUM7QUFFckIsT0FBTyxFQUNMLGVBQWUsRUFFaEIsTUFBTSxNQUFNLENBQUM7QUFFZDs7R0FFRztBQUVILElBQWEsK0JBQStCLEdBQTVDLE1BQWEsK0JBQStCO0lBVTFDO1FBSlEsbUJBQWMsR0FBRyxJQUFJLGVBQWUsQ0FBc0IsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBRXhFLGFBQVEsR0FBRyxtQkFBbUIsQ0FBQyxFQUFFLENBQUM7UUFHeEMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBQzFDLENBQUM7SUFWRCxJQUFXLE9BQU87UUFDaEIsT0FBTyxJQUFJLENBQUMsUUFBUSxDQUFDO0lBQ3ZCLENBQUM7SUFVTSxTQUFTLENBQUMsUUFBK0I7UUFDOUMsT0FBTyxJQUFJLENBQUMsY0FBYyxDQUFDLFNBQVMsQ0FBQztZQUNuQyxJQUFJLEVBQUUsQ0FBQyxXQUFnQyxFQUFFLEVBQUU7Z0JBQ3pDLFFBQVEsQ0FBQyxXQUFXLENBQUMsQ0FBQztZQUN4QixDQUFDO1NBQ0YsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVNLHFCQUFxQixDQUFDLEtBQWE7UUFDeEMsSUFBSSxVQUErQixDQUFDO1FBRXBDLElBQUksSUFBSSxDQUFDLHVCQUF1QixDQUFDLEtBQUssRUFBRSxtQkFBbUIsQ0FBQyxFQUFFLENBQUMsRUFBRTtZQUMvRCxVQUFVLEdBQUcsbUJBQW1CLENBQUMsRUFBRSxDQUFDO1NBQ3JDO2FBQU0sSUFBSSxJQUFJLENBQUMsdUJBQXVCLENBQUMsS0FBSyxFQUFFLG1CQUFtQixDQUFDLEVBQUUsQ0FBQyxFQUFFO1lBQ3RFLFVBQVUsR0FBRyxtQkFBbUIsQ0FBQyxFQUFFLENBQUM7U0FDckM7YUFBTSxJQUFJLElBQUksQ0FBQyx1QkFBdUIsQ0FBQyxLQUFLLEVBQUUsbUJBQW1CLENBQUMsRUFBRSxDQUFDLEVBQUU7WUFDdEUsVUFBVSxHQUFHLG1CQUFtQixDQUFDLEVBQUUsQ0FBQztTQUNyQzthQUFNO1lBQ0wsVUFBVSxHQUFHLG1CQUFtQixDQUFDLEVBQUUsQ0FBQztTQUNyQztRQUVELElBQUksQ0FBQyxRQUFRLEdBQUcsVUFBVSxDQUFDO1FBQzNCLElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUMxQyxDQUFDO0lBRU0sdUJBQXVCLENBQUMsS0FBYSxFQUFFLFVBQStCO1FBQzNFLE1BQU0scUJBQXFCLEdBQUcsR0FBRyxDQUFDO1FBQ2xDLE1BQU0scUJBQXFCLEdBQUcsR0FBRyxDQUFDO1FBQ2xDLE1BQU0scUJBQXFCLEdBQUcsR0FBRyxDQUFDO1FBQ2xDLE1BQU0scUJBQXFCLEdBQUcsR0FBRyxDQUFDO1FBQ2xDLE1BQU0scUJBQXFCLEdBQUcsSUFBSSxDQUFDO1FBQ25DLE1BQU0scUJBQXFCLEdBQUcsSUFBSSxDQUFDO1FBRW5DLFFBQVEsVUFBVSxFQUFFO1lBQ2xCLEtBQUssbUJBQW1CLENBQUMsRUFBRSxDQUFDLENBQUM7Z0JBQzNCLE9BQU8sQ0FBQyxLQUFLLElBQUkscUJBQXFCLENBQUMsQ0FBQzthQUN6QztZQUNELEtBQUssbUJBQW1CLENBQUMsRUFBRSxDQUFDLENBQUM7Z0JBQzNCLE9BQU8sQ0FBQyxLQUFLLElBQUkscUJBQXFCLElBQUksS0FBSyxJQUFJLHFCQUFxQixDQUFDLENBQUM7YUFDM0U7WUFDRCxLQUFLLG1CQUFtQixDQUFDLEVBQUUsQ0FBQyxDQUFDO2dCQUMzQixPQUFPLENBQUMsS0FBSyxJQUFJLHFCQUFxQixJQUFJLEtBQUssSUFBSSxxQkFBcUIsQ0FBQyxDQUFDO2FBQzNFO1lBQ0QsT0FBTyxDQUFDLENBQUM7Z0JBQ1AsT0FBTyxDQUFDLEtBQUssSUFBSSxxQkFBcUIsQ0FBQyxDQUFDO2FBQ3pDO1NBQ0Y7SUFDSCxDQUFDO0lBRU0sT0FBTztRQUNaLElBQUksQ0FBQyxjQUFjLENBQUMsUUFBUSxFQUFFLENBQUM7SUFDakMsQ0FBQztDQUNGLENBQUE7QUFsRVksK0JBQStCO0lBRDNDLFVBQVUsRUFBRTtHQUNBLCtCQUErQixDQWtFM0M7U0FsRVksK0JBQStCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgSW5qZWN0YWJsZVxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHtcbiAgU2t5TWVkaWFCcmVha3BvaW50cyxcbiAgU2t5TWVkaWFRdWVyeUxpc3RlbmVyXG59IGZyb20gJ0Bza3l1eC9jb3JlJztcblxuaW1wb3J0IHtcbiAgQmVoYXZpb3JTdWJqZWN0LFxuICBTdWJzY3JpcHRpb25cbn0gZnJvbSAncnhqcyc7XG5cbi8qKlxuICogQGludGVybmFsXG4gKi9cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBTa3lWZXJ0aWNhbFRhYk1lZGlhUXVlcnlTZXJ2aWNlIHtcblxuICBwdWJsaWMgZ2V0IGN1cnJlbnQoKTogU2t5TWVkaWFCcmVha3BvaW50cyB7XG4gICAgcmV0dXJuIHRoaXMuX2N1cnJlbnQ7XG4gIH1cblxuICBwcml2YXRlIGN1cnJlbnRTdWJqZWN0ID0gbmV3IEJlaGF2aW9yU3ViamVjdDxTa3lNZWRpYUJyZWFrcG9pbnRzPih0aGlzLmN1cnJlbnQpO1xuXG4gIHByaXZhdGUgX2N1cnJlbnQgPSBTa3lNZWRpYUJyZWFrcG9pbnRzLnhzO1xuXG4gIGNvbnN0cnVjdG9yKCkge1xuICAgIHRoaXMuY3VycmVudFN1YmplY3QubmV4dCh0aGlzLl9jdXJyZW50KTtcbiAgfVxuXG4gIHB1YmxpYyBzdWJzY3JpYmUobGlzdGVuZXI6IFNreU1lZGlhUXVlcnlMaXN0ZW5lcik6IFN1YnNjcmlwdGlvbiB7XG4gICAgcmV0dXJuIHRoaXMuY3VycmVudFN1YmplY3Quc3Vic2NyaWJlKHtcbiAgICAgIG5leHQ6IChicmVha3BvaW50czogU2t5TWVkaWFCcmVha3BvaW50cykgPT4ge1xuICAgICAgICBsaXN0ZW5lcihicmVha3BvaW50cyk7XG4gICAgICB9XG4gICAgfSk7XG4gIH1cblxuICBwdWJsaWMgc2V0QnJlYWtwb2ludEZvcldpZHRoKHdpZHRoOiBudW1iZXIpOiB2b2lkIHtcbiAgICBsZXQgYnJlYWtwb2ludDogU2t5TWVkaWFCcmVha3BvaW50cztcblxuICAgIGlmICh0aGlzLmlzV2lkdGhXaXRoaW5CcmVha3Bpb250KHdpZHRoLCBTa3lNZWRpYUJyZWFrcG9pbnRzLnhzKSkge1xuICAgICAgYnJlYWtwb2ludCA9IFNreU1lZGlhQnJlYWtwb2ludHMueHM7XG4gICAgfSBlbHNlIGlmICh0aGlzLmlzV2lkdGhXaXRoaW5CcmVha3Bpb250KHdpZHRoLCBTa3lNZWRpYUJyZWFrcG9pbnRzLnNtKSkge1xuICAgICAgYnJlYWtwb2ludCA9IFNreU1lZGlhQnJlYWtwb2ludHMuc207XG4gICAgfSBlbHNlIGlmICh0aGlzLmlzV2lkdGhXaXRoaW5CcmVha3Bpb250KHdpZHRoLCBTa3lNZWRpYUJyZWFrcG9pbnRzLm1kKSkge1xuICAgICAgYnJlYWtwb2ludCA9IFNreU1lZGlhQnJlYWtwb2ludHMubWQ7XG4gICAgfSBlbHNlIHtcbiAgICAgIGJyZWFrcG9pbnQgPSBTa3lNZWRpYUJyZWFrcG9pbnRzLmxnO1xuICAgIH1cblxuICAgIHRoaXMuX2N1cnJlbnQgPSBicmVha3BvaW50O1xuICAgIHRoaXMuY3VycmVudFN1YmplY3QubmV4dCh0aGlzLl9jdXJyZW50KTtcbiAgfVxuXG4gIHB1YmxpYyBpc1dpZHRoV2l0aGluQnJlYWtwaW9udCh3aWR0aDogbnVtYmVyLCBicmVha3BvaW50OiBTa3lNZWRpYUJyZWFrcG9pbnRzKTogYm9vbGVhbiB7XG4gICAgY29uc3QgeHNCcmVha3BvaW50TWF4UGl4ZWxzID0gNzY3O1xuICAgIGNvbnN0IHNtQnJlYWtwb2ludE1pblBpeGVscyA9IDc2ODtcbiAgICBjb25zdCBzbUJyZWFrcG9pbnRNYXhQaXhlbHMgPSA5OTE7XG4gICAgY29uc3QgbWRCcmVha3BvaW50TWluUGl4ZWxzID0gOTkyO1xuICAgIGNvbnN0IG1kQnJlYWtwb2ludE1heFBpeGVscyA9IDExOTk7XG4gICAgY29uc3QgbGdCcmVha3BvaW50TWluUGl4ZWxzID0gMTIwMDtcblxuICAgIHN3aXRjaCAoYnJlYWtwb2ludCkge1xuICAgICAgY2FzZSBTa3lNZWRpYUJyZWFrcG9pbnRzLnhzOiB7XG4gICAgICAgIHJldHVybiAod2lkdGggPD0geHNCcmVha3BvaW50TWF4UGl4ZWxzKTtcbiAgICAgIH1cbiAgICAgIGNhc2UgU2t5TWVkaWFCcmVha3BvaW50cy5zbToge1xuICAgICAgICByZXR1cm4gKHdpZHRoID49IHNtQnJlYWtwb2ludE1pblBpeGVscyAmJiB3aWR0aCA8PSBzbUJyZWFrcG9pbnRNYXhQaXhlbHMpO1xuICAgICAgfVxuICAgICAgY2FzZSBTa3lNZWRpYUJyZWFrcG9pbnRzLm1kOiB7XG4gICAgICAgIHJldHVybiAod2lkdGggPj0gbWRCcmVha3BvaW50TWluUGl4ZWxzICYmIHdpZHRoIDw9IG1kQnJlYWtwb2ludE1heFBpeGVscyk7XG4gICAgICB9XG4gICAgICBkZWZhdWx0OiB7XG4gICAgICAgIHJldHVybiAod2lkdGggPj0gbGdCcmVha3BvaW50TWluUGl4ZWxzKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBwdWJsaWMgZGVzdHJveSgpOiB2b2lkIHtcbiAgICB0aGlzLmN1cnJlbnRTdWJqZWN0LmNvbXBsZXRlKCk7XG4gIH1cbn1cbiJdfQ==
|
|
@@ -0,0 +1,195 @@
|
|
|
1
|
+
import { __decorate } from "tslib";
|
|
2
|
+
import { ChangeDetectionStrategy, ChangeDetectorRef, Component, ElementRef, HostListener, Input, OnDestroy, OnInit, ViewChild } from '@angular/core';
|
|
3
|
+
import { SkyMediaQueryService } from '@skyux/core';
|
|
4
|
+
import { Subject } from 'rxjs';
|
|
5
|
+
import { takeUntil } from 'rxjs/operators';
|
|
6
|
+
import { SkyVerticalTabMediaQueryService } from './vertical-tab-media-query.service';
|
|
7
|
+
import { SkyVerticalTabsetService } from './vertical-tabset.service';
|
|
8
|
+
import { SkyVerticalTabsetAdapterService } from './vertical-tabset-adapter.service';
|
|
9
|
+
let SkyVerticalTabComponent = class SkyVerticalTabComponent {
|
|
10
|
+
constructor(adapterService, changeRef, tabsetService, verticalTabMediaQueryService) {
|
|
11
|
+
this.adapterService = adapterService;
|
|
12
|
+
this.changeRef = changeRef;
|
|
13
|
+
this.tabsetService = tabsetService;
|
|
14
|
+
this.verticalTabMediaQueryService = verticalTabMediaQueryService;
|
|
15
|
+
/**
|
|
16
|
+
* Indicates whether the tab is active when the tabset loads.
|
|
17
|
+
*/
|
|
18
|
+
this.active = false;
|
|
19
|
+
/**
|
|
20
|
+
* Indicates whether to disable the tab.
|
|
21
|
+
*/
|
|
22
|
+
this.disabled = false;
|
|
23
|
+
/**
|
|
24
|
+
* Indicates whether to indicate that the tab has an error.
|
|
25
|
+
* @internal This is used for sectioned forms and is not currently a supported design for pure vertical tabs.
|
|
26
|
+
*/
|
|
27
|
+
this.errorIndicator = false;
|
|
28
|
+
this.isMobile = false;
|
|
29
|
+
this._contentRendered = false;
|
|
30
|
+
this._mobileSubscription = new Subject();
|
|
31
|
+
this._ngUnsubscribe = new Subject();
|
|
32
|
+
this._showTabRightArrow = false;
|
|
33
|
+
}
|
|
34
|
+
/**
|
|
35
|
+
* Specifies the HTML element ID (without the leading `#`) of the element that contains
|
|
36
|
+
* the content that the vertical tab displays, which corresponds to the `tabId`. This property
|
|
37
|
+
* [supports accessibility rules for disclosures](https://www.w3.org/TR/wai-aria-practices-1.1/#disclosure).
|
|
38
|
+
*/
|
|
39
|
+
get ariaControls() {
|
|
40
|
+
return this.isMobile ? undefined : this._ariaControls;
|
|
41
|
+
}
|
|
42
|
+
set ariaControls(value) {
|
|
43
|
+
this._ariaControls = value;
|
|
44
|
+
}
|
|
45
|
+
/**
|
|
46
|
+
* Specifies an ARIA role for the vertical tab
|
|
47
|
+
* [to support accessibility](https://developer.blackbaud.com/skyux/learn/accessibility)
|
|
48
|
+
* by indicating how the tab functions and what it controls. For information about how
|
|
49
|
+
* an ARIA role indicates what an item represents on a web page, see the
|
|
50
|
+
* [WAI-ARIA roles model](https://www.w3.org/WAI/PF/aria/roles).
|
|
51
|
+
* @default "tab"
|
|
52
|
+
*/
|
|
53
|
+
get ariaRole() {
|
|
54
|
+
if (this.isMobile) {
|
|
55
|
+
return undefined;
|
|
56
|
+
}
|
|
57
|
+
return this._ariaRole || 'tab';
|
|
58
|
+
}
|
|
59
|
+
set ariaRole(value) {
|
|
60
|
+
this._ariaRole = value;
|
|
61
|
+
}
|
|
62
|
+
/**
|
|
63
|
+
* Indicates whether to display a chevron-right icon in the righthand side of the tab.
|
|
64
|
+
* @internal
|
|
65
|
+
*/
|
|
66
|
+
get showTabRightArrow() {
|
|
67
|
+
return this._showTabRightArrow && this.tabsetService.isMobile();
|
|
68
|
+
}
|
|
69
|
+
set showTabRightArrow(value) {
|
|
70
|
+
this._showTabRightArrow = value;
|
|
71
|
+
}
|
|
72
|
+
set contentRendered(value) {
|
|
73
|
+
this._contentRendered = value;
|
|
74
|
+
if (this._contentRendered) {
|
|
75
|
+
// NOTE: Wrapped in a setTimeout here to ensure that everything has completed rendering.
|
|
76
|
+
setTimeout(() => {
|
|
77
|
+
this.updateBreakpointAndResponsiveClass(this.adapterService.getWidth(this.tabContent));
|
|
78
|
+
});
|
|
79
|
+
}
|
|
80
|
+
}
|
|
81
|
+
get contentRendered() {
|
|
82
|
+
return this._contentRendered;
|
|
83
|
+
}
|
|
84
|
+
ngOnInit() {
|
|
85
|
+
this.isMobile = this.tabsetService.isMobile();
|
|
86
|
+
this.changeRef.markForCheck();
|
|
87
|
+
this.tabsetService.switchingMobile
|
|
88
|
+
.subscribe((mobile) => {
|
|
89
|
+
this.isMobile = mobile;
|
|
90
|
+
this.changeRef.markForCheck();
|
|
91
|
+
});
|
|
92
|
+
// Update the breakpoint and responsive class here just as a sanity check since we can not
|
|
93
|
+
// watch for element resizing.
|
|
94
|
+
this.tabsetService.indexChanged
|
|
95
|
+
.pipe(takeUntil(this._ngUnsubscribe))
|
|
96
|
+
.subscribe((index) => {
|
|
97
|
+
if (this.index === index && this.contentRendered) {
|
|
98
|
+
this.updateBreakpointAndResponsiveClass(this.adapterService.getWidth(this.tabContent));
|
|
99
|
+
}
|
|
100
|
+
});
|
|
101
|
+
this.tabsetService.addTab(this);
|
|
102
|
+
}
|
|
103
|
+
ngOnDestroy() {
|
|
104
|
+
this._mobileSubscription.unsubscribe();
|
|
105
|
+
this._ngUnsubscribe.next();
|
|
106
|
+
this._ngUnsubscribe.complete();
|
|
107
|
+
this.tabsetService.destroyTab(this);
|
|
108
|
+
}
|
|
109
|
+
tabIndex() {
|
|
110
|
+
if (!this.disabled) {
|
|
111
|
+
return 0;
|
|
112
|
+
}
|
|
113
|
+
else {
|
|
114
|
+
return -1;
|
|
115
|
+
}
|
|
116
|
+
}
|
|
117
|
+
activateTab() {
|
|
118
|
+
if (!this.disabled) {
|
|
119
|
+
this.active = true;
|
|
120
|
+
this.tabsetService.activateTab(this);
|
|
121
|
+
this.changeRef.markForCheck();
|
|
122
|
+
}
|
|
123
|
+
}
|
|
124
|
+
onWindowResize() {
|
|
125
|
+
this.updateBreakpointAndResponsiveClass(this.adapterService.getWidth(this.tabContent));
|
|
126
|
+
}
|
|
127
|
+
tabDeactivated() {
|
|
128
|
+
this.changeRef.markForCheck();
|
|
129
|
+
}
|
|
130
|
+
updateBreakpointAndResponsiveClass(width) {
|
|
131
|
+
this.verticalTabMediaQueryService.setBreakpointForWidth(width);
|
|
132
|
+
const newBreakpiont = this.verticalTabMediaQueryService.current;
|
|
133
|
+
this.adapterService.setResponsiveClass(this.tabContent, newBreakpiont);
|
|
134
|
+
this.changeRef.markForCheck();
|
|
135
|
+
}
|
|
136
|
+
};
|
|
137
|
+
SkyVerticalTabComponent.ctorParameters = () => [
|
|
138
|
+
{ type: SkyVerticalTabsetAdapterService },
|
|
139
|
+
{ type: ChangeDetectorRef },
|
|
140
|
+
{ type: SkyVerticalTabsetService },
|
|
141
|
+
{ type: SkyVerticalTabMediaQueryService }
|
|
142
|
+
];
|
|
143
|
+
__decorate([
|
|
144
|
+
Input()
|
|
145
|
+
], SkyVerticalTabComponent.prototype, "active", void 0);
|
|
146
|
+
__decorate([
|
|
147
|
+
Input()
|
|
148
|
+
], SkyVerticalTabComponent.prototype, "ariaControls", null);
|
|
149
|
+
__decorate([
|
|
150
|
+
Input()
|
|
151
|
+
], SkyVerticalTabComponent.prototype, "ariaInvalid", void 0);
|
|
152
|
+
__decorate([
|
|
153
|
+
Input()
|
|
154
|
+
], SkyVerticalTabComponent.prototype, "ariaRequired", void 0);
|
|
155
|
+
__decorate([
|
|
156
|
+
Input()
|
|
157
|
+
], SkyVerticalTabComponent.prototype, "ariaRole", null);
|
|
158
|
+
__decorate([
|
|
159
|
+
Input()
|
|
160
|
+
], SkyVerticalTabComponent.prototype, "disabled", void 0);
|
|
161
|
+
__decorate([
|
|
162
|
+
Input()
|
|
163
|
+
], SkyVerticalTabComponent.prototype, "errorIndicator", void 0);
|
|
164
|
+
__decorate([
|
|
165
|
+
Input()
|
|
166
|
+
], SkyVerticalTabComponent.prototype, "tabHeaderCount", void 0);
|
|
167
|
+
__decorate([
|
|
168
|
+
Input()
|
|
169
|
+
], SkyVerticalTabComponent.prototype, "tabHeading", void 0);
|
|
170
|
+
__decorate([
|
|
171
|
+
Input()
|
|
172
|
+
], SkyVerticalTabComponent.prototype, "showTabRightArrow", null);
|
|
173
|
+
__decorate([
|
|
174
|
+
Input()
|
|
175
|
+
], SkyVerticalTabComponent.prototype, "tabId", void 0);
|
|
176
|
+
__decorate([
|
|
177
|
+
ViewChild('tabContentWrapper')
|
|
178
|
+
], SkyVerticalTabComponent.prototype, "tabContent", void 0);
|
|
179
|
+
__decorate([
|
|
180
|
+
HostListener('window:resize')
|
|
181
|
+
], SkyVerticalTabComponent.prototype, "onWindowResize", null);
|
|
182
|
+
SkyVerticalTabComponent = __decorate([
|
|
183
|
+
Component({
|
|
184
|
+
selector: 'sky-vertical-tab',
|
|
185
|
+
template: "<a\n class=\"sky-vertical-tab\"\n [attr.aria-controls]=\"ariaControls\"\n [attr.aria-invalid]=\"ariaInvalid\"\n [attr.aria-required]=\"ariaRequired ? ariaRequired : null\"\n [attr.aria-selected]=\"active\"\n [attr.id]=\"tabId\"\n [attr.role]=\"ariaRole\"\n [ngClass]=\"{\n 'sky-vertical-tab-active': active,\n 'sky-vertical-tab-disabled': disabled,\n 'sky-deemphasized': disabled\n }\"\n [tabIndex]=\"tabIndex()\"\n (click)=\"activateTab()\"\n (keyup.enter)=\"activateTab()\">\n <div class=\"sky-vertical-tab-display\">\n <div class=\"sky-vertical-tab-heading\">\n <span class=\"sky-vertical-tab-heading-value\">{{ tabHeading }}</span>\n <span\n class=\"sky-vertical-tab-count\"\n *ngIf=\"tabHeaderCount || tabHeaderCount === 0\">\n ({{ tabHeaderCount }})\n </span>\n </div>\n <sky-status-indicator *ngIf=\"errorIndicator\"\n class=\"sky-vertical-tab-heading-error\"\n descriptionType=\"error\"\n indicatorType=\"danger\"\n ></sky-status-indicator>\n\n <sky-icon\n *ngIf=\"showTabRightArrow\"\n class=\"sky-vertical-tab-right-arrow\"\n icon=\"chevron-right\"\n >\n </sky-icon>\n </div>\n</a>\n\n<div\n #tabContentWrapper\n>\n <div\n class=\"sky-vertical-tab-content-pane\"\n [ngClass]=\"{'sky-vertical-tab-hidden': !active}\"\n >\n\n <ng-content></ng-content>\n\n <div>\n\n</div>\n\n",
|
|
186
|
+
providers: [
|
|
187
|
+
SkyVerticalTabMediaQueryService,
|
|
188
|
+
{ provide: SkyMediaQueryService, useExisting: SkyVerticalTabMediaQueryService }
|
|
189
|
+
],
|
|
190
|
+
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
191
|
+
styles: [".sky-vertical-tab{cursor:pointer;padding:7px 0 7px 10px;margin:5px 0 5px 10px;display:flex;text-decoration:none}.sky-vertical-tab:not(.sky-deemphasized){color:#212327}.sky-vertical-tab:hover{background-color:#eeeeef}.sky-vertical-tab:focus{outline:dotted thin;outline:-webkit-focus-ring-color auto 5px}.sky-vertical-tab:hover .sky-vertical-tab-right-arrow{color:#979ba2}.sky-vertical-tab-active{background-color:#eeeeef;color:#212327;padding-left:6px;border-left:4px solid #00b4f1}.sky-vertical-tab-hidden{display:none}.sky-vertical-tab-display{display:flex;flex-grow:1}.sky-vertical-tab-heading-error{padding-left:5px}.sky-vertical-tab-count{margin-left:5px}.sky-vertical-tab-disabled{cursor:not-allowed;pointer-events:none;font-style:normal}.sky-vertical-tab-right-arrow{padding:3px 10px 0 0;color:#cdcfd2}.sky-theme-modern .sky-vertical-tab,:host-context(.sky-theme-modern) .sky-vertical-tab{cursor:pointer;padding:10px 0 10px 10px;margin:10px 0 20px 10px}.sky-theme-modern .sky-vertical-tab:not(.sky-vertical-tab-active):not(:active):hover,:host-context(.sky-theme-modern) .sky-vertical-tab:not(.sky-vertical-tab-active):not(:active):hover{color:#212327;background-color:transparent;padding-left:9px;border-left:1px solid #00b4f1}.sky-theme-modern .sky-vertical-tab:not(:active):focus,:host-context(.sky-theme-modern) .sky-vertical-tab:not(:active):focus{outline:#1870b8 solid 2px;outline-offset:-2px;box-shadow:0 1px 8px 0 rgba(0,0,0,.3)}.sky-theme-modern .sky-vertical-tab:focus:active:hover,:host-context(.sky-theme-modern) .sky-vertical-tab:focus:active:hover{outline:0;background:0 0}.sky-theme-modern .sky-vertical-tab:active,:host-context(.sky-theme-modern) .sky-vertical-tab:active{border-left:3px solid #00b4f1;padding-left:7px}.sky-theme-modern .sky-vertical-tab .sky-vertical-tab-heading-error,:host-context(.sky-theme-modern) .sky-vertical-tab .sky-vertical-tab-heading-error{padding-left:10px}.sky-theme-modern .sky-vertical-tab-active,:host-context(.sky-theme-modern) .sky-vertical-tab-active{background:0 0;padding-left:7px;border-left:3px solid #1870b8}"]
|
|
192
|
+
})
|
|
193
|
+
], SkyVerticalTabComponent);
|
|
194
|
+
export { SkyVerticalTabComponent };
|
|
195
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmVydGljYWwtdGFiLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0Bza3l1eC90YWJzLyIsInNvdXJjZXMiOlsibW9kdWxlcy92ZXJ0aWNhbC10YWJzZXQvdmVydGljYWwtdGFiLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUNMLHVCQUF1QixFQUN2QixpQkFBaUIsRUFDakIsU0FBUyxFQUNULFVBQVUsRUFDVixZQUFZLEVBQ1osS0FBSyxFQUNMLFNBQVMsRUFDVCxNQUFNLEVBQ04sU0FBUyxFQUNWLE1BQU0sZUFBZSxDQUFDO0FBRXZCLE9BQU8sRUFDTCxvQkFBb0IsRUFDckIsTUFBTSxhQUFhLENBQUM7QUFFckIsT0FBTyxFQUNMLE9BQU8sRUFDUixNQUFNLE1BQU0sQ0FBQztBQUVkLE9BQU8sRUFDTCxTQUFTLEVBQ1YsTUFBTSxnQkFBZ0IsQ0FBQztBQUV4QixPQUFPLEVBQ0wsK0JBQStCLEVBQ2hDLE1BQU0sb0NBQW9DLENBQUM7QUFFNUMsT0FBTyxFQUNMLHdCQUF3QixFQUN6QixNQUFNLDJCQUEyQixDQUFDO0FBRW5DLE9BQU8sRUFDTCwrQkFBK0IsRUFDaEMsTUFBTSxtQ0FBbUMsQ0FBQztBQVkzQyxJQUFhLHVCQUF1QixHQUFwQyxNQUFhLHVCQUF1QjtJQWtJbEMsWUFDVSxjQUErQyxFQUMvQyxTQUE0QixFQUM1QixhQUF1QyxFQUN2Qyw0QkFBNkQ7UUFIN0QsbUJBQWMsR0FBZCxjQUFjLENBQWlDO1FBQy9DLGNBQVMsR0FBVCxTQUFTLENBQW1CO1FBQzVCLGtCQUFhLEdBQWIsYUFBYSxDQUEwQjtRQUN2QyxpQ0FBNEIsR0FBNUIsNEJBQTRCLENBQWlDO1FBckl2RTs7V0FFRztRQUVJLFdBQU0sR0FBWSxLQUFLLENBQUM7UUE4Qy9COztXQUVHO1FBRUksYUFBUSxHQUFZLEtBQUssQ0FBQztRQUVqQzs7O1dBR0c7UUFFSSxtQkFBYyxHQUFZLEtBQUssQ0FBQztRQXNEL0IsYUFBUSxHQUFHLEtB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QkFBK0I7O0FBakl2RTtJQURDLEtBQUssRUFBRTt1REFDdUI7QUFRL0I7SUFEQyxLQUFLLEVBQUU7MkRBR1A7QUFTRDtJQURDLEtBQUssRUFBRTs0REFDb0I7QUFNNUI7SUFEQyxLQUFLLEVBQUU7NkRBQ3FCO0FBVzdCO0lBREMsS0FBSyxFQUFFO3VEQU1QO0FBU0Q7SUFEQyxLQUFLLEVBQUU7eURBQ3lCO0FBT2pDO0lBREMsS0FBSyxFQUFFOytEQUMrQjtBQU12QztJQURDLEtBQUssRUFBRTsrREFDc0I7QUFPOUI7SUFEQyxLQUFLLEVBQUU7MkRBQ2tCO0FBTzFCO0lBREMsS0FBSyxFQUFFO2dFQUdQO0FBVUQ7SUFEQyxLQUFLLEVBQUU7c0RBQ2E7QUFvQnJCO0lBREMsU0FBUyxDQUFDLG1CQUFtQixDQUFDOzJEQUNEO0FBdUU5QjtJQURDLFlBQVksQ0FBQyxlQUFlLENBQUM7NkRBRzdCO0FBM0xVLHVCQUF1QjtJQVZuQyxTQUFTLENBQUM7UUFDVCxRQUFRLEVBQUUsa0JBQWtCO1FBQzVCLDA0Q0FBNEM7UUFFNUMsU0FBUyxFQUFFO1lBQ1QsK0JBQStCO1lBQy9CLEVBQUUsT0FBTyxFQUFFLG9CQUFvQixFQUFFLFdBQVcsRUFBRSwrQkFBK0IsRUFBRTtTQUNoRjtRQUNELGVBQWUsRUFBRSx1QkFBdUIsQ0FBQyxNQUFNOztLQUNoRCxDQUFDO0dBQ1csdUJBQXVCLENBME1uQztTQTFNWSx1QkFBdUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gIENvbXBvbmVudCxcbiAgRWxlbWVudFJlZixcbiAgSG9zdExpc3RlbmVyLFxuICBJbnB1dCxcbiAgT25EZXN0cm95LFxuICBPbkluaXQsXG4gIFZpZXdDaGlsZFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHtcbiAgU2t5TWVkaWFRdWVyeVNlcnZpY2Vcbn0gZnJvbSAnQHNreXV4L2NvcmUnO1xuXG5pbXBvcnQge1xuICBTdWJqZWN0XG59IGZyb20gJ3J4anMnO1xuXG5pbXBvcnQge1xuICB0YWtlVW50aWxcbn0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuXG5pbXBvcnQge1xuICBTa3lWZXJ0aWNhbFRhYk1lZGlhUXVlcnlTZXJ2aWNlXG59IGZyb20gJy4vdmVydGljYWwtdGFiLW1lZGlhLXF1ZXJ5LnNlcnZpY2UnO1xuXG5pbXBvcnQge1xuICBTa3lWZXJ0aWNhbFRhYnNldFNlcnZpY2Vcbn0gZnJvbSAnLi92ZXJ0aWNhbC10YWJzZXQuc2VydmljZSc7XG5cbmltcG9ydCB7XG4gIFNreVZlcnRpY2FsVGFic2V0QWRhcHRlclNlcnZpY2Vcbn0gZnJvbSAnLi92ZXJ0aWNhbC10YWJzZXQtYWRhcHRlci5zZXJ2aWNlJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc2t5LXZlcnRpY2FsLXRhYicsXG4gIHRlbXBsYXRlVXJsOiAnLi92ZXJ0aWNhbC10YWIuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi92ZXJ0aWNhbC10YWIuY29tcG9uZW50LnNjc3MnXSxcbiAgcHJvdmlkZXJzOiBbXG4gICAgU2t5VmVydGljYWxUYWJNZWRpYVF1ZXJ5U2VydmljZSxcbiAgICB7IHByb3ZpZGU6IFNreU1lZGlhUXVlcnlTZXJ2aWNlLCB1c2VFeGlzdGluZzogU2t5VmVydGljYWxUYWJNZWRpYVF1ZXJ5U2VydmljZSB9XG4gIF0sXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoXG59KVxuZXhwb3J0IGNsYXNzIFNreVZlcnRpY2FsVGFiQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3kge1xuICAvKipcbiAgICogSW5kaWNhdGVzIHdoZXRoZXIgdGhlIHRhYiBpcyBhY3RpdmUgd2hlbiB0aGUgdGFic2V0IGxvYWRzLlxuICAgKi9cbiAgQElucHV0KClcbiAgcHVibGljIGFjdGl2ZTogYm9vbGVhbiA9IGZhbHNlO1xuXG4gIC8qKlxuICAgKiBTcGVjaWZpZXMgdGhlIEhUTUwgZWxlbWVudCBJRCAod2l0aG91dCB0aGUgbGVhZGluZyBgI2ApIG9mIHRoZSBlbGVtZW50IHRoYXQgY29udGFpbnNcbiAgICogdGhlIGNvbnRlbnQgdGhhdCB0aGUgdmVydGljYWwgdGFiIGRpc3BsYXlzLCB3aGljaCBjb3JyZXNwb25kcyB0byB0aGUgYHRhYklkYC4gVGhpcyBwcm9wZXJ0eVxuICAgKiBbc3VwcG9ydHMgYWNjZXNzaWJpbGl0eSBydWxlcyBmb3IgZGlzY2xvc3VyZXNdKGh0dHBzOi8vd3d3LnczLm9yZy9UUi93YWktYXJpYS1wcmFjdGljZXMtMS4xLyNkaXNjbG9zdXJlKS5cbiAgICovXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBnZXQgYXJpYUNvbnRyb2xzKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMuaXNNb2JpbGUgPyB1bmRlZmluZWQgOiB0aGlzLl9hcmlhQ29udHJvbHM7XG4gIH1cbiAgcHVibGljIHNldCBhcmlhQ29udHJvbHModmFsdWU6IHN0cmluZykge1xuICAgIHRoaXMuX2FyaWFDb250cm9scyA9IHZhbHVlO1xuICB9XG5cbiAgLyoqXG4gICAqIEBpbnRlcm5hbFxuICAgKi9cbiAgQElucHV0KClcbiAgcHVibGljIGFyaWFJbnZhbGlkOiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBAaW50ZXJuYWxcbiAgICovXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBhcmlhUmVxdWlyZWQ6IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIFNwZWNpZmllcyBhbiBBUklBIHJvbGUgZm9yIHRoZSB2ZXJ0aWNhbCB0YWJcbiAgICogW3RvIHN1cHBvcnQgYWNjZXNzaWJpbGl0eV0oaHR0cHM6Ly9kZXZlbG9wZXIuYmxhY2tiYXVkLmNvbS9za3l1eC9sZWFybi9hY2Nlc3NpYmlsaXR5KVxuICAgKiBieSBpbmRpY2F0aW5nIGhvdyB0aGUgdGFiIGZ1bmN0aW9ucyBhbmQgd2hhdCBpdCBjb250cm9scy4gRm9yIGluZm9ybWF0aW9uIGFib3V0IGhvd1xuICAgKiBhbiBBUklBIHJvbGUgaW5kaWNhdGVzIHdoYXQgYW4gaXRlbSByZXByZXNlbnRzIG9uIGEgd2ViIHBhZ2UsIHNlZSB0aGVcbiAgICogW1dBSS1BUklBIHJvbGVzIG1vZGVsXShodHRwczovL3d3dy53My5vcmcvV0FJL1BGL2FyaWEvcm9sZXMpLlxuICAgKiBAZGVmYXVsdCBcInRhYlwiXG4gICAqL1xuICBASW5wdXQoKVxuICBwdWJsaWMgZ2V0IGFyaWFSb2xlKCk6IHN0cmluZyB7XG4gICAgaWYgKHRoaXMuaXNNb2JpbGUpIHtcbiAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgfVxuICAgIHJldHVybiB0aGlzLl9hcmlhUm9sZSB8fCAndGFiJztcbiAgfVxuICBwdWJsaWMgc2V0IGFyaWFSb2xlKHZhbHVlOiBzdHJpbmcpIHtcbiAgICB0aGlzLl9hcmlhUm9sZSA9IHZhbHVlO1xuICB9XG5cbiAgLyoqXG4gICAqIEluZGljYXRlcyB3aGV0aGVyIHRvIGRpc2FibGUgdGhlIHRhYi5cbiAgICovXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBkaXNhYmxlZDogYm9vbGVhbiA9IGZhbHNlO1xuXG4gIC8qKlxuICAgKiBJbmRpY2F0ZXMgd2hldGhlciB0byBpbmRpY2F0ZSB0aGF0IHRoZSB0YWIgaGFzIGFuIGVycm9yLlxuICAgKiBAaW50ZXJuYWwgVGhpcyBpcyB1c2VkIGZvciBzZWN0aW9uZWQgZm9ybXMgYW5kIGlzIG5vdCBjdXJyZW50bHkgYSBzdXBwb3J0ZWQgZGVzaWduIGZvciBwdXJlIHZlcnRpY2FsIHRhYnMuXG4gICAqL1xuICBASW5wdXQoKVxuICBwdWJsaWMgZXJyb3JJbmRpY2F0b3I6IGJvb2xlYW4gPSBmYWxzZTtcblxuICAvKipcbiAgICogRGlzcGxheXMgYW4gaXRlbSBjb3VudCBhbG9uZ3NpZGUgdGhlIHRhYiBoZWFkZXIgdG8gaW5kaWNhdGUgaG93IG1hbnkgbGlzdCBpdGVtcyB0aGUgdGFiIGNvbnRhaW5zLlxuICAgKi9cbiAgQElucHV0KClcbiAgcHVibGljIHRhYkhlYWRlckNvdW50OiBudW1iZXI7XG5cbiAgLyoqXG4gICAqIFNwZWNpZmllcyB0aGUgdGFiIGhlYWRlci5cbiAgICogQHJlcXVpcmVkXG4gICAqL1xuICBASW5wdXQoKVxuICBwdWJsaWMgdGFiSGVhZGluZzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBJbmRpY2F0ZXMgd2hldGhlciB0byBkaXNwbGF5IGEgY2hldnJvbi1yaWdodCBpY29uIGluIHRoZSByaWdodGhhbmQgc2lkZSBvZiB0aGUgdGFiLlxuICAgKiBAaW50ZXJuYWxcbiAgICovXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBnZXQgc2hvd1RhYlJpZ2h0QXJyb3coKSB7XG4gICAgcmV0dXJuIHRoaXMuX3Nob3dUYWJSaWdodEFycm93ICYmIHRoaXMudGFic2V0U2VydmljZS5pc01vYmlsZSgpO1xuICB9XG5cbiAgcHVibGljIHNldCBzaG93VGFiUmlnaHRBcnJvdyh2YWx1ZTogYm9vbGVhbikge1xuICAgIHRoaXMuX3Nob3dUYWJSaWdodEFycm93ID0gdmFsdWU7XG4gIH1cblxuICAvKipcbiAgICogU3BlY2lmaWVzIGFuIElEIGZvciB0aGUgdGFiLlxuICAgKi9cbiAgQElucHV0KClcbiAgcHVibGljIHRhYklkOiBzdHJpbmc7XG5cbiAgcHVibGljIHNldCBjb250ZW50UmVuZGVyZWQodmFsdWU6IGJvb2xlYW4pIHtcbiAgICB0aGlzLl9jb250ZW50UmVuZGVyZWQgPSB2YWx1ZTtcblxuICAgIGlmICh0aGlzLl9jb250ZW50UmVuZGVyZWQpIHtcbiAgICAgIC8vIE5PVEU6IFdyYXBwZWQgaW4gYSBzZXRUaW1lb3V0IGhlcmUgdG8gZW5zdXJlIHRoYXQgZXZlcnl0aGluZyBoYXMgY29tcGxldGVkIHJlbmRlcmluZy5cbiAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICB0aGlzLnVwZGF0ZUJyZWFrcG9pbnRBbmRSZXNwb25zaXZlQ2xhc3ModGhpcy5hZGFwdGVyU2VydmljZS5nZXRXaWR0aCh0aGlzLnRhYkNvbnRlbnQpKTtcbiAgICAgIH0pO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBnZXQgY29udGVudFJlbmRlcmVkKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLl9jb250ZW50UmVuZGVyZWQ7XG4gIH1cblxuICBwdWJsaWMgaW5kZXg6IG51bWJlcjtcblxuICBAVmlld0NoaWxkKCd0YWJDb250ZW50V3JhcHBlcicpXG4gIHB1YmxpYyB0YWJDb250ZW50OiBFbGVtZW50UmVmO1xuXG4gIHByaXZhdGUgaXNNb2JpbGUgPSBmYWxzZTtcblxuICBwcml2YXRlIF9hcmlhQ29udHJvbHM6IHN0cmluZztcblxuICBwcml2YXRlIF9hcmlhUm9sZTogc3RyaW5nO1xuXG4gIHByaXZhdGUgX2NvbnRlbnRSZW5kZXJlZDogYm9vbGVhbiA9IGZhbHNlO1xuXG4gIHByaXZhdGUgX21vYmlsZVN1YnNjcmlwdGlvbiA9IG5ldyBTdWJqZWN0KCk7XG5cbiAgcHJpdmF0ZSBfbmdVbnN1YnNjcmliZSA9IG5ldyBTdWJqZWN0KCk7XG5cbiAgcHJpdmF0ZSBfc2hvd1RhYlJpZ2h0QXJyb3c6IGJvb2xlYW4gPSBmYWxzZTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIGFkYXB0ZXJTZXJ2aWNlOiBTa3lWZXJ0aWNhbFRhYnNldEFkYXB0ZXJTZXJ2aWNlLFxuICAgIHByaXZhdGUgY2hhbmdlUmVmOiBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICBwcml2YXRlIHRhYnNldFNlcnZpY2U6IFNreVZlcnRpY2FsVGFic2V0U2VydmljZSxcbiAgICBwcml2YXRlIHZlcnRpY2FsVGFiTWVkaWFRdWVyeVNlcnZpY2U6IFNreVZlcnRpY2FsVGFiTWVkaWFRdWVyeVNlcnZpY2VcbiAgKSB7fVxuXG4gIHB1YmxpYyBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLmlzTW9iaWxlID0gdGhpcy50YWJzZXRTZXJ2aWNlLmlzTW9iaWxlKCk7XG4gICAgdGhpcy5jaGFuZ2VSZWYubWFya0ZvckNoZWNrKCk7XG5cbiAgICB0aGlzLnRhYnNldFNlcnZpY2Uuc3dpdGNoaW5nTW9iaWxlXG4gICAgICAuc3Vic2NyaWJlKChtb2JpbGU6IGJvb2xlYW4pID0+IHtcbiAgICAgICAgdGhpcy5pc01vYmlsZSA9IG1vYmlsZTtcbiAgICAgICAgdGhpcy5jaGFuZ2VSZWYubWFya0ZvckNoZWNrKCk7XG4gICAgICB9KTtcblxuICAgIC8vIFVwZGF0ZSB0aGUgYnJlYWtwb2ludCBhbmQgcmVzcG9uc2l2ZSBjbGFzcyBoZXJlIGp1c3QgYXMgYSBzYW5pdHkgY2hlY2sgc2luY2Ugd2UgY2FuIG5vdFxuICAgIC8vIHdhdGNoIGZvciBlbGVtZW50IHJlc2l6aW5nLlxuICAgIHRoaXMudGFic2V0U2VydmljZS5pbmRleENoYW5nZWRcbiAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLl9uZ1Vuc3Vic2NyaWJlKSlcbiAgICAgIC5zdWJzY3JpYmUoKGluZGV4KSA9PiB7XG4gICAgICAgIGlmICh0aGlzLmluZGV4ID09PSBpbmRleCAmJiB0aGlzLmNvbnRlbnRSZW5kZXJlZCkge1xuICAgICAgICAgIHRoaXMudXBkYXRlQnJlYWtwb2ludEFuZFJlc3BvbnNpdmVDbGFzcyh0aGlzLmFkYXB0ZXJTZXJ2aWNlLmdldFdpZHRoKHRoaXMudGFiQ29udGVudCkpO1xuICAgICAgICB9XG4gICAgICB9KTtcblxuICAgIHRoaXMudGFic2V0U2VydmljZS5hZGRUYWIodGhpcyk7XG4gIH1cblxuICBwdWJsaWMgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgdGhpcy5fbW9iaWxlU3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCk7XG4gICAgdGhpcy5fbmdVbnN1YnNjcmliZS5uZXh0KCk7XG4gICAgdGhpcy5fbmdVbnN1YnNjcmliZS5jb21wbGV0ZSgpO1xuICAgIHRoaXMudGFic2V0U2VydmljZS5kZXN0cm95VGFiKHRoaXMpO1xuICB9XG5cbiAgcHVibGljIHRhYkluZGV4KCk6IG51bWJlciB7XG4gICAgaWYgKCF0aGlzLmRpc2FibGVkKSB7XG4gICAgICByZXR1cm4gMDtcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIC0xO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBhY3RpdmF0ZVRhYigpOiB2b2lkIHtcbiAgICBpZiAoIXRoaXMuZGlzYWJsZWQpIHtcbiAgICAgIHRoaXMuYWN0aXZlID0gdHJ1ZTtcbiAgICAgIHRoaXMudGFic2V0U2VydmljZS5hY3RpdmF0ZVRhYih0aGlzKTtcblxuICAgICAgdGhpcy5jaGFuZ2VSZWYubWFya0ZvckNoZWNrKCk7XG4gICAgfVxuICB9XG5cbiAgQEhvc3RMaXN0ZW5lcignd2luZG93OnJlc2l6ZScpXG4gIHB1YmxpYyBvbldpbmRvd1Jlc2l6ZSgpOiB2b2lkIHtcbiAgICB0aGlzLnVwZGF0ZUJyZWFrcG9pbnRBbmRSZXNwb25zaXZlQ2xhc3ModGhpcy5hZGFwdGVyU2VydmljZS5nZXRXaWR0aCh0aGlzLnRhYkNvbnRlbnQpKTtcbiAgfVxuXG4gIHB1YmxpYyB0YWJEZWFjdGl2YXRlZCgpOiB2b2lkIHtcbiAgICB0aGlzLmNoYW5nZVJlZi5tYXJrRm9yQ2hlY2soKTtcbiAgfVxuXG4gIHByaXZhdGUgdXBkYXRlQnJlYWtwb2ludEFuZFJlc3BvbnNpdmVDbGFzcyh3aWR0aDogbnVtYmVyKTogdm9pZCB7XG4gICAgdGhpcy52ZXJ0aWNhbFRhYk1lZGlhUXVlcnlTZXJ2aWNlLnNldEJyZWFrcG9pbnRGb3JXaWR0aCh3aWR0aCk7XG5cbiAgICBjb25zdCBuZXdCcmVha3Bpb250ID0gdGhpcy52ZXJ0aWNhbFRhYk1lZGlhUXVlcnlTZXJ2aWNlLmN1cnJlbnQ7XG5cbiAgICB0aGlzLmFkYXB0ZXJTZXJ2aWNlLnNldFJlc3BvbnNpdmVDbGFzcyh0aGlzLnRhYkNvbnRlbnQsIG5ld0JyZWFrcGlvbnQpO1xuXG4gICAgdGhpcy5jaGFuZ2VSZWYubWFya0ZvckNoZWNrKCk7XG4gIH1cbn1cbiJdfQ==
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
import { __decorate } from "tslib";
|
|
2
|
+
import { ElementRef, Injectable, Renderer2, RendererFactory2 } from '@angular/core';
|
|
3
|
+
import { SkyMediaBreakpoints } from '@skyux/core';
|
|
4
|
+
let SkyVerticalTabsetAdapterService = class SkyVerticalTabsetAdapterService {
|
|
5
|
+
constructor(rendererFactory) {
|
|
6
|
+
this.rendererFactory = rendererFactory;
|
|
7
|
+
this.renderer = this.rendererFactory.createRenderer(undefined, undefined);
|
|
8
|
+
}
|
|
9
|
+
getWidth(elementRef) {
|
|
10
|
+
return elementRef.nativeElement.clientWidth;
|
|
11
|
+
}
|
|
12
|
+
scrollToContentTop(element) {
|
|
13
|
+
element.nativeElement.scrollTop = 0;
|
|
14
|
+
}
|
|
15
|
+
setResponsiveClass(element, breakpoint) {
|
|
16
|
+
const nativeEl = element.nativeElement;
|
|
17
|
+
this.renderer.removeClass(nativeEl, 'sky-responsive-container-xs');
|
|
18
|
+
this.renderer.removeClass(nativeEl, 'sky-responsive-container-sm');
|
|
19
|
+
this.renderer.removeClass(nativeEl, 'sky-responsive-container-md');
|
|
20
|
+
this.renderer.removeClass(nativeEl, 'sky-responsive-container-lg');
|
|
21
|
+
let newClass;
|
|
22
|
+
switch (breakpoint) {
|
|
23
|
+
case SkyMediaBreakpoints.xs: {
|
|
24
|
+
newClass = 'sky-responsive-container-xs';
|
|
25
|
+
break;
|
|
26
|
+
}
|
|
27
|
+
case SkyMediaBreakpoints.sm: {
|
|
28
|
+
newClass = 'sky-responsive-container-sm';
|
|
29
|
+
break;
|
|
30
|
+
}
|
|
31
|
+
case SkyMediaBreakpoints.md: {
|
|
32
|
+
newClass = 'sky-responsive-container-md';
|
|
33
|
+
break;
|
|
34
|
+
}
|
|
35
|
+
default: {
|
|
36
|
+
newClass = 'sky-responsive-container-lg';
|
|
37
|
+
break;
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
this.renderer.addClass(nativeEl, newClass);
|
|
41
|
+
}
|
|
42
|
+
};
|
|
43
|
+
SkyVerticalTabsetAdapterService.ctorParameters = () => [
|
|
44
|
+
{ type: RendererFactory2 }
|
|
45
|
+
];
|
|
46
|
+
SkyVerticalTabsetAdapterService = __decorate([
|
|
47
|
+
Injectable()
|
|
48
|
+
], SkyVerticalTabsetAdapterService);
|
|
49
|
+
export { SkyVerticalTabsetAdapterService };
|
|
50
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmVydGljYWwtdGFic2V0LWFkYXB0ZXIuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0Bza3l1eC90YWJzLyIsInNvdXJjZXMiOlsibW9kdWxlcy92ZXJ0aWNhbC10YWJzZXQvdmVydGljYWwtdGFic2V0LWFkYXB0ZXIuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUNMLFVBQVUsRUFDVixVQUFVLEVBQ1YsU0FBUyxFQUNULGdCQUFnQixFQUNqQixNQUFNLGVBQWUsQ0FBQztBQUV2QixPQUFPLEVBQ0wsbUJBQW1CLEVBQ3BCLE1BQU0sYUFBYSxDQUFDO0FBR3JCLElBQWEsK0JBQStCLEdBQTVDLE1BQWEsK0JBQStCO0lBRzFDLFlBQ1UsZUFBaUM7UUFBakMsb0JBQWUsR0FBZixlQUFlLENBQWtCO1FBRXpDLElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDLGVBQWUsQ0FBQyxjQUFjLENBQUMsU0FBUyxFQUFFLFNBQVMsQ0FBQyxDQUFDO0lBQzVFLENBQUM7SUFFTSxRQUFRLENBQUMsVUFBc0I7UUFDcEMsT0FBTyxVQUFVLENBQUMsYUFBYSxDQUFDLFdBQVcsQ0FBQztJQUM5QyxDQUFDO0lBRU0sa0JBQWtCLENBQUMsT0FBbUI7UUFDM0MsT0FBTyxDQUFDLGFBQWEsQ0FBQyxTQUFTLEdBQUcsQ0FBQyxDQUFDO0lBQ3RDLENBQUM7SUFFTSxrQkFBa0IsQ0FBQyxPQUFtQixFQUFFLFVBQStCO1FBQzVFLE1BQU0sUUFBUSxHQUFnQixPQUFPLENBQUMsYUFBYSxDQUFDO1FBRXBELElBQUksQ0FBQyxRQUFRLENBQUMsV0FBVyxDQUFDLFFBQVEsRUFBRSw2QkFBNkIsQ0FBQyxDQUFDO1FBQ25FLElBQUksQ0FBQyxRQUFRLENBQUMsV0FBVyxDQUFDLFFBQVEsRUFBRSw2QkFBNkIsQ0FBQyxDQUFDO1FBQ25FLElBQUksQ0FBQyxRQUFRLENBQUMsV0FBVyxDQUFDLFFBQVEsRUFBRSw2QkFBNkIsQ0FBQyxDQUFDO1FBQ25FLElBQUksQ0FBQyxRQUFRLENBQUMsV0FBVyxDQUFDLFFBQVEsRUFBRSw2QkFBNkIsQ0FBQyxDQUFDO1FBRW5FLElBQUksUUFBZ0IsQ0FBQztRQUVyQixRQUFRLFVBQVUsRUFBRTtZQUNsQixLQUFLLG1CQUFtQixDQUFDLEVBQUUsQ0FBQyxDQUFDO2dCQUMzQixRQUFRLEdBQUcsNkJBQTZCLENBQUM7Z0JBQ3pDLE1BQU07YUFDUDtZQUNELEtBQUssbUJBQW1CLENBQUMsRUFBRSxDQUFDLENBQUM7Z0JBQzNCLFFBQVEsR0FBRyw2QkFBNkIsQ0FBQztnQkFDekMsTUFBTTthQUNQO1lBQ0QsS0FBSyxtQkFBbUIsQ0FBQyxFQUFFLENBQUMsQ0FBQztnQkFDM0IsUUFBUSxHQUFHLDZCQUE2QixDQUFDO2dCQUN6QyxNQUFNO2FBQ1A7WUFDRCxPQUFPLENBQUMsQ0FBQztnQkFDUCxRQUFRLEdBQUcsNkJBQTZCLENBQUM7Z0JBQ3pDLE1BQU07YUFDUDtTQUNGO1FBRUQsSUFBSSxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsUUFBUSxFQUFFLFFBQVEsQ0FBQyxDQUFDO0lBQzdDLENBQUM7Q0FDRixDQUFBOztZQTVDNEIsZ0JBQWdCOztBQUpoQywrQkFBK0I7SUFEM0MsVUFBVSxFQUFFO0dBQ0EsK0JBQStCLENBZ0QzQztTQWhEWSwrQkFBK0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBFbGVtZW50UmVmLFxuICBJbmplY3RhYmxlLFxuICBSZW5kZXJlcjIsXG4gIFJlbmRlcmVyRmFjdG9yeTJcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7XG4gIFNreU1lZGlhQnJlYWtwb2ludHNcbn0gZnJvbSAnQHNreXV4L2NvcmUnO1xuXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgU2t5VmVydGljYWxUYWJzZXRBZGFwdGVyU2VydmljZSB7XG4gIHByaXZhdGUgcmVuZGVyZXI6IFJlbmRlcmVyMjtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIHJlbmRlcmVyRmFjdG9yeTogUmVuZGVyZXJGYWN0b3J5MlxuICApIHtcbiAgICB0aGlzLnJlbmRlcmVyID0gdGhpcy5yZW5kZXJlckZhY3RvcnkuY3JlYXRlUmVuZGVyZXIodW5kZWZpbmVkLCB1bmRlZmluZWQpO1xuICB9XG5cbiAgcHVibGljIGdldFdpZHRoKGVsZW1lbnRSZWY6IEVsZW1lbnRSZWYpOiBudW1iZXIge1xuICAgIHJldHVybiBlbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQuY2xpZW50V2lkdGg7XG4gIH1cblxuICBwdWJsaWMgc2Nyb2xsVG9Db250ZW50VG9wKGVsZW1lbnQ6IEVsZW1lbnRSZWYpOiB2b2lkIHtcbiAgICBlbGVtZW50Lm5hdGl2ZUVsZW1lbnQuc2Nyb2xsVG9wID0gMDtcbiAgfVxuXG4gIHB1YmxpYyBzZXRSZXNwb25zaXZlQ2xhc3MoZWxlbWVudDogRWxlbWVudFJlZiwgYnJlYWtwb2ludDogU2t5TWVkaWFCcmVha3BvaW50cyk6IHZvaWQge1xuICAgIGNvbnN0IG5hdGl2ZUVsOiBIVE1MRWxlbWVudCA9IGVsZW1lbnQubmF0aXZlRWxlbWVudDtcblxuICAgIHRoaXMucmVuZGVyZXIucmVtb3ZlQ2xhc3MobmF0aXZlRWwsICdza3ktcmVzcG9uc2l2ZS1jb250YWluZXIteHMnKTtcbiAgICB0aGlzLnJlbmRlcmVyLnJlbW92ZUNsYXNzKG5hdGl2ZUVsLCAnc2t5LXJlc3BvbnNpdmUtY29udGFpbmVyLXNtJyk7XG4gICAgdGhpcy5yZW5kZXJlci5yZW1vdmVDbGFzcyhuYXRpdmVFbCwgJ3NreS1yZXNwb25zaXZlLWNvbnRhaW5lci1tZCcpO1xuICAgIHRoaXMucmVuZGVyZXIucmVtb3ZlQ2xhc3MobmF0aXZlRWwsICdza3ktcmVzcG9uc2l2ZS1jb250YWluZXItbGcnKTtcblxuICAgIGxldCBuZXdDbGFzczogc3RyaW5nO1xuXG4gICAgc3dpdGNoIChicmVha3BvaW50KSB7XG4gICAgICBjYXNlIFNreU1lZGlhQnJlYWtwb2ludHMueHM6IHtcbiAgICAgICAgbmV3Q2xhc3MgPSAnc2t5LXJlc3BvbnNpdmUtY29udGFpbmVyLXhzJztcbiAgICAgICAgYnJlYWs7XG4gICAgICB9XG4gICAgICBjYXNlIFNreU1lZGlhQnJlYWtwb2ludHMuc206IHtcbiAgICAgICAgbmV3Q2xhc3MgPSAnc2t5LXJlc3BvbnNpdmUtY29udGFpbmVyLXNtJztcbiAgICAgICAgYnJlYWs7XG4gICAgICB9XG4gICAgICBjYXNlIFNreU1lZGlhQnJlYWtwb2ludHMubWQ6IHtcbiAgICAgICAgbmV3Q2xhc3MgPSAnc2t5LXJlc3BvbnNpdmUtY29udGFpbmVyLW1kJztcbiAgICAgICAgYnJlYWs7XG4gICAgICB9XG4gICAgICBkZWZhdWx0OiB7XG4gICAgICAgIG5ld0NsYXNzID0gJ3NreS1yZXNwb25zaXZlLWNvbnRhaW5lci1sZyc7XG4gICAgICAgIGJyZWFrO1xuICAgICAgfVxuICAgIH1cblxuICAgIHRoaXMucmVuZGVyZXIuYWRkQ2xhc3MobmF0aXZlRWwsIG5ld0NsYXNzKTtcbiAgfVxufVxuIl19
|
|
@@ -0,0 +1,113 @@
|
|
|
1
|
+
import { __decorate } from "tslib";
|
|
2
|
+
import { ChangeDetectionStrategy, ChangeDetectorRef, Component, ContentChildren, Input, OnDestroy, OnInit, QueryList } from '@angular/core';
|
|
3
|
+
import { animate, style, transition, trigger } from '@angular/animations';
|
|
4
|
+
import { Subject } from 'rxjs';
|
|
5
|
+
import { takeUntil } from 'rxjs/operators';
|
|
6
|
+
import { SkyVerticalTabComponent } from './vertical-tab.component';
|
|
7
|
+
import { SkyVerticalTabsetService } from './vertical-tabset.service';
|
|
8
|
+
let SkyVerticalTabsetGroupComponent = class SkyVerticalTabsetGroupComponent {
|
|
9
|
+
constructor(tabService, changeRef) {
|
|
10
|
+
this.tabService = tabService;
|
|
11
|
+
this.changeRef = changeRef;
|
|
12
|
+
this.ngUnsubscribe = new Subject();
|
|
13
|
+
this.openBeforeTabsHidden = false;
|
|
14
|
+
this._open = false;
|
|
15
|
+
this.tabClicked = () => {
|
|
16
|
+
this.changeRef.markForCheck();
|
|
17
|
+
};
|
|
18
|
+
this.tabsHidden = () => {
|
|
19
|
+
// this fixes an animation bug with ngIf when the parent component goes from visible to hidden
|
|
20
|
+
this.openBeforeTabsHidden = this.open;
|
|
21
|
+
this.open = false;
|
|
22
|
+
this.changeRef.markForCheck();
|
|
23
|
+
};
|
|
24
|
+
this.tabsShown = () => {
|
|
25
|
+
this.open = this.openBeforeTabsHidden;
|
|
26
|
+
this.changeRef.markForCheck();
|
|
27
|
+
};
|
|
28
|
+
}
|
|
29
|
+
/**
|
|
30
|
+
* Indicates whether the collapsible group is expanded.
|
|
31
|
+
* @default "false"
|
|
32
|
+
*/
|
|
33
|
+
set open(value) {
|
|
34
|
+
this._open = value;
|
|
35
|
+
}
|
|
36
|
+
get open() {
|
|
37
|
+
return !this.disabled && this._open;
|
|
38
|
+
}
|
|
39
|
+
ngOnInit() {
|
|
40
|
+
this.tabService.hidingTabs
|
|
41
|
+
.pipe(takeUntil(this.ngUnsubscribe))
|
|
42
|
+
.subscribe(this.tabsHidden);
|
|
43
|
+
this.tabService.showingTabs
|
|
44
|
+
.pipe(takeUntil(this.ngUnsubscribe))
|
|
45
|
+
.subscribe(this.tabsShown);
|
|
46
|
+
this.tabService.tabClicked
|
|
47
|
+
.pipe(takeUntil(this.ngUnsubscribe))
|
|
48
|
+
.subscribe(this.tabClicked);
|
|
49
|
+
}
|
|
50
|
+
ngOnDestroy() {
|
|
51
|
+
this.ngUnsubscribe.next();
|
|
52
|
+
this.ngUnsubscribe.complete();
|
|
53
|
+
}
|
|
54
|
+
toggleMenuOpen() {
|
|
55
|
+
if (!this.disabled) {
|
|
56
|
+
this.open = !this.open;
|
|
57
|
+
}
|
|
58
|
+
this.changeRef.markForCheck();
|
|
59
|
+
}
|
|
60
|
+
subMenuOpen() {
|
|
61
|
+
return this.tabs && (this.tabs.find(t => t.active) !== undefined);
|
|
62
|
+
}
|
|
63
|
+
};
|
|
64
|
+
SkyVerticalTabsetGroupComponent.ctorParameters = () => [
|
|
65
|
+
{ type: SkyVerticalTabsetService },
|
|
66
|
+
{ type: ChangeDetectorRef }
|
|
67
|
+
];
|
|
68
|
+
__decorate([
|
|
69
|
+
Input()
|
|
70
|
+
], SkyVerticalTabsetGroupComponent.prototype, "disabled", void 0);
|
|
71
|
+
__decorate([
|
|
72
|
+
Input()
|
|
73
|
+
], SkyVerticalTabsetGroupComponent.prototype, "groupHeading", void 0);
|
|
74
|
+
__decorate([
|
|
75
|
+
Input()
|
|
76
|
+
], SkyVerticalTabsetGroupComponent.prototype, "open", null);
|
|
77
|
+
__decorate([
|
|
78
|
+
ContentChildren(SkyVerticalTabComponent)
|
|
79
|
+
], SkyVerticalTabsetGroupComponent.prototype, "tabs", void 0);
|
|
80
|
+
SkyVerticalTabsetGroupComponent = __decorate([
|
|
81
|
+
Component({
|
|
82
|
+
selector: 'sky-vertical-tabset-group',
|
|
83
|
+
template: "<div class=\"sky-vertical-tabset-group\">\n <div\n class=\"sky-vertical-tabset-group-header sky-padding-even-default\"\n [ngClass]=\"{\n 'sky-vertical-tabset-group-header-sub-open sky-emphasized': subMenuOpen(),\n 'sky-deemphasized': disabled,\n 'sky-vertical-tabset-disabled': disabled\n }\"\n (click)=\"toggleMenuOpen()\"\n (keyup.enter)=\"toggleMenuOpen()\"\n [tabIndex]=\"-1\"\n >\n {{ groupHeading }}\n <sky-chevron *skyThemeIf=\"'default'\"\n class=\"sky-vertical-tabset-group-header-chevron\"\n [direction]=\"open ? 'up' : 'down'\"\n [disabled]=\"disabled\"\n (directionChange)=\"toggleMenuOpen()\"\n (keyup.enter)=\"$event.stopPropagation()\"\n >\n </sky-chevron>\n <ng-container *skyThemeIf=\"'modern'\">\n <button *ngIf=\"!open\"\n class=\"sky-btn sky-btn-icon-borderless sky-vertical-tabset-group-header-chevron\"\n type=\"button\"\n >\n <sky-icon\n icon=\"chevron-right\"\n iconType=\"skyux\"\n >\n </sky-icon>\n </button>\n <button *ngIf=\"open\"\n class=\"sky-btn sky-btn-icon-borderless sky-vertical-tabset-group-header-chevron\"\n type=\"button\"\n >\n <sky-icon\n icon=\"chevron-down\"\n iconType=\"skyux\"\n >\n </sky-icon>\n </button>\n </ng-container>\n </div>\n <div\n class=\"sky-vertical-tabset-group-content\"\n *ngIf=\"open\"\n [@tabSlide]\n >\n <ng-content></ng-content>\n </div>\n</div>\n",
|
|
84
|
+
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
85
|
+
animations: [
|
|
86
|
+
trigger('tabSlide', [
|
|
87
|
+
transition(':enter', [
|
|
88
|
+
style({
|
|
89
|
+
height: '0',
|
|
90
|
+
visibility: 'hidden'
|
|
91
|
+
}),
|
|
92
|
+
animate('150ms ease-in', style({
|
|
93
|
+
height: '*',
|
|
94
|
+
visibility: 'visible'
|
|
95
|
+
}))
|
|
96
|
+
]),
|
|
97
|
+
transition(':leave', [
|
|
98
|
+
style({
|
|
99
|
+
height: '*',
|
|
100
|
+
visibility: 'visible'
|
|
101
|
+
}),
|
|
102
|
+
animate('150ms ease-in', style({
|
|
103
|
+
height: '0',
|
|
104
|
+
visibility: 'hidden'
|
|
105
|
+
}))
|
|
106
|
+
])
|
|
107
|
+
])
|
|
108
|
+
],
|
|
109
|
+
styles: [".sky-vertical-tabset-group{border-bottom:1px solid #e2e3e4;margin:5px 0 5px 5px}.sky-vertical-tabset-group-header{cursor:pointer;display:flex;justify-content:space-between}.sky-vertical-tabset-group-header:focus{outline:dotted thin;outline:-webkit-focus-ring-color auto 5px}.sky-vertical-tabset-group-content{overflow:hidden;border-top:1px solid #e2e3e4}:host ::ng-deep .sky-vertical-tabset-group-header-chevron>button{font-size:14px!important}.sky-vertical-tabset-disabled{cursor:not-allowed;pointer-events:none;font-style:normal}.sky-theme-modern .sky-vertical-tabset-group,:host-context(.sky-theme-modern) .sky-vertical-tabset-group{border:none}.sky-theme-modern .sky-vertical-tabset-group-content,:host-context(.sky-theme-modern) .sky-vertical-tabset-group-content{border:none;padding-left:25px}.sky-theme-modern .sky-vertical-tabset-group-header,:host-context(.sky-theme-modern) .sky-vertical-tabset-group-header{position:relative}.sky-theme-modern .sky-vertical-tabset-group-header-chevron,:host-context(.sky-theme-modern) .sky-vertical-tabset-group-header-chevron{position:absolute;top:6px;right:5px}"]
|
|
110
|
+
})
|
|
111
|
+
], SkyVerticalTabsetGroupComponent);
|
|
112
|
+
export { SkyVerticalTabsetGroupComponent };
|
|
113
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmVydGljYWwtdGFic2V0LWdyb3VwLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0Bza3l1eC90YWJzLyIsInNvdXJjZXMiOlsibW9kdWxlcy92ZXJ0aWNhbC10YWJzZXQvdmVydGljYWwtdGFic2V0LWdyb3VwLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUNMLHVCQUF1QixFQUN2QixpQkFBaUIsRUFDakIsU0FBUyxFQUNULGVBQWUsRUFDZixLQUFLLEVBQ0wsU0FBUyxFQUNULE1BQU0sRUFDTixTQUFTLEVBQ1YsTUFBTSxlQUFlLENBQUM7QUFFdkIsT0FBTyxFQUNMLE9BQU8sRUFDUCxLQUFLLEVBQ0wsVUFBVSxFQUNWLE9BQU8sRUFDUixNQUFNLHFCQUFxQixDQUFDO0FBRTdCLE9BQU8sRUFDTCxPQUFPLEVBQ1IsTUFBTSxNQUFNLENBQUM7QUFFZCxPQUFPLEVBQ0wsU0FBUyxFQUNWLE1BQU0sZ0JBQWdCLENBQUM7QUFFeEIsT0FBTyxFQUNMLHVCQUF1QixFQUN4QixNQUFNLDBCQUEwQixDQUFDO0FBRWxDLE9BQU8sRUFDTCx3QkFBd0IsRUFDekIsTUFBTSwyQkFBMkIsQ0FBQztBQWlDbkMsSUFBYSwrQkFBK0IsR0FBNUMsTUFBYSwrQkFBK0I7SUFxQzFDLFlBQ1UsVUFBb0MsRUFDcEMsU0FBNEI7UUFENUIsZUFBVSxHQUFWLFVBQVUsQ0FBMEI7UUFDcEMsY0FBUyxHQUFULFNBQVMsQ0FBbUI7UUFSOUIsa0JBQWEsR0FBRyxJQUFJLE9BQU8sRUFBRSxDQUFDO1FBRTlCLHlCQUFvQixHQUFZLEtBQUssQ0FBQztRQUV0QyxVQUFLLEdBQVksS0FBSyxDQUFDO1FBc0N4QixlQUFVLEdBQUcsR0FBRyxFQUFFO1lBQ3ZCLElBQUksQ0FBQyxTQUFTLENBQUMsWUFBWSxFQUFFLENBQUM7UUFDaEMsQ0FBQyxDQUFBO1FBRU0sZUFBVSxHQUFHLEdBQUcsRUFBRTtZQUN2Qiw4RkFBOEY7WUFDOUYsSUFBSSxDQUFD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QUNYLFVBQVUsRUFBRSxTQUFTO3FCQUN0QixDQUFDO29CQUNGLE9BQU8sQ0FBQyxlQUFlLEVBQUUsS0FBSyxDQUFDO3dCQUM3QixNQUFNLEVBQUUsR0FBRzt3QkFDWCxVQUFVLEVBQUUsUUFBUTtxQkFDckIsQ0FBQyxDQUFDO2lCQUNKLENBQUM7YUFDSCxDQUFDO1NBQ0g7O0tBQ0osQ0FBQztHQUNXLCtCQUErQixDQXdGM0M7U0F4RlksK0JBQStCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gIENoYW5nZURldGVjdG9yUmVmLFxuICBDb21wb25lbnQsXG4gIENvbnRlbnRDaGlsZHJlbixcbiAgSW5wdXQsXG4gIE9uRGVzdHJveSxcbiAgT25Jbml0LFxuICBRdWVyeUxpc3Rcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7XG4gIGFuaW1hdGUsXG4gIHN0eWxlLFxuICB0cmFuc2l0aW9uLFxuICB0cmlnZ2VyXG59IGZyb20gJ0Bhbmd1bGFyL2FuaW1hdGlvbnMnO1xuXG5pbXBvcnQge1xuICBTdWJqZWN0XG59IGZyb20gJ3J4anMnO1xuXG5pbXBvcnQge1xuICB0YWtlVW50aWxcbn0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuXG5pbXBvcnQge1xuICBTa3lWZXJ0aWNhbFRhYkNvbXBvbmVudFxufSBmcm9tICcuL3ZlcnRpY2FsLXRhYi5jb21wb25lbnQnO1xuXG5pbXBvcnQge1xuICBTa3lWZXJ0aWNhbFRhYnNldFNlcnZpY2Vcbn0gZnJvbSAnLi92ZXJ0aWNhbC10YWJzZXQuc2VydmljZSc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3NreS12ZXJ0aWNhbC10YWJzZXQtZ3JvdXAnLFxuICB0ZW1wbGF0ZVVybDogJy4vdmVydGljYWwtdGFic2V0LWdyb3VwLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vdmVydGljYWwtdGFic2V0LWdyb3VwLmNvbXBvbmVudC5zY3NzJ10sXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICBhbmltYXRpb25zOiBbXG4gICAgdHJpZ2dlcihcbiAgICAgICd0YWJTbGlkZScsIFtcbiAgICAgICAgdHJhbnNpdGlvbignOmVudGVyJywgW1xuICAgICAgICAgIHN0eWxlKHtcbiAgICAgICAgICAgIGhlaWdodDogJzAnLFxuICAgICAgICAgICAgdmlzaWJpbGl0eTogJ2hpZGRlbidcbiAgICAgICAgICB9KSxcbiAgICAgICAgICBhbmltYXRlKCcxNTBtcyBlYXNlLWluJywgc3R5bGUoe1xuICAgICAgICAgICAgaGVpZ2h0OiAnKicsXG4gICAgICAgICAgICB2aXNpYmlsaXR5OiAndmlzaWJsZSdcbiAgICAgICAgICB9KSlcbiAgICAgICAgXSksXG4gICAgICAgIHRyYW5zaXRpb24oJzpsZWF2ZScsIFtcbiAgICAgICAgICBzdHlsZSh7XG4gICAgICAgICAgICBoZWlnaHQ6ICcqJyxcbiAgICAgICAgICAgIHZpc2liaWxpdHk6ICd2aXNpYmxlJ1xuICAgICAgICAgIH0pLFxuICAgICAgICAgIGFuaW1hdGUoJzE1MG1zIGVhc2UtaW4nLCBzdHlsZSh7XG4gICAgICAgICAgICBoZWlnaHQ6ICcwJyxcbiAgICAgICAgICAgIHZpc2liaWxpdHk6ICdoaWRkZW4nXG4gICAgICAgICAgfSkpXG4gICAgICAgIF0pXG4gICAgICBdKVxuICAgIF1cbn0pXG5leHBvcnQgY2xhc3MgU2t5VmVydGljYWxUYWJzZXRHcm91cENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95IHtcblxuICAvKipcbiAgICogSW5kaWNhdGVzIHdoZXRoZXIgdG8gZGlzYWJsZSB0aGUgYWJpbGl0eSB0byBleHBhbmQgYW5kIGNvbGxhcHNlIHRoZSBncm91cC5cbiAgICogQGRlZmF1bHQgXCJmYWxzZVwiXG4gICAqL1xuICBASW5wdXQoKVxuICBwdWJsaWMgZGlzYWJsZWQ6IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIFNwZWNpZmllcyB0aGUgaGVhZGVyIGZvciB0aGUgY29sbGFwc2libGUgZ3JvdXAgb2YgdGFicy5cbiAgICovXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBncm91cEhlYWRpbmc6IHN0cmluZztcblxuICAvKipcbiAgICogSW5kaWNhdGVzIHdoZXRoZXIgdGhlIGNvbGxhcHNpYmxlIGdyb3VwIGlzIGV4cGFuZGVkLlxuICAgKiBAZGVmYXVsdCBcImZhbHNlXCJcbiAgICovXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBzZXQgb3Blbih2YWx1ZTogYm9vbGVhbikge1xuICAgIHRoaXMuX29wZW4gPSB2YWx1ZTtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgb3BlbigpOiBib29sZWFuIHtcbiAgICByZXR1cm4gIXRoaXMuZGlzYWJsZWQgJiYgdGhpcy5fb3BlbjtcbiAgfVxuXG4gIEBDb250ZW50Q2hpbGRyZW4oU2t5VmVydGljYWxUYWJDb21wb25lbnQpXG4gIHByaXZhdGUgdGFiczogUXVlcnlMaXN0PFNreVZlcnRpY2FsVGFiQ29tcG9uZW50PjtcblxuICBwcml2YXRlIG5nVW5zdWJzY3JpYmUgPSBuZXcgU3ViamVjdCgpO1xuXG4gIHByaXZhdGUgb3BlbkJlZm9yZVRhYnNIaWRkZW46IGJvb2xlYW4gPSBmYWxzZTtcblxuICBwcml2YXRlIF9vcGVuOiBib29sZWFuID0gZmFsc2U7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSB0YWJTZXJ2aWNlOiBTa3lWZXJ0aWNhbFRhYnNldFNlcnZpY2UsXG4gICAgcHJpdmF0ZSBjaGFuZ2VSZWY6IENoYW5nZURldGVjdG9yUmVmXG4gICkge31cblxuICBwdWJsaWMgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgdGhpcy50YWJTZXJ2aWNlLmhpZGluZ1RhYnNcbiAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLm5nVW5zdWJzY3JpYmUpKVxuICAgICAgLnN1YnNjcmliZSh0aGlzLnRhYnNIaWRkZW4pO1xuXG4gICAgdGhpcy50YWJTZXJ2aWNlLnNob3dpbmdUYWJzXG4gICAgICAucGlwZSh0YWtlVW50aWwodGhpcy5uZ1Vuc3Vic2NyaWJlKSlcbiAgICAgIC5zdWJzY3JpYmUodGhpcy50YWJzU2hvd24pO1xuXG4gICAgdGhpcy50YWJTZXJ2aWNlLnRhYkNsaWNrZWRcbiAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLm5nVW5zdWJzY3JpYmUpKVxuICAgICAgLnN1YnNjcmliZSh0aGlzLnRhYkNsaWNrZWQpO1xuICB9XG5cbiAgcHVibGljIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIHRoaXMubmdVbnN1YnNjcmliZS5uZXh0KCk7XG4gICAgdGhpcy5uZ1Vuc3Vic2NyaWJlLmNvbXBsZXRlKCk7XG4gIH1cblxuICBwdWJsaWMgdG9nZ2xlTWVudU9wZW4oKTogdm9pZCB7XG4gICAgaWYgKCF0aGlzLmRpc2FibGVkKSB7XG4gICAgICB0aGlzLm9wZW4gPSAhdGhpcy5vcGVuO1xuICAgIH1cblxuICAgIHRoaXMuY2hhbmdlUmVmLm1hcmtGb3JDaGVjaygpO1xuICB9XG5cbiAgcHVibGljIHN1Yk1lbnVPcGVuKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLnRhYnMgJiYgKHRoaXMudGFicy5maW5kKHQgPT4gdC5hY3RpdmUpICE9PSB1bmRlZmluZWQpO1xuICB9XG5cbiAgcHVibGljIHRhYkNsaWNrZWQgPSAoKSA9PiB7XG4gICAgdGhpcy5jaGFuZ2VSZWYubWFya0ZvckNoZWNrKCk7XG4gIH1cblxuICBwdWJsaWMgdGFic0hpZGRlbiA9ICgpID0+IHtcbiAgICAvLyB0aGlzIGZpeGVzIGFuIGFuaW1hdGlvbiBidWcgd2l0aCBuZ0lmIHdoZW4gdGhlIHBhcmVudCBjb21wb25lbnQgZ29lcyBmcm9tIHZpc2libGUgdG8gaGlkZGVuXG4gICAgdGhpcy5vcGVuQmVmb3JlVGFic0hpZGRlbiA9IHRoaXMub3BlbjtcbiAgICB0aGlzLm9wZW4gPSBmYWxzZTtcbiAgICB0aGlzLmNoYW5nZVJlZi5tYXJrRm9yQ2hlY2soKTtcbiAgfVxuXG4gIHB1YmxpYyB0YWJzU2hvd24gPSAoKSA9PiB7XG4gICAgdGhpcy5vcGVuID0gdGhpcy5vcGVuQmVmb3JlVGFic0hpZGRlbjtcbiAgICB0aGlzLmNoYW5nZVJlZi5tYXJrRm9yQ2hlY2soKTtcbiAgfVxufVxuIl19
|