@skyux/tabs 11.31.0 → 12.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 (45) hide show
  1. package/documentation.json +778 -770
  2. package/fesm2022/skyux-tabs.mjs +83 -82
  3. package/fesm2022/skyux-tabs.mjs.map +1 -1
  4. package/package.json +16 -20
  5. package/esm2022/index.mjs +0 -20
  6. package/esm2022/lib/modules/sectioned-form/sectioned-form-section.component.mjs +0 -65
  7. package/esm2022/lib/modules/sectioned-form/sectioned-form.component.mjs +0 -187
  8. package/esm2022/lib/modules/sectioned-form/sectioned-form.module.mjs +0 -33
  9. package/esm2022/lib/modules/sectioned-form/sectioned-form.service.mjs +0 -35
  10. package/esm2022/lib/modules/sectioned-form/types/sectioned-form-message-type.mjs +0 -5
  11. package/esm2022/lib/modules/sectioned-form/types/sectioned-form-message.mjs +0 -2
  12. package/esm2022/lib/modules/shared/sky-tabs-resources.module.mjs +0 -44
  13. package/esm2022/lib/modules/shared/tab-id.service.mjs +0 -50
  14. package/esm2022/lib/modules/tabs/tab-button-adapter.service.mjs +0 -16
  15. package/esm2022/lib/modules/tabs/tab-button-view-model.mjs +0 -2
  16. package/esm2022/lib/modules/tabs/tab-button.component.mjs +0 -163
  17. package/esm2022/lib/modules/tabs/tab-index.mjs +0 -2
  18. package/esm2022/lib/modules/tabs/tab-layout-type.mjs +0 -2
  19. package/esm2022/lib/modules/tabs/tab.component.mjs +0 -199
  20. package/esm2022/lib/modules/tabs/tabs.module.mjs +0 -56
  21. package/esm2022/lib/modules/tabs/tabset-active-tab-change-args.mjs +0 -2
  22. package/esm2022/lib/modules/tabs/tabset-active-tab-unregistered-args.mjs +0 -2
  23. package/esm2022/lib/modules/tabs/tabset-adapter.service.mjs +0 -68
  24. package/esm2022/lib/modules/tabs/tabset-buttons-display-mode.mjs +0 -2
  25. package/esm2022/lib/modules/tabs/tabset-nav-button-disabled.pipe.mjs +0 -22
  26. package/esm2022/lib/modules/tabs/tabset-nav-button-type.mjs +0 -2
  27. package/esm2022/lib/modules/tabs/tabset-nav-button.component.mjs +0 -149
  28. package/esm2022/lib/modules/tabs/tabset-permalink.service.mjs +0 -132
  29. package/esm2022/lib/modules/tabs/tabset-style.mjs +0 -2
  30. package/esm2022/lib/modules/tabs/tabset-tab-indexes-change.mjs +0 -2
  31. package/esm2022/lib/modules/tabs/tabset.component.mjs +0 -479
  32. package/esm2022/lib/modules/tabs/tabset.service.mjs +0 -193
  33. package/esm2022/lib/modules/vertical-tabset/vertical-tab.component.mjs +0 -183
  34. package/esm2022/lib/modules/vertical-tabset/vertical-tabset-adapter.service.mjs +0 -67
  35. package/esm2022/lib/modules/vertical-tabset/vertical-tabset-group-message.mjs +0 -2
  36. package/esm2022/lib/modules/vertical-tabset/vertical-tabset-group.component.mjs +0 -152
  37. package/esm2022/lib/modules/vertical-tabset/vertical-tabset-group.service.mjs +0 -17
  38. package/esm2022/lib/modules/vertical-tabset/vertical-tabset.component.mjs +0 -173
  39. package/esm2022/lib/modules/vertical-tabset/vertical-tabset.module.mjs +0 -61
  40. package/esm2022/lib/modules/vertical-tabset/vertical-tabset.service.mjs +0 -200
  41. package/esm2022/skyux-tabs.mjs +0 -5
  42. package/esm2022/testing/legacy/tabs/tab-fixture-tab.mjs +0 -2
  43. package/esm2022/testing/legacy/tabs/tabset-fixture.mjs +0 -129
  44. package/esm2022/testing/public-api.mjs +0 -2
  45. package/esm2022/testing/skyux-tabs-testing.mjs +0 -5
@@ -1,193 +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
- #activeTabChange;
9
- #focusedTabBtnIndex;
10
- #activeTabUnregistered;
11
- #activeTabLayout;
12
- #tabs;
13
- #tabCounter;
14
- constructor() {
15
- this.currentActiveTabIndex = 0;
16
- this.currentFocusedTabBtnIndex = 0;
17
- this.#tabs = [];
18
- this.#tabCounter = 0;
19
- this.#activeTabChange = new BehaviorSubject({
20
- initial: true,
21
- tabIndex: 0,
22
- });
23
- this.#activeTabLayout = new Subject();
24
- this.#activeTabUnregistered = new Subject();
25
- this.#focusedTabBtnIndex = new Subject();
26
- this.activeTabChange = this.#activeTabChange.asObservable();
27
- this.activeTabLayout = this.#activeTabLayout.asObservable();
28
- this.activeTabUnregistered = this.#activeTabUnregistered.asObservable();
29
- this.focusedTabBtnIndex = this.#focusedTabBtnIndex.asObservable();
30
- }
31
- ngOnDestroy() {
32
- this.#activeTabChange.complete();
33
- this.#activeTabUnregistered.complete();
34
- this.#focusedTabBtnIndex.complete();
35
- this.#activeTabLayout.complete();
36
- }
37
- /**
38
- * Sets the active tab by its unique `tabIndex` property.
39
- */
40
- setActiveTabIndex(value, config = {
41
- emitChange: true,
42
- }) {
43
- if (value.tabIndex !== undefined &&
44
- !this.tabIndexesEqual(value.tabIndex, this.currentActiveTabIndex)) {
45
- this.currentActiveTabIndex = value.tabIndex;
46
- /* istanbul ignore else */
47
- if (config.emitChange) {
48
- this.#activeTabChange.next(value);
49
- }
50
- this.setFocusedTabBtnIndex(value.tabIndex);
51
- }
52
- }
53
- focusNextTabBtn(tabButtons) {
54
- const currentTabArrayIndex = this.#tabs.findIndex((tab) => this.tabIndexesEqual(tab.tabIndex, this.currentFocusedTabBtnIndex));
55
- for (let i = this.#getNextTabArrayIndex(currentTabArrayIndex); i !== currentTabArrayIndex; i = this.#getNextTabArrayIndex(i)) {
56
- const tabBtn = tabButtons[i];
57
- if (!tabBtn.disabled && tabBtn.tabIndex !== undefined) {
58
- this.setFocusedTabBtnIndex(tabBtn.tabIndex);
59
- return;
60
- }
61
- }
62
- }
63
- focusPrevTabBtn(tabButtons) {
64
- const currentTabArrayIndex = this.#tabs.findIndex((tab) => this.tabIndexesEqual(tab.tabIndex, this.currentFocusedTabBtnIndex));
65
- for (let i = this.#getPrevTabArrayIndex(currentTabArrayIndex); i !== currentTabArrayIndex; i = this.#getPrevTabArrayIndex(i)) {
66
- const tabBtn = tabButtons[i];
67
- if (!tabBtn.disabled && tabBtn.tabIndex !== undefined) {
68
- this.setFocusedTabBtnIndex(tabBtn.tabIndex);
69
- return;
70
- }
71
- }
72
- }
73
- focusFirstOrNearestTabBtn(tabButtons) {
74
- for (const tabBtn of tabButtons) {
75
- if (!tabBtn.disabled && tabBtn.tabIndex !== undefined) {
76
- this.setFocusedTabBtnIndex(tabBtn.tabIndex);
77
- return;
78
- }
79
- }
80
- }
81
- focusLastOrNearestTabBtn(tabButtons) {
82
- for (let i = tabButtons.length - 1; i >= 0; i--) {
83
- const tabBtn = tabButtons[i];
84
- if (!tabBtn.disabled && tabBtn.tabIndex !== undefined) {
85
- this.setFocusedTabBtnIndex(tabBtn.tabIndex);
86
- return;
87
- }
88
- }
89
- }
90
- setFocusedTabBtnIndex(tabIndex) {
91
- this.currentFocusedTabBtnIndex = tabIndex;
92
- this.#focusedTabBtnIndex.next(tabIndex);
93
- }
94
- /**
95
- * Registers a tab component.
96
- */
97
- registerTab(tabIndex) {
98
- if (tabIndex === undefined) {
99
- tabIndex = this.#tabCounter;
100
- this.#tabCounter++;
101
- }
102
- this.#tabs.push({ tabIndex });
103
- return tabIndex;
104
- }
105
- updateTabIndex(currentTabIndex, newTabIndex) {
106
- const found = this.#tabs.find((tab) => this.tabIndexesEqual(tab.tabIndex, currentTabIndex));
107
- if (found) {
108
- found.tabIndex = newTabIndex;
109
- }
110
- }
111
- updateActiveTabLayout(layout) {
112
- this.#activeTabLayout.next(layout);
113
- }
114
- /**
115
- * Unregisters a tab component.
116
- */
117
- unregisterTab(tabIndex) {
118
- const index = this.#tabs.findIndex((tab) => this.tabIndexesEqual(tab.tabIndex, tabIndex));
119
- // Notify the tabset component when an active tab is unregistered.
120
- if (this.#isTabIndexActive(this.#tabs[index]?.tabIndex)) {
121
- this.#activeTabUnregistered.next({
122
- arrayIndex: index,
123
- });
124
- }
125
- this.#tabs.splice(index, 1);
126
- }
127
- /**
128
- * Unregisters all tab components at once.
129
- */
130
- unregisterAll() {
131
- this.#tabs = [];
132
- }
133
- /**
134
- * Compares two tab indexes and returns `true` if they are equal.
135
- */
136
- tabIndexesEqual(tabIndex1, tabIndex2) {
137
- return (tabIndex1 === tabIndex2 ||
138
- (tabIndex1 !== undefined &&
139
- tabIndex2 !== undefined &&
140
- +tabIndex1 === +tabIndex2));
141
- }
142
- /**
143
- * Verifies if a provided tab index is registered.
144
- */
145
- isValidTabIndex(tabIndex) {
146
- return this.#tabs.some((tab) => this.tabIndexesEqual(tab.tabIndex, tabIndex));
147
- }
148
- /**
149
- * Activates the first registered tab.
150
- */
151
- activateFirstTab() {
152
- const firstTabIndex = this.#tabs[0] && this.#tabs[0].tabIndex;
153
- if (firstTabIndex !== undefined) {
154
- this.setActiveTabIndex({
155
- tabIndex: firstTabIndex,
156
- });
157
- return firstTabIndex;
158
- }
159
- return undefined;
160
- }
161
- /**
162
- * Activates the next registered tab, or the previous one based on a provided array index.
163
- */
164
- activateNearestTab(arrayIndex) {
165
- const newActiveTab = this.#tabs[arrayIndex] || this.#tabs[arrayIndex - 1];
166
- if (newActiveTab) {
167
- this.currentActiveTabIndex = newActiveTab.tabIndex;
168
- }
169
- }
170
- #isTabIndexActive(tabIndex) {
171
- return this.tabIndexesEqual(tabIndex, this.currentActiveTabIndex);
172
- }
173
- #getNextTabArrayIndex(currentIndex) {
174
- let nextIndex = currentIndex + 1;
175
- if (nextIndex === this.#tabs.length) {
176
- nextIndex = 0;
177
- }
178
- return nextIndex;
179
- }
180
- #getPrevTabArrayIndex(currentIndex) {
181
- let prevIndex = currentIndex - 1;
182
- if (prevIndex < 0) {
183
- prevIndex = this.#tabs.length - 1;
184
- }
185
- return prevIndex;
186
- }
187
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: SkyTabsetService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
188
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: SkyTabsetService }); }
189
- }
190
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: SkyTabsetService, decorators: [{
191
- type: Injectable
192
- }], ctorParameters: () => [] });
193
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFic2V0LnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvdGFicy9zcmMvbGliL21vZHVsZXMvdGFicy90YWJzZXQuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFhLE1BQU0sZUFBZSxDQUFDO0FBRXRELE9BQU8sRUFBRSxlQUFlLEVBQWMsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDOztBQVE1RDs7R0FFRztBQUVILE1BQU0sT0FBTyxnQkFBZ0I7SUFhM0IsZ0JBQWdCLENBQWdEO0lBRWhFLG1CQUFtQixDQUF1QjtJQUUxQyxzQkFBc0IsQ0FBOEM7SUFFcEUsZ0JBQWdCLENBQTRCO0lBRTVDLEtBQUssQ0FFSTtJQUVULFdBQVcsQ0FBSztJQUVoQjtRQWxCTywwQkFBcUIsR0FBNEIsQ0FBQyxDQUFDO1FBRW5ELDhCQUF5QixHQUFnQixDQUFDLENBQUM7UUFVbEQsVUFBSyxHQUVDLEVBQUUsQ0FBQztRQUVULGdCQUFXLEdBQUcsQ0FBQyxDQUFDO1FBR2QsSUFBSSxDQUFDLGdCQUFnQixHQUFHLElBQUksZUFBZSxDQUErQjtZQUN4RSxPQUFPLEVBQUUsSUFBSTtZQUNiLFFBQVEsRUFBRSxDQUFDO1NBQ1osQ0FBQyxDQUFDO1FBRUgsSUFBSSxDQUFDLGdCQUFnQixHQUFHLElBQUksT0FBTyxFQUFFLENBQUM7UUFFdEMsSUFBSSxDQUFDLHNCQUFzQixHQUFHLElBQUksT0FBTyxFQUFFLENBQUM7UUFFNUMsSUFBSSxDQUFDLG1CQUFtQixHQUFHLElBQUksT0FBTyxFQUFFLENBQUM7UUFFekMsSUFBSSxDQUFDLGVBQWUsR0FBRyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsWUFBWSxFQUFFLENBQUM7UUFDNUQsSUFBSSxDQUFDLGVBQWUsR0FBRyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsWUFBWSxFQUFFLENBQUM7UUFDNUQs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RUFBRSxJQUFJLENBQUMscUJBQXFCLENBQUMsQ0FBQztJQUNwRSxDQUFDO0lBRUQscUJBQXFCLENBQUMsWUFBb0I7UUFDeEMsSUFBSSxTQUFTLEdBQUcsWUFBWSxHQUFHLENBQUMsQ0FBQztRQUVqQyxJQUFJLFNBQVMsS0FBSyxJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sRUFBRSxDQUFDO1lBQ3BDLFNBQVMsR0FBRyxDQUFDLENBQUM7UUFDaEIsQ0FBQztRQUVELE9BQU8sU0FBUyxDQUFDO0lBQ25CLENBQUM7SUFFRCxxQkFBcUIsQ0FBQyxZQUFvQjtRQUN4QyxJQUFJLFNBQVMsR0FBRyxZQUFZLEdBQUcsQ0FBQyxDQUFDO1FBRWpDLElBQUksU0FBUyxHQUFHLENBQUMsRUFBRSxDQUFDO1lBQ2xCLFNBQVMsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUM7UUFDcEMsQ0FBQztRQUVELE9BQU8sU0FBUyxDQUFDO0lBQ25CLENBQUM7K0dBdFFVLGdCQUFnQjttSEFBaEIsZ0JBQWdCOzs0RkFBaEIsZ0JBQWdCO2tCQUQ1QixVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSwgT25EZXN0cm95IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCwgT2JzZXJ2YWJsZSwgU3ViamVjdCB9IGZyb20gJ3J4anMnO1xuXG5pbXBvcnQgeyBUYWJCdXR0b25WaWV3TW9kZWwgfSBmcm9tICcuL3RhYi1idXR0b24tdmlldy1tb2RlbCc7XG5pbXBvcnQgeyBTa3lUYWJJbmRleCB9IGZyb20gJy4vdGFiLWluZGV4JztcbmltcG9ydCB7IFNreVRhYkxheW91dFR5cGUgfSBmcm9tICcuL3RhYi1sYXlvdXQtdHlwZSc7XG5pbXBvcnQgeyBTa3lUYWJzZXRBY3RpdmVUYWJDaGFuZ2VBcmdzIH0gZnJvbSAnLi90YWJzZXQtYWN0aXZlLXRhYi1jaGFuZ2UtYXJncyc7XG5pbXBvcnQgeyBTa3lUYWJzZXRBY3RpdmVUYWJVbnJlZ2lzdGVyZWRBcmdzIH0gZnJvbSAnLi90YWJzZXQtYWN0aXZlLXRhYi11bnJlZ2lzdGVyZWQtYXJncyc7XG5cbi8qKlxuICogQGludGVybmFsXG4gKi9cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBTa3lUYWJzZXRTZXJ2aWNlIGltcGxlbWVudHMgT25EZXN0cm95IHtcbiAgcHVibGljIHJlYWRvbmx5IGFjdGl2ZVRhYlVucmVnaXN0ZXJlZDogT2JzZXJ2YWJsZTxTa3lUYWJzZXRBY3RpdmVUYWJVbnJlZ2lzdGVyZWRBcmdzPjtcblxuICBwdWJsaWMgcmVhZG9ubHkgYWN0aXZlVGFiQ2hhbmdlOiBPYnNlcnZhYmxlPFNreVRhYnNldEFjdGl2ZVRhYkNoYW5nZUFyZ3M+O1xuXG4gIHB1YmxpYyByZWFkb25seSBmb2N1c2VkVGFiQnRuSW5kZXg6IE9ic2VydmFibGU8U2t5VGFiSW5kZXg+O1xuXG4gIHB1YmxpYyByZWFkb25seSBhY3RpdmVUYWJMYXlvdXQ6IE9ic2VydmFibGU8U2t5VGFiTGF5b3V0VHlwZT47XG5cbiAgcHVibGljIGN1cnJlbnRBY3RpdmVUYWJJbmRleDogU2t5VGFiSW5kZXggfCB1bmRlZmluZWQgPSAwO1xuXG4gIHB1YmxpYyBjdXJyZW50Rm9jdXNlZFRhYkJ0bkluZGV4OiBTa3lUYWJJbmRleCA9IDA7XG5cbiAgI2FjdGl2ZVRhYkNoYW5nZTogQmVoYXZpb3JTdWJqZWN0PFNreVRhYnNldEFjdGl2ZVRhYkNoYW5nZUFyZ3M+O1xuXG4gICNmb2N1c2VkVGFiQnRuSW5kZXg6IFN1YmplY3Q8U2t5VGFiSW5kZXg+O1xuXG4gICNhY3RpdmVUYWJVbnJlZ2lzdGVyZWQ6IFN1YmplY3Q8U2t5VGFic2V0QWN0aXZlVGFiVW5yZWdpc3RlcmVkQXJncz47XG5cbiAgI2FjdGl2ZVRhYkxheW91dDogU3ViamVjdDxTa3lUYWJMYXlvdXRUeXBlPjtcblxuICAjdGFiczoge1xuICAgIHRhYkluZGV4OiBTa3lUYWJJbmRleCB8IHVuZGVmaW5lZDtcbiAgfVtdID0gW107XG5cbiAgI3RhYkNvdW50ZXIgPSAwO1xuXG4gIGNvbnN0cnVjdG9yKCkge1xuICAgIHRoaXMuI2FjdGl2ZVRhYkNoYW5nZSA9IG5ldyBCZWhhdmlvclN1YmplY3Q8U2t5VGFic2V0QWN0aXZlVGFiQ2hhbmdlQXJncz4oe1xuICAgICAgaW5pdGlhbDogdHJ1ZSxcbiAgICAgIHRhYkluZGV4OiAwLFxuICAgIH0pO1xuXG4gICAgdGhpcy4jYWN0aXZlVGFiTGF5b3V0ID0gbmV3IFN1YmplY3QoKTtcblxuICAgIHRoaXMuI2FjdGl2ZVRhYlVucmVnaXN0ZXJlZCA9IG5ldyBTdWJqZWN0KCk7XG5cbiAgICB0aGlzLiNmb2N1c2VkVGFiQnRuSW5kZXggPSBuZXcgU3ViamVjdCgpO1xuXG4gICAgdGhpcy5hY3RpdmVUYWJDaGFuZ2UgPSB0aGlzLiNhY3RpdmVUYWJDaGFuZ2UuYXNPYnNlcnZhYmxlKCk7XG4gICAgdGhpcy5hY3RpdmVUYWJMYXlvdXQgPSB0aGlzLiNhY3RpdmVUYWJMYXlvdXQuYXNPYnNlcnZhYmxlKCk7XG4gICAgdGhpcy5hY3RpdmVUYWJVbnJlZ2lzdGVyZWQgPSB0aGlzLiNhY3RpdmVUYWJVbnJlZ2lzdGVyZWQuYXNPYnNlcnZhYmxlKCk7XG4gICAgdGhpcy5mb2N1c2VkVGFiQnRuSW5kZXggPSB0aGlzLiNmb2N1c2VkVGFiQnRuSW5kZXguYXNPYnNlcnZhYmxlKCk7XG4gIH1cblxuICBwdWJsaWMgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgdGhpcy4jYWN0aXZlVGFiQ2hhbmdlLmNvbXBsZXRlKCk7XG4gICAgdGhpcy4jYWN0aXZlVGFiVW5yZWdpc3RlcmVkLmNvbXBsZXRlKCk7XG4gICAgdGhpcy4jZm9jdXNlZFRhYkJ0bkluZGV4LmNvbXBsZXRlKCk7XG4gICAgdGhpcy4jYWN0aXZlVGFiTGF5b3V0LmNvbXBsZXRlKCk7XG4gIH1cblxuICAvKipcbiAgICogU2V0cyB0aGUgYWN0aXZlIHRhYiBieSBpdHMgdW5pcXVlIGB0YWJJbmRleGAgcHJvcGVydHkuXG4gICAqL1xuICBwdWJsaWMgc2V0QWN0aXZlVGFiSW5kZXgoXG4gICAgdmFsdWU6IFNreVRhYnNldEFjdGl2ZVRhYkNoYW5nZUFyZ3MsXG4gICAgY29uZmlnID0ge1xuICAgICAgZW1pdENoYW5nZTogdHJ1ZSxcbiAgICB9LFxuICApOiB2b2lkIHtcbiAgICBpZiAoXG4gICAgICB2YWx1ZS50YWJJbmRleCAhPT0gdW5kZWZpbmVkICYmXG4gICAgICAhdGhpcy50YWJJbmRleGVzRXF1YWwodmFsdWUudGFiSW5kZXgsIHRoaXMuY3VycmVudEFjdGl2ZVRhYkluZGV4KVxuICAgICkge1xuICAgICAgdGhpcy5jdXJyZW50QWN0aXZlVGFiSW5kZXggPSB2YWx1ZS50YWJJbmRleDtcblxuICAgICAgLyogaXN0YW5idWwgaWdub3JlIGVsc2UgKi9cbiAgICAgIGlmIChjb25maWcuZW1pdENoYW5nZSkge1xuICAgICAgICB0aGlzLiNhY3RpdmVUYWJDaGFuZ2UubmV4dCh2YWx1ZSk7XG4gICAgICB9XG5cbiAgICAgIHRoaXMuc2V0Rm9jdXNlZFRhYkJ0bkluZGV4KHZhbHVlLnRhYkluZGV4KTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgZm9jdXNOZXh0VGFiQnRuKHRhYkJ1dHRvbnM6IFRhYkJ1dHRvblZpZXdNb2RlbFtdKTogdm9pZCB7XG4gICAgY29uc3QgY3VycmVudFRhYkFycmF5SW5kZXggPSB0aGlzLiN0YWJzLmZpbmRJbmRleCgodGFiKSA9PlxuICAgICAgdGhpcy50YWJJbmRleGVzRXF1YWwodGFiLnRhYkluZGV4LCB0aGlzLmN1cnJlbnRGb2N1c2VkVGFiQnRuSW5kZXgpLFxuICAgICk7XG5cbiAgICBmb3IgKFxuICAgICAgbGV0IGkgPSB0aGlzLiNnZXROZXh0VGFiQXJyYXlJbmRleChjdXJyZW50VGFiQXJyYXlJbmRleCk7XG4gICAgICBpICE9PSBjdXJyZW50VGFiQXJyYXlJbmRleDtcbiAgICAgIGkgPSB0aGlzLiNnZXROZXh0VGFiQXJyYXlJbmRleChpKVxuICAgICkge1xuICAgICAgY29uc3QgdGFiQnRuID0gdGFiQnV0dG9uc1tpXTtcbiAgICAgIGlmICghdGFiQnRuLmRpc2FibGVkICYmIHRhYkJ0bi50YWJJbmRleCAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgIHRoaXMuc2V0Rm9jdXNlZFRhYkJ0bkluZGV4KHRhYkJ0bi50YWJJbmRleCk7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBwdWJsaWMgZm9jdXNQcmV2VGFiQnRuKHRhYkJ1dHRvbnM6IFRhYkJ1dHRvblZpZXdNb2RlbFtdKTogdm9pZCB7XG4gICAgY29uc3QgY3VycmVudFRhYkFycmF5SW5kZXggPSB0aGlzLiN0YWJzLmZpbmRJbmRleCgodGFiKSA9PlxuICAgICAgdGhpcy50YWJJbmRleGVzRXF1YWwodGFiLnRhYkluZGV4LCB0aGlzLmN1cnJlbnRGb2N1c2VkVGFiQnRuSW5kZXgpLFxuICAgICk7XG5cbiAgICBmb3IgKFxuICAgICAgbGV0IGkgPSB0aGlzLiNnZXRQcmV2VGFiQXJyYXlJbmRleChjdXJyZW50VGFiQXJyYXlJbmRleCk7XG4gICAgICBpICE9PSBjdXJyZW50VGFiQXJyYXlJbmRleDtcbiAgICAgIGkgPSB0aGlzLiNnZXRQcmV2VGFiQXJyYXlJbmRleChpKVxuICAgICkge1xuICAgICAgY29uc3QgdGFiQnRuID0gdGFiQnV0dG9uc1tpXTtcbiAgICAgIGlmICghdGFiQnRuLmRpc2FibGVkICYmIHRhYkJ0bi50YWJJbmRleCAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgIHRoaXMuc2V0Rm9jdXNlZFRhYkJ0bkluZGV4KHRhYkJ0bi50YWJJbmRleCk7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBwdWJsaWMgZm9jdXNGaXJzdE9yTmVhcmVzdFRhYkJ0bih0YWJCdXR0b25zOiBUYWJCdXR0b25WaWV3TW9kZWxbXSk6IHZvaWQge1xuICAgIGZvciAoY29uc3QgdGFiQnRuIG9mIHRhYkJ1dHRvbnMpIHtcbiAgICAgIGlmICghdGFiQnRuLmRpc2FibGVkICYmIHRhYkJ0bi50YWJJbmRleCAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgIHRoaXMuc2V0Rm9jdXNlZFRhYkJ0bkluZGV4KHRhYkJ0bi50YWJJbmRleCk7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBwdWJsaWMgZm9jdXNMYXN0T3JOZWFyZXN0VGFiQnRuKHRhYkJ1dHRvbnM6IFRhYkJ1dHRvblZpZXdNb2RlbFtdKTogdm9pZCB7XG4gICAgZm9yIChsZXQgaSA9IHRhYkJ1dHRvbnMubGVuZ3RoIC0gMTsgaSA+PSAwOyBpLS0pIHtcbiAgICAgIGNvbnN0IHRhYkJ0biA9IHRhYkJ1dHRvbnNbaV07XG5cbiAgICAgIGlmICghdGFiQnRuLmRpc2FibGVkICYmIHRhYkJ0bi50YWJJbmRleCAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgIHRoaXMuc2V0Rm9jdXNlZFRhYkJ0bkluZGV4KHRhYkJ0bi50YWJJbmRleCk7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBwdWJsaWMgc2V0Rm9jdXNlZFRhYkJ0bkluZGV4KHRhYkluZGV4OiBTa3lUYWJJbmRleCk6IHZvaWQge1xuICAgIHRoaXMuY3VycmVudEZvY3VzZWRUYWJCdG5JbmRleCA9IHRhYkluZGV4O1xuICAgIHRoaXMuI2ZvY3VzZWRUYWJCdG5JbmRleC5uZXh0KHRhYkluZGV4KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZWdpc3RlcnMgYSB0YWIgY29tcG9uZW50LlxuICAgKi9cbiAgcHVibGljIHJlZ2lzdGVyVGFiKHRhYkluZGV4PzogU2t5VGFiSW5kZXgpOiBTa3lUYWJJbmRleCB7XG4gICAgaWYgKHRhYkluZGV4ID09PSB1bmRlZmluZWQpIHtcbiAgICAgIHRhYkluZGV4ID0gdGhpcy4jdGFiQ291bnRlcjtcbiAgICAgIHRoaXMuI3RhYkNvdW50ZXIrKztcbiAgICB9XG5cbiAgICB0aGlzLiN0YWJzLnB1c2goeyB0YWJJbmRleCB9KTtcblxuICAgIHJldHVybiB0YWJJbmRleDtcbiAgfVxuXG4gIHB1YmxpYyB1cGRhdGVUYWJJbmRleChcbiAgICBjdXJyZW50VGFiSW5kZXg6IFNreVRhYkluZGV4LFxuICAgIG5ld1RhYkluZGV4OiBTa3lUYWJJbmRleCxcbiAgKTogdm9pZCB7XG4gICAgY29uc3QgZm91bmQgPSB0aGlzLiN0YWJzLmZpbmQoKHRhYikgPT5cbiAgICAgIHRoaXMudGFiSW5kZXhlc0VxdWFsKHRhYi50YWJJbmRleCwgY3VycmVudFRhYkluZGV4KSxcbiAgICApO1xuICAgIGlmIChmb3VuZCkge1xuICAgICAgZm91bmQudGFiSW5kZXggPSBuZXdUYWJJbmRleDtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgdXBkYXRlQWN0aXZlVGFiTGF5b3V0KGxheW91dDogU2t5VGFiTGF5b3V0VHlwZSk6IHZvaWQge1xuICAgIHRoaXMuI2FjdGl2ZVRhYkxheW91dC5uZXh0KGxheW91dCk7XG4gIH1cblxuICAvKipcbiAgICogVW5yZWdpc3RlcnMgYSB0YWIgY29tcG9uZW50LlxuICAgKi9cbiAgcHVibGljIHVucmVnaXN0ZXJUYWIodGFiSW5kZXg6IFNreVRhYkluZGV4KTogdm9pZCB7XG4gICAgY29uc3QgaW5kZXggPSB0aGlzLiN0YWJzLmZpbmRJbmRleCgodGFiKSA9PlxuICAgICAgdGhpcy50YWJJbmRleGVzRXF1YWwodGFiLnRhYkluZGV4LCB0YWJJbmRleCksXG4gICAgKTtcblxuICAgIC8vIE5vdGlmeSB0aGUgdGFic2V0IGNvbXBvbmVudCB3aGVuIGFuIGFjdGl2ZSB0YWIgaXMgdW5yZWdpc3RlcmVkLlxuICAgIGlmICh0aGlzLiNpc1RhYkluZGV4QWN0aXZlKHRoaXMuI3RhYnNbaW5kZXhdPy50YWJJbmRleCkpIHtcbiAgICAgIHRoaXMuI2FjdGl2ZVRhYlVucmVnaXN0ZXJlZC5uZXh0KHtcbiAgICAgICAgYXJyYXlJbmRleDogaW5kZXgsXG4gICAgICB9KTtcbiAgICB9XG5cbiAgICB0aGlzLiN0YWJzLnNwbGljZShpbmRleCwgMSk7XG4gIH1cblxuICAvKipcbiAgICogVW5yZWdpc3RlcnMgYWxsIHRhYiBjb21wb25lbnRzIGF0IG9uY2UuXG4gICAqL1xuICBwdWJsaWMgdW5yZWdpc3RlckFsbCgpOiB2b2lkIHtcbiAgICB0aGlzLiN0YWJzID0gW107XG4gIH1cblxuICAvKipcbiAgICogQ29tcGFyZXMgdHdvIHRhYiBpbmRleGVzIGFuZCByZXR1cm5zIGB0cnVlYCBpZiB0aGV5IGFyZSBlcXVhbC5cbiAgICovXG4gIHB1YmxpYyB0YWJJbmRleGVzRXF1YWwoXG4gICAgdGFiSW5kZXgxOiBTa3lUYWJJbmRleCB8IHVuZGVmaW5lZCxcbiAgICB0YWJJbmRleDI6IFNreVRhYkluZGV4IHwgdW5kZWZpbmVkLFxuICApOiBib29sZWFuIHtcbiAgICByZXR1cm4gKFxuICAgICAgdGFiSW5kZXgxID09PSB0YWJJbmRleDIgfHxcbiAgICAgICh0YWJJbmRleDEgIT09IHVuZGVmaW5lZCAmJlxuICAgICAgICB0YWJJbmRleDIgIT09IHVuZGVmaW5lZCAmJlxuICAgICAgICArdGFiSW5kZXgxID09PSArdGFiSW5kZXgyKVxuICAgICk7XG4gIH1cblxuICAvKipcbiAgICogVmVyaWZpZXMgaWYgYSBwcm92aWRlZCB0YWIgaW5kZXggaXMgcmVnaXN0ZXJlZC5cbiAgICovXG4gIHB1YmxpYyBpc1ZhbGlkVGFiSW5kZXgodGFiSW5kZXg6IFNreVRhYkluZGV4KTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuI3RhYnMuc29tZSgodGFiKSA9PlxuICAgICAgdGhpcy50YWJJbmRleGVzRXF1YWwodGFiLnRhYkluZGV4LCB0YWJJbmRleCksXG4gICAgKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBBY3RpdmF0ZXMgdGhlIGZpcnN0IHJlZ2lzdGVyZWQgdGFiLlxuICAgKi9cbiAgcHVibGljIGFjdGl2YXRlRmlyc3RUYWIoKTogU2t5VGFiSW5kZXggfCB1bmRlZmluZWQge1xuICAgIGNvbnN0IGZpcnN0VGFiSW5kZXggPSB0aGlzLiN0YWJzWzBdICYmIHRoaXMuI3RhYnNbMF0udGFiSW5kZXg7XG4gICAgaWYgKGZpcnN0VGFiSW5kZXggIT09IHVuZGVmaW5lZCkge1xuICAgICAgdGhpcy5zZXRBY3RpdmVUYWJJbmRleCh7XG4gICAgICAgIHRhYkluZGV4OiBmaXJzdFRhYkluZGV4LFxuICAgICAgfSk7XG4gICAgICByZXR1cm4gZmlyc3RUYWJJbmRleDtcbiAgICB9XG4gICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgfVxuXG4gIC8qKlxuICAgKiBBY3RpdmF0ZXMgdGhlIG5leHQgcmVnaXN0ZXJlZCB0YWIsIG9yIHRoZSBwcmV2aW91cyBvbmUgYmFzZWQgb24gYSBwcm92aWRlZCBhcnJheSBpbmRleC5cbiAgICovXG4gIHB1YmxpYyBhY3RpdmF0ZU5lYXJlc3RUYWIoYXJyYXlJbmRleDogbnVtYmVyKTogdm9pZCB7XG4gICAgY29uc3QgbmV3QWN0aXZlVGFiID0gdGhpcy4jdGFic1thcnJheUluZGV4XSB8fCB0aGlzLiN0YWJzW2FycmF5SW5kZXggLSAxXTtcbiAgICBpZiAobmV3QWN0aXZlVGFiKSB7XG4gICAgICB0aGlzLmN1cnJlbnRBY3RpdmVUYWJJbmRleCA9IG5ld0FjdGl2ZVRhYi50YWJJbmRleDtcbiAgICB9XG4gIH1cblxuICAjaXNUYWJJbmRleEFjdGl2ZSh0YWJJbmRleDogU2t5VGFiSW5kZXggfCB1bmRlZmluZWQpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy50YWJJbmRleGVzRXF1YWwodGFiSW5kZXgsIHRoaXMuY3VycmVudEFjdGl2ZVRhYkluZGV4KTtcbiAgfVxuXG4gICNnZXROZXh0VGFiQXJyYXlJbmRleChjdXJyZW50SW5kZXg6IG51bWJlcik6IG51bWJlciB7XG4gICAgbGV0IG5leHRJbmRleCA9IGN1cnJlbnRJbmRleCArIDE7XG5cbiAgICBpZiAobmV4dEluZGV4ID09PSB0aGlzLiN0YWJzLmxlbmd0aCkge1xuICAgICAgbmV4dEluZGV4ID0gMDtcbiAgICB9XG5cbiAgICByZXR1cm4gbmV4dEluZGV4O1xuICB9XG5cbiAgI2dldFByZXZUYWJBcnJheUluZGV4KGN1cnJlbnRJbmRleDogbnVtYmVyKTogbnVtYmVyIHtcbiAgICBsZXQgcHJldkluZGV4ID0gY3VycmVudEluZGV4IC0gMTtcblxuICAgIGlmIChwcmV2SW5kZXggPCAwKSB7XG4gICAgICBwcmV2SW5kZXggPSB0aGlzLiN0YWJzLmxlbmd0aCAtIDE7XG4gICAgfVxuXG4gICAgcmV0dXJuIHByZXZJbmRleDtcbiAgfVxufVxuIl19
@@ -1,183 +0,0 @@
1
- import { ChangeDetectionStrategy, Component, Input, Optional, ViewChild, inject, } from '@angular/core';
2
- import { Subject } from 'rxjs';
3
- import { SkyVerticalTabsetGroupService } from './vertical-tabset-group.service';
4
- import * as i0 from "@angular/core";
5
- import * as i1 from "./vertical-tabset-adapter.service";
6
- import * as i2 from "./vertical-tabset.service";
7
- import * as i3 from "../shared/tab-id.service";
8
- import * as i4 from "@angular/common";
9
- import * as i5 from "@skyux/icon";
10
- import * as i6 from "@skyux/core";
11
- import * as i7 from "@skyux/indicators";
12
- let nextId = 0;
13
- export class SkyVerticalTabComponent {
14
- /**
15
- * Whether the tab is active when the tabset loads.
16
- * @default false
17
- */
18
- set active(value) {
19
- if (value !== this.#_active) {
20
- this.#_active = value ?? false;
21
- if (this.#_active) {
22
- this.#tabsetService.activateTab(this);
23
- }
24
- }
25
- }
26
- get active() {
27
- return this.#_active;
28
- }
29
- #_active;
30
- /**
31
- * The ARIA role for the vertical tab
32
- * [to support accessibility](https://developer.blackbaud.com/skyux/learn/accessibility)
33
- * by indicating how the tab functions and what it controls. For information about how
34
- * an ARIA role indicates what an item represents on a web page, see the
35
- * [WAI-ARIA roles model](https://www.w3.org/WAI/PF/aria/#roles).
36
- * @default "tab"
37
- * @deprecated Any other value than `tab` could lead to a poor user experience for users with assistive technology.
38
- * In the next major version, this property will be automatically set to `tab`.
39
- */
40
- get ariaRole() {
41
- return this.#_ariaRole;
42
- }
43
- set ariaRole(value) {
44
- this.#_ariaRole = value ?? 'tab';
45
- }
46
- /**
47
- * The ID for the tab.
48
- * @deprecated Now that the vertical tabs provide aria labels automatically, this input is no longer necessary.
49
- */
50
- set tabId(value) {
51
- this.#tabIdOrDefault = value || this.#defaultTabId;
52
- this.#tabIdSvc?.register(this.#defaultTabId, this.#tabIdOrDefault);
53
- }
54
- get tabId() {
55
- return this.#tabIdOrDefault;
56
- }
57
- set contentRendered(value) {
58
- this.#_contentRendered = value;
59
- /* istanbul ignore else */
60
- if (this.#_contentRendered) {
61
- // NOTE: Trigger another change detection cycle when the service marks
62
- // this tab as "rendered".
63
- setTimeout(() => {
64
- if (this.tabContent) {
65
- this.#changeRef.markForCheck();
66
- }
67
- });
68
- }
69
- }
70
- get contentRendered() {
71
- return this.#_contentRendered;
72
- }
73
- #_ariaRole;
74
- #_contentRendered;
75
- #tabIdOrDefault;
76
- #defaultTabId;
77
- #mobileSubscription;
78
- #ngUnsubscribe;
79
- #adapterService;
80
- #changeRef;
81
- #tabsetService;
82
- #tabIdSvc;
83
- constructor(adapterService, changeRef, tabsetService, tabIdSvc) {
84
- this.#_active = false;
85
- /**
86
- * Whether to disable the tab.
87
- */
88
- this.disabled = false;
89
- /**
90
- * Whether to indicate that the tab has an error.
91
- * @internal This is used for sectioned forms and is not currently a supported design for pure vertical tabs.
92
- */
93
- this.errorIndicator = false;
94
- this.isMobile = false;
95
- this.groupService = inject(SkyVerticalTabsetGroupService, {
96
- optional: true,
97
- });
98
- this.#_ariaRole = 'tab';
99
- this.#_contentRendered = false;
100
- this.#mobileSubscription = new Subject();
101
- this.#ngUnsubscribe = new Subject();
102
- this.#adapterService = adapterService;
103
- this.#changeRef = changeRef;
104
- this.#tabsetService = tabsetService;
105
- this.#tabIdSvc = tabIdSvc;
106
- this.#tabIdOrDefault = this.#defaultTabId = `sky-vertical-tab-${++nextId}`;
107
- this.tabId = this.#defaultTabId;
108
- }
109
- ngOnInit() {
110
- this.isMobile = this.#tabsetService.isMobile();
111
- this.#changeRef.markForCheck();
112
- this.#tabsetService.switchingMobile.subscribe((mobile) => {
113
- this.isMobile = mobile;
114
- this.#changeRef.markForCheck();
115
- });
116
- this.#tabsetService.addTab(this);
117
- }
118
- ngOnDestroy() {
119
- this.#tabIdSvc?.unregister(this.#defaultTabId);
120
- this.#mobileSubscription.unsubscribe();
121
- this.#ngUnsubscribe.next();
122
- this.#ngUnsubscribe.complete();
123
- this.#tabsetService.destroyTab(this);
124
- }
125
- activateTab() {
126
- if (!this.disabled) {
127
- this.active = true;
128
- this.#tabsetService.activateTab(this);
129
- this.#changeRef.markForCheck();
130
- }
131
- }
132
- focusButton() {
133
- this.#adapterService.focusButton(this.tabButton);
134
- }
135
- tabButtonActivate(event) {
136
- this.activateTab();
137
- event.stopPropagation();
138
- }
139
- tabButtonArrowLeft(event) {
140
- if (this.groupService) {
141
- this.groupService.messageStream.next({
142
- messageType: 'focus',
143
- });
144
- event.preventDefault();
145
- }
146
- }
147
- tabDeactivated() {
148
- this.#changeRef.markForCheck();
149
- }
150
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: SkyVerticalTabComponent, deps: [{ token: i1.SkyVerticalTabsetAdapterService }, { token: i0.ChangeDetectorRef }, { token: i2.SkyVerticalTabsetService }, { token: i3.SkyTabIdService, optional: true }], target: i0.ɵɵFactoryTarget.Component }); }
151
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", 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" }, viewQueries: [{ propertyName: "tabButton", first: true, predicate: ["tabButton"], descendants: true }, { propertyName: "tabContent", first: true, predicate: ["tabContentWrapper"], descendants: true }], ngImport: i0, template: "<a\n #tabButton\n class=\"sky-vertical-tab sky-vertical-tabset-button\"\n [attr.aria-controls]=\"isMobile ? null : ariaControls || tabContentPane.id\"\n [attr.aria-disabled]=\"disabled || undefined\"\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-tabset-button-disabled': disabled,\n 'sky-font-deemphasized': disabled,\n 'sky-deemphasized': disabled\n }\"\n [tabIndex]=\"-1\"\n (click)=\"activateTab()\"\n (keyup.arrowleft)=\"tabButtonArrowLeft($event)\"\n (keyup.enter)=\"tabButtonActivate($event)\"\n (keyup.space)=\"tabButtonActivate($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 @if (tabHeaderCount || tabHeaderCount === 0) {\n <span class=\"sky-vertical-tab-count\"> ({{ tabHeaderCount }}) </span>\n }\n </div>\n @if (errorIndicator) {\n <sky-status-indicator\n class=\"sky-vertical-tab-heading-error\"\n descriptionType=\"error\"\n indicatorType=\"danger\"\n />\n }\n @if (isMobile && showTabRightArrow) {\n <sky-icon class=\"sky-vertical-tab-right-arrow\" icon=\"chevron-right\" />\n }\n </div>\n</a>\n\n<div #tabContentWrapper skyResponsiveHost>\n <div\n #tabContentPane\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 >\n <ng-content />\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;justify-content:space-between;flex-grow:1}.sky-vertical-tab-heading-error{padding-left:5px}.sky-vertical-tab-count{margin-left:5px}.sky-vertical-tabset-button-disabled{cursor:not-allowed;pointer-events:none}.sky-vertical-tab-right-arrow{padding:3px 10px 0 0;color:#cdcfd2}.sky-vertical-tab-content-pane:focus-visible{outline:none;border:none}:host-context(.sky-theme-modern) .sky-vertical-tab{color:#686c73;cursor:pointer;padding:10px 0 10px 15px;margin:15px 0 15px 10px}:host-context(.sky-theme-modern) .sky-vertical-tab:not(.sky-vertical-tab-active):not(:active):hover{color:#212327;background-color:transparent;padding-left:14px;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:4px solid #00b4f1;color:#212327;padding-left:11px}: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:11px;border-left:4px solid #1870B8}.sky-theme-modern .sky-vertical-tab{color:#686c73;cursor:pointer;padding:10px 0 10px 15px;margin:15px 0 15px 10px}.sky-theme-modern .sky-vertical-tab:not(.sky-vertical-tab-active):not(:active):hover{color:#212327;background-color:transparent;padding-left:14px;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:4px solid #00b4f1;color:#212327;padding-left:11px}.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:11px;border-left:4px solid #1870B8}:host-context(.sky-sectioned-form-tabs-only) .sky-vertical-tab{margin-left:0}\n"], dependencies: [{ kind: "directive", type: i4.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "component", type: i5.λ1, selector: "sky-icon", inputs: ["icon", "iconName", "iconType", "size", "fixedWidth", "variant"] }, { kind: "directive", type: i6.λ2, selector: "[skyId]", exportAs: ["skyId"] }, { kind: "directive", type: i6.SkyResponsiveHostDirective, selector: "[skyResponsiveHost]", exportAs: ["skyResponsiveHost"] }, { kind: "component", type: i7.λ10, selector: "sky-status-indicator", inputs: ["indicatorType", "descriptionType", "customDescription", "helpPopoverContent", "helpPopoverTitle", "helpKey"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
152
- }
153
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: SkyVerticalTabComponent, decorators: [{
154
- type: Component,
155
- args: [{ selector: 'sky-vertical-tab', changeDetection: ChangeDetectionStrategy.OnPush, template: "<a\n #tabButton\n class=\"sky-vertical-tab sky-vertical-tabset-button\"\n [attr.aria-controls]=\"isMobile ? null : ariaControls || tabContentPane.id\"\n [attr.aria-disabled]=\"disabled || undefined\"\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-tabset-button-disabled': disabled,\n 'sky-font-deemphasized': disabled,\n 'sky-deemphasized': disabled\n }\"\n [tabIndex]=\"-1\"\n (click)=\"activateTab()\"\n (keyup.arrowleft)=\"tabButtonArrowLeft($event)\"\n (keyup.enter)=\"tabButtonActivate($event)\"\n (keyup.space)=\"tabButtonActivate($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 @if (tabHeaderCount || tabHeaderCount === 0) {\n <span class=\"sky-vertical-tab-count\"> ({{ tabHeaderCount }}) </span>\n }\n </div>\n @if (errorIndicator) {\n <sky-status-indicator\n class=\"sky-vertical-tab-heading-error\"\n descriptionType=\"error\"\n indicatorType=\"danger\"\n />\n }\n @if (isMobile && showTabRightArrow) {\n <sky-icon class=\"sky-vertical-tab-right-arrow\" icon=\"chevron-right\" />\n }\n </div>\n</a>\n\n<div #tabContentWrapper skyResponsiveHost>\n <div\n #tabContentPane\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 >\n <ng-content />\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;justify-content:space-between;flex-grow:1}.sky-vertical-tab-heading-error{padding-left:5px}.sky-vertical-tab-count{margin-left:5px}.sky-vertical-tabset-button-disabled{cursor:not-allowed;pointer-events:none}.sky-vertical-tab-right-arrow{padding:3px 10px 0 0;color:#cdcfd2}.sky-vertical-tab-content-pane:focus-visible{outline:none;border:none}:host-context(.sky-theme-modern) .sky-vertical-tab{color:#686c73;cursor:pointer;padding:10px 0 10px 15px;margin:15px 0 15px 10px}:host-context(.sky-theme-modern) .sky-vertical-tab:not(.sky-vertical-tab-active):not(:active):hover{color:#212327;background-color:transparent;padding-left:14px;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:4px solid #00b4f1;color:#212327;padding-left:11px}: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:11px;border-left:4px solid #1870B8}.sky-theme-modern .sky-vertical-tab{color:#686c73;cursor:pointer;padding:10px 0 10px 15px;margin:15px 0 15px 10px}.sky-theme-modern .sky-vertical-tab:not(.sky-vertical-tab-active):not(:active):hover{color:#212327;background-color:transparent;padding-left:14px;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:4px solid #00b4f1;color:#212327;padding-left:11px}.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:11px;border-left:4px solid #1870B8}:host-context(.sky-sectioned-form-tabs-only) .sky-vertical-tab{margin-left:0}\n"] }]
156
- }], ctorParameters: () => [{ type: i1.SkyVerticalTabsetAdapterService }, { type: i0.ChangeDetectorRef }, { type: i2.SkyVerticalTabsetService }, { type: i3.SkyTabIdService, decorators: [{
157
- type: Optional
158
- }] }], propDecorators: { active: [{
159
- type: Input
160
- }], ariaControls: [{
161
- type: Input
162
- }], ariaRole: [{
163
- type: Input
164
- }], disabled: [{
165
- type: Input
166
- }], errorIndicator: [{
167
- type: Input
168
- }], tabHeaderCount: [{
169
- type: Input
170
- }], tabHeading: [{
171
- type: Input
172
- }], showTabRightArrow: [{
173
- type: Input
174
- }], tabId: [{
175
- type: Input
176
- }], tabButton: [{
177
- type: ViewChild,
178
- args: ['tabButton']
179
- }], tabContent: [{
180
- type: ViewChild,
181
- args: ['tabContentWrapper']
182
- }] } });
183
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmVydGljYWwtdGFiLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tcG9uZW50cy90YWJzL3NyYy9saWIvbW9kdWxlcy92ZXJ0aWNhbC10YWJzZXQvdmVydGljYWwtdGFiLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tcG9uZW50cy90YWJzL3NyYy9saWIvbW9kdWxlcy92ZXJ0aWNhbC10YWJzZXQvdmVydGljYWwtdGFiLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCx1QkFBdUIsRUFFdkIsU0FBUyxFQUVULEtBQUssRUFHTCxRQUFRLEVBQ1IsU0FBUyxFQUNULE1BQU0sR0FDUCxNQUFNLGVBQWUsQ0FBQztBQUV2QixPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBSy9CLE9BQU8sRUFBRSw2QkFBNkIsRUFBRSxNQUFNLGlDQUFpQyxDQUFDOzs7Ozs7Ozs7QUFHaEYsSUFBSSxNQUFNLEdBQUcsQ0FBQyxDQUFDO0FBUWYsTUFBTSxPQUFPLHVCQUF1QjtJQUNsQzs7O09BR0c7SUFDSCxJQUNXLE1BQU0sQ0FBQyxLQUEwQjtRQUMxQyxJQUFJLEtBQUssS0FBSyxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUM7WUFDNUIsSUFBSSxDQUFDLFFBQVEsR0FBRyxLQUFLLElBQUksS0FBSyxDQUFDO1lBRS9CLElBQUksSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDO2dCQUNsQixJQUFJLENBQUMsY0FBYyxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsQ0FBQztZQUN4QyxDQUFDO1FBQ0gsQ0FBQztJQUNILENBQUM7SUFFRCxJQUFXLE1BQU07UUFDZixPQUFPLElBQUksQ0FBQyxRQUFRLENBQUM7SUFDdkIsQ0FBQztJQUVELFFBQVEsQ0FBUztJQVlqQjs7Ozs7Ozs7O09BU0c7SUFDSCxJQUNX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Q0FBQztRQUN6QixDQUFDO0lBQ0gsQ0FBQztJQUVNLGNBQWM7UUFDbkIsSUFBSSxDQUFDLFVBQVUsQ0FBQyxZQUFZLEVBQUUsQ0FBQztJQUNqQyxDQUFDOytHQXBOVSx1QkFBdUI7bUdBQXZCLHVCQUF1QixnZ0JDN0JwQyxvcERBcURBOzs0RkR4QmEsdUJBQXVCO2tCQU5uQyxTQUFTOytCQUNFLGtCQUFrQixtQkFHWCx1QkFBdUIsQ0FBQyxNQUFNOzswQkF5SjVDLFFBQVE7eUNBakpBLE1BQU07c0JBRGhCLEtBQUs7Z0JBeUJDLFlBQVk7c0JBRGxCLEtBQUs7Z0JBY0ssUUFBUTtzQkFEbEIsS0FBSztnQkFZQyxRQUFRO3NCQURkLEtBQUs7Z0JBUUMsY0FBYztzQkFEcEIsS0FBSztnQkFPQyxjQUFjO3NCQURwQixLQUFLO2dCQVFDLFVBQVU7c0JBRGhCLEtBQUs7Z0JBUUMsaUJBQWlCO3NCQUR2QixLQUFLO2dCQVFLLEtBQUs7c0JBRGYsS0FBSztnQkFrQ0MsU0FBUztzQkFEZixTQUFTO3VCQUFDLFdBQVc7Z0JBSWYsVUFBVTtzQkFEaEIsU0FBUzt1QkFBQyxtQkFBbUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gIENvbXBvbmVudCxcbiAgRWxlbWVudFJlZixcbiAgSW5wdXQsXG4gIE9uRGVzdHJveSxcbiAgT25Jbml0LFxuICBPcHRpb25hbCxcbiAgVmlld0NoaWxkLFxuICBpbmplY3QsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQgeyBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XG5cbmltcG9ydCB7IFNreVRhYklkU2VydmljZSB9IGZyb20gJy4uL3NoYXJlZC90YWItaWQuc2VydmljZSc7XG5cbmltcG9ydCB7IFNreVZlcnRpY2FsVGFic2V0QWRhcHRlclNlcnZpY2UgfSBmcm9tICcuL3ZlcnRpY2FsLXRhYnNldC1hZGFwdGVyLnNlcnZpY2UnO1xuaW1wb3J0IHsgU2t5VmVydGljYWxUYWJzZXRHcm91cFNlcnZpY2UgfSBmcm9tICcuL3ZlcnRpY2FsLXRhYnNldC1ncm91cC5zZXJ2aWNlJztcbmltcG9ydCB7IFNreVZlcnRpY2FsVGFic2V0U2VydmljZSB9IGZyb20gJy4vdmVydGljYWwtdGFic2V0LnNlcnZpY2UnO1xuXG5sZXQgbmV4dElkID0gMDtcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc2t5LXZlcnRpY2FsLXRhYicsXG4gIHRlbXBsYXRlVXJsOiAnLi92ZXJ0aWNhbC10YWIuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi92ZXJ0aWNhbC10YWIuY29tcG9uZW50LnNjc3MnXSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG59KVxuZXhwb3J0IGNsYXNzIFNreVZlcnRpY2FsVGFiQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3kge1xuICAvKipcbiAgICogV2hldGhlciB0aGUgdGFiIGlzIGFjdGl2ZSB3aGVuIHRoZSB0YWJzZXQgbG9hZHMuXG4gICAqIEBkZWZhdWx0IGZhbHNlXG4gICAqL1xuICBASW5wdXQoKVxuICBwdWJsaWMgc2V0IGFjdGl2ZSh2YWx1ZTogYm9vbGVhbiB8IHVuZGVmaW5lZCkge1xuICAgIGlmICh2YWx1ZSAhPT0gdGhpcy4jX2FjdGl2ZSkge1xuICAgICAgdGhpcy4jX2FjdGl2ZSA9IHZhbHVlID8/IGZhbHNlO1xuXG4gICAgICBpZiAodGhpcy4jX2FjdGl2ZSkge1xuICAgICAgICB0aGlzLiN0YWJzZXRTZXJ2aWNlLmFjdGl2YXRlVGFiKHRoaXMpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBnZXQgYWN0aXZlKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLiNfYWN0aXZlO1xuICB9XG5cbiAgI19hY3RpdmUgPSBmYWxzZTtcblxuICAvKipcbiAgICogVGhlIEhUTUwgZWxlbWVudCBJRCBvZiB0aGUgZWxlbWVudCB0aGF0IGNvbnRhaW5zXG4gICAqIHRoZSBjb250ZW50IHRoYXQgdGhlIHZlcnRpY2FsIHRhYiBkaXNwbGF5cywgd2hpY2ggY29ycmVzcG9uZHMgdG8gdGhlIGB0YWJJZGAuIFRoaXMgcHJvcGVydHlcbiAgICogW3N1cHBvcnRzIGFjY2Vzc2liaWxpdHkgcnVsZXMgZm9yIGRpc2Nsb3N1cmVzXShodHRwczovL3d3dy53My5vcmcvVFIvd2FpLWFyaWEtcHJhY3RpY2VzLTEuMS8jZGlzY2xvc3VyZSkuXG4gICAqIEZvciBtb3JlIGluZm9ybWF0aW9uIGFib3V0IHRoZSBgYXJpYS1jb250cm9sc2AgYXR0cmlidXRlLCBzZWUgdGhlIFtXQUktQVJJQSBkZWZpbml0aW9uXShodHRwczovL3d3dy53My5vcmcvVFIvd2FpLWFyaWEvI2FyaWEtY29udHJvbHMpLlxuICAgKiBAZGVwcmVjYXRlZCBOb3cgdGhhdCB0aGUgdmVydGljYWwgdGFicyBwcm92aWRlIGFyaWEgbGFiZWxzIGF1dG9tYXRpY2FsbHksIHRoaXMgaW5wdXQgaXMgbm8gbG9uZ2VyIG5lY2Vzc2FyeS5cbiAgICovXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBhcmlhQ29udHJvbHM6IHN0cmluZyB8IHVuZGVmaW5lZDtcblxuICAvKipcbiAgICogVGhlIEFSSUEgcm9sZSBmb3IgdGhlIHZlcnRpY2FsIHRhYlxuICAgKiBbdG8gc3VwcG9ydCBhY2Nlc3NpYmlsaXR5XShodHRwczovL2RldmVsb3Blci5ibGFja2JhdWQuY29tL3NreXV4L2xlYXJuL2FjY2Vzc2liaWxpdHkpXG4gICAqIGJ5IGluZGljYXRpbmcgaG93IHRoZSB0YWIgZnVuY3Rpb25zIGFuZCB3aGF0IGl0IGNvbnRyb2xzLiBGb3IgaW5mb3JtYXRpb24gYWJvdXQgaG93XG4gICAqIGFuIEFSSUEgcm9sZSBpbmRpY2F0ZXMgd2hhdCBhbiBpdGVtIHJlcHJlc2VudHMgb24gYSB3ZWIgcGFnZSwgc2VlIHRoZVxuICAgKiBbV0FJLUFSSUEgcm9sZXMgbW9kZWxdKGh0dHBzOi8vd3d3LnczLm9yZy9XQUkvUEYvYXJpYS8jcm9sZXMpLlxuICAgKiBAZGVmYXVsdCBcInRhYlwiXG4gICAqIEBkZXByZWNhdGVkIEFueSBvdGhlciB2YWx1ZSB0aGFuIGB0YWJgIGNvdWxkIGxlYWQgdG8gYSBwb29yIHVzZXIgZXhwZXJpZW5jZSBmb3IgdXNlcnMgd2l0aCBhc3Npc3RpdmUgdGVjaG5vbG9neS5cbiAgICogSW4gdGhlIG5leHQgbWFqb3IgdmVyc2lvbiwgdGhpcyBwcm9wZXJ0eSB3aWxsIGJlIGF1dG9tYXRpY2FsbHkgc2V0IHRvIGB0YWJgLlxuICAgKi9cbiAgQElucHV0KClcbiAgcHVibGljIGdldCBhcmlhUm9sZSgpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLiNfYXJpYVJvbGU7XG4gIH1cbiAgcHVibGljIHNldCBhcmlhUm9sZSh2YWx1ZTogc3RyaW5nIHwgdW5kZWZpbmVkKSB7XG4gICAgdGhpcy4jX2FyaWFSb2xlID0gdmFsdWUgPz8gJ3RhYic7XG4gIH1cblxuICAvKipcbiAgICogV2hldGhlciB0byBkaXNhYmxlIHRoZSB0YWIuXG4gICAqL1xuICBASW5wdXQoKVxuICBwdWJsaWMgZGlzYWJsZWQ6IGJvb2xlYW4gfCB1bmRlZmluZWQgPSBmYWxzZTtcblxuICAvKipcbiAgICogV2hldGhlciB0byBpbmRpY2F0ZSB0aGF0IHRoZSB0YWIgaGFzIGFuIGVycm9yLlxuICAgKiBAaW50ZXJuYWwgVGhpcyBpcyB1c2VkIGZvciBzZWN0aW9uZWQgZm9ybXMgYW5kIGlzIG5vdCBjdXJyZW50bHkgYSBzdXBwb3J0ZWQgZGVzaWduIGZvciBwdXJlIHZlcnRpY2FsIHRhYnMuXG4gICAqL1xuICBASW5wdXQoKVxuICBwdWJsaWMgZXJyb3JJbmRpY2F0b3I6IGJvb2xlYW4gfCB1bmRlZmluZWQgPSBmYWxzZTtcblxuICAvKipcbiAgICogRGlzcGxheXMgYW4gaXRlbSBjb3VudCBhbG9uZ3NpZGUgdGhlIHRhYiBoZWFkZXIgdG8gaW5kaWNhdGUgaG93IG1hbnkgbGlzdCBpdGVtcyB0aGUgdGFiIGNvbnRhaW5zLlxuICAgKi9cbiAgQElucHV0KClcbiAgcHVibGljIHRhYkhlYWRlckNvdW50OiBudW1iZXIgfCB1bmRlZmluZWQ7XG5cbiAgLyoqXG4gICAqIFRoZSB0YWIgaGVhZGVyLlxuICAgKiBAcmVxdWlyZWRcbiAgICovXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyB0YWJIZWFkaW5nOiBzdHJpbmcgfCB1bmRlZmluZWQ7XG5cbiAgLyoqXG4gICAqIFdoZXRoZXIgdG8gZGlzcGxheSBhIGNoZXZyb24tcmlnaHQgaWNvbiBvbiB0aGUgcmlnaHQgaGFuZCBzaWRlIG9mIHRoZSB0YWIuXG4gICAqIEBpbnRlcm5hbFxuICAgKi9cbiAgQElucHV0KClcbiAgcHVibGljIHNob3dUYWJSaWdodEFycm93OiBib29sZWFuIHwgdW5kZWZpbmVkO1xuXG4gIC8qKlxuICAgKiBUaGUgSUQgZm9yIHRoZSB0YWIuXG4gICAqIEBkZXByZWNhdGVkIE5vdyB0aGF0IHRoZSB2ZXJ0aWNhbCB0YWJzIHByb3ZpZGUgYXJpYSBsYWJlbHMgYXV0b21hdGljYWxseSwgdGhpcyBpbnB1dCBpcyBubyBsb25nZXIgbmVjZXNzYXJ5LlxuICAgKi9cbiAgQElucHV0KClcbiAgcHVibGljIHNldCB0YWJJZCh2YWx1ZTogc3RyaW5nIHwgdW5kZWZpbmVkKSB7XG4gICAgdGhpcy4jdGFiSWRPckRlZmF1bHQgPSB2YWx1ZSB8fCB0aGlzLiNkZWZhdWx0VGFiSWQ7XG4gICAgdGhpcy4jdGFiSWRTdmM/LnJlZ2lzdGVyKHRoaXMuI2RlZmF1bHRUYWJJZCwgdGhpcy4jdGFiSWRPckRlZmF1bHQpO1xuICB9XG5cbiAgcHVibGljIGdldCB0YWJJZCgpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLiN0YWJJZE9yRGVmYXVsdDtcbiAgfVxuXG4gIHB1YmxpYyBzZXQgY29udGVudFJlbmRlcmVkKHZhbHVlOiBib29sZWFuKSB7XG4gICAgdGhpcy4jX2NvbnRlbnRSZW5kZXJlZCA9IHZhbHVlO1xuXG4gICAgLyogaXN0YW5idWwgaWdub3JlIGVsc2UgKi9cbiAgICBpZiAodGhpcy4jX2NvbnRlbnRSZW5kZXJlZCkge1xuICAgICAgLy8gTk9URTogVHJpZ2dlciBhbm90aGVyIGNoYW5nZSBkZXRlY3Rpb24gY3ljbGUgd2hlbiB0aGUgc2VydmljZSBtYXJrc1xuICAgICAgLy8gdGhpcyB0YWIgYXMgXCJyZW5kZXJlZFwiLlxuICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgIGlmICh0aGlzLnRhYkNvbnRlbnQpIHtcbiAgICAgICAgICB0aGlzLiNjaGFuZ2VSZWYubWFya0ZvckNoZWNrKCk7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBnZXQgY29udGVudFJlbmRlcmVkKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLiNfY29udGVudFJlbmRlcmVkO1xuICB9XG5cbiAgcHVibGljIGluZGV4OiBudW1iZXIgfCB1bmRlZmluZWQ7XG5cbiAgcHVibGljIGlzTW9iaWxlID0gZmFsc2U7XG5cbiAgQFZpZXdDaGlsZCgndGFiQnV0dG9uJylcbiAgcHVibGljIHRhYkJ1dHRvbjogRWxlbWVudFJlZiB8IHVuZGVmaW5lZDtcblxuICBAVmlld0NoaWxkKCd0YWJDb250ZW50V3JhcHBlcicpXG4gIHB1YmxpYyB0YWJDb250ZW50OiBFbGVtZW50UmVmIHwgdW5kZWZpbmVkO1xuXG4gIHB1YmxpYyBncm91cFNlcnZpY2UgPSBpbmplY3QoU2t5VmVydGljYWxUYWJzZXRHcm91cFNlcnZpY2UsIHtcbiAgICBvcHRpb25hbDogdHJ1ZSxcbiAgfSk7XG5cbiAgI19hcmlhUm9sZSA9ICd0YWInO1xuXG4gICNfY29udGVudFJlbmRlcmVkID0gZmFsc2U7XG5cbiAgI3RhYklkT3JEZWZhdWx0OiBzdHJpbmc7XG5cbiAgI2RlZmF1bHRUYWJJZDogc3RyaW5nO1xuXG4gICNtb2JpbGVTdWJzY3JpcHRpb24gPSBuZXcgU3ViamVjdCgpO1xuXG4gICNuZ1Vuc3Vic2NyaWJlID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcblxuICAjYWRhcHRlclNlcnZpY2U6IFNreVZlcnRpY2FsVGFic2V0QWRhcHRlclNlcnZpY2U7XG4gICNjaGFuZ2VSZWY6IENoYW5nZURldGVjdG9yUmVmO1xuICAjdGFic2V0U2VydmljZTogU2t5VmVydGljYWxUYWJzZXRTZXJ2aWNlO1xuICAjdGFiSWRTdmM6IFNreVRhYklkU2VydmljZSB8IHVuZGVmaW5lZDtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBhZGFwdGVyU2VydmljZTogU2t5VmVydGljYWxUYWJzZXRBZGFwdGVyU2VydmljZSxcbiAgICBjaGFuZ2VSZWY6IENoYW5nZURldGVjdG9yUmVmLFxuICAgIHRhYnNldFNlcnZpY2U6IFNreVZlcnRpY2FsVGFic2V0U2VydmljZSxcbiAgICBAT3B0aW9uYWwoKSB0YWJJZFN2Yz86IFNreVRhYklkU2VydmljZSxcbiAgKSB7XG4gICAgdGhpcy4jYWRhcHRlclNlcnZpY2UgPSBhZGFwdGVyU2VydmljZTtcbiAgICB0aGlzLiNjaGFuZ2VSZWYgPSBjaGFuZ2VSZWY7XG4gICAgdGhpcy4jdGFic2V0U2VydmljZSA9IHRhYnNldFNlcnZpY2U7XG4gICAgdGhpcy4jdGFiSWRTdmMgPSB0YWJJZFN2YztcblxuICAgIHRoaXMuI3RhYklkT3JEZWZhdWx0ID0gdGhpcy4jZGVmYXVsdFRhYklkID0gYHNreS12ZXJ0aWNhbC10YWItJHsrK25leHRJZH1gO1xuICAgIHRoaXMudGFiSWQgPSB0aGlzLiNkZWZhdWx0VGFiSWQ7XG4gIH1cblxuICBwdWJsaWMgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgdGhpcy5pc01vYmlsZSA9IHRoaXMuI3RhYnNldFNlcnZpY2UuaXNNb2JpbGUoKTtcbiAgICB0aGlzLiNjaGFuZ2VSZWYubWFya0ZvckNoZWNrKCk7XG5cbiAgICB0aGlzLiN0YWJzZXRTZXJ2aWNlLnN3aXRjaGluZ01vYmlsZS5zdWJzY3JpYmUoKG1vYmlsZTogYm9vbGVhbikgPT4ge1xuICAgICAgdGhpcy5pc01vYmlsZSA9IG1vYmlsZTtcbiAgICAgIHRoaXMuI2NoYW5nZVJlZi5tYXJrRm9yQ2hlY2soKTtcbiAgICB9KTtcblxuICAgIHRoaXMuI3RhYnNldFNlcnZpY2UuYWRkVGFiKHRoaXMpO1xuICB9XG5cbiAgcHVibGljIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIHRoaXMuI3RhYklkU3ZjPy51bnJlZ2lzdGVyKHRoaXMuI2RlZmF1bHRUYWJJZCk7XG4gICAgdGhpcy4jbW9iaWxlU3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCk7XG4gICAgdGhpcy4jbmdVbnN1YnNjcmliZS5uZXh0KCk7XG4gICAgdGhpcy4jbmdVbnN1YnNjcmliZS5jb21wbGV0ZSgpO1xuICAgIHRoaXMuI3RhYnNldFNlcnZpY2UuZGVzdHJveVRhYih0aGlzKTtcbiAgfVxuXG4gIHB1YmxpYyBhY3RpdmF0ZVRhYigpOiB2b2lkIHtcbiAgICBpZiAoIXRoaXMuZGlzYWJsZWQpIHtcbiAgICAgIHRoaXMuYWN0aXZlID0gdHJ1ZTtcbiAgICAgIHRoaXMuI3RhYnNldFNlcnZpY2UuYWN0aXZhdGVUYWIodGhpcyk7XG5cbiAgICAgIHRoaXMuI2NoYW5nZVJlZi5tYXJrRm9yQ2hlY2soKTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgZm9jdXNCdXR0b24oKTogdm9pZCB7XG4gICAgdGhpcy4jYWRhcHRlclNlcnZpY2UuZm9jdXNCdXR0b24odGhpcy50YWJCdXR0b24pO1xuICB9XG5cbiAgcHVibGljIHRhYkJ1dHRvbkFjdGl2YXRlKGV2ZW50OiBFdmVudCk6IHZvaWQge1xuICAgIHRoaXMuYWN0aXZhdGVUYWIoKTtcbiAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcbiAgfVxuXG4gIHB1YmxpYyB0YWJCdXR0b25BcnJvd0xlZnQoZXZlbnQ6IEV2ZW50KTogdm9pZCB7XG4gICAgaWYgKHRoaXMuZ3JvdXBTZXJ2aWNlKSB7XG4gICAgICB0aGlzLmdyb3VwU2VydmljZS5tZXNzYWdlU3RyZWFtLm5leHQoe1xuICAgICAgICBtZXNzYWdlVHlwZTogJ2ZvY3VzJyxcbiAgICAgIH0pO1xuXG4gICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyB0YWJEZWFjdGl2YXRlZCgpOiB2b2lkIHtcbiAgICB0aGlzLiNjaGFuZ2VSZWYubWFya0ZvckNoZWNrKCk7XG4gIH1cbn1cbiIsIjxhXG4gICN0YWJCdXR0b25cbiAgY2xhc3M9XCJza3ktdmVydGljYWwtdGFiIHNreS12ZXJ0aWNhbC10YWJzZXQtYnV0dG9uXCJcbiAgW2F0dHIuYXJpYS1jb250cm9sc109XCJpc01vYmlsZSA/IG51bGwgOiBhcmlhQ29udHJvbHMgfHwgdGFiQ29udGVudFBhbmUuaWRcIlxuICBbYXR0ci5hcmlhLWRpc2FibGVkXT1cImRpc2FibGVkIHx8IHVuZGVmaW5lZFwiXG4gIFthdHRyLmFyaWEtc2VsZWN0ZWRdPVwiYWN0aXZlXCJcbiAgW2F0dHIuaWRdPVwidGFiSWRcIlxuICBbYXR0ci5yb2xlXT1cImlzTW9iaWxlID8gdW5kZWZpbmVkIDogYXJpYVJvbGVcIlxuICBbbmdDbGFzc109XCJ7XG4gICAgJ3NreS12ZXJ0aWNhbC10YWItYWN0aXZlJzogYWN0aXZlLFxuICAgICdza3ktdmVydGljYWwtdGFic2V0LWJ1dHRvbi1kaXNhYmxlZCc6IGRpc2FibGVkLFxuICAgICdza3ktZm9udC1kZWVtcGhhc2l6ZWQnOiBkaXNhYmxlZCxcbiAgICAnc2t5LWRlZW1waGFzaXplZCc6IGRpc2FibGVkXG4gIH1cIlxuICBbdGFiSW5kZXhdPVwiLTFcIlxuICAoY2xpY2spPVwiYWN0aXZhdGVUYWIoKVwiXG4gIChrZXl1cC5hcnJvd2xlZnQpPVwidGFiQnV0dG9uQXJyb3dMZWZ0KCRldmVudClcIlxuICAoa2V5dXAuZW50ZXIpPVwidGFiQnV0dG9uQWN0aXZhdGUoJGV2ZW50KVwiXG4gIChrZXl1cC5zcGFjZSk9XCJ0YWJCdXR0b25BY3RpdmF0ZSgkZXZlbnQpXCJcbj5cbiAgPGRpdiBjbGFzcz1cInNreS12ZXJ0aWNhbC10YWItZGlzcGxheVwiPlxuICAgIDxkaXYgY2xhc3M9XCJza3ktdmVydGljYWwtdGFiLWhlYWRpbmdcIj5cbiAgICAgIDxzcGFuIGNsYXNzPVwic2t5LXZlcnRpY2FsLXRhYi1oZWFkaW5nLXZhbHVlXCI+e3sgdGFiSGVhZGluZyB9fTwvc3Bhbj5cbiAgICAgIEBpZiAodGFiSGVhZGVyQ291bnQgfHwgdGFiSGVhZGVyQ291bnQgPT09IDApIHtcbiAgICAgICAgPHNwYW4gY2xhc3M9XCJza3ktdmVydGljYWwtdGFiLWNvdW50XCI+ICh7eyB0YWJIZWFkZXJDb3VudCB9fSkgPC9zcGFuPlxuICAgICAgfVxuICAgIDwvZGl2PlxuICAgIEBpZiAoZXJyb3JJbmRpY2F0b3IpIHtcbiAgICAgIDxza3ktc3RhdHVzLWluZGljYXRvclxuICAgICAgICBjbGFzcz1cInNreS12ZXJ0aWNhbC10YWItaGVhZGluZy1lcnJvclwiXG4gICAgICAgIGRlc2NyaXB0aW9uVHlwZT1cImVycm9yXCJcbiAgICAgICAgaW5kaWNhdG9yVHlwZT1cImRhbmdlclwiXG4gICAgICAvPlxuICAgIH1cbiAgICBAaWYgKGlzTW9iaWxlICYmIHNob3dUYWJSaWdodEFycm93KSB7XG4gICAgICA8c2t5LWljb24gY2xhc3M9XCJza3ktdmVydGljYWwtdGFiLXJpZ2h0LWFycm93XCIgaWNvbj1cImNoZXZyb24tcmlnaHRcIiAvPlxuICAgIH1cbiAgPC9kaXY+XG48L2E+XG5cbjxkaXYgI3RhYkNvbnRlbnRXcmFwcGVyIHNreVJlc3BvbnNpdmVIb3N0PlxuICA8ZGl2XG4gICAgI3RhYkNvbnRlbnRQYW5lXG4gICAgY2xhc3M9XCJza3ktdmVydGljYWwtdGFiLWNvbnRlbnQtcGFuZVwiXG4gICAgcm9sZT1cInRhYnBhbmVsXCJcbiAgICB0YWJpbmRleD1cIjBcIlxuICAgIHNreUlkXG4gICAgW2F0dHIuYXJpYS1sYWJlbGxlZGJ5XT1cInRhYklkXCJcbiAgICBbbmdDbGFzc109XCJ7ICdza3ktdmVydGljYWwtdGFiLWhpZGRlbic6ICFhY3RpdmUgfVwiXG4gID5cbiAgICA8bmctY29udGVudCAvPlxuICA8L2Rpdj5cbjwvZGl2PlxuIl19
@@ -1,67 +0,0 @@
1
- import { DOCUMENT } from '@angular/common';
2
- import { Injectable, inject } from '@angular/core';
3
- import * as i0 from "@angular/core";
4
- const VERTICAL_TABSET_BUTTON_SELECTOR = '.sky-vertical-tabset-button';
5
- const VERTICAL_TABSET_BUTTON_DISABLED_SELECTOR = `${VERTICAL_TABSET_BUTTON_SELECTOR}-disabled`;
6
- export class SkyVerticalTabsetAdapterService {
7
- #document = inject(DOCUMENT);
8
- scrollToContentTop(element) {
9
- element.nativeElement.scrollTop = 0;
10
- }
11
- focusButton(elRef) {
12
- return this.#focusButtonEl(elRef?.nativeElement);
13
- }
14
- focusFirstButton(tabGroups) {
15
- const tabGroupsEl = tabGroups?.nativeElement;
16
- if (tabGroupsEl) {
17
- const firstButtonEl = tabGroupsEl.querySelector(VERTICAL_TABSET_BUTTON_SELECTOR);
18
- if (firstButtonEl) {
19
- firstButtonEl.focus();
20
- }
21
- }
22
- }
23
- focusNextButton(tabGroups) {
24
- this.#focusSiblingButton(tabGroups);
25
- }
26
- focusPreviousButton(tabGroups) {
27
- this.#focusSiblingButton(tabGroups, true);
28
- }
29
- #focusSiblingButton(tabGroups, previous) {
30
- if (tabGroups) {
31
- const focusedEl = this.#document.activeElement;
32
- if (focusedEl?.matches(VERTICAL_TABSET_BUTTON_SELECTOR)) {
33
- const tabGroupsEl = tabGroups.nativeElement;
34
- const buttonEls = Array.from(tabGroupsEl.querySelectorAll(VERTICAL_TABSET_BUTTON_SELECTOR));
35
- if (previous) {
36
- buttonEls.reverse();
37
- }
38
- const focusedIndex = buttonEls.indexOf(focusedEl);
39
- for (let i = 1, n = buttonEls.length; i < n; i++) {
40
- // Offset the index of the next button from the index of the
41
- // currently focused button, circling back to the first button
42
- // when the end of the list is reached.
43
- const offset = (i + focusedIndex) % n;
44
- if (this.#focusButtonEl(buttonEls[offset])) {
45
- break;
46
- }
47
- }
48
- }
49
- }
50
- }
51
- #focusButtonEl(el) {
52
- if (el && !el.matches(VERTICAL_TABSET_BUTTON_DISABLED_SELECTOR)) {
53
- el.focus();
54
- return this.#elHasFocus(el);
55
- }
56
- return false;
57
- }
58
- #elHasFocus(el) {
59
- return !!el && el === this.#document.activeElement;
60
- }
61
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: SkyVerticalTabsetAdapterService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
62
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: SkyVerticalTabsetAdapterService }); }
63
- }
64
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: SkyVerticalTabsetAdapterService, decorators: [{
65
- type: Injectable
66
- }] });
67
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmVydGljYWwtdGFic2V0LWFkYXB0ZXIuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tcG9uZW50cy90YWJzL3NyYy9saWIvbW9kdWxlcy92ZXJ0aWNhbC10YWJzZXQvdmVydGljYWwtdGFic2V0LWFkYXB0ZXIuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDM0MsT0FBTyxFQUFjLFVBQVUsRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7O0FBRS9ELE1BQU0sK0JBQStCLEdBQUcsNkJBQTZCLENBQUM7QUFDdEUsTUFBTSx3Q0FBd0MsR0FBRyxHQUFHLCtCQUErQixXQUFXLENBQUM7QUFHL0YsTUFBTSxPQUFPLCtCQUErQjtJQUMxQyxTQUFTLEdBQUcsTUFBTSxDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBRXRCLGtCQUFrQixDQUFDLE9BQW1CO1FBQzNDLE9BQU8sQ0FBQyxhQUFhLENBQUMsU0FBUyxHQUFHLENBQUMsQ0FBQztJQUN0QyxDQUFDO0lBRU0sV0FBVyxDQUFDLEtBQTBDO1FBQzNELE9BQU8sSUFBSSxDQUFDLGNBQWMsQ0FBQyxLQUFLLEVBQUUsYUFBYSxDQUFDLENBQUM7SUFDbkQsQ0FBQztJQUVNLGdCQUFnQixDQUNyQixTQUE4QztRQUU5QyxNQUFNLFdBQVcsR0FBRyxTQUFTLEVBQUUsYUFBYSxDQUFDO1FBRTdDLElBQUksV0FBVyxFQUFFLENBQUM7WUFDaEIsTUFBTSxhQUFhLEdBQUcsV0FBVyxDQUFDLGFBQWEsQ0FDN0MsK0JBQStCLENBQ1YsQ0FBQztZQUV4QixJQUFJLGFBQWEsRUFBRSxDQUFDO2dCQUNsQixhQUFhLENBQUMsS0FBSyxFQUFFLENBQUM7WUFDeEIsQ0FBQztRQUNILENBQUM7SUFDSCxDQUFDO0lBRU0sZUFBZSxDQUFDLFNBQWlDO1FBQ3RELElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxTQUFTLENBQUMsQ0FBQztJQUN0QyxDQUFDO0lBRU0sbUJBQW1CLENBQUMsU0FBaUM7UUFDMUQsSUFBSSxDQUFDLG1CQUFtQixDQUFDLFNBQVMsRUFBRSxJQUFJLENBQUMsQ0FBQztJQUM1QyxDQUFDO0lBRUQsbUJBQW1CLENBQ2pCLFNBQThDLEVBQzlDLFFBQWtCO1FBRWxCLElBQUksU0FBUyxFQUFFLENBQUM7WUFDZCxNQUFNLFNBQVMsR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLGFBQW1DLENBQUM7WUFFckUsSUFBSSxTQUFTLEVBQUUsT0FBTyxDQUFDLCtCQUErQixDQUFDLEVBQUUsQ0FBQztnQkFDeEQsTUFBTSxXQUFXLEdBQUcsU0FBUyxDQUFDLGFBQWEsQ0FBQztnQkFFNUMsTUFBTSxTQUFTLEdBQUcsS0FBSyxDQUFDLElBQUksQ0FDMUIsV0FBVyxDQUFDLGdCQUFnQixDQUFDLCtCQUErQixDQUFDLENBQzdDLENBQUM7Z0JBRW5CLElBQUksUUFBUSxFQUFFLENBQUM7b0JBQ2IsU0FBUyxDQUFDLE9BQU8sRUFBRSxDQUFDO2dCQUN0QixDQUFDO2dCQUVELE1BQU0sWUFBWSxHQUFHLFNBQVMsQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDLENBQUM7Z0JBRWxELEtBQUssSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxTQUFTLENBQUMsTUFBTSxFQUFFLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQztvQkFDakQsNERBQTREO29CQUM1RCw4REFBOEQ7b0JBQzlELHVDQUF1QztvQkFDdkMsTUFBTSxNQUFNLEdBQUcsQ0FBQyxDQUFDLEdBQUcsWUFBWSxDQUFDLEdBQUcsQ0FBQyxDQUFDO29CQUV0QyxJQUFJLElBQUksQ0FBQyxjQUFjLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxDQUFDLEVBQUUsQ0FBQzt3QkFDM0MsTUFBTTtvQkFDUixDQUFDO2dCQUNILENBQUM7WUFDSCxDQUFDO1FBQ0gsQ0FBQztJQUNILENBQUM7SUFFRCxjQUFjLENBQUMsRUFBa0M7UUFDL0MsSUFBSSxFQUFFLElBQUksQ0FBQyxFQUFFLENBQUMsT0FBTyxDQUFDLHdDQUF3QyxDQUFDLEVBQUUsQ0FBQztZQUNoRSxFQUFFLENBQUMsS0FBSyxFQUFFLENBQUM7WUFDWCxPQUFPLElBQUksQ0FBQyxXQUFXLENBQUMsRUFBRSxDQUFDLENBQUM7UUFDOUIsQ0FBQztRQUVELE9BQU8sS0FBSyxDQUFDO0lBQ2YsQ0FBQztJQUVELFdBQVcsQ0FBQyxFQUFrQztRQUM1QyxPQUFPLENBQUMsQ0FBQyxFQUFFLElBQUksRUFBRSxLQUFLLElBQUksQ0FBQyxTQUFTLENBQUMsYUFBYSxDQUFDO0lBQ3JELENBQUM7K0dBaEZVLCtCQUErQjttSEFBL0IsK0JBQStCOzs0RkFBL0IsK0JBQStCO2tCQUQzQyxVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRE9DVU1FTlQgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgRWxlbWVudFJlZiwgSW5qZWN0YWJsZSwgaW5qZWN0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmNvbnN0IFZFUlRJQ0FMX1RBQlNFVF9CVVRUT05fU0VMRUNUT1IgPSAnLnNreS12ZXJ0aWNhbC10YWJzZXQtYnV0dG9uJztcbmNvbnN0IFZFUlRJQ0FMX1RBQlNFVF9CVVRUT05fRElTQUJMRURfU0VMRUNUT1IgPSBgJHtWRVJUSUNBTF9UQUJTRVRfQlVUVE9OX1NFTEVDVE9SfS1kaXNhYmxlZGA7XG5cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBTa3lWZXJ0aWNhbFRhYnNldEFkYXB0ZXJTZXJ2aWNlIHtcbiAgI2RvY3VtZW50ID0gaW5qZWN0KERPQ1VNRU5UKTtcblxuICBwdWJsaWMgc2Nyb2xsVG9Db250ZW50VG9wKGVsZW1lbnQ6IEVsZW1lbnRSZWYpOiB2b2lkIHtcbiAgICBlbGVtZW50Lm5hdGl2ZUVsZW1lbnQuc2Nyb2xsVG9wID0gMDtcbiAgfVxuXG4gIHB1YmxpYyBmb2N1c0J1dHRvbihlbFJlZjogRWxlbWVudFJlZjxIVE1MRWxlbWVudD4gfCB1bmRlZmluZWQpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy4jZm9jdXNCdXR0b25FbChlbFJlZj8ubmF0aXZlRWxlbWVudCk7XG4gIH1cblxuICBwdWJsaWMgZm9jdXNGaXJzdEJ1dHRvbihcbiAgICB0YWJHcm91cHM6IEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+IHwgdW5kZWZpbmVkLFxuICApOiB2b2lkIHtcbiAgICBjb25zdCB0YWJHcm91cHNFbCA9IHRhYkdyb3Vwcz8ubmF0aXZlRWxlbWVudDtcblxuICAgIGlmICh0YWJHcm91cHNFbCkge1xuICAgICAgY29uc3QgZmlyc3RCdXR0b25FbCA9IHRhYkdyb3Vwc0VsLnF1ZXJ5U2VsZWN0b3IoXG4gICAgICAgIFZFUlRJQ0FMX1RBQlNFVF9CVVRUT05fU0VMRUNUT1IsXG4gICAgICApIGFzIEhUTUxFbGVtZW50IHwgbnVsbDtcblxuICAgICAgaWYgKGZpcnN0QnV0dG9uRWwpIHtcbiAgICAgICAgZmlyc3RCdXR0b25FbC5mb2N1cygpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBmb2N1c05leHRCdXR0b24odGFiR3JvdXBzOiBFbGVtZW50UmVmIHwgdW5kZWZpbmVkKTogdm9pZCB7XG4gICAgdGhpcy4jZm9jdXNTaWJsaW5nQnV0dG9uKHRhYkdyb3Vwcyk7XG4gIH1cblxuICBwdWJsaWMgZm9jdXNQcmV2aW91c0J1dHRvbih0YWJHcm91cHM6IEVsZW1lbnRSZWYgfCB1bmRlZmluZWQpOiB2b2lkIHtcbiAgICB0aGlzLiNmb2N1c1NpYmxpbmdCdXR0b24odGFiR3JvdXBzLCB0cnVlKTtcbiAgfVxuXG4gICNmb2N1c1NpYmxpbmdCdXR0b24oXG4gICAgdGFiR3JvdXBzOiBFbGVtZW50UmVmPEhUTUxFbGVtZW50PiB8IHVuZGVmaW5lZCxcbiAgICBwcmV2aW91cz86IGJvb2xlYW4sXG4gICk6IHZvaWQge1xuICAgIGlmICh0YWJHcm91cHMpIHtcbiAgICAgIGNvbnN0IGZvY3VzZWRFbCA9IHRoaXMuI2RvY3VtZW50LmFjdGl2ZUVsZW1lbnQgYXMgSFRNTEVsZW1lbnQgfCBudWxsO1xuXG4gICAgICBpZiAoZm9jdXNlZEVsPy5tYXRjaGVzKFZFUlRJQ0FMX1RBQlNFVF9CVVRUT05fU0VMRUNUT1IpKSB7XG4gICAgICAgIGNvbnN0IHRhYkdyb3Vwc0VsID0gdGFiR3JvdXBzLm5hdGl2ZUVsZW1lbnQ7XG5cbiAgICAgICAgY29uc3QgYnV0dG9uRWxzID0gQXJyYXkuZnJvbShcbiAgICAgICAgICB0YWJHcm91cHNFbC5xdWVyeVNlbGVjdG9yQWxsKFZFUlRJQ0FMX1RBQlNFVF9CVVRUT05fU0VMRUNUT1IpLFxuICAgICAgICApIGFzIEhUTUxFbGVtZW50W107XG5cbiAgICAgICAgaWYgKHByZXZpb3VzKSB7XG4gICAgICAgICAgYnV0dG9uRWxzLnJldmVyc2UoKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IGZvY3VzZWRJbmRleCA9IGJ1dHRvbkVscy5pbmRleE9mKGZvY3VzZWRFbCk7XG5cbiAgICAgICAgZm9yIChsZXQgaSA9IDEsIG4gPSBidXR0b25FbHMubGVuZ3RoOyBpIDwgbjsgaSsrKSB7XG4gICAgICAgICAgLy8gT2Zmc2V0IHRoZSBpbmRleCBvZiB0aGUgbmV4dCBidXR0b24gZnJvbSB0aGUgaW5kZXggb2YgdGhlXG4gICAgICAgICAgLy8gY3VycmVudGx5IGZvY3VzZWQgYnV0dG9uLCBjaXJjbGluZyBiYWNrIHRvIHRoZSBmaXJzdCBidXR0b25cbiAgICAgICAgICAvLyB3aGVuIHRoZSBlbmQgb2YgdGhlIGxpc3QgaXMgcmVhY2hlZC5cbiAgICAgICAgICBjb25zdCBvZmZzZXQgPSAoaSArIGZvY3VzZWRJbmRleCkgJSBuO1xuXG4gICAgICAgICAgaWYgKHRoaXMuI2ZvY3VzQnV0dG9uRWwoYnV0dG9uRWxzW29mZnNldF0pKSB7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAjZm9jdXNCdXR0b25FbChlbDogSFRNTEVsZW1lbnQgfCBudWxsIHwgdW5kZWZpbmVkKTogYm9vbGVhbiB7XG4gICAgaWYgKGVsICYmICFlbC5tYXRjaGVzKFZFUlRJQ0FMX1RBQlNFVF9CVVRUT05fRElTQUJMRURfU0VMRUNUT1IpKSB7XG4gICAgICBlbC5mb2N1cygpO1xuICAgICAgcmV0dXJuIHRoaXMuI2VsSGFzRm9jdXMoZWwpO1xuICAgIH1cblxuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gICNlbEhhc0ZvY3VzKGVsOiBIVE1MRWxlbWVudCB8IG51bGwgfCB1bmRlZmluZWQpOiBib29sZWFuIHtcbiAgICByZXR1cm4gISFlbCAmJiBlbCA9PT0gdGhpcy4jZG9jdW1lbnQuYWN0aXZlRWxlbWVudDtcbiAgfVxufVxuIl19
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmVydGljYWwtdGFic2V0LWdyb3VwLW1lc3NhZ2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvdGFicy9zcmMvbGliL21vZHVsZXMvdmVydGljYWwtdGFic2V0L3ZlcnRpY2FsLXRhYnNldC1ncm91cC1tZXNzYWdlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgaW50ZXJmYWNlIFNreVZlcnRpY2FsVGFic2V0R3JvdXBNZXNzYWdlIHtcbiAgbWVzc2FnZVR5cGU6ICdmb2N1cyc7XG59XG4iXX0=