@skyux/tabs 8.6.0 → 9.0.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.
Files changed (81) hide show
  1. package/documentation.json +92 -54
  2. package/esm2022/index.mjs +26 -0
  3. package/esm2022/lib/modules/sectioned-form/sectioned-form-section.component.mjs +65 -0
  4. package/esm2022/lib/modules/sectioned-form/sectioned-form.component.mjs +187 -0
  5. package/{esm2020 → esm2022}/lib/modules/sectioned-form/sectioned-form.module.mjs +11 -11
  6. package/{esm2020 → esm2022}/lib/modules/sectioned-form/sectioned-form.service.mjs +4 -4
  7. package/esm2022/lib/modules/shared/sky-tabs-resources.module.mjs +61 -0
  8. package/esm2022/lib/modules/shared/tab-id.service.mjs +50 -0
  9. package/{esm2020 → esm2022}/lib/modules/tabs/tab-button-adapter.service.mjs +4 -4
  10. package/esm2022/lib/modules/tabs/tab-button.component.mjs +162 -0
  11. package/{esm2020 → esm2022}/lib/modules/tabs/tab-layout-type.mjs +1 -1
  12. package/esm2022/lib/modules/tabs/tab.component.mjs +197 -0
  13. package/{esm2020 → esm2022}/lib/modules/tabs/tabs.module.mjs +21 -21
  14. package/esm2022/lib/modules/tabs/tabset-adapter.service.mjs +68 -0
  15. package/{esm2020 → esm2022}/lib/modules/tabs/tabset-nav-button-disabled.pipe.mjs +4 -4
  16. package/esm2022/lib/modules/tabs/tabset-nav-button.component.mjs +149 -0
  17. package/esm2022/lib/modules/tabs/tabset-permalink.service.mjs +128 -0
  18. package/esm2022/lib/modules/tabs/tabset.component.mjs +466 -0
  19. package/esm2022/lib/modules/tabs/tabset.service.mjs +198 -0
  20. package/esm2022/lib/modules/vertical-tabset/vertical-tab-media-query.service.mjs +68 -0
  21. package/esm2022/lib/modules/vertical-tabset/vertical-tab.component.mjs +217 -0
  22. package/esm2022/lib/modules/vertical-tabset/vertical-tabset-adapter.service.mjs +48 -0
  23. package/esm2022/lib/modules/vertical-tabset/vertical-tabset-group.component.mjs +108 -0
  24. package/esm2022/lib/modules/vertical-tabset/vertical-tabset.component.mjs +158 -0
  25. package/{esm2020 → esm2022}/lib/modules/vertical-tabset/vertical-tabset.module.mjs +21 -21
  26. package/esm2022/lib/modules/vertical-tabset/vertical-tabset.service.mjs +169 -0
  27. package/esm2022/testing/tabs/tabset-fixture.mjs +129 -0
  28. package/fesm2022/skyux-tabs-testing.mjs +136 -0
  29. package/{fesm2020 → fesm2022}/skyux-tabs-testing.mjs.map +1 -1
  30. package/fesm2022/skyux-tabs.mjs +2586 -0
  31. package/{fesm2020 → fesm2022}/skyux-tabs.mjs.map +1 -1
  32. package/index.d.ts +1 -0
  33. package/lib/modules/sectioned-form/sectioned-form-section.component.d.ts +1 -1
  34. package/lib/modules/sectioned-form/sectioned-form.component.d.ts +1 -1
  35. package/lib/modules/tabs/tab-button.component.d.ts +1 -1
  36. package/lib/modules/tabs/tab-layout-type.d.ts +1 -1
  37. package/lib/modules/tabs/tab.component.d.ts +1 -1
  38. package/lib/modules/tabs/tabset-nav-button.component.d.ts +1 -1
  39. package/lib/modules/tabs/tabset.component.d.ts +1 -1
  40. package/lib/modules/vertical-tabset/vertical-tab.component.d.ts +1 -1
  41. package/lib/modules/vertical-tabset/vertical-tabset-group.component.d.ts +1 -1
  42. package/lib/modules/vertical-tabset/vertical-tabset.component.d.ts +1 -1
  43. package/package.json +21 -29
  44. package/esm2020/index.mjs +0 -25
  45. package/esm2020/lib/modules/sectioned-form/sectioned-form-section.component.mjs +0 -67
  46. package/esm2020/lib/modules/sectioned-form/sectioned-form.component.mjs +0 -187
  47. package/esm2020/lib/modules/shared/sky-tabs-resources.module.mjs +0 -61
  48. package/esm2020/lib/modules/shared/tab-id.service.mjs +0 -53
  49. package/esm2020/lib/modules/tabs/tab-button.component.mjs +0 -162
  50. package/esm2020/lib/modules/tabs/tab.component.mjs +0 -198
  51. package/esm2020/lib/modules/tabs/tabset-adapter.service.mjs +0 -68
  52. package/esm2020/lib/modules/tabs/tabset-nav-button.component.mjs +0 -149
  53. package/esm2020/lib/modules/tabs/tabset-permalink.service.mjs +0 -128
  54. package/esm2020/lib/modules/tabs/tabset.component.mjs +0 -429
  55. package/esm2020/lib/modules/tabs/tabset.service.mjs +0 -196
  56. package/esm2020/lib/modules/vertical-tabset/vertical-tab-media-query.service.mjs +0 -71
  57. package/esm2020/lib/modules/vertical-tabset/vertical-tab.component.mjs +0 -216
  58. package/esm2020/lib/modules/vertical-tabset/vertical-tabset-adapter.service.mjs +0 -51
  59. package/esm2020/lib/modules/vertical-tabset/vertical-tabset-group.component.mjs +0 -110
  60. package/esm2020/lib/modules/vertical-tabset/vertical-tabset.component.mjs +0 -159
  61. package/esm2020/lib/modules/vertical-tabset/vertical-tabset.service.mjs +0 -167
  62. package/esm2020/testing/tabs/tabset-fixture.mjs +0 -128
  63. package/fesm2015/skyux-tabs-testing.mjs +0 -147
  64. package/fesm2015/skyux-tabs-testing.mjs.map +0 -1
  65. package/fesm2015/skyux-tabs.mjs +0 -2560
  66. package/fesm2015/skyux-tabs.mjs.map +0 -1
  67. package/fesm2020/skyux-tabs-testing.mjs +0 -135
  68. package/fesm2020/skyux-tabs.mjs +0 -2544
  69. /package/{esm2020 → esm2022}/lib/modules/sectioned-form/types/sectioned-form-message-type.mjs +0 -0
  70. /package/{esm2020 → esm2022}/lib/modules/sectioned-form/types/sectioned-form-message.mjs +0 -0
  71. /package/{esm2020 → esm2022}/lib/modules/tabs/tab-button-view-model.mjs +0 -0
  72. /package/{esm2020 → esm2022}/lib/modules/tabs/tab-index.mjs +0 -0
  73. /package/{esm2020 → esm2022}/lib/modules/tabs/tabset-active-tab-unregistered-args.mjs +0 -0
  74. /package/{esm2020 → esm2022}/lib/modules/tabs/tabset-buttons-display-mode.mjs +0 -0
  75. /package/{esm2020 → esm2022}/lib/modules/tabs/tabset-nav-button-type.mjs +0 -0
  76. /package/{esm2020 → esm2022}/lib/modules/tabs/tabset-style.mjs +0 -0
  77. /package/{esm2020 → esm2022}/lib/modules/tabs/tabset-tab-indexes-change.mjs +0 -0
  78. /package/{esm2020 → esm2022}/skyux-tabs.mjs +0 -0
  79. /package/{esm2020 → esm2022}/testing/public-api.mjs +0 -0
  80. /package/{esm2020 → esm2022}/testing/skyux-tabs-testing.mjs +0 -0
  81. /package/{esm2020 → esm2022}/testing/tabs/tab-fixture-tab.mjs +0 -0
@@ -1,196 +0,0 @@
1
- var _SkyTabsetService_instances, _SkyTabsetService_activeTabIndex, _SkyTabsetService_focusedTabBtnIndex, _SkyTabsetService_activeTabUnregistered, _SkyTabsetService_activeTabLayout, _SkyTabsetService_tabs, _SkyTabsetService_tabCounter, _SkyTabsetService_isTabIndexActive, _SkyTabsetService_getNextTabArrayIndex, _SkyTabsetService_getPrevTabArrayIndex;
2
- import { __classPrivateFieldGet, __classPrivateFieldSet } from "tslib";
3
- import { Injectable } from '@angular/core';
4
- import { BehaviorSubject, Subject } from 'rxjs';
5
- import * as i0 from "@angular/core";
6
- /**
7
- * @internal
8
- */
9
- export class SkyTabsetService {
10
- get activeTabUnregistered() {
11
- return __classPrivateFieldGet(this, _SkyTabsetService_activeTabUnregistered, "f");
12
- }
13
- get activeTabIndex() {
14
- return __classPrivateFieldGet(this, _SkyTabsetService_activeTabIndex, "f");
15
- }
16
- get focusedTabBtnIndex() {
17
- return __classPrivateFieldGet(this, _SkyTabsetService_focusedTabBtnIndex, "f");
18
- }
19
- get activeTabLayout() {
20
- return __classPrivateFieldGet(this, _SkyTabsetService_activeTabLayout, "f");
21
- }
22
- constructor() {
23
- _SkyTabsetService_instances.add(this);
24
- this.currentActiveTabIndex = 0;
25
- this.currentFocusedTabBtnIndex = 0;
26
- _SkyTabsetService_activeTabIndex.set(this, void 0);
27
- _SkyTabsetService_focusedTabBtnIndex.set(this, void 0);
28
- _SkyTabsetService_activeTabUnregistered.set(this, void 0);
29
- _SkyTabsetService_activeTabLayout.set(this, new Subject());
30
- _SkyTabsetService_tabs.set(this, []);
31
- _SkyTabsetService_tabCounter.set(this, 0);
32
- __classPrivateFieldSet(this, _SkyTabsetService_activeTabIndex, new BehaviorSubject(0), "f");
33
- __classPrivateFieldSet(this, _SkyTabsetService_activeTabUnregistered, new Subject(), "f");
34
- __classPrivateFieldSet(this, _SkyTabsetService_focusedTabBtnIndex, new Subject(), "f");
35
- }
36
- ngOnDestroy() {
37
- __classPrivateFieldGet(this, _SkyTabsetService_activeTabIndex, "f").complete();
38
- __classPrivateFieldGet(this, _SkyTabsetService_activeTabUnregistered, "f").complete();
39
- __classPrivateFieldGet(this, _SkyTabsetService_focusedTabBtnIndex, "f").complete();
40
- __classPrivateFieldGet(this, _SkyTabsetService_activeTabLayout, "f").complete();
41
- }
42
- /**
43
- * Sets the active tab by its unique `tabIndex` property.
44
- */
45
- setActiveTabIndex(value, config = {
46
- emitChange: true,
47
- }) {
48
- if (value !== undefined &&
49
- !this.tabIndexesEqual(value, this.currentActiveTabIndex)) {
50
- this.currentActiveTabIndex = value;
51
- /* istanbul ignore else */
52
- if (config.emitChange) {
53
- __classPrivateFieldGet(this, _SkyTabsetService_activeTabIndex, "f").next(value);
54
- }
55
- this.setFocusedTabBtnIndex(value);
56
- }
57
- }
58
- focusNextTabBtn(tabButtons) {
59
- const currentTabArrayIndex = __classPrivateFieldGet(this, _SkyTabsetService_tabs, "f").findIndex((tab) => this.tabIndexesEqual(tab.tabIndex, this.currentFocusedTabBtnIndex));
60
- for (let i = __classPrivateFieldGet(this, _SkyTabsetService_instances, "m", _SkyTabsetService_getNextTabArrayIndex).call(this, currentTabArrayIndex); i !== currentTabArrayIndex; i = __classPrivateFieldGet(this, _SkyTabsetService_instances, "m", _SkyTabsetService_getNextTabArrayIndex).call(this, i)) {
61
- const tabBtn = tabButtons[i];
62
- if (!tabBtn.disabled && tabBtn.tabIndex !== undefined) {
63
- this.setFocusedTabBtnIndex(tabBtn.tabIndex);
64
- return;
65
- }
66
- }
67
- }
68
- focusPrevTabBtn(tabButtons) {
69
- const currentTabArrayIndex = __classPrivateFieldGet(this, _SkyTabsetService_tabs, "f").findIndex((tab) => this.tabIndexesEqual(tab.tabIndex, this.currentFocusedTabBtnIndex));
70
- for (let i = __classPrivateFieldGet(this, _SkyTabsetService_instances, "m", _SkyTabsetService_getPrevTabArrayIndex).call(this, currentTabArrayIndex); i !== currentTabArrayIndex; i = __classPrivateFieldGet(this, _SkyTabsetService_instances, "m", _SkyTabsetService_getPrevTabArrayIndex).call(this, i)) {
71
- const tabBtn = tabButtons[i];
72
- if (!tabBtn.disabled && tabBtn.tabIndex !== undefined) {
73
- this.setFocusedTabBtnIndex(tabBtn.tabIndex);
74
- return;
75
- }
76
- }
77
- }
78
- focusFirstOrNearestTabBtn(tabButtons) {
79
- for (let i = 0; i < tabButtons.length; i++) {
80
- const tabBtn = tabButtons[i];
81
- if (!tabBtn.disabled && tabBtn.tabIndex !== undefined) {
82
- this.setFocusedTabBtnIndex(tabBtn.tabIndex);
83
- return;
84
- }
85
- }
86
- }
87
- focusLastOrNearestTabBtn(tabButtons) {
88
- for (let i = tabButtons.length - 1; i >= 0; i--) {
89
- const tabBtn = tabButtons[i];
90
- if (!tabBtn.disabled && tabBtn.tabIndex !== undefined) {
91
- this.setFocusedTabBtnIndex(tabBtn.tabIndex);
92
- return;
93
- }
94
- }
95
- }
96
- setFocusedTabBtnIndex(tabIndex) {
97
- this.currentFocusedTabBtnIndex = tabIndex;
98
- __classPrivateFieldGet(this, _SkyTabsetService_focusedTabBtnIndex, "f").next(tabIndex);
99
- }
100
- /**
101
- * Registers a tab component.
102
- */
103
- registerTab(tabIndex) {
104
- var _a;
105
- if (tabIndex === undefined) {
106
- tabIndex = __classPrivateFieldGet(this, _SkyTabsetService_tabCounter, "f");
107
- __classPrivateFieldSet(this, _SkyTabsetService_tabCounter, (_a = __classPrivateFieldGet(this, _SkyTabsetService_tabCounter, "f"), _a++, _a), "f");
108
- }
109
- __classPrivateFieldGet(this, _SkyTabsetService_tabs, "f").push({ tabIndex });
110
- return tabIndex;
111
- }
112
- updateTabIndex(currentTabIndex, newTabIndex) {
113
- const found = __classPrivateFieldGet(this, _SkyTabsetService_tabs, "f").find((tab) => this.tabIndexesEqual(tab.tabIndex, currentTabIndex));
114
- if (found) {
115
- found.tabIndex = newTabIndex;
116
- }
117
- }
118
- updateActiveTabLayout(layout) {
119
- __classPrivateFieldGet(this, _SkyTabsetService_activeTabLayout, "f").next(layout);
120
- }
121
- /**
122
- * Unregisters a tab component.
123
- */
124
- unregisterTab(tabIndex) {
125
- const index = __classPrivateFieldGet(this, _SkyTabsetService_tabs, "f").findIndex((tab) => this.tabIndexesEqual(tab.tabIndex, tabIndex));
126
- // Notify the tabset component when an active tab is unregistered.
127
- if (__classPrivateFieldGet(this, _SkyTabsetService_instances, "m", _SkyTabsetService_isTabIndexActive).call(this, __classPrivateFieldGet(this, _SkyTabsetService_tabs, "f")[index]?.tabIndex)) {
128
- __classPrivateFieldGet(this, _SkyTabsetService_activeTabUnregistered, "f").next({
129
- arrayIndex: index,
130
- });
131
- }
132
- __classPrivateFieldGet(this, _SkyTabsetService_tabs, "f").splice(index, 1);
133
- }
134
- /**
135
- * Unregisters all tab components at once.
136
- */
137
- unregisterAll() {
138
- __classPrivateFieldSet(this, _SkyTabsetService_tabs, [], "f");
139
- }
140
- /**
141
- * Compares two tab indexes and returns `true` if they are equal.
142
- */
143
- tabIndexesEqual(tabIndex1, tabIndex2) {
144
- return (tabIndex1 === tabIndex2 ||
145
- (tabIndex1 !== undefined &&
146
- tabIndex2 !== undefined &&
147
- +tabIndex1 === +tabIndex2));
148
- }
149
- /**
150
- * Verifies if a provided tab index is registered.
151
- */
152
- isValidTabIndex(tabIndex) {
153
- return __classPrivateFieldGet(this, _SkyTabsetService_tabs, "f").some((tab) => this.tabIndexesEqual(tab.tabIndex, tabIndex));
154
- }
155
- /**
156
- * Activates the first registered tab.
157
- */
158
- activateFirstTab() {
159
- const firstTabIndex = __classPrivateFieldGet(this, _SkyTabsetService_tabs, "f")[0] && __classPrivateFieldGet(this, _SkyTabsetService_tabs, "f")[0].tabIndex;
160
- if (firstTabIndex !== undefined) {
161
- this.setActiveTabIndex(firstTabIndex);
162
- return firstTabIndex;
163
- }
164
- return undefined;
165
- }
166
- /**
167
- * Activates the next registered tab, or the previous one based on a provided array index.
168
- */
169
- activateNearestTab(arrayIndex) {
170
- const newActiveTab = __classPrivateFieldGet(this, _SkyTabsetService_tabs, "f")[arrayIndex] || __classPrivateFieldGet(this, _SkyTabsetService_tabs, "f")[arrayIndex - 1];
171
- if (newActiveTab) {
172
- this.currentActiveTabIndex = newActiveTab.tabIndex;
173
- }
174
- }
175
- }
176
- _SkyTabsetService_activeTabIndex = new WeakMap(), _SkyTabsetService_focusedTabBtnIndex = new WeakMap(), _SkyTabsetService_activeTabUnregistered = new WeakMap(), _SkyTabsetService_activeTabLayout = new WeakMap(), _SkyTabsetService_tabs = new WeakMap(), _SkyTabsetService_tabCounter = new WeakMap(), _SkyTabsetService_instances = new WeakSet(), _SkyTabsetService_isTabIndexActive = function _SkyTabsetService_isTabIndexActive(tabIndex) {
177
- return this.tabIndexesEqual(tabIndex, this.currentActiveTabIndex);
178
- }, _SkyTabsetService_getNextTabArrayIndex = function _SkyTabsetService_getNextTabArrayIndex(currentIndex) {
179
- let nextIndex = currentIndex + 1;
180
- if (nextIndex === __classPrivateFieldGet(this, _SkyTabsetService_tabs, "f").length) {
181
- nextIndex = 0;
182
- }
183
- return nextIndex;
184
- }, _SkyTabsetService_getPrevTabArrayIndex = function _SkyTabsetService_getPrevTabArrayIndex(currentIndex) {
185
- let prevIndex = currentIndex - 1;
186
- if (prevIndex < 0) {
187
- prevIndex = __classPrivateFieldGet(this, _SkyTabsetService_tabs, "f").length - 1;
188
- }
189
- return prevIndex;
190
- };
191
- SkyTabsetService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: SkyTabsetService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
192
- SkyTabsetService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: SkyTabsetService });
193
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: SkyTabsetService, decorators: [{
194
- type: Injectable
195
- }], ctorParameters: function () { return []; } });
196
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFic2V0LnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvdGFicy9zcmMvbGliL21vZHVsZXMvdGFicy90YWJzZXQuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQWEsTUFBTSxlQUFlLENBQUM7QUFFdEQsT0FBTyxFQUFFLGVBQWUsRUFBYyxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7O0FBTzVEOztHQUVHO0FBRUgsTUFBTSxPQUFPLGdCQUFnQjtJQUMzQixJQUFXLHFCQUFxQjtRQUM5QixPQUFPLHVCQUFBLElBQUksK0NBQXVCLENBQUM7SUFDckMsQ0FBQztJQUVELElBQVcsY0FBYztRQUN2QixPQUFPLHVCQUFBLElBQUksd0NBQWdCLENBQUM7SUFDOUIsQ0FBQztJQUVELElBQVcsa0JBQWtCO1FBQzNCLE9BQU8sdUJBQUEsSUFBSSw0Q0FBb0IsQ0FBQztJQUNsQyxDQUFDO0lBRUQsSUFBVyxlQUFlO1FBQ3hCLE9BQU8sdUJBQUEsSUFBSSx5Q0FBaUIsQ0FBQztJQUMvQixDQUFDO0lBb0JEOztRQWxCTywwQkFBcUIsR0FBNEIsQ0FBQyxDQUFDO1FBRW5ELDhCQUF5QixHQUFnQixDQUFDLENBQUM7UUFFbEQsbURBQThDO1FBRTlDLHVEQUEwQztRQUUxQywwREFBb0U7UUFFcEUsNENBQW1CLElBQUksT0FBTyxFQUFvQixFQUFDO1FBRW5ELGlDQUVNLEVBQUUsRUFBQztRQUVULHVDQUFjLENBQUMsRUFBQztRQUdkLHVCQUFBLElBQUksb0NBQW1CLElBQUksZUFBZSxDQUFjLENBQUMsQ0FBQyxNQUFBLENBQUM7UUFFM0QsdUJBQUEsSUFBSSwyQ0FDRixJQUFJLE9BQU8sRUFBc0MsTUFBQSxDQUFDO1FBRXBELHVCQUFBLElBQUksd0NBQXVCLElBQUksT0FBTyxFQUFlLE1BQUEsQ0FBQztJQUN4RCxDQUFDO0lB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TUFBTSxFQUFFO1FBQ25DLFNBQVMsR0FBRyxDQUFDLENBQUM7S0FDZjtJQUVELE9BQU8sU0FBUyxDQUFDO0FBQ25CLENBQUMsMkZBRXFCLFlBQW9CO0lBQ3hDLElBQUksU0FBUyxHQUFHLFlBQVksR0FBRyxDQUFDLENBQUM7SUFFakMsSUFBSSxTQUFTLEdBQUcsQ0FBQyxFQUFFO1FBQ2pCLFNBQVMsR0FBRyx1QkFBQSxJQUFJLDhCQUFNLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQztLQUNuQztJQUVELE9BQU8sU0FBUyxDQUFDO0FBQ25CLENBQUM7NkdBclFVLGdCQUFnQjtpSEFBaEIsZ0JBQWdCOzJGQUFoQixnQkFBZ0I7a0JBRDVCLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlLCBPbkRlc3Ryb3kgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0LCBPYnNlcnZhYmxlLCBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XG5cbmltcG9ydCB7IFRhYkJ1dHRvblZpZXdNb2RlbCB9IGZyb20gJy4vdGFiLWJ1dHRvbi12aWV3LW1vZGVsJztcbmltcG9ydCB7IFNreVRhYkluZGV4IH0gZnJvbSAnLi90YWItaW5kZXgnO1xuaW1wb3J0IHsgU2t5VGFiTGF5b3V0VHlwZSB9IGZyb20gJy4vdGFiLWxheW91dC10eXBlJztcbmltcG9ydCB7IFNreVRhYnNldEFjdGl2ZVRhYlVucmVnaXN0ZXJlZEFyZ3MgfSBmcm9tICcuL3RhYnNldC1hY3RpdmUtdGFiLXVucmVnaXN0ZXJlZC1hcmdzJztcblxuLyoqXG4gKiBAaW50ZXJuYWxcbiAqL1xuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIFNreVRhYnNldFNlcnZpY2UgaW1wbGVtZW50cyBPbkRlc3Ryb3kge1xuICBwdWJsaWMgZ2V0IGFjdGl2ZVRhYlVucmVnaXN0ZXJlZCgpOiBPYnNlcnZhYmxlPFNreVRhYnNldEFjdGl2ZVRhYlVucmVnaXN0ZXJlZEFyZ3M+IHtcbiAgICByZXR1cm4gdGhpcy4jYWN0aXZlVGFiVW5yZWdpc3RlcmVkO1xuICB9XG5cbiAgcHVibGljIGdldCBhY3RpdmVUYWJJbmRleCgpOiBPYnNlcnZhYmxlPFNreVRhYkluZGV4PiB7XG4gICAgcmV0dXJuIHRoaXMuI2FjdGl2ZVRhYkluZGV4O1xuICB9XG5cbiAgcHVibGljIGdldCBmb2N1c2VkVGFiQnRuSW5kZXgoKTogT2JzZXJ2YWJsZTxTa3lUYWJJbmRleD4ge1xuICAgIHJldHVybiB0aGlzLiNmb2N1c2VkVGFiQnRuSW5kZXg7XG4gIH1cblxuICBwdWJsaWMgZ2V0IGFjdGl2ZVRhYkxheW91dCgpOiBPYnNlcnZhYmxlPFNreVRhYkxheW91dFR5cGU+IHtcbiAgICByZXR1cm4gdGhpcy4jYWN0aXZlVGFiTGF5b3V0O1xuICB9XG5cbiAgcHVibGljIGN1cnJlbnRBY3RpdmVUYWJJbmRleDogU2t5VGFiSW5kZXggfCB1bmRlZmluZWQgPSAwO1xuXG4gIHB1YmxpYyBjdXJyZW50Rm9jdXNlZFRhYkJ0bkluZGV4OiBTa3lUYWJJbmRleCA9IDA7XG5cbiAgI2FjdGl2ZVRhYkluZGV4OiBCZWhhdmlvclN1YmplY3Q8U2t5VGFiSW5kZXg+O1xuXG4gICNmb2N1c2VkVGFiQnRuSW5kZXg6IFN1YmplY3Q8U2t5VGFiSW5kZXg+O1xuXG4gICNhY3RpdmVUYWJVbnJlZ2lzdGVyZWQ6IFN1YmplY3Q8U2t5VGFic2V0QWN0aXZlVGFiVW5yZWdpc3RlcmVkQXJncz47XG5cbiAgI2FjdGl2ZVRhYkxheW91dCA9IG5ldyBTdWJqZWN0PFNreVRhYkxheW91dFR5cGU+KCk7XG5cbiAgI3RhYnM6IHtcbiAgICB0YWJJbmRleDogU2t5VGFiSW5kZXggfCB1bmRlZmluZWQ7XG4gIH1bXSA9IFtdO1xuXG4gICN0YWJDb3VudGVyID0gMDtcblxuICBjb25zdHJ1Y3RvcigpIHtcbiAgICB0aGlzLiNhY3RpdmVUYWJJbmRleCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8U2t5VGFiSW5kZXg+KDApO1xuXG4gICAgdGhpcy4jYWN0aXZlVGFiVW5yZWdpc3RlcmVkID1cbiAgICAgIG5ldyBTdWJqZWN0PFNreVRhYnNldEFjdGl2ZVRhYlVucmVnaXN0ZXJlZEFyZ3M+KCk7XG5cbiAgICB0aGlzLiNmb2N1c2VkVGFiQnRuSW5kZXggPSBuZXcgU3ViamVjdDxTa3lUYWJJbmRleD4oKTtcbiAgfVxuXG4gIHB1YmxpYyBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICB0aGlzLiNhY3RpdmVUYWJJbmRleC5jb21wbGV0ZSgpO1xuICAgIHRoaXMuI2FjdGl2ZVRhYlVucmVnaXN0ZXJlZC5jb21wbGV0ZSgpO1xuICAgIHRoaXMuI2ZvY3VzZWRUYWJCdG5JbmRleC5jb21wbGV0ZSgpO1xuICAgIHRoaXMuI2FjdGl2ZVRhYkxheW91dC5jb21wbGV0ZSgpO1xuICB9XG5cbiAgLyoqXG4gICAqIFNldHMgdGhlIGFjdGl2ZSB0YWIgYnkgaXRzIHVuaXF1ZSBgdGFiSW5kZXhgIHByb3BlcnR5LlxuICAgKi9cbiAgcHVibGljIHNldEFjdGl2ZVRhYkluZGV4KFxuICAgIHZhbHVlOiBTa3lUYWJJbmRleCB8IHVuZGVmaW5lZCxcbiAgICBjb25maWcgPSB7XG4gICAgICBlbWl0Q2hhbmdlOiB0cnVlLFxuICAgIH1cbiAgKTogdm9pZCB7XG4gICAgaWYgKFxuICAgICAgdmFsdWUgIT09IHVuZGVmaW5lZCAmJlxuICAgICAgIXRoaXMudGFiSW5kZXhlc0VxdWFsKHZhbHVlLCB0aGlzLmN1cnJlbnRBY3RpdmVUYWJJbmRleClcbiAgICApIHtcbiAgICAgIHRoaXMuY3VycmVudEFjdGl2ZVRhYkluZGV4ID0gdmFsdWU7XG5cbiAgICAgIC8qIGlzdGFuYnVsIGlnbm9yZSBlbHNlICovXG4gICAgICBpZiAoY29uZmlnLmVtaXRDaGFuZ2UpIHtcbiAgICAgICAgdGhpcy4jYWN0aXZlVGFiSW5kZXgubmV4dCh2YWx1ZSk7XG4gICAgICB9XG5cbiAgICAgIHRoaXMuc2V0Rm9jdXNlZFRhYkJ0bkluZGV4KHZhbHVlKTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgZm9jdXNOZXh0VGFiQnRuKHRhYkJ1dHRvbnM6IFRhYkJ1dHRvblZpZXdNb2RlbFtdKTogdm9pZCB7XG4gICAgY29uc3QgY3VycmVudFRhYkFycmF5SW5kZXggPSB0aGlzLiN0YWJzLmZpbmRJbmRleCgodGFiKSA9PlxuICAgICAgdGhpcy50YWJJbmRleGVzRXF1YWwodGFiLnRhYkluZGV4LCB0aGlzLmN1cnJlbnRGb2N1c2VkVGFiQnRuSW5kZXgpXG4gICAgKTtcblxuICAgIGZvciAoXG4gICAgICBsZXQgaSA9IHRoaXMuI2dldE5leHRUYWJBcnJheUluZGV4KGN1cnJlbnRUYWJBcnJheUluZGV4KTtcbiAgICAgIGkgIT09IGN1cnJlbnRUYWJBcnJheUluZGV4O1xuICAgICAgaSA9IHRoaXMuI2dldE5leHRUYWJBcnJheUluZGV4KGkpXG4gICAgKSB7XG4gICAgICBjb25zdCB0YWJCdG4gPSB0YWJCdXR0b25zW2ldO1xuICAgICAgaWYgKCF0YWJCdG4uZGlzYWJsZWQgJiYgdGFiQnRuLnRhYkluZGV4ICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgdGhpcy5zZXRGb2N1c2VkVGFiQnRuSW5kZXgodGFiQnRuLnRhYkluZGV4KTtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBmb2N1c1ByZXZUYWJCdG4odGFiQnV0dG9uczogVGFiQnV0dG9uVmlld01vZGVsW10pOiB2b2lkIHtcbiAgICBjb25zdCBjdXJyZW50VGFiQXJyYXlJbmRleCA9IHRoaXMuI3RhYnMuZmluZEluZGV4KCh0YWIpID0+XG4gICAgICB0aGlzLnRhYkluZGV4ZXNFcXVhbCh0YWIudGFiSW5kZXgsIHRoaXMuY3VycmVudEZvY3VzZWRUYWJCdG5JbmRleClcbiAgICApO1xuXG4gICAgZm9yIChcbiAgICAgIGxldCBpID0gdGhpcy4jZ2V0UHJldlRhYkFycmF5SW5kZXgoY3VycmVudFRhYkFycmF5SW5kZXgpO1xuICAgICAgaSAhPT0gY3VycmVudFRhYkFycmF5SW5kZXg7XG4gICAgICBpID0gdGhpcy4jZ2V0UHJldlRhYkFycmF5SW5kZXgoaSlcbiAgICApIHtcbiAgICAgIGNvbnN0IHRhYkJ0biA9IHRhYkJ1dHRvbnNbaV07XG4gICAgICBpZiAoIXRhYkJ0bi5kaXNhYmxlZCAmJiB0YWJCdG4udGFiSW5kZXggIT09IHVuZGVmaW5lZCkge1xuICAgICAgICB0aGlzLnNldEZvY3VzZWRUYWJCdG5JbmRleCh0YWJCdG4udGFiSW5kZXgpO1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcHVibGljIGZvY3VzRmlyc3RPck5lYXJlc3RUYWJCdG4odGFiQnV0dG9uczogVGFiQnV0dG9uVmlld01vZGVsW10pOiB2b2lkIHtcbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IHRhYkJ1dHRvbnMubGVuZ3RoOyBpKyspIHtcbiAgICAgIGNvbnN0IHRhYkJ0biA9IHRhYkJ1dHRvbnNbaV07XG5cbiAgICAgIGlmICghdGFiQnRuLmRpc2FibGVkICYmIHRhYkJ0bi50YWJJbmRleCAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgIHRoaXMuc2V0Rm9jdXNlZFRhYkJ0bkluZGV4KHRhYkJ0bi50YWJJbmRleCk7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBwdWJsaWMgZm9jdXNMYXN0T3JOZWFyZXN0VGFiQnRuKHRhYkJ1dHRvbnM6IFRhYkJ1dHRvblZpZXdNb2RlbFtdKTogdm9pZCB7XG4gICAgZm9yIChsZXQgaSA9IHRhYkJ1dHRvbnMubGVuZ3RoIC0gMTsgaSA+PSAwOyBpLS0pIHtcbiAgICAgIGNvbnN0IHRhYkJ0biA9IHRhYkJ1dHRvbnNbaV07XG5cbiAgICAgIGlmICghdGFiQnRuLmRpc2FibGVkICYmIHRhYkJ0bi50YWJJbmRleCAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgIHRoaXMuc2V0Rm9jdXNlZFRhYkJ0bkluZGV4KHRhYkJ0bi50YWJJbmRleCk7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBwdWJsaWMgc2V0Rm9jdXNlZFRhYkJ0bkluZGV4KHRhYkluZGV4OiBTa3lUYWJJbmRleCk6IHZvaWQge1xuICAgIHRoaXMuY3VycmVudEZvY3VzZWRUYWJCdG5JbmRleCA9IHRhYkluZGV4O1xuICAgIHRoaXMuI2ZvY3VzZWRUYWJCdG5JbmRleC5uZXh0KHRhYkluZGV4KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZWdpc3RlcnMgYSB0YWIgY29tcG9uZW50LlxuICAgKi9cbiAgcHVibGljIHJlZ2lzdGVyVGFiKHRhYkluZGV4PzogU2t5VGFiSW5kZXgpOiBTa3lUYWJJbmRleCB7XG4gICAgaWYgKHRhYkluZGV4ID09PSB1bmRlZmluZWQpIHtcbiAgICAgIHRhYkluZGV4ID0gdGhpcy4jdGFiQ291bnRlcjtcbiAgICAgIHRoaXMuI3RhYkNvdW50ZXIrKztcbiAgICB9XG5cbiAgICB0aGlzLiN0YWJzLnB1c2goeyB0YWJJbmRleCB9KTtcblxuICAgIHJldHVybiB0YWJJbmRleDtcbiAgfVxuXG4gIHB1YmxpYyB1cGRhdGVUYWJJbmRleChcbiAgICBjdXJyZW50VGFiSW5kZXg6IFNreVRhYkluZGV4LFxuICAgIG5ld1RhYkluZGV4OiBTa3lUYWJJbmRleFxuICApOiB2b2lkIHtcbiAgICBjb25zdCBmb3VuZCA9IHRoaXMuI3RhYnMuZmluZCgodGFiKSA9PlxuICAgICAgdGhpcy50YWJJbmRleGVzRXF1YWwodGFiLnRhYkluZGV4LCBjdXJyZW50VGFiSW5kZXgpXG4gICAgKTtcbiAgICBpZiAoZm91bmQpIHtcbiAgICAgIGZvdW5kLnRhYkluZGV4ID0gbmV3VGFiSW5kZXg7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIHVwZGF0ZUFjdGl2ZVRhYkxheW91dChsYXlvdXQ6IFNreVRhYkxheW91dFR5cGUpOiB2b2lkIHtcbiAgICB0aGlzLiNhY3RpdmVUYWJMYXlvdXQubmV4dChsYXlvdXQpO1xuICB9XG5cbiAgLyoqXG4gICAqIFVucmVnaXN0ZXJzIGEgdGFiIGNvbXBvbmVudC5cbiAgICovXG4gIHB1YmxpYyB1bnJlZ2lzdGVyVGFiKHRhYkluZGV4OiBTa3lUYWJJbmRleCk6IHZvaWQge1xuICAgIGNvbnN0IGluZGV4ID0gdGhpcy4jdGFicy5maW5kSW5kZXgoKHRhYikgPT5cbiAgICAgIHRoaXMudGFiSW5kZXhlc0VxdWFsKHRhYi50YWJJbmRleCwgdGFiSW5kZXgpXG4gICAgKTtcblxuICAgIC8vIE5vdGlmeSB0aGUgdGFic2V0IGNvbXBvbmVudCB3aGVuIGFuIGFjdGl2ZSB0YWIgaXMgdW5yZWdpc3RlcmVkLlxuICAgIGlmICh0aGlzLiNpc1RhYkluZGV4QWN0aXZlKHRoaXMuI3RhYnNbaW5kZXhdPy50YWJJbmRleCkpIHtcbiAgICAgIHRoaXMuI2FjdGl2ZVRhYlVucmVnaXN0ZXJlZC5uZXh0KHtcbiAgICAgICAgYXJyYXlJbmRleDogaW5kZXgsXG4gICAgICB9KTtcbiAgICB9XG5cbiAgICB0aGlzLiN0YWJzLnNwbGljZShpbmRleCwgMSk7XG4gIH1cblxuICAvKipcbiAgICogVW5yZWdpc3RlcnMgYWxsIHRhYiBjb21wb25lbnRzIGF0IG9uY2UuXG4gICAqL1xuICBwdWJsaWMgdW5yZWdpc3RlckFsbCgpOiB2b2lkIHtcbiAgICB0aGlzLiN0YWJzID0gW107XG4gIH1cblxuICAvKipcbiAgICogQ29tcGFyZXMgdHdvIHRhYiBpbmRleGVzIGFuZCByZXR1cm5zIGB0cnVlYCBpZiB0aGV5IGFyZSBlcXVhbC5cbiAgICovXG4gIHB1YmxpYyB0YWJJbmRleGVzRXF1YWwoXG4gICAgdGFiSW5kZXgxOiBTa3lUYWJJbmRleCB8IHVuZGVmaW5lZCxcbiAgICB0YWJJbmRleDI6IFNreVRhYkluZGV4IHwgdW5kZWZpbmVkXG4gICk6IGJvb2xlYW4ge1xuICAgIHJldHVybiAoXG4gICAgICB0YWJJbmRleDEgPT09IHRhYkluZGV4MiB8fFxuICAgICAgKHRhYkluZGV4MSAhPT0gdW5kZWZpbmVkICYmXG4gICAgICAgIHRhYkluZGV4MiAhPT0gdW5kZWZpbmVkICYmXG4gICAgICAgICt0YWJJbmRleDEgPT09ICt0YWJJbmRleDIpXG4gICAgKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBWZXJpZmllcyBpZiBhIHByb3ZpZGVkIHRhYiBpbmRleCBpcyByZWdpc3RlcmVkLlxuICAgKi9cbiAgcHVibGljIGlzVmFsaWRUYWJJbmRleCh0YWJJbmRleDogU2t5VGFiSW5kZXgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy4jdGFicy5zb21lKCh0YWIpID0+XG4gICAgICB0aGlzLnRhYkluZGV4ZXNFcXVhbCh0YWIudGFiSW5kZXgsIHRhYkluZGV4KVxuICAgICk7XG4gIH1cblxuICAvKipcbiAgICogQWN0aXZhdGVzIHRoZSBmaXJzdCByZWdpc3RlcmVkIHRhYi5cbiAgICovXG4gIHB1YmxpYyBhY3RpdmF0ZUZpcnN0VGFiKCk6IFNreVRhYkluZGV4IHwgdW5kZWZpbmVkIHtcbiAgICBjb25zdCBmaXJzdFRhYkluZGV4ID0gdGhpcy4jdGFic1swXSAmJiB0aGlzLiN0YWJzWzBdLnRhYkluZGV4O1xuICAgIGlmIChmaXJzdFRhYkluZGV4ICE9PSB1bmRlZmluZWQpIHtcbiAgICAgIHRoaXMuc2V0QWN0aXZlVGFiSW5kZXgoZmlyc3RUYWJJbmRleCk7XG4gICAgICByZXR1cm4gZmlyc3RUYWJJbmRleDtcbiAgICB9XG4gICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgfVxuXG4gIC8qKlxuICAgKiBBY3RpdmF0ZXMgdGhlIG5leHQgcmVnaXN0ZXJlZCB0YWIsIG9yIHRoZSBwcmV2aW91cyBvbmUgYmFzZWQgb24gYSBwcm92aWRlZCBhcnJheSBpbmRleC5cbiAgICovXG4gIHB1YmxpYyBhY3RpdmF0ZU5lYXJlc3RUYWIoYXJyYXlJbmRleDogbnVtYmVyKTogdm9pZCB7XG4gICAgY29uc3QgbmV3QWN0aXZlVGFiID0gdGhpcy4jdGFic1thcnJheUluZGV4XSB8fCB0aGlzLiN0YWJzW2FycmF5SW5kZXggLSAxXTtcbiAgICBpZiAobmV3QWN0aXZlVGFiKSB7XG4gICAgICB0aGlzLmN1cnJlbnRBY3RpdmVUYWJJbmRleCA9IG5ld0FjdGl2ZVRhYi50YWJJbmRleDtcbiAgICB9XG4gIH1cblxuICAjaXNUYWJJbmRleEFjdGl2ZSh0YWJJbmRleDogU2t5VGFiSW5kZXggfCB1bmRlZmluZWQpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy50YWJJbmRleGVzRXF1YWwodGFiSW5kZXgsIHRoaXMuY3VycmVudEFjdGl2ZVRhYkluZGV4KTtcbiAgfVxuXG4gICNnZXROZXh0VGFiQXJyYXlJbmRleChjdXJyZW50SW5kZXg6IG51bWJlcik6IG51bWJlciB7XG4gICAgbGV0IG5leHRJbmRleCA9IGN1cnJlbnRJbmRleCArIDE7XG5cbiAgICBpZiAobmV4dEluZGV4ID09PSB0aGlzLiN0YWJzLmxlbmd0aCkge1xuICAgICAgbmV4dEluZGV4ID0gMDtcbiAgICB9XG5cbiAgICByZXR1cm4gbmV4dEluZGV4O1xuICB9XG5cbiAgI2dldFByZXZUYWJBcnJheUluZGV4KGN1cnJlbnRJbmRleDogbnVtYmVyKTogbnVtYmVyIHtcbiAgICBsZXQgcHJldkluZGV4ID0gY3VycmVudEluZGV4IC0gMTtcblxuICAgIGlmIChwcmV2SW5kZXggPCAwKSB7XG4gICAgICBwcmV2SW5kZXggPSB0aGlzLiN0YWJzLmxlbmd0aCAtIDE7XG4gICAgfVxuXG4gICAgcmV0dXJuIHByZXZJbmRleDtcbiAgfVxufVxuIl19
@@ -1,71 +0,0 @@
1
- var _SkyVerticalTabMediaQueryService_currentSubject;
2
- import { __classPrivateFieldGet, __classPrivateFieldSet } from "tslib";
3
- import { Injectable } from '@angular/core';
4
- import { SkyMediaBreakpoints } from '@skyux/core';
5
- import { ReplaySubject } from 'rxjs';
6
- import * as i0 from "@angular/core";
7
- /**
8
- * @internal
9
- */
10
- export class SkyVerticalTabMediaQueryService {
11
- constructor() {
12
- _SkyVerticalTabMediaQueryService_currentSubject.set(this, void 0);
13
- __classPrivateFieldSet(this, _SkyVerticalTabMediaQueryService_currentSubject, new ReplaySubject(1), "f");
14
- }
15
- subscribe(listener) {
16
- return __classPrivateFieldGet(this, _SkyVerticalTabMediaQueryService_currentSubject, "f").subscribe({
17
- next: (breakpoints) => {
18
- listener(breakpoints);
19
- },
20
- });
21
- }
22
- setBreakpointForWidth(width) {
23
- let breakpoint;
24
- if (this.isWidthWithinBreakpoint(width, SkyMediaBreakpoints.xs)) {
25
- breakpoint = SkyMediaBreakpoints.xs;
26
- }
27
- else if (this.isWidthWithinBreakpoint(width, SkyMediaBreakpoints.sm)) {
28
- breakpoint = SkyMediaBreakpoints.sm;
29
- }
30
- else if (this.isWidthWithinBreakpoint(width, SkyMediaBreakpoints.md)) {
31
- breakpoint = SkyMediaBreakpoints.md;
32
- }
33
- else {
34
- breakpoint = SkyMediaBreakpoints.lg;
35
- }
36
- this.current = breakpoint;
37
- __classPrivateFieldGet(this, _SkyVerticalTabMediaQueryService_currentSubject, "f").next(this.current);
38
- }
39
- isWidthWithinBreakpoint(width, breakpoint) {
40
- const xsBreakpointMaxPixels = 767;
41
- const smBreakpointMinPixels = 768;
42
- const smBreakpointMaxPixels = 991;
43
- const mdBreakpointMinPixels = 992;
44
- const mdBreakpointMaxPixels = 1199;
45
- const lgBreakpointMinPixels = 1200;
46
- switch (breakpoint) {
47
- case SkyMediaBreakpoints.xs: {
48
- return width <= xsBreakpointMaxPixels;
49
- }
50
- case SkyMediaBreakpoints.sm: {
51
- return width >= smBreakpointMinPixels && width <= smBreakpointMaxPixels;
52
- }
53
- case SkyMediaBreakpoints.md: {
54
- return width >= mdBreakpointMinPixels && width <= mdBreakpointMaxPixels;
55
- }
56
- default: {
57
- return width >= lgBreakpointMinPixels;
58
- }
59
- }
60
- }
61
- destroy() {
62
- __classPrivateFieldGet(this, _SkyVerticalTabMediaQueryService_currentSubject, "f").complete();
63
- }
64
- }
65
- _SkyVerticalTabMediaQueryService_currentSubject = new WeakMap();
66
- SkyVerticalTabMediaQueryService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: SkyVerticalTabMediaQueryService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
67
- SkyVerticalTabMediaQueryService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: SkyVerticalTabMediaQueryService });
68
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: SkyVerticalTabMediaQueryService, decorators: [{
69
- type: Injectable
70
- }], ctorParameters: function () { return []; } });
71
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmVydGljYWwtdGFiLW1lZGlhLXF1ZXJ5LnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvdGFicy9zcmMvbGliL21vZHVsZXMvdmVydGljYWwtdGFic2V0L3ZlcnRpY2FsLXRhYi1tZWRpYS1xdWVyeS5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzQyxPQUFPLEVBQUUsbUJBQW1CLEVBQXlCLE1BQU0sYUFBYSxDQUFDO0FBRXpFLE9BQU8sRUFBRSxhQUFhLEVBQWdCLE1BQU0sTUFBTSxDQUFDOztBQUVuRDs7R0FFRztBQUVILE1BQU0sT0FBTywrQkFBK0I7SUFLMUM7UUFGQSxrRUFBb0Q7UUFHbEQsdUJBQUEsSUFBSSxtREFBbUIsSUFBSSxhQUFhLENBQXNCLENBQUMsQ0FBQyxNQUFBLENBQUM7SUFDbkUsQ0FBQztJQUVNLFNBQVMsQ0FBQyxRQUErQjtRQUM5QyxPQUFPLHVCQUFBLElBQUksdURBQWdCLENBQUMsU0FBUyxDQUFDO1lBQ3BDLElBQUksRUFBRSxDQUFDLFdBQWdDLEVBQUUsRUFBRTtnQkFDekMsUUFBUSxDQUFDLFdBQVcsQ0FBQyxDQUFDO1lBQ3hCLENBQUM7U0FDRixDQUFDLENBQUM7SUFDTCxDQUFDO0lBRU0scUJBQXFCLENBQUMsS0FBYTtRQUN4QyxJQUFJLFVBQStCLENBQUM7UUFFcEMsSUFBSSxJQUFJLENBQUMsdUJBQXVCLENBQUMsS0FBSyxFQUFFLG1CQUFtQixDQUFDLEVBQUUsQ0FBQyxFQUFFO1lBQy9ELFVBQVUsR0FBRyxtQkFBbUIsQ0FBQyxFQUFFLENBQUM7U0FDckM7YUFBTSxJQUFJLElBQUksQ0FBQyx1QkFBdUIsQ0FBQyxLQUFLLEVBQUUsbUJBQW1CLENBQUMsRUFBRSxDQUFDLEVBQUU7WUFDdEUsVUFBVSxHQUFHLG1CQUFtQixDQUFDLEVBQUUsQ0FBQztTQUNyQzthQUFNLElBQUksSUFBSSxDQUFDLHVCQUF1QixDQUFDLEtBQUssRUFBRSxtQkFBbUIsQ0FBQyxFQUFFLENBQUMsRUFBRTtZQUN0RSxVQUFVLEdBQUcsbUJBQW1CLENBQUMsRUFBRSxDQUFDO1NBQ3JDO2FBQU07WUFDTCxVQUFVLEdBQUcsbUJBQW1CLENBQUMsRUFBRSxDQUFDO1NBQ3JDO1FBRUQsSUFBSSxDQUFDLE9BQU8sR0FBRyxVQUFVLENBQUM7UUFDMUIsdUJBQUEsSUFBSSx1REFBZ0IsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQzFDLENBQUM7SUFFTSx1QkFBdUIsQ0FDNUIsS0FBYSxFQUNiLFVBQStCO1FBRS9CLE1BQU0scUJBQXFCLEdBQUcsR0FBRyxDQUFDO1FBQ2xDLE1BQU0scUJBQXFCLEdBQUcsR0FBRyxDQUFDO1FBQ2xDLE1BQU0scUJBQXFCLEdBQUcsR0FBRyxDQUFDO1FBQ2xDLE1BQU0scUJBQXFCLEdBQUcsR0FBRyxDQUFDO1FBQ2xDLE1BQU0scUJBQXFCLEdBQUcsSUFBSSxDQUFDO1FBQ25DLE1BQU0scUJBQXFCLEdBQUcsSUFBSSxDQUFDO1FBRW5DLFFBQVEsVUFBVSxFQUFFO1lBQ2xCLEtBQUssbUJBQW1CLENBQUMsRUFBRSxDQUFDLENBQUM7Z0JBQzNCLE9BQU8sS0FBSyxJQUFJLHFCQUFxQixDQUFDO2FBQ3ZDO1lBQ0QsS0FBSyxtQkFBbUIsQ0FBQyxFQUFFLENBQUMsQ0FBQztnQkFDM0IsT0FBTyxLQUFLLElBQUkscUJBQXFCLElBQUksS0FBSyxJQUFJLHFCQUFxQixDQUFDO2FBQ3pFO1lBQ0QsS0FBSyxtQkFBbUIsQ0FBQyxFQUFFLENBQUMsQ0FBQztnQkFDM0IsT0FBTyxLQUFLLElBQUkscUJBQXFCLElBQUksS0FBSyxJQUFJLHFCQUFxQixDQUFDO2FBQ3pFO1lBQ0QsT0FBTyxDQUFDLENBQUM7Z0JBQ1AsT0FBTyxLQUFLLElBQUkscUJBQXFCLENBQUM7YUFDdkM7U0FDRjtJQUNILENBQUM7SUFFTSxPQUFPO1FBQ1osdUJBQUEsSUFBSSx1REFBZ0IsQ0FBQyxRQUFRLEVBQUUsQ0FBQztJQUNsQyxDQUFDOzs7NEhBL0RVLCtCQUErQjtnSUFBL0IsK0JBQStCOzJGQUEvQiwrQkFBK0I7a0JBRDNDLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBTa3lNZWRpYUJyZWFrcG9pbnRzLCBTa3lNZWRpYVF1ZXJ5TGlzdGVuZXIgfSBmcm9tICdAc2t5dXgvY29yZSc7XG5cbmltcG9ydCB7IFJlcGxheVN1YmplY3QsIFN1YnNjcmlwdGlvbiB9IGZyb20gJ3J4anMnO1xuXG4vKipcbiAqIEBpbnRlcm5hbFxuICovXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgU2t5VmVydGljYWxUYWJNZWRpYVF1ZXJ5U2VydmljZSB7XG4gIHB1YmxpYyBjdXJyZW50OiBTa3lNZWRpYUJyZWFrcG9pbnRzIHwgdW5kZWZpbmVkO1xuXG4gICNjdXJyZW50U3ViamVjdDogUmVwbGF5U3ViamVjdDxTa3lNZWRpYUJyZWFrcG9pbnRzPjtcblxuICBjb25zdHJ1Y3RvcigpIHtcbiAgICB0aGlzLiNjdXJyZW50U3ViamVjdCA9IG5ldyBSZXBsYXlTdWJqZWN0PFNreU1lZGlhQnJlYWtwb2ludHM+KDEpO1xuICB9XG5cbiAgcHVibGljIHN1YnNjcmliZShsaXN0ZW5lcjogU2t5TWVkaWFRdWVyeUxpc3RlbmVyKTogU3Vic2NyaXB0aW9uIHtcbiAgICByZXR1cm4gdGhpcy4jY3VycmVudFN1YmplY3Quc3Vic2NyaWJlKHtcbiAgICAgIG5leHQ6IChicmVha3BvaW50czogU2t5TWVkaWFCcmVha3BvaW50cykgPT4ge1xuICAgICAgICBsaXN0ZW5lcihicmVha3BvaW50cyk7XG4gICAgICB9LFxuICAgIH0pO1xuICB9XG5cbiAgcHVibGljIHNldEJyZWFrcG9pbnRGb3JXaWR0aCh3aWR0aDogbnVtYmVyKTogdm9pZCB7XG4gICAgbGV0IGJyZWFrcG9pbnQ6IFNreU1lZGlhQnJlYWtwb2ludHM7XG5cbiAgICBpZiAodGhpcy5pc1dpZHRoV2l0aGluQnJlYWtwb2ludCh3aWR0aCwgU2t5TWVkaWFCcmVha3BvaW50cy54cykpIHtcbiAgICAgIGJyZWFrcG9pbnQgPSBTa3lNZWRpYUJyZWFrcG9pbnRzLnhzO1xuICAgIH0gZWxzZSBpZiAodGhpcy5pc1dpZHRoV2l0aGluQnJlYWtwb2ludCh3aWR0aCwgU2t5TWVkaWFCcmVha3BvaW50cy5zbSkpIHtcbiAgICAgIGJyZWFrcG9pbnQgPSBTa3lNZWRpYUJyZWFrcG9pbnRzLnNtO1xuICAgIH0gZWxzZSBpZiAodGhpcy5pc1dpZHRoV2l0aGluQnJlYWtwb2ludCh3aWR0aCwgU2t5TWVkaWFCcmVha3BvaW50cy5tZCkpIHtcbiAgICAgIGJyZWFrcG9pbnQgPSBTa3lNZWRpYUJyZWFrcG9pbnRzLm1kO1xuICAgIH0gZWxzZSB7XG4gICAgICBicmVha3BvaW50ID0gU2t5TWVkaWFCcmVha3BvaW50cy5sZztcbiAgICB9XG5cbiAgICB0aGlzLmN1cnJlbnQgPSBicmVha3BvaW50O1xuICAgIHRoaXMuI2N1cnJlbnRTdWJqZWN0Lm5leHQodGhpcy5jdXJyZW50KTtcbiAgfVxuXG4gIHB1YmxpYyBpc1dpZHRoV2l0aGluQnJlYWtwb2ludChcbiAgICB3aWR0aDogbnVtYmVyLFxuICAgIGJyZWFrcG9pbnQ6IFNreU1lZGlhQnJlYWtwb2ludHNcbiAgKTogYm9vbGVhbiB7XG4gICAgY29uc3QgeHNCcmVha3BvaW50TWF4UGl4ZWxzID0gNzY3O1xuICAgIGNvbnN0IHNtQnJlYWtwb2ludE1pblBpeGVscyA9IDc2ODtcbiAgICBjb25zdCBzbUJyZWFrcG9pbnRNYXhQaXhlbHMgPSA5OTE7XG4gICAgY29uc3QgbWRCcmVha3BvaW50TWluUGl4ZWxzID0gOTkyO1xuICAgIGNvbnN0IG1kQnJlYWtwb2ludE1heFBpeGVscyA9IDExOTk7XG4gICAgY29uc3QgbGdCcmVha3BvaW50TWluUGl4ZWxzID0gMTIwMDtcblxuICAgIHN3aXRjaCAoYnJlYWtwb2ludCkge1xuICAgICAgY2FzZSBTa3lNZWRpYUJyZWFrcG9pbnRzLnhzOiB7XG4gICAgICAgIHJldHVybiB3aWR0aCA8PSB4c0JyZWFrcG9pbnRNYXhQaXhlbHM7XG4gICAgICB9XG4gICAgICBjYXNlIFNreU1lZGlhQnJlYWtwb2ludHMuc206IHtcbiAgICAgICAgcmV0dXJuIHdpZHRoID49IHNtQnJlYWtwb2ludE1pblBpeGVscyAmJiB3aWR0aCA8PSBzbUJyZWFrcG9pbnRNYXhQaXhlbHM7XG4gICAgICB9XG4gICAgICBjYXNlIFNreU1lZGlhQnJlYWtwb2ludHMubWQ6IHtcbiAgICAgICAgcmV0dXJuIHdpZHRoID49IG1kQnJlYWtwb2ludE1pblBpeGVscyAmJiB3aWR0aCA8PSBtZEJyZWFrcG9pbnRNYXhQaXhlbHM7XG4gICAgICB9XG4gICAgICBkZWZhdWx0OiB7XG4gICAgICAgIHJldHVybiB3aWR0aCA+PSBsZ0JyZWFrcG9pbnRNaW5QaXhlbHM7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcHVibGljIGRlc3Ryb3koKTogdm9pZCB7XG4gICAgdGhpcy4jY3VycmVudFN1YmplY3QuY29tcGxldGUoKTtcbiAgfVxufVxuIl19
@@ -1,216 +0,0 @@
1
- var _SkyVerticalTabComponent_instances, _SkyVerticalTabComponent__ariaRole, _SkyVerticalTabComponent__contentRendered, _SkyVerticalTabComponent_tabIdOrDefault, _SkyVerticalTabComponent_defaultTabId, _SkyVerticalTabComponent_mobileSubscription, _SkyVerticalTabComponent_ngUnsubscribe, _SkyVerticalTabComponent_adapterService, _SkyVerticalTabComponent_changeRef, _SkyVerticalTabComponent_tabsetService, _SkyVerticalTabComponent_verticalTabMediaQueryService, _SkyVerticalTabComponent_tabIdSvc, _SkyVerticalTabComponent_updateBreakpointAndResponsiveClass;
2
- import { __classPrivateFieldGet, __classPrivateFieldSet } from "tslib";
3
- import { ChangeDetectionStrategy, Component, HostListener, Input, Optional, ViewChild, } from '@angular/core';
4
- import { SkyMediaQueryService } from '@skyux/core';
5
- import { Subject } from 'rxjs';
6
- import { takeUntil } from 'rxjs/operators';
7
- import { SkyVerticalTabMediaQueryService } from './vertical-tab-media-query.service';
8
- import * as i0 from "@angular/core";
9
- import * as i1 from "./vertical-tabset-adapter.service";
10
- import * as i2 from "./vertical-tabset.service";
11
- import * as i3 from "./vertical-tab-media-query.service";
12
- import * as i4 from "../shared/tab-id.service";
13
- import * as i5 from "@angular/common";
14
- import * as i6 from "@skyux/indicators";
15
- import * as i7 from "@skyux/core";
16
- let nextId = 0;
17
- export class SkyVerticalTabComponent {
18
- /**
19
- * The ARIA role for the vertical tab
20
- * [to support accessibility](https://developer.blackbaud.com/skyux/learn/accessibility)
21
- * by indicating how the tab functions and what it controls. For information about how
22
- * an ARIA role indicates what an item represents on a web page, see the
23
- * [WAI-ARIA roles model](https://www.w3.org/WAI/PF/aria/#roles).
24
- * @default "tab"
25
- * @deprecated Any other value than `tab` could lead to a poor user experience for users with assistive technology.
26
- * In the next major version, this property will be automatically set to `tab`.
27
- */
28
- get ariaRole() {
29
- return __classPrivateFieldGet(this, _SkyVerticalTabComponent__ariaRole, "f");
30
- }
31
- set ariaRole(value) {
32
- __classPrivateFieldSet(this, _SkyVerticalTabComponent__ariaRole, value ?? 'tab', "f");
33
- }
34
- /**
35
- * The ID for the tab.
36
- * @deprecated Now that the vertical tabs provide aria labels automatically, this input is no longer necessary.
37
- */
38
- set tabId(value) {
39
- __classPrivateFieldSet(this, _SkyVerticalTabComponent_tabIdOrDefault, value || __classPrivateFieldGet(this, _SkyVerticalTabComponent_defaultTabId, "f"), "f");
40
- __classPrivateFieldGet(this, _SkyVerticalTabComponent_tabIdSvc, "f")?.register(__classPrivateFieldGet(this, _SkyVerticalTabComponent_defaultTabId, "f"), __classPrivateFieldGet(this, _SkyVerticalTabComponent_tabIdOrDefault, "f"));
41
- }
42
- get tabId() {
43
- return __classPrivateFieldGet(this, _SkyVerticalTabComponent_tabIdOrDefault, "f");
44
- }
45
- set contentRendered(value) {
46
- __classPrivateFieldSet(this, _SkyVerticalTabComponent__contentRendered, value, "f");
47
- /* istanbul ignore else */
48
- if (__classPrivateFieldGet(this, _SkyVerticalTabComponent__contentRendered, "f")) {
49
- // NOTE: Wrapped in a setTimeout here to ensure that everything has completed rendering.
50
- setTimeout(() => {
51
- if (this.tabContent) {
52
- __classPrivateFieldGet(this, _SkyVerticalTabComponent_instances, "m", _SkyVerticalTabComponent_updateBreakpointAndResponsiveClass).call(this);
53
- }
54
- });
55
- }
56
- }
57
- get contentRendered() {
58
- return __classPrivateFieldGet(this, _SkyVerticalTabComponent__contentRendered, "f");
59
- }
60
- constructor(adapterService, changeRef, tabsetService, verticalTabMediaQueryService, tabIdSvc) {
61
- _SkyVerticalTabComponent_instances.add(this);
62
- /**
63
- * Whether the tab is active when the tabset loads.
64
- */
65
- this.active = false;
66
- /**
67
- * Whether to disable the tab.
68
- */
69
- this.disabled = false;
70
- /**
71
- * Whether to indicate that the tab has an error.
72
- * @internal This is used for sectioned forms and is not currently a supported design for pure vertical tabs.
73
- */
74
- this.errorIndicator = false;
75
- this.isMobile = false;
76
- _SkyVerticalTabComponent__ariaRole.set(this, 'tab');
77
- _SkyVerticalTabComponent__contentRendered.set(this, false);
78
- _SkyVerticalTabComponent_tabIdOrDefault.set(this, void 0);
79
- _SkyVerticalTabComponent_defaultTabId.set(this, void 0);
80
- _SkyVerticalTabComponent_mobileSubscription.set(this, new Subject());
81
- _SkyVerticalTabComponent_ngUnsubscribe.set(this, new Subject());
82
- _SkyVerticalTabComponent_adapterService.set(this, void 0);
83
- _SkyVerticalTabComponent_changeRef.set(this, void 0);
84
- _SkyVerticalTabComponent_tabsetService.set(this, void 0);
85
- _SkyVerticalTabComponent_verticalTabMediaQueryService.set(this, void 0);
86
- _SkyVerticalTabComponent_tabIdSvc.set(this, void 0);
87
- __classPrivateFieldSet(this, _SkyVerticalTabComponent_adapterService, adapterService, "f");
88
- __classPrivateFieldSet(this, _SkyVerticalTabComponent_changeRef, changeRef, "f");
89
- __classPrivateFieldSet(this, _SkyVerticalTabComponent_tabsetService, tabsetService, "f");
90
- __classPrivateFieldSet(this, _SkyVerticalTabComponent_verticalTabMediaQueryService, verticalTabMediaQueryService, "f");
91
- __classPrivateFieldSet(this, _SkyVerticalTabComponent_tabIdSvc, tabIdSvc, "f");
92
- __classPrivateFieldSet(this, _SkyVerticalTabComponent_tabIdOrDefault, __classPrivateFieldSet(this, _SkyVerticalTabComponent_defaultTabId, `sky-vertical-tab-${++nextId}`, "f"), "f");
93
- this.tabId = __classPrivateFieldGet(this, _SkyVerticalTabComponent_defaultTabId, "f");
94
- }
95
- ngOnInit() {
96
- this.isMobile = __classPrivateFieldGet(this, _SkyVerticalTabComponent_tabsetService, "f").isMobile();
97
- __classPrivateFieldGet(this, _SkyVerticalTabComponent_changeRef, "f").markForCheck();
98
- __classPrivateFieldGet(this, _SkyVerticalTabComponent_tabsetService, "f").switchingMobile.subscribe((mobile) => {
99
- this.isMobile = mobile;
100
- __classPrivateFieldGet(this, _SkyVerticalTabComponent_changeRef, "f").markForCheck();
101
- });
102
- // Update the breakpoint and responsive class here just as a sanity check since we can not
103
- // watch for element resizing.
104
- __classPrivateFieldGet(this, _SkyVerticalTabComponent_tabsetService, "f").indexChanged
105
- .pipe(takeUntil(__classPrivateFieldGet(this, _SkyVerticalTabComponent_ngUnsubscribe, "f")))
106
- .subscribe((index) => {
107
- if (this.index === index && this.contentRendered) {
108
- if (this.tabContent) {
109
- __classPrivateFieldGet(this, _SkyVerticalTabComponent_instances, "m", _SkyVerticalTabComponent_updateBreakpointAndResponsiveClass).call(this);
110
- }
111
- }
112
- });
113
- __classPrivateFieldGet(this, _SkyVerticalTabComponent_tabsetService, "f").addTab(this);
114
- }
115
- ngOnDestroy() {
116
- __classPrivateFieldGet(this, _SkyVerticalTabComponent_tabIdSvc, "f")?.unregister(__classPrivateFieldGet(this, _SkyVerticalTabComponent_defaultTabId, "f"));
117
- __classPrivateFieldGet(this, _SkyVerticalTabComponent_mobileSubscription, "f").unsubscribe();
118
- __classPrivateFieldGet(this, _SkyVerticalTabComponent_ngUnsubscribe, "f").next();
119
- __classPrivateFieldGet(this, _SkyVerticalTabComponent_ngUnsubscribe, "f").complete();
120
- __classPrivateFieldGet(this, _SkyVerticalTabComponent_tabsetService, "f").destroyTab(this);
121
- }
122
- tabIndex() {
123
- if (!this.disabled) {
124
- return 0;
125
- }
126
- else {
127
- return -1;
128
- }
129
- }
130
- activateTab() {
131
- if (!this.disabled) {
132
- this.active = true;
133
- __classPrivateFieldGet(this, _SkyVerticalTabComponent_tabsetService, "f").activateTab(this);
134
- __classPrivateFieldGet(this, _SkyVerticalTabComponent_changeRef, "f").markForCheck();
135
- }
136
- }
137
- onTabButtonKeyUp(event) {
138
- /*istanbul ignore else */
139
- if (event.key) {
140
- switch (event.key.toUpperCase()) {
141
- case ' ':
142
- case 'ENTER':
143
- this.activateTab();
144
- event.stopPropagation();
145
- break;
146
- /* istanbul ignore next */
147
- default:
148
- break;
149
- }
150
- }
151
- }
152
- onWindowResize() {
153
- if (this.tabContent) {
154
- __classPrivateFieldGet(this, _SkyVerticalTabComponent_instances, "m", _SkyVerticalTabComponent_updateBreakpointAndResponsiveClass).call(this);
155
- }
156
- }
157
- tabDeactivated() {
158
- __classPrivateFieldGet(this, _SkyVerticalTabComponent_changeRef, "f").markForCheck();
159
- }
160
- }
161
- _SkyVerticalTabComponent__ariaRole = new WeakMap(), _SkyVerticalTabComponent__contentRendered = new WeakMap(), _SkyVerticalTabComponent_tabIdOrDefault = new WeakMap(), _SkyVerticalTabComponent_defaultTabId = new WeakMap(), _SkyVerticalTabComponent_mobileSubscription = new WeakMap(), _SkyVerticalTabComponent_ngUnsubscribe = new WeakMap(), _SkyVerticalTabComponent_adapterService = new WeakMap(), _SkyVerticalTabComponent_changeRef = new WeakMap(), _SkyVerticalTabComponent_tabsetService = new WeakMap(), _SkyVerticalTabComponent_verticalTabMediaQueryService = new WeakMap(), _SkyVerticalTabComponent_tabIdSvc = new WeakMap(), _SkyVerticalTabComponent_instances = new WeakSet(), _SkyVerticalTabComponent_updateBreakpointAndResponsiveClass = function _SkyVerticalTabComponent_updateBreakpointAndResponsiveClass() {
162
- if (this.tabContent) {
163
- const width = __classPrivateFieldGet(this, _SkyVerticalTabComponent_adapterService, "f").getWidth(this.tabContent);
164
- __classPrivateFieldGet(this, _SkyVerticalTabComponent_verticalTabMediaQueryService, "f").setBreakpointForWidth(width);
165
- const newBreakpoint = __classPrivateFieldGet(this, _SkyVerticalTabComponent_verticalTabMediaQueryService, "f").current;
166
- if (newBreakpoint) {
167
- __classPrivateFieldGet(this, _SkyVerticalTabComponent_adapterService, "f").setResponsiveClass(this.tabContent, newBreakpoint);
168
- }
169
- __classPrivateFieldGet(this, _SkyVerticalTabComponent_changeRef, "f").markForCheck();
170
- }
171
- };
172
- SkyVerticalTabComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: SkyVerticalTabComponent, deps: [{ token: i1.SkyVerticalTabsetAdapterService }, { token: i0.ChangeDetectorRef }, { token: i2.SkyVerticalTabsetService }, { token: i3.SkyVerticalTabMediaQueryService }, { token: i4.SkyTabIdService, optional: true }], target: i0.ɵɵFactoryTarget.Component });
173
- SkyVerticalTabComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.9", type: SkyVerticalTabComponent, selector: "sky-vertical-tab", inputs: { active: "active", ariaControls: "ariaControls", ariaRole: "ariaRole", disabled: "disabled", errorIndicator: "errorIndicator", tabHeaderCount: "tabHeaderCount", tabHeading: "tabHeading", showTabRightArrow: "showTabRightArrow", tabId: "tabId" }, host: { listeners: { "window:resize": "onWindowResize()" } }, providers: [
174
- SkyVerticalTabMediaQueryService,
175
- {
176
- provide: SkyMediaQueryService,
177
- useExisting: SkyVerticalTabMediaQueryService,
178
- },
179
- ], viewQueries: [{ propertyName: "tabContent", first: true, predicate: ["tabContentWrapper"], descendants: true }], ngImport: i0, template: "<a\n class=\"sky-vertical-tab\"\n [attr.aria-controls]=\"isMobile ? null : ariaControls || tabContentPane.id\"\n [attr.aria-selected]=\"active\"\n [attr.id]=\"tabId\"\n [attr.role]=\"isMobile ? undefined : 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)=\"onTabButtonKeyUp($event)\"\n>\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 >\n ({{ tabHeaderCount }})\n </span>\n </div>\n <sky-status-indicator\n *ngIf=\"errorIndicator\"\n class=\"sky-vertical-tab-heading-error\"\n descriptionType=\"error\"\n indicatorType=\"danger\"\n ></sky-status-indicator>\n <sky-icon\n *ngIf=\"isMobile && showTabRightArrow\"\n class=\"sky-vertical-tab-right-arrow\"\n icon=\"chevron-right\"\n >\n </sky-icon>\n </div>\n</a>\n\n<div #tabContentWrapper>\n <div\n class=\"sky-vertical-tab-content-pane\"\n role=\"tabpanel\"\n tabindex=\"0\"\n skyId\n [attr.aria-labelledby]=\"tabId\"\n [ngClass]=\"{ 'sky-vertical-tab-hidden': !active }\"\n #tabContentPane\n >\n <ng-content></ng-content>\n\n <div></div>\n </div>\n</div>\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"], dependencies: [{ kind: "directive", type: i5.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i6.λ4, selector: "sky-icon", inputs: ["icon", "iconType", "size", "fixedWidth", "variant"] }, { kind: "directive", type: i7.λ2, selector: "[skyId]", exportAs: ["skyId"] }, { kind: "component", type: i6.λ10, selector: "sky-status-indicator", inputs: ["indicatorType", "descriptionType", "customDescription"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
180
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: SkyVerticalTabComponent, decorators: [{
181
- type: Component,
182
- args: [{ selector: 'sky-vertical-tab', providers: [
183
- SkyVerticalTabMediaQueryService,
184
- {
185
- provide: SkyMediaQueryService,
186
- useExisting: SkyVerticalTabMediaQueryService,
187
- },
188
- ], changeDetection: ChangeDetectionStrategy.OnPush, template: "<a\n class=\"sky-vertical-tab\"\n [attr.aria-controls]=\"isMobile ? null : ariaControls || tabContentPane.id\"\n [attr.aria-selected]=\"active\"\n [attr.id]=\"tabId\"\n [attr.role]=\"isMobile ? undefined : 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)=\"onTabButtonKeyUp($event)\"\n>\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 >\n ({{ tabHeaderCount }})\n </span>\n </div>\n <sky-status-indicator\n *ngIf=\"errorIndicator\"\n class=\"sky-vertical-tab-heading-error\"\n descriptionType=\"error\"\n indicatorType=\"danger\"\n ></sky-status-indicator>\n <sky-icon\n *ngIf=\"isMobile && showTabRightArrow\"\n class=\"sky-vertical-tab-right-arrow\"\n icon=\"chevron-right\"\n >\n </sky-icon>\n </div>\n</a>\n\n<div #tabContentWrapper>\n <div\n class=\"sky-vertical-tab-content-pane\"\n role=\"tabpanel\"\n tabindex=\"0\"\n skyId\n [attr.aria-labelledby]=\"tabId\"\n [ngClass]=\"{ 'sky-vertical-tab-hidden': !active }\"\n #tabContentPane\n >\n <ng-content></ng-content>\n\n <div></div>\n </div>\n</div>\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"] }]
189
- }], ctorParameters: function () { return [{ type: i1.SkyVerticalTabsetAdapterService }, { type: i0.ChangeDetectorRef }, { type: i2.SkyVerticalTabsetService }, { type: i3.SkyVerticalTabMediaQueryService }, { type: i4.SkyTabIdService, decorators: [{
190
- type: Optional
191
- }] }]; }, propDecorators: { active: [{
192
- type: Input
193
- }], ariaControls: [{
194
- type: Input
195
- }], ariaRole: [{
196
- type: Input
197
- }], disabled: [{
198
- type: Input
199
- }], errorIndicator: [{
200
- type: Input
201
- }], tabHeaderCount: [{
202
- type: Input
203
- }], tabHeading: [{
204
- type: Input
205
- }], showTabRightArrow: [{
206
- type: Input
207
- }], tabId: [{
208
- type: Input
209
- }], tabContent: [{
210
- type: ViewChild,
211
- args: ['tabContentWrapper']
212
- }], onWindowResize: [{
213
- type: HostListener,
214
- args: ['window:resize']
215
- }] } });
216
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmVydGljYWwtdGFiLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tcG9uZW50cy90YWJzL3NyYy9saWIvbW9kdWxlcy92ZXJ0aWNhbC10YWJzZXQvdmVydGljYWwtdGFiLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tcG9uZW50cy90YWJzL3NyYy9saWIvbW9kdWxlcy92ZXJ0aWNhbC10YWJzZXQvdmVydGljYWwtdGFiLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBQUEsT0FBTyxFQUNMLHVCQUF1QixFQUV2QixTQUFTLEVBRVQsWUFBWSxFQUNaLEtBQUssRUFHTCxRQUFRLEVBQ1IsU0FBUyxHQUNWLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUVuRCxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQy9CLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUkzQyxPQUFPLEVBQUUsK0JBQStCLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQzs7Ozs7Ozs7O0FBSXJGLElBQUksTUFBTSxHQUFHLENBQUMsQ0FBQztBQWVmLE1BQU0sT0FBTyx1QkFBdUI7SUFpQmxDOzs7Ozs7Ozs7T0FTRztJQUNILElBQ1csUUFBUTtRQUNqQixPQUFPLHVCQUFBLElBQUksMENBQVcsQ0FBQztJQUN6QixDQUFDO0lBQ0QsSUFBVyxRQUFRLENBQUMsS0FBeUI7UUFDM0MsdUJBQUEsSUFBSSxzQ0FBYyxLQUFLLElBQUksS0FBSyxNQUFBLENBQUM7SUFDbkMsQ0FBQztJQW1DRDs7O09BR0c7SUFDSCxJQUNXLEtBQUssQ0FBQyxLQUF5QjtRQUN4Qyx1QkFBQSxJQUFJLDJDQUFtQixLQUFLLElBQUksdUJBQUEsSUFBSSw2Q0FBYyxNQUFBLENB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LE1BQU07c0JBRFosS0FBSztnQkFXQyxZQUFZO3NCQURsQixLQUFLO2dCQWNLLFFBQVE7c0JBRGxCLEtBQUs7Z0JBWUMsUUFBUTtzQkFEZCxLQUFLO2dCQVFDLGNBQWM7c0JBRHBCLEtBQUs7Z0JBT0MsY0FBYztzQkFEcEIsS0FBSztnQkFRQyxVQUFVO3NCQURoQixLQUFLO2dCQVFDLGlCQUFpQjtzQkFEdkIsS0FBSztnQkFRSyxLQUFLO3NCQURmLEtBQUs7Z0JBaUNDLFVBQVU7c0JBRGhCLFNBQVM7dUJBQUMsbUJBQW1CO2dCQXdHdkIsY0FBYztzQkFEcEIsWUFBWTt1QkFBQyxlQUFlIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gIENoYW5nZURldGVjdG9yUmVmLFxuICBDb21wb25lbnQsXG4gIEVsZW1lbnRSZWYsXG4gIEhvc3RMaXN0ZW5lcixcbiAgSW5wdXQsXG4gIE9uRGVzdHJveSxcbiAgT25Jbml0LFxuICBPcHRpb25hbCxcbiAgVmlld0NoaWxkLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFNreU1lZGlhUXVlcnlTZXJ2aWNlIH0gZnJvbSAnQHNreXV4L2NvcmUnO1xuXG5pbXBvcnQgeyBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyB0YWtlVW50aWwgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5cbmltcG9ydCB7IFNreVRhYklkU2VydmljZSB9IGZyb20gJy4uL3NoYXJlZC90YWItaWQuc2VydmljZSc7XG5cbmltcG9ydCB7IFNreVZlcnRpY2FsVGFiTWVkaWFRdWVyeVNlcnZpY2UgfSBmcm9tICcuL3ZlcnRpY2FsLXRhYi1tZWRpYS1xdWVyeS5zZXJ2aWNlJztcbmltcG9ydCB7IFNreVZlcnRpY2FsVGFic2V0QWRhcHRlclNlcnZpY2UgfSBmcm9tICcuL3ZlcnRpY2FsLXRhYnNldC1hZGFwdGVyLnNlcnZpY2UnO1xuaW1wb3J0IHsgU2t5VmVydGljYWxUYWJzZXRTZXJ2aWNlIH0gZnJvbSAnLi92ZXJ0aWNhbC10YWJzZXQuc2VydmljZSc7XG5cbmxldCBuZXh0SWQgPSAwO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdza3ktdmVydGljYWwtdGFiJyxcbiAgdGVtcGxhdGVVcmw6ICcuL3ZlcnRpY2FsLXRhYi5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL3ZlcnRpY2FsLXRhYi5jb21wb25lbnQuc2NzcyddLFxuICBwcm92aWRlcnM6IFtcbiAgICBTa3lWZXJ0aWNhbFRhYk1lZGlhUXVlcnlTZXJ2aWNlLFxuICAgIHtcbiAgICAgIHByb3ZpZGU6IFNreU1lZGlhUXVlcnlTZXJ2aWNlLFxuICAgICAgdXNlRXhpc3Rpbmc6IFNreVZlcnRpY2FsVGFiTWVkaWFRdWVyeVNlcnZpY2UsXG4gICAgfSxcbiAgXSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG59KVxuZXhwb3J0IGNsYXNzIFNreVZlcnRpY2FsVGFiQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3kge1xuICAvKipcbiAgICogV2hldGhlciB0aGUgdGFiIGlzIGFjdGl2ZSB3aGVuIHRoZSB0YWJzZXQgbG9hZHMuXG4gICAqL1xuICBASW5wdXQoKVxuICBwdWJsaWMgYWN0aXZlOiBib29sZWFuIHwgdW5kZWZpbmVkID0gZmFsc2U7XG5cbiAgLyoqXG4gICAqIFRoZSBIVE1MIGVsZW1lbnQgSUQgb2YgdGhlIGVsZW1lbnQgdGhhdCBjb250YWluc1xuICAgKiB0aGUgY29udGVudCB0aGF0IHRoZSB2ZXJ0aWNhbCB0YWIgZGlzcGxheXMsIHdoaWNoIGNvcnJlc3BvbmRzIHRvIHRoZSBgdGFiSWRgLiBUaGlzIHByb3BlcnR5XG4gICAqIFtzdXBwb3J0cyBhY2Nlc3NpYmlsaXR5IHJ1bGVzIGZvciBkaXNjbG9zdXJlc10oaHR0cHM6Ly93d3cudzMub3JnL1RSL3dhaS1hcmlhLXByYWN0aWNlcy0xLjEvI2Rpc2Nsb3N1cmUpLlxuICAgKiBGb3IgbW9yZSBpbmZvcm1hdGlvbiBhYm91dCB0aGUgYGFyaWEtY29udHJvbHNgIGF0dHJpYnV0ZSwgc2VlIHRoZSBbV0FJLUFSSUEgZGVmaW5pdGlvbl0oaHR0cHM6Ly93d3cudzMub3JnL1RSL3dhaS1hcmlhLyNhcmlhLWNvbnRyb2xzKS5cbiAgICogQGRlcHJlY2F0ZWQgTm93IHRoYXQgdGhlIHZlcnRpY2FsIHRhYnMgcHJvdmlkZSBhcmlhIGxhYmVscyBhdXRvbWF0aWNhbGx5LCB0aGlzIGlucHV0IGlzIG5vIGxvbmdlciBuZWNlc3NhcnkuXG4gICAqL1xuICBASW5wdXQoKVxuICBwdWJsaWMgYXJpYUNvbnRyb2xzOiBzdHJpbmcgfCB1bmRlZmluZWQ7XG5cbiAgLyoqXG4gICAqIFRoZSBBUklBIHJvbGUgZm9yIHRoZSB2ZXJ0aWNhbCB0YWJcbiAgICogW3RvIHN1cHBvcnQgYWNjZXNzaWJpbGl0eV0oaHR0cHM6Ly9kZXZlbG9wZXIuYmxhY2tiYXVkLmNvbS9za3l1eC9sZWFybi9hY2Nlc3NpYmlsaXR5KVxuICAgKiBieSBpbmRpY2F0aW5nIGhvdyB0aGUgdGFiIGZ1bmN0aW9ucyBhbmQgd2hhdCBpdCBjb250cm9scy4gRm9yIGluZm9ybWF0aW9uIGFib3V0IGhvd1xuICAgKiBhbiBBUklBIHJvbGUgaW5kaWNhdGVzIHdoYXQgYW4gaXRlbSByZXByZXNlbnRzIG9uIGEgd2ViIHBhZ2UsIHNlZSB0aGVcbiAgICogW1dBSS1BUklBIHJvbGVzIG1vZGVsXShodHRwczovL3d3dy53My5vcmcvV0FJL1BGL2FyaWEvI3JvbGVzKS5cbiAgICogQGRlZmF1bHQgXCJ0YWJcIlxuICAgKiBAZGVwcmVjYXRlZCBBbnkgb3RoZXIgdmFsdWUgdGhhbiBgdGFiYCBjb3VsZCBsZWFkIHRvIGEgcG9vciB1c2VyIGV4cGVyaWVuY2UgZm9yIHVzZXJzIHdpdGggYXNzaXN0aXZlIHRlY2hub2xvZ3kuXG4gICAqIEluIHRoZSBuZXh0IG1ham9yIHZlcnNpb24sIHRoaXMgcHJvcGVydHkgd2lsbCBiZSBhdXRvbWF0aWNhbGx5IHNldCB0byBgdGFiYC5cbiAgICovXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBnZXQgYXJpYVJvbGUoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy4jX2FyaWFSb2xlO1xuICB9XG4gIHB1YmxpYyBzZXQgYXJpYVJvbGUodmFsdWU6IHN0cmluZyB8IHVuZGVmaW5lZCkge1xuICAgIHRoaXMuI19hcmlhUm9sZSA9IHZhbHVlID8/ICd0YWInO1xuICB9XG5cbiAgLyoqXG4gICAqIFdoZXRoZXIgdG8gZGlzYWJsZSB0aGUgdGFiLlxuICAgKi9cbiAgQElucHV0KClcbiAgcHVibGljIGRpc2FibGVkOiBib29sZWFuIHwgdW5kZWZpbmVkID0gZmFsc2U7XG5cbiAgLyoqXG4gICAqIFdoZXRoZXIgdG8gaW5kaWNhdGUgdGhhdCB0aGUgdGFiIGhhcyBhbiBlcnJvci5cbiAgICogQGludGVybmFsIFRoaXMgaXMgdXNlZCBmb3Igc2VjdGlvbmVkIGZvcm1zIGFuZCBpcyBub3QgY3VycmVudGx5IGEgc3VwcG9ydGVkIGRlc2lnbiBmb3IgcHVyZSB2ZXJ0aWNhbCB0YWJzLlxuICAgKi9cbiAgQElucHV0KClcbiAgcHVibGljIGVycm9ySW5kaWNhdG9yOiBib29sZWFuIHwgdW5kZWZpbmVkID0gZmFsc2U7XG5cbiAgLyoqXG4gICAqIERpc3BsYXlzIGFuIGl0ZW0gY291bnQgYWxvbmdzaWRlIHRoZSB0YWIgaGVhZGVyIHRvIGluZGljYXRlIGhvdyBtYW55IGxpc3QgaXRlbXMgdGhlIHRhYiBjb250YWlucy5cbiAgICovXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyB0YWJIZWFkZXJDb3VudDogbnVtYmVyIHwgdW5kZWZpbmVkO1xuXG4gIC8qKlxuICAgKiBUaGUgdGFiIGhlYWRlci5cbiAgICogQHJlcXVpcmVkXG4gICAqL1xuICBASW5wdXQoKVxuICBwdWJsaWMgdGFiSGVhZGluZzogc3RyaW5nIHwgdW5kZWZpbmVkO1xuXG4gIC8qKlxuICAgKiBXaGV0aGVyIHRvIGRpc3BsYXkgYSBjaGV2cm9uLXJpZ2h0IGljb24gb24gdGhlIHJpZ2h0IGhhbmQgc2lkZSBvZiB0aGUgdGFiLlxuICAgKiBAaW50ZXJuYWxcbiAgICovXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBzaG93VGFiUmlnaHRBcnJvdzogYm9vbGVhbiB8IHVuZGVmaW5lZDtcblxuICAvKipcbiAgICogVGhlIElEIGZvciB0aGUgdGFiLlxuICAgKiBAZGVwcmVjYXRlZCBOb3cgdGhhdCB0aGUgdmVydGljYWwgdGFicyBwcm92aWRlIGFyaWEgbGFiZWxzIGF1dG9tYXRpY2FsbHksIHRoaXMgaW5wdXQgaXMgbm8gbG9uZ2VyIG5lY2Vzc2FyeS5cbiAgICovXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBzZXQgdGFiSWQodmFsdWU6IHN0cmluZyB8IHVuZGVmaW5lZCkge1xuICAgIHRoaXMuI3RhYklkT3JEZWZhdWx0ID0gdmFsdWUgfHwgdGhpcy4jZGVmYXVsdFRhYklkO1xuICAgIHRoaXMuI3RhYklkU3ZjPy5yZWdpc3Rlcih0aGlzLiNkZWZhdWx0VGFiSWQsIHRoaXMuI3RhYklkT3JEZWZhdWx0KTtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgdGFiSWQoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy4jdGFiSWRPckRlZmF1bHQ7XG4gIH1cblxuICBwdWJsaWMgc2V0IGNvbnRlbnRSZW5kZXJlZCh2YWx1ZTogYm9vbGVhbikge1xuICAgIHRoaXMuI19jb250ZW50UmVuZGVyZWQgPSB2YWx1ZTtcblxuICAgIC8qIGlzdGFuYnVsIGlnbm9yZSBlbHNlICovXG4gICAgaWYgKHRoaXMuI19jb250ZW50UmVuZGVyZWQpIHtcbiAgICAgIC8vIE5PVEU6IFdyYXBwZWQgaW4gYSBzZXRUaW1lb3V0IGhlcmUgdG8gZW5zdXJlIHRoYXQgZXZlcnl0aGluZyBoYXMgY29tcGxldGVkIHJlbmRlcmluZy5cbiAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICBpZiAodGhpcy50YWJDb250ZW50KSB7XG4gICAgICAgICAgdGhpcy4jdXBkYXRlQnJlYWtwb2ludEFuZFJlc3BvbnNpdmVDbGFzcygpO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgZ2V0IGNvbnRlbnRSZW5kZXJlZCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy4jX2NvbnRlbnRSZW5kZXJlZDtcbiAgfVxuXG4gIHB1YmxpYyBpbmRleDogbnVtYmVyIHwgdW5kZWZpbmVkO1xuXG4gIHB1YmxpYyBpc01vYmlsZSA9IGZhbHNlO1xuXG4gIEBWaWV3Q2hpbGQoJ3RhYkNvbnRlbnRXcmFwcGVyJylcbiAgcHVibGljIHRhYkNvbnRlbnQ6IEVsZW1lbnRSZWYgfCB1bmRlZmluZWQ7XG5cbiAgI19hcmlhUm9sZSA9ICd0YWInO1xuXG4gICNfY29udGVudFJlbmRlcmVkID0gZmFsc2U7XG5cbiAgI3RhYklkT3JEZWZhdWx0OiBzdHJpbmc7XG5cbiAgI2RlZmF1bHRUYWJJZDogc3RyaW5nO1xuXG4gICNtb2JpbGVTdWJzY3JpcHRpb24gPSBuZXcgU3ViamVjdCgpO1xuXG4gICNuZ1Vuc3Vic2NyaWJlID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcblxuICAjYWRhcHRlclNlcnZpY2U6IFNreVZlcnRpY2FsVGFic2V0QWRhcHRlclNlcnZpY2U7XG4gICNjaGFuZ2VSZWY6IENoYW5nZURldGVjdG9yUmVmO1xuICAjdGFic2V0U2VydmljZTogU2t5VmVydGljYWxUYWJzZXRTZXJ2aWNlO1xuICAjdmVydGljYWxUYWJNZWRpYVF1ZXJ5U2VydmljZTogU2t5VmVydGljYWxUYWJNZWRpYVF1ZXJ5U2VydmljZTtcbiAgI3RhYklkU3ZjOiBTa3lUYWJJZFNlcnZpY2UgfCB1bmRlZmluZWQ7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgYWRhcHRlclNlcnZpY2U6IFNreVZlcnRpY2FsVGFic2V0QWRhcHRlclNlcnZpY2UsXG4gICAgY2hhbmdlUmVmOiBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICB0YWJzZXRTZXJ2aWNlOiBTa3lWZXJ0aWNhbFRhYnNldFNlcnZpY2UsXG4gICAgdmVydGljYWxUYWJNZWRpYVF1ZXJ5U2VydmljZTogU2t5VmVydGljYWxUYWJNZWRpYVF1ZXJ5U2VydmljZSxcbiAgICBAT3B0aW9uYWwoKSB0YWJJZFN2Yz86IFNreVRhYklkU2VydmljZVxuICApIHtcbiAgICB0aGlzLiNhZGFwdGVyU2VydmljZSA9IGFkYXB0ZXJTZXJ2aWNlO1xuICAgIHRoaXMuI2NoYW5nZVJlZiA9IGNoYW5nZVJlZjtcbiAgICB0aGlzLiN0YWJzZXRTZXJ2aWNlID0gdGFic2V0U2VydmljZTtcbiAgICB0aGlzLiN2ZXJ0aWNhbFRhYk1lZGlhUXVlcnlTZXJ2aWNlID0gdmVydGljYWxUYWJNZWRpYVF1ZXJ5U2VydmljZTtcbiAgICB0aGlzLiN0YWJJZFN2YyA9IHRhYklkU3ZjO1xuXG4gICAgdGhpcy4jdGFiSWRPckRlZmF1bHQgPSB0aGlzLiNkZWZhdWx0VGFiSWQgPSBgc2t5LXZlcnRpY2FsLXRhYi0keysrbmV4dElkfWA7XG4gICAgdGhpcy50YWJJZCA9IHRoaXMuI2RlZmF1bHRUYWJJZDtcbiAgfVxuXG4gIHB1YmxpYyBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLmlzTW9iaWxlID0gdGhpcy4jdGFic2V0U2VydmljZS5pc01vYmlsZSgpO1xuICAgIHRoaXMuI2NoYW5nZVJlZi5tYXJrRm9yQ2hlY2soKTtcblxuICAgIHRoaXMuI3RhYnNldFNlcnZpY2Uuc3dpdGNoaW5nTW9iaWxlLnN1YnNjcmliZSgobW9iaWxlOiBib29sZWFuKSA9PiB7XG4gICAgICB0aGlzLmlzTW9iaWxlID0gbW9iaWxlO1xuICAgICAgdGhpcy4jY2hhbmdlUmVmLm1hcmtGb3JDaGVjaygpO1xuICAgIH0pO1xuXG4gICAgLy8gVXBkYXRlIHRoZSBicmVha3BvaW50IGFuZCByZXNwb25zaXZlIGNsYXNzIGhlcmUganVzdCBhcyBhIHNhbml0eSBjaGVjayBzaW5jZSB3ZSBjYW4gbm90XG4gICAgLy8gd2F0Y2ggZm9yIGVsZW1lbnQgcmVzaXppbmcuXG4gICAgdGhpcy4jdGFic2V0U2VydmljZS5pbmRleENoYW5nZWRcbiAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLiNuZ1Vuc3Vic2NyaWJlKSlcbiAgICAgIC5zdWJzY3JpYmUoKGluZGV4KSA9PiB7XG4gICAgICAgIGlmICh0aGlzLmluZGV4ID09PSBpbmRleCAmJiB0aGlzLmNvbnRlbnRSZW5kZXJlZCkge1xuICAgICAgICAgIGlmICh0aGlzLnRhYkNvbnRlbnQpIHtcbiAgICAgICAgICAgIHRoaXMuI3VwZGF0ZUJyZWFrcG9pbnRBbmRSZXNwb25zaXZlQ2xhc3MoKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0pO1xuXG4gICAgdGhpcy4jdGFic2V0U2VydmljZS5hZGRUYWIodGhpcyk7XG4gIH1cblxuICBwdWJsaWMgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgdGhpcy4jdGFiSWRTdmM/LnVucmVnaXN0ZXIodGhpcy4jZGVmYXVsdFRhYklkKTtcbiAgICB0aGlzLiNtb2JpbGVTdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKTtcbiAgICB0aGlzLiNuZ1Vuc3Vic2NyaWJlLm5leHQoKTtcbiAgICB0aGlzLiNuZ1Vuc3Vic2NyaWJlLmNvbXBsZXRlKCk7XG4gICAgdGhpcy4jdGFic2V0U2VydmljZS5kZXN0cm95VGFiKHRoaXMpO1xuICB9XG5cbiAgcHVibGljIHRhYkluZGV4KCk6IG51bWJlciB7XG4gICAgaWYgKCF0aGlzLmRpc2FibGVkKSB7XG4gICAgICByZXR1cm4gMDtcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIC0xO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBhY3RpdmF0ZVRhYigpOiB2b2lkIHtcbiAgICBpZiAoIXRoaXMuZGlzYWJsZWQpIHtcbiAgICAgIHRoaXMuYWN0aXZlID0gdHJ1ZTtcbiAgICAgIHRoaXMuI3RhYnNldFNlcnZpY2UuYWN0aXZhdGVUYWIodGhpcyk7XG5cbiAgICAgIHRoaXMuI2NoYW5nZVJlZi5tYXJrRm9yQ2hlY2soKTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgb25UYWJCdXR0b25LZXlVcChldmVudDogS2V5Ym9hcmRFdmVudCk6IHZvaWQge1xuICAgIC8qaXN0YW5idWwgaWdub3JlIGVsc2UgKi9cbiAgICBpZiAoZXZlbnQua2V5KSB7XG4gICAgICBzd2l0Y2ggKGV2ZW50LmtleS50b1VwcGVyQ2FzZSgpKSB7XG4gICAgICAgIGNhc2UgJyAnOlxuICAgICAgICBjYXNlICdFTlRFUic6XG4gICAgICAgICAgdGhpcy5hY3RpdmF0ZVRhYigpO1xuICAgICAgICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICAvKiBpc3RhbmJ1bCBpZ25vcmUgbmV4dCAqL1xuICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgIGJyZWFrO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIEBIb3N0TGlzdGVuZXIoJ3dpbmRvdzpyZXNpemUnKVxuICBwdWJsaWMgb25XaW5kb3dSZXNpemUoKTogdm9pZCB7XG4gICAgaWYgKHRoaXMudGFiQ29udGVudCkge1xuICAgICAgdGhpcy4jdXBkYXRlQnJlYWtwb2ludEFuZFJlc3BvbnNpdmVDbGFzcygpO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyB0YWJEZWFjdGl2YXRlZCgpOiB2b2lkIHtcbiAgICB0aGlzLiNjaGFuZ2VSZWYubWFya0ZvckNoZWNrKCk7XG4gIH1cblxuICAjdXBkYXRlQnJlYWtwb2ludEFuZFJlc3BvbnNpdmVDbGFzcygpOiB2b2lkIHtcbiAgICBpZiAodGhpcy50YWJDb250ZW50KSB7XG4gICAgICBjb25zdCB3aWR0aCA9IHRoaXMuI2FkYXB0ZXJTZXJ2aWNlLmdldFdpZHRoKHRoaXMudGFiQ29udGVudCk7XG4gICAgICB0aGlzLiN2ZXJ0aWNhbFRhYk1lZGlhUXVlcnlTZXJ2aWNlLnNldEJyZWFrcG9pbnRGb3JXaWR0aCh3aWR0aCk7XG5cbiAgICAgIGNvbnN0IG5ld0JyZWFrcG9pbnQgPSB0aGlzLiN2ZXJ0aWNhbFRhYk1lZGlhUXVlcnlTZXJ2aWNlLmN1cnJlbnQ7XG5cbiAgICAgIGlmIChuZXdCcmVha3BvaW50KSB7XG4gICAgICAgIHRoaXMuI2FkYXB0ZXJTZXJ2aWNlLnNldFJlc3BvbnNpdmVDbGFzcyh0aGlzLnRhYkNvbnRlbnQsIG5ld0JyZWFrcG9pbnQpO1xuICAgICAgfVxuXG4gICAgICB0aGlzLiNjaGFuZ2VSZWYubWFya0ZvckNoZWNrKCk7XG4gICAgfVxuICB9XG59XG4iLCI8YVxuICBjbGFzcz1cInNreS12ZXJ0aWNhbC10YWJcIlxuICBbYXR0ci5hcmlhLWNvbnRyb2xzXT1cImlzTW9iaWxlID8gbnVsbCA6IGFyaWFDb250cm9scyB8fCB0YWJDb250ZW50UGFuZS5pZFwiXG4gIFthdHRyLmFyaWEtc2VsZWN0ZWRdPVwiYWN0aXZlXCJcbiAgW2F0dHIuaWRdPVwidGFiSWRcIlxuICBbYXR0ci5yb2xlXT1cImlzTW9iaWxlID8gdW5kZWZpbmVkIDogYXJpYVJvbGVcIlxuICBbbmdDbGFzc109XCJ7XG4gICAgJ3NreS12ZXJ0aWNhbC10YWItYWN0aXZlJzogYWN0aXZlLFxuICAgICdza3ktdmVydGljYWwtdGFiLWRpc2FibGVkJzogZGlzYWJsZWQsXG4gICAgJ3NreS1mb250LWRlZW1waGFzaXplZCc6IGRpc2FibGVkLFxuICAgICdza3ktZGVlbXBoYXNpemVkJzogZGlzYWJsZWRcbiAgfVwiXG4gIFt0YWJJbmRleF09XCJ0YWJJbmRleCgpXCJcbiAgKGNsaWNrKT1cImFjdGl2YXRlVGFiKClcIlxuICAoa2V5dXApPVwib25UYWJCdXR0b25LZXlVcCgkZXZlbnQpXCJcbj5cbiAgPGRpdiBjbGFzcz1cInNreS12ZXJ0aWNhbC10YWItZGlzcGxheVwiPlxuICAgIDxkaXYgY2xhc3M9XCJza3ktdmVydGljYWwtdGFiLWhlYWRpbmdcIj5cbiAgICAgIDxzcGFuIGNsYXNzPVwic2t5LXZlcnRpY2FsLXRhYi1oZWFkaW5nLXZhbHVlXCI+e3sgdGFiSGVhZGluZyB9fTwvc3Bhbj5cbiAgICAgIDxzcGFuXG4gICAgICAgIGNsYXNzPVwic2t5LXZlcnRpY2FsLXRhYi1jb3VudFwiXG4gICAgICAgICpuZ0lmPVwidGFiSGVhZGVyQ291bnQgfHwgdGFiSGVhZGVyQ291bnQgPT09IDBcIlxuICAgICAgPlxuICAgICAgICAoe3sgdGFiSGVhZGVyQ291bnQgfX0pXG4gICAgICA8L3NwYW4+XG4gICAgPC9kaXY+XG4gICAgPHNreS1zdGF0dXMtaW5kaWNhdG9yXG4gICAgICAqbmdJZj1cImVycm9ySW5kaWNhdG9yXCJcbiAgICAgIGNsYXNzPVwic2t5LXZlcnRpY2FsLXRhYi1oZWFkaW5nLWVycm9yXCJcbiAgICAgIGRlc2NyaXB0aW9uVHlwZT1cImVycm9yXCJcbiAgICAgIGluZGljYXRvclR5cGU9XCJkYW5nZXJcIlxuICAgID48L3NreS1zdGF0dXMtaW5kaWNhdG9yPlxuICAgIDxza3ktaWNvblxuICAgICAgKm5nSWY9XCJpc01vYmlsZSAmJiBzaG93VGFiUmlnaHRBcnJvd1wiXG4gICAgICBjbGFzcz1cInNreS12ZXJ0aWNhbC10YWItcmlnaHQtYXJyb3dcIlxuICAgICAgaWNvbj1cImNoZXZyb24tcmlnaHRcIlxuICAgID5cbiAgICA8L3NreS1pY29uPlxuICA8L2Rpdj5cbjwvYT5cblxuPGRpdiAjdGFiQ29udGVudFdyYXBwZXI+XG4gIDxkaXZcbiAgICBjbGFzcz1cInNreS12ZXJ0aWNhbC10YWItY29udGVudC1wYW5lXCJcbiAgICByb2xlPVwidGFicGFuZWxcIlxuICAgIHRhYmluZGV4PVwiMFwiXG4gICAgc2t5SWRcbiAgICBbYXR0ci5hcmlhLWxhYmVsbGVkYnldPVwidGFiSWRcIlxuICAgIFtuZ0NsYXNzXT1cInsgJ3NreS12ZXJ0aWNhbC10YWItaGlkZGVuJzogIWFjdGl2ZSB9XCJcbiAgICAjdGFiQ29udGVudFBhbmVcbiAgPlxuICAgIDxuZy1jb250ZW50PjwvbmctY29udGVudD5cblxuICAgIDxkaXY+PC9kaXY+XG4gIDwvZGl2PlxuPC9kaXY+XG4iXX0=