@skyux/tabs 7.0.0-beta.0 → 7.0.0-beta.10

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (57) hide show
  1. package/documentation.json +1118 -836
  2. package/esm2020/lib/modules/sectioned-form/sectioned-form-section.component.mjs +20 -14
  3. package/esm2020/lib/modules/sectioned-form/sectioned-form.component.mjs +25 -19
  4. package/esm2020/lib/modules/sectioned-form/sectioned-form.service.mjs +1 -1
  5. package/esm2020/lib/modules/shared/sky-tabs-resources.module.mjs +9 -1
  6. package/esm2020/lib/modules/tabs/tab-button-adapter.service.mjs +16 -0
  7. package/esm2020/lib/modules/tabs/tab-button-view-model.mjs +2 -0
  8. package/esm2020/lib/modules/tabs/tab-button.component.mjs +103 -10
  9. package/esm2020/lib/modules/tabs/tab.component.mjs +73 -33
  10. package/esm2020/lib/modules/tabs/tabs.module.mjs +5 -2
  11. package/esm2020/lib/modules/tabs/tabset-adapter.service.mjs +34 -22
  12. package/esm2020/lib/modules/tabs/tabset-nav-button-disabled.pipe.mjs +22 -0
  13. package/esm2020/lib/modules/tabs/tabset-nav-button.component.mjs +32 -42
  14. package/esm2020/lib/modules/tabs/tabset-permalink.service.mjs +41 -35
  15. package/esm2020/lib/modules/tabs/tabset-tab-indexes-change.mjs +1 -1
  16. package/esm2020/lib/modules/tabs/tabset.component.mjs +227 -219
  17. package/esm2020/lib/modules/tabs/tabset.service.mjs +104 -26
  18. package/esm2020/lib/modules/vertical-tabset/vertical-tab-media-query.service.mjs +11 -12
  19. package/esm2020/lib/modules/vertical-tabset/vertical-tab.component.mjs +67 -54
  20. package/esm2020/lib/modules/vertical-tabset/vertical-tabset-adapter.service.mjs +11 -8
  21. package/esm2020/lib/modules/vertical-tabset/vertical-tabset-group.component.mjs +28 -34
  22. package/esm2020/lib/modules/vertical-tabset/vertical-tabset.component.mjs +23 -20
  23. package/esm2020/lib/modules/vertical-tabset/vertical-tabset.service.mjs +55 -56
  24. package/esm2020/testing/tabs/tab-fixture-tab.mjs +1 -1
  25. package/esm2020/testing/tabs/tabset-fixture.mjs +44 -47
  26. package/fesm2015/skyux-tabs-testing.mjs +47 -49
  27. package/fesm2015/skyux-tabs-testing.mjs.map +1 -1
  28. package/fesm2015/skyux-tabs.mjs +947 -668
  29. package/fesm2015/skyux-tabs.mjs.map +1 -1
  30. package/fesm2020/skyux-tabs-testing.mjs +43 -46
  31. package/fesm2020/skyux-tabs-testing.mjs.map +1 -1
  32. package/fesm2020/skyux-tabs.mjs +1075 -800
  33. package/fesm2020/skyux-tabs.mjs.map +1 -1
  34. package/lib/modules/sectioned-form/sectioned-form-section.component.d.ts +7 -10
  35. package/lib/modules/sectioned-form/sectioned-form.component.d.ts +4 -6
  36. package/lib/modules/sectioned-form/sectioned-form.service.d.ts +4 -4
  37. package/lib/modules/tabs/tab-button-adapter.service.d.ts +10 -0
  38. package/lib/modules/tabs/tab-button-view-model.d.ts +17 -0
  39. package/lib/modules/tabs/tab-button.component.d.ts +30 -11
  40. package/lib/modules/tabs/tab.component.d.ts +13 -18
  41. package/lib/modules/tabs/tabs.module.d.ts +9 -8
  42. package/lib/modules/tabs/tabset-adapter.service.d.ts +5 -10
  43. package/lib/modules/tabs/tabset-nav-button-disabled.pipe.d.ts +8 -0
  44. package/lib/modules/tabs/tabset-nav-button.component.d.ts +8 -5
  45. package/lib/modules/tabs/tabset-permalink.service.d.ts +3 -11
  46. package/lib/modules/tabs/tabset-tab-indexes-change.d.ts +2 -2
  47. package/lib/modules/tabs/tabset.component.d.ts +14 -70
  48. package/lib/modules/tabs/tabset.service.d.ts +16 -9
  49. package/lib/modules/vertical-tabset/vertical-tab-media-query.service.d.ts +2 -3
  50. package/lib/modules/vertical-tabset/vertical-tab.component.d.ts +13 -22
  51. package/lib/modules/vertical-tabset/vertical-tabset-adapter.service.d.ts +1 -2
  52. package/lib/modules/vertical-tabset/vertical-tabset-group.component.d.ts +7 -11
  53. package/lib/modules/vertical-tabset/vertical-tabset.component.d.ts +10 -13
  54. package/lib/modules/vertical-tabset/vertical-tabset.service.d.ts +10 -17
  55. package/package.json +9 -9
  56. package/testing/tabs/tab-fixture-tab.d.ts +3 -3
  57. package/testing/tabs/tabset-fixture.d.ts +3 -9
@@ -1,7 +1,7 @@
1
1
  import * as i4 from '@angular/common';
2
2
  import { CommonModule } from '@angular/common';
3
3
  import * as i0 from '@angular/core';
4
- import { NgModule, Injectable, Component, ChangeDetectionStrategy, Input, ViewChild, HostListener, ContentChildren, EventEmitter, Output, ViewEncapsulation } from '@angular/core';
4
+ import { NgModule, Injectable, Component, ChangeDetectionStrategy, Input, ViewChild, HostListener, ContentChildren, EventEmitter, Output, ViewEncapsulation, Pipe } from '@angular/core';
5
5
  import { SkyCheckboxModule } from '@skyux/forms';
6
6
  import * as i7 from '@skyux/theme';
7
7
  import { SkyThemeModule } from '@skyux/theme';
@@ -11,7 +11,8 @@ import * as i5 from '@skyux/indicators';
11
11
  import { SkyIconModule, SkyExpansionIndicatorModule, SkyStatusIndicatorModule } from '@skyux/indicators';
12
12
  import * as i3 from '@skyux/i18n';
13
13
  import { getLibStringForLocale, SkyI18nModule, SKY_LIB_RESOURCES_PROVIDERS } from '@skyux/i18n';
14
- import { BehaviorSubject, Subject, combineLatest, race } from 'rxjs';
14
+ import { __classPrivateFieldSet, __classPrivateFieldGet } from 'tslib';
15
+ import { ReplaySubject, BehaviorSubject, Subject, combineLatest, race } from 'rxjs';
15
16
  import { takeUntil, take, distinctUntilChanged } from 'rxjs/operators';
16
17
  import { skyAnimationSlide } from '@skyux/animations';
17
18
  import { trigger, transition, style, animate } from '@angular/animations';
@@ -19,7 +20,6 @@ import * as i1$1 from '@angular/router';
19
20
  import { RouterModule } from '@angular/router';
20
21
  import * as i5$1 from '@skyux/popovers';
21
22
  import { SkyDropdownModule } from '@skyux/popovers';
22
- import { __classPrivateFieldGet, __classPrivateFieldSet } from 'tslib';
23
23
 
24
24
  /**
25
25
  * NOTICE: DO NOT MODIFY THIS FILE!
@@ -35,7 +35,15 @@ const RESOURCES = {
35
35
  skyux_tabs_navigator_next: { message: 'Next' },
36
36
  skyux_tabs_navigator_previous: { message: 'Previous' },
37
37
  skyux_tab_open: { message: 'Open tab' },
38
+ skyux_tabs_sr_tab_order: { message: 'Tab {0} of {1}: {2}' },
38
39
  skyux_vertical_tabs_show_tabs_text: { message: 'Tab list' },
40
+ skyux_wizard_sr_step_current: { message: 'Step {0} of {1}, current: {2}' },
41
+ skyux_wizard_sr_step_completed: {
42
+ message: 'Step {0} of {1}, completed: {2}',
43
+ },
44
+ skyux_wizard_sr_step_unavailable: {
45
+ message: 'Step {0} of {1}, unavailable: {2}',
46
+ },
39
47
  },
40
48
  };
41
49
  class SkyTabsResourcesProvider {
@@ -71,20 +79,17 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.0", ngImpor
71
79
  }]
72
80
  }] });
73
81
 
82
+ var _SkyVerticalTabMediaQueryService_currentSubject;
74
83
  /**
75
84
  * @internal
76
85
  */
77
86
  class SkyVerticalTabMediaQueryService {
78
87
  constructor() {
79
- this.currentSubject = new BehaviorSubject(this.current);
80
- this._current = SkyMediaBreakpoints.xs;
81
- this.currentSubject.next(this._current);
82
- }
83
- get current() {
84
- return this._current;
88
+ _SkyVerticalTabMediaQueryService_currentSubject.set(this, void 0);
89
+ __classPrivateFieldSet(this, _SkyVerticalTabMediaQueryService_currentSubject, new ReplaySubject(1), "f");
85
90
  }
86
91
  subscribe(listener) {
87
- return this.currentSubject.subscribe({
92
+ return __classPrivateFieldGet(this, _SkyVerticalTabMediaQueryService_currentSubject, "f").subscribe({
88
93
  next: (breakpoints) => {
89
94
  listener(breakpoints);
90
95
  },
@@ -104,8 +109,8 @@ class SkyVerticalTabMediaQueryService {
104
109
  else {
105
110
  breakpoint = SkyMediaBreakpoints.lg;
106
111
  }
107
- this._current = breakpoint;
108
- this.currentSubject.next(this._current);
112
+ this.current = breakpoint;
113
+ __classPrivateFieldGet(this, _SkyVerticalTabMediaQueryService_currentSubject, "f").next(this.current);
109
114
  }
110
115
  isWidthWithinBreakpiont(width, breakpoint) {
111
116
  const xsBreakpointMaxPixels = 767;
@@ -130,19 +135,21 @@ class SkyVerticalTabMediaQueryService {
130
135
  }
131
136
  }
132
137
  destroy() {
133
- this.currentSubject.complete();
138
+ __classPrivateFieldGet(this, _SkyVerticalTabMediaQueryService_currentSubject, "f").complete();
134
139
  }
135
140
  }
141
+ _SkyVerticalTabMediaQueryService_currentSubject = new WeakMap();
136
142
  SkyVerticalTabMediaQueryService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.0", ngImport: i0, type: SkyVerticalTabMediaQueryService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
137
143
  SkyVerticalTabMediaQueryService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "14.2.0", ngImport: i0, type: SkyVerticalTabMediaQueryService });
138
144
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.0", ngImport: i0, type: SkyVerticalTabMediaQueryService, decorators: [{
139
145
  type: Injectable
140
146
  }], ctorParameters: function () { return []; } });
141
147
 
148
+ var _SkyVerticalTabsetAdapterService_renderer;
142
149
  class SkyVerticalTabsetAdapterService {
143
150
  constructor(rendererFactory) {
144
- this.rendererFactory = rendererFactory;
145
- this.renderer = this.rendererFactory.createRenderer(undefined, undefined);
151
+ _SkyVerticalTabsetAdapterService_renderer.set(this, void 0);
152
+ __classPrivateFieldSet(this, _SkyVerticalTabsetAdapterService_renderer, rendererFactory.createRenderer(undefined, null), "f");
146
153
  }
147
154
  getWidth(elementRef) {
148
155
  return elementRef.nativeElement.clientWidth;
@@ -152,10 +159,10 @@ class SkyVerticalTabsetAdapterService {
152
159
  }
153
160
  setResponsiveClass(element, breakpoint) {
154
161
  const nativeEl = element.nativeElement;
155
- this.renderer.removeClass(nativeEl, 'sky-responsive-container-xs');
156
- this.renderer.removeClass(nativeEl, 'sky-responsive-container-sm');
157
- this.renderer.removeClass(nativeEl, 'sky-responsive-container-md');
158
- this.renderer.removeClass(nativeEl, 'sky-responsive-container-lg');
162
+ __classPrivateFieldGet(this, _SkyVerticalTabsetAdapterService_renderer, "f").removeClass(nativeEl, 'sky-responsive-container-xs');
163
+ __classPrivateFieldGet(this, _SkyVerticalTabsetAdapterService_renderer, "f").removeClass(nativeEl, 'sky-responsive-container-sm');
164
+ __classPrivateFieldGet(this, _SkyVerticalTabsetAdapterService_renderer, "f").removeClass(nativeEl, 'sky-responsive-container-md');
165
+ __classPrivateFieldGet(this, _SkyVerticalTabsetAdapterService_renderer, "f").removeClass(nativeEl, 'sky-responsive-container-lg');
159
166
  let newClass;
160
167
  switch (breakpoint) {
161
168
  case SkyMediaBreakpoints.xs: {
@@ -175,15 +182,17 @@ class SkyVerticalTabsetAdapterService {
175
182
  break;
176
183
  }
177
184
  }
178
- this.renderer.addClass(nativeEl, newClass);
185
+ __classPrivateFieldGet(this, _SkyVerticalTabsetAdapterService_renderer, "f").addClass(nativeEl, newClass);
179
186
  }
180
187
  }
188
+ _SkyVerticalTabsetAdapterService_renderer = new WeakMap();
181
189
  SkyVerticalTabsetAdapterService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.0", ngImport: i0, type: SkyVerticalTabsetAdapterService, deps: [{ token: i0.RendererFactory2 }], target: i0.ɵɵFactoryTarget.Injectable });
182
190
  SkyVerticalTabsetAdapterService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "14.2.0", ngImport: i0, type: SkyVerticalTabsetAdapterService });
183
191
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.0", ngImport: i0, type: SkyVerticalTabsetAdapterService, decorators: [{
184
192
  type: Injectable
185
193
  }], ctorParameters: function () { return [{ type: i0.RendererFactory2 }]; } });
186
194
 
195
+ var _SkyVerticalTabsetService_instances, _SkyVerticalTabsetService_contentAdded, _SkyVerticalTabsetService_tabsVisible, _SkyVerticalTabsetService_isMobile, _SkyVerticalTabsetService_mediaQueryService, _SkyVerticalTabsetService_destroyContent, _SkyVerticalTabsetService_moveContent, _SkyVerticalTabsetService_updateTabClicked;
187
196
  const VISIBLE_STATE = 'shown';
188
197
  const HIDDEN_STATE = 'void';
189
198
  /**
@@ -191,41 +200,40 @@ const HIDDEN_STATE = 'void';
191
200
  */
192
201
  class SkyVerticalTabsetService {
193
202
  constructor(mediaQueryService) {
194
- this.mediaQueryService = mediaQueryService;
203
+ _SkyVerticalTabsetService_instances.add(this);
195
204
  this.activeIndex = undefined;
196
205
  this.hidingTabs = new BehaviorSubject(false);
197
- this.indexChanged = new BehaviorSubject(undefined);
206
+ this.indexChanged = new ReplaySubject(1);
198
207
  this.maintainTabContent = false;
199
208
  this.showingTabs = new BehaviorSubject(false);
200
209
  this.switchingMobile = new Subject();
201
210
  this.tabs = [];
202
211
  this.tabAdded = new Subject();
203
- this.tabClicked = new BehaviorSubject(undefined);
204
- this._contentAdded = false;
205
- this._tabsVisible = false;
206
- this._isMobile = false;
207
- this.mediaQueryService.subscribe((breakpoint) => {
212
+ this.tabClicked = new ReplaySubject(1);
213
+ _SkyVerticalTabsetService_contentAdded.set(this, false);
214
+ _SkyVerticalTabsetService_tabsVisible.set(this, false);
215
+ _SkyVerticalTabsetService_isMobile.set(this, false);
216
+ _SkyVerticalTabsetService_mediaQueryService.set(this, void 0);
217
+ __classPrivateFieldSet(this, _SkyVerticalTabsetService_mediaQueryService, mediaQueryService, "f");
218
+ __classPrivateFieldGet(this, _SkyVerticalTabsetService_mediaQueryService, "f").subscribe((breakpoint) => {
208
219
  const nowMobile = breakpoint === SkyMediaBreakpoints.xs;
209
- if (nowMobile && !this._isMobile) {
220
+ if (nowMobile && !__classPrivateFieldGet(this, _SkyVerticalTabsetService_isMobile, "f")) {
210
221
  // switching to mobile
211
222
  this.switchingMobile.next(true);
212
- if (!this._tabsVisible) {
223
+ if (!__classPrivateFieldGet(this, _SkyVerticalTabsetService_tabsVisible, "f")) {
213
224
  this.hidingTabs.next(true);
214
225
  }
215
226
  }
216
- else if (!nowMobile && this._isMobile) {
227
+ else if (!nowMobile && __classPrivateFieldGet(this, _SkyVerticalTabsetService_isMobile, "f")) {
217
228
  // switching to widescreen
218
229
  this.switchingMobile.next(false);
219
- if (!this._tabsVisible) {
230
+ if (!__classPrivateFieldGet(this, _SkyVerticalTabsetService_tabsVisible, "f")) {
220
231
  this.showingTabs.next(true);
221
232
  }
222
233
  }
223
- this._isMobile = nowMobile;
234
+ __classPrivateFieldSet(this, _SkyVerticalTabsetService_isMobile, nowMobile, "f");
224
235
  });
225
236
  }
226
- set content(value) {
227
- this._content = value;
228
- }
229
237
  addTab(tab) {
230
238
  const index = this.tabs.length;
231
239
  tab.index = index;
@@ -243,15 +251,15 @@ class SkyVerticalTabsetService {
243
251
  if (this.maintainTabContent &&
244
252
  tab.contentRendered &&
245
253
  /* istanbul ignore next */
246
- this._content?.nativeElement.contains(tab.tabContent.nativeElement)) {
247
- this._content.nativeElement.removeChild(tab.tabContent.nativeElement);
254
+ this.content?.nativeElement.contains(tab.tabContent?.nativeElement)) {
255
+ this.content?.nativeElement.removeChild(tab.tabContent?.nativeElement);
248
256
  }
249
257
  this.tabs.splice(tabIndex, 1);
250
258
  // update tab indices
251
259
  this.tabs.forEach((tabItem, index) => (tabItem.index = index));
252
260
  if (tab.active) {
253
261
  if (!this.maintainTabContent) {
254
- this.destroyContent();
262
+ __classPrivateFieldGet(this, _SkyVerticalTabsetService_instances, "m", _SkyVerticalTabsetService_destroyContent).call(this);
255
263
  }
256
264
  // Try selecting the next tab first, and if there's no next tab then
257
265
  // try selecting the previous one.
@@ -271,89 +279,85 @@ class SkyVerticalTabsetService {
271
279
  }
272
280
  this.activeIndex = tab.index;
273
281
  this.tabClicked.next(true);
274
- this.updateTabClicked();
282
+ __classPrivateFieldGet(this, _SkyVerticalTabsetService_instances, "m", _SkyVerticalTabsetService_updateTabClicked).call(this);
275
283
  }
276
284
  activeTab() {
277
285
  return this.tabs.find((t) => t.index === this.activeIndex);
278
286
  }
279
287
  isMobile() {
280
- return this._isMobile;
288
+ return __classPrivateFieldGet(this, _SkyVerticalTabsetService_isMobile, "f");
281
289
  }
282
290
  updateContent() {
283
291
  if (!this.maintainTabContent) {
284
- if (!this._contentAdded && this.contentVisible()) {
292
+ if (!__classPrivateFieldGet(this, _SkyVerticalTabsetService_contentAdded, "f") && this.contentVisible()) {
285
293
  // content needs to be moved
286
- this.moveContent();
294
+ __classPrivateFieldGet(this, _SkyVerticalTabsetService_instances, "m", _SkyVerticalTabsetService_moveContent).call(this);
287
295
  }
288
- else if (this._contentAdded && !this.contentVisible()) {
296
+ else if (__classPrivateFieldGet(this, _SkyVerticalTabsetService_contentAdded, "f") && !this.contentVisible()) {
289
297
  // content hidden
290
- this._contentAdded = false;
298
+ __classPrivateFieldSet(this, _SkyVerticalTabsetService_contentAdded, false, "f");
291
299
  }
292
300
  }
293
301
  else {
294
302
  this.tabs.forEach((tab) => {
295
303
  if (!tab.contentRendered) {
296
- this._content.nativeElement.appendChild(tab.tabContent.nativeElement);
304
+ this.content?.nativeElement.appendChild(tab.tabContent?.nativeElement);
297
305
  tab.contentRendered = true;
298
306
  }
299
307
  });
300
308
  }
301
309
  }
302
310
  tabsVisible() {
303
- return !this.isMobile() || this._tabsVisible;
311
+ return !this.isMobile() || __classPrivateFieldGet(this, _SkyVerticalTabsetService_tabsVisible, "f");
304
312
  }
305
313
  contentVisible() {
306
- return !this.isMobile() || !this._tabsVisible;
314
+ return !this.isMobile() || !__classPrivateFieldGet(this, _SkyVerticalTabsetService_tabsVisible, "f");
307
315
  }
308
316
  showTabs() {
309
- this._tabsVisible = true;
310
- this._contentAdded = false;
317
+ __classPrivateFieldSet(this, _SkyVerticalTabsetService_tabsVisible, true, "f");
318
+ __classPrivateFieldSet(this, _SkyVerticalTabsetService_contentAdded, false, "f");
311
319
  this.animationTabsVisibleState = VISIBLE_STATE;
312
320
  this.animationContentVisibleState = HIDDEN_STATE;
313
321
  this.showingTabs.next(true);
314
322
  }
315
- destroyContent() {
316
- if (this._content) {
317
- this._content.nativeElement.innerHTML = '';
318
- }
319
- this.content = undefined;
320
- }
321
- moveContent() {
322
- /* istanbul ignore else */
323
- if (this._content && !this._contentAdded) {
324
- const activeTab = this.activeTab();
325
- const activeContent = activeTab ? activeTab.tabContent : undefined;
326
- if (activeContent && activeContent.nativeElement) {
327
- this._content.nativeElement.appendChild(activeContent.nativeElement);
328
- activeTab.contentRendered = true;
329
- this._contentAdded = true;
330
- }
331
- }
332
- }
333
- updateTabClicked() {
334
- this._contentAdded = false;
335
- if (this.isMobile()) {
336
- this._tabsVisible = false;
337
- this.animationContentVisibleState = VISIBLE_STATE;
338
- this.animationTabsVisibleState = HIDDEN_STATE;
339
- this.hidingTabs.next(true);
340
- }
341
- this.indexChanged.next(this.activeIndex);
342
- }
343
323
  }
324
+ _SkyVerticalTabsetService_contentAdded = new WeakMap(), _SkyVerticalTabsetService_tabsVisible = new WeakMap(), _SkyVerticalTabsetService_isMobile = new WeakMap(), _SkyVerticalTabsetService_mediaQueryService = new WeakMap(), _SkyVerticalTabsetService_instances = new WeakSet(), _SkyVerticalTabsetService_destroyContent = function _SkyVerticalTabsetService_destroyContent() {
325
+ if (this.content) {
326
+ this.content.nativeElement.innerHTML = '';
327
+ }
328
+ this.content = undefined;
329
+ }, _SkyVerticalTabsetService_moveContent = function _SkyVerticalTabsetService_moveContent() {
330
+ /* istanbul ignore else */
331
+ if (this.content && !__classPrivateFieldGet(this, _SkyVerticalTabsetService_contentAdded, "f")) {
332
+ const activeTab = this.activeTab();
333
+ const activeContent = activeTab ? activeTab.tabContent : undefined;
334
+ if (activeContent && activeTab && activeContent.nativeElement) {
335
+ this.content.nativeElement.appendChild(activeContent.nativeElement);
336
+ activeTab.contentRendered = true;
337
+ __classPrivateFieldSet(this, _SkyVerticalTabsetService_contentAdded, true, "f");
338
+ }
339
+ }
340
+ }, _SkyVerticalTabsetService_updateTabClicked = function _SkyVerticalTabsetService_updateTabClicked() {
341
+ __classPrivateFieldSet(this, _SkyVerticalTabsetService_contentAdded, false, "f");
342
+ if (this.isMobile()) {
343
+ __classPrivateFieldSet(this, _SkyVerticalTabsetService_tabsVisible, false, "f");
344
+ this.animationContentVisibleState = VISIBLE_STATE;
345
+ this.animationTabsVisibleState = HIDDEN_STATE;
346
+ this.hidingTabs.next(true);
347
+ }
348
+ this.indexChanged.next(this.activeIndex);
349
+ };
344
350
  SkyVerticalTabsetService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.0", ngImport: i0, type: SkyVerticalTabsetService, deps: [{ token: i1.SkyMediaQueryService }], target: i0.ɵɵFactoryTarget.Injectable });
345
351
  SkyVerticalTabsetService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "14.2.0", ngImport: i0, type: SkyVerticalTabsetService });
346
352
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.0", ngImport: i0, type: SkyVerticalTabsetService, decorators: [{
347
353
  type: Injectable
348
354
  }], ctorParameters: function () { return [{ type: i1.SkyMediaQueryService }]; } });
349
355
 
356
+ var _SkyVerticalTabComponent_instances, _SkyVerticalTabComponent__ariaRole, _SkyVerticalTabComponent__contentRendered, _SkyVerticalTabComponent_tabIdOrDefault, _SkyVerticalTabComponent_defaultTabId, _SkyVerticalTabComponent_mobileSubscription, _SkyVerticalTabComponent_ngUnsubscribe, _SkyVerticalTabComponent_adapterService, _SkyVerticalTabComponent_changeRef, _SkyVerticalTabComponent_tabsetService, _SkyVerticalTabComponent_verticalTabMediaQueryService, _SkyVerticalTabComponent_updateBreakpointAndResponsiveClass;
350
357
  let nextId$2 = 0;
351
358
  class SkyVerticalTabComponent {
352
359
  constructor(adapterService, changeRef, tabsetService, verticalTabMediaQueryService) {
353
- this.adapterService = adapterService;
354
- this.changeRef = changeRef;
355
- this.tabsetService = tabsetService;
356
- this.verticalTabMediaQueryService = verticalTabMediaQueryService;
360
+ _SkyVerticalTabComponent_instances.add(this);
357
361
  /**
358
362
  * Indicates whether the tab is active when the tabset loads.
359
363
  */
@@ -367,16 +371,22 @@ class SkyVerticalTabComponent {
367
371
  * @internal This is used for sectioned forms and is not currently a supported design for pure vertical tabs.
368
372
  */
369
373
  this.errorIndicator = false;
370
- /**
371
- * Specifies an ID for the tab.
372
- * @deprecated Now that the vertical tabs provide aria labels automatically, this input is no longer necessary.
373
- */
374
- this.tabId = `sky-vertical-tab-${++nextId$2}`;
375
374
  this.isMobile = false;
376
- this._contentRendered = false;
377
- this._mobileSubscription = new Subject();
378
- this._ngUnsubscribe = new Subject();
379
- this._showTabRightArrow = false;
375
+ _SkyVerticalTabComponent__ariaRole.set(this, 'tab');
376
+ _SkyVerticalTabComponent__contentRendered.set(this, false);
377
+ _SkyVerticalTabComponent_tabIdOrDefault.set(this, void 0);
378
+ _SkyVerticalTabComponent_defaultTabId.set(this, void 0);
379
+ _SkyVerticalTabComponent_mobileSubscription.set(this, new Subject());
380
+ _SkyVerticalTabComponent_ngUnsubscribe.set(this, new Subject());
381
+ _SkyVerticalTabComponent_adapterService.set(this, void 0);
382
+ _SkyVerticalTabComponent_changeRef.set(this, void 0);
383
+ _SkyVerticalTabComponent_tabsetService.set(this, void 0);
384
+ _SkyVerticalTabComponent_verticalTabMediaQueryService.set(this, void 0);
385
+ __classPrivateFieldSet(this, _SkyVerticalTabComponent_adapterService, adapterService, "f");
386
+ __classPrivateFieldSet(this, _SkyVerticalTabComponent_changeRef, changeRef, "f");
387
+ __classPrivateFieldSet(this, _SkyVerticalTabComponent_tabsetService, tabsetService, "f");
388
+ __classPrivateFieldSet(this, _SkyVerticalTabComponent_verticalTabMediaQueryService, verticalTabMediaQueryService, "f");
389
+ __classPrivateFieldSet(this, _SkyVerticalTabComponent_tabIdOrDefault, __classPrivateFieldSet(this, _SkyVerticalTabComponent_defaultTabId, `sky-vertical-tab-${++nextId$2}`, "f"), "f");
380
390
  }
381
391
  /**
382
392
  * Specifies an ARIA role for the vertical tab
@@ -389,60 +399,61 @@ class SkyVerticalTabComponent {
389
399
  * In the next major version, this property will be automatically set to `tab`.
390
400
  */
391
401
  get ariaRole() {
392
- if (this.isMobile) {
393
- return undefined;
394
- }
395
- return this._ariaRole || 'tab';
402
+ return __classPrivateFieldGet(this, _SkyVerticalTabComponent__ariaRole, "f");
396
403
  }
397
404
  set ariaRole(value) {
398
- this._ariaRole = value;
405
+ __classPrivateFieldSet(this, _SkyVerticalTabComponent__ariaRole, value ?? 'tab', "f");
399
406
  }
400
407
  /**
401
- * Indicates whether to display a chevron-right icon in the righthand side of the tab.
402
- * @internal
408
+ * Specifies an ID for the tab.
409
+ * @deprecated Now that the vertical tabs provide aria labels automatically, this input is no longer necessary.
403
410
  */
404
- get showTabRightArrow() {
405
- return this._showTabRightArrow && this.tabsetService.isMobile();
411
+ set tabId(value) {
412
+ __classPrivateFieldSet(this, _SkyVerticalTabComponent_tabIdOrDefault, value || __classPrivateFieldGet(this, _SkyVerticalTabComponent_defaultTabId, "f"), "f");
406
413
  }
407
- set showTabRightArrow(value) {
408
- this._showTabRightArrow = value;
414
+ get tabId() {
415
+ return __classPrivateFieldGet(this, _SkyVerticalTabComponent_tabIdOrDefault, "f");
409
416
  }
410
417
  set contentRendered(value) {
411
- this._contentRendered = value;
418
+ __classPrivateFieldSet(this, _SkyVerticalTabComponent__contentRendered, value, "f");
412
419
  /* istanbul ignore else */
413
- if (this._contentRendered) {
420
+ if (__classPrivateFieldGet(this, _SkyVerticalTabComponent__contentRendered, "f")) {
414
421
  // NOTE: Wrapped in a setTimeout here to ensure that everything has completed rendering.
415
422
  setTimeout(() => {
416
- this.updateBreakpointAndResponsiveClass(this.adapterService.getWidth(this.tabContent));
423
+ if (this.tabContent) {
424
+ __classPrivateFieldGet(this, _SkyVerticalTabComponent_instances, "m", _SkyVerticalTabComponent_updateBreakpointAndResponsiveClass).call(this);
425
+ }
417
426
  });
418
427
  }
419
428
  }
420
429
  get contentRendered() {
421
- return this._contentRendered;
430
+ return __classPrivateFieldGet(this, _SkyVerticalTabComponent__contentRendered, "f");
422
431
  }
423
432
  ngOnInit() {
424
- this.isMobile = this.tabsetService.isMobile();
425
- this.changeRef.markForCheck();
426
- this.tabsetService.switchingMobile.subscribe((mobile) => {
433
+ this.isMobile = __classPrivateFieldGet(this, _SkyVerticalTabComponent_tabsetService, "f").isMobile();
434
+ __classPrivateFieldGet(this, _SkyVerticalTabComponent_changeRef, "f").markForCheck();
435
+ __classPrivateFieldGet(this, _SkyVerticalTabComponent_tabsetService, "f").switchingMobile.subscribe((mobile) => {
427
436
  this.isMobile = mobile;
428
- this.changeRef.markForCheck();
437
+ __classPrivateFieldGet(this, _SkyVerticalTabComponent_changeRef, "f").markForCheck();
429
438
  });
430
439
  // Update the breakpoint and responsive class here just as a sanity check since we can not
431
440
  // watch for element resizing.
432
- this.tabsetService.indexChanged
433
- .pipe(takeUntil(this._ngUnsubscribe))
441
+ __classPrivateFieldGet(this, _SkyVerticalTabComponent_tabsetService, "f").indexChanged
442
+ .pipe(takeUntil(__classPrivateFieldGet(this, _SkyVerticalTabComponent_ngUnsubscribe, "f")))
434
443
  .subscribe((index) => {
435
444
  if (this.index === index && this.contentRendered) {
436
- this.updateBreakpointAndResponsiveClass(this.adapterService.getWidth(this.tabContent));
445
+ if (this.tabContent) {
446
+ __classPrivateFieldGet(this, _SkyVerticalTabComponent_instances, "m", _SkyVerticalTabComponent_updateBreakpointAndResponsiveClass).call(this);
447
+ }
437
448
  }
438
449
  });
439
- this.tabsetService.addTab(this);
450
+ __classPrivateFieldGet(this, _SkyVerticalTabComponent_tabsetService, "f").addTab(this);
440
451
  }
441
452
  ngOnDestroy() {
442
- this._mobileSubscription.unsubscribe();
443
- this._ngUnsubscribe.next();
444
- this._ngUnsubscribe.complete();
445
- this.tabsetService.destroyTab(this);
453
+ __classPrivateFieldGet(this, _SkyVerticalTabComponent_mobileSubscription, "f").unsubscribe();
454
+ __classPrivateFieldGet(this, _SkyVerticalTabComponent_ngUnsubscribe, "f").next();
455
+ __classPrivateFieldGet(this, _SkyVerticalTabComponent_ngUnsubscribe, "f").complete();
456
+ __classPrivateFieldGet(this, _SkyVerticalTabComponent_tabsetService, "f").destroyTab(this);
446
457
  }
447
458
  tabIndex() {
448
459
  if (!this.disabled) {
@@ -455,8 +466,8 @@ class SkyVerticalTabComponent {
455
466
  activateTab() {
456
467
  if (!this.disabled) {
457
468
  this.active = true;
458
- this.tabsetService.activateTab(this);
459
- this.changeRef.markForCheck();
469
+ __classPrivateFieldGet(this, _SkyVerticalTabComponent_tabsetService, "f").activateTab(this);
470
+ __classPrivateFieldGet(this, _SkyVerticalTabComponent_changeRef, "f").markForCheck();
460
471
  }
461
472
  }
462
473
  onTabButtonKeyUp(event) {
@@ -475,18 +486,25 @@ class SkyVerticalTabComponent {
475
486
  }
476
487
  }
477
488
  onWindowResize() {
478
- this.updateBreakpointAndResponsiveClass(this.adapterService.getWidth(this.tabContent));
489
+ if (this.tabContent) {
490
+ __classPrivateFieldGet(this, _SkyVerticalTabComponent_instances, "m", _SkyVerticalTabComponent_updateBreakpointAndResponsiveClass).call(this);
491
+ }
479
492
  }
480
493
  tabDeactivated() {
481
- this.changeRef.markForCheck();
482
- }
483
- updateBreakpointAndResponsiveClass(width) {
484
- this.verticalTabMediaQueryService.setBreakpointForWidth(width);
485
- const newBreakpiont = this.verticalTabMediaQueryService.current;
486
- this.adapterService.setResponsiveClass(this.tabContent, newBreakpiont);
487
- this.changeRef.markForCheck();
494
+ __classPrivateFieldGet(this, _SkyVerticalTabComponent_changeRef, "f").markForCheck();
488
495
  }
489
496
  }
497
+ _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_instances = new WeakSet(), _SkyVerticalTabComponent_updateBreakpointAndResponsiveClass = function _SkyVerticalTabComponent_updateBreakpointAndResponsiveClass() {
498
+ if (this.tabContent) {
499
+ const width = __classPrivateFieldGet(this, _SkyVerticalTabComponent_adapterService, "f").getWidth(this.tabContent);
500
+ __classPrivateFieldGet(this, _SkyVerticalTabComponent_verticalTabMediaQueryService, "f").setBreakpointForWidth(width);
501
+ const newBreakpoint = __classPrivateFieldGet(this, _SkyVerticalTabComponent_verticalTabMediaQueryService, "f").current;
502
+ if (newBreakpoint) {
503
+ __classPrivateFieldGet(this, _SkyVerticalTabComponent_adapterService, "f").setResponsiveClass(this.tabContent, newBreakpoint);
504
+ }
505
+ __classPrivateFieldGet(this, _SkyVerticalTabComponent_changeRef, "f").markForCheck();
506
+ }
507
+ };
490
508
  SkyVerticalTabComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.0", ngImport: i0, type: SkyVerticalTabComponent, deps: [{ token: SkyVerticalTabsetAdapterService }, { token: i0.ChangeDetectorRef }, { token: SkyVerticalTabsetService }, { token: SkyVerticalTabMediaQueryService }], target: i0.ɵɵFactoryTarget.Component });
491
509
  SkyVerticalTabComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.0", 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: [
492
510
  SkyVerticalTabMediaQueryService,
@@ -494,7 +512,7 @@ SkyVerticalTabComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0"
494
512
  provide: SkyMediaQueryService,
495
513
  useExisting: SkyVerticalTabMediaQueryService,
496
514
  },
497
- ], 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]=\"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=\"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: i4.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i5.λ4, selector: "sky-icon", inputs: ["icon", "iconType", "size", "fixedWidth", "variant"] }, { kind: "directive", type: i1.λ2, selector: "[skyId]", exportAs: ["skyId"] }, { kind: "component", type: i5.λ10, selector: "sky-status-indicator", inputs: ["indicatorType", "descriptionType", "customDescription"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
515
+ ], 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: i4.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i5.λ4, selector: "sky-icon", inputs: ["icon", "iconType", "size", "fixedWidth", "variant"] }, { kind: "directive", type: i1.λ2, selector: "[skyId]", exportAs: ["skyId"] }, { kind: "component", type: i5.λ10, selector: "sky-status-indicator", inputs: ["indicatorType", "descriptionType", "customDescription"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
498
516
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.0", ngImport: i0, type: SkyVerticalTabComponent, decorators: [{
499
517
  type: Component,
500
518
  args: [{ selector: 'sky-vertical-tab', providers: [
@@ -503,7 +521,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.0", ngImpor
503
521
  provide: SkyMediaQueryService,
504
522
  useExisting: SkyVerticalTabMediaQueryService,
505
523
  },
506
- ], 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]=\"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=\"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"] }]
524
+ ], 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"] }]
507
525
  }], ctorParameters: function () { return [{ type: SkyVerticalTabsetAdapterService }, { type: i0.ChangeDetectorRef }, { type: SkyVerticalTabsetService }, { type: SkyVerticalTabMediaQueryService }]; }, propDecorators: { active: [{
508
526
  type: Input
509
527
  }], ariaControls: [{
@@ -530,67 +548,60 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.0", ngImpor
530
548
  args: ['window:resize']
531
549
  }] } });
532
550
 
551
+ var _SkyVerticalTabsetGroupComponent_ngUnsubscribe, _SkyVerticalTabsetGroupComponent_openBeforeTabsHidden, _SkyVerticalTabsetGroupComponent_tabService, _SkyVerticalTabsetGroupComponent_changeRef;
533
552
  class SkyVerticalTabsetGroupComponent {
534
553
  constructor(tabService, changeRef) {
535
- this.tabService = tabService;
536
- this.changeRef = changeRef;
537
- this.ngUnsubscribe = new Subject();
538
- this.openBeforeTabsHidden = false;
539
- this._open = false;
554
+ _SkyVerticalTabsetGroupComponent_ngUnsubscribe.set(this, new Subject());
555
+ _SkyVerticalTabsetGroupComponent_openBeforeTabsHidden.set(this, false);
556
+ _SkyVerticalTabsetGroupComponent_tabService.set(this, void 0);
557
+ _SkyVerticalTabsetGroupComponent_changeRef.set(this, void 0);
540
558
  this.tabClicked = () => {
541
- this.changeRef.markForCheck();
559
+ __classPrivateFieldGet(this, _SkyVerticalTabsetGroupComponent_changeRef, "f").markForCheck();
542
560
  };
543
561
  this.tabsHidden = () => {
544
562
  // this fixes an animation bug with ngIf when the parent component goes from visible to hidden
545
- this.openBeforeTabsHidden = this.open;
563
+ __classPrivateFieldSet(this, _SkyVerticalTabsetGroupComponent_openBeforeTabsHidden, this.open, "f");
546
564
  this.open = false;
547
- this.changeRef.markForCheck();
565
+ __classPrivateFieldGet(this, _SkyVerticalTabsetGroupComponent_changeRef, "f").markForCheck();
548
566
  };
549
567
  this.tabsShown = () => {
550
- this.open = this.openBeforeTabsHidden;
551
- this.changeRef.markForCheck();
568
+ this.open = __classPrivateFieldGet(this, _SkyVerticalTabsetGroupComponent_openBeforeTabsHidden, "f");
569
+ __classPrivateFieldGet(this, _SkyVerticalTabsetGroupComponent_changeRef, "f").markForCheck();
552
570
  };
553
- }
554
- /**
555
- * Indicates whether the collapsible group is expanded.
556
- * @default false
557
- */
558
- set open(value) {
559
- this._open = value;
560
- }
561
- get open() {
562
- return !this.disabled && this._open;
571
+ __classPrivateFieldSet(this, _SkyVerticalTabsetGroupComponent_tabService, tabService, "f");
572
+ __classPrivateFieldSet(this, _SkyVerticalTabsetGroupComponent_changeRef, changeRef, "f");
563
573
  }
564
574
  ngOnInit() {
565
- this.tabService.hidingTabs
566
- .pipe(takeUntil(this.ngUnsubscribe))
575
+ __classPrivateFieldGet(this, _SkyVerticalTabsetGroupComponent_tabService, "f").hidingTabs
576
+ .pipe(takeUntil(__classPrivateFieldGet(this, _SkyVerticalTabsetGroupComponent_ngUnsubscribe, "f")))
567
577
  .subscribe(this.tabsHidden);
568
- this.tabService.showingTabs
569
- .pipe(takeUntil(this.ngUnsubscribe))
578
+ __classPrivateFieldGet(this, _SkyVerticalTabsetGroupComponent_tabService, "f").showingTabs
579
+ .pipe(takeUntil(__classPrivateFieldGet(this, _SkyVerticalTabsetGroupComponent_ngUnsubscribe, "f")))
570
580
  .subscribe(this.tabsShown);
571
- this.tabService.tabClicked
572
- .pipe(takeUntil(this.ngUnsubscribe))
581
+ __classPrivateFieldGet(this, _SkyVerticalTabsetGroupComponent_tabService, "f").tabClicked
582
+ .pipe(takeUntil(__classPrivateFieldGet(this, _SkyVerticalTabsetGroupComponent_ngUnsubscribe, "f")))
573
583
  .subscribe(this.tabClicked);
574
584
  }
575
585
  ngOnDestroy() {
576
- this.ngUnsubscribe.next();
577
- this.ngUnsubscribe.complete();
586
+ __classPrivateFieldGet(this, _SkyVerticalTabsetGroupComponent_ngUnsubscribe, "f").next();
587
+ __classPrivateFieldGet(this, _SkyVerticalTabsetGroupComponent_ngUnsubscribe, "f").complete();
578
588
  }
579
589
  toggleMenuOpen() {
580
590
  if (!this.disabled) {
581
591
  this.open = !this.open;
582
592
  }
583
- this.changeRef.markForCheck();
593
+ __classPrivateFieldGet(this, _SkyVerticalTabsetGroupComponent_changeRef, "f").markForCheck();
584
594
  }
585
595
  subMenuOpen() {
586
- return this.tabs && this.tabs.find((t) => t.active) !== undefined;
596
+ return !!this.tabs && this.tabs.find((t) => !!t.active) !== undefined;
587
597
  }
588
598
  }
599
+ _SkyVerticalTabsetGroupComponent_ngUnsubscribe = new WeakMap(), _SkyVerticalTabsetGroupComponent_openBeforeTabsHidden = new WeakMap(), _SkyVerticalTabsetGroupComponent_tabService = new WeakMap(), _SkyVerticalTabsetGroupComponent_changeRef = new WeakMap();
589
600
  SkyVerticalTabsetGroupComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.0", ngImport: i0, type: SkyVerticalTabsetGroupComponent, deps: [{ token: SkyVerticalTabsetService }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
590
- SkyVerticalTabsetGroupComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.0", type: SkyVerticalTabsetGroupComponent, selector: "sky-vertical-tabset-group", inputs: { disabled: "disabled", groupHeading: "groupHeading", open: "open" }, queries: [{ propertyName: "tabs", predicate: SkyVerticalTabComponent }], ngImport: i0, template: "<div class=\"sky-vertical-tabset-group\">\n <!-- [ngClass] includes font classes for both modern and default styles -->\n <div\n class=\"sky-vertical-tabset-group-header\"\n [ngClass]=\"{\n 'sky-vertical-tabset-group-header-sub-open sky-font-emphasized sky-emphasized':\n subMenuOpen(),\n 'sky-font-deemphasized': disabled,\n 'sky-deemphasized': disabled,\n 'sky-vertical-tabset-disabled': disabled\n }\"\n [tabIndex]=\"-1\"\n >\n <button\n class=\"sky-padding-even-default\"\n type=\"button\"\n skyId\n [attr.aria-controls]=\"groupContent.id\"\n [attr.aria-expanded]=\"open\"\n (click)=\"toggleMenuOpen()\"\n #groupHeadingButton\n >\n {{ groupHeading }}\n <sky-expansion-indicator\n class=\"sky-vertical-tabset-group-expansion-indicator\"\n [direction]=\"open ? 'up' : 'down'\"\n >\n </sky-expansion-indicator>\n </button>\n </div>\n <div\n class=\"sky-vertical-tabset-group-content\"\n role=\"region\"\n skyId\n [attr.labelledby]=\"groupHeadingButton.id\"\n [@skyAnimationSlide]=\"open ? 'down' : 'up'\"\n #groupContent\n >\n <ng-content></ng-content>\n </div>\n</div>\n", styles: [".sky-vertical-tabset-group{border-bottom:1px solid #e2e3e4;margin:5px 0 5px 5px}.sky-vertical-tabset-group-header button{cursor:pointer;display:flex;justify-content:space-between;border:none;width:100%;text-align:left;background:none}.sky-vertical-tabset-group-content{overflow:hidden;border-top:1px solid #e2e3e4}:host ::ng-deep .sky-vertical-tabset-group-expansion-indicator>button{font-size:14px!important}.sky-vertical-tabset-disabled{cursor:not-allowed;pointer-events:none}:host-context(.sky-theme-modern) .sky-vertical-tabset-group{border:none;margin:10px 0}:host-context(.sky-theme-modern) .sky-vertical-tabset-group-content{border:none;padding-left:25px}:host-context(.sky-theme-modern) .sky-vertical-tabset-group-header{position:relative}:host-context(.sky-theme-modern) .sky-vertical-tabset-group-expansion-indicator{position:absolute;top:6px;right:5px}.sky-theme-modern .sky-vertical-tabset-group{border:none;margin:10px 0}.sky-theme-modern .sky-vertical-tabset-group-content{border:none;padding-left:25px}.sky-theme-modern .sky-vertical-tabset-group-header{position:relative}.sky-theme-modern .sky-vertical-tabset-group-expansion-indicator{position:absolute;top:6px;right:5px}\n"], dependencies: [{ kind: "directive", type: i4.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.λ2, selector: "[skyId]", exportAs: ["skyId"] }, { kind: "component", type: i5.λ15, selector: "sky-expansion-indicator", inputs: ["direction"] }], animations: [skyAnimationSlide], changeDetection: i0.ChangeDetectionStrategy.OnPush });
601
+ SkyVerticalTabsetGroupComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.0", type: SkyVerticalTabsetGroupComponent, selector: "sky-vertical-tabset-group", inputs: { disabled: "disabled", groupHeading: "groupHeading", open: "open" }, queries: [{ propertyName: "tabs", predicate: SkyVerticalTabComponent }], ngImport: i0, template: "<div class=\"sky-vertical-tabset-group\">\n <!-- [ngClass] includes font classes for both modern and default styles -->\n <div\n class=\"sky-vertical-tabset-group-header\"\n [ngClass]=\"{\n 'sky-vertical-tabset-group-header-sub-open sky-font-emphasized sky-emphasized':\n subMenuOpen(),\n 'sky-font-deemphasized': disabled,\n 'sky-deemphasized': disabled,\n 'sky-vertical-tabset-disabled': disabled\n }\"\n [tabIndex]=\"-1\"\n >\n <button\n class=\"sky-padding-even-default\"\n type=\"button\"\n skyId\n [attr.aria-controls]=\"groupContent.id\"\n [attr.aria-expanded]=\"!disabled && open\"\n (click)=\"toggleMenuOpen()\"\n #groupHeadingButton\n >\n {{ groupHeading }}\n <sky-expansion-indicator\n class=\"sky-vertical-tabset-group-expansion-indicator\"\n [direction]=\"!disabled && open ? 'up' : 'down'\"\n >\n </sky-expansion-indicator>\n </button>\n </div>\n <div\n class=\"sky-vertical-tabset-group-content\"\n skyId\n [attr.labelledby]=\"groupHeadingButton.id\"\n [@skyAnimationSlide]=\"!disabled && open ? 'down' : 'up'\"\n #groupContent\n >\n <ng-content></ng-content>\n </div>\n</div>\n", styles: [".sky-vertical-tabset-group{border-bottom:1px solid #e2e3e4;margin:5px 0 5px 5px}.sky-vertical-tabset-group-header button{cursor:pointer;display:flex;justify-content:space-between;border:none;width:100%;text-align:left;background:none}.sky-vertical-tabset-group-content{overflow:hidden;border-top:1px solid #e2e3e4}:host ::ng-deep .sky-vertical-tabset-group-expansion-indicator>button{font-size:14px!important}.sky-vertical-tabset-disabled{cursor:not-allowed;pointer-events:none}:host-context(.sky-theme-modern) .sky-vertical-tabset-group{border:none;margin:10px 0}:host-context(.sky-theme-modern) .sky-vertical-tabset-group-content{border:none;padding-left:25px}:host-context(.sky-theme-modern) .sky-vertical-tabset-group-header{position:relative}:host-context(.sky-theme-modern) .sky-vertical-tabset-group-expansion-indicator{position:absolute;top:6px;right:5px}.sky-theme-modern .sky-vertical-tabset-group{border:none;margin:10px 0}.sky-theme-modern .sky-vertical-tabset-group-content{border:none;padding-left:25px}.sky-theme-modern .sky-vertical-tabset-group-header{position:relative}.sky-theme-modern .sky-vertical-tabset-group-expansion-indicator{position:absolute;top:6px;right:5px}\n"], dependencies: [{ kind: "directive", type: i4.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.λ2, selector: "[skyId]", exportAs: ["skyId"] }, { kind: "component", type: i5.λ15, selector: "sky-expansion-indicator", inputs: ["direction"] }], animations: [skyAnimationSlide], changeDetection: i0.ChangeDetectionStrategy.OnPush });
591
602
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.0", ngImport: i0, type: SkyVerticalTabsetGroupComponent, decorators: [{
592
603
  type: Component,
593
- args: [{ selector: 'sky-vertical-tabset-group', changeDetection: ChangeDetectionStrategy.OnPush, animations: [skyAnimationSlide], template: "<div class=\"sky-vertical-tabset-group\">\n <!-- [ngClass] includes font classes for both modern and default styles -->\n <div\n class=\"sky-vertical-tabset-group-header\"\n [ngClass]=\"{\n 'sky-vertical-tabset-group-header-sub-open sky-font-emphasized sky-emphasized':\n subMenuOpen(),\n 'sky-font-deemphasized': disabled,\n 'sky-deemphasized': disabled,\n 'sky-vertical-tabset-disabled': disabled\n }\"\n [tabIndex]=\"-1\"\n >\n <button\n class=\"sky-padding-even-default\"\n type=\"button\"\n skyId\n [attr.aria-controls]=\"groupContent.id\"\n [attr.aria-expanded]=\"open\"\n (click)=\"toggleMenuOpen()\"\n #groupHeadingButton\n >\n {{ groupHeading }}\n <sky-expansion-indicator\n class=\"sky-vertical-tabset-group-expansion-indicator\"\n [direction]=\"open ? 'up' : 'down'\"\n >\n </sky-expansion-indicator>\n </button>\n </div>\n <div\n class=\"sky-vertical-tabset-group-content\"\n role=\"region\"\n skyId\n [attr.labelledby]=\"groupHeadingButton.id\"\n [@skyAnimationSlide]=\"open ? 'down' : 'up'\"\n #groupContent\n >\n <ng-content></ng-content>\n </div>\n</div>\n", styles: [".sky-vertical-tabset-group{border-bottom:1px solid #e2e3e4;margin:5px 0 5px 5px}.sky-vertical-tabset-group-header button{cursor:pointer;display:flex;justify-content:space-between;border:none;width:100%;text-align:left;background:none}.sky-vertical-tabset-group-content{overflow:hidden;border-top:1px solid #e2e3e4}:host ::ng-deep .sky-vertical-tabset-group-expansion-indicator>button{font-size:14px!important}.sky-vertical-tabset-disabled{cursor:not-allowed;pointer-events:none}:host-context(.sky-theme-modern) .sky-vertical-tabset-group{border:none;margin:10px 0}:host-context(.sky-theme-modern) .sky-vertical-tabset-group-content{border:none;padding-left:25px}:host-context(.sky-theme-modern) .sky-vertical-tabset-group-header{position:relative}:host-context(.sky-theme-modern) .sky-vertical-tabset-group-expansion-indicator{position:absolute;top:6px;right:5px}.sky-theme-modern .sky-vertical-tabset-group{border:none;margin:10px 0}.sky-theme-modern .sky-vertical-tabset-group-content{border:none;padding-left:25px}.sky-theme-modern .sky-vertical-tabset-group-header{position:relative}.sky-theme-modern .sky-vertical-tabset-group-expansion-indicator{position:absolute;top:6px;right:5px}\n"] }]
604
+ args: [{ selector: 'sky-vertical-tabset-group', changeDetection: ChangeDetectionStrategy.OnPush, animations: [skyAnimationSlide], template: "<div class=\"sky-vertical-tabset-group\">\n <!-- [ngClass] includes font classes for both modern and default styles -->\n <div\n class=\"sky-vertical-tabset-group-header\"\n [ngClass]=\"{\n 'sky-vertical-tabset-group-header-sub-open sky-font-emphasized sky-emphasized':\n subMenuOpen(),\n 'sky-font-deemphasized': disabled,\n 'sky-deemphasized': disabled,\n 'sky-vertical-tabset-disabled': disabled\n }\"\n [tabIndex]=\"-1\"\n >\n <button\n class=\"sky-padding-even-default\"\n type=\"button\"\n skyId\n [attr.aria-controls]=\"groupContent.id\"\n [attr.aria-expanded]=\"!disabled && open\"\n (click)=\"toggleMenuOpen()\"\n #groupHeadingButton\n >\n {{ groupHeading }}\n <sky-expansion-indicator\n class=\"sky-vertical-tabset-group-expansion-indicator\"\n [direction]=\"!disabled && open ? 'up' : 'down'\"\n >\n </sky-expansion-indicator>\n </button>\n </div>\n <div\n class=\"sky-vertical-tabset-group-content\"\n skyId\n [attr.labelledby]=\"groupHeadingButton.id\"\n [@skyAnimationSlide]=\"!disabled && open ? 'down' : 'up'\"\n #groupContent\n >\n <ng-content></ng-content>\n </div>\n</div>\n", styles: [".sky-vertical-tabset-group{border-bottom:1px solid #e2e3e4;margin:5px 0 5px 5px}.sky-vertical-tabset-group-header button{cursor:pointer;display:flex;justify-content:space-between;border:none;width:100%;text-align:left;background:none}.sky-vertical-tabset-group-content{overflow:hidden;border-top:1px solid #e2e3e4}:host ::ng-deep .sky-vertical-tabset-group-expansion-indicator>button{font-size:14px!important}.sky-vertical-tabset-disabled{cursor:not-allowed;pointer-events:none}:host-context(.sky-theme-modern) .sky-vertical-tabset-group{border:none;margin:10px 0}:host-context(.sky-theme-modern) .sky-vertical-tabset-group-content{border:none;padding-left:25px}:host-context(.sky-theme-modern) .sky-vertical-tabset-group-header{position:relative}:host-context(.sky-theme-modern) .sky-vertical-tabset-group-expansion-indicator{position:absolute;top:6px;right:5px}.sky-theme-modern .sky-vertical-tabset-group{border:none;margin:10px 0}.sky-theme-modern .sky-vertical-tabset-group-content{border:none;padding-left:25px}.sky-theme-modern .sky-vertical-tabset-group-header{position:relative}.sky-theme-modern .sky-vertical-tabset-group-expansion-indicator{position:absolute;top:6px;right:5px}\n"] }]
594
605
  }], ctorParameters: function () { return [{ type: SkyVerticalTabsetService }, { type: i0.ChangeDetectorRef }]; }, propDecorators: { disabled: [{
595
606
  type: Input
596
607
  }], groupHeading: [{
@@ -602,12 +613,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.0", ngImpor
602
613
  args: [SkyVerticalTabComponent]
603
614
  }] } });
604
615
 
616
+ var _SkyVerticalTabsetComponent_ngUnsubscribe, _SkyVerticalTabsetComponent__ariaRole, _SkyVerticalTabsetComponent_resources, _SkyVerticalTabsetComponent_changeRef;
605
617
  class SkyVerticalTabsetComponent {
606
618
  constructor(adapterService, tabService, resources, changeRef) {
607
619
  this.adapterService = adapterService;
608
620
  this.tabService = tabService;
609
- this.resources = resources;
610
- this.changeRef = changeRef;
611
621
  /**
612
622
  * Indicates whether the vertical tabset loads tab content during initialization so that it
613
623
  * displays content without moving around elements in the content container.
@@ -620,7 +630,12 @@ class SkyVerticalTabsetComponent {
620
630
  */
621
631
  this.activeChange = new EventEmitter();
622
632
  this.isMobile = false;
623
- this._ngUnsubscribe = new Subject();
633
+ _SkyVerticalTabsetComponent_ngUnsubscribe.set(this, new Subject());
634
+ _SkyVerticalTabsetComponent__ariaRole.set(this, 'tablist');
635
+ _SkyVerticalTabsetComponent_resources.set(this, void 0);
636
+ _SkyVerticalTabsetComponent_changeRef.set(this, void 0);
637
+ __classPrivateFieldSet(this, _SkyVerticalTabsetComponent_resources, resources, "f");
638
+ __classPrivateFieldSet(this, _SkyVerticalTabsetComponent_changeRef, changeRef, "f");
624
639
  }
625
640
  /**
626
641
  * Specifies an ARIA role for the vertical tabset
@@ -633,38 +648,35 @@ class SkyVerticalTabsetComponent {
633
648
  * In the next major version, this property will be automatically set to `tablist`.
634
649
  */
635
650
  get ariaRole() {
636
- if (this.isMobile) {
637
- return undefined;
638
- }
639
- return this._ariaRole || 'tablist';
651
+ return __classPrivateFieldGet(this, _SkyVerticalTabsetComponent__ariaRole, "f");
640
652
  }
641
653
  set ariaRole(value) {
642
- this._ariaRole = value;
654
+ __classPrivateFieldSet(this, _SkyVerticalTabsetComponent__ariaRole, value ?? 'tablist', "f");
643
655
  }
644
656
  ngOnInit() {
645
657
  this.tabService.maintainTabContent = this.maintainTabContent;
646
658
  this.tabService.indexChanged
647
- .pipe(takeUntil(this._ngUnsubscribe))
659
+ .pipe(takeUntil(__classPrivateFieldGet(this, _SkyVerticalTabsetComponent_ngUnsubscribe, "f")))
648
660
  .subscribe((index) => {
649
661
  this.activeChange.emit(index);
650
662
  if (this.contentWrapper) {
651
663
  this.adapterService.scrollToContentTop(this.contentWrapper);
652
664
  }
653
- this.changeRef.markForCheck();
665
+ __classPrivateFieldGet(this, _SkyVerticalTabsetComponent_changeRef, "f").markForCheck();
654
666
  });
655
667
  this.tabService.switchingMobile
656
- .pipe(takeUntil(this._ngUnsubscribe))
668
+ .pipe(takeUntil(__classPrivateFieldGet(this, _SkyVerticalTabsetComponent_ngUnsubscribe, "f")))
657
669
  .subscribe((mobile) => {
658
670
  this.isMobile = mobile;
659
- this.changeRef.markForCheck();
671
+ __classPrivateFieldGet(this, _SkyVerticalTabsetComponent_changeRef, "f").markForCheck();
660
672
  });
661
673
  if (this.tabService.isMobile()) {
662
674
  this.isMobile = true;
663
675
  this.tabService.animationContentVisibleState = VISIBLE_STATE;
664
- this.changeRef.markForCheck();
676
+ __classPrivateFieldGet(this, _SkyVerticalTabsetComponent_changeRef, "f").markForCheck();
665
677
  }
666
678
  if (!this.showTabsText) {
667
- this.resources
679
+ __classPrivateFieldGet(this, _SkyVerticalTabsetComponent_resources, "f")
668
680
  .getString('skyux_vertical_tabs_show_tabs_text')
669
681
  .pipe(take(1))
670
682
  .subscribe((resource) => {
@@ -681,12 +693,13 @@ class SkyVerticalTabsetComponent {
681
693
  this.tabService.updateContent();
682
694
  }
683
695
  ngOnDestroy() {
684
- this._ngUnsubscribe.next();
685
- this._ngUnsubscribe.complete();
696
+ __classPrivateFieldGet(this, _SkyVerticalTabsetComponent_ngUnsubscribe, "f").next();
697
+ __classPrivateFieldGet(this, _SkyVerticalTabsetComponent_ngUnsubscribe, "f").complete();
686
698
  }
687
699
  }
700
+ _SkyVerticalTabsetComponent_ngUnsubscribe = new WeakMap(), _SkyVerticalTabsetComponent__ariaRole = new WeakMap(), _SkyVerticalTabsetComponent_resources = new WeakMap(), _SkyVerticalTabsetComponent_changeRef = new WeakMap();
688
701
  SkyVerticalTabsetComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.0", ngImport: i0, type: SkyVerticalTabsetComponent, deps: [{ token: SkyVerticalTabsetAdapterService }, { token: SkyVerticalTabsetService }, { token: i3.SkyLibResourcesService }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
689
- SkyVerticalTabsetComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.0", type: SkyVerticalTabsetComponent, selector: "sky-vertical-tabset", inputs: { showTabsText: "showTabsText", ariaLabel: "ariaLabel", ariaLabelledBy: "ariaLabelledBy", ariaRole: "ariaRole", maintainTabContent: "maintainTabContent" }, outputs: { activeChange: "activeChange" }, providers: [SkyVerticalTabsetService], viewQueries: [{ propertyName: "tabGroups", first: true, predicate: ["groupContainerWrapper"], descendants: true }, { propertyName: "content", first: true, predicate: ["skySideContent"], descendants: true }, { propertyName: "contentWrapper", first: true, predicate: ["contentContainerWrapper"], descendants: true }], ngImport: i0, template: "<div class=\"sky-vertical-tabset\" (window:resize)=\"tabService.updateContent()\">\n <div\n *ngIf=\"maintainTabContent || tabService.tabsVisible()\"\n aria-orientation=\"vertical\"\n class=\"sky-vertical-tabset-group-container\"\n [ngClass]=\"{ 'sky-vertical-tabset-hidden': !tabService.tabsVisible() }\"\n [attr.aria-label]=\"ariaLabel\"\n [attr.aria-labelledby]=\"ariaLabelledBy\"\n [attr.role]=\"ariaRole\"\n [@tabGroupEnter]=\"tabService.animationTabsVisibleState\"\n #groupContainerWrapper\n >\n <ng-content></ng-content>\n </div>\n <div\n *ngIf=\"maintainTabContent || tabService.contentVisible()\"\n class=\"sky-vertical-tabset-content\"\n [ngClass]=\"{\n 'sky-vertical-tabset-content-hidden': !tabService.contentVisible()\n }\"\n [@contentEnter]=\"tabService.animationContentVisibleState\"\n #contentContainerWrapper\n >\n <div #skySideContent></div>\n <button\n *ngIf=\"!tabService.tabsVisible()\"\n (click)=\"tabService.showTabs()\"\n class=\"sky-btn sky-btn-primary sky-vertical-tabset-show-tabs-btn\"\n >\n <sky-icon icon=\"chevron-left\"></sky-icon>\n {{ showTabsText }}\n </button>\n </div>\n</div>\n", styles: [":host .sky-vertical-tabset{display:block;height:auto}:host .sky-vertical-tabset-group-container{border-right:none}:host-context(.sky-responsive-container-xs) .sky-vertical-tabset,:host-context(.sky-responsive-container-sm) .sky-vertical-tabset,:host-context(.sky-responsive-container-md) .sky-vertical-tabset,:host-context(.sky-responsive-container-lg) .sky-vertical-tabset{display:block;height:auto}:host-context(.sky-responsive-container-xs) .sky-vertical-tabset-group-container,:host-context(.sky-responsive-container-sm) .sky-vertical-tabset-group-container,:host-context(.sky-responsive-container-md) .sky-vertical-tabset-group-container,:host-context(.sky-responsive-container-lg) .sky-vertical-tabset-group-container{border-right:none}@media (min-width: 768px){:host .sky-vertical-tabset{display:flex;height:100%}:host .sky-vertical-tabset-group-container{border-right:1px solid #cdcfd2}}:host-context(.sky-responsive-container-sm) .sky-vertical-tabset,:host-context(.sky-responsive-container-md) .sky-vertical-tabset,:host-context(.sky-responsive-container-lg) .sky-vertical-tabset{display:flex;height:100%}:host-context(.sky-responsive-container-sm) .sky-vertical-tabset-group-container,:host-context(.sky-responsive-container-md) .sky-vertical-tabset-group-container,:host-context(.sky-responsive-container-lg) .sky-vertical-tabset-group-container{border-right:1px solid #cdcfd2}.sky-vertical-tabset-hidden{display:none}.sky-vertical-tabset-content{margin:10px 0 0 10px;flex-basis:75%;overflow-y:auto}.sky-vertical-tabset-content-hidden{display:none}.sky-vertical-tabset-show-tabs-btn{margin-top:10px}.sky-vertical-tabset-group-container{flex-basis:25%;overflow-y:auto}:host-context(.sky-theme-modern) .sky-vertical-tabset-content{margin:15px}@media (min-width: 768px){:host-context(.sky-theme-modern) :host .sky-vertical-tabset-content{margin:20px 30px}:host-context(.sky-theme-modern) :host .sky-vertical-tabset-group-container{border-right:1px solid #d2d2d2}}:host-context(.sky-theme-modern) :host-context(.sky-responsive-container-sm) .sky-vertical-tabset-content,:host-context(.sky-theme-modern) :host-context(.sky-responsive-container-md) .sky-vertical-tabset-content,:host-context(.sky-theme-modern) :host-context(.sky-responsive-container-lg) .sky-vertical-tabset-content{margin:20px 30px}:host-context(.sky-theme-modern) :host-context(.sky-responsive-container-sm) .sky-vertical-tabset-group-container,:host-context(.sky-theme-modern) :host-context(.sky-responsive-container-md) .sky-vertical-tabset-group-container,:host-context(.sky-theme-modern) :host-context(.sky-responsive-container-lg) .sky-vertical-tabset-group-container{border-right:1px solid #d2d2d2}.sky-theme-modern .sky-vertical-tabset-content{margin:15px}@media (min-width: 768px){.sky-theme-modern :host .sky-vertical-tabset-content{margin:20px 30px}.sky-theme-modern :host .sky-vertical-tabset-group-container{border-right:1px solid #d2d2d2}}.sky-theme-modern :host-context(.sky-responsive-container-sm) .sky-vertical-tabset-content,.sky-theme-modern :host-context(.sky-responsive-container-md) .sky-vertical-tabset-content,.sky-theme-modern :host-context(.sky-responsive-container-lg) .sky-vertical-tabset-content{margin:20px 30px}.sky-theme-modern :host-context(.sky-responsive-container-sm) .sky-vertical-tabset-group-container,.sky-theme-modern :host-context(.sky-responsive-container-md) .sky-vertical-tabset-group-container,.sky-theme-modern :host-context(.sky-responsive-container-lg) .sky-vertical-tabset-group-container{border-right:1px solid #d2d2d2}\n"], dependencies: [{ kind: "directive", type: i4.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i5.λ4, selector: "sky-icon", inputs: ["icon", "iconType", "size", "fixedWidth", "variant"] }], animations: [
702
+ SkyVerticalTabsetComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.0", type: SkyVerticalTabsetComponent, selector: "sky-vertical-tabset", inputs: { showTabsText: "showTabsText", ariaLabel: "ariaLabel", ariaLabelledBy: "ariaLabelledBy", ariaRole: "ariaRole", maintainTabContent: "maintainTabContent" }, outputs: { activeChange: "activeChange" }, providers: [SkyVerticalTabsetService], viewQueries: [{ propertyName: "tabGroups", first: true, predicate: ["groupContainerWrapper"], descendants: true }, { propertyName: "content", first: true, predicate: ["skySideContent"], descendants: true }, { propertyName: "contentWrapper", first: true, predicate: ["contentContainerWrapper"], descendants: true }], ngImport: i0, template: "<div class=\"sky-vertical-tabset\" (window:resize)=\"tabService.updateContent()\">\n <div\n *ngIf=\"maintainTabContent || tabService.tabsVisible()\"\n aria-orientation=\"vertical\"\n class=\"sky-vertical-tabset-group-container\"\n [ngClass]=\"{ 'sky-vertical-tabset-hidden': !tabService.tabsVisible() }\"\n [attr.aria-label]=\"ariaLabel\"\n [attr.aria-labelledby]=\"ariaLabelledBy\"\n [attr.role]=\"isMobile ? undefined : ariaRole\"\n [@tabGroupEnter]=\"tabService.animationTabsVisibleState\"\n #groupContainerWrapper\n >\n <ng-content></ng-content>\n </div>\n <div\n *ngIf=\"maintainTabContent || tabService.contentVisible()\"\n class=\"sky-vertical-tabset-content\"\n [ngClass]=\"{\n 'sky-vertical-tabset-content-hidden': !tabService.contentVisible()\n }\"\n [@contentEnter]=\"tabService.animationContentVisibleState\"\n #contentContainerWrapper\n >\n <div #skySideContent></div>\n <button\n *ngIf=\"!tabService.tabsVisible()\"\n (click)=\"tabService.showTabs()\"\n class=\"sky-btn sky-btn-primary sky-vertical-tabset-show-tabs-btn\"\n >\n <sky-icon icon=\"chevron-left\"></sky-icon>\n {{ showTabsText }}\n </button>\n </div>\n</div>\n", styles: [":host .sky-vertical-tabset{display:block;height:auto}:host .sky-vertical-tabset-group-container{border-right:none}:host-context(.sky-responsive-container-xs) .sky-vertical-tabset,:host-context(.sky-responsive-container-sm) .sky-vertical-tabset,:host-context(.sky-responsive-container-md) .sky-vertical-tabset,:host-context(.sky-responsive-container-lg) .sky-vertical-tabset{display:block;height:auto}:host-context(.sky-responsive-container-xs) .sky-vertical-tabset-group-container,:host-context(.sky-responsive-container-sm) .sky-vertical-tabset-group-container,:host-context(.sky-responsive-container-md) .sky-vertical-tabset-group-container,:host-context(.sky-responsive-container-lg) .sky-vertical-tabset-group-container{border-right:none}@media (min-width: 768px){:host .sky-vertical-tabset{display:flex;height:100%}:host .sky-vertical-tabset-group-container{border-right:1px solid #cdcfd2}}:host-context(.sky-responsive-container-sm) .sky-vertical-tabset,:host-context(.sky-responsive-container-md) .sky-vertical-tabset,:host-context(.sky-responsive-container-lg) .sky-vertical-tabset{display:flex;height:100%}:host-context(.sky-responsive-container-sm) .sky-vertical-tabset-group-container,:host-context(.sky-responsive-container-md) .sky-vertical-tabset-group-container,:host-context(.sky-responsive-container-lg) .sky-vertical-tabset-group-container{border-right:1px solid #cdcfd2}.sky-vertical-tabset-hidden{display:none}.sky-vertical-tabset-content{margin:10px 0 0 10px;flex-basis:75%;overflow-y:auto}.sky-vertical-tabset-content-hidden{display:none}.sky-vertical-tabset-show-tabs-btn{margin-top:10px}.sky-vertical-tabset-group-container{flex-basis:25%;overflow-y:auto}:host-context(sky-modal-content)>.sky-vertical-tabset{margin:-15px}:host-context(.sky-theme-modern) .sky-vertical-tabset-content{margin:15px}@media (min-width: 768px){:host-context(.sky-theme-modern) :host .sky-vertical-tabset-content{margin:20px 30px}:host-context(.sky-theme-modern) :host .sky-vertical-tabset-group-container{border-right:1px solid #d2d2d2}}:host-context(.sky-theme-modern) :host-context(.sky-responsive-container-sm) .sky-vertical-tabset-content,:host-context(.sky-theme-modern) :host-context(.sky-responsive-container-md) .sky-vertical-tabset-content,:host-context(.sky-theme-modern) :host-context(.sky-responsive-container-lg) .sky-vertical-tabset-content{margin:20px 30px}:host-context(.sky-theme-modern) :host-context(.sky-responsive-container-sm) .sky-vertical-tabset-group-container,:host-context(.sky-theme-modern) :host-context(.sky-responsive-container-md) .sky-vertical-tabset-group-container,:host-context(.sky-theme-modern) :host-context(.sky-responsive-container-lg) .sky-vertical-tabset-group-container{border-right:1px solid #d2d2d2}.sky-theme-modern .sky-vertical-tabset-content{margin:15px}@media (min-width: 768px){.sky-theme-modern :host .sky-vertical-tabset-content{margin:20px 30px}.sky-theme-modern :host .sky-vertical-tabset-group-container{border-right:1px solid #d2d2d2}}.sky-theme-modern :host-context(.sky-responsive-container-sm) .sky-vertical-tabset-content,.sky-theme-modern :host-context(.sky-responsive-container-md) .sky-vertical-tabset-content,.sky-theme-modern :host-context(.sky-responsive-container-lg) .sky-vertical-tabset-content{margin:20px 30px}.sky-theme-modern :host-context(.sky-responsive-container-sm) .sky-vertical-tabset-group-container,.sky-theme-modern :host-context(.sky-responsive-container-md) .sky-vertical-tabset-group-container,.sky-theme-modern :host-context(.sky-responsive-container-lg) .sky-vertical-tabset-group-container{border-right:1px solid #d2d2d2}\n"], dependencies: [{ kind: "directive", type: i4.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i5.λ4, selector: "sky-icon", inputs: ["icon", "iconType", "size", "fixedWidth", "variant"] }], animations: [
690
703
  trigger('tabGroupEnter', [
691
704
  transition(`${HIDDEN_STATE} => ${VISIBLE_STATE}`, [
692
705
  style({ transform: 'translate(-100%)' }),
@@ -715,7 +728,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.0", ngImpor
715
728
  animate('150ms ease-in'),
716
729
  ]),
717
730
  ]),
718
- ], template: "<div class=\"sky-vertical-tabset\" (window:resize)=\"tabService.updateContent()\">\n <div\n *ngIf=\"maintainTabContent || tabService.tabsVisible()\"\n aria-orientation=\"vertical\"\n class=\"sky-vertical-tabset-group-container\"\n [ngClass]=\"{ 'sky-vertical-tabset-hidden': !tabService.tabsVisible() }\"\n [attr.aria-label]=\"ariaLabel\"\n [attr.aria-labelledby]=\"ariaLabelledBy\"\n [attr.role]=\"ariaRole\"\n [@tabGroupEnter]=\"tabService.animationTabsVisibleState\"\n #groupContainerWrapper\n >\n <ng-content></ng-content>\n </div>\n <div\n *ngIf=\"maintainTabContent || tabService.contentVisible()\"\n class=\"sky-vertical-tabset-content\"\n [ngClass]=\"{\n 'sky-vertical-tabset-content-hidden': !tabService.contentVisible()\n }\"\n [@contentEnter]=\"tabService.animationContentVisibleState\"\n #contentContainerWrapper\n >\n <div #skySideContent></div>\n <button\n *ngIf=\"!tabService.tabsVisible()\"\n (click)=\"tabService.showTabs()\"\n class=\"sky-btn sky-btn-primary sky-vertical-tabset-show-tabs-btn\"\n >\n <sky-icon icon=\"chevron-left\"></sky-icon>\n {{ showTabsText }}\n </button>\n </div>\n</div>\n", styles: [":host .sky-vertical-tabset{display:block;height:auto}:host .sky-vertical-tabset-group-container{border-right:none}:host-context(.sky-responsive-container-xs) .sky-vertical-tabset,:host-context(.sky-responsive-container-sm) .sky-vertical-tabset,:host-context(.sky-responsive-container-md) .sky-vertical-tabset,:host-context(.sky-responsive-container-lg) .sky-vertical-tabset{display:block;height:auto}:host-context(.sky-responsive-container-xs) .sky-vertical-tabset-group-container,:host-context(.sky-responsive-container-sm) .sky-vertical-tabset-group-container,:host-context(.sky-responsive-container-md) .sky-vertical-tabset-group-container,:host-context(.sky-responsive-container-lg) .sky-vertical-tabset-group-container{border-right:none}@media (min-width: 768px){:host .sky-vertical-tabset{display:flex;height:100%}:host .sky-vertical-tabset-group-container{border-right:1px solid #cdcfd2}}:host-context(.sky-responsive-container-sm) .sky-vertical-tabset,:host-context(.sky-responsive-container-md) .sky-vertical-tabset,:host-context(.sky-responsive-container-lg) .sky-vertical-tabset{display:flex;height:100%}:host-context(.sky-responsive-container-sm) .sky-vertical-tabset-group-container,:host-context(.sky-responsive-container-md) .sky-vertical-tabset-group-container,:host-context(.sky-responsive-container-lg) .sky-vertical-tabset-group-container{border-right:1px solid #cdcfd2}.sky-vertical-tabset-hidden{display:none}.sky-vertical-tabset-content{margin:10px 0 0 10px;flex-basis:75%;overflow-y:auto}.sky-vertical-tabset-content-hidden{display:none}.sky-vertical-tabset-show-tabs-btn{margin-top:10px}.sky-vertical-tabset-group-container{flex-basis:25%;overflow-y:auto}:host-context(.sky-theme-modern) .sky-vertical-tabset-content{margin:15px}@media (min-width: 768px){:host-context(.sky-theme-modern) :host .sky-vertical-tabset-content{margin:20px 30px}:host-context(.sky-theme-modern) :host .sky-vertical-tabset-group-container{border-right:1px solid #d2d2d2}}:host-context(.sky-theme-modern) :host-context(.sky-responsive-container-sm) .sky-vertical-tabset-content,:host-context(.sky-theme-modern) :host-context(.sky-responsive-container-md) .sky-vertical-tabset-content,:host-context(.sky-theme-modern) :host-context(.sky-responsive-container-lg) .sky-vertical-tabset-content{margin:20px 30px}:host-context(.sky-theme-modern) :host-context(.sky-responsive-container-sm) .sky-vertical-tabset-group-container,:host-context(.sky-theme-modern) :host-context(.sky-responsive-container-md) .sky-vertical-tabset-group-container,:host-context(.sky-theme-modern) :host-context(.sky-responsive-container-lg) .sky-vertical-tabset-group-container{border-right:1px solid #d2d2d2}.sky-theme-modern .sky-vertical-tabset-content{margin:15px}@media (min-width: 768px){.sky-theme-modern :host .sky-vertical-tabset-content{margin:20px 30px}.sky-theme-modern :host .sky-vertical-tabset-group-container{border-right:1px solid #d2d2d2}}.sky-theme-modern :host-context(.sky-responsive-container-sm) .sky-vertical-tabset-content,.sky-theme-modern :host-context(.sky-responsive-container-md) .sky-vertical-tabset-content,.sky-theme-modern :host-context(.sky-responsive-container-lg) .sky-vertical-tabset-content{margin:20px 30px}.sky-theme-modern :host-context(.sky-responsive-container-sm) .sky-vertical-tabset-group-container,.sky-theme-modern :host-context(.sky-responsive-container-md) .sky-vertical-tabset-group-container,.sky-theme-modern :host-context(.sky-responsive-container-lg) .sky-vertical-tabset-group-container{border-right:1px solid #d2d2d2}\n"] }]
731
+ ], template: "<div class=\"sky-vertical-tabset\" (window:resize)=\"tabService.updateContent()\">\n <div\n *ngIf=\"maintainTabContent || tabService.tabsVisible()\"\n aria-orientation=\"vertical\"\n class=\"sky-vertical-tabset-group-container\"\n [ngClass]=\"{ 'sky-vertical-tabset-hidden': !tabService.tabsVisible() }\"\n [attr.aria-label]=\"ariaLabel\"\n [attr.aria-labelledby]=\"ariaLabelledBy\"\n [attr.role]=\"isMobile ? undefined : ariaRole\"\n [@tabGroupEnter]=\"tabService.animationTabsVisibleState\"\n #groupContainerWrapper\n >\n <ng-content></ng-content>\n </div>\n <div\n *ngIf=\"maintainTabContent || tabService.contentVisible()\"\n class=\"sky-vertical-tabset-content\"\n [ngClass]=\"{\n 'sky-vertical-tabset-content-hidden': !tabService.contentVisible()\n }\"\n [@contentEnter]=\"tabService.animationContentVisibleState\"\n #contentContainerWrapper\n >\n <div #skySideContent></div>\n <button\n *ngIf=\"!tabService.tabsVisible()\"\n (click)=\"tabService.showTabs()\"\n class=\"sky-btn sky-btn-primary sky-vertical-tabset-show-tabs-btn\"\n >\n <sky-icon icon=\"chevron-left\"></sky-icon>\n {{ showTabsText }}\n </button>\n </div>\n</div>\n", styles: [":host .sky-vertical-tabset{display:block;height:auto}:host .sky-vertical-tabset-group-container{border-right:none}:host-context(.sky-responsive-container-xs) .sky-vertical-tabset,:host-context(.sky-responsive-container-sm) .sky-vertical-tabset,:host-context(.sky-responsive-container-md) .sky-vertical-tabset,:host-context(.sky-responsive-container-lg) .sky-vertical-tabset{display:block;height:auto}:host-context(.sky-responsive-container-xs) .sky-vertical-tabset-group-container,:host-context(.sky-responsive-container-sm) .sky-vertical-tabset-group-container,:host-context(.sky-responsive-container-md) .sky-vertical-tabset-group-container,:host-context(.sky-responsive-container-lg) .sky-vertical-tabset-group-container{border-right:none}@media (min-width: 768px){:host .sky-vertical-tabset{display:flex;height:100%}:host .sky-vertical-tabset-group-container{border-right:1px solid #cdcfd2}}:host-context(.sky-responsive-container-sm) .sky-vertical-tabset,:host-context(.sky-responsive-container-md) .sky-vertical-tabset,:host-context(.sky-responsive-container-lg) .sky-vertical-tabset{display:flex;height:100%}:host-context(.sky-responsive-container-sm) .sky-vertical-tabset-group-container,:host-context(.sky-responsive-container-md) .sky-vertical-tabset-group-container,:host-context(.sky-responsive-container-lg) .sky-vertical-tabset-group-container{border-right:1px solid #cdcfd2}.sky-vertical-tabset-hidden{display:none}.sky-vertical-tabset-content{margin:10px 0 0 10px;flex-basis:75%;overflow-y:auto}.sky-vertical-tabset-content-hidden{display:none}.sky-vertical-tabset-show-tabs-btn{margin-top:10px}.sky-vertical-tabset-group-container{flex-basis:25%;overflow-y:auto}:host-context(sky-modal-content)>.sky-vertical-tabset{margin:-15px}:host-context(.sky-theme-modern) .sky-vertical-tabset-content{margin:15px}@media (min-width: 768px){:host-context(.sky-theme-modern) :host .sky-vertical-tabset-content{margin:20px 30px}:host-context(.sky-theme-modern) :host .sky-vertical-tabset-group-container{border-right:1px solid #d2d2d2}}:host-context(.sky-theme-modern) :host-context(.sky-responsive-container-sm) .sky-vertical-tabset-content,:host-context(.sky-theme-modern) :host-context(.sky-responsive-container-md) .sky-vertical-tabset-content,:host-context(.sky-theme-modern) :host-context(.sky-responsive-container-lg) .sky-vertical-tabset-content{margin:20px 30px}:host-context(.sky-theme-modern) :host-context(.sky-responsive-container-sm) .sky-vertical-tabset-group-container,:host-context(.sky-theme-modern) :host-context(.sky-responsive-container-md) .sky-vertical-tabset-group-container,:host-context(.sky-theme-modern) :host-context(.sky-responsive-container-lg) .sky-vertical-tabset-group-container{border-right:1px solid #d2d2d2}.sky-theme-modern .sky-vertical-tabset-content{margin:15px}@media (min-width: 768px){.sky-theme-modern :host .sky-vertical-tabset-content{margin:20px 30px}.sky-theme-modern :host .sky-vertical-tabset-group-container{border-right:1px solid #d2d2d2}}.sky-theme-modern :host-context(.sky-responsive-container-sm) .sky-vertical-tabset-content,.sky-theme-modern :host-context(.sky-responsive-container-md) .sky-vertical-tabset-content,.sky-theme-modern :host-context(.sky-responsive-container-lg) .sky-vertical-tabset-content{margin:20px 30px}.sky-theme-modern :host-context(.sky-responsive-container-sm) .sky-vertical-tabset-group-container,.sky-theme-modern :host-context(.sky-responsive-container-md) .sky-vertical-tabset-group-container,.sky-theme-modern :host-context(.sky-responsive-container-lg) .sky-vertical-tabset-group-container{border-right:1px solid #d2d2d2}\n"] }]
719
732
  }], ctorParameters: function () { return [{ type: SkyVerticalTabsetAdapterService }, { type: SkyVerticalTabsetService }, { type: i3.SkyLibResourcesService }, { type: i0.ChangeDetectorRef }]; }, propDecorators: { showTabsText: [{
720
733
  type: Input
721
734
  }], ariaLabel: [{
@@ -818,15 +831,13 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.0", ngImpor
818
831
  type: Injectable
819
832
  }] });
820
833
 
834
+ var _SkySectionedFormSectionComponent_ngUnsubscribe, _SkySectionedFormSectionComponent_sectionedFormService, _SkySectionedFormSectionComponent_tabsetService, _SkySectionedFormSectionComponent_changeRef;
821
835
  let nextId$1 = 0;
822
836
  /**
823
837
  * Creates an individual form to display as a section within the sectioned form.
824
838
  */
825
839
  class SkySectionedFormSectionComponent {
826
840
  constructor(sectionedFormService, tabsetService, changeRef) {
827
- this.sectionedFormService = sectionedFormService;
828
- this.tabsetService = tabsetService;
829
- this.changeRef = changeRef;
830
841
  this.sectionTabId = `sky-sectioned-form-tab-${++nextId$1}`;
831
842
  this.sectionContentId = `sky-sectioned-form-section-${++nextId$1}`;
832
843
  /**
@@ -834,25 +845,32 @@ class SkySectionedFormSectionComponent {
834
845
  * @default false
835
846
  */
836
847
  this.active = false;
837
- this._ngUnsubscribe = new Subject();
848
+ _SkySectionedFormSectionComponent_ngUnsubscribe.set(this, new Subject());
849
+ _SkySectionedFormSectionComponent_sectionedFormService.set(this, void 0);
850
+ _SkySectionedFormSectionComponent_tabsetService.set(this, void 0);
851
+ _SkySectionedFormSectionComponent_changeRef.set(this, void 0);
852
+ __classPrivateFieldSet(this, _SkySectionedFormSectionComponent_sectionedFormService, sectionedFormService, "f");
853
+ __classPrivateFieldSet(this, _SkySectionedFormSectionComponent_tabsetService, tabsetService, "f");
854
+ __classPrivateFieldSet(this, _SkySectionedFormSectionComponent_changeRef, changeRef, "f");
838
855
  }
839
856
  ngOnInit() {
840
- this.changeRef.detectChanges();
841
- this.tabsetService.switchingMobile.subscribe((mobile) => {
842
- this.changeRef.detectChanges();
857
+ __classPrivateFieldGet(this, _SkySectionedFormSectionComponent_changeRef, "f").detectChanges();
858
+ __classPrivateFieldGet(this, _SkySectionedFormSectionComponent_tabsetService, "f").switchingMobile.subscribe((mobile) => {
859
+ __classPrivateFieldGet(this, _SkySectionedFormSectionComponent_changeRef, "f").detectChanges();
843
860
  });
844
- this.sectionedFormService.requiredChange
845
- .pipe(takeUntil(this._ngUnsubscribe))
861
+ __classPrivateFieldGet(this, _SkySectionedFormSectionComponent_sectionedFormService, "f").requiredChange
862
+ .pipe(takeUntil(__classPrivateFieldGet(this, _SkySectionedFormSectionComponent_ngUnsubscribe, "f")))
846
863
  .subscribe((required) => (this.fieldRequired = required));
847
- this.sectionedFormService.invalidChange
848
- .pipe(takeUntil(this._ngUnsubscribe))
864
+ __classPrivateFieldGet(this, _SkySectionedFormSectionComponent_sectionedFormService, "f").invalidChange
865
+ .pipe(takeUntil(__classPrivateFieldGet(this, _SkySectionedFormSectionComponent_ngUnsubscribe, "f")))
849
866
  .subscribe((invalid) => (this.fieldInvalid = invalid));
850
867
  }
851
868
  ngOnDestroy() {
852
- this._ngUnsubscribe.next();
853
- this._ngUnsubscribe.complete();
869
+ __classPrivateFieldGet(this, _SkySectionedFormSectionComponent_ngUnsubscribe, "f").next();
870
+ __classPrivateFieldGet(this, _SkySectionedFormSectionComponent_ngUnsubscribe, "f").complete();
854
871
  }
855
872
  }
873
+ _SkySectionedFormSectionComponent_ngUnsubscribe = new WeakMap(), _SkySectionedFormSectionComponent_sectionedFormService = new WeakMap(), _SkySectionedFormSectionComponent_tabsetService = new WeakMap(), _SkySectionedFormSectionComponent_changeRef = new WeakMap();
856
874
  SkySectionedFormSectionComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.0", ngImport: i0, type: SkySectionedFormSectionComponent, deps: [{ token: SkySectionedFormService }, { token: SkyVerticalTabsetService }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
857
875
  SkySectionedFormSectionComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.0", type: SkySectionedFormSectionComponent, selector: "sky-sectioned-form-section", inputs: { heading: "heading", itemCount: "itemCount", active: "active" }, providers: [SkySectionedFormService], viewQueries: [{ propertyName: "tab", first: true, predicate: SkyVerticalTabComponent, descendants: true }], ngImport: i0, template: "<sky-vertical-tab\n [active]=\"active\"\n [errorIndicator]=\"fieldInvalid\"\n [ngClass]=\"{\n 'sky-tab-field-required': fieldRequired\n }\"\n [showTabRightArrow]=\"true\"\n [tabHeaderCount]=\"itemCount\"\n [tabHeading]=\"heading\"\n [tabId]=\"sectionTabId\"\n>\n <ng-content></ng-content>\n</sky-vertical-tab>\n", styles: [":host .sky-tab-field-required ::ng-deep .sky-vertical-tab-heading:after{content:\"*\";color:#ef4044;padding-left:5px}\n"], dependencies: [{ kind: "directive", type: i4.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "component", type: SkyVerticalTabComponent, selector: "sky-vertical-tab", inputs: ["active", "ariaControls", "ariaRole", "disabled", "errorIndicator", "tabHeaderCount", "tabHeading", "showTabRightArrow", "tabId"] }] });
858
876
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.0", ngImport: i0, type: SkySectionedFormSectionComponent, decorators: [{
@@ -869,13 +887,13 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.0", ngImpor
869
887
  args: [SkyVerticalTabComponent]
870
888
  }] } });
871
889
 
890
+ var _SkySectionedFormComponent_ngUnsubscribe, _SkySectionedFormComponent_changeRef;
872
891
  /**
873
892
  * Creates a container for the sectioned forms.
874
893
  */
875
894
  class SkySectionedFormComponent {
876
895
  constructor(tabService, changeRef) {
877
896
  this.tabService = tabService;
878
- this.changeRef = changeRef;
879
897
  /**
880
898
  * Indicates whether the sectioned form loads section content during initialization so that it
881
899
  * displays content without moving around elements in the content container.
@@ -887,30 +905,34 @@ class SkySectionedFormComponent {
887
905
  * section. The index is based on the section's position when the form loads.
888
906
  */
889
907
  this.indexChanged = new EventEmitter();
890
- this.isMobile = false;
891
- this._ngUnsubscribe = new Subject();
892
- }
893
- get ariaRole() {
894
- return this.isMobile ? undefined : 'tablist';
908
+ this.ariaRole = 'tablist';
909
+ _SkySectionedFormComponent_ngUnsubscribe.set(this, new Subject());
910
+ _SkySectionedFormComponent_changeRef.set(this, void 0);
911
+ __classPrivateFieldSet(this, _SkySectionedFormComponent_changeRef, changeRef, "f");
895
912
  }
896
913
  ngOnInit() {
897
914
  this.tabService.maintainTabContent = this.maintainSectionContent;
898
915
  this.tabService.indexChanged
899
- .pipe(takeUntil(this._ngUnsubscribe))
916
+ .pipe(takeUntil(__classPrivateFieldGet(this, _SkySectionedFormComponent_ngUnsubscribe, "f")))
900
917
  .subscribe((index) => {
901
918
  this.indexChanged.emit(index);
902
- this.changeRef.markForCheck();
919
+ __classPrivateFieldGet(this, _SkySectionedFormComponent_changeRef, "f").markForCheck();
903
920
  });
904
921
  this.tabService.switchingMobile
905
- .pipe(takeUntil(this._ngUnsubscribe))
922
+ .pipe(takeUntil(__classPrivateFieldGet(this, _SkySectionedFormComponent_ngUnsubscribe, "f")))
906
923
  .subscribe((mobile) => {
907
- this.isMobile = mobile;
908
- this.changeRef.markForCheck();
924
+ if (!mobile) {
925
+ this.ariaRole = 'tablist';
926
+ }
927
+ else {
928
+ this.ariaRole = undefined;
929
+ }
930
+ __classPrivateFieldGet(this, _SkySectionedFormComponent_changeRef, "f").markForCheck();
909
931
  });
910
932
  if (this.tabService.isMobile()) {
911
- this.isMobile = true;
933
+ this.ariaRole = undefined;
912
934
  this.tabService.animationContentVisibleState = VISIBLE_STATE;
913
- this.changeRef.markForCheck();
935
+ __classPrivateFieldGet(this, _SkySectionedFormComponent_changeRef, "f").markForCheck();
914
936
  }
915
937
  }
916
938
  ngAfterViewChecked() {
@@ -918,18 +940,19 @@ class SkySectionedFormComponent {
918
940
  this.tabService.updateContent();
919
941
  }
920
942
  ngOnDestroy() {
921
- this._ngUnsubscribe.next();
922
- this._ngUnsubscribe.complete();
943
+ __classPrivateFieldGet(this, _SkySectionedFormComponent_ngUnsubscribe, "f").next();
944
+ __classPrivateFieldGet(this, _SkySectionedFormComponent_ngUnsubscribe, "f").complete();
923
945
  }
924
946
  tabsVisible() {
925
- this.changeRef.markForCheck();
947
+ __classPrivateFieldGet(this, _SkySectionedFormComponent_changeRef, "f").markForCheck();
926
948
  return this.tabService.tabsVisible();
927
949
  }
928
950
  showTabs() {
929
951
  this.tabService.showTabs();
930
- this.changeRef.markForCheck();
952
+ __classPrivateFieldGet(this, _SkySectionedFormComponent_changeRef, "f").markForCheck();
931
953
  }
932
954
  }
955
+ _SkySectionedFormComponent_ngUnsubscribe = new WeakMap(), _SkySectionedFormComponent_changeRef = new WeakMap();
933
956
  SkySectionedFormComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.0", ngImport: i0, type: SkySectionedFormComponent, deps: [{ token: SkyVerticalTabsetService }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
934
957
  SkySectionedFormComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.0", type: SkySectionedFormComponent, selector: "sky-sectioned-form", inputs: { maintainSectionContent: "maintainSectionContent" }, outputs: { indexChanged: "indexChanged" }, providers: [SkyVerticalTabsetService], viewQueries: [{ propertyName: "content", first: true, predicate: ["skySectionSideContent"], descendants: true }], ngImport: i0, template: "<div\n aria-orientation=\"vertical\"\n class=\"sky-sectioned-form\"\n [attr.role]=\"ariaRole\"\n (window:resize)=\"tabService.updateContent()\"\n>\n <div\n *ngIf=\"maintainSectionContent || tabsVisible()\"\n class=\"sky-sectioned-form-tabs\"\n [ngClass]=\"{ 'sky-sectioned-form-tabs-hidden': !tabsVisible() }\"\n [@tabEnter]=\"tabService.animationTabsVisibleState\"\n >\n <ng-content></ng-content>\n </div>\n <div\n *ngIf=\"maintainSectionContent || tabService.contentVisible()\"\n class=\"sky-sectioned-form-content\"\n [ngClass]=\"{\n 'sky-sectioned-form-content-hidden': !tabService.contentVisible()\n }\"\n [@contentEnter]=\"tabService.animationContentVisibleState\"\n #skySectionSideContent\n ></div>\n</div>\n", styles: [":host .sky-sectioned-form{display:block;max-height:none}:host .sky-sectioned-form-content{flex-basis:auto;overflow-y:visible}:host .sky-sectioned-form-tabs{flex-basis:auto;overflow-y:visible;border-right:1px solid #e2e3e4}:host-context(.sky-responsive-container-xs) .sky-sectioned-form,:host-context(.sky-responsive-container-sm) .sky-sectioned-form,:host-context(.sky-responsive-container-md) .sky-sectioned-form,:host-context(.sky-responsive-container-lg) .sky-sectioned-form{display:block;max-height:none}:host-context(.sky-responsive-container-xs) .sky-sectioned-form-content,:host-context(.sky-responsive-container-sm) .sky-sectioned-form-content,:host-context(.sky-responsive-container-md) .sky-sectioned-form-content,:host-context(.sky-responsive-container-lg) .sky-sectioned-form-content{flex-basis:auto;overflow-y:visible}:host-context(.sky-responsive-container-xs) .sky-sectioned-form-tabs,:host-context(.sky-responsive-container-sm) .sky-sectioned-form-tabs,:host-context(.sky-responsive-container-md) .sky-sectioned-form-tabs,:host-context(.sky-responsive-container-lg) .sky-sectioned-form-tabs{flex-basis:auto;overflow-y:visible;border-right:1px solid #e2e3e4}@media (min-width: 768px){:host .sky-sectioned-form{display:flex;max-height:100%}:host .sky-sectioned-form-content{flex-basis:70%;padding:15px;overflow-y:auto}:host .sky-sectioned-form-tabs{flex-basis:30%;overflow-y:auto}}:host-context(.sky-responsive-container-sm) .sky-sectioned-form,:host-context(.sky-responsive-container-md) .sky-sectioned-form,:host-context(.sky-responsive-container-lg) .sky-sectioned-form{display:flex;max-height:100%}:host-context(.sky-responsive-container-sm) .sky-sectioned-form-content,:host-context(.sky-responsive-container-md) .sky-sectioned-form-content,:host-context(.sky-responsive-container-lg) .sky-sectioned-form-content{flex-basis:70%;padding:15px;overflow-y:auto}:host-context(.sky-responsive-container-sm) .sky-sectioned-form-tabs,:host-context(.sky-responsive-container-md) .sky-sectioned-form-tabs,:host-context(.sky-responsive-container-lg) .sky-sectioned-form-tabs{flex-basis:30%;overflow-y:auto}.sky-sectioned-form-tabs-hidden,.sky-sectioned-form-content-hidden{display:none}:host-context(.sky-theme-modern) .sky-sectioned-form-content{padding:15px}:host-context(.sky-theme-modern) .sky-sectioned-form-tabs{border-right:1px solid #d2d2d2}@media (min-width: 768px){:host-context(.sky-theme-modern) :host .sky-sectioned-form-content{margin:20px 30px}}:host-context(.sky-theme-modern) :host-context(.sky-responsive-container-sm) .sky-sectioned-form-content,:host-context(.sky-theme-modern) :host-context(.sky-responsive-container-md) .sky-sectioned-form-content,:host-context(.sky-theme-modern) :host-context(.sky-responsive-container-lg) .sky-sectioned-form-content{margin:20px 30px}.sky-theme-modern .sky-sectioned-form-content{padding:15px}.sky-theme-modern .sky-sectioned-form-tabs{border-right:1px solid #d2d2d2}@media (min-width: 768px){.sky-theme-modern :host .sky-sectioned-form-content{margin:20px 30px}}.sky-theme-modern :host-context(.sky-responsive-container-sm) .sky-sectioned-form-content,.sky-theme-modern :host-context(.sky-responsive-container-md) .sky-sectioned-form-content,.sky-theme-modern :host-context(.sky-responsive-container-lg) .sky-sectioned-form-content{margin:20px 30px}\n"], dependencies: [{ kind: "directive", type: i4.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], animations: [
935
958
  trigger('tabEnter', [
@@ -998,10 +1021,263 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.0", ngImpor
998
1021
  /**
999
1022
  * @internal
1000
1023
  */
1001
- class SkyTabButtonComponent {
1024
+ class SkyTabButtonAdapterService {
1025
+ focusButtonLink(buttonEl) {
1026
+ buttonEl.nativeElement.querySelector('a').focus();
1027
+ }
1028
+ }
1029
+ SkyTabButtonAdapterService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.0", ngImport: i0, type: SkyTabButtonAdapterService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
1030
+ SkyTabButtonAdapterService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "14.2.0", ngImport: i0, type: SkyTabButtonAdapterService });
1031
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.0", ngImport: i0, type: SkyTabButtonAdapterService, decorators: [{
1032
+ type: Injectable
1033
+ }] });
1034
+
1035
+ var _SkyTabsetService_instances, _SkyTabsetService_activeTabIndex, _SkyTabsetService_focusedTabBtnIndex, _SkyTabsetService_activeTabUnregistered, _SkyTabsetService_tabs, _SkyTabsetService_tabCounter, _SkyTabsetService_isTabIndexActive, _SkyTabsetService_getNextTabArrayIndex, _SkyTabsetService_getPrevTabArrayIndex;
1036
+ /**
1037
+ * @internal
1038
+ */
1039
+ class SkyTabsetService {
1002
1040
  constructor() {
1041
+ _SkyTabsetService_instances.add(this);
1042
+ this.currentActiveTabIndex = 0;
1043
+ this.currentFocusedTabBtnIndex = 0;
1044
+ _SkyTabsetService_activeTabIndex.set(this, void 0);
1045
+ _SkyTabsetService_focusedTabBtnIndex.set(this, void 0);
1046
+ _SkyTabsetService_activeTabUnregistered.set(this, void 0);
1047
+ _SkyTabsetService_tabs.set(this, []);
1048
+ _SkyTabsetService_tabCounter.set(this, 0);
1049
+ __classPrivateFieldSet(this, _SkyTabsetService_activeTabIndex, new BehaviorSubject(0), "f");
1050
+ __classPrivateFieldSet(this, _SkyTabsetService_activeTabUnregistered, new Subject(), "f");
1051
+ __classPrivateFieldSet(this, _SkyTabsetService_focusedTabBtnIndex, new Subject(), "f");
1052
+ }
1053
+ get activeTabUnregistered() {
1054
+ return __classPrivateFieldGet(this, _SkyTabsetService_activeTabUnregistered, "f");
1055
+ }
1056
+ get activeTabIndex() {
1057
+ return __classPrivateFieldGet(this, _SkyTabsetService_activeTabIndex, "f");
1058
+ }
1059
+ get focusedTabBtnIndex() {
1060
+ return __classPrivateFieldGet(this, _SkyTabsetService_focusedTabBtnIndex, "f");
1061
+ }
1062
+ ngOnDestroy() {
1063
+ __classPrivateFieldGet(this, _SkyTabsetService_activeTabIndex, "f").complete();
1064
+ __classPrivateFieldGet(this, _SkyTabsetService_activeTabUnregistered, "f").complete();
1065
+ __classPrivateFieldGet(this, _SkyTabsetService_focusedTabBtnIndex, "f").complete();
1066
+ }
1067
+ /**
1068
+ * Sets the active tab by its unique `tabIndex` property.
1069
+ */
1070
+ setActiveTabIndex(value, config = {
1071
+ emitChange: true,
1072
+ }) {
1073
+ if (value !== undefined &&
1074
+ !this.tabIndexesEqual(value, this.currentActiveTabIndex)) {
1075
+ this.currentActiveTabIndex = value;
1076
+ /* istanbul ignore else */
1077
+ if (config.emitChange) {
1078
+ __classPrivateFieldGet(this, _SkyTabsetService_activeTabIndex, "f").next(value);
1079
+ }
1080
+ this.setFocusedTabBtnIndex(value);
1081
+ }
1082
+ }
1083
+ focusNextTabBtn(tabButtons) {
1084
+ const currentTabArrayIndex = __classPrivateFieldGet(this, _SkyTabsetService_tabs, "f").findIndex((tab) => this.tabIndexesEqual(tab.tabIndex, this.currentFocusedTabBtnIndex));
1085
+ 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)) {
1086
+ const tabBtn = tabButtons[i];
1087
+ if (!tabBtn.disabled && tabBtn.tabIndex !== undefined) {
1088
+ this.setFocusedTabBtnIndex(tabBtn.tabIndex);
1089
+ return;
1090
+ }
1091
+ }
1092
+ }
1093
+ focusPrevTabBtn(tabButtons) {
1094
+ const currentTabArrayIndex = __classPrivateFieldGet(this, _SkyTabsetService_tabs, "f").findIndex((tab) => this.tabIndexesEqual(tab.tabIndex, this.currentFocusedTabBtnIndex));
1095
+ 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)) {
1096
+ const tabBtn = tabButtons[i];
1097
+ if (!tabBtn.disabled && tabBtn.tabIndex !== undefined) {
1098
+ this.setFocusedTabBtnIndex(tabBtn.tabIndex);
1099
+ return;
1100
+ }
1101
+ }
1102
+ }
1103
+ focusFirstOrNearestTabBtn(tabButtons) {
1104
+ for (let i = 0; i < tabButtons.length; i++) {
1105
+ const tabBtn = tabButtons[i];
1106
+ if (!tabBtn.disabled && tabBtn.tabIndex !== undefined) {
1107
+ this.setFocusedTabBtnIndex(tabBtn.tabIndex);
1108
+ return;
1109
+ }
1110
+ }
1111
+ }
1112
+ focusLastOrNearestTabBtn(tabButtons) {
1113
+ for (let i = tabButtons.length - 1; i >= 0; i--) {
1114
+ const tabBtn = tabButtons[i];
1115
+ if (!tabBtn.disabled && tabBtn.tabIndex !== undefined) {
1116
+ this.setFocusedTabBtnIndex(tabBtn.tabIndex);
1117
+ return;
1118
+ }
1119
+ }
1120
+ }
1121
+ setFocusedTabBtnIndex(tabIndex) {
1122
+ this.currentFocusedTabBtnIndex = tabIndex;
1123
+ __classPrivateFieldGet(this, _SkyTabsetService_focusedTabBtnIndex, "f").next(tabIndex);
1124
+ }
1125
+ /**
1126
+ * Registers a tab component.
1127
+ */
1128
+ registerTab(tabIndex) {
1129
+ var _a;
1130
+ if (tabIndex === undefined) {
1131
+ tabIndex = __classPrivateFieldGet(this, _SkyTabsetService_tabCounter, "f");
1132
+ __classPrivateFieldSet(this, _SkyTabsetService_tabCounter, (_a = __classPrivateFieldGet(this, _SkyTabsetService_tabCounter, "f"), _a++, _a), "f");
1133
+ }
1134
+ __classPrivateFieldGet(this, _SkyTabsetService_tabs, "f").push({ tabIndex });
1135
+ return tabIndex;
1136
+ }
1137
+ updateTabIndex(currentTabIndex, newTabIndex) {
1138
+ const found = __classPrivateFieldGet(this, _SkyTabsetService_tabs, "f").find((tab) => this.tabIndexesEqual(tab.tabIndex, currentTabIndex));
1139
+ if (found) {
1140
+ found.tabIndex = newTabIndex;
1141
+ }
1142
+ }
1143
+ /**
1144
+ * Unregisters a tab component.
1145
+ */
1146
+ unregisterTab(tabIndex) {
1147
+ const index = __classPrivateFieldGet(this, _SkyTabsetService_tabs, "f").findIndex((tab) => this.tabIndexesEqual(tab.tabIndex, tabIndex));
1148
+ // Notify the tabset component when an active tab is unregistered.
1149
+ if (__classPrivateFieldGet(this, _SkyTabsetService_instances, "m", _SkyTabsetService_isTabIndexActive).call(this, __classPrivateFieldGet(this, _SkyTabsetService_tabs, "f")[index]?.tabIndex)) {
1150
+ __classPrivateFieldGet(this, _SkyTabsetService_activeTabUnregistered, "f").next({
1151
+ arrayIndex: index,
1152
+ });
1153
+ }
1154
+ __classPrivateFieldGet(this, _SkyTabsetService_tabs, "f").splice(index, 1);
1155
+ }
1156
+ /**
1157
+ * Unregisters all tab components at once.
1158
+ */
1159
+ unregisterAll() {
1160
+ __classPrivateFieldSet(this, _SkyTabsetService_tabs, [], "f");
1161
+ }
1162
+ /**
1163
+ * Compares two tab indexes and returns `true` if they are equal.
1164
+ */
1165
+ tabIndexesEqual(tabIndex1, tabIndex2) {
1166
+ return (tabIndex1 === tabIndex2 ||
1167
+ (tabIndex1 !== undefined &&
1168
+ tabIndex2 !== undefined &&
1169
+ +tabIndex1 === +tabIndex2));
1170
+ }
1171
+ /**
1172
+ * Verifies if a provided tab index is registered.
1173
+ */
1174
+ isValidTabIndex(tabIndex) {
1175
+ return __classPrivateFieldGet(this, _SkyTabsetService_tabs, "f").some((tab) => this.tabIndexesEqual(tab.tabIndex, tabIndex));
1176
+ }
1177
+ /**
1178
+ * Activates the first registered tab.
1179
+ */
1180
+ activateFirstTab() {
1181
+ const firstTabIndex = __classPrivateFieldGet(this, _SkyTabsetService_tabs, "f")[0] && __classPrivateFieldGet(this, _SkyTabsetService_tabs, "f")[0].tabIndex;
1182
+ if (firstTabIndex !== undefined) {
1183
+ this.setActiveTabIndex(firstTabIndex);
1184
+ return firstTabIndex;
1185
+ }
1186
+ return undefined;
1187
+ }
1188
+ /**
1189
+ * Activates the next registered tab, or the previous one based on a provided array index.
1190
+ */
1191
+ activateNearestTab(arrayIndex) {
1192
+ const newActiveTab = __classPrivateFieldGet(this, _SkyTabsetService_tabs, "f")[arrayIndex] || __classPrivateFieldGet(this, _SkyTabsetService_tabs, "f")[arrayIndex - 1];
1193
+ if (newActiveTab) {
1194
+ this.currentActiveTabIndex = newActiveTab.tabIndex;
1195
+ }
1196
+ }
1197
+ }
1198
+ _SkyTabsetService_activeTabIndex = new WeakMap(), _SkyTabsetService_focusedTabBtnIndex = new WeakMap(), _SkyTabsetService_activeTabUnregistered = new WeakMap(), _SkyTabsetService_tabs = new WeakMap(), _SkyTabsetService_tabCounter = new WeakMap(), _SkyTabsetService_instances = new WeakSet(), _SkyTabsetService_isTabIndexActive = function _SkyTabsetService_isTabIndexActive(tabIndex) {
1199
+ return this.tabIndexesEqual(tabIndex, this.currentActiveTabIndex);
1200
+ }, _SkyTabsetService_getNextTabArrayIndex = function _SkyTabsetService_getNextTabArrayIndex(currentIndex) {
1201
+ let nextIndex = currentIndex + 1;
1202
+ if (nextIndex === __classPrivateFieldGet(this, _SkyTabsetService_tabs, "f").length) {
1203
+ nextIndex = 0;
1204
+ }
1205
+ return nextIndex;
1206
+ }, _SkyTabsetService_getPrevTabArrayIndex = function _SkyTabsetService_getPrevTabArrayIndex(currentIndex) {
1207
+ let prevIndex = currentIndex - 1;
1208
+ if (prevIndex < 0) {
1209
+ prevIndex = __classPrivateFieldGet(this, _SkyTabsetService_tabs, "f").length - 1;
1210
+ }
1211
+ return prevIndex;
1212
+ };
1213
+ SkyTabsetService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.0", ngImport: i0, type: SkyTabsetService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
1214
+ SkyTabsetService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "14.2.0", ngImport: i0, type: SkyTabsetService });
1215
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.0", ngImport: i0, type: SkyTabsetService, decorators: [{
1216
+ type: Injectable
1217
+ }], ctorParameters: function () { return []; } });
1218
+
1219
+ var _SkyTabButtonComponent_instances, _SkyTabButtonComponent__isActive, _SkyTabButtonComponent__isDisabled, _SkyTabButtonComponent__tabStyle, _SkyTabButtonComponent_adapterService, _SkyTabButtonComponent_changeDetectorRef, _SkyTabButtonComponent_elementRef, _SkyTabButtonComponent_tabsetService, _SkyTabButtonComponent_ngUnsubscribe, _SkyTabButtonComponent_updateWizardStepState;
1220
+ const DEFAULT_DISABLED = false;
1221
+ /**
1222
+ * @internal
1223
+ */
1224
+ class SkyTabButtonComponent {
1225
+ constructor(elementRef, adapterService, changeDetectorRef, tabsetService) {
1226
+ _SkyTabButtonComponent_instances.add(this);
1003
1227
  this.buttonClick = new EventEmitter();
1004
1228
  this.closeClick = new EventEmitter();
1229
+ this.closeBtnTabIndex = '-1';
1230
+ _SkyTabButtonComponent__isActive.set(this, false);
1231
+ _SkyTabButtonComponent__isDisabled.set(this, DEFAULT_DISABLED);
1232
+ _SkyTabButtonComponent__tabStyle.set(this, void 0);
1233
+ _SkyTabButtonComponent_adapterService.set(this, void 0);
1234
+ _SkyTabButtonComponent_changeDetectorRef.set(this, void 0);
1235
+ _SkyTabButtonComponent_elementRef.set(this, void 0);
1236
+ _SkyTabButtonComponent_tabsetService.set(this, void 0);
1237
+ _SkyTabButtonComponent_ngUnsubscribe.set(this, new Subject());
1238
+ __classPrivateFieldSet(this, _SkyTabButtonComponent_adapterService, adapterService, "f");
1239
+ __classPrivateFieldSet(this, _SkyTabButtonComponent_changeDetectorRef, changeDetectorRef, "f");
1240
+ __classPrivateFieldSet(this, _SkyTabButtonComponent_elementRef, elementRef, "f");
1241
+ __classPrivateFieldSet(this, _SkyTabButtonComponent_tabsetService, tabsetService, "f");
1242
+ }
1243
+ get active() {
1244
+ return __classPrivateFieldGet(this, _SkyTabButtonComponent__isActive, "f");
1245
+ }
1246
+ set active(value) {
1247
+ __classPrivateFieldSet(this, _SkyTabButtonComponent__isActive, value, "f");
1248
+ __classPrivateFieldGet(this, _SkyTabButtonComponent_instances, "m", _SkyTabButtonComponent_updateWizardStepState).call(this);
1249
+ }
1250
+ get disabled() {
1251
+ return __classPrivateFieldGet(this, _SkyTabButtonComponent__isDisabled, "f");
1252
+ }
1253
+ set disabled(value) {
1254
+ __classPrivateFieldSet(this, _SkyTabButtonComponent__isDisabled, value ?? DEFAULT_DISABLED, "f");
1255
+ __classPrivateFieldGet(this, _SkyTabButtonComponent_instances, "m", _SkyTabButtonComponent_updateWizardStepState).call(this);
1256
+ }
1257
+ get tabStyle() {
1258
+ return __classPrivateFieldGet(this, _SkyTabButtonComponent__tabStyle, "f");
1259
+ }
1260
+ set tabStyle(style) {
1261
+ __classPrivateFieldSet(this, _SkyTabButtonComponent__tabStyle, style, "f");
1262
+ __classPrivateFieldGet(this, _SkyTabButtonComponent_instances, "m", _SkyTabButtonComponent_updateWizardStepState).call(this);
1263
+ }
1264
+ ngAfterViewInit() {
1265
+ __classPrivateFieldGet(this, _SkyTabButtonComponent_tabsetService, "f").focusedTabBtnIndex
1266
+ .pipe(distinctUntilChanged(), takeUntil(__classPrivateFieldGet(this, _SkyTabButtonComponent_ngUnsubscribe, "f")))
1267
+ .subscribe((focusedIndex) => {
1268
+ if (this.tabIndex !== undefined && focusedIndex === this.tabIndex) {
1269
+ this.closeBtnTabIndex = '0';
1270
+ this.focusBtn();
1271
+ }
1272
+ else {
1273
+ this.closeBtnTabIndex = '-1';
1274
+ }
1275
+ __classPrivateFieldGet(this, _SkyTabButtonComponent_changeDetectorRef, "f").markForCheck();
1276
+ });
1277
+ }
1278
+ ngOnDestroy() {
1279
+ __classPrivateFieldGet(this, _SkyTabButtonComponent_ngUnsubscribe, "f").next();
1280
+ __classPrivateFieldGet(this, _SkyTabButtonComponent_ngUnsubscribe, "f").complete();
1005
1281
  }
1006
1282
  onButtonClick(event) {
1007
1283
  if (!this.disabled) {
@@ -1030,13 +1306,38 @@ class SkyTabButtonComponent {
1030
1306
  event.stopPropagation();
1031
1307
  event.preventDefault();
1032
1308
  }
1309
+ focusBtn() {
1310
+ __classPrivateFieldGet(this, _SkyTabButtonComponent_adapterService, "f").focusButtonLink(__classPrivateFieldGet(this, _SkyTabButtonComponent_elementRef, "f"));
1311
+ }
1312
+ onFocus() {
1313
+ if (this.tabIndex !== undefined) {
1314
+ __classPrivateFieldGet(this, _SkyTabButtonComponent_tabsetService, "f").setFocusedTabBtnIndex(this.tabIndex);
1315
+ }
1316
+ }
1033
1317
  }
1034
- SkyTabButtonComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.0", ngImport: i0, type: SkyTabButtonComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
1035
- SkyTabButtonComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.0", type: SkyTabButtonComponent, selector: "sky-tab-button", inputs: { active: "active", ariaControls: "ariaControls", buttonHref: "buttonHref", buttonId: "buttonId", buttonText: "buttonText", buttonTextCount: "buttonTextCount", closeable: "closeable", disabled: "disabled", tabStyle: "tabStyle" }, outputs: { buttonClick: "buttonClick", closeClick: "closeClick" }, ngImport: i0, template: "<div\n class=\"sky-btn-tab-wrapper\"\n [ngClass]=\"{\n 'sky-btn-tab-wrapper-selected': active,\n 'sky-btn-tab-wrapper-disabled': disabled\n }\"\n>\n <a\n class=\"sky-btn-tab\"\n role=\"tab\"\n [attr.aria-controls]=\"ariaControls\"\n [attr.aria-disabled]=\"disabled\"\n [attr.aria-selected]=\"active\"\n [attr.href]=\"buttonHref\"\n [id]=\"buttonId\"\n [ngClass]=\"{\n 'sky-btn-tab-wizard': tabStyle === 'wizard',\n 'sky-btn-tab-selected': active,\n 'sky-btn-tab-disabled': disabled,\n 'sky-tab-btn-closeable': closeable\n }\"\n [tabindex]=\"disabled ? '-1' : '0'\"\n (click)=\"onButtonClick($event)\"\n (keydown)=\"onTabButtonKeyDown($event)\"\n >\n <span class=\"sky-tab-heading\">\n {{ buttonText }}\n <span *ngIf=\"buttonTextCount !== undefined\" class=\"sky-tab-header-count\">\n {{ buttonTextCount }}\n </span>\n </span>\n </a>\n\n <button\n *ngIf=\"closeable\"\n class=\"sky-btn-tab-close\"\n type=\"button\"\n [attr.aria-label]=\"'skyux_tab_close' | skyLibResources: buttonText\"\n [disabled]=\"disabled\"\n [ngClass]=\"{\n 'sky-btn-tab-close-disabled': disabled\n }\"\n (click)=\"onCloseClick($event)\"\n >\n <sky-icon icon=\"remove\"></sky-icon>\n </button>\n</div>\n", styles: [".sky-btn-tab-wrapper{display:inline-block;position:relative;margin-right:5px}.sky-btn-tab-wrapper .sky-btn-tab-close{position:absolute;top:10px;right:10px;color:#686c73}.sky-btn-tab-wrapper .sky-btn-tab-close:hover{color:#212327;transition:color .15s}.sky-btn-tab-wrapper.sky-btn-tab-wrapper-selected:not(.sky-btn-tab-wrapper-disabled) .sky-btn-tab-close{color:#fff}.sky-btn-tab-wrapper.sky-btn-tab-wrapper-disabled{cursor:not-allowed}.sky-tab-btn-closeable{padding-right:43px}:host-context(.sky-theme-modern) .sky-btn-tab-wrapper{margin-right:10px}:host-context(.sky-theme-modern) .sky-btn-tab-wrapper .sky-btn-tab-close{top:12px;right:10px}:host-context(.sky-theme-modern) .sky-btn-tab-wrapper.sky-btn-tab-wrapper-selected:not(.sky-btn-tab-wrapper-disabled) .sky-btn-tab-close{color:#686c73}:host-context(.sky-theme-modern) .sky-tab-btn-closeable{padding-right:44px}.sky-theme-modern .sky-btn-tab-wrapper{margin-right:10px}.sky-theme-modern .sky-btn-tab-wrapper .sky-btn-tab-close{top:12px;right:10px}.sky-theme-modern .sky-btn-tab-wrapper.sky-btn-tab-wrapper-selected:not(.sky-btn-tab-wrapper-disabled) .sky-btn-tab-close{color:#686c73}.sky-theme-modern .sky-tab-btn-closeable{padding-right:44px}:host-context(.sky-theme-modern.sky-theme-mode-dark) .sky-btn-tab-wrapper .sky-btn-tab-close{color:#eeeeef}:host-context(.sky-theme-modern.sky-theme-mode-dark) .sky-btn-tab-wrapper.sky-btn-tab-wrapper-selected:not(.sky-btn-tab-wrapper-disabled) .sky-btn-tab-close{color:#eeeeef}.sky-theme-modern.sky-theme-mode-dark .sky-btn-tab-wrapper .sky-btn-tab-close{color:#eeeeef}.sky-theme-modern.sky-theme-mode-dark .sky-btn-tab-wrapper.sky-btn-tab-wrapper-selected:not(.sky-btn-tab-wrapper-disabled) .sky-btn-tab-close{color:#eeeeef}\n"], dependencies: [{ kind: "directive", type: i4.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i5.λ4, selector: "sky-icon", inputs: ["icon", "iconType", "size", "fixedWidth", "variant"] }, { kind: "pipe", type: i3.SkyLibResourcesPipe, name: "skyLibResources" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
1318
+ _SkyTabButtonComponent__isActive = new WeakMap(), _SkyTabButtonComponent__isDisabled = new WeakMap(), _SkyTabButtonComponent__tabStyle = new WeakMap(), _SkyTabButtonComponent_adapterService = new WeakMap(), _SkyTabButtonComponent_changeDetectorRef = new WeakMap(), _SkyTabButtonComponent_elementRef = new WeakMap(), _SkyTabButtonComponent_tabsetService = new WeakMap(), _SkyTabButtonComponent_ngUnsubscribe = new WeakMap(), _SkyTabButtonComponent_instances = new WeakSet(), _SkyTabButtonComponent_updateWizardStepState = function _SkyTabButtonComponent_updateWizardStepState() {
1319
+ if (this.tabStyle === 'tabs') {
1320
+ this.wizardStepState = undefined;
1321
+ }
1322
+ else {
1323
+ if (this.active) {
1324
+ this.wizardStepState = 'current';
1325
+ }
1326
+ else if (!this.disabled) {
1327
+ this.wizardStepState = 'completed';
1328
+ }
1329
+ else {
1330
+ this.wizardStepState = 'unavailable';
1331
+ }
1332
+ }
1333
+ __classPrivateFieldGet(this, _SkyTabButtonComponent_changeDetectorRef, "f").markForCheck();
1334
+ };
1335
+ SkyTabButtonComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.0", ngImport: i0, type: SkyTabButtonComponent, deps: [{ token: i0.ElementRef }, { token: SkyTabButtonAdapterService }, { token: i0.ChangeDetectorRef }, { token: SkyTabsetService }], target: i0.ɵɵFactoryTarget.Component });
1336
+ SkyTabButtonComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.0", type: SkyTabButtonComponent, selector: "sky-tab-button", inputs: { active: "active", ariaControls: "ariaControls", buttonHref: "buttonHref", buttonId: "buttonId", buttonText: "buttonText", buttonTextCount: "buttonTextCount", closeable: "closeable", disabled: "disabled", tabIndex: "tabIndex", tabNumber: "tabNumber", totalTabsCount: "totalTabsCount", tabStyle: "tabStyle" }, outputs: { buttonClick: "buttonClick", closeClick: "closeClick" }, providers: [SkyTabButtonAdapterService], ngImport: i0, template: "<div\n class=\"sky-btn-tab-wrapper\"\n [ngClass]=\"{\n 'sky-btn-tab-wrapper-selected': active,\n 'sky-btn-tab-wrapper-disabled': disabled\n }\"\n>\n <a\n #tabButtonEl\n class=\"sky-btn-tab\"\n role=\"tab\"\n [attr.aria-controls]=\"ariaControls\"\n [attr.aria-disabled]=\"disabled\"\n [attr.aria-selected]=\"active\"\n [attr.href]=\"buttonHref\"\n [attr.aria-label]=\"\n (tabStyle === 'wizard'\n ? 'skyux_wizard_sr_step_' + wizardStepState\n : 'skyux_tabs_sr_tab_order'\n ) | skyLibResources: tabNumber:totalTabsCount:buttonText\n \"\n [id]=\"buttonId\"\n [ngClass]=\"{\n 'sky-btn-tab-wizard': tabStyle === 'wizard',\n 'sky-btn-tab-selected': active,\n 'sky-btn-tab-disabled': disabled,\n 'sky-tab-btn-closeable': closeable\n }\"\n [tabindex]=\"active ? '0' : '-1'\"\n (click)=\"onButtonClick($event)\"\n (keydown)=\"onTabButtonKeyDown($event)\"\n (focus)=\"onFocus()\"\n >\n <span class=\"sky-tab-heading\" [attr.aria-hidden]=\"true\">\n {{ buttonText }}\n <span *ngIf=\"buttonTextCount !== undefined\" class=\"sky-tab-header-count\">\n {{ buttonTextCount }}\n </span>\n </span>\n </a>\n\n <button\n *ngIf=\"closeable\"\n class=\"sky-btn-tab-close\"\n [tabindex]=\"closeBtnTabIndex\"\n type=\"button\"\n [attr.aria-label]=\"'skyux_tab_close' | skyLibResources: buttonText\"\n [disabled]=\"disabled\"\n [ngClass]=\"{\n 'sky-btn-tab-close-disabled': disabled\n }\"\n (click)=\"onCloseClick($event)\"\n >\n <sky-icon icon=\"remove\"></sky-icon>\n </button>\n</div>\n", styles: [".sky-btn-tab-wrapper{display:inline-block;position:relative;margin-right:5px}.sky-btn-tab-wrapper .sky-btn-tab-close{position:absolute;top:10px;right:10px;color:#686c73}.sky-btn-tab-wrapper .sky-btn-tab-close:hover{color:#212327;transition:color .15s}.sky-btn-tab-wrapper.sky-btn-tab-wrapper-selected:not(.sky-btn-tab-wrapper-disabled) .sky-btn-tab-close{color:#fff}.sky-btn-tab-wrapper.sky-btn-tab-wrapper-disabled{cursor:not-allowed}.sky-tab-btn-closeable{padding-right:43px}:host-context(.sky-theme-modern) .sky-btn-tab-wrapper{margin-right:10px}:host-context(.sky-theme-modern) .sky-btn-tab-wrapper .sky-btn-tab-close{top:12px;right:10px}:host-context(.sky-theme-modern) .sky-btn-tab-wrapper.sky-btn-tab-wrapper-selected:not(.sky-btn-tab-wrapper-disabled) .sky-btn-tab-close{color:#686c73}:host-context(.sky-theme-modern) .sky-tab-btn-closeable{padding-right:44px}.sky-theme-modern .sky-btn-tab-wrapper{margin-right:10px}.sky-theme-modern .sky-btn-tab-wrapper .sky-btn-tab-close{top:12px;right:10px}.sky-theme-modern .sky-btn-tab-wrapper.sky-btn-tab-wrapper-selected:not(.sky-btn-tab-wrapper-disabled) .sky-btn-tab-close{color:#686c73}.sky-theme-modern .sky-tab-btn-closeable{padding-right:44px}:host-context(.sky-theme-modern.sky-theme-mode-dark) .sky-btn-tab-wrapper .sky-btn-tab-close{color:#eeeeef}:host-context(.sky-theme-modern.sky-theme-mode-dark) .sky-btn-tab-wrapper.sky-btn-tab-wrapper-selected:not(.sky-btn-tab-wrapper-disabled) .sky-btn-tab-close{color:#eeeeef}.sky-theme-modern.sky-theme-mode-dark .sky-btn-tab-wrapper .sky-btn-tab-close{color:#eeeeef}.sky-theme-modern.sky-theme-mode-dark .sky-btn-tab-wrapper.sky-btn-tab-wrapper-selected:not(.sky-btn-tab-wrapper-disabled) .sky-btn-tab-close{color:#eeeeef}\n"], dependencies: [{ kind: "directive", type: i4.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i5.λ4, selector: "sky-icon", inputs: ["icon", "iconType", "size", "fixedWidth", "variant"] }, { kind: "pipe", type: i3.SkyLibResourcesPipe, name: "skyLibResources" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
1036
1337
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.0", ngImport: i0, type: SkyTabButtonComponent, decorators: [{
1037
1338
  type: Component,
1038
- args: [{ selector: 'sky-tab-button', changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, template: "<div\n class=\"sky-btn-tab-wrapper\"\n [ngClass]=\"{\n 'sky-btn-tab-wrapper-selected': active,\n 'sky-btn-tab-wrapper-disabled': disabled\n }\"\n>\n <a\n class=\"sky-btn-tab\"\n role=\"tab\"\n [attr.aria-controls]=\"ariaControls\"\n [attr.aria-disabled]=\"disabled\"\n [attr.aria-selected]=\"active\"\n [attr.href]=\"buttonHref\"\n [id]=\"buttonId\"\n [ngClass]=\"{\n 'sky-btn-tab-wizard': tabStyle === 'wizard',\n 'sky-btn-tab-selected': active,\n 'sky-btn-tab-disabled': disabled,\n 'sky-tab-btn-closeable': closeable\n }\"\n [tabindex]=\"disabled ? '-1' : '0'\"\n (click)=\"onButtonClick($event)\"\n (keydown)=\"onTabButtonKeyDown($event)\"\n >\n <span class=\"sky-tab-heading\">\n {{ buttonText }}\n <span *ngIf=\"buttonTextCount !== undefined\" class=\"sky-tab-header-count\">\n {{ buttonTextCount }}\n </span>\n </span>\n </a>\n\n <button\n *ngIf=\"closeable\"\n class=\"sky-btn-tab-close\"\n type=\"button\"\n [attr.aria-label]=\"'skyux_tab_close' | skyLibResources: buttonText\"\n [disabled]=\"disabled\"\n [ngClass]=\"{\n 'sky-btn-tab-close-disabled': disabled\n }\"\n (click)=\"onCloseClick($event)\"\n >\n <sky-icon icon=\"remove\"></sky-icon>\n </button>\n</div>\n", styles: [".sky-btn-tab-wrapper{display:inline-block;position:relative;margin-right:5px}.sky-btn-tab-wrapper .sky-btn-tab-close{position:absolute;top:10px;right:10px;color:#686c73}.sky-btn-tab-wrapper .sky-btn-tab-close:hover{color:#212327;transition:color .15s}.sky-btn-tab-wrapper.sky-btn-tab-wrapper-selected:not(.sky-btn-tab-wrapper-disabled) .sky-btn-tab-close{color:#fff}.sky-btn-tab-wrapper.sky-btn-tab-wrapper-disabled{cursor:not-allowed}.sky-tab-btn-closeable{padding-right:43px}:host-context(.sky-theme-modern) .sky-btn-tab-wrapper{margin-right:10px}:host-context(.sky-theme-modern) .sky-btn-tab-wrapper .sky-btn-tab-close{top:12px;right:10px}:host-context(.sky-theme-modern) .sky-btn-tab-wrapper.sky-btn-tab-wrapper-selected:not(.sky-btn-tab-wrapper-disabled) .sky-btn-tab-close{color:#686c73}:host-context(.sky-theme-modern) .sky-tab-btn-closeable{padding-right:44px}.sky-theme-modern .sky-btn-tab-wrapper{margin-right:10px}.sky-theme-modern .sky-btn-tab-wrapper .sky-btn-tab-close{top:12px;right:10px}.sky-theme-modern .sky-btn-tab-wrapper.sky-btn-tab-wrapper-selected:not(.sky-btn-tab-wrapper-disabled) .sky-btn-tab-close{color:#686c73}.sky-theme-modern .sky-tab-btn-closeable{padding-right:44px}:host-context(.sky-theme-modern.sky-theme-mode-dark) .sky-btn-tab-wrapper .sky-btn-tab-close{color:#eeeeef}:host-context(.sky-theme-modern.sky-theme-mode-dark) .sky-btn-tab-wrapper.sky-btn-tab-wrapper-selected:not(.sky-btn-tab-wrapper-disabled) .sky-btn-tab-close{color:#eeeeef}.sky-theme-modern.sky-theme-mode-dark .sky-btn-tab-wrapper .sky-btn-tab-close{color:#eeeeef}.sky-theme-modern.sky-theme-mode-dark .sky-btn-tab-wrapper.sky-btn-tab-wrapper-selected:not(.sky-btn-tab-wrapper-disabled) .sky-btn-tab-close{color:#eeeeef}\n"] }]
1039
- }], propDecorators: { active: [{
1339
+ args: [{ selector: 'sky-tab-button', providers: [SkyTabButtonAdapterService], changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, template: "<div\n class=\"sky-btn-tab-wrapper\"\n [ngClass]=\"{\n 'sky-btn-tab-wrapper-selected': active,\n 'sky-btn-tab-wrapper-disabled': disabled\n }\"\n>\n <a\n #tabButtonEl\n class=\"sky-btn-tab\"\n role=\"tab\"\n [attr.aria-controls]=\"ariaControls\"\n [attr.aria-disabled]=\"disabled\"\n [attr.aria-selected]=\"active\"\n [attr.href]=\"buttonHref\"\n [attr.aria-label]=\"\n (tabStyle === 'wizard'\n ? 'skyux_wizard_sr_step_' + wizardStepState\n : 'skyux_tabs_sr_tab_order'\n ) | skyLibResources: tabNumber:totalTabsCount:buttonText\n \"\n [id]=\"buttonId\"\n [ngClass]=\"{\n 'sky-btn-tab-wizard': tabStyle === 'wizard',\n 'sky-btn-tab-selected': active,\n 'sky-btn-tab-disabled': disabled,\n 'sky-tab-btn-closeable': closeable\n }\"\n [tabindex]=\"active ? '0' : '-1'\"\n (click)=\"onButtonClick($event)\"\n (keydown)=\"onTabButtonKeyDown($event)\"\n (focus)=\"onFocus()\"\n >\n <span class=\"sky-tab-heading\" [attr.aria-hidden]=\"true\">\n {{ buttonText }}\n <span *ngIf=\"buttonTextCount !== undefined\" class=\"sky-tab-header-count\">\n {{ buttonTextCount }}\n </span>\n </span>\n </a>\n\n <button\n *ngIf=\"closeable\"\n class=\"sky-btn-tab-close\"\n [tabindex]=\"closeBtnTabIndex\"\n type=\"button\"\n [attr.aria-label]=\"'skyux_tab_close' | skyLibResources: buttonText\"\n [disabled]=\"disabled\"\n [ngClass]=\"{\n 'sky-btn-tab-close-disabled': disabled\n }\"\n (click)=\"onCloseClick($event)\"\n >\n <sky-icon icon=\"remove\"></sky-icon>\n </button>\n</div>\n", styles: [".sky-btn-tab-wrapper{display:inline-block;position:relative;margin-right:5px}.sky-btn-tab-wrapper .sky-btn-tab-close{position:absolute;top:10px;right:10px;color:#686c73}.sky-btn-tab-wrapper .sky-btn-tab-close:hover{color:#212327;transition:color .15s}.sky-btn-tab-wrapper.sky-btn-tab-wrapper-selected:not(.sky-btn-tab-wrapper-disabled) .sky-btn-tab-close{color:#fff}.sky-btn-tab-wrapper.sky-btn-tab-wrapper-disabled{cursor:not-allowed}.sky-tab-btn-closeable{padding-right:43px}:host-context(.sky-theme-modern) .sky-btn-tab-wrapper{margin-right:10px}:host-context(.sky-theme-modern) .sky-btn-tab-wrapper .sky-btn-tab-close{top:12px;right:10px}:host-context(.sky-theme-modern) .sky-btn-tab-wrapper.sky-btn-tab-wrapper-selected:not(.sky-btn-tab-wrapper-disabled) .sky-btn-tab-close{color:#686c73}:host-context(.sky-theme-modern) .sky-tab-btn-closeable{padding-right:44px}.sky-theme-modern .sky-btn-tab-wrapper{margin-right:10px}.sky-theme-modern .sky-btn-tab-wrapper .sky-btn-tab-close{top:12px;right:10px}.sky-theme-modern .sky-btn-tab-wrapper.sky-btn-tab-wrapper-selected:not(.sky-btn-tab-wrapper-disabled) .sky-btn-tab-close{color:#686c73}.sky-theme-modern .sky-tab-btn-closeable{padding-right:44px}:host-context(.sky-theme-modern.sky-theme-mode-dark) .sky-btn-tab-wrapper .sky-btn-tab-close{color:#eeeeef}:host-context(.sky-theme-modern.sky-theme-mode-dark) .sky-btn-tab-wrapper.sky-btn-tab-wrapper-selected:not(.sky-btn-tab-wrapper-disabled) .sky-btn-tab-close{color:#eeeeef}.sky-theme-modern.sky-theme-mode-dark .sky-btn-tab-wrapper .sky-btn-tab-close{color:#eeeeef}.sky-theme-modern.sky-theme-mode-dark .sky-btn-tab-wrapper.sky-btn-tab-wrapper-selected:not(.sky-btn-tab-wrapper-disabled) .sky-btn-tab-close{color:#eeeeef}\n"] }]
1340
+ }], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: SkyTabButtonAdapterService }, { type: i0.ChangeDetectorRef }, { type: SkyTabsetService }]; }, propDecorators: { active: [{
1040
1341
  type: Input
1041
1342
  }], ariaControls: [{
1042
1343
  type: Input
@@ -1052,6 +1353,12 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.0", ngImpor
1052
1353
  type: Input
1053
1354
  }], disabled: [{
1054
1355
  type: Input
1356
+ }], tabIndex: [{
1357
+ type: Input
1358
+ }], tabNumber: [{
1359
+ type: Input
1360
+ }], totalTabsCount: [{
1361
+ type: Input
1055
1362
  }], tabStyle: [{
1056
1363
  type: Input
1057
1364
  }], buttonClick: [{
@@ -1060,40 +1367,48 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.0", ngImpor
1060
1367
  type: Output
1061
1368
  }] } });
1062
1369
 
1370
+ var _SkyTabsetPermalinkService_instances, _SkyTabsetPermalinkService_popStateChange, _SkyTabsetPermalinkService_subscription, _SkyTabsetPermalinkService_activatedRoute, _SkyTabsetPermalinkService_location, _SkyTabsetPermalinkService_router, _SkyTabsetPermalinkService_getParams;
1063
1371
  /**
1064
1372
  * @internal
1065
1373
  */
1066
1374
  class SkyTabsetPermalinkService {
1067
1375
  constructor(activatedRoute, location, router) {
1068
- this.activatedRoute = activatedRoute;
1069
- this.location = location;
1070
- this.router = router;
1071
- this._popStateChange = new Subject();
1376
+ _SkyTabsetPermalinkService_instances.add(this);
1377
+ _SkyTabsetPermalinkService_popStateChange.set(this, void 0);
1378
+ _SkyTabsetPermalinkService_subscription.set(this, void 0);
1379
+ _SkyTabsetPermalinkService_activatedRoute.set(this, void 0);
1380
+ _SkyTabsetPermalinkService_location.set(this, void 0);
1381
+ _SkyTabsetPermalinkService_router.set(this, void 0);
1382
+ __classPrivateFieldSet(this, _SkyTabsetPermalinkService_activatedRoute, activatedRoute, "f");
1383
+ __classPrivateFieldSet(this, _SkyTabsetPermalinkService_location, location, "f");
1384
+ __classPrivateFieldSet(this, _SkyTabsetPermalinkService_router, router, "f");
1385
+ __classPrivateFieldSet(this, _SkyTabsetPermalinkService_popStateChange, new Subject(), "f");
1072
1386
  }
1073
1387
  get popStateChange() {
1074
- return this._popStateChange.asObservable();
1388
+ return __classPrivateFieldGet(this, _SkyTabsetPermalinkService_popStateChange, "f");
1075
1389
  }
1076
1390
  ngOnDestroy() {
1077
- if (this.subscription) {
1078
- this.subscription.unsubscribe();
1391
+ if (__classPrivateFieldGet(this, _SkyTabsetPermalinkService_subscription, "f")) {
1392
+ __classPrivateFieldGet(this, _SkyTabsetPermalinkService_subscription, "f").unsubscribe();
1079
1393
  }
1394
+ __classPrivateFieldGet(this, _SkyTabsetPermalinkService_popStateChange, "f").complete();
1080
1395
  }
1081
1396
  init() {
1082
- this.subscription = this.location.subscribe(() => {
1083
- this._popStateChange.next();
1084
- });
1397
+ __classPrivateFieldSet(this, _SkyTabsetPermalinkService_subscription, __classPrivateFieldGet(this, _SkyTabsetPermalinkService_location, "f").subscribe(() => {
1398
+ __classPrivateFieldGet(this, _SkyTabsetPermalinkService_popStateChange, "f").next();
1399
+ }), "f");
1085
1400
  }
1086
1401
  /**
1087
1402
  * Returns the value of a URL query param.
1088
1403
  */
1089
1404
  getParam(name) {
1090
- return this.getParams()[name];
1405
+ return __classPrivateFieldGet(this, _SkyTabsetPermalinkService_instances, "m", _SkyTabsetPermalinkService_getParams).call(this)[name];
1091
1406
  }
1092
1407
  /**
1093
1408
  * Sets the value of a URL query param.
1094
1409
  */
1095
1410
  setParam(name, value) {
1096
- const params = this.getParams();
1411
+ const params = __classPrivateFieldGet(this, _SkyTabsetPermalinkService_instances, "m", _SkyTabsetPermalinkService_getParams).call(this);
1097
1412
  if (value === null) {
1098
1413
  delete params[name];
1099
1414
  }
@@ -1102,18 +1417,18 @@ class SkyTabsetPermalinkService {
1102
1417
  }
1103
1418
  // Update the URL without triggering a navigation state change.
1104
1419
  // See: https://stackoverflow.com/a/46486677
1105
- const url = this.router
1420
+ const url = __classPrivateFieldGet(this, _SkyTabsetPermalinkService_router, "f")
1106
1421
  .createUrlTree([], {
1107
- relativeTo: this.activatedRoute,
1422
+ relativeTo: __classPrivateFieldGet(this, _SkyTabsetPermalinkService_activatedRoute, "f"),
1108
1423
  queryParams: params,
1109
1424
  queryParamsHandling: 'merge',
1110
1425
  })
1111
1426
  .toString();
1112
1427
  // Abort redirect if the current URL is equal to the new URL.
1113
- if (this.location.isCurrentPathEqualTo(url)) {
1428
+ if (__classPrivateFieldGet(this, _SkyTabsetPermalinkService_location, "f").isCurrentPathEqualTo(url)) {
1114
1429
  return;
1115
1430
  }
1116
- this.location.go(url);
1431
+ __classPrivateFieldGet(this, _SkyTabsetPermalinkService_location, "f").go(url);
1117
1432
  }
1118
1433
  /**
1119
1434
  * Removes the provided query param from the URL.
@@ -1129,13 +1444,13 @@ class SkyTabsetPermalinkService {
1129
1444
  if (!name) {
1130
1445
  return null;
1131
1446
  }
1132
- const params = this.getParams();
1447
+ const params = __classPrivateFieldGet(this, _SkyTabsetPermalinkService_instances, "m", _SkyTabsetPermalinkService_getParams).call(this);
1133
1448
  params[name] = value;
1134
- const baseUrl = this.location.path().split('?')[0];
1449
+ const baseUrl = __classPrivateFieldGet(this, _SkyTabsetPermalinkService_location, "f").path().split('?')[0];
1135
1450
  const paramString = Object.keys(params)
1136
1451
  .map((k) => `${k}=${params[k]}`)
1137
1452
  .join('&');
1138
- return this.location.prepareExternalUrl(`${baseUrl}?${paramString}`);
1453
+ return __classPrivateFieldGet(this, _SkyTabsetPermalinkService_location, "f").prepareExternalUrl(`${baseUrl}?${paramString}`);
1139
1454
  }
1140
1455
  /**
1141
1456
  * Converts the provided string into a value that can be safely used in a URL.
@@ -1154,241 +1469,170 @@ class SkyTabsetPermalinkService {
1154
1469
  .replace(/--/g, '-');
1155
1470
  return sanitized;
1156
1471
  }
1157
- /**
1158
- * Returns all query params that exist in the current URL.
1159
- */
1160
- getParams() {
1161
- const params = {};
1162
- const path = this.location.path();
1163
- if (path.indexOf('?') === -1) {
1164
- return params;
1165
- }
1166
- const existingParamPairs = path.split('?')[1].split('&');
1167
- existingParamPairs.forEach((pair) => {
1168
- const fragments = pair.split('=');
1169
- params[fragments[0]] = decodeURIComponent(fragments[1]);
1170
- });
1472
+ }
1473
+ _SkyTabsetPermalinkService_popStateChange = new WeakMap(), _SkyTabsetPermalinkService_subscription = new WeakMap(), _SkyTabsetPermalinkService_activatedRoute = new WeakMap(), _SkyTabsetPermalinkService_location = new WeakMap(), _SkyTabsetPermalinkService_router = new WeakMap(), _SkyTabsetPermalinkService_instances = new WeakSet(), _SkyTabsetPermalinkService_getParams = function _SkyTabsetPermalinkService_getParams() {
1474
+ const params = {};
1475
+ const path = __classPrivateFieldGet(this, _SkyTabsetPermalinkService_location, "f").path();
1476
+ if (path.indexOf('?') === -1) {
1171
1477
  return params;
1172
1478
  }
1173
- }
1479
+ const existingParamPairs = path.split('?')[1].split('&');
1480
+ existingParamPairs.forEach((pair) => {
1481
+ const fragments = pair.split('=');
1482
+ params[fragments[0]] = decodeURIComponent(fragments[1]);
1483
+ });
1484
+ return params;
1485
+ };
1174
1486
  SkyTabsetPermalinkService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.0", ngImport: i0, type: SkyTabsetPermalinkService, deps: [{ token: i1$1.ActivatedRoute }, { token: i4.Location }, { token: i1$1.Router }], target: i0.ɵɵFactoryTarget.Injectable });
1175
1487
  SkyTabsetPermalinkService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "14.2.0", ngImport: i0, type: SkyTabsetPermalinkService });
1176
1488
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.0", ngImport: i0, type: SkyTabsetPermalinkService, decorators: [{
1177
1489
  type: Injectable
1178
1490
  }], ctorParameters: function () { return [{ type: i1$1.ActivatedRoute }, { type: i4.Location }, { type: i1$1.Router }]; } });
1179
1491
 
1180
- /**
1181
- * @internal
1182
- */
1183
- class SkyTabsetService {
1184
- constructor() {
1185
- this.currentActiveTabIndex = 0;
1186
- this._activeTabIndex = new BehaviorSubject(0);
1187
- this._activeTabUnregistered = new Subject();
1188
- this.tabs = [];
1189
- this.tabCounter = 0;
1190
- }
1191
- get activeTabUnregistered() {
1192
- return this._activeTabUnregistered.asObservable();
1193
- }
1194
- get activeTabIndex() {
1195
- return this._activeTabIndex.asObservable();
1492
+ var _SkyTabComponent_instances, _SkyTabComponent__active, _SkyTabComponent_activeChange, _SkyTabComponent__permalinkValue, _SkyTabComponent_stateChange, _SkyTabComponent__tabHeading, _SkyTabComponent__tabIndex, _SkyTabComponent_tabIndexChange, _SkyTabComponent_changeDetector, _SkyTabComponent_permalinkService, _SkyTabComponent_tabsetService, _SkyTabComponent_setPermalinkValueOrDefault;
1493
+ let nextId = 0;
1494
+ class SkyTabComponent {
1495
+ constructor(changeDetector, permalinkService, tabsetService) {
1496
+ _SkyTabComponent_instances.add(this);
1497
+ /**
1498
+ * Fires when users click the button to close the tab.
1499
+ * The close button is added to the tab when you specify a listener for this event.
1500
+ * This event only applies when the tabset's `tabStyle` is `"tabs"`.
1501
+ */
1502
+ this.close = new EventEmitter(); // eslint-disable-line @angular-eslint/no-output-native
1503
+ this.permalinkValueOrDefault = '';
1504
+ this.showContent = false;
1505
+ _SkyTabComponent__active.set(this, false);
1506
+ _SkyTabComponent_activeChange.set(this, void 0);
1507
+ _SkyTabComponent__permalinkValue.set(this, void 0);
1508
+ _SkyTabComponent_stateChange.set(this, void 0);
1509
+ _SkyTabComponent__tabHeading.set(this, void 0);
1510
+ _SkyTabComponent__tabIndex.set(this, void 0);
1511
+ _SkyTabComponent_tabIndexChange.set(this, void 0);
1512
+ _SkyTabComponent_changeDetector.set(this, void 0);
1513
+ _SkyTabComponent_permalinkService.set(this, void 0);
1514
+ _SkyTabComponent_tabsetService.set(this, void 0);
1515
+ __classPrivateFieldSet(this, _SkyTabComponent_changeDetector, changeDetector, "f");
1516
+ __classPrivateFieldSet(this, _SkyTabComponent_permalinkService, permalinkService, "f");
1517
+ __classPrivateFieldSet(this, _SkyTabComponent_tabsetService, tabsetService, "f");
1518
+ const id = nextId++;
1519
+ this.tabPanelId = `sky-tab-${id}`;
1520
+ this.tabButtonId = `${this.tabPanelId}-nav-btn`;
1521
+ __classPrivateFieldSet(this, _SkyTabComponent_activeChange, new BehaviorSubject(undefined), "f");
1522
+ __classPrivateFieldSet(this, _SkyTabComponent_stateChange, new BehaviorSubject(undefined), "f");
1523
+ __classPrivateFieldSet(this, _SkyTabComponent_tabIndexChange, new BehaviorSubject(undefined), "f");
1524
+ __classPrivateFieldGet(this, _SkyTabComponent_instances, "m", _SkyTabComponent_setPermalinkValueOrDefault).call(this);
1196
1525
  }
1197
1526
  /**
1198
- * Sets the active tab by its unique `tabIndex` property.
1527
+ * Indicates whether the tab is active when the tabset loads. After initialization, the `active`
1528
+ * property on the tabset component should be used to set the active tab.
1529
+ * @default false
1199
1530
  */
1200
- setActiveTabIndex(value, config = {
1201
- emitChange: true,
1202
- }) {
1203
- if (value !== undefined &&
1204
- !this.tabIndexesEqual(value, this.currentActiveTabIndex)) {
1205
- this.currentActiveTabIndex = value;
1206
- /* istanbul ignore else */
1207
- if (config.emitChange) {
1208
- this._activeTabIndex.next(value);
1209
- }
1531
+ set active(value) {
1532
+ if (value !== undefined && !!value !== __classPrivateFieldGet(this, _SkyTabComponent__active, "f")) {
1533
+ __classPrivateFieldSet(this, _SkyTabComponent__active, value, "f");
1534
+ __classPrivateFieldGet(this, _SkyTabComponent_activeChange, "f").next();
1210
1535
  }
1211
1536
  }
1212
- /**
1213
- * Registers a tab component.
1214
- */
1215
- registerTab(tabIndex) {
1216
- if (tabIndex === undefined) {
1217
- tabIndex = this.tabCounter;
1218
- this.tabCounter++;
1219
- }
1220
- this.tabs.push({ tabIndex });
1221
- return tabIndex;
1537
+ get active() {
1538
+ return __classPrivateFieldGet(this, _SkyTabComponent__active, "f");
1222
1539
  }
1223
- updateTabIndex(currentTabIndex, newTabIndex) {
1224
- const found = this.tabs.find((tab) => this.tabIndexesEqual(tab.tabIndex, currentTabIndex));
1225
- found.tabIndex = newTabIndex;
1540
+ get activeChange() {
1541
+ return __classPrivateFieldGet(this, _SkyTabComponent_activeChange, "f");
1226
1542
  }
1227
1543
  /**
1228
- * Unregisters a tab component.
1544
+ * Specifies a custom query parameter value for the tab.
1545
+ * This works in conjunction with the tabset's `permalinkId` to distinguish
1546
+ * the tab's unique state in the URL by generating a query parameter that is
1547
+ * written as `?<queryParam>-active-tab=<sanitized-tab-heading`.
1548
+ * By default, the query parameter's value is parsed automatically from the tab's heading text.
1549
+ * This input only applies when the tabset's `tabStyle` is `"tabs"`.
1229
1550
  */
1230
- unregisterTab(tabIndex) {
1231
- const index = this.tabs.findIndex((tab) => this.tabIndexesEqual(tab.tabIndex, tabIndex));
1232
- // Notify the tabset component when an active tab is unregistered.
1233
- if (this.isTabIndexActive(this.tabs[index].tabIndex)) {
1234
- this._activeTabUnregistered.next({
1235
- arrayIndex: index,
1236
- });
1237
- }
1238
- this.tabs.splice(index, 1);
1551
+ set permalinkValue(value) {
1552
+ __classPrivateFieldSet(this, _SkyTabComponent__permalinkValue, value, "f");
1553
+ __classPrivateFieldGet(this, _SkyTabComponent_instances, "m", _SkyTabComponent_setPermalinkValueOrDefault).call(this);
1554
+ }
1555
+ get permalinkValue() {
1556
+ return __classPrivateFieldGet(this, _SkyTabComponent__permalinkValue, "f");
1239
1557
  }
1240
1558
  /**
1241
- * Unregisters all tab components at once.
1559
+ * Specifies the tab header.
1560
+ * When using tabs as the main navigation on a page,
1561
+ * use [the Angular `Title` service](https://angular.io/docs/ts/latest/cookbook/set-document-title.html)
1562
+ * and [the SKY UX `title` configuration property](https://developer.blackbaud.com/skyux/learn/reference/configuration#app)
1563
+ * to reflect the tab header in the page title.
1564
+ * @required
1242
1565
  */
1243
- unregisterAll() {
1244
- this.tabs = [];
1245
- }
1246
- /**
1247
- * Compares two tab indexes and returns `true` if they are equal.
1248
- */
1249
- tabIndexesEqual(tabIndex1, tabIndex2) {
1250
- return tabIndex1 === tabIndex2 || +tabIndex1 === +tabIndex2;
1251
- }
1252
- /**
1253
- * Verifies if a provided tab index is registered.
1254
- */
1255
- isValidTabIndex(tabIndex) {
1256
- return this.tabs.some((tab) => this.tabIndexesEqual(tab.tabIndex, tabIndex));
1257
- }
1258
- /**
1259
- * Activates the first registered tab.
1260
- */
1261
- activateFirstTab() {
1262
- const firstTabIndex = this.tabs[0] && this.tabs[0].tabIndex;
1263
- if (firstTabIndex !== undefined) {
1264
- this.setActiveTabIndex(firstTabIndex);
1265
- return firstTabIndex;
1266
- }
1267
- }
1268
- /**
1269
- * Activates the next registered tab, or the previous one based on a provided array index.
1270
- */
1271
- activateNearestTab(arrayIndex) {
1272
- const newActiveTab = this.tabs[arrayIndex] || this.tabs[arrayIndex - 1];
1273
- if (newActiveTab) {
1274
- this.currentActiveTabIndex = newActiveTab.tabIndex;
1275
- }
1276
- }
1277
- isTabIndexActive(tabIndex) {
1278
- return this.tabIndexesEqual(tabIndex, this.currentActiveTabIndex);
1279
- }
1280
- }
1281
- SkyTabsetService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.0", ngImport: i0, type: SkyTabsetService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
1282
- SkyTabsetService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "14.2.0", ngImport: i0, type: SkyTabsetService });
1283
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.0", ngImport: i0, type: SkyTabsetService, decorators: [{
1284
- type: Injectable
1285
- }] });
1286
-
1287
- let nextId = 0;
1288
- class SkyTabComponent {
1289
- constructor(changeDetector, permalinkService, tabsetService) {
1290
- this.changeDetector = changeDetector;
1291
- this.permalinkService = permalinkService;
1292
- this.tabsetService = tabsetService;
1293
- /**
1294
- * Fires when users click the button to close the tab.
1295
- * The close button is added to the tab when you specify a listener for this event.
1296
- * This event only applies when the tabset's `tabStyle` is `"tabs"`.
1297
- */
1298
- this.close = new EventEmitter(); // eslint-disable-line @angular-eslint/no-output-native
1299
- this.showContent = false;
1300
- this._activeChange = new BehaviorSubject(undefined);
1301
- this._stateChange = new BehaviorSubject(undefined);
1302
- this._tabIndexChange = new BehaviorSubject(undefined);
1303
- const id = nextId++;
1304
- this.tabPanelId = `sky-tab-${id}`;
1305
- this.tabButtonId = `${this.tabPanelId}-nav-btn`;
1306
- }
1307
- /**
1308
- * Indicates whether the tab is active when the tabset loads. After initialization, the `active`
1309
- * property on the tabset component should be used to set the active tab.
1310
- * @default false
1311
- */
1312
- set active(value) {
1313
- if (value !== undefined && value !== this._active) {
1314
- this._active = value;
1315
- this._activeChange.next();
1316
- }
1317
- }
1318
- get active() {
1319
- return this._active || false;
1320
- }
1321
- get activeChange() {
1322
- return this._activeChange.asObservable();
1323
- }
1324
- /**
1325
- * Specifies a custom query parameter value for the tab.
1326
- * This works in conjunction with the tabset's `permalinkId` to distinguish
1327
- * the tab's unique state in the URL by generating a query parameter that is
1328
- * written as `?<queryParam>-active-tab=<sanitized-tab-heading`.
1329
- * By default, the query parameter's value is parsed automatically from the tab's heading text.
1330
- * This input only applies when the tabset's `tabStyle` is `"tabs"`.
1331
- */
1332
- set permalinkValue(value) {
1333
- this._permalinkValue = this.permalinkService.urlify(value);
1334
- }
1335
- get permalinkValue() {
1336
- return (this._permalinkValue || this.permalinkService.urlify(this.tabHeading));
1566
+ set tabHeading(value) {
1567
+ __classPrivateFieldSet(this, _SkyTabComponent__tabHeading, value, "f");
1568
+ __classPrivateFieldGet(this, _SkyTabComponent_instances, "m", _SkyTabComponent_setPermalinkValueOrDefault).call(this);
1569
+ }
1570
+ get tabHeading() {
1571
+ return __classPrivateFieldGet(this, _SkyTabComponent__tabHeading, "f");
1337
1572
  }
1338
1573
  /**
1339
1574
  * Specifies a unique identifier for the tab.
1340
1575
  * If not defined, the identifier is set to the position of the tab on load, starting with `0`.
1341
1576
  */
1342
1577
  set tabIndex(value) {
1343
- if (value !== this._tabIndex &&
1578
+ if (value !== __classPrivateFieldGet(this, _SkyTabComponent__tabIndex, "f") &&
1344
1579
  value !== undefined &&
1345
- this._tabIndex !== undefined) {
1346
- this.tabsetService.updateTabIndex(this._tabIndex, value);
1347
- this._tabIndexChange.next(value);
1580
+ __classPrivateFieldGet(this, _SkyTabComponent__tabIndex, "f") !== undefined) {
1581
+ __classPrivateFieldGet(this, _SkyTabComponent_tabsetService, "f").updateTabIndex(__classPrivateFieldGet(this, _SkyTabComponent__tabIndex, "f"), value);
1582
+ __classPrivateFieldGet(this, _SkyTabComponent_tabIndexChange, "f").next(value);
1348
1583
  }
1349
- this._tabIndex = value;
1584
+ __classPrivateFieldSet(this, _SkyTabComponent__tabIndex, value, "f");
1350
1585
  }
1351
1586
  get tabIndex() {
1352
- return this._tabIndex;
1353
- }
1354
- get closeable() {
1355
- return this.close.observers.length > 0;
1587
+ return __classPrivateFieldGet(this, _SkyTabComponent__tabIndex, "f");
1356
1588
  }
1357
1589
  /**
1358
1590
  * Alerts the tabset component when this component has changes that need to be reflected in the UI.
1359
1591
  */
1360
1592
  get stateChange() {
1361
- return this._stateChange.asObservable();
1593
+ return __classPrivateFieldGet(this, _SkyTabComponent_stateChange, "f");
1362
1594
  }
1363
1595
  get tabIndexChange() {
1364
- return this._tabIndexChange.asObservable();
1596
+ return __classPrivateFieldGet(this, _SkyTabComponent_tabIndexChange, "f");
1365
1597
  }
1366
1598
  ngOnChanges(changes) {
1367
1599
  if ((changes.disabled && !changes.disabled.firstChange) ||
1368
1600
  (changes.tabHeading && !changes.tabHeading.firstChange) ||
1369
1601
  (changes.tabHeaderCount && !changes.tabHeaderCount.firstChange) ||
1370
1602
  (changes.permalinkValue && !changes.permalinkValue.firstChange)) {
1371
- this._stateChange.next();
1603
+ __classPrivateFieldGet(this, _SkyTabComponent_stateChange, "f").next();
1372
1604
  }
1373
1605
  }
1374
1606
  ngOnDestroy() {
1375
- this._stateChange.complete();
1376
- this.tabsetService.unregisterTab(this.tabIndex);
1607
+ __classPrivateFieldGet(this, _SkyTabComponent_activeChange, "f").complete();
1608
+ __classPrivateFieldGet(this, _SkyTabComponent_stateChange, "f").complete();
1609
+ __classPrivateFieldGet(this, _SkyTabComponent_tabIndexChange, "f").complete();
1610
+ if (this.tabIndex !== undefined) {
1611
+ __classPrivateFieldGet(this, _SkyTabComponent_tabsetService, "f").unregisterTab(this.tabIndex);
1612
+ }
1377
1613
  }
1378
1614
  init() {
1379
- this._tabIndex = this.tabsetService.registerTab(this.tabIndex);
1615
+ __classPrivateFieldSet(this, _SkyTabComponent__tabIndex, __classPrivateFieldGet(this, _SkyTabComponent_tabsetService, "f").registerTab(this.tabIndex), "f");
1380
1616
  }
1381
1617
  activate() {
1382
- this._active = true;
1618
+ __classPrivateFieldSet(this, _SkyTabComponent__active, true, "f");
1383
1619
  this.showContent = true;
1384
- this.changeDetector.markForCheck();
1620
+ __classPrivateFieldGet(this, _SkyTabComponent_changeDetector, "f").markForCheck();
1385
1621
  }
1386
1622
  deactivate() {
1387
- this._active = false;
1623
+ __classPrivateFieldSet(this, _SkyTabComponent__active, false, "f");
1388
1624
  this.showContent = false;
1389
- this.changeDetector.markForCheck();
1625
+ __classPrivateFieldGet(this, _SkyTabComponent_changeDetector, "f").markForCheck();
1626
+ }
1627
+ isCloseable() {
1628
+ return this.close.observers.length > 0;
1390
1629
  }
1391
1630
  }
1631
+ _SkyTabComponent__active = new WeakMap(), _SkyTabComponent_activeChange = new WeakMap(), _SkyTabComponent__permalinkValue = new WeakMap(), _SkyTabComponent_stateChange = new WeakMap(), _SkyTabComponent__tabHeading = new WeakMap(), _SkyTabComponent__tabIndex = new WeakMap(), _SkyTabComponent_tabIndexChange = new WeakMap(), _SkyTabComponent_changeDetector = new WeakMap(), _SkyTabComponent_permalinkService = new WeakMap(), _SkyTabComponent_tabsetService = new WeakMap(), _SkyTabComponent_instances = new WeakSet(), _SkyTabComponent_setPermalinkValueOrDefault = function _SkyTabComponent_setPermalinkValueOrDefault() {
1632
+ this.permalinkValueOrDefault =
1633
+ __classPrivateFieldGet(this, _SkyTabComponent_permalinkService, "f").urlify(this.permalinkValue) ||
1634
+ __classPrivateFieldGet(this, _SkyTabComponent_permalinkService, "f").urlify(this.tabHeading);
1635
+ };
1392
1636
  SkyTabComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.0", ngImport: i0, type: SkyTabComponent, deps: [{ token: i0.ChangeDetectorRef }, { token: SkyTabsetPermalinkService }, { token: SkyTabsetService }], target: i0.ɵɵFactoryTarget.Component });
1393
1637
  SkyTabComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.0", type: SkyTabComponent, selector: "sky-tab", inputs: { active: "active", disabled: "disabled", permalinkValue: "permalinkValue", tabHeaderCount: "tabHeaderCount", tabHeading: "tabHeading", tabIndex: "tabIndex" }, outputs: { close: "close" }, usesOnChanges: true, ngImport: i0, template: "<div\n class=\"sky-tab\"\n role=\"tabpanel\"\n [attr.aria-labelledby]=\"tabButtonId\"\n [hidden]=\"!showContent\"\n [id]=\"tabPanelId\"\n>\n <ng-content></ng-content>\n</div>\n", changeDetection: i0.ChangeDetectionStrategy.OnPush });
1394
1638
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.0", ngImport: i0, type: SkyTabComponent, decorators: [{
@@ -1410,25 +1654,194 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.0", ngImpor
1410
1654
  type: Output
1411
1655
  }] } });
1412
1656
 
1657
+ class SkyTabsetNavButtonDisabledPipe {
1658
+ transform(disabled, buttonType, tabToSelectExists, tabToSelectIsDisabled) {
1659
+ if (disabled !== undefined) {
1660
+ return disabled;
1661
+ }
1662
+ else if (buttonType === 'finish') {
1663
+ return false;
1664
+ }
1665
+ return !tabToSelectExists || !!tabToSelectIsDisabled;
1666
+ }
1667
+ }
1668
+ SkyTabsetNavButtonDisabledPipe.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.0", ngImport: i0, type: SkyTabsetNavButtonDisabledPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe });
1669
+ SkyTabsetNavButtonDisabledPipe.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "14.2.0", ngImport: i0, type: SkyTabsetNavButtonDisabledPipe, name: "skyTabsetNavButtonDisabled" });
1670
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.0", ngImport: i0, type: SkyTabsetNavButtonDisabledPipe, decorators: [{
1671
+ type: Pipe,
1672
+ args: [{
1673
+ name: 'skyTabsetNavButtonDisabled',
1674
+ }]
1675
+ }] });
1676
+
1677
+ var _SkyTabsetNavButtonComponent_instances, _SkyTabsetNavButtonComponent__buttonType, _SkyTabsetNavButtonComponent__disabled, _SkyTabsetNavButtonComponent__tabset, _SkyTabsetNavButtonComponent_activeIndexNumber, _SkyTabsetNavButtonComponent_activeSkyTabIndex, _SkyTabsetNavButtonComponent_currentTabsetSub, _SkyTabsetNavButtonComponent_logger, _SkyTabsetNavButtonComponent_tabCount, _SkyTabsetNavButtonComponent_ngUnsubscribe, _SkyTabsetNavButtonComponent_updateButtonVisibility, _SkyTabsetNavButtonComponent_updateButtonProperties, _SkyTabsetNavButtonComponent_updateTabToSelect;
1678
+ const buttonTypeNext = 'next';
1679
+ const buttonTypePrevious = 'previous';
1680
+ const buttonTypeFinish = 'finish';
1681
+ class SkyTabsetNavButtonComponent {
1682
+ constructor(logger) {
1683
+ _SkyTabsetNavButtonComponent_instances.add(this);
1684
+ this.isVisible = false;
1685
+ this.type = 'submit';
1686
+ _SkyTabsetNavButtonComponent__buttonType.set(this, void 0);
1687
+ _SkyTabsetNavButtonComponent__disabled.set(this, void 0);
1688
+ _SkyTabsetNavButtonComponent__tabset.set(this, void 0);
1689
+ _SkyTabsetNavButtonComponent_activeIndexNumber.set(this, void 0);
1690
+ _SkyTabsetNavButtonComponent_activeSkyTabIndex.set(this, void 0);
1691
+ _SkyTabsetNavButtonComponent_currentTabsetSub.set(this, void 0);
1692
+ _SkyTabsetNavButtonComponent_logger.set(this, void 0);
1693
+ _SkyTabsetNavButtonComponent_tabCount.set(this, void 0);
1694
+ _SkyTabsetNavButtonComponent_ngUnsubscribe.set(this, new Subject());
1695
+ __classPrivateFieldSet(this, _SkyTabsetNavButtonComponent_logger, logger, "f");
1696
+ }
1697
+ /**
1698
+ * Specifies the tabset wizard component to associate with the nav button.
1699
+ * @required
1700
+ */
1701
+ get tabset() {
1702
+ return __classPrivateFieldGet(this, _SkyTabsetNavButtonComponent__tabset, "f");
1703
+ }
1704
+ set tabset(value) {
1705
+ __classPrivateFieldSet(this, _SkyTabsetNavButtonComponent__tabset, value, "f");
1706
+ if (__classPrivateFieldGet(this, _SkyTabsetNavButtonComponent_currentTabsetSub, "f")) {
1707
+ __classPrivateFieldGet(this, _SkyTabsetNavButtonComponent_currentTabsetSub, "f").unsubscribe();
1708
+ }
1709
+ if (value) {
1710
+ __classPrivateFieldSet(this, _SkyTabsetNavButtonComponent_currentTabsetSub, value.activeChange
1711
+ .pipe(distinctUntilChanged(), takeUntil(__classPrivateFieldGet(this, _SkyTabsetNavButtonComponent_ngUnsubscribe, "f")))
1712
+ .subscribe((index) => {
1713
+ __classPrivateFieldSet(this, _SkyTabsetNavButtonComponent_activeSkyTabIndex, index, "f");
1714
+ __classPrivateFieldSet(this, _SkyTabsetNavButtonComponent_tabCount, __classPrivateFieldGet(this, _SkyTabsetNavButtonComponent__tabset, "f")?.tabs?.length, "f");
1715
+ __classPrivateFieldGet(this, _SkyTabsetNavButtonComponent_instances, "m", _SkyTabsetNavButtonComponent_updateTabToSelect).call(this);
1716
+ __classPrivateFieldGet(this, _SkyTabsetNavButtonComponent_instances, "m", _SkyTabsetNavButtonComponent_updateButtonVisibility).call(this);
1717
+ __classPrivateFieldGet(this, _SkyTabsetNavButtonComponent_instances, "m", _SkyTabsetNavButtonComponent_updateButtonProperties).call(this);
1718
+ }), "f");
1719
+ }
1720
+ else {
1721
+ __classPrivateFieldGet(this, _SkyTabsetNavButtonComponent_logger, "f").error('The SkyTabsetNavButtonComponent requires a reference to the SkyTabsetComponent it controls.');
1722
+ }
1723
+ }
1724
+ /**
1725
+ * Specifies the type of nav button to include.
1726
+ * @required
1727
+ */
1728
+ get buttonType() {
1729
+ return __classPrivateFieldGet(this, _SkyTabsetNavButtonComponent__buttonType, "f");
1730
+ }
1731
+ set buttonType(value) {
1732
+ __classPrivateFieldSet(this, _SkyTabsetNavButtonComponent__buttonType, value, "f");
1733
+ __classPrivateFieldGet(this, _SkyTabsetNavButtonComponent_instances, "m", _SkyTabsetNavButtonComponent_updateTabToSelect).call(this);
1734
+ __classPrivateFieldGet(this, _SkyTabsetNavButtonComponent_instances, "m", _SkyTabsetNavButtonComponent_updateButtonProperties).call(this);
1735
+ __classPrivateFieldGet(this, _SkyTabsetNavButtonComponent_instances, "m", _SkyTabsetNavButtonComponent_updateButtonVisibility).call(this);
1736
+ if (value === buttonTypeFinish) {
1737
+ this.type = 'submit';
1738
+ }
1739
+ else {
1740
+ this.type = 'button';
1741
+ }
1742
+ }
1743
+ /**
1744
+ * Indicates whether to disable the nav button.
1745
+ * Defaults to the disabled state of the next tab for `next`, the existence of a previous tab for `previous`,
1746
+ * and false for `finish`.
1747
+ */
1748
+ set disabled(value) {
1749
+ __classPrivateFieldSet(this, _SkyTabsetNavButtonComponent__disabled, value, "f");
1750
+ }
1751
+ get disabled() {
1752
+ return __classPrivateFieldGet(this, _SkyTabsetNavButtonComponent__disabled, "f");
1753
+ }
1754
+ ngOnDestroy() {
1755
+ __classPrivateFieldGet(this, _SkyTabsetNavButtonComponent_ngUnsubscribe, "f").next();
1756
+ __classPrivateFieldGet(this, _SkyTabsetNavButtonComponent_ngUnsubscribe, "f").complete();
1757
+ }
1758
+ buttonClick() {
1759
+ /* istanbul ignore else */
1760
+ if (this.tabToSelect && !this.tabToSelect.disabled && this.tabset) {
1761
+ this.tabset.active = this.tabToSelect.tabIndex;
1762
+ }
1763
+ }
1764
+ }
1765
+ _SkyTabsetNavButtonComponent__buttonType = new WeakMap(), _SkyTabsetNavButtonComponent__disabled = new WeakMap(), _SkyTabsetNavButtonComponent__tabset = new WeakMap(), _SkyTabsetNavButtonComponent_activeIndexNumber = new WeakMap(), _SkyTabsetNavButtonComponent_activeSkyTabIndex = new WeakMap(), _SkyTabsetNavButtonComponent_currentTabsetSub = new WeakMap(), _SkyTabsetNavButtonComponent_logger = new WeakMap(), _SkyTabsetNavButtonComponent_tabCount = new WeakMap(), _SkyTabsetNavButtonComponent_ngUnsubscribe = new WeakMap(), _SkyTabsetNavButtonComponent_instances = new WeakSet(), _SkyTabsetNavButtonComponent_updateButtonVisibility = function _SkyTabsetNavButtonComponent_updateButtonVisibility() {
1766
+ const isLastStep = !!__classPrivateFieldGet(this, _SkyTabsetNavButtonComponent_tabCount, "f") && __classPrivateFieldGet(this, _SkyTabsetNavButtonComponent_activeIndexNumber, "f") === __classPrivateFieldGet(this, _SkyTabsetNavButtonComponent_tabCount, "f") - 1;
1767
+ if (this.buttonType === buttonTypeFinish) {
1768
+ this.isVisible = isLastStep;
1769
+ }
1770
+ else if (this.buttonType === buttonTypeNext) {
1771
+ this.isVisible = !isLastStep;
1772
+ }
1773
+ else {
1774
+ this.isVisible = true;
1775
+ }
1776
+ }, _SkyTabsetNavButtonComponent_updateButtonProperties = function _SkyTabsetNavButtonComponent_updateButtonProperties() {
1777
+ if (this.buttonType === buttonTypeNext ||
1778
+ this.buttonType === buttonTypeFinish) {
1779
+ this.buttonClassName = 'sky-btn-primary';
1780
+ }
1781
+ else {
1782
+ this.buttonClassName = 'sky-btn-default';
1783
+ }
1784
+ this.ariaControls = this.tabToSelect?.tabPanelId;
1785
+ }, _SkyTabsetNavButtonComponent_updateTabToSelect = function _SkyTabsetNavButtonComponent_updateTabToSelect() {
1786
+ if (this.tabset?.tabs) {
1787
+ const tabs = this.tabset.tabs.toArray();
1788
+ this.tabToSelect = undefined;
1789
+ // tab index can be a number or a string, but we need the actual number index
1790
+ __classPrivateFieldSet(this, _SkyTabsetNavButtonComponent_activeIndexNumber, tabs.findIndex((tab) => tab.tabIndex === __classPrivateFieldGet(this, _SkyTabsetNavButtonComponent_activeSkyTabIndex, "f")), "f");
1791
+ /* istanbul ignore else */
1792
+ if (__classPrivateFieldGet(this, _SkyTabsetNavButtonComponent_activeIndexNumber, "f") !== undefined) {
1793
+ if (this.buttonType === buttonTypeNext) {
1794
+ this.tabToSelect = tabs[__classPrivateFieldGet(this, _SkyTabsetNavButtonComponent_activeIndexNumber, "f") + 1];
1795
+ }
1796
+ else if (this.buttonType === buttonTypePrevious) {
1797
+ this.tabToSelect = tabs[__classPrivateFieldGet(this, _SkyTabsetNavButtonComponent_activeIndexNumber, "f") - 1];
1798
+ }
1799
+ }
1800
+ }
1801
+ };
1802
+ SkyTabsetNavButtonComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.0", ngImport: i0, type: SkyTabsetNavButtonComponent, deps: [{ token: i1.SkyLogService }], target: i0.ɵɵFactoryTarget.Component });
1803
+ SkyTabsetNavButtonComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.0", type: SkyTabsetNavButtonComponent, selector: "sky-tabset-nav-button", inputs: { tabset: "tabset", buttonType: "buttonType", buttonText: "buttonText", disabled: "disabled" }, ngImport: i0, template: "<button\n *ngIf=\"isVisible\"\n class=\"sky-btn sky-margin-inline-sm\"\n [attr.aria-controls]=\"ariaControls\"\n [disabled]=\"\n disabled\n | skyTabsetNavButtonDisabled\n : buttonType\n : !!tabToSelect\n : tabToSelect?.disabled\n \"\n [ngClass]=\"buttonClassName\"\n [type]=\"type\"\n (click)=\"buttonType === 'finish' ? null : buttonClick()\"\n>\n {{ buttonText || ('skyux_tabs_navigator_' + buttonType | skyLibResources) }}\n</button>\n", dependencies: [{ kind: "directive", type: i4.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "pipe", type: i3.SkyLibResourcesPipe, name: "skyLibResources" }, { kind: "pipe", type: SkyTabsetNavButtonDisabledPipe, name: "skyTabsetNavButtonDisabled" }] });
1804
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.0", ngImport: i0, type: SkyTabsetNavButtonComponent, decorators: [{
1805
+ type: Component,
1806
+ args: [{ selector: 'sky-tabset-nav-button', template: "<button\n *ngIf=\"isVisible\"\n class=\"sky-btn sky-margin-inline-sm\"\n [attr.aria-controls]=\"ariaControls\"\n [disabled]=\"\n disabled\n | skyTabsetNavButtonDisabled\n : buttonType\n : !!tabToSelect\n : tabToSelect?.disabled\n \"\n [ngClass]=\"buttonClassName\"\n [type]=\"type\"\n (click)=\"buttonType === 'finish' ? null : buttonClick()\"\n>\n {{ buttonText || ('skyux_tabs_navigator_' + buttonType | skyLibResources) }}\n</button>\n" }]
1807
+ }], ctorParameters: function () { return [{ type: i1.SkyLogService }]; }, propDecorators: { tabset: [{
1808
+ type: Input
1809
+ }], buttonType: [{
1810
+ type: Input
1811
+ }], buttonText: [{
1812
+ type: Input
1813
+ }], disabled: [{
1814
+ type: Input
1815
+ }] } });
1816
+
1817
+ var _SkyTabsetAdapterService_instances, _SkyTabsetAdapterService_currentOverflow, _SkyTabsetAdapterService_tabsetRef, _SkyTabsetAdapterService_tabsOffsetLeft, _SkyTabsetAdapterService_overflowChange, _SkyTabsetAdapterService_getTabsOffsetLeft;
1413
1818
  /**
1414
1819
  * @internal
1415
1820
  */
1416
1821
  class SkyTabsetAdapterService {
1417
1822
  constructor() {
1418
- this._overflowChange = new BehaviorSubject(false);
1823
+ _SkyTabsetAdapterService_instances.add(this);
1824
+ _SkyTabsetAdapterService_currentOverflow.set(this, false);
1825
+ _SkyTabsetAdapterService_tabsetRef.set(this, void 0);
1826
+ _SkyTabsetAdapterService_tabsOffsetLeft.set(this, void 0);
1827
+ _SkyTabsetAdapterService_overflowChange.set(this, void 0);
1828
+ __classPrivateFieldSet(this, _SkyTabsetAdapterService_overflowChange, new BehaviorSubject(false), "f");
1419
1829
  }
1420
1830
  get overflowChange() {
1421
- return this._overflowChange.asObservable();
1831
+ return __classPrivateFieldGet(this, _SkyTabsetAdapterService_overflowChange, "f");
1832
+ }
1833
+ ngOnDestroy() {
1834
+ __classPrivateFieldGet(this, _SkyTabsetAdapterService_overflowChange, "f").complete();
1422
1835
  }
1423
1836
  registerTabset(tabsetRef) {
1424
- this.tabsetRef = tabsetRef;
1425
- this.tabsOffsetLeft = this.getTabsOffsetLeft(tabsetRef.nativeElement);
1837
+ __classPrivateFieldSet(this, _SkyTabsetAdapterService_tabsetRef, tabsetRef, "f");
1838
+ __classPrivateFieldSet(this, _SkyTabsetAdapterService_tabsOffsetLeft, __classPrivateFieldGet(this, _SkyTabsetAdapterService_instances, "m", _SkyTabsetAdapterService_getTabsOffsetLeft).call(this, tabsetRef.nativeElement), "f");
1426
1839
  }
1427
1840
  /**
1428
1841
  * Detects if the tab buttons are wider than the tabset container.
1429
1842
  */
1430
1843
  detectOverflow() {
1431
- const nativeElement = this.tabsetRef.nativeElement;
1844
+ const nativeElement = __classPrivateFieldGet(this, _SkyTabsetAdapterService_tabsetRef, "f")?.nativeElement;
1432
1845
  const tabsetRect = nativeElement
1433
1846
  .querySelector('.sky-tabset')
1434
1847
  .getBoundingClientRect();
@@ -1438,39 +1851,37 @@ class SkyTabsetAdapterService {
1438
1851
  const tabExtraButtonsRect = nativeElement
1439
1852
  .querySelector('.sky-tabset-btns')
1440
1853
  .getBoundingClientRect();
1441
- const tabButtonsWidth = tabButtonsRect.width + tabExtraButtonsRect.width + this.tabsOffsetLeft;
1854
+ const tabButtonsWidth = tabButtonsRect.width + tabExtraButtonsRect.width + __classPrivateFieldGet(this, _SkyTabsetAdapterService_tabsOffsetLeft, "f");
1442
1855
  const newOverflow = tabButtonsWidth > tabsetRect.width;
1443
- if (this.currentOverflow !== newOverflow) {
1444
- this.currentOverflow = newOverflow;
1445
- this._overflowChange.next(this.currentOverflow);
1856
+ if (__classPrivateFieldGet(this, _SkyTabsetAdapterService_currentOverflow, "f") !== newOverflow) {
1857
+ __classPrivateFieldSet(this, _SkyTabsetAdapterService_currentOverflow, newOverflow, "f");
1858
+ __classPrivateFieldGet(this, _SkyTabsetAdapterService_overflowChange, "f").next(__classPrivateFieldGet(this, _SkyTabsetAdapterService_currentOverflow, "f"));
1446
1859
  }
1447
1860
  }
1448
- /**
1449
- * Returns the number of pixels to the left of the first tab.
1450
- */
1451
- getTabsOffsetLeft(tabsetEl) {
1452
- const tabsetRect = tabsetEl.getBoundingClientRect();
1453
- // The dropdown element is the first "tab" and always exists in the DOM, even when hidden.
1454
- const firstTabRect = tabsetEl
1455
- .querySelector('.sky-tabset-dropdown')
1456
- .getBoundingClientRect();
1457
- return firstTabRect.left - tabsetRect.left;
1458
- }
1459
1861
  }
1862
+ _SkyTabsetAdapterService_currentOverflow = new WeakMap(), _SkyTabsetAdapterService_tabsetRef = new WeakMap(), _SkyTabsetAdapterService_tabsOffsetLeft = new WeakMap(), _SkyTabsetAdapterService_overflowChange = new WeakMap(), _SkyTabsetAdapterService_instances = new WeakSet(), _SkyTabsetAdapterService_getTabsOffsetLeft = function _SkyTabsetAdapterService_getTabsOffsetLeft(tabsetEl) {
1863
+ const tabsetRect = tabsetEl.getBoundingClientRect();
1864
+ // The dropdown element is the first "tab" and always exists in the DOM, even when hidden.
1865
+ const firstTabRect = tabsetEl
1866
+ .querySelector('.sky-tabset-dropdown')
1867
+ ?.getBoundingClientRect();
1868
+ // Safety check
1869
+ /* istanbul ignore next */
1870
+ if (!firstTabRect) {
1871
+ return 0;
1872
+ }
1873
+ return firstTabRect.left - tabsetRect.left;
1874
+ };
1460
1875
  SkyTabsetAdapterService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.0", ngImport: i0, type: SkyTabsetAdapterService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
1461
1876
  SkyTabsetAdapterService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "14.2.0", ngImport: i0, type: SkyTabsetAdapterService });
1462
1877
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.0", ngImport: i0, type: SkyTabsetAdapterService, decorators: [{
1463
1878
  type: Injectable
1464
- }] });
1879
+ }], ctorParameters: function () { return []; } });
1465
1880
 
1466
- var _SkyTabsetComponent__hasFinishButton;
1881
+ var _SkyTabsetComponent_instances, _SkyTabsetComponent_ngUnsubscribe, _SkyTabsetComponent_tabComponentsChangeUnsubscribe, _SkyTabsetComponent_tabComponentsStateChangeUnsubscribe, _SkyTabsetComponent__active, _SkyTabsetComponent__permalinkId, _SkyTabsetComponent__tabs, _SkyTabsetComponent__tabDisplayMode, _SkyTabsetComponent__tabStyle, _SkyTabsetComponent_changeDetector, _SkyTabsetComponent_elementRef, _SkyTabsetComponent_adapterService, _SkyTabsetComponent_permalinkService, _SkyTabsetComponent_tabsetService, _SkyTabsetComponent_getInitialTabIndex, _SkyTabsetComponent_listenActiveIndexChange, _SkyTabsetComponent_listenTabComponentsStateChange, _SkyTabsetComponent_initTabComponents, _SkyTabsetComponent_resetTabComponents, _SkyTabsetComponent_emitTabIndexChange, _SkyTabsetComponent_unsubscribeTabComponentsStateChange, _SkyTabsetComponent_listenTabButtonsOverflowChange, _SkyTabsetComponent_listenLocationPopStateChange, _SkyTabsetComponent_setActiveTabIndexByPermalinkId, _SkyTabsetComponent_getActiveTabIndexByPermalinkId, _SkyTabsetComponent_getActiveTabComponent, _SkyTabsetComponent_createTabButtons, _SkyTabsetComponent_updateTabButtons, _SkyTabsetComponent_updateTabsetComponent;
1467
1882
  class SkyTabsetComponent {
1468
1883
  constructor(changeDetector, elementRef, adapterService, permalinkService, tabsetService) {
1469
- this.changeDetector = changeDetector;
1470
- this.elementRef = elementRef;
1471
- this.adapterService = adapterService;
1472
- this.permalinkService = permalinkService;
1473
- this.tabsetService = tabsetService;
1884
+ _SkyTabsetComponent_instances.add(this);
1474
1885
  /**
1475
1886
  * Fires when the active tab changes. This event emits the index of the active tab.
1476
1887
  */
@@ -1492,41 +1903,57 @@ class SkyTabsetComponent {
1492
1903
  * This event only applies when `tabStyle` is `"tabs"`.
1493
1904
  */
1494
1905
  this.tabIndexesChange = new EventEmitter();
1906
+ this.dropdownTriggerButtonText = '';
1495
1907
  this.tabButtons = [];
1496
- this.ngUnsubscribe = new Subject();
1497
- this.tabComponentsStateChangeUnsubscribe = new Subject();
1498
- _SkyTabsetComponent__hasFinishButton.set(this, false);
1908
+ _SkyTabsetComponent_ngUnsubscribe.set(this, new Subject());
1909
+ _SkyTabsetComponent_tabComponentsChangeUnsubscribe.set(this, new Subject());
1910
+ _SkyTabsetComponent_tabComponentsStateChangeUnsubscribe.set(this, new Subject());
1911
+ _SkyTabsetComponent__active.set(this, void 0);
1912
+ _SkyTabsetComponent__permalinkId.set(this, '');
1913
+ _SkyTabsetComponent__tabs.set(this, void 0);
1914
+ _SkyTabsetComponent__tabDisplayMode.set(this, 'tabs');
1915
+ _SkyTabsetComponent__tabStyle.set(this, 'tabs');
1916
+ _SkyTabsetComponent_changeDetector.set(this, void 0);
1917
+ _SkyTabsetComponent_elementRef.set(this, void 0);
1918
+ _SkyTabsetComponent_adapterService.set(this, void 0);
1919
+ _SkyTabsetComponent_permalinkService.set(this, void 0);
1920
+ _SkyTabsetComponent_tabsetService.set(this, void 0);
1921
+ __classPrivateFieldSet(this, _SkyTabsetComponent_changeDetector, changeDetector, "f");
1922
+ __classPrivateFieldSet(this, _SkyTabsetComponent_elementRef, elementRef, "f");
1923
+ __classPrivateFieldSet(this, _SkyTabsetComponent_adapterService, adapterService, "f");
1924
+ __classPrivateFieldSet(this, _SkyTabsetComponent_permalinkService, permalinkService, "f");
1925
+ __classPrivateFieldSet(this, _SkyTabsetComponent_tabsetService, tabsetService, "f");
1499
1926
  }
1500
1927
  /**
1501
1928
  * Activates a tab by its `tabIndex` property.
1502
1929
  */
1503
1930
  set active(value) {
1504
1931
  if (value === undefined ||
1505
- this.tabsetService.tabIndexesEqual(value, this._active)) {
1932
+ __classPrivateFieldGet(this, _SkyTabsetComponent_tabsetService, "f").tabIndexesEqual(value, __classPrivateFieldGet(this, _SkyTabsetComponent__active, "f"))) {
1506
1933
  return;
1507
1934
  }
1508
- this._active = value;
1935
+ __classPrivateFieldSet(this, _SkyTabsetComponent__active, value, "f");
1509
1936
  if (this.tabs) {
1510
- this.tabsetService.setActiveTabIndex(value);
1937
+ __classPrivateFieldGet(this, _SkyTabsetComponent_tabsetService, "f").setActiveTabIndex(value);
1511
1938
  }
1512
1939
  else {
1513
1940
  // On init, wait for children tabs to render before broadcasting the active tab index.
1514
1941
  setTimeout(() => {
1515
- if (this.tabsetService.isValidTabIndex(value)) {
1942
+ if (__classPrivateFieldGet(this, _SkyTabsetComponent_tabsetService, "f").isValidTabIndex(value)) {
1516
1943
  // On init, yield to the permalink ID, if it exists.
1517
- if (this.getActiveTabIndexByPermalinkId() === undefined) {
1518
- this.tabsetService.setActiveTabIndex(value);
1944
+ if (__classPrivateFieldGet(this, _SkyTabsetComponent_instances, "m", _SkyTabsetComponent_getActiveTabIndexByPermalinkId).call(this) === undefined) {
1945
+ __classPrivateFieldGet(this, _SkyTabsetComponent_tabsetService, "f").setActiveTabIndex(value);
1519
1946
  }
1520
1947
  }
1521
1948
  else {
1522
1949
  // Activate the first tab if the new tab index is invalid.
1523
- this._active = this.tabsetService.activateFirstTab();
1950
+ __classPrivateFieldSet(this, _SkyTabsetComponent__active, __classPrivateFieldGet(this, _SkyTabsetComponent_tabsetService, "f").activateFirstTab(), "f");
1524
1951
  }
1525
1952
  });
1526
1953
  }
1527
1954
  }
1528
1955
  get active() {
1529
- return this._active;
1956
+ return __classPrivateFieldGet(this, _SkyTabsetComponent__active, "f");
1530
1957
  }
1531
1958
  /**
1532
1959
  * Distinguishes a tabset's unique state in the URL by generating a query parameter
@@ -1537,77 +1964,86 @@ class SkyTabsetComponent {
1537
1964
  */
1538
1965
  set permalinkId(value) {
1539
1966
  if (!value) {
1540
- return;
1967
+ __classPrivateFieldSet(this, _SkyTabsetComponent__permalinkId, '', "f");
1968
+ }
1969
+ else {
1970
+ const sanitized = __classPrivateFieldGet(this, _SkyTabsetComponent_permalinkService, "f").urlify(value);
1971
+ __classPrivateFieldSet(this, _SkyTabsetComponent__permalinkId, `${sanitized}-active-tab`, "f");
1541
1972
  }
1542
- const sanitized = this.permalinkService.urlify(value);
1543
- this._permalinkId = `${sanitized}-active-tab`;
1544
1973
  }
1545
1974
  get permalinkId() {
1546
- return this._permalinkId || '';
1975
+ return __classPrivateFieldGet(this, _SkyTabsetComponent__permalinkId, "f");
1547
1976
  }
1548
1977
  /**
1549
1978
  * Specifies the behavior for a series of tabs.
1550
1979
  * @default "tabs"
1551
1980
  */
1552
1981
  set tabStyle(value) {
1553
- this._tabStyle = value;
1982
+ __classPrivateFieldSet(this, _SkyTabsetComponent__tabStyle, value || 'tabs', "f");
1554
1983
  }
1555
1984
  get tabStyle() {
1556
- return this._tabStyle || 'tabs';
1985
+ return __classPrivateFieldGet(this, _SkyTabsetComponent__tabStyle, "f");
1557
1986
  }
1558
1987
  set tabDisplayMode(value) {
1559
- this._tabDisplayMode = value;
1560
- this.changeDetector.markForCheck();
1988
+ __classPrivateFieldSet(this, _SkyTabsetComponent__tabDisplayMode, value, "f");
1989
+ __classPrivateFieldGet(this, _SkyTabsetComponent_changeDetector, "f").markForCheck();
1561
1990
  }
1562
1991
  get tabDisplayMode() {
1563
- return this._tabDisplayMode || 'tabs';
1992
+ return __classPrivateFieldGet(this, _SkyTabsetComponent__tabDisplayMode, "f");
1564
1993
  }
1565
- get hasFinishButton() {
1566
- return __classPrivateFieldGet(this, _SkyTabsetComponent__hasFinishButton, "f");
1994
+ set tabs(value) {
1995
+ __classPrivateFieldSet(this, _SkyTabsetComponent__tabs, value, "f");
1996
+ __classPrivateFieldGet(this, _SkyTabsetComponent_tabComponentsChangeUnsubscribe, "f").next();
1997
+ value?.changes
1998
+ .pipe(takeUntil(__classPrivateFieldGet(this, _SkyTabsetComponent_tabComponentsChangeUnsubscribe, "f")))
1999
+ .subscribe(() => {
2000
+ __classPrivateFieldGet(this, _SkyTabsetComponent_instances, "m", _SkyTabsetComponent_resetTabComponents).call(this);
2001
+ });
1567
2002
  }
1568
- set hasFinishButton(value) {
1569
- __classPrivateFieldSet(this, _SkyTabsetComponent__hasFinishButton, value, "f");
2003
+ get tabs() {
2004
+ return __classPrivateFieldGet(this, _SkyTabsetComponent__tabs, "f");
1570
2005
  }
1571
2006
  ngAfterViewInit() {
1572
- this.initTabComponents();
1573
- this.listenTabComponentsStructuralChange();
1574
- const initialTabIndex = this.getInitialTabIndex();
1575
- this.tabsetService.setActiveTabIndex(initialTabIndex);
1576
- this.listenTabButtonsOverflowChange();
1577
- this.listenLocationPopStateChange();
2007
+ __classPrivateFieldGet(this, _SkyTabsetComponent_instances, "m", _SkyTabsetComponent_initTabComponents).call(this);
2008
+ const initialTabIndex = __classPrivateFieldGet(this, _SkyTabsetComponent_instances, "m", _SkyTabsetComponent_getInitialTabIndex).call(this);
2009
+ __classPrivateFieldGet(this, _SkyTabsetComponent_tabsetService, "f").setActiveTabIndex(initialTabIndex);
2010
+ __classPrivateFieldGet(this, _SkyTabsetComponent_instances, "m", _SkyTabsetComponent_listenTabButtonsOverflowChange).call(this);
2011
+ __classPrivateFieldGet(this, _SkyTabsetComponent_instances, "m", _SkyTabsetComponent_listenLocationPopStateChange).call(this);
1578
2012
  // If the currently active tab is getting unregistered, activate the next one.
1579
- this.tabsetService.activeTabUnregistered
1580
- .pipe(takeUntil(this.ngUnsubscribe))
2013
+ __classPrivateFieldGet(this, _SkyTabsetComponent_tabsetService, "f").activeTabUnregistered
2014
+ .pipe(takeUntil(__classPrivateFieldGet(this, _SkyTabsetComponent_ngUnsubscribe, "f")))
1581
2015
  .subscribe((tab) => {
1582
2016
  // Wait for the new tabs to render before activating.
1583
2017
  setTimeout(() => {
1584
- this.tabsetService.activateNearestTab(tab.arrayIndex);
2018
+ __classPrivateFieldGet(this, _SkyTabsetComponent_tabsetService, "f").activateNearestTab(tab.arrayIndex);
1585
2019
  });
1586
2020
  });
1587
2021
  // Let the tabset render the initial active index before listening for changes.
1588
2022
  setTimeout(() => {
1589
- this.listenTabComponentsStateChange();
1590
- this.listenActiveIndexChange();
1591
- this.permalinkService.init();
2023
+ __classPrivateFieldGet(this, _SkyTabsetComponent_instances, "m", _SkyTabsetComponent_listenTabComponentsStateChange).call(this);
2024
+ __classPrivateFieldGet(this, _SkyTabsetComponent_instances, "m", _SkyTabsetComponent_listenActiveIndexChange).call(this);
2025
+ __classPrivateFieldGet(this, _SkyTabsetComponent_permalinkService, "f").init();
1592
2026
  });
1593
2027
  }
1594
2028
  ngOnDestroy() {
1595
- this.ngUnsubscribe.next();
1596
- this.ngUnsubscribe.complete();
1597
- this.unsubscribeTabComponentsStateChange();
2029
+ __classPrivateFieldGet(this, _SkyTabsetComponent_ngUnsubscribe, "f").next();
2030
+ __classPrivateFieldGet(this, _SkyTabsetComponent_ngUnsubscribe, "f").complete();
2031
+ __classPrivateFieldGet(this, _SkyTabsetComponent_tabComponentsChangeUnsubscribe, "f").next();
2032
+ __classPrivateFieldGet(this, _SkyTabsetComponent_tabComponentsChangeUnsubscribe, "f").complete();
2033
+ __classPrivateFieldGet(this, _SkyTabsetComponent_instances, "m", _SkyTabsetComponent_unsubscribeTabComponentsStateChange).call(this);
1598
2034
  if (this.permalinkId) {
1599
- this.permalinkService.clearParam(this.permalinkId);
2035
+ __classPrivateFieldGet(this, _SkyTabsetComponent_permalinkService, "f").clearParam(this.permalinkId);
1600
2036
  }
1601
2037
  }
1602
2038
  onWindowResize() {
1603
- this.adapterService.detectOverflow();
2039
+ __classPrivateFieldGet(this, _SkyTabsetComponent_adapterService, "f").detectOverflow();
1604
2040
  }
1605
2041
  onTabCloseClick(tabButton) {
1606
- const tabComponent = this.tabs.find((tab) => this.tabsetService.tabIndexesEqual(tab.tabIndex, tabButton.tabIndex));
1607
- tabComponent.close.emit();
2042
+ const tabComponent = this.tabs?.find((tab) => __classPrivateFieldGet(this, _SkyTabsetComponent_tabsetService, "f").tabIndexesEqual(tab.tabIndex, tabButton.tabIndex));
2043
+ tabComponent?.close.emit();
1608
2044
  }
1609
2045
  onTabButtonClick(tabButton) {
1610
- this.tabsetService.setActiveTabIndex(tabButton.tabIndex);
2046
+ __classPrivateFieldGet(this, _SkyTabsetComponent_tabsetService, "f").setActiveTabIndex(tabButton.tabIndex);
1611
2047
  }
1612
2048
  onNewTabClick() {
1613
2049
  this.newTab.emit();
@@ -1615,214 +2051,201 @@ class SkyTabsetComponent {
1615
2051
  onOpenTabClick() {
1616
2052
  this.openTab.emit();
1617
2053
  }
1618
- /**
1619
- * Sets the initial active tab index based on the following criteria.
1620
- * 1. Does the URL include a query param that reflects this tabset's active tab?
1621
- * 2. Does one of the tab components have their `active` property set to `true`?
1622
- * 3. Is the tabset component's `active` property set to a specific tab index?
1623
- */
1624
- getInitialTabIndex() {
1625
- let activeIndex = this.getActiveTabIndexByPermalinkId();
1626
- if (activeIndex === undefined) {
1627
- activeIndex = this.getActiveTabComponent()?.tabIndex;
1628
- if (activeIndex === undefined) {
1629
- activeIndex = this.active;
1630
- }
1631
- }
1632
- return activeIndex;
2054
+ onRightKeyDown() {
2055
+ __classPrivateFieldGet(this, _SkyTabsetComponent_tabsetService, "f").focusNextTabBtn(this.tabButtons);
1633
2056
  }
1634
- listenActiveIndexChange() {
1635
- this.tabsetService.activeTabIndex
1636
- .pipe(distinctUntilChanged(), takeUntil(this.ngUnsubscribe))
1637
- .subscribe((activeIndex) => {
1638
- this.updateTabsetComponent(activeIndex);
1639
- });
2057
+ onLeftKeyDown() {
2058
+ __classPrivateFieldGet(this, _SkyTabsetComponent_tabsetService, "f").focusPrevTabBtn(this.tabButtons);
1640
2059
  }
1641
- listenTabComponentsStructuralChange() {
1642
- this.tabs.changes.pipe(takeUntil(this.ngUnsubscribe)).subscribe(() => {
1643
- this.resetTabComponents();
1644
- });
2060
+ onHomeKeyDown() {
2061
+ __classPrivateFieldGet(this, _SkyTabsetComponent_tabsetService, "f").focusFirstOrNearestTabBtn(this.tabButtons);
2062
+ }
2063
+ onEndKeyDown() {
2064
+ __classPrivateFieldGet(this, _SkyTabsetComponent_tabsetService, "f").focusLastOrNearestTabBtn(this.tabButtons);
1645
2065
  }
1646
- listenTabComponentsStateChange() {
2066
+ }
2067
+ _SkyTabsetComponent_ngUnsubscribe = new WeakMap(), _SkyTabsetComponent_tabComponentsChangeUnsubscribe = new WeakMap(), _SkyTabsetComponent_tabComponentsStateChangeUnsubscribe = new WeakMap(), _SkyTabsetComponent__active = new WeakMap(), _SkyTabsetComponent__permalinkId = new WeakMap(), _SkyTabsetComponent__tabs = new WeakMap(), _SkyTabsetComponent__tabDisplayMode = new WeakMap(), _SkyTabsetComponent__tabStyle = new WeakMap(), _SkyTabsetComponent_changeDetector = new WeakMap(), _SkyTabsetComponent_elementRef = new WeakMap(), _SkyTabsetComponent_adapterService = new WeakMap(), _SkyTabsetComponent_permalinkService = new WeakMap(), _SkyTabsetComponent_tabsetService = new WeakMap(), _SkyTabsetComponent_instances = new WeakSet(), _SkyTabsetComponent_getInitialTabIndex = function _SkyTabsetComponent_getInitialTabIndex() {
2068
+ let activeIndex = __classPrivateFieldGet(this, _SkyTabsetComponent_instances, "m", _SkyTabsetComponent_getActiveTabIndexByPermalinkId).call(this);
2069
+ if (activeIndex === undefined) {
2070
+ activeIndex = __classPrivateFieldGet(this, _SkyTabsetComponent_instances, "m", _SkyTabsetComponent_getActiveTabComponent).call(this)?.tabIndex;
2071
+ if (activeIndex === undefined) {
2072
+ activeIndex = this.active;
2073
+ }
2074
+ }
2075
+ return activeIndex;
2076
+ }, _SkyTabsetComponent_listenActiveIndexChange = function _SkyTabsetComponent_listenActiveIndexChange() {
2077
+ __classPrivateFieldGet(this, _SkyTabsetComponent_tabsetService, "f").activeTabIndex
2078
+ .pipe(distinctUntilChanged(), takeUntil(__classPrivateFieldGet(this, _SkyTabsetComponent_ngUnsubscribe, "f")))
2079
+ .subscribe((activeIndex) => {
2080
+ __classPrivateFieldGet(this, _SkyTabsetComponent_instances, "m", _SkyTabsetComponent_updateTabsetComponent).call(this, activeIndex);
2081
+ });
2082
+ }, _SkyTabsetComponent_listenTabComponentsStateChange = function _SkyTabsetComponent_listenTabComponentsStateChange() {
2083
+ if (this.tabs) {
1647
2084
  combineLatest(this.tabs.map((tab) => tab.activeChange))
1648
- .pipe(takeUntil(race(this.tabComponentsStateChangeUnsubscribe, this.ngUnsubscribe)))
2085
+ .pipe(takeUntil(race(__classPrivateFieldGet(this, _SkyTabsetComponent_tabComponentsStateChangeUnsubscribe, "f"), __classPrivateFieldGet(this, _SkyTabsetComponent_ngUnsubscribe, "f"))))
1649
2086
  .subscribe(() => {
1650
2087
  // Wait for the tab components to render changes before finding the active one.
1651
2088
  setTimeout(() => {
1652
- const tabIndex = this.getActiveTabComponent()?.tabIndex;
1653
- this.tabsetService.setActiveTabIndex(tabIndex);
2089
+ const tabIndex = __classPrivateFieldGet(this, _SkyTabsetComponent_instances, "m", _SkyTabsetComponent_getActiveTabComponent).call(this)?.tabIndex;
2090
+ __classPrivateFieldGet(this, _SkyTabsetComponent_tabsetService, "f").setActiveTabIndex(tabIndex);
1654
2091
  });
1655
2092
  });
1656
2093
  combineLatest(this.tabs.map((tab) => tab.tabIndexChange))
1657
- .pipe(takeUntil(race(this.tabComponentsStateChangeUnsubscribe, this.ngUnsubscribe)))
2094
+ .pipe(takeUntil(race(__classPrivateFieldGet(this, _SkyTabsetComponent_tabComponentsStateChangeUnsubscribe, "f"), __classPrivateFieldGet(this, _SkyTabsetComponent_ngUnsubscribe, "f"))))
1658
2095
  .subscribe(() => {
1659
2096
  // Don't emit the first change.
1660
2097
  if (this.lastActiveTabIndex !== undefined) {
1661
2098
  // Wait for the tab components to render changes before updating the view.
1662
2099
  setTimeout(() => {
1663
- this.updateTabsetComponent(this.tabsetService.currentActiveTabIndex, true);
1664
- this.emitTabIndexChange();
2100
+ __classPrivateFieldGet(this, _SkyTabsetComponent_instances, "m", _SkyTabsetComponent_updateTabsetComponent).call(this, __classPrivateFieldGet(this, _SkyTabsetComponent_tabsetService, "f").currentActiveTabIndex, true);
2101
+ __classPrivateFieldGet(this, _SkyTabsetComponent_instances, "m", _SkyTabsetComponent_emitTabIndexChange).call(this);
1665
2102
  });
1666
2103
  }
1667
2104
  });
1668
2105
  combineLatest(this.tabs.map((tab) => tab.stateChange))
1669
- .pipe(takeUntil(race(this.tabComponentsStateChangeUnsubscribe, this.ngUnsubscribe)))
2106
+ .pipe(takeUntil(race(__classPrivateFieldGet(this, _SkyTabsetComponent_tabComponentsStateChangeUnsubscribe, "f"), __classPrivateFieldGet(this, _SkyTabsetComponent_ngUnsubscribe, "f"))))
1670
2107
  .subscribe(() => {
1671
2108
  // Wait for the tab components to render changes before finding the active one.
1672
2109
  setTimeout(() => {
1673
- this.updateTabsetComponent(this.tabsetService.currentActiveTabIndex, true);
2110
+ __classPrivateFieldGet(this, _SkyTabsetComponent_instances, "m", _SkyTabsetComponent_updateTabsetComponent).call(this, __classPrivateFieldGet(this, _SkyTabsetComponent_tabsetService, "f").currentActiveTabIndex, true);
1674
2111
  });
1675
2112
  });
1676
2113
  }
1677
- initTabComponents() {
1678
- this.tabs.forEach((tab) => tab.init());
1679
- }
1680
- resetTabComponents() {
1681
- this.unsubscribeTabComponentsStateChange();
1682
- this.tabsetService.unregisterAll();
1683
- // If there are no tab components, do a hard reset of the view.
1684
- if (this.tabs.length === 0) {
1685
- this.updateTabsetComponent(0, true);
1686
- return;
1687
- }
1688
- this.initTabComponents();
1689
- const activeIndex = this.getActiveTabComponent()?.tabIndex;
1690
- this.tabsetService.setActiveTabIndex(activeIndex, {
1691
- emitChange: false,
1692
- });
1693
- this.listenTabComponentsStateChange();
1694
- }
1695
- emitTabIndexChange() {
1696
- this.tabIndexesChange.emit({
1697
- tabs: this.tabs.map((tab) => ({
1698
- tabHeading: tab.tabHeading,
1699
- tabIndex: tab.tabIndex,
1700
- })),
1701
- });
1702
- }
1703
- unsubscribeTabComponentsStateChange() {
1704
- this.tabComponentsStateChangeUnsubscribe.next();
1705
- this.tabComponentsStateChangeUnsubscribe.complete();
1706
- this.tabComponentsStateChangeUnsubscribe = new Subject();
1707
- }
1708
- listenTabButtonsOverflowChange() {
1709
- this.adapterService.registerTabset(this.elementRef);
1710
- this.adapterService.overflowChange
1711
- .pipe(takeUntil(this.ngUnsubscribe))
1712
- .subscribe((isOverflowing) => {
1713
- this.tabDisplayMode = isOverflowing ? 'dropdown' : 'tabs';
1714
- this.changeDetector.markForCheck();
1715
- });
1716
- }
1717
- /**
1718
- * Listen for back/forward history button presses to detect query param changes in the URL.
1719
- */
1720
- listenLocationPopStateChange() {
1721
- this.permalinkService.popStateChange
1722
- .pipe(takeUntil(this.ngUnsubscribe))
1723
- .subscribe(() => {
1724
- this.setActiveTabIndexByPermalinkId();
1725
- });
1726
- }
1727
- setActiveTabIndexByPermalinkId() {
1728
- const activeIndex = this.getActiveTabIndexByPermalinkId();
1729
- this.tabsetService.setActiveTabIndex(activeIndex);
1730
- }
1731
- getActiveTabIndexByPermalinkId() {
1732
- if (this.permalinkId) {
1733
- const paramValue = this.permalinkService.getParam(this.permalinkId);
1734
- if (paramValue) {
1735
- return this.tabs.find((tab) => tab.permalinkValue === paramValue)
1736
- ?.tabIndex;
1737
- }
1738
- }
2114
+ }, _SkyTabsetComponent_initTabComponents = function _SkyTabsetComponent_initTabComponents() {
2115
+ this.tabs?.forEach((tab) => tab.init());
2116
+ }, _SkyTabsetComponent_resetTabComponents = function _SkyTabsetComponent_resetTabComponents() {
2117
+ __classPrivateFieldGet(this, _SkyTabsetComponent_instances, "m", _SkyTabsetComponent_unsubscribeTabComponentsStateChange).call(this);
2118
+ __classPrivateFieldGet(this, _SkyTabsetComponent_tabsetService, "f").unregisterAll();
2119
+ // If there are no tab components, do a hard reset of the view.
2120
+ if (this.tabs?.length === 0) {
2121
+ __classPrivateFieldGet(this, _SkyTabsetComponent_instances, "m", _SkyTabsetComponent_updateTabsetComponent).call(this, 0, true);
2122
+ return;
1739
2123
  }
1740
- getActiveTabComponent() {
1741
- return this.tabs
1742
- .toArray()
1743
- .reverse()
1744
- .find((tab) => tab.active === true);
1745
- }
1746
- createTabButtons(activeIndex) {
1747
- return this.tabs.map((tab) => ({
1748
- active: this.tabsetService.tabIndexesEqual(tab.tabIndex, activeIndex),
1749
- closeable: tab.closeable,
1750
- ariaControls: tab.tabPanelId,
1751
- disabled: tab.disabled,
1752
- buttonHref: tab.disabled
1753
- ? null
1754
- : this.permalinkService.getParamHref(this.permalinkId, tab.permalinkValue),
1755
- buttonId: tab.tabButtonId,
1756
- buttonTextCount: tab.tabHeaderCount,
1757
- buttonText: tab.tabHeading,
2124
+ __classPrivateFieldGet(this, _SkyTabsetComponent_instances, "m", _SkyTabsetComponent_initTabComponents).call(this);
2125
+ const activeIndex = __classPrivateFieldGet(this, _SkyTabsetComponent_instances, "m", _SkyTabsetComponent_getActiveTabComponent).call(this)?.tabIndex;
2126
+ __classPrivateFieldGet(this, _SkyTabsetComponent_tabsetService, "f").setActiveTabIndex(activeIndex, {
2127
+ emitChange: false,
2128
+ });
2129
+ __classPrivateFieldGet(this, _SkyTabsetComponent_instances, "m", _SkyTabsetComponent_listenTabComponentsStateChange).call(this);
2130
+ }, _SkyTabsetComponent_emitTabIndexChange = function _SkyTabsetComponent_emitTabIndexChange() {
2131
+ this.tabIndexesChange.emit({
2132
+ tabs: this.tabs?.map((tab) => ({
2133
+ tabHeading: tab.tabHeading,
1758
2134
  tabIndex: tab.tabIndex,
1759
- }));
1760
- }
1761
- updateTabButtons(activeIndex) {
1762
- this.tabButtons.forEach((button) => {
1763
- button.active = this.tabsetService.tabIndexesEqual(button.tabIndex, activeIndex);
1764
- });
2135
+ })),
2136
+ });
2137
+ }, _SkyTabsetComponent_unsubscribeTabComponentsStateChange = function _SkyTabsetComponent_unsubscribeTabComponentsStateChange() {
2138
+ __classPrivateFieldGet(this, _SkyTabsetComponent_tabComponentsStateChangeUnsubscribe, "f").next();
2139
+ __classPrivateFieldGet(this, _SkyTabsetComponent_tabComponentsStateChangeUnsubscribe, "f").complete();
2140
+ __classPrivateFieldSet(this, _SkyTabsetComponent_tabComponentsStateChangeUnsubscribe, new Subject(), "f");
2141
+ }, _SkyTabsetComponent_listenTabButtonsOverflowChange = function _SkyTabsetComponent_listenTabButtonsOverflowChange() {
2142
+ __classPrivateFieldGet(this, _SkyTabsetComponent_adapterService, "f").registerTabset(__classPrivateFieldGet(this, _SkyTabsetComponent_elementRef, "f"));
2143
+ __classPrivateFieldGet(this, _SkyTabsetComponent_adapterService, "f").overflowChange
2144
+ .pipe(takeUntil(__classPrivateFieldGet(this, _SkyTabsetComponent_ngUnsubscribe, "f")))
2145
+ .subscribe((isOverflowing) => {
2146
+ this.tabDisplayMode = isOverflowing ? 'dropdown' : 'tabs';
2147
+ __classPrivateFieldGet(this, _SkyTabsetComponent_changeDetector, "f").markForCheck();
2148
+ });
2149
+ }, _SkyTabsetComponent_listenLocationPopStateChange = function _SkyTabsetComponent_listenLocationPopStateChange() {
2150
+ __classPrivateFieldGet(this, _SkyTabsetComponent_permalinkService, "f").popStateChange
2151
+ .pipe(takeUntil(__classPrivateFieldGet(this, _SkyTabsetComponent_ngUnsubscribe, "f")))
2152
+ .subscribe(() => {
2153
+ __classPrivateFieldGet(this, _SkyTabsetComponent_instances, "m", _SkyTabsetComponent_setActiveTabIndexByPermalinkId).call(this);
2154
+ });
2155
+ }, _SkyTabsetComponent_setActiveTabIndexByPermalinkId = function _SkyTabsetComponent_setActiveTabIndexByPermalinkId() {
2156
+ const activeIndex = __classPrivateFieldGet(this, _SkyTabsetComponent_instances, "m", _SkyTabsetComponent_getActiveTabIndexByPermalinkId).call(this);
2157
+ __classPrivateFieldGet(this, _SkyTabsetComponent_tabsetService, "f").setActiveTabIndex(activeIndex);
2158
+ }, _SkyTabsetComponent_getActiveTabIndexByPermalinkId = function _SkyTabsetComponent_getActiveTabIndexByPermalinkId() {
2159
+ if (this.permalinkId) {
2160
+ const paramValue = __classPrivateFieldGet(this, _SkyTabsetComponent_permalinkService, "f").getParam(this.permalinkId);
2161
+ if (paramValue) {
2162
+ return this.tabs?.find((tab) => tab.permalinkValueOrDefault === paramValue)?.tabIndex;
2163
+ }
2164
+ return undefined;
2165
+ }
2166
+ return undefined;
2167
+ }, _SkyTabsetComponent_getActiveTabComponent = function _SkyTabsetComponent_getActiveTabComponent() {
2168
+ return this.tabs
2169
+ ?.toArray()
2170
+ .reverse()
2171
+ .find((tab) => tab.active === true);
2172
+ }, _SkyTabsetComponent_createTabButtons = function _SkyTabsetComponent_createTabButtons(activeIndex) {
2173
+ // Safety check
2174
+ /* istanbul ignore next */
2175
+ if (!this.tabs) {
2176
+ return [];
2177
+ }
2178
+ return this.tabs.map((tab, index) => ({
2179
+ active: __classPrivateFieldGet(this, _SkyTabsetComponent_tabsetService, "f").tabIndexesEqual(tab.tabIndex, activeIndex),
2180
+ closeable: tab.isCloseable(),
2181
+ ariaControls: tab.tabPanelId,
2182
+ disabled: tab.disabled,
2183
+ buttonHref: tab.disabled
2184
+ ? null
2185
+ : __classPrivateFieldGet(this, _SkyTabsetComponent_permalinkService, "f").getParamHref(this.permalinkId, tab.permalinkValueOrDefault),
2186
+ buttonId: tab.tabButtonId,
2187
+ buttonTextCount: tab.tabHeaderCount,
2188
+ buttonText: tab.tabHeading,
2189
+ tabIndex: tab.tabIndex,
2190
+ tabNumber: index + 1,
2191
+ totalTabsCount: this.tabs.length,
2192
+ }));
2193
+ }, _SkyTabsetComponent_updateTabButtons = function _SkyTabsetComponent_updateTabButtons(activeIndex) {
2194
+ this.tabButtons.forEach((button) => {
2195
+ button.active = __classPrivateFieldGet(this, _SkyTabsetComponent_tabsetService, "f").tabIndexesEqual(button.tabIndex, activeIndex);
2196
+ });
2197
+ }, _SkyTabsetComponent_updateTabsetComponent = function _SkyTabsetComponent_updateTabsetComponent(activeIndex, regenerateTabButtons = false) {
2198
+ // Activate/deactivate tab components.
2199
+ this.tabs?.forEach((tab) => {
2200
+ __classPrivateFieldGet(this, _SkyTabsetComponent_tabsetService, "f").tabIndexesEqual(tab.tabIndex, activeIndex)
2201
+ ? tab.activate()
2202
+ : tab.deactivate();
2203
+ });
2204
+ // Update the tab button models.
2205
+ if (regenerateTabButtons || !this.tabButtons.length) {
2206
+ this.tabButtons = __classPrivateFieldGet(this, _SkyTabsetComponent_instances, "m", _SkyTabsetComponent_createTabButtons).call(this, activeIndex);
1765
2207
  }
1766
- /**
1767
- * Updates the UI and state of the tabset component after the tab index or
1768
- * tab components have changed.
1769
- * @param activeIndex The currently active tab index.
1770
- * @param regenerateTabButtons Indicates if tab button view models should be regenerated.
1771
- * Setting this value to `false` will simply update the existing tab buttons. Setting this value
1772
- * to `true` is only necessary when the underlying tab components have changed and the tab
1773
- * buttons must reflect those changes.
1774
- */
1775
- updateTabsetComponent(activeIndex, regenerateTabButtons = false) {
1776
- // Activate/deactivate tab components.
1777
- this.tabs.forEach((tab) => {
1778
- this.tabsetService.tabIndexesEqual(tab.tabIndex, activeIndex)
1779
- ? tab.activate()
1780
- : tab.deactivate();
1781
- });
1782
- // Update the tab button models.
1783
- if (regenerateTabButtons || !this.tabButtons.length) {
1784
- this.tabButtons = this.createTabButtons(activeIndex);
1785
- }
1786
- else {
1787
- this.updateTabButtons(activeIndex);
1788
- }
1789
- // Update the dropdown trigger button text.
1790
- this.dropdownTriggerButtonText = this.tabButtons.find((b) => {
1791
- return this.tabsetService.tabIndexesEqual(b.tabIndex, activeIndex);
1792
- })?.buttonText;
1793
- // Set the query params based on active tab.
1794
- if (this.permalinkId) {
1795
- const activeTabComponent = this.tabs.find((tab) => {
1796
- return this.tabsetService.tabIndexesEqual(tab.tabIndex, activeIndex);
1797
- });
1798
- this.permalinkService.setParam(this.permalinkId, activeTabComponent.permalinkValue);
1799
- }
1800
- // Wait for tab button view models to render before gauging dimensions.
1801
- setTimeout(() => {
1802
- this.adapterService.detectOverflow();
2208
+ else {
2209
+ __classPrivateFieldGet(this, _SkyTabsetComponent_instances, "m", _SkyTabsetComponent_updateTabButtons).call(this, activeIndex);
2210
+ }
2211
+ // Update the dropdown trigger button text.
2212
+ this.dropdownTriggerButtonText =
2213
+ this.tabButtons.find((b) => {
2214
+ return __classPrivateFieldGet(this, _SkyTabsetComponent_tabsetService, "f").tabIndexesEqual(b.tabIndex, activeIndex);
2215
+ })?.buttonText ?? '';
2216
+ // Set the query params based on active tab.
2217
+ if (this.permalinkId) {
2218
+ const activeTabComponent = this.tabs?.find((tab) => {
2219
+ return __classPrivateFieldGet(this, _SkyTabsetComponent_tabsetService, "f").tabIndexesEqual(tab.tabIndex, activeIndex);
1803
2220
  });
1804
- this.changeDetector.markForCheck();
1805
- // Emit the new active index value to consumers.
1806
- if (this.lastActiveTabIndex !== activeIndex) {
1807
- this.lastActiveTabIndex = activeIndex;
1808
- this.activeChange.emit(activeIndex);
2221
+ if (activeTabComponent) {
2222
+ __classPrivateFieldGet(this, _SkyTabsetComponent_permalinkService, "f").setParam(this.permalinkId, activeTabComponent.permalinkValueOrDefault);
1809
2223
  }
1810
2224
  }
1811
- }
1812
- _SkyTabsetComponent__hasFinishButton = new WeakMap();
2225
+ // Wait for tab button view models to render before gauging dimensions.
2226
+ setTimeout(() => {
2227
+ __classPrivateFieldGet(this, _SkyTabsetComponent_adapterService, "f").detectOverflow();
2228
+ });
2229
+ __classPrivateFieldGet(this, _SkyTabsetComponent_changeDetector, "f").markForCheck();
2230
+ // Emit the new active index value to consumers.
2231
+ if (this.lastActiveTabIndex !== activeIndex) {
2232
+ this.lastActiveTabIndex = activeIndex;
2233
+ this.activeChange.emit(activeIndex);
2234
+ }
2235
+ };
1813
2236
  SkyTabsetComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.0", ngImport: i0, type: SkyTabsetComponent, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: SkyTabsetAdapterService }, { token: SkyTabsetPermalinkService }, { token: SkyTabsetService }], target: i0.ɵɵFactoryTarget.Component });
1814
2237
  SkyTabsetComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.0", type: SkyTabsetComponent, selector: "sky-tabset", inputs: { active: "active", ariaLabel: "ariaLabel", ariaLabelledBy: "ariaLabelledBy", permalinkId: "permalinkId", tabStyle: "tabStyle" }, outputs: { activeChange: "activeChange", newTab: "newTab", openTab: "openTab", tabIndexesChange: "tabIndexesChange" }, providers: [
1815
2238
  SkyTabsetAdapterService,
1816
2239
  SkyTabsetPermalinkService,
1817
2240
  SkyTabsetService,
1818
- ], queries: [{ propertyName: "tabs", predicate: SkyTabComponent }], ngImport: i0, template: "<div\n class=\"sky-tabset\"\n role=\"tablist\"\n [attr.aria-label]=\"ariaLabel\"\n [attr.aria-labelledby]=\"ariaLabelledBy\"\n [ngClass]=\"\n 'sky-tabset-mode-' + tabDisplayMode + ' sky-tabset-style-' + tabStyle\n \"\n (window:resize)=\"onWindowResize()\"\n>\n <span class=\"sky-tabset-dropdown\">\n <sky-dropdown *ngIf=\"tabDisplayMode === 'dropdown'\" buttonType=\"tab\">\n <sky-dropdown-button>\n {{ dropdownTriggerButtonText }}\n </sky-dropdown-button>\n <sky-dropdown-menu>\n <sky-dropdown-item\n *ngFor=\"let tabButton of tabButtons\"\n class=\"sky-tab-dropdown-menu-item\"\n >\n <div\n class=\"sky-tab-dropdown-item\"\n [ngClass]=\"{\n 'sky-tab-dropdown-item-selected': tabButton.active\n }\"\n >\n <ng-container\n *ngTemplateOutlet=\"\n tabButtonTemplate;\n context: {\n $implicit: tabButton\n }\n \"\n ></ng-container>\n </div>\n </sky-dropdown-item>\n </sky-dropdown-menu>\n </sky-dropdown>\n </span>\n <span class=\"sky-tabset-tabs\">\n <ng-container *ngFor=\"let tabButton of tabButtons\">\n <ng-container\n *ngTemplateOutlet=\"\n tabButtonTemplate;\n context: {\n $implicit: tabButton\n }\n \"\n ></ng-container>\n </ng-container>\n </span>\n <span class=\"sky-tabset-btns\">\n <button\n *ngIf=\"newTab.observers.length > 0\"\n class=\"sky-btn sky-btn-icon sky-tabset-btn-new sky-margin-inline-compact\"\n type=\"button\"\n [attr.aria-label]=\"'skyux_tab_add' | skyLibResources\"\n [skyThemeClass]=\"{\n 'sky-margin-inline-sm': 'modern'\n }\"\n (click)=\"onNewTabClick()\"\n >\n <sky-icon icon=\"plus-circle\" size=\"lg\"> </sky-icon>\n </button>\n <button\n *ngIf=\"openTab.observers.length > 0\"\n class=\"sky-btn sky-btn-icon sky-tabset-btn-open sky-margin-inline-compact\"\n type=\"button\"\n [attr.aria-label]=\"'skyux_tab_open' | skyLibResources\"\n [skyThemeClass]=\"{\n 'sky-margin-inline-sm': 'modern'\n }\"\n (click)=\"onOpenTabClick()\"\n >\n <sky-icon icon=\"folder-open-o\" size=\"lg\"> </sky-icon>\n </button>\n </span>\n</div>\n<ng-content></ng-content>\n\n<ng-template let-tabButton #tabButtonTemplate>\n <sky-tab-button\n [active]=\"tabButton.active\"\n [ariaControls]=\"tabButton.ariaControls\"\n [buttonHref]=\"tabButton.buttonHref\"\n [buttonId]=\"tabButton.buttonId\"\n [buttonText]=\"tabButton.buttonText\"\n [buttonTextCount]=\"tabButton.buttonTextCount\"\n [closeable]=\"tabButton.closeable\"\n [disabled]=\"tabButton.disabled\"\n [tabStyle]=\"tabStyle\"\n (buttonClick)=\"onTabButtonClick(tabButton)\"\n (closeClick)=\"onTabCloseClick(tabButton)\"\n ></sky-tab-button>\n</ng-template>\n", styles: [".sky-tabset{align-items:center;border-bottom:2px solid #0974a1;display:flex;list-style-type:none;margin:0;overflow:hidden;padding:0 0 0 15px;white-space:nowrap}.sky-tabset.sky-tabset-style-wizard{border-bottom:none;margin-bottom:10px;padding-left:0}.sky-tabset-btns{order:1;padding-left:10px}.sky-tabset-dropdown{order:0;max-width:100%}.sky-tabset-mode-dropdown{line-height:0}.sky-tabset-mode-dropdown .sky-tabset-tabs{visibility:hidden;order:2}.sky-tab-dropdown-menu-item sky-tab-button{display:flex;min-width:300px}.sky-tab-dropdown-menu-item .sky-dropdown-item{margin:0}.sky-tab-dropdown-menu-item .sky-btn-tab-wrapper{width:100%;margin-right:0}.sky-tab-dropdown-menu-item .sky-btn-tab{margin:0;border-radius:0;width:100%;display:flex}.sky-tab-dropdown-menu-item .sky-btn-tab>.sky-tab-heading{flex:1 1 auto}.sky-tab-dropdown-menu-item .sky-btn-tab>.sky-btn-tab-close{flex:0 1 auto}.sky-tabset-tabs{order:0;white-space:nowrap}.sky-tabset-btn-new,.sky-tabset-btn-open{color:#0974a1}.sky-theme-modern .sky-modal-content .sky-tabset{margin:-10px -30px 30px;padding-left:30px;padding-right:30px}.sky-theme-modern .sky-tabset{border-bottom:1px solid #d2d2d2;overflow:visible}.sky-theme-modern .sky-tab-dropdown-menu-item .sky-btn-tab-wrapper{margin-right:0}\n"], dependencies: [{ kind: "directive", type: i4.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i4.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i4.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: i5$1.λ2, selector: "sky-dropdown-button" }, { kind: "component", type: i5$1.λ3, selector: "sky-dropdown", inputs: ["buttonStyle", "buttonType", "disabled", "dismissOnBlur", "label", "horizontalAlignment", "messageStream", "title", "trigger"] }, { kind: "component", type: i5$1.λ1, selector: "sky-dropdown-item", inputs: ["ariaRole"] }, { kind: "component", type: i5$1.λ4, selector: "sky-dropdown-menu", inputs: ["ariaLabelledBy", "ariaRole", "useNativeFocus"], outputs: ["menuChanges"] }, { kind: "component", type: i5.λ4, selector: "sky-icon", inputs: ["icon", "iconType", "size", "fixedWidth", "variant"] }, { kind: "directive", type: i7.λ2, selector: "[skyThemeClass]", inputs: ["class", "skyThemeClass"] }, { kind: "component", type: SkyTabButtonComponent, selector: "sky-tab-button", inputs: ["active", "ariaControls", "buttonHref", "buttonId", "buttonText", "buttonTextCount", "closeable", "disabled", "tabStyle"], outputs: ["buttonClick", "closeClick"] }, { kind: "pipe", type: i3.SkyLibResourcesPipe, name: "skyLibResources" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
2241
+ ], queries: [{ propertyName: "tabs", predicate: SkyTabComponent }], ngImport: i0, template: "<div\n class=\"sky-tabset\"\n role=\"tablist\"\n [attr.aria-label]=\"ariaLabel\"\n [attr.aria-labelledby]=\"ariaLabelledBy\"\n [ngClass]=\"\n 'sky-tabset-mode-' + tabDisplayMode + ' sky-tabset-style-' + tabStyle\n \"\n (window:resize)=\"onWindowResize()\"\n (keydown.arrowright)=\"onRightKeyDown()\"\n (keydown.arrowleft)=\"onLeftKeyDown()\"\n (keydown.home)=\"onHomeKeyDown()\"\n (keydown.end)=\"onEndKeyDown()\"\n>\n <span class=\"sky-tabset-dropdown\">\n <sky-dropdown *ngIf=\"tabDisplayMode === 'dropdown'\" buttonType=\"tab\">\n <sky-dropdown-button>\n {{ dropdownTriggerButtonText }}\n </sky-dropdown-button>\n <sky-dropdown-menu>\n <sky-dropdown-item\n *ngFor=\"let tabButton of tabButtons\"\n class=\"sky-tab-dropdown-menu-item\"\n >\n <div\n class=\"sky-tab-dropdown-item\"\n [ngClass]=\"{\n 'sky-tab-dropdown-item-selected': tabButton.active\n }\"\n >\n <ng-container\n *ngTemplateOutlet=\"\n tabButtonTemplate;\n context: {\n $implicit: tabButton\n }\n \"\n ></ng-container>\n </div>\n </sky-dropdown-item>\n </sky-dropdown-menu>\n </sky-dropdown>\n </span>\n <span class=\"sky-tabset-tabs\">\n <ng-container *ngFor=\"let tabButton of tabButtons\">\n <ng-container\n *ngTemplateOutlet=\"\n tabButtonTemplate;\n context: {\n $implicit: tabButton\n }\n \"\n ></ng-container>\n </ng-container>\n </span>\n <span class=\"sky-tabset-btns\">\n <button\n *ngIf=\"newTab.observers.length > 0\"\n class=\"sky-btn sky-btn-icon sky-tabset-btn-new sky-margin-inline-compact\"\n type=\"button\"\n [attr.aria-label]=\"'skyux_tab_add' | skyLibResources\"\n [skyThemeClass]=\"{\n 'sky-margin-inline-sm': 'modern'\n }\"\n (click)=\"onNewTabClick()\"\n >\n <sky-icon icon=\"plus-circle\" size=\"lg\"> </sky-icon>\n </button>\n <button\n *ngIf=\"openTab.observers.length > 0\"\n class=\"sky-btn sky-btn-icon sky-tabset-btn-open sky-margin-inline-compact\"\n type=\"button\"\n [attr.aria-label]=\"'skyux_tab_open' | skyLibResources\"\n [skyThemeClass]=\"{\n 'sky-margin-inline-sm': 'modern'\n }\"\n (click)=\"onOpenTabClick()\"\n >\n <sky-icon icon=\"folder-open-o\" size=\"lg\"> </sky-icon>\n </button>\n </span>\n</div>\n<ng-content></ng-content>\n\n<ng-template let-tabButton #tabButtonTemplate>\n <sky-tab-button\n [active]=\"tabButton.active\"\n [ariaControls]=\"tabButton.ariaControls\"\n [buttonHref]=\"tabButton.buttonHref\"\n [buttonId]=\"tabButton.buttonId\"\n [buttonText]=\"tabButton.buttonText\"\n [buttonTextCount]=\"tabButton.buttonTextCount\"\n [closeable]=\"tabButton.closeable\"\n [disabled]=\"tabButton.disabled\"\n [tabIndex]=\"tabButton.tabIndex\"\n [tabStyle]=\"tabStyle\"\n [tabNumber]=\"tabButton.tabNumber\"\n [totalTabsCount]=\"tabButton.totalTabsCount\"\n (buttonClick)=\"onTabButtonClick(tabButton)\"\n (closeClick)=\"onTabCloseClick(tabButton)\"\n ></sky-tab-button>\n</ng-template>\n", styles: [".sky-tabset{align-items:center;border-bottom:2px solid #0974a1;display:flex;list-style-type:none;margin:0;overflow:hidden;padding:0 0 0 15px;white-space:nowrap}.sky-tabset.sky-tabset-style-wizard{border-bottom:none;margin-bottom:10px;padding-left:0}.sky-tabset-btns{order:1;padding-left:10px}.sky-tabset-dropdown{order:0;max-width:100%}.sky-tabset-mode-dropdown{line-height:0}.sky-tabset-mode-dropdown .sky-tabset-tabs{visibility:hidden;order:2}.sky-tab-dropdown-menu-item sky-tab-button{display:flex;min-width:300px}.sky-tab-dropdown-menu-item .sky-dropdown-item{margin:0}.sky-tab-dropdown-menu-item .sky-btn-tab-wrapper{width:100%;margin-right:0}.sky-tab-dropdown-menu-item .sky-btn-tab{margin:0;border-radius:0;width:100%;display:flex}.sky-tab-dropdown-menu-item .sky-btn-tab>.sky-tab-heading{flex:1 1 auto}.sky-tab-dropdown-menu-item .sky-btn-tab>.sky-btn-tab-close{flex:0 1 auto}.sky-tabset-tabs{order:0;white-space:nowrap}.sky-tabset-btn-new,.sky-tabset-btn-open{color:#0974a1}.sky-theme-modern .sky-modal-content .sky-tabset{margin:-10px -30px 30px;padding-left:30px;padding-right:30px}.sky-theme-modern .sky-tabset{border-bottom:1px solid #d2d2d2;overflow:visible}.sky-theme-modern .sky-tab-dropdown-menu-item .sky-btn-tab-wrapper{margin-right:0}\n"], dependencies: [{ kind: "directive", type: i4.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i4.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i4.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: i5$1.λ2, selector: "sky-dropdown-button" }, { kind: "component", type: i5$1.λ3, selector: "sky-dropdown", inputs: ["buttonStyle", "buttonType", "disabled", "dismissOnBlur", "label", "horizontalAlignment", "messageStream", "title", "trigger"] }, { kind: "component", type: i5$1.λ1, selector: "sky-dropdown-item", inputs: ["ariaRole"] }, { kind: "component", type: i5$1.λ4, selector: "sky-dropdown-menu", inputs: ["ariaLabelledBy", "ariaRole", "useNativeFocus"], outputs: ["menuChanges"] }, { kind: "component", type: i5.λ4, selector: "sky-icon", inputs: ["icon", "iconType", "size", "fixedWidth", "variant"] }, { kind: "directive", type: i7.λ2, selector: "[skyThemeClass]", inputs: ["class", "skyThemeClass"] }, { kind: "component", type: SkyTabButtonComponent, selector: "sky-tab-button", inputs: ["active", "ariaControls", "buttonHref", "buttonId", "buttonText", "buttonTextCount", "closeable", "disabled", "tabIndex", "tabNumber", "totalTabsCount", "tabStyle"], outputs: ["buttonClick", "closeClick"] }, { kind: "pipe", type: i3.SkyLibResourcesPipe, name: "skyLibResources" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
1819
2242
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.0", ngImport: i0, type: SkyTabsetComponent, decorators: [{
1820
2243
  type: Component,
1821
2244
  args: [{ selector: 'sky-tabset', providers: [
1822
2245
  SkyTabsetAdapterService,
1823
2246
  SkyTabsetPermalinkService,
1824
2247
  SkyTabsetService,
1825
- ], changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, template: "<div\n class=\"sky-tabset\"\n role=\"tablist\"\n [attr.aria-label]=\"ariaLabel\"\n [attr.aria-labelledby]=\"ariaLabelledBy\"\n [ngClass]=\"\n 'sky-tabset-mode-' + tabDisplayMode + ' sky-tabset-style-' + tabStyle\n \"\n (window:resize)=\"onWindowResize()\"\n>\n <span class=\"sky-tabset-dropdown\">\n <sky-dropdown *ngIf=\"tabDisplayMode === 'dropdown'\" buttonType=\"tab\">\n <sky-dropdown-button>\n {{ dropdownTriggerButtonText }}\n </sky-dropdown-button>\n <sky-dropdown-menu>\n <sky-dropdown-item\n *ngFor=\"let tabButton of tabButtons\"\n class=\"sky-tab-dropdown-menu-item\"\n >\n <div\n class=\"sky-tab-dropdown-item\"\n [ngClass]=\"{\n 'sky-tab-dropdown-item-selected': tabButton.active\n }\"\n >\n <ng-container\n *ngTemplateOutlet=\"\n tabButtonTemplate;\n context: {\n $implicit: tabButton\n }\n \"\n ></ng-container>\n </div>\n </sky-dropdown-item>\n </sky-dropdown-menu>\n </sky-dropdown>\n </span>\n <span class=\"sky-tabset-tabs\">\n <ng-container *ngFor=\"let tabButton of tabButtons\">\n <ng-container\n *ngTemplateOutlet=\"\n tabButtonTemplate;\n context: {\n $implicit: tabButton\n }\n \"\n ></ng-container>\n </ng-container>\n </span>\n <span class=\"sky-tabset-btns\">\n <button\n *ngIf=\"newTab.observers.length > 0\"\n class=\"sky-btn sky-btn-icon sky-tabset-btn-new sky-margin-inline-compact\"\n type=\"button\"\n [attr.aria-label]=\"'skyux_tab_add' | skyLibResources\"\n [skyThemeClass]=\"{\n 'sky-margin-inline-sm': 'modern'\n }\"\n (click)=\"onNewTabClick()\"\n >\n <sky-icon icon=\"plus-circle\" size=\"lg\"> </sky-icon>\n </button>\n <button\n *ngIf=\"openTab.observers.length > 0\"\n class=\"sky-btn sky-btn-icon sky-tabset-btn-open sky-margin-inline-compact\"\n type=\"button\"\n [attr.aria-label]=\"'skyux_tab_open' | skyLibResources\"\n [skyThemeClass]=\"{\n 'sky-margin-inline-sm': 'modern'\n }\"\n (click)=\"onOpenTabClick()\"\n >\n <sky-icon icon=\"folder-open-o\" size=\"lg\"> </sky-icon>\n </button>\n </span>\n</div>\n<ng-content></ng-content>\n\n<ng-template let-tabButton #tabButtonTemplate>\n <sky-tab-button\n [active]=\"tabButton.active\"\n [ariaControls]=\"tabButton.ariaControls\"\n [buttonHref]=\"tabButton.buttonHref\"\n [buttonId]=\"tabButton.buttonId\"\n [buttonText]=\"tabButton.buttonText\"\n [buttonTextCount]=\"tabButton.buttonTextCount\"\n [closeable]=\"tabButton.closeable\"\n [disabled]=\"tabButton.disabled\"\n [tabStyle]=\"tabStyle\"\n (buttonClick)=\"onTabButtonClick(tabButton)\"\n (closeClick)=\"onTabCloseClick(tabButton)\"\n ></sky-tab-button>\n</ng-template>\n", styles: [".sky-tabset{align-items:center;border-bottom:2px solid #0974a1;display:flex;list-style-type:none;margin:0;overflow:hidden;padding:0 0 0 15px;white-space:nowrap}.sky-tabset.sky-tabset-style-wizard{border-bottom:none;margin-bottom:10px;padding-left:0}.sky-tabset-btns{order:1;padding-left:10px}.sky-tabset-dropdown{order:0;max-width:100%}.sky-tabset-mode-dropdown{line-height:0}.sky-tabset-mode-dropdown .sky-tabset-tabs{visibility:hidden;order:2}.sky-tab-dropdown-menu-item sky-tab-button{display:flex;min-width:300px}.sky-tab-dropdown-menu-item .sky-dropdown-item{margin:0}.sky-tab-dropdown-menu-item .sky-btn-tab-wrapper{width:100%;margin-right:0}.sky-tab-dropdown-menu-item .sky-btn-tab{margin:0;border-radius:0;width:100%;display:flex}.sky-tab-dropdown-menu-item .sky-btn-tab>.sky-tab-heading{flex:1 1 auto}.sky-tab-dropdown-menu-item .sky-btn-tab>.sky-btn-tab-close{flex:0 1 auto}.sky-tabset-tabs{order:0;white-space:nowrap}.sky-tabset-btn-new,.sky-tabset-btn-open{color:#0974a1}.sky-theme-modern .sky-modal-content .sky-tabset{margin:-10px -30px 30px;padding-left:30px;padding-right:30px}.sky-theme-modern .sky-tabset{border-bottom:1px solid #d2d2d2;overflow:visible}.sky-theme-modern .sky-tab-dropdown-menu-item .sky-btn-tab-wrapper{margin-right:0}\n"] }]
2248
+ ], changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, template: "<div\n class=\"sky-tabset\"\n role=\"tablist\"\n [attr.aria-label]=\"ariaLabel\"\n [attr.aria-labelledby]=\"ariaLabelledBy\"\n [ngClass]=\"\n 'sky-tabset-mode-' + tabDisplayMode + ' sky-tabset-style-' + tabStyle\n \"\n (window:resize)=\"onWindowResize()\"\n (keydown.arrowright)=\"onRightKeyDown()\"\n (keydown.arrowleft)=\"onLeftKeyDown()\"\n (keydown.home)=\"onHomeKeyDown()\"\n (keydown.end)=\"onEndKeyDown()\"\n>\n <span class=\"sky-tabset-dropdown\">\n <sky-dropdown *ngIf=\"tabDisplayMode === 'dropdown'\" buttonType=\"tab\">\n <sky-dropdown-button>\n {{ dropdownTriggerButtonText }}\n </sky-dropdown-button>\n <sky-dropdown-menu>\n <sky-dropdown-item\n *ngFor=\"let tabButton of tabButtons\"\n class=\"sky-tab-dropdown-menu-item\"\n >\n <div\n class=\"sky-tab-dropdown-item\"\n [ngClass]=\"{\n 'sky-tab-dropdown-item-selected': tabButton.active\n }\"\n >\n <ng-container\n *ngTemplateOutlet=\"\n tabButtonTemplate;\n context: {\n $implicit: tabButton\n }\n \"\n ></ng-container>\n </div>\n </sky-dropdown-item>\n </sky-dropdown-menu>\n </sky-dropdown>\n </span>\n <span class=\"sky-tabset-tabs\">\n <ng-container *ngFor=\"let tabButton of tabButtons\">\n <ng-container\n *ngTemplateOutlet=\"\n tabButtonTemplate;\n context: {\n $implicit: tabButton\n }\n \"\n ></ng-container>\n </ng-container>\n </span>\n <span class=\"sky-tabset-btns\">\n <button\n *ngIf=\"newTab.observers.length > 0\"\n class=\"sky-btn sky-btn-icon sky-tabset-btn-new sky-margin-inline-compact\"\n type=\"button\"\n [attr.aria-label]=\"'skyux_tab_add' | skyLibResources\"\n [skyThemeClass]=\"{\n 'sky-margin-inline-sm': 'modern'\n }\"\n (click)=\"onNewTabClick()\"\n >\n <sky-icon icon=\"plus-circle\" size=\"lg\"> </sky-icon>\n </button>\n <button\n *ngIf=\"openTab.observers.length > 0\"\n class=\"sky-btn sky-btn-icon sky-tabset-btn-open sky-margin-inline-compact\"\n type=\"button\"\n [attr.aria-label]=\"'skyux_tab_open' | skyLibResources\"\n [skyThemeClass]=\"{\n 'sky-margin-inline-sm': 'modern'\n }\"\n (click)=\"onOpenTabClick()\"\n >\n <sky-icon icon=\"folder-open-o\" size=\"lg\"> </sky-icon>\n </button>\n </span>\n</div>\n<ng-content></ng-content>\n\n<ng-template let-tabButton #tabButtonTemplate>\n <sky-tab-button\n [active]=\"tabButton.active\"\n [ariaControls]=\"tabButton.ariaControls\"\n [buttonHref]=\"tabButton.buttonHref\"\n [buttonId]=\"tabButton.buttonId\"\n [buttonText]=\"tabButton.buttonText\"\n [buttonTextCount]=\"tabButton.buttonTextCount\"\n [closeable]=\"tabButton.closeable\"\n [disabled]=\"tabButton.disabled\"\n [tabIndex]=\"tabButton.tabIndex\"\n [tabStyle]=\"tabStyle\"\n [tabNumber]=\"tabButton.tabNumber\"\n [totalTabsCount]=\"tabButton.totalTabsCount\"\n (buttonClick)=\"onTabButtonClick(tabButton)\"\n (closeClick)=\"onTabCloseClick(tabButton)\"\n ></sky-tab-button>\n</ng-template>\n", styles: [".sky-tabset{align-items:center;border-bottom:2px solid #0974a1;display:flex;list-style-type:none;margin:0;overflow:hidden;padding:0 0 0 15px;white-space:nowrap}.sky-tabset.sky-tabset-style-wizard{border-bottom:none;margin-bottom:10px;padding-left:0}.sky-tabset-btns{order:1;padding-left:10px}.sky-tabset-dropdown{order:0;max-width:100%}.sky-tabset-mode-dropdown{line-height:0}.sky-tabset-mode-dropdown .sky-tabset-tabs{visibility:hidden;order:2}.sky-tab-dropdown-menu-item sky-tab-button{display:flex;min-width:300px}.sky-tab-dropdown-menu-item .sky-dropdown-item{margin:0}.sky-tab-dropdown-menu-item .sky-btn-tab-wrapper{width:100%;margin-right:0}.sky-tab-dropdown-menu-item .sky-btn-tab{margin:0;border-radius:0;width:100%;display:flex}.sky-tab-dropdown-menu-item .sky-btn-tab>.sky-tab-heading{flex:1 1 auto}.sky-tab-dropdown-menu-item .sky-btn-tab>.sky-btn-tab-close{flex:0 1 auto}.sky-tabset-tabs{order:0;white-space:nowrap}.sky-tabset-btn-new,.sky-tabset-btn-open{color:#0974a1}.sky-theme-modern .sky-modal-content .sky-tabset{margin:-10px -30px 30px;padding-left:30px;padding-right:30px}.sky-theme-modern .sky-tabset{border-bottom:1px solid #d2d2d2;overflow:visible}.sky-theme-modern .sky-tab-dropdown-menu-item .sky-btn-tab-wrapper{margin-right:0}\n"] }]
1826
2249
  }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: SkyTabsetAdapterService }, { type: SkyTabsetPermalinkService }, { type: SkyTabsetService }]; }, propDecorators: { active: [{
1827
2250
  type: Input
1828
2251
  }], ariaLabel: [{
@@ -1846,163 +2269,14 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.0", ngImpor
1846
2269
  args: [SkyTabComponent]
1847
2270
  }] } });
1848
2271
 
1849
- var _SkyTabsetNavButtonComponent_instances, _SkyTabsetNavButtonComponent__buttonType, _SkyTabsetNavButtonComponent__disabled, _SkyTabsetNavButtonComponent__tabset, _SkyTabsetNavButtonComponent_activeIndexNumber, _SkyTabsetNavButtonComponent_activeSkyTabIndex, _SkyTabsetNavButtonComponent_currentTabsetSub, _SkyTabsetNavButtonComponent_logger, _SkyTabsetNavButtonComponent_tabCount, _SkyTabsetNavButtonComponent_tabToSelect, _SkyTabsetNavButtonComponent_ngUnsubscribe, _SkyTabsetNavButtonComponent_updateButtonVisibility, _SkyTabsetNavButtonComponent_updateButtonProperties, _SkyTabsetNavButtonComponent_updateTabToSelect;
1850
- const buttonTypeNext = 'next';
1851
- const buttonTypePrevious = 'previous';
1852
- const buttonTypeFinish = 'finish';
1853
- class SkyTabsetNavButtonComponent {
1854
- constructor(logger) {
1855
- _SkyTabsetNavButtonComponent_instances.add(this);
1856
- this.isVisible = false;
1857
- _SkyTabsetNavButtonComponent__buttonType.set(this, void 0);
1858
- _SkyTabsetNavButtonComponent__disabled.set(this, void 0);
1859
- _SkyTabsetNavButtonComponent__tabset.set(this, void 0);
1860
- _SkyTabsetNavButtonComponent_activeIndexNumber.set(this, void 0);
1861
- _SkyTabsetNavButtonComponent_activeSkyTabIndex.set(this, void 0);
1862
- _SkyTabsetNavButtonComponent_currentTabsetSub.set(this, void 0);
1863
- _SkyTabsetNavButtonComponent_logger.set(this, void 0);
1864
- _SkyTabsetNavButtonComponent_tabCount.set(this, void 0);
1865
- _SkyTabsetNavButtonComponent_tabToSelect.set(this, void 0);
1866
- _SkyTabsetNavButtonComponent_ngUnsubscribe.set(this, new Subject());
1867
- __classPrivateFieldSet(this, _SkyTabsetNavButtonComponent_logger, logger, "f");
1868
- }
1869
- /**
1870
- * Specifies the tabset wizard component to associate with the nav button.
1871
- * @required
1872
- */
1873
- set tabset(value) {
1874
- __classPrivateFieldSet(this, _SkyTabsetNavButtonComponent__tabset, value, "f");
1875
- if (__classPrivateFieldGet(this, _SkyTabsetNavButtonComponent_currentTabsetSub, "f")) {
1876
- __classPrivateFieldGet(this, _SkyTabsetNavButtonComponent_currentTabsetSub, "f").unsubscribe();
1877
- }
1878
- if (value) {
1879
- if (__classPrivateFieldGet(this, _SkyTabsetNavButtonComponent__buttonType, "f") === buttonTypeFinish) {
1880
- __classPrivateFieldGet(this, _SkyTabsetNavButtonComponent__tabset, "f").hasFinishButton = true;
1881
- }
1882
- __classPrivateFieldSet(this, _SkyTabsetNavButtonComponent_currentTabsetSub, __classPrivateFieldGet(this, _SkyTabsetNavButtonComponent__tabset, "f").activeChange
1883
- .pipe(distinctUntilChanged(), takeUntil(__classPrivateFieldGet(this, _SkyTabsetNavButtonComponent_ngUnsubscribe, "f")))
1884
- .subscribe((index) => {
1885
- __classPrivateFieldSet(this, _SkyTabsetNavButtonComponent_activeSkyTabIndex, index, "f");
1886
- __classPrivateFieldSet(this, _SkyTabsetNavButtonComponent_tabCount, __classPrivateFieldGet(this, _SkyTabsetNavButtonComponent__tabset, "f").tabs.length, "f");
1887
- __classPrivateFieldGet(this, _SkyTabsetNavButtonComponent_instances, "m", _SkyTabsetNavButtonComponent_updateTabToSelect).call(this);
1888
- __classPrivateFieldGet(this, _SkyTabsetNavButtonComponent_instances, "m", _SkyTabsetNavButtonComponent_updateButtonVisibility).call(this);
1889
- __classPrivateFieldGet(this, _SkyTabsetNavButtonComponent_instances, "m", _SkyTabsetNavButtonComponent_updateButtonProperties).call(this);
1890
- }), "f");
1891
- }
1892
- else {
1893
- __classPrivateFieldGet(this, _SkyTabsetNavButtonComponent_logger, "f").error('The SkyTabsetNavButtonComponent requires a reference to the SkyTabsetComponent it controls.');
1894
- }
1895
- }
1896
- /**
1897
- * Specifies the type of nav button to include.
1898
- * @required
1899
- */
1900
- get buttonType() {
1901
- return __classPrivateFieldGet(this, _SkyTabsetNavButtonComponent__buttonType, "f");
1902
- }
1903
- set buttonType(value) {
1904
- __classPrivateFieldSet(this, _SkyTabsetNavButtonComponent__buttonType, value, "f");
1905
- __classPrivateFieldGet(this, _SkyTabsetNavButtonComponent_instances, "m", _SkyTabsetNavButtonComponent_updateTabToSelect).call(this);
1906
- __classPrivateFieldGet(this, _SkyTabsetNavButtonComponent_instances, "m", _SkyTabsetNavButtonComponent_updateButtonProperties).call(this);
1907
- __classPrivateFieldGet(this, _SkyTabsetNavButtonComponent_instances, "m", _SkyTabsetNavButtonComponent_updateButtonVisibility).call(this);
1908
- if (value === buttonTypeFinish) {
1909
- this.type = 'submit';
1910
- }
1911
- else {
1912
- this.type = 'button';
1913
- }
1914
- }
1915
- /**
1916
- * Indicates whether to disable the nav button.
1917
- * Defaults to the disabled state of the next tab for `next`, the existence of a previous tab for `previous`,
1918
- * and false for `finish`.
1919
- */
1920
- set disabled(value) {
1921
- __classPrivateFieldSet(this, _SkyTabsetNavButtonComponent__disabled, value, "f");
1922
- }
1923
- get disabled() {
1924
- if (__classPrivateFieldGet(this, _SkyTabsetNavButtonComponent__disabled, "f") !== undefined) {
1925
- return __classPrivateFieldGet(this, _SkyTabsetNavButtonComponent__disabled, "f");
1926
- }
1927
- else if (__classPrivateFieldGet(this, _SkyTabsetNavButtonComponent__buttonType, "f") === buttonTypeFinish) {
1928
- return false;
1929
- }
1930
- return !__classPrivateFieldGet(this, _SkyTabsetNavButtonComponent_tabToSelect, "f") || __classPrivateFieldGet(this, _SkyTabsetNavButtonComponent_tabToSelect, "f").disabled;
1931
- }
1932
- ngOnDestroy() {
1933
- __classPrivateFieldGet(this, _SkyTabsetNavButtonComponent_ngUnsubscribe, "f").next();
1934
- __classPrivateFieldGet(this, _SkyTabsetNavButtonComponent_ngUnsubscribe, "f").complete();
1935
- }
1936
- buttonClick() {
1937
- /* istanbul ignore else */
1938
- if (__classPrivateFieldGet(this, _SkyTabsetNavButtonComponent_tabToSelect, "f") && !__classPrivateFieldGet(this, _SkyTabsetNavButtonComponent_tabToSelect, "f").disabled) {
1939
- __classPrivateFieldGet(this, _SkyTabsetNavButtonComponent__tabset, "f").active = __classPrivateFieldGet(this, _SkyTabsetNavButtonComponent_tabToSelect, "f").tabIndex;
1940
- }
1941
- }
1942
- }
1943
- _SkyTabsetNavButtonComponent__buttonType = new WeakMap(), _SkyTabsetNavButtonComponent__disabled = new WeakMap(), _SkyTabsetNavButtonComponent__tabset = new WeakMap(), _SkyTabsetNavButtonComponent_activeIndexNumber = new WeakMap(), _SkyTabsetNavButtonComponent_activeSkyTabIndex = new WeakMap(), _SkyTabsetNavButtonComponent_currentTabsetSub = new WeakMap(), _SkyTabsetNavButtonComponent_logger = new WeakMap(), _SkyTabsetNavButtonComponent_tabCount = new WeakMap(), _SkyTabsetNavButtonComponent_tabToSelect = new WeakMap(), _SkyTabsetNavButtonComponent_ngUnsubscribe = new WeakMap(), _SkyTabsetNavButtonComponent_instances = new WeakSet(), _SkyTabsetNavButtonComponent_updateButtonVisibility = function _SkyTabsetNavButtonComponent_updateButtonVisibility() {
1944
- const isLastStep = __classPrivateFieldGet(this, _SkyTabsetNavButtonComponent_activeIndexNumber, "f") === __classPrivateFieldGet(this, _SkyTabsetNavButtonComponent_tabCount, "f") - 1;
1945
- if (__classPrivateFieldGet(this, _SkyTabsetNavButtonComponent__buttonType, "f") === buttonTypeFinish) {
1946
- this.isVisible = isLastStep;
1947
- return;
1948
- }
1949
- // Hide the next button on the last step only if a finish button exists.
1950
- if (__classPrivateFieldGet(this, _SkyTabsetNavButtonComponent__buttonType, "f") === buttonTypeNext &&
1951
- isLastStep &&
1952
- __classPrivateFieldGet(this, _SkyTabsetNavButtonComponent__tabset, "f").hasFinishButton) {
1953
- this.isVisible = false;
1954
- return;
1955
- }
1956
- this.isVisible = true;
1957
- }, _SkyTabsetNavButtonComponent_updateButtonProperties = function _SkyTabsetNavButtonComponent_updateButtonProperties() {
1958
- if ((__classPrivateFieldGet(this, _SkyTabsetNavButtonComponent__buttonType, "f") === buttonTypeNext ||
1959
- __classPrivateFieldGet(this, _SkyTabsetNavButtonComponent__buttonType, "f") === buttonTypeFinish) &&
1960
- __classPrivateFieldGet(this, _SkyTabsetNavButtonComponent__tabset, "f")?.hasFinishButton) {
1961
- this.buttonClassName = 'sky-btn-primary';
1962
- }
1963
- else {
1964
- this.buttonClassName = 'sky-btn-default';
1965
- }
1966
- this.ariaControls = __classPrivateFieldGet(this, _SkyTabsetNavButtonComponent_tabToSelect, "f")?.tabPanelId;
1967
- }, _SkyTabsetNavButtonComponent_updateTabToSelect = function _SkyTabsetNavButtonComponent_updateTabToSelect() {
1968
- if (__classPrivateFieldGet(this, _SkyTabsetNavButtonComponent__tabset, "f")?.tabs) {
1969
- const tabs = __classPrivateFieldGet(this, _SkyTabsetNavButtonComponent__tabset, "f").tabs.toArray();
1970
- __classPrivateFieldSet(this, _SkyTabsetNavButtonComponent_tabToSelect, undefined, "f");
1971
- // tab index can be a number or a string, but we need the actual number index
1972
- __classPrivateFieldSet(this, _SkyTabsetNavButtonComponent_activeIndexNumber, tabs.findIndex((tab) => tab.tabIndex === __classPrivateFieldGet(this, _SkyTabsetNavButtonComponent_activeSkyTabIndex, "f")), "f");
1973
- /* istanbul ignore else */
1974
- if (__classPrivateFieldGet(this, _SkyTabsetNavButtonComponent_activeIndexNumber, "f") !== undefined) {
1975
- if (__classPrivateFieldGet(this, _SkyTabsetNavButtonComponent__buttonType, "f") === buttonTypeNext) {
1976
- __classPrivateFieldSet(this, _SkyTabsetNavButtonComponent_tabToSelect, tabs[__classPrivateFieldGet(this, _SkyTabsetNavButtonComponent_activeIndexNumber, "f") + 1], "f");
1977
- }
1978
- else if (__classPrivateFieldGet(this, _SkyTabsetNavButtonComponent__buttonType, "f") === buttonTypePrevious) {
1979
- __classPrivateFieldSet(this, _SkyTabsetNavButtonComponent_tabToSelect, tabs[__classPrivateFieldGet(this, _SkyTabsetNavButtonComponent_activeIndexNumber, "f") - 1], "f");
1980
- }
1981
- }
1982
- }
1983
- };
1984
- SkyTabsetNavButtonComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.0", ngImport: i0, type: SkyTabsetNavButtonComponent, deps: [{ token: i1.SkyLogService }], target: i0.ɵɵFactoryTarget.Component });
1985
- SkyTabsetNavButtonComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.0", type: SkyTabsetNavButtonComponent, selector: "sky-tabset-nav-button", inputs: { tabset: "tabset", buttonType: "buttonType", buttonText: "buttonText", disabled: "disabled" }, ngImport: i0, template: "<button\n *ngIf=\"isVisible\"\n class=\"sky-btn sky-margin-inline-sm\"\n [attr.aria-controls]=\"ariaControls\"\n [disabled]=\"disabled\"\n [ngClass]=\"buttonClassName\"\n [type]=\"type\"\n (click)=\"buttonType === 'finish' ? null : buttonClick()\"\n>\n {{ buttonText || ('skyux_tabs_navigator_' + buttonType | skyLibResources) }}\n</button>\n", dependencies: [{ kind: "directive", type: i4.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "pipe", type: i3.SkyLibResourcesPipe, name: "skyLibResources" }] });
1986
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.0", ngImport: i0, type: SkyTabsetNavButtonComponent, decorators: [{
1987
- type: Component,
1988
- args: [{ selector: 'sky-tabset-nav-button', template: "<button\n *ngIf=\"isVisible\"\n class=\"sky-btn sky-margin-inline-sm\"\n [attr.aria-controls]=\"ariaControls\"\n [disabled]=\"disabled\"\n [ngClass]=\"buttonClassName\"\n [type]=\"type\"\n (click)=\"buttonType === 'finish' ? null : buttonClick()\"\n>\n {{ buttonText || ('skyux_tabs_navigator_' + buttonType | skyLibResources) }}\n</button>\n" }]
1989
- }], ctorParameters: function () { return [{ type: i1.SkyLogService }]; }, propDecorators: { tabset: [{
1990
- type: Input
1991
- }], buttonType: [{
1992
- type: Input
1993
- }], buttonText: [{
1994
- type: Input
1995
- }], disabled: [{
1996
- type: Input
1997
- }] } });
1998
-
1999
2272
  class SkyTabsModule {
2000
2273
  }
2001
2274
  SkyTabsModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.0", ngImport: i0, type: SkyTabsModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
2002
2275
  SkyTabsModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "14.2.0", ngImport: i0, type: SkyTabsModule, declarations: [SkyTabButtonComponent,
2003
2276
  SkyTabComponent,
2004
2277
  SkyTabsetComponent,
2005
- SkyTabsetNavButtonComponent], imports: [CommonModule,
2278
+ SkyTabsetNavButtonComponent,
2279
+ SkyTabsetNavButtonDisabledPipe], imports: [CommonModule,
2006
2280
  RouterModule,
2007
2281
  SkyDropdownModule,
2008
2282
  SkyI18nModule,
@@ -2024,6 +2298,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.0", ngImpor
2024
2298
  SkyTabComponent,
2025
2299
  SkyTabsetComponent,
2026
2300
  SkyTabsetNavButtonComponent,
2301
+ SkyTabsetNavButtonDisabledPipe,
2027
2302
  ],
2028
2303
  imports: [
2029
2304
  CommonModule,