@skyux/tabs 5.0.3 → 5.5.0-alpha.0
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/README.md +6 -4
- package/bundles/skyux-tabs-testing.umd.js +1 -1
- package/bundles/skyux-tabs.umd.js +267 -299
- package/documentation.json +829 -544
- package/esm2015/index.js +23 -0
- package/esm2015/index.js.map +1 -0
- package/esm2015/lib/modules/sectioned-form/sectioned-form-section.component.js +67 -0
- package/esm2015/lib/modules/sectioned-form/sectioned-form-section.component.js.map +1 -0
- package/esm2015/lib/modules/sectioned-form/sectioned-form.component.js +116 -0
- package/esm2015/lib/modules/sectioned-form/sectioned-form.component.js.map +1 -0
- package/esm2015/lib/modules/sectioned-form/sectioned-form.module.js +35 -0
- package/esm2015/lib/modules/sectioned-form/sectioned-form.module.js.map +1 -0
- package/esm2015/lib/modules/sectioned-form/sectioned-form.service.js +35 -0
- package/esm2015/lib/modules/sectioned-form/sectioned-form.service.js.map +1 -0
- package/esm2015/lib/modules/shared/sky-tabs-resources.module.js +52 -0
- package/esm2015/lib/modules/shared/sky-tabs-resources.module.js.map +1 -0
- package/esm2015/lib/modules/tabs/tab-button.component.js +76 -0
- package/esm2015/lib/modules/tabs/tab-button.component.js.map +1 -0
- package/esm2015/lib/modules/tabs/tab-index.js +2 -0
- package/esm2015/lib/modules/tabs/tab-index.js.map +1 -0
- package/esm2015/lib/modules/tabs/tab.component.js +135 -0
- package/esm2015/lib/modules/tabs/tab.component.js.map +1 -0
- package/esm2015/lib/modules/tabs/tabs.module.js +57 -0
- package/esm2015/lib/modules/tabs/tabs.module.js.map +1 -0
- package/esm2015/lib/modules/tabs/tabset-active-tab-unregistered-args.js +2 -0
- package/esm2015/lib/modules/tabs/tabset-active-tab-unregistered-args.js.map +1 -0
- package/esm2015/lib/modules/tabs/tabset-adapter.service.js +56 -0
- package/esm2015/lib/modules/tabs/tabset-adapter.service.js.map +1 -0
- package/esm2015/lib/modules/tabs/tabset-buttons-display-mode.js +2 -0
- package/esm2015/lib/modules/tabs/tabset-buttons-display-mode.js.map +1 -0
- package/esm2015/lib/modules/tabs/tabset-nav-button.component.js +119 -0
- package/esm2015/lib/modules/tabs/tabset-nav-button.component.js.map +1 -0
- package/esm2015/lib/modules/tabs/tabset-permalink.service.js +126 -0
- package/esm2015/lib/modules/tabs/tabset-permalink.service.js.map +1 -0
- package/esm2015/lib/modules/tabs/tabset-style.js +2 -0
- package/esm2015/lib/modules/tabs/tabset-style.js.map +1 -0
- package/esm2015/lib/modules/tabs/tabset-tab-indexes-change.js +2 -0
- package/esm2015/lib/modules/tabs/tabset-tab-indexes-change.js.map +1 -0
- package/esm2015/lib/modules/tabs/tabset.component.js +405 -0
- package/esm2015/lib/modules/tabs/tabset.component.js.map +1 -0
- package/esm2015/lib/modules/tabs/tabset.service.js +110 -0
- package/esm2015/lib/modules/tabs/tabset.service.js.map +1 -0
- package/esm2015/lib/modules/vertical-tabset/vertical-tab-media-query.service.js +72 -0
- package/esm2015/lib/modules/vertical-tabset/vertical-tab-media-query.service.js.map +1 -0
- package/esm2015/lib/modules/vertical-tabset/vertical-tab.component.js +203 -0
- package/esm2015/lib/modules/vertical-tabset/vertical-tab.component.js.map +1 -0
- package/esm2015/lib/modules/vertical-tabset/vertical-tabset-adapter.service.js +48 -0
- package/esm2015/lib/modules/vertical-tabset/vertical-tabset-adapter.service.js.map +1 -0
- package/esm2015/lib/modules/vertical-tabset/vertical-tabset-group.component.js +89 -0
- package/esm2015/lib/modules/vertical-tabset/vertical-tabset-group.component.js.map +1 -0
- package/esm2015/lib/modules/vertical-tabset/vertical-tabset.component.js +157 -0
- package/esm2015/lib/modules/vertical-tabset/vertical-tabset.component.js.map +1 -0
- package/esm2015/lib/modules/vertical-tabset/vertical-tabset.module.js +60 -0
- package/esm2015/lib/modules/vertical-tabset/vertical-tabset.module.js.map +1 -0
- package/esm2015/lib/modules/vertical-tabset/vertical-tabset.service.js +170 -0
- package/esm2015/lib/modules/vertical-tabset/vertical-tabset.service.js.map +1 -0
- package/esm2015/skyux-tabs.js +2 -2
- package/esm2015/skyux-tabs.js.map +1 -0
- package/esm2015/testing/public-api.js +1 -1
- package/esm2015/testing/public-api.js.map +1 -0
- package/esm2015/testing/skyux-tabs-testing.js +1 -1
- package/esm2015/testing/skyux-tabs-testing.js.map +1 -0
- package/esm2015/testing/tabs/tab-fixture-tab.js +1 -1
- package/esm2015/testing/tabs/tab-fixture-tab.js.map +1 -0
- package/esm2015/testing/tabs/tabset-fixture.js +2 -2
- package/esm2015/testing/tabs/tabset-fixture.js.map +1 -0
- package/fesm2015/skyux-tabs-testing.js +1 -1
- package/fesm2015/skyux-tabs-testing.js.map +1 -1
- package/fesm2015/skyux-tabs.js +382 -401
- package/fesm2015/skyux-tabs.js.map +1 -1
- package/index.d.ts +16 -0
- package/{modules → lib/modules}/sectioned-form/sectioned-form-section.component.d.ts +0 -3
- package/{modules → lib/modules}/sectioned-form/sectioned-form.component.d.ts +0 -0
- package/{modules → lib/modules}/sectioned-form/sectioned-form.module.d.ts +0 -0
- package/{modules → lib/modules}/sectioned-form/sectioned-form.service.d.ts +0 -0
- package/{modules → lib/modules}/shared/sky-tabs-resources.module.d.ts +0 -0
- package/{modules → lib/modules}/tabs/tab-button.component.d.ts +2 -2
- package/{modules → lib/modules}/tabs/tab-index.d.ts +0 -0
- package/{modules → lib/modules}/tabs/tab.component.d.ts +0 -0
- package/{modules → lib/modules}/tabs/tabs.module.d.ts +0 -0
- package/{modules → lib/modules}/tabs/tabset-active-tab-unregistered-args.d.ts +0 -0
- package/{modules → lib/modules}/tabs/tabset-adapter.service.d.ts +0 -0
- package/{modules → lib/modules}/tabs/tabset-buttons-display-mode.d.ts +0 -0
- package/{modules → lib/modules}/tabs/tabset-nav-button.component.d.ts +0 -0
- package/{modules → lib/modules}/tabs/tabset-permalink.service.d.ts +0 -0
- package/{modules → lib/modules}/tabs/tabset-style.d.ts +0 -0
- package/{modules → lib/modules}/tabs/tabset-tab-indexes-change.d.ts +0 -0
- package/{modules → lib/modules}/tabs/tabset.component.d.ts +1 -1
- package/{modules → lib/modules}/tabs/tabset.service.d.ts +0 -0
- package/{modules → lib/modules}/vertical-tabset/vertical-tab-media-query.service.d.ts +0 -0
- package/{modules → lib/modules}/vertical-tabset/vertical-tab.component.d.ts +8 -13
- package/{modules → lib/modules}/vertical-tabset/vertical-tabset-adapter.service.d.ts +0 -0
- package/{modules → lib/modules}/vertical-tabset/vertical-tabset-group.component.d.ts +2 -2
- package/{modules → lib/modules}/vertical-tabset/vertical-tabset.component.d.ts +17 -2
- package/{modules → lib/modules}/vertical-tabset/vertical-tabset.module.d.ts +4 -3
- package/{modules → lib/modules}/vertical-tabset/vertical-tabset.service.d.ts +0 -0
- package/package.json +11 -11
- package/skyux-tabs.d.ts +1 -1
- package/LICENSE +0 -21
- package/bundles/skyux-tabs-testing.umd.js.map +0 -1
- package/bundles/skyux-tabs.umd.js.map +0 -1
- package/esm2015/modules/sectioned-form/sectioned-form-section.component.js +0 -71
- package/esm2015/modules/sectioned-form/sectioned-form.component.js +0 -116
- package/esm2015/modules/sectioned-form/sectioned-form.module.js +0 -43
- package/esm2015/modules/sectioned-form/sectioned-form.service.js +0 -35
- package/esm2015/modules/shared/sky-tabs-resources.module.js +0 -41
- package/esm2015/modules/tabs/tab-button.component.js +0 -65
- package/esm2015/modules/tabs/tab-index.js +0 -2
- package/esm2015/modules/tabs/tab.component.js +0 -134
- package/esm2015/modules/tabs/tabs.module.js +0 -63
- package/esm2015/modules/tabs/tabset-active-tab-unregistered-args.js +0 -2
- package/esm2015/modules/tabs/tabset-adapter.service.js +0 -54
- package/esm2015/modules/tabs/tabset-buttons-display-mode.js +0 -2
- package/esm2015/modules/tabs/tabset-nav-button.component.js +0 -117
- package/esm2015/modules/tabs/tabset-permalink.service.js +0 -119
- package/esm2015/modules/tabs/tabset-style.js +0 -2
- package/esm2015/modules/tabs/tabset-tab-indexes-change.js +0 -2
- package/esm2015/modules/tabs/tabset.component.js +0 -402
- package/esm2015/modules/tabs/tabset.service.js +0 -111
- package/esm2015/modules/vertical-tabset/vertical-tab-media-query.service.js +0 -72
- package/esm2015/modules/vertical-tabset/vertical-tab.component.js +0 -187
- package/esm2015/modules/vertical-tabset/vertical-tabset-adapter.service.js +0 -48
- package/esm2015/modules/vertical-tabset/vertical-tabset-group.component.js +0 -134
- package/esm2015/modules/vertical-tabset/vertical-tabset.component.js +0 -152
- package/esm2015/modules/vertical-tabset/vertical-tabset.module.js +0 -60
- package/esm2015/modules/vertical-tabset/vertical-tabset.service.js +0 -170
- package/esm2015/public-api.js +0 -23
- package/public-api.d.ts +0 -16
|
@@ -1,111 +0,0 @@
|
|
|
1
|
-
import { Injectable } from '@angular/core';
|
|
2
|
-
import { BehaviorSubject, Subject } from 'rxjs';
|
|
3
|
-
import * as i0 from "@angular/core";
|
|
4
|
-
/**
|
|
5
|
-
* @internal
|
|
6
|
-
*/
|
|
7
|
-
export 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
|
-
/* istanbul ignore else */
|
|
31
|
-
if (config.emitChange) {
|
|
32
|
-
this._activeTabIndex.next(value);
|
|
33
|
-
}
|
|
34
|
-
}
|
|
35
|
-
}
|
|
36
|
-
/**
|
|
37
|
-
* Registers a tab component.
|
|
38
|
-
*/
|
|
39
|
-
registerTab(tabIndex) {
|
|
40
|
-
if (tabIndex === undefined) {
|
|
41
|
-
tabIndex = this.tabCounter;
|
|
42
|
-
this.tabCounter++;
|
|
43
|
-
}
|
|
44
|
-
this.tabs.push({ tabIndex });
|
|
45
|
-
return tabIndex;
|
|
46
|
-
}
|
|
47
|
-
updateTabIndex(currentTabIndex, newTabIndex) {
|
|
48
|
-
const found = this.tabs.find(tab => this.tabIndexesEqual(tab.tabIndex, currentTabIndex));
|
|
49
|
-
found.tabIndex = newTabIndex;
|
|
50
|
-
}
|
|
51
|
-
/**
|
|
52
|
-
* Unregisters a tab component.
|
|
53
|
-
*/
|
|
54
|
-
unregisterTab(tabIndex) {
|
|
55
|
-
const index = this.tabs.findIndex(tab => this.tabIndexesEqual(tab.tabIndex, tabIndex));
|
|
56
|
-
// Notify the tabset component when an active tab is unregistered.
|
|
57
|
-
if (this.isTabIndexActive(this.tabs[index].tabIndex)) {
|
|
58
|
-
this._activeTabUnregistered.next({
|
|
59
|
-
arrayIndex: index
|
|
60
|
-
});
|
|
61
|
-
}
|
|
62
|
-
this.tabs.splice(index, 1);
|
|
63
|
-
}
|
|
64
|
-
/**
|
|
65
|
-
* Unregisters all tab components at once.
|
|
66
|
-
*/
|
|
67
|
-
unregisterAll() {
|
|
68
|
-
this.tabs = [];
|
|
69
|
-
}
|
|
70
|
-
/**
|
|
71
|
-
* Compares two tab indexes and returns `true` if they are equal.
|
|
72
|
-
*/
|
|
73
|
-
tabIndexesEqual(tabIndex1, tabIndex2) {
|
|
74
|
-
return (tabIndex1 === tabIndex2 ||
|
|
75
|
-
+tabIndex1 === +tabIndex2);
|
|
76
|
-
}
|
|
77
|
-
/**
|
|
78
|
-
* Verifies if a provided tab index is registered.
|
|
79
|
-
*/
|
|
80
|
-
isValidTabIndex(tabIndex) {
|
|
81
|
-
return this.tabs.some(tab => this.tabIndexesEqual(tab.tabIndex, tabIndex));
|
|
82
|
-
}
|
|
83
|
-
/**
|
|
84
|
-
* Activates the first registered tab.
|
|
85
|
-
*/
|
|
86
|
-
activateFirstTab() {
|
|
87
|
-
const firstTabIndex = this.tabs[0] && this.tabs[0].tabIndex;
|
|
88
|
-
if (firstTabIndex !== undefined) {
|
|
89
|
-
this.setActiveTabIndex(firstTabIndex);
|
|
90
|
-
return firstTabIndex;
|
|
91
|
-
}
|
|
92
|
-
}
|
|
93
|
-
/**
|
|
94
|
-
* Activates the next registered tab, or the previous one based on a provided array index.
|
|
95
|
-
*/
|
|
96
|
-
activateNearestTab(arrayIndex) {
|
|
97
|
-
const newActiveTab = this.tabs[arrayIndex] || this.tabs[arrayIndex - 1];
|
|
98
|
-
if (newActiveTab) {
|
|
99
|
-
this.currentActiveTabIndex = newActiveTab.tabIndex;
|
|
100
|
-
}
|
|
101
|
-
}
|
|
102
|
-
isTabIndexActive(tabIndex) {
|
|
103
|
-
return this.tabIndexesEqual(tabIndex, this.currentActiveTabIndex);
|
|
104
|
-
}
|
|
105
|
-
}
|
|
106
|
-
SkyTabsetService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0, type: SkyTabsetService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
107
|
-
SkyTabsetService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0, type: SkyTabsetService });
|
|
108
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0, type: SkyTabsetService, decorators: [{
|
|
109
|
-
type: Injectable
|
|
110
|
-
}] });
|
|
111
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFic2V0LnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90YWJzL3NyYy9tb2R1bGVzL3RhYnMvdGFic2V0LnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLFVBQVUsRUFDWCxNQUFNLGVBQWUsQ0FBQztBQUV2QixPQUFPLEVBQ0wsZUFBZSxFQUVmLE9BQU8sRUFDUixNQUFNLE1BQU0sQ0FBQzs7QUFVZDs7R0FFRztBQUVILE1BQU0sT0FBTyxnQkFBZ0I7SUFEN0I7UUFXUywwQkFBcUIsR0FBZ0IsQ0FBQyxDQUFDO1FBRXRDLG9CQUFlLEdBQUcsSUFBSSxlQUFlLENBQWMsQ0FBQyxDQUFDLENBQUM7UUFFdEQsMkJBQXNCLEdBQUcsSUFBSSxPQUFPLEVBQXNDLENBQUM7UUFFM0UsU0FBSSxHQUVOLEVBQUUsQ0FBQztRQUVELGVBQVUsR0FBRyxDQUFDLENBQUM7S0F1R3hCO0lBekhDLElBQVcscUJBQXFCO1FBQzlCLE9BQU8sSUFBSSxDQUFDLHNCQUFzQixDQUFDLFlBQVksRUFBRSxDQUFDO0lBQ3BELENBQUM7SUFFRCxJQUFXLGNBQWM7UUFDdkIsT0FBTyxJQUFJLENBQUMsZUFBZSxDQUFDLFlBQVksRUFBRSxDQUFDO0lBQzdDLENBQUM7SUFjRDs7T0FFRztJQUNJLGlCQUFpQixDQUFDLEtBQWtCLEVBQUUsTUFBTSxHQUFHO1FBQ3BELFVBQVUsRUFBRSxJQUFJO0tBQ2pCO1FBQ0MsSUFDRSxLQUFLLEtBQUssU0FBUztZQUNuQixDQUFDLElBQUksQ0FBQyxlQUFlLENBQUMsS0FBSyxFQUFFLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxFQUN4RDtZQUNBLElBQUksQ0FBQyxxQkFBcUIsR0FBRyxLQUFLLENBQUM7WUFDbkMsMEJBQTBCO1lBQzFCLElBQUksTUFBTSxDQUFDLFVBQVUsRUFBRTtnQkFDckIsSUFBSSxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsS0FB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QTFIVSxnQkFBZ0I7a0hBQWhCLGdCQUFnQjs0RkFBaEIsZ0JBQWdCO2tCQUQ1QixVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgSW5qZWN0YWJsZVxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHtcbiAgQmVoYXZpb3JTdWJqZWN0LFxuICBPYnNlcnZhYmxlLFxuICBTdWJqZWN0XG59IGZyb20gJ3J4anMnO1xuXG5pbXBvcnQge1xuICBTa3lUYWJJbmRleFxufSBmcm9tICcuL3RhYi1pbmRleCc7XG5cbmltcG9ydCB7XG4gIFNreVRhYnNldEFjdGl2ZVRhYlVucmVnaXN0ZXJlZEFyZ3Ncbn0gZnJvbSAnLi90YWJzZXQtYWN0aXZlLXRhYi11bnJlZ2lzdGVyZWQtYXJncyc7XG5cbi8qKlxuICogQGludGVybmFsXG4gKi9cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBTa3lUYWJzZXRTZXJ2aWNlIHtcblxuICBwdWJsaWMgZ2V0IGFjdGl2ZVRhYlVucmVnaXN0ZXJlZCgpOiBPYnNlcnZhYmxlPFNreVRhYnNldEFjdGl2ZVRhYlVucmVnaXN0ZXJlZEFyZ3M+IHtcbiAgICByZXR1cm4gdGhpcy5fYWN0aXZlVGFiVW5yZWdpc3RlcmVkLmFzT2JzZXJ2YWJsZSgpO1xuICB9XG5cbiAgcHVibGljIGdldCBhY3RpdmVUYWJJbmRleCgpOiBPYnNlcnZhYmxlPFNreVRhYkluZGV4PiB7XG4gICAgcmV0dXJuIHRoaXMuX2FjdGl2ZVRhYkluZGV4LmFzT2JzZXJ2YWJsZSgpO1xuICB9XG5cbiAgcHVibGljIGN1cnJlbnRBY3RpdmVUYWJJbmRleDogU2t5VGFiSW5kZXggPSAwO1xuXG4gIHByaXZhdGUgX2FjdGl2ZVRhYkluZGV4ID0gbmV3IEJlaGF2aW9yU3ViamVjdDxTa3lUYWJJbmRleD4oMCk7XG5cbiAgcHJpdmF0ZSBfYWN0aXZlVGFiVW5yZWdpc3RlcmVkID0gbmV3IFN1YmplY3Q8U2t5VGFic2V0QWN0aXZlVGFiVW5yZWdpc3RlcmVkQXJncz4oKTtcblxuICBwcml2YXRlIHRhYnM6IHtcbiAgICB0YWJJbmRleDogU2t5VGFiSW5kZXg7XG4gIH1bXSA9IFtdO1xuXG4gIHByaXZhdGUgdGFiQ291bnRlciA9IDA7XG5cbiAgLyoqXG4gICAqIFNldHMgdGhlIGFjdGl2ZSB0YWIgYnkgaXRzIHVuaXF1ZSBgdGFiSW5kZXhgIHByb3BlcnR5LlxuICAgKi9cbiAgcHVibGljIHNldEFjdGl2ZVRhYkluZGV4KHZhbHVlOiBTa3lUYWJJbmRleCwgY29uZmlnID0ge1xuICAgIGVtaXRDaGFuZ2U6IHRydWVcbiAgfSk6IHZvaWQge1xuICAgIGlmIChcbiAgICAgIHZhbHVlICE9PSB1bmRlZmluZWQgJiZcbiAgICAgICF0aGlzLnRhYkluZGV4ZXNFcXVhbCh2YWx1ZSwgdGhpcy5jdXJyZW50QWN0aXZlVGFiSW5kZXgpXG4gICAgKSB7XG4gICAgICB0aGlzLmN1cnJlbnRBY3RpdmVUYWJJbmRleCA9IHZhbHVlO1xuICAgICAgLyogaXN0YW5idWwgaWdub3JlIGVsc2UgKi9cbiAgICAgIGlmIChjb25maWcuZW1pdENoYW5nZSkge1xuICAgICAgICB0aGlzLl9hY3RpdmVUYWJJbmRleC5uZXh0KHZhbHVlKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogUmVnaXN0ZXJzIGEgdGFiIGNvbXBvbmVudC5cbiAgICovXG4gIHB1YmxpYyByZWdpc3RlclRhYih0YWJJbmRleD86IFNreVRhYkluZGV4KTogU2t5VGFiSW5kZXgge1xuICAgIGlmICh0YWJJbmRleCA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICB0YWJJbmRleCA9IHRoaXMudGFiQ291bnRlcjtcbiAgICAgIHRoaXMudGFiQ291bnRlcisrO1xuICAgIH1cblxuICAgIHRoaXMudGFicy5wdXNoKHsgdGFiSW5kZXggfSk7XG5cbiAgICByZXR1cm4gdGFiSW5kZXg7XG4gIH1cblxuICBwdWJsaWMgdXBkYXRlVGFiSW5kZXgoY3VycmVudFRhYkluZGV4OiBTa3lUYWJJbmRleCwgbmV3VGFiSW5kZXg6IFNreVRhYkluZGV4KTogdm9pZCB7XG4gICAgY29uc3QgZm91bmQgPSB0aGlzLnRhYnMuZmluZCh0YWIgPT4gdGhpcy50YWJJbmRleGVzRXF1YWwodGFiLnRhYkluZGV4LCBjdXJyZW50VGFiSW5kZXgpKTtcbiAgICBmb3VuZC50YWJJbmRleCA9IG5ld1RhYkluZGV4O1xuICB9XG5cbiAgLyoqXG4gICAqIFVucmVnaXN0ZXJzIGEgdGFiIGNvbXBvbmVudC5cbiAgICovXG4gIHB1YmxpYyB1bnJlZ2lzdGVyVGFiKHRhYkluZGV4OiBTa3lUYWJJbmRleCk6IHZvaWQge1xuICAgIGNvbnN0IGluZGV4ID0gdGhpcy50YWJzLmZpbmRJbmRleCh0YWIgPT4gdGhpcy50YWJJbmRleGVzRXF1YWwodGFiLnRhYkluZGV4LCB0YWJJbmRleCkpO1xuXG4gICAgLy8gTm90aWZ5IHRoZSB0YWJzZXQgY29tcG9uZW50IHdoZW4gYW4gYWN0aXZlIHRhYiBpcyB1bnJlZ2lzdGVyZWQuXG4gICAgaWYgKHRoaXMuaXNUYWJJbmRleEFjdGl2ZSh0aGlzLnRhYnNbaW5kZXhdLnRhYkluZGV4KSkge1xuICAgICAgdGhpcy5fYWN0aXZlVGFiVW5yZWdpc3RlcmVkLm5leHQoe1xuICAgICAgICBhcnJheUluZGV4OiBpbmRleFxuICAgICAgfSk7XG4gICAgfVxuXG4gICAgdGhpcy50YWJzLnNwbGljZShpbmRleCwgMSk7XG4gIH1cblxuICAvKipcbiAgICogVW5yZWdpc3RlcnMgYWxsIHRhYiBjb21wb25lbnRzIGF0IG9uY2UuXG4gICAqL1xuICBwdWJsaWMgdW5yZWdpc3RlckFsbCgpOiB2b2lkIHtcbiAgICB0aGlzLnRhYnMgPSBbXTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDb21wYXJlcyB0d28gdGFiIGluZGV4ZXMgYW5kIHJldHVybnMgYHRydWVgIGlmIHRoZXkgYXJlIGVxdWFsLlxuICAgKi9cbiAgcHVibGljIHRhYkluZGV4ZXNFcXVhbCh0YWJJbmRleDE6IFNreVRhYkluZGV4LCB0YWJJbmRleDI6IFNreVRhYkluZGV4KTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIChcbiAgICAgIHRhYkluZGV4MSA9PT0gdGFiSW5kZXgyIHx8XG4gICAgICArdGFiSW5kZXgxID09PSArdGFiSW5kZXgyXG4gICAgKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBWZXJpZmllcyBpZiBhIHByb3ZpZGVkIHRhYiBpbmRleCBpcyByZWdpc3RlcmVkLlxuICAgKi9cbiAgcHVibGljIGlzVmFsaWRUYWJJbmRleCh0YWJJbmRleDogU2t5VGFiSW5kZXgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy50YWJzLnNvbWUodGFiID0+IHRoaXMudGFiSW5kZXhlc0VxdWFsKHRhYi50YWJJbmRleCwgdGFiSW5kZXgpKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBBY3RpdmF0ZXMgdGhlIGZpcnN0IHJlZ2lzdGVyZWQgdGFiLlxuICAgKi9cbiAgcHVibGljIGFjdGl2YXRlRmlyc3RUYWIoKTogU2t5VGFiSW5kZXggfCB1bmRlZmluZWQge1xuICAgIGNvbnN0IGZpcnN0VGFiSW5kZXggPSB0aGlzLnRhYnNbMF0gJiYgdGhpcy50YWJzWzBdLnRhYkluZGV4O1xuICAgIGlmIChmaXJzdFRhYkluZGV4ICE9PSB1bmRlZmluZWQpIHtcbiAgICAgIHRoaXMuc2V0QWN0aXZlVGFiSW5kZXgoZmlyc3RUYWJJbmRleCk7XG4gICAgICByZXR1cm4gZmlyc3RUYWJJbmRleDtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogQWN0aXZhdGVzIHRoZSBuZXh0IHJlZ2lzdGVyZWQgdGFiLCBvciB0aGUgcHJldmlvdXMgb25lIGJhc2VkIG9uIGEgcHJvdmlkZWQgYXJyYXkgaW5kZXguXG4gICAqL1xuICBwdWJsaWMgYWN0aXZhdGVOZWFyZXN0VGFiKGFycmF5SW5kZXg6IG51bWJlcik6IHZvaWQge1xuICAgIGNvbnN0IG5ld0FjdGl2ZVRhYiA9IHRoaXMudGFic1thcnJheUluZGV4XSB8fCB0aGlzLnRhYnNbYXJyYXlJbmRleCAtIDFdO1xuICAgIGlmIChuZXdBY3RpdmVUYWIpIHtcbiAgICAgIHRoaXMuY3VycmVudEFjdGl2ZVRhYkluZGV4ID0gbmV3QWN0aXZlVGFiLnRhYkluZGV4O1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgaXNUYWJJbmRleEFjdGl2ZSh0YWJJbmRleDogU2t5VGFiSW5kZXgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy50YWJJbmRleGVzRXF1YWwodGFiSW5kZXgsIHRoaXMuY3VycmVudEFjdGl2ZVRhYkluZGV4KTtcbiAgfVxufVxuIl19
|
|
@@ -1,72 +0,0 @@
|
|
|
1
|
-
import { Injectable } from '@angular/core';
|
|
2
|
-
import { SkyMediaBreakpoints } from '@skyux/core';
|
|
3
|
-
import { BehaviorSubject } from 'rxjs';
|
|
4
|
-
import * as i0 from "@angular/core";
|
|
5
|
-
/**
|
|
6
|
-
* @internal
|
|
7
|
-
*/
|
|
8
|
-
export 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.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0, type: SkyVerticalTabMediaQueryService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
68
|
-
SkyVerticalTabMediaQueryService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0, type: SkyVerticalTabMediaQueryService });
|
|
69
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0, type: SkyVerticalTabMediaQueryService, decorators: [{
|
|
70
|
-
type: Injectable
|
|
71
|
-
}], ctorParameters: function () { return []; } });
|
|
72
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmVydGljYWwtdGFiLW1lZGlhLXF1ZXJ5LnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90YWJzL3NyYy9tb2R1bGVzL3ZlcnRpY2FsLXRhYnNldC92ZXJ0aWNhbC10YWItbWVkaWEtcXVlcnkuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsVUFBVSxFQUNYLE1BQU0sZUFBZSxDQUFDO0FBRXZCLE9BQU8sRUFDTCxtQkFBbUIsRUFFcEIsTUFBTSxhQUFhLENBQUM7QUFFckIsT0FBTyxFQUNMLGVBQWUsRUFFaEIsTUFBTSxNQUFNLENBQUM7O0FBRWQ7O0dBRUc7QUFFSCxNQUFNLE9BQU8sK0JBQStCO0lBVTFDO1FBSlEsbUJBQWMsR0FBRyxJQUFJLGVBQWUsQ0FBc0IsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBRXhFLGFBQVEsR0FBRyxtQkFBbUIsQ0FBQyxFQUFFLENBQUM7UUFHeEMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBQzFDLENBQUM7SUFWRCxJQUFXLE9BQU87UUFDaEIsT0FBTyxJQUFJLENBQUMsUUFBUSxDQUFDO0lBQ3ZCLENBQUM7SUFVTSxTQUFTLENBQUMsUUFBK0I7UUFDOUMsT0FBTyxJQUFJLENBQUMsY0FBYyxDQUFDLFNBQVMsQ0FBQztZQUNuQyxJQUFJLEVBQUUsQ0FBQyxXQUFnQyxFQUFFLEVBQUU7Z0JBQ3pDLFFBQVEsQ0FBQyxXQUFXLENBQUMsQ0FBQztZQUN4QixDQUFDO1NBQ0YsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVNLHFCQUFxQixDQUFDLEtBQWE7UUFDeEMsSUFBSSxVQUErQixDQUFDO1FBRXBDLElBQUksSUFBSSxDQUFDLHVCQUF1QixDQUFDLEtBQUssRUFBRSxtQkFBbUIsQ0FBQyxFQUFFLENBQUMsRUFBRTtZQUMvRCxVQUFVLEdBQUcsbUJBQW1CLENBQUMsRUFBRSxDQUFDO1NBQ3JDO2FBQU0sSUFBSSxJQUFJLENBQUMsdUJBQXVCLENBQUMsS0FBSyxFQUFFLG1CQUFtQixDQUFDLEVBQUUsQ0FBQyxFQUFFO1lBQ3RFLFVBQVUsR0FBRyxtQkFBbUIsQ0FBQyxFQUFFLENBQUM7U0FDckM7YUFBTSxJQUFJLElBQUksQ0FBQyx1QkFBdUIsQ0FBQyxLQUFLLEVBQUUsbUJBQW1CLENBQUMsRUFBRSxDQUFDLEVBQUU7WUFDdEUsVUFBVSxHQUFHLG1CQUFtQixDQUFDLEVBQUUsQ0FBQztTQUNyQzthQUFNO1lBQ0wsVUFBVSxHQUFHLG1CQUFtQixDQUFDLEVBQUUsQ0FBQztTQUNyQztRQUVELElBQUksQ0FBQyxRQUFRLEdBQUcsVUFBVSxDQUFDO1FBQzNCLElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUMxQyxDQUFDO0lBRU0sdUJBQXVCLENBQUMsS0FBYSxFQUFFLFVBQStCO1FBQzNFLE1BQU0scUJBQXFCLEdBQUcsR0FBRyxDQUFDO1FBQ2xDLE1BQU0scUJBQXFCLEdBQUcsR0FBRyxDQUFDO1FBQ2xDLE1BQU0scUJBQXFCLEdBQUcsR0FBRyxDQUFDO1FBQ2xDLE1BQU0scUJBQXFCLEdBQUcsR0FBRyxDQUFDO1FBQ2xDLE1BQU0scUJBQXFCLEdBQUcsSUFBSSxDQUFDO1FBQ25DLE1BQU0scUJBQXFCLEdBQUcsSUFBSSxDQUFDO1FBRW5DLFFBQVEsVUFBVSxFQUFFO1lBQ2xCLEtBQUssbUJBQW1CLENBQUMsRUFBRSxDQUFDLENBQUM7Z0JBQzNCLE9BQU8sQ0FBQyxLQUFLLElBQUkscUJBQXFCLENBQUMsQ0FBQzthQUN6QztZQUNELEtBQUssbUJBQW1CLENBQUMsRUFBRSxDQUFDLENBQUM7Z0JBQzNCLE9BQU8sQ0FBQyxLQUFLLElBQUkscUJBQXFCLElBQUksS0FBSyxJQUFJLHFCQUFxQixDQUFDLENBQUM7YUFDM0U7WUFDRCxLQUFLLG1CQUFtQixDQUFDLEVBQUUsQ0FBQyxDQUFDO2dCQUMzQixPQUFPLENBQUMsS0FBSyxJQUFJLHFCQUFxQixJQUFJLEtBQUssSUFBSSxxQkFBcUIsQ0FBQyxDQUFDO2FBQzNFO1lBQ0QsT0FBTyxDQUFDLENBQUM7Z0JBQ1AsT0FBTyxDQUFDLEtBQUssSUFBSSxxQkFBcUIsQ0FBQyxDQUFDO2FBQ3pDO1NBQ0Y7SUFDSCxDQUFDO0lBRU0sT0FBTztRQUNaLElBQUksQ0FBQyxjQUFjLENBQUMsUUFBUSxFQUFFLENBQUM7SUFDakMsQ0FBQzs7NkhBakVVLCtCQUErQjtpSUFBL0IsK0JBQStCOzRGQUEvQiwrQkFBK0I7a0JBRDNDLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBJbmplY3RhYmxlXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQge1xuICBTa3lNZWRpYUJyZWFrcG9pbnRzLFxuICBTa3lNZWRpYVF1ZXJ5TGlzdGVuZXJcbn0gZnJvbSAnQHNreXV4L2NvcmUnO1xuXG5pbXBvcnQge1xuICBCZWhhdmlvclN1YmplY3QsXG4gIFN1YnNjcmlwdGlvblxufSBmcm9tICdyeGpzJztcblxuLyoqXG4gKiBAaW50ZXJuYWxcbiAqL1xuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIFNreVZlcnRpY2FsVGFiTWVkaWFRdWVyeVNlcnZpY2Uge1xuXG4gIHB1YmxpYyBnZXQgY3VycmVudCgpOiBTa3lNZWRpYUJyZWFrcG9pbnRzIHtcbiAgICByZXR1cm4gdGhpcy5fY3VycmVudDtcbiAgfVxuXG4gIHByaXZhdGUgY3VycmVudFN1YmplY3QgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PFNreU1lZGlhQnJlYWtwb2ludHM+KHRoaXMuY3VycmVudCk7XG5cbiAgcHJpdmF0ZSBfY3VycmVudCA9IFNreU1lZGlhQnJlYWtwb2ludHMueHM7XG5cbiAgY29uc3RydWN0b3IoKSB7XG4gICAgdGhpcy5jdXJyZW50U3ViamVjdC5uZXh0KHRoaXMuX2N1cnJlbnQpO1xuICB9XG5cbiAgcHVibGljIHN1YnNjcmliZShsaXN0ZW5lcjogU2t5TWVkaWFRdWVyeUxpc3RlbmVyKTogU3Vic2NyaXB0aW9uIHtcbiAgICByZXR1cm4gdGhpcy5jdXJyZW50U3ViamVjdC5zdWJzY3JpYmUoe1xuICAgICAgbmV4dDogKGJyZWFrcG9pbnRzOiBTa3lNZWRpYUJyZWFrcG9pbnRzKSA9PiB7XG4gICAgICAgIGxpc3RlbmVyKGJyZWFrcG9pbnRzKTtcbiAgICAgIH1cbiAgICB9KTtcbiAgfVxuXG4gIHB1YmxpYyBzZXRCcmVha3BvaW50Rm9yV2lkdGgod2lkdGg6IG51bWJlcik6IHZvaWQge1xuICAgIGxldCBicmVha3BvaW50OiBTa3lNZWRpYUJyZWFrcG9pbnRzO1xuXG4gICAgaWYgKHRoaXMuaXNXaWR0aFdpdGhpbkJyZWFrcGlvbnQod2lkdGgsIFNreU1lZGlhQnJlYWtwb2ludHMueHMpKSB7XG4gICAgICBicmVha3BvaW50ID0gU2t5TWVkaWFCcmVha3BvaW50cy54cztcbiAgICB9IGVsc2UgaWYgKHRoaXMuaXNXaWR0aFdpdGhpbkJyZWFrcGlvbnQod2lkdGgsIFNreU1lZGlhQnJlYWtwb2ludHMuc20pKSB7XG4gICAgICBicmVha3BvaW50ID0gU2t5TWVkaWFCcmVha3BvaW50cy5zbTtcbiAgICB9IGVsc2UgaWYgKHRoaXMuaXNXaWR0aFdpdGhpbkJyZWFrcGlvbnQod2lkdGgsIFNreU1lZGlhQnJlYWtwb2ludHMubWQpKSB7XG4gICAgICBicmVha3BvaW50ID0gU2t5TWVkaWFCcmVha3BvaW50cy5tZDtcbiAgICB9IGVsc2Uge1xuICAgICAgYnJlYWtwb2ludCA9IFNreU1lZGlhQnJlYWtwb2ludHMubGc7XG4gICAgfVxuXG4gICAgdGhpcy5fY3VycmVudCA9IGJyZWFrcG9pbnQ7XG4gICAgdGhpcy5jdXJyZW50U3ViamVjdC5uZXh0KHRoaXMuX2N1cnJlbnQpO1xuICB9XG5cbiAgcHVibGljIGlzV2lkdGhXaXRoaW5CcmVha3Bpb250KHdpZHRoOiBudW1iZXIsIGJyZWFrcG9pbnQ6IFNreU1lZGlhQnJlYWtwb2ludHMpOiBib29sZWFuIHtcbiAgICBjb25zdCB4c0JyZWFrcG9pbnRNYXhQaXhlbHMgPSA3Njc7XG4gICAgY29uc3Qgc21CcmVha3BvaW50TWluUGl4ZWxzID0gNzY4O1xuICAgIGNvbnN0IHNtQnJlYWtwb2ludE1heFBpeGVscyA9IDk5MTtcbiAgICBjb25zdCBtZEJyZWFrcG9pbnRNaW5QaXhlbHMgPSA5OTI7XG4gICAgY29uc3QgbWRCcmVha3BvaW50TWF4UGl4ZWxzID0gMTE5OTtcbiAgICBjb25zdCBsZ0JyZWFrcG9pbnRNaW5QaXhlbHMgPSAxMjAwO1xuXG4gICAgc3dpdGNoIChicmVha3BvaW50KSB7XG4gICAgICBjYXNlIFNreU1lZGlhQnJlYWtwb2ludHMueHM6IHtcbiAgICAgICAgcmV0dXJuICh3aWR0aCA8PSB4c0JyZWFrcG9pbnRNYXhQaXhlbHMpO1xuICAgICAgfVxuICAgICAgY2FzZSBTa3lNZWRpYUJyZWFrcG9pbnRzLnNtOiB7XG4gICAgICAgIHJldHVybiAod2lkdGggPj0gc21CcmVha3BvaW50TWluUGl4ZWxzICYmIHdpZHRoIDw9IHNtQnJlYWtwb2ludE1heFBpeGVscyk7XG4gICAgICB9XG4gICAgICBjYXNlIFNreU1lZGlhQnJlYWtwb2ludHMubWQ6IHtcbiAgICAgICAgcmV0dXJuICh3aWR0aCA+PSBtZEJyZWFrcG9pbnRNaW5QaXhlbHMgJiYgd2lkdGggPD0gbWRCcmVha3BvaW50TWF4UGl4ZWxzKTtcbiAgICAgIH1cbiAgICAgIGRlZmF1bHQ6IHtcbiAgICAgICAgcmV0dXJuICh3aWR0aCA+PSBsZ0JyZWFrcG9pbnRNaW5QaXhlbHMpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBkZXN0cm95KCk6IHZvaWQge1xuICAgIHRoaXMuY3VycmVudFN1YmplY3QuY29tcGxldGUoKTtcbiAgfVxufVxuIl19
|
|
@@ -1,187 +0,0 @@
|
|
|
1
|
-
import { ChangeDetectionStrategy, Component, HostListener, Input, ViewChild } from '@angular/core';
|
|
2
|
-
import { SkyMediaQueryService } from '@skyux/core';
|
|
3
|
-
import { Subject } from 'rxjs';
|
|
4
|
-
import { takeUntil } from 'rxjs/operators';
|
|
5
|
-
import { SkyVerticalTabMediaQueryService } from './vertical-tab-media-query.service';
|
|
6
|
-
import * as i0 from "@angular/core";
|
|
7
|
-
import * as i1 from "./vertical-tabset-adapter.service";
|
|
8
|
-
import * as i2 from "./vertical-tabset.service";
|
|
9
|
-
import * as i3 from "./vertical-tab-media-query.service";
|
|
10
|
-
import * as i4 from "@skyux/indicators";
|
|
11
|
-
import * as i5 from "@angular/common";
|
|
12
|
-
export class SkyVerticalTabComponent {
|
|
13
|
-
constructor(adapterService, changeRef, tabsetService, verticalTabMediaQueryService) {
|
|
14
|
-
this.adapterService = adapterService;
|
|
15
|
-
this.changeRef = changeRef;
|
|
16
|
-
this.tabsetService = tabsetService;
|
|
17
|
-
this.verticalTabMediaQueryService = verticalTabMediaQueryService;
|
|
18
|
-
/**
|
|
19
|
-
* Indicates whether the tab is active when the tabset loads.
|
|
20
|
-
*/
|
|
21
|
-
this.active = false;
|
|
22
|
-
/**
|
|
23
|
-
* Indicates whether to disable the tab.
|
|
24
|
-
*/
|
|
25
|
-
this.disabled = false;
|
|
26
|
-
/**
|
|
27
|
-
* Indicates whether to indicate that the tab has an error.
|
|
28
|
-
* @internal This is used for sectioned forms and is not currently a supported design for pure vertical tabs.
|
|
29
|
-
*/
|
|
30
|
-
this.errorIndicator = false;
|
|
31
|
-
this.isMobile = false;
|
|
32
|
-
this._contentRendered = false;
|
|
33
|
-
this._mobileSubscription = new Subject();
|
|
34
|
-
this._ngUnsubscribe = new Subject();
|
|
35
|
-
this._showTabRightArrow = false;
|
|
36
|
-
}
|
|
37
|
-
/**
|
|
38
|
-
* Specifies the HTML element ID (without the leading `#`) of the element that contains
|
|
39
|
-
* the content that the vertical tab displays, which corresponds to the `tabId`. This property
|
|
40
|
-
* [supports accessibility rules for disclosures](https://www.w3.org/TR/wai-aria-practices-1.1/#disclosure).
|
|
41
|
-
*/
|
|
42
|
-
get ariaControls() {
|
|
43
|
-
return this.isMobile ? undefined : this._ariaControls;
|
|
44
|
-
}
|
|
45
|
-
set ariaControls(value) {
|
|
46
|
-
this._ariaControls = value;
|
|
47
|
-
}
|
|
48
|
-
/**
|
|
49
|
-
* Specifies an ARIA role for the vertical tab
|
|
50
|
-
* [to support accessibility](https://developer.blackbaud.com/skyux/learn/accessibility)
|
|
51
|
-
* by indicating how the tab functions and what it controls. For information about how
|
|
52
|
-
* an ARIA role indicates what an item represents on a web page, see the
|
|
53
|
-
* [WAI-ARIA roles model](https://www.w3.org/WAI/PF/aria/roles).
|
|
54
|
-
* @default "tab"
|
|
55
|
-
*/
|
|
56
|
-
get ariaRole() {
|
|
57
|
-
if (this.isMobile) {
|
|
58
|
-
return undefined;
|
|
59
|
-
}
|
|
60
|
-
return this._ariaRole || 'tab';
|
|
61
|
-
}
|
|
62
|
-
set ariaRole(value) {
|
|
63
|
-
this._ariaRole = value;
|
|
64
|
-
}
|
|
65
|
-
/**
|
|
66
|
-
* Indicates whether to display a chevron-right icon in the righthand side of the tab.
|
|
67
|
-
* @internal
|
|
68
|
-
*/
|
|
69
|
-
get showTabRightArrow() {
|
|
70
|
-
return this._showTabRightArrow && this.tabsetService.isMobile();
|
|
71
|
-
}
|
|
72
|
-
set showTabRightArrow(value) {
|
|
73
|
-
this._showTabRightArrow = value;
|
|
74
|
-
}
|
|
75
|
-
set contentRendered(value) {
|
|
76
|
-
this._contentRendered = value;
|
|
77
|
-
/* istanbul ignore else */
|
|
78
|
-
if (this._contentRendered) {
|
|
79
|
-
// NOTE: Wrapped in a setTimeout here to ensure that everything has completed rendering.
|
|
80
|
-
setTimeout(() => {
|
|
81
|
-
this.updateBreakpointAndResponsiveClass(this.adapterService.getWidth(this.tabContent));
|
|
82
|
-
});
|
|
83
|
-
}
|
|
84
|
-
}
|
|
85
|
-
get contentRendered() {
|
|
86
|
-
return this._contentRendered;
|
|
87
|
-
}
|
|
88
|
-
ngOnInit() {
|
|
89
|
-
this.isMobile = this.tabsetService.isMobile();
|
|
90
|
-
this.changeRef.markForCheck();
|
|
91
|
-
this.tabsetService.switchingMobile
|
|
92
|
-
.subscribe((mobile) => {
|
|
93
|
-
this.isMobile = mobile;
|
|
94
|
-
this.changeRef.markForCheck();
|
|
95
|
-
});
|
|
96
|
-
// Update the breakpoint and responsive class here just as a sanity check since we can not
|
|
97
|
-
// watch for element resizing.
|
|
98
|
-
this.tabsetService.indexChanged
|
|
99
|
-
.pipe(takeUntil(this._ngUnsubscribe))
|
|
100
|
-
.subscribe((index) => {
|
|
101
|
-
if (this.index === index && this.contentRendered) {
|
|
102
|
-
this.updateBreakpointAndResponsiveClass(this.adapterService.getWidth(this.tabContent));
|
|
103
|
-
}
|
|
104
|
-
});
|
|
105
|
-
this.tabsetService.addTab(this);
|
|
106
|
-
}
|
|
107
|
-
ngOnDestroy() {
|
|
108
|
-
this._mobileSubscription.unsubscribe();
|
|
109
|
-
this._ngUnsubscribe.next();
|
|
110
|
-
this._ngUnsubscribe.complete();
|
|
111
|
-
this.tabsetService.destroyTab(this);
|
|
112
|
-
}
|
|
113
|
-
tabIndex() {
|
|
114
|
-
if (!this.disabled) {
|
|
115
|
-
return 0;
|
|
116
|
-
}
|
|
117
|
-
else {
|
|
118
|
-
return -1;
|
|
119
|
-
}
|
|
120
|
-
}
|
|
121
|
-
activateTab() {
|
|
122
|
-
if (!this.disabled) {
|
|
123
|
-
this.active = true;
|
|
124
|
-
this.tabsetService.activateTab(this);
|
|
125
|
-
this.changeRef.markForCheck();
|
|
126
|
-
}
|
|
127
|
-
}
|
|
128
|
-
onWindowResize() {
|
|
129
|
-
this.updateBreakpointAndResponsiveClass(this.adapterService.getWidth(this.tabContent));
|
|
130
|
-
}
|
|
131
|
-
tabDeactivated() {
|
|
132
|
-
this.changeRef.markForCheck();
|
|
133
|
-
}
|
|
134
|
-
updateBreakpointAndResponsiveClass(width) {
|
|
135
|
-
this.verticalTabMediaQueryService.setBreakpointForWidth(width);
|
|
136
|
-
const newBreakpiont = this.verticalTabMediaQueryService.current;
|
|
137
|
-
this.adapterService.setResponsiveClass(this.tabContent, newBreakpiont);
|
|
138
|
-
this.changeRef.markForCheck();
|
|
139
|
-
}
|
|
140
|
-
}
|
|
141
|
-
SkyVerticalTabComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0, type: SkyVerticalTabComponent, deps: [{ token: i1.SkyVerticalTabsetAdapterService }, { token: i0.ChangeDetectorRef }, { token: i2.SkyVerticalTabsetService }, { token: i3.SkyVerticalTabMediaQueryService }], target: i0.ɵɵFactoryTarget.Component });
|
|
142
|
-
SkyVerticalTabComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.13", type: SkyVerticalTabComponent, selector: "sky-vertical-tab", inputs: { active: "active", ariaControls: "ariaControls", ariaInvalid: "ariaInvalid", ariaRequired: "ariaRequired", ariaRole: "ariaRole", disabled: "disabled", errorIndicator: "errorIndicator", tabHeaderCount: "tabHeaderCount", tabHeading: "tabHeading", showTabRightArrow: "showTabRightArrow", tabId: "tabId" }, host: { listeners: { "window:resize": "onWindowResize()" } }, providers: [
|
|
143
|
-
SkyVerticalTabMediaQueryService,
|
|
144
|
-
{ provide: SkyMediaQueryService, useExisting: SkyVerticalTabMediaQueryService }
|
|
145
|
-
], viewQueries: [{ propertyName: "tabContent", first: true, predicate: ["tabContentWrapper"], descendants: true }], ngImport: i0, 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-font-deemphasized': 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 <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 role=\"tabpanel\"\n tabindex=\"0\"\n [ngClass]=\"{'sky-vertical-tab-hidden': !active}\"\n >\n\n <ng-content></ng-content>\n\n <div>\n\n</div>\n\n", 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-visible{outline:thin dotted;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}.sky-vertical-tab-right-arrow{padding:3px 10px 0 0;color:#cdcfd2}:host-context(.sky-theme-modern) .sky-vertical-tab{color:#686c73;cursor:pointer;padding:10px 0 10px 10px;margin:10px 0 20px 10px}: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}:host-context(.sky-theme-modern) .sky-vertical-tab:not(:active):focus-visible{outline:solid 2px #1870B8;outline-offset:-2px;box-shadow:0 1px 8px #0000004d}:host-context(.sky-theme-modern) .sky-vertical-tab:focus:active:hover{outline:none;background:none}:host-context(.sky-theme-modern) .sky-vertical-tab:active{border-left:3px solid #00b4f1;color:#212327;padding-left:7px}:host-context(.sky-theme-modern) .sky-vertical-tab .sky-vertical-tab-heading-error{padding-left:10px;position:relative;top:-2px}:host-context(.sky-theme-modern) .sky-vertical-tab-active{background:none;color:#212327;padding-left:7px;border-left:3px solid #1870B8}.sky-theme-modern .sky-vertical-tab{color:#686c73;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{color:#212327;background-color:transparent;padding-left:9px;border-left:1px solid #00b4f1}.sky-theme-modern .sky-vertical-tab:not(:active):focus-visible{outline:solid 2px #1870B8;outline-offset:-2px;box-shadow:0 1px 8px #0000004d}.sky-theme-modern .sky-vertical-tab:focus:active:hover{outline:none;background:none}.sky-theme-modern .sky-vertical-tab:active{border-left:3px solid #00b4f1;color:#212327;padding-left:7px}.sky-theme-modern .sky-vertical-tab .sky-vertical-tab-heading-error{padding-left:10px;position:relative;top:-2px}.sky-theme-modern .sky-vertical-tab-active{background:none;color:#212327;padding-left:7px;border-left:3px solid #1870B8}\n"], components: [{ type: i4.λ10, selector: "sky-status-indicator", inputs: ["indicatorType", "descriptionType", "customDescription"] }, { type: i4.λ4, selector: "sky-icon", inputs: ["icon", "iconType", "size", "fixedWidth", "variant"] }], directives: [{ type: i5.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
146
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0, type: SkyVerticalTabComponent, decorators: [{
|
|
147
|
-
type: Component,
|
|
148
|
-
args: [{
|
|
149
|
-
selector: 'sky-vertical-tab',
|
|
150
|
-
templateUrl: './vertical-tab.component.html',
|
|
151
|
-
styleUrls: ['./vertical-tab.component.scss'],
|
|
152
|
-
providers: [
|
|
153
|
-
SkyVerticalTabMediaQueryService,
|
|
154
|
-
{ provide: SkyMediaQueryService, useExisting: SkyVerticalTabMediaQueryService }
|
|
155
|
-
],
|
|
156
|
-
changeDetection: ChangeDetectionStrategy.OnPush
|
|
157
|
-
}]
|
|
158
|
-
}], ctorParameters: function () { return [{ type: i1.SkyVerticalTabsetAdapterService }, { type: i0.ChangeDetectorRef }, { type: i2.SkyVerticalTabsetService }, { type: i3.SkyVerticalTabMediaQueryService }]; }, propDecorators: { active: [{
|
|
159
|
-
type: Input
|
|
160
|
-
}], ariaControls: [{
|
|
161
|
-
type: Input
|
|
162
|
-
}], ariaInvalid: [{
|
|
163
|
-
type: Input
|
|
164
|
-
}], ariaRequired: [{
|
|
165
|
-
type: Input
|
|
166
|
-
}], ariaRole: [{
|
|
167
|
-
type: Input
|
|
168
|
-
}], disabled: [{
|
|
169
|
-
type: Input
|
|
170
|
-
}], errorIndicator: [{
|
|
171
|
-
type: Input
|
|
172
|
-
}], tabHeaderCount: [{
|
|
173
|
-
type: Input
|
|
174
|
-
}], tabHeading: [{
|
|
175
|
-
type: Input
|
|
176
|
-
}], showTabRightArrow: [{
|
|
177
|
-
type: Input
|
|
178
|
-
}], tabId: [{
|
|
179
|
-
type: Input
|
|
180
|
-
}], tabContent: [{
|
|
181
|
-
type: ViewChild,
|
|
182
|
-
args: ['tabContentWrapper']
|
|
183
|
-
}], onWindowResize: [{
|
|
184
|
-
type: HostListener,
|
|
185
|
-
args: ['window:resize']
|
|
186
|
-
}] } });
|
|
187
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmVydGljYWwtdGFiLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3RhYnMvc3JjL21vZHVsZXMvdmVydGljYWwtdGFic2V0L3ZlcnRpY2FsLXRhYi5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90YWJzL3NyYy9tb2R1bGVzL3ZlcnRpY2FsLXRhYnNldC92ZXJ0aWNhbC10YWIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLHVCQUF1QixFQUV2QixTQUFTLEVBRVQsWUFBWSxFQUNaLEtBQUssRUFHTCxTQUFTLEVBQ1YsTUFBTSxlQUFlLENBQUM7QUFFdkIsT0FBTyxFQUNMLG9CQUFvQixFQUNyQixNQUFNLGFBQWEsQ0FBQztBQUVyQixPQUFPLEVBQ0wsT0FBTyxFQUNSLE1BQU0sTUFBTSxDQUFDO0FBRWQsT0FBTyxFQUNMLFNBQVMsRUFDVixNQUFNLGdCQUFnQixDQUFDO0FBRXhCLE9BQU8sRUFDTCwrQkFBK0IsRUFDaEMsTUFBTSxvQ0FBb0MsQ0FBQzs7Ozs7OztBQW9CNUMsTUFBTSxPQUFPLHVCQUF1QjtJQW1JbEMsWUFDVSxjQUErQyxFQUMvQyxTQUE0QixFQUM1QixhQUF1QyxFQUN2Qyw0QkFBNkQ7UUFIN0QsbUJBQWMsR0FBZCxjQUFjLENBQWlDO1FBQy9DLGNBQVMsR0FBVCxTQUFTLENBQW1CO1FBQzVCLGtCQUFhLEdBQWIsYUFBYSxDQUEwQjtRQUN2QyxpQ0FBNEIsR0FBNUIsNEJBQTRCLENBQWlDO1FBdEl2RTs7V0FFRztRQUVJLFdBQU0sR0FBWSxLQUFLLENBQUM7UUE4Qy9COztXQUVHO1FBRUksYUFBUSxHQUFZLEtBQUssQ0FBQztRQUVqQzs7O1dBR0c7UUFFSSxtQkFBYyxHQUFZLEtBQUssQ0FBQztRQXVEL0IsYUFBUSxHQUFHLEtBQUssQ0FBQztRQU1qQixxQkFBZ0IsR0FBWSxLQUFLLENBQUM7UUFF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QUFXLEVBQUUsK0JBQStCLEVBQUU7S0FDaEYsMklDM0NILGk5Q0F3REE7NEZEVmEsdUJBQXVCO2tCQVZuQyxTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSxrQkFBa0I7b0JBQzVCLFdBQVcsRUFBRSwrQkFBK0I7b0JBQzVDLFNBQVMsRUFBRSxDQUFDLCtCQUErQixDQUFDO29CQUM1QyxTQUFTLEVBQUU7d0JBQ1QsK0JBQStCO3dCQUMvQixFQUFFLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxXQUFXLEVBQUUsK0JBQStCLEVBQUU7cUJBQ2hGO29CQUNELGVBQWUsRUFBRSx1QkFBdUIsQ0FBQyxNQUFNO2lCQUNoRDsyT0FNUSxNQUFNO3NCQURaLEtBQUs7Z0JBU0ssWUFBWTtzQkFEdEIsS0FBSztnQkFZQyxXQUFXO3NCQURqQixLQUFLO2dCQU9DLFlBQVk7c0JBRGxCLEtBQUs7Z0JBWUssUUFBUTtzQkFEbEIsS0FBSztnQkFlQyxRQUFRO3NCQURkLEtBQUs7Z0JBUUMsY0FBYztzQkFEcEIsS0FBSztnQkFPQyxjQUFjO3NCQURwQixLQUFLO2dCQVFDLFVBQVU7c0JBRGhCLEtBQUs7Z0JBUUssaUJBQWlCO3NCQUQzQixLQUFLO2dCQWFDLEtBQUs7c0JBRFgsS0FBSztnQkFzQkMsVUFBVTtzQkFEaEIsU0FBUzt1QkFBQyxtQkFBbUI7Z0JBd0V2QixjQUFjO3NCQURwQixZQUFZO3VCQUFDLGVBQWUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gIENvbXBvbmVudCxcbiAgRWxlbWVudFJlZixcbiAgSG9zdExpc3RlbmVyLFxuICBJbnB1dCxcbiAgT25EZXN0cm95LFxuICBPbkluaXQsXG4gIFZpZXdDaGlsZFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHtcbiAgU2t5TWVkaWFRdWVyeVNlcnZpY2Vcbn0gZnJvbSAnQHNreXV4L2NvcmUnO1xuXG5pbXBvcnQge1xuICBTdWJqZWN0XG59IGZyb20gJ3J4anMnO1xuXG5pbXBvcnQge1xuICB0YWtlVW50aWxcbn0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuXG5pbXBvcnQge1xuICBTa3lWZXJ0aWNhbFRhYk1lZGlhUXVlcnlTZXJ2aWNlXG59IGZyb20gJy4vdmVydGljYWwtdGFiLW1lZGlhLXF1ZXJ5LnNlcnZpY2UnO1xuXG5pbXBvcnQge1xuICBTa3lWZXJ0aWNhbFRhYnNldFNlcnZpY2Vcbn0gZnJvbSAnLi92ZXJ0aWNhbC10YWJzZXQuc2VydmljZSc7XG5cbmltcG9ydCB7XG4gIFNreVZlcnRpY2FsVGFic2V0QWRhcHRlclNlcnZpY2Vcbn0gZnJvbSAnLi92ZXJ0aWNhbC10YWJzZXQtYWRhcHRlci5zZXJ2aWNlJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc2t5LXZlcnRpY2FsLXRhYicsXG4gIHRlbXBsYXRlVXJsOiAnLi92ZXJ0aWNhbC10YWIuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi92ZXJ0aWNhbC10YWIuY29tcG9uZW50LnNjc3MnXSxcbiAgcHJvdmlkZXJzOiBbXG4gICAgU2t5VmVydGljYWxUYWJNZWRpYVF1ZXJ5U2VydmljZSxcbiAgICB7IHByb3ZpZGU6IFNreU1lZGlhUXVlcnlTZXJ2aWNlLCB1c2VFeGlzdGluZzogU2t5VmVydGljYWxUYWJNZWRpYVF1ZXJ5U2VydmljZSB9XG4gIF0sXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoXG59KVxuZXhwb3J0IGNsYXNzIFNreVZlcnRpY2FsVGFiQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3kge1xuICAvKipcbiAgICogSW5kaWNhdGVzIHdoZXRoZXIgdGhlIHRhYiBpcyBhY3RpdmUgd2hlbiB0aGUgdGFic2V0IGxvYWRzLlxuICAgKi9cbiAgQElucHV0KClcbiAgcHVibGljIGFjdGl2ZTogYm9vbGVhbiA9IGZhbHNlO1xuXG4gIC8qKlxuICAgKiBTcGVjaWZpZXMgdGhlIEhUTUwgZWxlbWVudCBJRCAod2l0aG91dCB0aGUgbGVhZGluZyBgI2ApIG9mIHRoZSBlbGVtZW50IHRoYXQgY29udGFpbnNcbiAgICogdGhlIGNvbnRlbnQgdGhhdCB0aGUgdmVydGljYWwgdGFiIGRpc3BsYXlzLCB3aGljaCBjb3JyZXNwb25kcyB0byB0aGUgYHRhYklkYC4gVGhpcyBwcm9wZXJ0eVxuICAgKiBbc3VwcG9ydHMgYWNjZXNzaWJpbGl0eSBydWxlcyBmb3IgZGlzY2xvc3VyZXNdKGh0dHBzOi8vd3d3LnczLm9yZy9UUi93YWktYXJpYS1wcmFjdGljZXMtMS4xLyNkaXNjbG9zdXJlKS5cbiAgICovXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBnZXQgYXJpYUNvbnRyb2xzKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMuaXNNb2JpbGUgPyB1bmRlZmluZWQgOiB0aGlzLl9hcmlhQ29udHJvbHM7XG4gIH1cbiAgcHVibGljIHNldCBhcmlhQ29udHJvbHModmFsdWU6IHN0cmluZykge1xuICAgIHRoaXMuX2FyaWFDb250cm9scyA9IHZhbHVlO1xuICB9XG5cbiAgLyoqXG4gICAqIEBpbnRlcm5hbFxuICAgKi9cbiAgQElucHV0KClcbiAgcHVibGljIGFyaWFJbnZhbGlkOiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBAaW50ZXJuYWxcbiAgICovXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBhcmlhUmVxdWlyZWQ6IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIFNwZWNpZmllcyBhbiBBUklBIHJvbGUgZm9yIHRoZSB2ZXJ0aWNhbCB0YWJcbiAgICogW3RvIHN1cHBvcnQgYWNjZXNzaWJpbGl0eV0oaHR0cHM6Ly9kZXZlbG9wZXIuYmxhY2tiYXVkLmNvbS9za3l1eC9sZWFybi9hY2Nlc3NpYmlsaXR5KVxuICAgKiBieSBpbmRpY2F0aW5nIGhvdyB0aGUgdGFiIGZ1bmN0aW9ucyBhbmQgd2hhdCBpdCBjb250cm9scy4gRm9yIGluZm9ybWF0aW9uIGFib3V0IGhvd1xuICAgKiBhbiBBUklBIHJvbGUgaW5kaWNhdGVzIHdoYXQgYW4gaXRlbSByZXByZXNlbnRzIG9uIGEgd2ViIHBhZ2UsIHNlZSB0aGVcbiAgICogW1dBSS1BUklBIHJvbGVzIG1vZGVsXShodHRwczovL3d3dy53My5vcmcvV0FJL1BGL2FyaWEvcm9sZXMpLlxuICAgKiBAZGVmYXVsdCBcInRhYlwiXG4gICAqL1xuICBASW5wdXQoKVxuICBwdWJsaWMgZ2V0IGFyaWFSb2xlKCk6IHN0cmluZyB7XG4gICAgaWYgKHRoaXMuaXNNb2JpbGUpIHtcbiAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgfVxuICAgIHJldHVybiB0aGlzLl9hcmlhUm9sZSB8fCAndGFiJztcbiAgfVxuICBwdWJsaWMgc2V0IGFyaWFSb2xlKHZhbHVlOiBzdHJpbmcpIHtcbiAgICB0aGlzLl9hcmlhUm9sZSA9IHZhbHVlO1xuICB9XG5cbiAgLyoqXG4gICAqIEluZGljYXRlcyB3aGV0aGVyIHRvIGRpc2FibGUgdGhlIHRhYi5cbiAgICovXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBkaXNhYmxlZDogYm9vbGVhbiA9IGZhbHNlO1xuXG4gIC8qKlxuICAgKiBJbmRpY2F0ZXMgd2hldGhlciB0byBpbmRpY2F0ZSB0aGF0IHRoZSB0YWIgaGFzIGFuIGVycm9yLlxuICAgKiBAaW50ZXJuYWwgVGhpcyBpcyB1c2VkIGZvciBzZWN0aW9uZWQgZm9ybXMgYW5kIGlzIG5vdCBjdXJyZW50bHkgYSBzdXBwb3J0ZWQgZGVzaWduIGZvciBwdXJlIHZlcnRpY2FsIHRhYnMuXG4gICAqL1xuICBASW5wdXQoKVxuICBwdWJsaWMgZXJyb3JJbmRpY2F0b3I6IGJvb2xlYW4gPSBmYWxzZTtcblxuICAvKipcbiAgICogRGlzcGxheXMgYW4gaXRlbSBjb3VudCBhbG9uZ3NpZGUgdGhlIHRhYiBoZWFkZXIgdG8gaW5kaWNhdGUgaG93IG1hbnkgbGlzdCBpdGVtcyB0aGUgdGFiIGNvbnRhaW5zLlxuICAgKi9cbiAgQElucHV0KClcbiAgcHVibGljIHRhYkhlYWRlckNvdW50OiBudW1iZXI7XG5cbiAgLyoqXG4gICAqIFNwZWNpZmllcyB0aGUgdGFiIGhlYWRlci5cbiAgICogQHJlcXVpcmVkXG4gICAqL1xuICBASW5wdXQoKVxuICBwdWJsaWMgdGFiSGVhZGluZzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBJbmRpY2F0ZXMgd2hldGhlciB0byBkaXNwbGF5IGEgY2hldnJvbi1yaWdodCBpY29uIGluIHRoZSByaWdodGhhbmQgc2lkZSBvZiB0aGUgdGFiLlxuICAgKiBAaW50ZXJuYWxcbiAgICovXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBnZXQgc2hvd1RhYlJpZ2h0QXJyb3coKSB7XG4gICAgcmV0dXJuIHRoaXMuX3Nob3dUYWJSaWdodEFycm93ICYmIHRoaXMudGFic2V0U2VydmljZS5pc01vYmlsZSgpO1xuICB9XG5cbiAgcHVibGljIHNldCBzaG93VGFiUmlnaHRBcnJvdyh2YWx1ZTogYm9vbGVhbikge1xuICAgIHRoaXMuX3Nob3dUYWJSaWdodEFycm93ID0gdmFsdWU7XG4gIH1cblxuICAvKipcbiAgICogU3BlY2lmaWVzIGFuIElEIGZvciB0aGUgdGFiLlxuICAgKi9cbiAgQElucHV0KClcbiAgcHVibGljIHRhYklkOiBzdHJpbmc7XG5cbiAgcHVibGljIHNldCBjb250ZW50UmVuZGVyZWQodmFsdWU6IGJvb2xlYW4pIHtcbiAgICB0aGlzLl9jb250ZW50UmVuZGVyZWQgPSB2YWx1ZTtcblxuICAgIC8qIGlzdGFuYnVsIGlnbm9yZSBlbHNlICovXG4gICAgaWYgKHRoaXMuX2NvbnRlbnRSZW5kZXJlZCkge1xuICAgICAgLy8gTk9URTogV3JhcHBlZCBpbiBhIHNldFRpbWVvdXQgaGVyZSB0byBlbnN1cmUgdGhhdCBldmVyeXRoaW5nIGhhcyBjb21wbGV0ZWQgcmVuZGVyaW5nLlxuICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgIHRoaXMudXBkYXRlQnJlYWtwb2ludEFuZFJlc3BvbnNpdmVDbGFzcyh0aGlzLmFkYXB0ZXJTZXJ2aWNlLmdldFdpZHRoKHRoaXMudGFiQ29udGVudCkpO1xuICAgICAgfSk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIGdldCBjb250ZW50UmVuZGVyZWQoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuX2NvbnRlbnRSZW5kZXJlZDtcbiAgfVxuXG4gIHB1YmxpYyBpbmRleDogbnVtYmVyO1xuXG4gIEBWaWV3Q2hpbGQoJ3RhYkNvbnRlbnRXcmFwcGVyJylcbiAgcHVibGljIHRhYkNvbnRlbnQ6IEVsZW1lbnRSZWY7XG5cbiAgcHJpdmF0ZSBpc01vYmlsZSA9IGZhbHNlO1xuXG4gIHByaXZhdGUgX2FyaWFDb250cm9sczogc3RyaW5nO1xuXG4gIHByaXZhdGUgX2FyaWFSb2xlOiBzdHJpbmc7XG5cbiAgcHJpdmF0ZSBfY29udGVudFJlbmRlcmVkOiBib29sZWFuID0gZmFsc2U7XG5cbiAgcHJpdmF0ZSBfbW9iaWxlU3Vic2NyaXB0aW9uID0gbmV3IFN1YmplY3QoKTtcblxuICBwcml2YXRlIF9uZ1Vuc3Vic2NyaWJlID0gbmV3IFN1YmplY3QoKTtcblxuICBwcml2YXRlIF9zaG93VGFiUmlnaHRBcnJvdzogYm9vbGVhbiA9IGZhbHNlO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgYWRhcHRlclNlcnZpY2U6IFNreVZlcnRpY2FsVGFic2V0QWRhcHRlclNlcnZpY2UsXG4gICAgcHJpdmF0ZSBjaGFuZ2VSZWY6IENoYW5nZURldGVjdG9yUmVmLFxuICAgIHByaXZhdGUgdGFic2V0U2VydmljZTogU2t5VmVydGljYWxUYWJzZXRTZXJ2aWNlLFxuICAgIHByaXZhdGUgdmVydGljYWxUYWJNZWRpYVF1ZXJ5U2VydmljZTogU2t5VmVydGljYWxUYWJNZWRpYVF1ZXJ5U2VydmljZVxuICApIHt9XG5cbiAgcHVibGljIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIHRoaXMuaXNNb2JpbGUgPSB0aGlzLnRhYnNldFNlcnZpY2UuaXNNb2JpbGUoKTtcbiAgICB0aGlzLmNoYW5nZVJlZi5tYXJrRm9yQ2hlY2soKTtcblxuICAgIHRoaXMudGFic2V0U2VydmljZS5zd2l0Y2hpbmdNb2JpbGVcbiAgICAgIC5zdWJzY3JpYmUoKG1vYmlsZTogYm9vbGVhbikgPT4ge1xuICAgICAgICB0aGlzLmlzTW9iaWxlID0gbW9iaWxlO1xuICAgICAgICB0aGlzLmNoYW5nZVJlZi5tYXJrRm9yQ2hlY2soKTtcbiAgICAgIH0pO1xuXG4gICAgLy8gVXBkYXRlIHRoZSBicmVha3BvaW50IGFuZCByZXNwb25zaXZlIGNsYXNzIGhlcmUganVzdCBhcyBhIHNhbml0eSBjaGVjayBzaW5jZSB3ZSBjYW4gbm90XG4gICAgLy8gd2F0Y2ggZm9yIGVsZW1lbnQgcmVzaXppbmcuXG4gICAgdGhpcy50YWJzZXRTZXJ2aWNlLmluZGV4Q2hhbmdlZFxuICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMuX25nVW5zdWJzY3JpYmUpKVxuICAgICAgLnN1YnNjcmliZSgoaW5kZXgpID0+IHtcbiAgICAgICAgaWYgKHRoaXMuaW5kZXggPT09IGluZGV4ICYmIHRoaXMuY29udGVudFJlbmRlcmVkKSB7XG4gICAgICAgICAgdGhpcy51cGRhdGVCcmVha3BvaW50QW5kUmVzcG9uc2l2ZUNsYXNzKHRoaXMuYWRhcHRlclNlcnZpY2UuZ2V0V2lkdGgodGhpcy50YWJDb250ZW50KSk7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuXG4gICAgdGhpcy50YWJzZXRTZXJ2aWNlLmFkZFRhYih0aGlzKTtcbiAgfVxuXG4gIHB1YmxpYyBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICB0aGlzLl9tb2JpbGVTdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKTtcbiAgICB0aGlzLl9uZ1Vuc3Vic2NyaWJlLm5leHQoKTtcbiAgICB0aGlzLl9uZ1Vuc3Vic2NyaWJlLmNvbXBsZXRlKCk7XG4gICAgdGhpcy50YWJzZXRTZXJ2aWNlLmRlc3Ryb3lUYWIodGhpcyk7XG4gIH1cblxuICBwdWJsaWMgdGFiSW5kZXgoKTogbnVtYmVyIHtcbiAgICBpZiAoIXRoaXMuZGlzYWJsZWQpIHtcbiAgICAgIHJldHVybiAwO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gLTE7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIGFjdGl2YXRlVGFiKCk6IHZvaWQge1xuICAgIGlmICghdGhpcy5kaXNhYmxlZCkge1xuICAgICAgdGhpcy5hY3RpdmUgPSB0cnVlO1xuICAgICAgdGhpcy50YWJzZXRTZXJ2aWNlLmFjdGl2YXRlVGFiKHRoaXMpO1xuXG4gICAgICB0aGlzLmNoYW5nZVJlZi5tYXJrRm9yQ2hlY2soKTtcbiAgICB9XG4gIH1cblxuICBASG9zdExpc3RlbmVyKCd3aW5kb3c6cmVzaXplJylcbiAgcHVibGljIG9uV2luZG93UmVzaXplKCk6IHZvaWQge1xuICAgIHRoaXMudXBkYXRlQnJlYWtwb2ludEFuZFJlc3BvbnNpdmVDbGFzcyh0aGlzLmFkYXB0ZXJTZXJ2aWNlLmdldFdpZHRoKHRoaXMudGFiQ29udGVudCkpO1xuICB9XG5cbiAgcHVibGljIHRhYkRlYWN0aXZhdGVkKCk6IHZvaWQge1xuICAgIHRoaXMuY2hhbmdlUmVmLm1hcmtGb3JDaGVjaygpO1xuICB9XG5cbiAgcHJpdmF0ZSB1cGRhdGVCcmVha3BvaW50QW5kUmVzcG9uc2l2ZUNsYXNzKHdpZHRoOiBudW1iZXIpOiB2b2lkIHtcbiAgICB0aGlzLnZlcnRpY2FsVGFiTWVkaWFRdWVyeVNlcnZpY2Uuc2V0QnJlYWtwb2ludEZvcldpZHRoKHdpZHRoKTtcblxuICAgIGNvbnN0IG5ld0JyZWFrcGlvbnQgPSB0aGlzLnZlcnRpY2FsVGFiTWVkaWFRdWVyeVNlcnZpY2UuY3VycmVudDtcblxuICAgIHRoaXMuYWRhcHRlclNlcnZpY2Uuc2V0UmVzcG9uc2l2ZUNsYXNzKHRoaXMudGFiQ29udGVudCwgbmV3QnJlYWtwaW9udCk7XG5cbiAgICB0aGlzLmNoYW5nZVJlZi5tYXJrRm9yQ2hlY2soKTtcbiAgfVxufVxuIiwiPGFcbiAgY2xhc3M9XCJza3ktdmVydGljYWwtdGFiXCJcbiAgW2F0dHIuYXJpYS1jb250cm9sc109XCJhcmlhQ29udHJvbHNcIlxuICBbYXR0ci5hcmlhLWludmFsaWRdPVwiYXJpYUludmFsaWRcIlxuICBbYXR0ci5hcmlhLXJlcXVpcmVkXT1cImFyaWFSZXF1aXJlZCA/IGFyaWFSZXF1aXJlZCA6IG51bGxcIlxuICBbYXR0ci5hcmlhLXNlbGVjdGVkXT1cImFjdGl2ZVwiXG4gIFthdHRyLmlkXT1cInRhYklkXCJcbiAgW2F0dHIucm9sZV09XCJhcmlhUm9sZVwiXG4gIFtuZ0NsYXNzXT1cIntcbiAgICAnc2t5LXZlcnRpY2FsLXRhYi1hY3RpdmUnOiBhY3RpdmUsXG4gICAgJ3NreS12ZXJ0aWNhbC10YWItZGlzYWJsZWQnOiBkaXNhYmxlZCxcbiAgICAnc2t5LWZvbnQtZGVlbXBoYXNpemVkJzogZGlzYWJsZWQsXG4gICAgJ3NreS1kZWVtcGhhc2l6ZWQnOiBkaXNhYmxlZFxuICB9XCJcbiAgW3RhYkluZGV4XT1cInRhYkluZGV4KClcIlxuICAoY2xpY2spPVwiYWN0aXZhdGVUYWIoKVwiXG4gIChrZXl1cC5lbnRlcik9XCJhY3RpdmF0ZVRhYigpXCI+XG4gIDxkaXYgY2xhc3M9XCJza3ktdmVydGljYWwtdGFiLWRpc3BsYXlcIj5cbiAgICA8ZGl2IGNsYXNzPVwic2t5LXZlcnRpY2FsLXRhYi1oZWFkaW5nXCI+XG4gICAgICA8c3BhbiBjbGFzcz1cInNreS12ZXJ0aWNhbC10YWItaGVhZGluZy12YWx1ZVwiPnt7IHRhYkhlYWRpbmcgfX08L3NwYW4+XG4gICAgICA8c3BhblxuICAgICAgICBjbGFzcz1cInNreS12ZXJ0aWNhbC10YWItY291bnRcIlxuICAgICAgICAqbmdJZj1cInRhYkhlYWRlckNvdW50IHx8IHRhYkhlYWRlckNvdW50ID09PSAwXCI+XG4gICAgICAgICh7eyB0YWJIZWFkZXJDb3VudCB9fSlcbiAgICAgIDwvc3Bhbj5cbiAgICA8L2Rpdj5cbiAgICA8c2t5LXN0YXR1cy1pbmRpY2F0b3IgKm5nSWY9XCJlcnJvckluZGljYXRvclwiXG4gICAgICBjbGFzcz1cInNreS12ZXJ0aWNhbC10YWItaGVhZGluZy1lcnJvclwiXG4gICAgICBkZXNjcmlwdGlvblR5cGU9XCJlcnJvclwiXG4gICAgICBpbmRpY2F0b3JUeXBlPVwiZGFuZ2VyXCJcbiAgICA+PC9za3ktc3RhdHVzLWluZGljYXRvcj5cbiAgICA8c2t5LWljb25cbiAgICAgICpuZ0lmPVwic2hvd1RhYlJpZ2h0QXJyb3dcIlxuICAgICAgY2xhc3M9XCJza3ktdmVydGljYWwtdGFiLXJpZ2h0LWFycm93XCJcbiAgICAgIGljb249XCJjaGV2cm9uLXJpZ2h0XCJcbiAgICA+XG4gICAgPC9za3ktaWNvbj5cbiAgPC9kaXY+XG48L2E+XG5cbjxkaXZcbiAgI3RhYkNvbnRlbnRXcmFwcGVyXG4+XG4gIDxkaXZcbiAgICBjbGFzcz1cInNreS12ZXJ0aWNhbC10YWItY29udGVudC1wYW5lXCJcbiAgICByb2xlPVwidGFicGFuZWxcIlxuICAgIHRhYmluZGV4PVwiMFwiXG4gICAgW25nQ2xhc3NdPVwieydza3ktdmVydGljYWwtdGFiLWhpZGRlbic6ICFhY3RpdmV9XCJcbiAgPlxuXG4gICAgPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PlxuXG4gIDxkaXY+XG5cbjwvZGl2PlxuXG4iXX0=
|
|
@@ -1,48 +0,0 @@
|
|
|
1
|
-
import { Injectable } from '@angular/core';
|
|
2
|
-
import { SkyMediaBreakpoints } from '@skyux/core';
|
|
3
|
-
import * as i0 from "@angular/core";
|
|
4
|
-
export 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.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0, type: SkyVerticalTabsetAdapterService, deps: [{ token: i0.RendererFactory2 }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
44
|
-
SkyVerticalTabsetAdapterService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0, type: SkyVerticalTabsetAdapterService });
|
|
45
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0, type: SkyVerticalTabsetAdapterService, decorators: [{
|
|
46
|
-
type: Injectable
|
|
47
|
-
}], ctorParameters: function () { return [{ type: i0.RendererFactory2 }]; } });
|
|
48
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmVydGljYWwtdGFic2V0LWFkYXB0ZXIuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3RhYnMvc3JjL21vZHVsZXMvdmVydGljYWwtdGFic2V0L3ZlcnRpY2FsLXRhYnNldC1hZGFwdGVyLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUVMLFVBQVUsRUFHWCxNQUFNLGVBQWUsQ0FBQztBQUV2QixPQUFPLEVBQ0wsbUJBQW1CLEVBQ3BCLE1BQU0sYUFBYSxDQUFDOztBQUdyQixNQUFNLE9BQU8sK0JBQStCO0lBRzFDLFlBQ1UsZUFBaUM7UUFBakMsb0JBQWUsR0FBZixlQUFlLENBQWtCO1FBRXpDLElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDLGVBQWUsQ0FBQyxjQUFjLENBQUMsU0FBUyxFQUFFLFNBQVMsQ0FBQyxDQUFDO0lBQzVFLENBQUM7SUFFTSxRQUFRLENBQUMsVUFBc0I7UUFDcEMsT0FBTyxVQUFVLENBQUMsYUFBYSxDQUFDLFdBQVcsQ0FBQztJQUM5QyxDQUFDO0lBRU0sa0JBQWtCLENBQUMsT0FBbUI7UUFDM0MsT0FBTyxDQUFDLGFBQWEsQ0FBQyxTQUFTLEdBQUcsQ0FBQyxDQUFDO0lBQ3RDLENBQUM7SUFFTSxrQkFBa0IsQ0FBQyxPQUFtQixFQUFFLFVBQStCO1FBQzVFLE1BQU0sUUFBUSxHQUFnQixPQUFPLENBQUMsYUFBYSxDQUFDO1FBRXBELElBQUksQ0FBQyxRQUFRLENBQUMsV0FBVyxDQUFDLFFBQVEsRUFBRSw2QkFBNkIsQ0FBQyxDQUFDO1FBQ25FLElBQUksQ0FBQyxRQUFRLENBQUMsV0FBVyxDQUFDLFFBQVEsRUFBRSw2QkFBNkIsQ0FBQyxDQUFDO1FBQ25FLElBQUksQ0FBQyxRQUFRLENBQUMsV0FBVyxDQUFDLFFBQVEsRUFBRSw2QkFBNkIsQ0FBQyxDQUFDO1FBQ25FLElBQUksQ0FBQyxRQUFRLENBQUMsV0FBVyxDQUFDLFFBQVEsRUFBRSw2QkFBNkIsQ0FBQyxDQUFDO1FBRW5FLElBQUksUUFBZ0IsQ0FBQztRQUVyQixRQUFRLFVBQVUsRUFBRTtZQUNsQixLQUFLLG1CQUFtQixDQUFDLEVBQUUsQ0FBQyxDQUFDO2dCQUMzQixRQUFRLEdBQUcsNkJBQTZCLENBQUM7Z0JBQ3pDLE1BQU07YUFDUDtZQUNELEtBQUssbUJBQW1CLENBQUMsRUFBRSxDQUFDLENBQUM7Z0JBQzNCLFFBQVEsR0FBRyw2QkFBNkIsQ0FBQztnQkFDekMsTUFBTTthQUNQO1lBQ0QsS0FBSyxtQkFBbUIsQ0FBQyxFQUFFLENBQUMsQ0FBQztnQkFDM0IsUUFBUSxHQUFHLDZCQUE2QixDQUFDO2dCQUN6QyxNQUFNO2FBQ1A7WUFDRCxPQUFPLENBQUMsQ0FBQztnQkFDUCxRQUFRLEdBQUcsNkJBQTZCLENBQUM7Z0JBQ3pDLE1BQU07YUFDUDtTQUNGO1FBRUQsSUFBSSxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsUUFBUSxFQUFFLFFBQVEsQ0FBQyxDQUFDO0lBQzdDLENBQUM7OzZIQS9DVSwrQkFBK0I7aUlBQS9CLCtCQUErQjs0RkFBL0IsK0JBQStCO2tCQUQzQyxVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgRWxlbWVudFJlZixcbiAgSW5qZWN0YWJsZSxcbiAgUmVuZGVyZXIyLFxuICBSZW5kZXJlckZhY3RvcnkyXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQge1xuICBTa3lNZWRpYUJyZWFrcG9pbnRzXG59IGZyb20gJ0Bza3l1eC9jb3JlJztcblxuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIFNreVZlcnRpY2FsVGFic2V0QWRhcHRlclNlcnZpY2Uge1xuICBwcml2YXRlIHJlbmRlcmVyOiBSZW5kZXJlcjI7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSByZW5kZXJlckZhY3Rvcnk6IFJlbmRlcmVyRmFjdG9yeTJcbiAgKSB7XG4gICAgdGhpcy5yZW5kZXJlciA9IHRoaXMucmVuZGVyZXJGYWN0b3J5LmNyZWF0ZVJlbmRlcmVyKHVuZGVmaW5lZCwgdW5kZWZpbmVkKTtcbiAgfVxuXG4gIHB1YmxpYyBnZXRXaWR0aChlbGVtZW50UmVmOiBFbGVtZW50UmVmKTogbnVtYmVyIHtcbiAgICByZXR1cm4gZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LmNsaWVudFdpZHRoO1xuICB9XG5cbiAgcHVibGljIHNjcm9sbFRvQ29udGVudFRvcChlbGVtZW50OiBFbGVtZW50UmVmKTogdm9pZCB7XG4gICAgZWxlbWVudC5uYXRpdmVFbGVtZW50LnNjcm9sbFRvcCA9IDA7XG4gIH1cblxuICBwdWJsaWMgc2V0UmVzcG9uc2l2ZUNsYXNzKGVsZW1lbnQ6IEVsZW1lbnRSZWYsIGJyZWFrcG9pbnQ6IFNreU1lZGlhQnJlYWtwb2ludHMpOiB2b2lkIHtcbiAgICBjb25zdCBuYXRpdmVFbDogSFRNTEVsZW1lbnQgPSBlbGVtZW50Lm5hdGl2ZUVsZW1lbnQ7XG5cbiAgICB0aGlzLnJlbmRlcmVyLnJlbW92ZUNsYXNzKG5hdGl2ZUVsLCAnc2t5LXJlc3BvbnNpdmUtY29udGFpbmVyLXhzJyk7XG4gICAgdGhpcy5yZW5kZXJlci5yZW1vdmVDbGFzcyhuYXRpdmVFbCwgJ3NreS1yZXNwb25zaXZlLWNvbnRhaW5lci1zbScpO1xuICAgIHRoaXMucmVuZGVyZXIucmVtb3ZlQ2xhc3MobmF0aXZlRWwsICdza3ktcmVzcG9uc2l2ZS1jb250YWluZXItbWQnKTtcbiAgICB0aGlzLnJlbmRlcmVyLnJlbW92ZUNsYXNzKG5hdGl2ZUVsLCAnc2t5LXJlc3BvbnNpdmUtY29udGFpbmVyLWxnJyk7XG5cbiAgICBsZXQgbmV3Q2xhc3M6IHN0cmluZztcblxuICAgIHN3aXRjaCAoYnJlYWtwb2ludCkge1xuICAgICAgY2FzZSBTa3lNZWRpYUJyZWFrcG9pbnRzLnhzOiB7XG4gICAgICAgIG5ld0NsYXNzID0gJ3NreS1yZXNwb25zaXZlLWNvbnRhaW5lci14cyc7XG4gICAgICAgIGJyZWFrO1xuICAgICAgfVxuICAgICAgY2FzZSBTa3lNZWRpYUJyZWFrcG9pbnRzLnNtOiB7XG4gICAgICAgIG5ld0NsYXNzID0gJ3NreS1yZXNwb25zaXZlLWNvbnRhaW5lci1zbSc7XG4gICAgICAgIGJyZWFrO1xuICAgICAgfVxuICAgICAgY2FzZSBTa3lNZWRpYUJyZWFrcG9pbnRzLm1kOiB7XG4gICAgICAgIG5ld0NsYXNzID0gJ3NreS1yZXNwb25zaXZlLWNvbnRhaW5lci1tZCc7XG4gICAgICAgIGJyZWFrO1xuICAgICAgfVxuICAgICAgZGVmYXVsdDoge1xuICAgICAgICBuZXdDbGFzcyA9ICdza3ktcmVzcG9uc2l2ZS1jb250YWluZXItbGcnO1xuICAgICAgICBicmVhaztcbiAgICAgIH1cbiAgICB9XG5cbiAgICB0aGlzLnJlbmRlcmVyLmFkZENsYXNzKG5hdGl2ZUVsLCBuZXdDbGFzcyk7XG4gIH1cbn1cbiJdfQ==
|