@skyux/tabs 4.6.9

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (152) hide show
  1. package/CHANGELOG.md +218 -0
  2. package/README.md +5 -0
  3. package/bundles/skyux-tabs-testing.umd.js +395 -0
  4. package/bundles/skyux-tabs-testing.umd.js.map +1 -0
  5. package/bundles/skyux-tabs-testing.umd.min.js +16 -0
  6. package/bundles/skyux-tabs-testing.umd.min.js.map +1 -0
  7. package/bundles/skyux-tabs.umd.js +2414 -0
  8. package/bundles/skyux-tabs.umd.js.map +1 -0
  9. package/bundles/skyux-tabs.umd.min.js +16 -0
  10. package/bundles/skyux-tabs.umd.min.js.map +1 -0
  11. package/esm2015/modules/sectioned-form/sectioned-form-section.component.js +74 -0
  12. package/esm2015/modules/sectioned-form/sectioned-form.component.js +105 -0
  13. package/esm2015/modules/sectioned-form/sectioned-form.module.js +28 -0
  14. package/esm2015/modules/sectioned-form/sectioned-form.service.js +34 -0
  15. package/esm2015/modules/shared/tabs-resources.module.js +17 -0
  16. package/esm2015/modules/tabs/tab-button.component.js +71 -0
  17. package/esm2015/modules/tabs/tab-index.js +1 -0
  18. package/esm2015/modules/tabs/tab.component.js +144 -0
  19. package/esm2015/modules/tabs/tabs.module.js +41 -0
  20. package/esm2015/modules/tabs/tabset-active-tab-unregistered-args.js +1 -0
  21. package/esm2015/modules/tabs/tabset-adapter.service.js +53 -0
  22. package/esm2015/modules/tabs/tabset-buttons-display-mode.js +1 -0
  23. package/esm2015/modules/tabs/tabset-nav-button.component.js +122 -0
  24. package/esm2015/modules/tabs/tabset-permalink.service.js +123 -0
  25. package/esm2015/modules/tabs/tabset-style.js +1 -0
  26. package/esm2015/modules/tabs/tabset-tab-indexes-change.js +1 -0
  27. package/esm2015/modules/tabs/tabset.component.js +403 -0
  28. package/esm2015/modules/tabs/tabset.service.js +109 -0
  29. package/esm2015/modules/vertical-tabset/vertical-tab-media-query.service.js +71 -0
  30. package/esm2015/modules/vertical-tabset/vertical-tab.component.js +195 -0
  31. package/esm2015/modules/vertical-tabset/vertical-tabset-adapter.service.js +50 -0
  32. package/esm2015/modules/vertical-tabset/vertical-tabset-group.component.js +113 -0
  33. package/esm2015/modules/vertical-tabset/vertical-tabset.component.js +139 -0
  34. package/esm2015/modules/vertical-tabset/vertical-tabset.module.js +43 -0
  35. package/esm2015/modules/vertical-tabset/vertical-tabset.service.js +167 -0
  36. package/esm2015/plugin-resources/tabs-resources-provider.js +16 -0
  37. package/esm2015/public_api.js +10 -0
  38. package/esm2015/skyux-tabs.js +21 -0
  39. package/esm2015/testing/public_api.js +2 -0
  40. package/esm2015/testing/skyux-tabs-testing.js +5 -0
  41. package/esm2015/testing/tabs/tab-fixture-tab.js +1 -0
  42. package/esm2015/testing/tabs/tabset-fixture.js +141 -0
  43. package/esm5/modules/sectioned-form/sectioned-form-section.component.js +84 -0
  44. package/esm5/modules/sectioned-form/sectioned-form.component.js +111 -0
  45. package/esm5/modules/sectioned-form/sectioned-form.module.js +31 -0
  46. package/esm5/modules/sectioned-form/sectioned-form.service.js +35 -0
  47. package/esm5/modules/shared/tabs-resources.module.js +20 -0
  48. package/esm5/modules/tabs/tab-button.component.js +72 -0
  49. package/esm5/modules/tabs/tab-index.js +1 -0
  50. package/esm5/modules/tabs/tab.component.js +173 -0
  51. package/esm5/modules/tabs/tabs.module.js +44 -0
  52. package/esm5/modules/tabs/tabset-active-tab-unregistered-args.js +1 -0
  53. package/esm5/modules/tabs/tabset-adapter.service.js +58 -0
  54. package/esm5/modules/tabs/tabset-buttons-display-mode.js +1 -0
  55. package/esm5/modules/tabs/tabset-nav-button.component.js +145 -0
  56. package/esm5/modules/tabs/tabset-permalink.service.js +129 -0
  57. package/esm5/modules/tabs/tabset-style.js +1 -0
  58. package/esm5/modules/tabs/tabset-tab-indexes-change.js +1 -0
  59. package/esm5/modules/tabs/tabset.component.js +434 -0
  60. package/esm5/modules/tabs/tabset.service.js +122 -0
  61. package/esm5/modules/vertical-tabset/vertical-tab-media-query.service.js +76 -0
  62. package/esm5/modules/vertical-tabset/vertical-tab.component.js +214 -0
  63. package/esm5/modules/vertical-tabset/vertical-tabset-adapter.service.js +51 -0
  64. package/esm5/modules/vertical-tabset/vertical-tabset-group.component.js +119 -0
  65. package/esm5/modules/vertical-tabset/vertical-tabset.component.js +145 -0
  66. package/esm5/modules/vertical-tabset/vertical-tabset.module.js +46 -0
  67. package/esm5/modules/vertical-tabset/vertical-tabset.service.js +176 -0
  68. package/esm5/plugin-resources/tabs-resources-provider.js +17 -0
  69. package/esm5/public_api.js +10 -0
  70. package/esm5/skyux-tabs.js +21 -0
  71. package/esm5/testing/public_api.js +2 -0
  72. package/esm5/testing/skyux-tabs-testing.js +5 -0
  73. package/esm5/testing/tabs/tab-fixture-tab.js +1 -0
  74. package/esm5/testing/tabs/tabset-fixture.js +168 -0
  75. package/fesm2015/skyux-tabs-testing.js +148 -0
  76. package/fesm2015/skyux-tabs-testing.js.map +1 -0
  77. package/fesm2015/skyux-tabs.js +1998 -0
  78. package/fesm2015/skyux-tabs.js.map +1 -0
  79. package/fesm5/skyux-tabs-testing.js +174 -0
  80. package/fesm5/skyux-tabs-testing.js.map +1 -0
  81. package/fesm5/skyux-tabs.js +2182 -0
  82. package/fesm5/skyux-tabs.js.map +1 -0
  83. package/modules/sectioned-form/sectioned-form-section.component.d.ts +39 -0
  84. package/modules/sectioned-form/sectioned-form.component.d.ts +30 -0
  85. package/modules/sectioned-form/sectioned-form.module.d.ts +2 -0
  86. package/modules/sectioned-form/sectioned-form.service.d.ts +21 -0
  87. package/modules/shared/tabs-resources.module.d.ts +2 -0
  88. package/modules/tabs/tab-button.component.d.ts +21 -0
  89. package/modules/tabs/tab-index.d.ts +1 -0
  90. package/modules/tabs/tab.component.d.ts +77 -0
  91. package/modules/tabs/tabs.module.d.ts +2 -0
  92. package/modules/tabs/tabset-active-tab-unregistered-args.d.ts +10 -0
  93. package/modules/tabs/tabset-adapter.service.d.ts +21 -0
  94. package/modules/tabs/tabset-buttons-display-mode.d.ts +1 -0
  95. package/modules/tabs/tabset-nav-button.component.d.ts +24 -0
  96. package/modules/tabs/tabset-permalink.service.d.ts +43 -0
  97. package/modules/tabs/tabset-style.d.ts +1 -0
  98. package/modules/tabs/tabset-tab-indexes-change.d.ts +7 -0
  99. package/modules/tabs/tabset.component.d.ts +142 -0
  100. package/modules/tabs/tabset.service.d.ts +51 -0
  101. package/modules/vertical-tabset/vertical-tab-media-query.service.d.ts +15 -0
  102. package/modules/vertical-tabset/vertical-tab.component.d.ts +86 -0
  103. package/modules/vertical-tabset/vertical-tabset-adapter.service.d.ts +10 -0
  104. package/modules/vertical-tabset/vertical-tabset-group.component.d.ts +33 -0
  105. package/modules/vertical-tabset/vertical-tabset.component.d.ts +45 -0
  106. package/modules/vertical-tabset/vertical-tabset.module.d.ts +2 -0
  107. package/modules/vertical-tabset/vertical-tabset.service.d.ts +41 -0
  108. package/package.json +41 -0
  109. package/plugin-resources/tabs-resources-provider.d.ts +5 -0
  110. package/public_api.d.ts +9 -0
  111. package/skyux-tabs.d.ts +20 -0
  112. package/skyux-tabs.metadata.json +1 -0
  113. package/src/assets/img/guidelines/tabs/tabs-anatomy.png +0 -0
  114. package/src/assets/img/guidelines/tabs/tabs-behavior-1.png +0 -0
  115. package/src/assets/img/guidelines/tabs/tabs-layout-1.png +0 -0
  116. package/src/assets/img/guidelines/tabs/tabs-layout-2.png +0 -0
  117. package/src/assets/img/guidelines/tabs/tabs-layout-3.png +0 -0
  118. package/src/assets/img/guidelines/tabs/tabs-layout-4.png +0 -0
  119. package/src/assets/img/guidelines/tabs/tabs-options-1.png +0 -0
  120. package/src/assets/img/guidelines/tabs/tabs-options-2.png +0 -0
  121. package/src/assets/img/guidelines/tabs/tabs-state-collapsed-closed.png +0 -0
  122. package/src/assets/img/guidelines/tabs/tabs-state-collapsed-open.png +0 -0
  123. package/src/assets/img/guidelines/tabs/tabs-state-hover.png +0 -0
  124. package/src/assets/img/guidelines/tabs/tabs-state-selected.png +0 -0
  125. package/src/assets/img/guidelines/tabs/tabs-state-unselected.png +0 -0
  126. package/src/assets/img/guidelines/tabs/tabs-usage-1.png +0 -0
  127. package/src/assets/img/guidelines/tabs/tabs-usage-2.png +0 -0
  128. package/src/assets/img/guidelines/tabs/tabs-usage-3.png +0 -0
  129. package/src/assets/img/guidelines/tabs/tabs-usage-4.png +0 -0
  130. package/src/assets/img/guidelines/tabs/tabs-usage-5.png +0 -0
  131. package/src/assets/img/guidelines/vertical-tabs/vertical-tabs-anatomy-1.png +0 -0
  132. package/src/assets/img/guidelines/vertical-tabs/vertical-tabs-anatomy-2.png +0 -0
  133. package/src/assets/img/guidelines/vertical-tabs/vertical-tabs-layout-1.png +0 -0
  134. package/src/assets/img/guidelines/vertical-tabs/vertical-tabs-state-hover.png +0 -0
  135. package/src/assets/img/guidelines/vertical-tabs/vertical-tabs-state-selected-group.png +0 -0
  136. package/src/assets/img/guidelines/vertical-tabs/vertical-tabs-state-selected.png +0 -0
  137. package/src/assets/img/guidelines/vertical-tabs/vertical-tabs-state-unselected-group.png +0 -0
  138. package/src/assets/img/guidelines/vertical-tabs/vertical-tabs-state-unselected.png +0 -0
  139. package/src/assets/img/guidelines/vertical-tabs/vertical-tabs-usage-1.png +0 -0
  140. package/src/assets/img/guidelines/vertical-tabs/vertical-tabs-usage-2.png +0 -0
  141. package/src/assets/img/guidelines/vertical-tabs/vertical-tabs-usage-3.png +0 -0
  142. package/src/assets/img/guidelines/vertical-tabs/vertical-tabs-usage-4.png +0 -0
  143. package/src/assets/img/guidelines/vertical-tabs/vertical-tabs-usage-5.png +0 -0
  144. package/src/assets/img/guidelines/vertical-tabs/vertical-tabs-usage-6.png +0 -0
  145. package/src/assets/img/guidelines/vertical-tabs/vertical-tabs-usage-7.png +0 -0
  146. package/src/assets/locales/resources_en_US.json +26 -0
  147. package/testing/package.json +13 -0
  148. package/testing/public_api.d.ts +2 -0
  149. package/testing/skyux-tabs-testing.d.ts +4 -0
  150. package/testing/skyux-tabs-testing.metadata.json +1 -0
  151. package/testing/tabs/tab-fixture-tab.d.ts +25 -0
  152. package/testing/tabs/tabset-fixture.d.ts +50 -0
@@ -0,0 +1,51 @@
1
+ import { Observable } from 'rxjs';
2
+ import { SkyTabIndex } from './tab-index';
3
+ import { SkyTabsetActiveTabUnregisteredArgs } from './tabset-active-tab-unregistered-args';
4
+ /**
5
+ * @internal
6
+ */
7
+ export declare class SkyTabsetService {
8
+ get activeTabUnregistered(): Observable<SkyTabsetActiveTabUnregisteredArgs>;
9
+ get activeTabIndex(): Observable<SkyTabIndex>;
10
+ currentActiveTabIndex: SkyTabIndex;
11
+ private _activeTabIndex;
12
+ private _activeTabUnregistered;
13
+ private tabs;
14
+ private tabCounter;
15
+ /**
16
+ * Sets the active tab by its unique `tabIndex` property.
17
+ */
18
+ setActiveTabIndex(value: SkyTabIndex, config?: {
19
+ emitChange: boolean;
20
+ }): void;
21
+ /**
22
+ * Registers a tab component.
23
+ */
24
+ registerTab(tabIndex?: SkyTabIndex): SkyTabIndex;
25
+ updateTabIndex(currentTabIndex: SkyTabIndex, newTabIndex: SkyTabIndex): void;
26
+ /**
27
+ * Unregisters a tab component.
28
+ */
29
+ unregisterTab(tabIndex: SkyTabIndex): void;
30
+ /**
31
+ * Unregisters all tab components at once.
32
+ */
33
+ unregisterAll(): void;
34
+ /**
35
+ * Compares two tab indexes and returns `true` if they are equal.
36
+ */
37
+ tabIndexesEqual(tabIndex1: SkyTabIndex, tabIndex2: SkyTabIndex): boolean;
38
+ /**
39
+ * Verifies if a provided tab index is registered.
40
+ */
41
+ isValidTabIndex(tabIndex: SkyTabIndex): boolean;
42
+ /**
43
+ * Activates the first registered tab.
44
+ */
45
+ activateFirstTab(): SkyTabIndex | undefined;
46
+ /**
47
+ * Activates the next registered tab, or the previous one based on a provided array index.
48
+ */
49
+ activateNearestTab(arrayIndex: number): void;
50
+ private isTabIndexActive;
51
+ }
@@ -0,0 +1,15 @@
1
+ import { SkyMediaBreakpoints, SkyMediaQueryListener } from '@skyux/core';
2
+ import { Subscription } from 'rxjs';
3
+ /**
4
+ * @internal
5
+ */
6
+ export declare class SkyVerticalTabMediaQueryService {
7
+ get current(): SkyMediaBreakpoints;
8
+ private currentSubject;
9
+ private _current;
10
+ constructor();
11
+ subscribe(listener: SkyMediaQueryListener): Subscription;
12
+ setBreakpointForWidth(width: number): void;
13
+ isWidthWithinBreakpiont(width: number, breakpoint: SkyMediaBreakpoints): boolean;
14
+ destroy(): void;
15
+ }
@@ -0,0 +1,86 @@
1
+ import { ChangeDetectorRef, ElementRef, OnDestroy, OnInit } from '@angular/core';
2
+ import { SkyVerticalTabMediaQueryService } from './vertical-tab-media-query.service';
3
+ import { SkyVerticalTabsetService } from './vertical-tabset.service';
4
+ import { SkyVerticalTabsetAdapterService } from './vertical-tabset-adapter.service';
5
+ export declare class SkyVerticalTabComponent implements OnInit, OnDestroy {
6
+ private adapterService;
7
+ private changeRef;
8
+ private tabsetService;
9
+ private verticalTabMediaQueryService;
10
+ /**
11
+ * Indicates whether the tab is active when the tabset loads.
12
+ */
13
+ active: boolean;
14
+ /**
15
+ * Specifies the HTML element ID (without the leading `#`) of the element that contains
16
+ * the content that the vertical tab displays, which corresponds to the `tabId`. This property
17
+ * [supports accessibility rules for disclosures](https://www.w3.org/TR/wai-aria-practices-1.1/#disclosure).
18
+ */
19
+ get ariaControls(): string;
20
+ set ariaControls(value: string);
21
+ /**
22
+ * @internal
23
+ */
24
+ ariaInvalid: boolean;
25
+ /**
26
+ * @internal
27
+ */
28
+ ariaRequired: boolean;
29
+ /**
30
+ * Specifies an ARIA role for the vertical tab
31
+ * [to support accessibility](https://developer.blackbaud.com/skyux/learn/accessibility)
32
+ * by indicating how the tab functions and what it controls. For information about how
33
+ * an ARIA role indicates what an item represents on a web page, see the
34
+ * [WAI-ARIA roles model](https://www.w3.org/WAI/PF/aria/roles).
35
+ * @default "tab"
36
+ */
37
+ get ariaRole(): string;
38
+ set ariaRole(value: string);
39
+ /**
40
+ * Indicates whether to disable the tab.
41
+ */
42
+ disabled: boolean;
43
+ /**
44
+ * Indicates whether to indicate that the tab has an error.
45
+ * @internal This is used for sectioned forms and is not currently a supported design for pure vertical tabs.
46
+ */
47
+ errorIndicator: boolean;
48
+ /**
49
+ * Displays an item count alongside the tab header to indicate how many list items the tab contains.
50
+ */
51
+ tabHeaderCount: number;
52
+ /**
53
+ * Specifies the tab header.
54
+ * @required
55
+ */
56
+ tabHeading: string;
57
+ /**
58
+ * Indicates whether to display a chevron-right icon in the righthand side of the tab.
59
+ * @internal
60
+ */
61
+ get showTabRightArrow(): boolean;
62
+ set showTabRightArrow(value: boolean);
63
+ /**
64
+ * Specifies an ID for the tab.
65
+ */
66
+ tabId: string;
67
+ set contentRendered(value: boolean);
68
+ get contentRendered(): boolean;
69
+ index: number;
70
+ tabContent: ElementRef;
71
+ private isMobile;
72
+ private _ariaControls;
73
+ private _ariaRole;
74
+ private _contentRendered;
75
+ private _mobileSubscription;
76
+ private _ngUnsubscribe;
77
+ private _showTabRightArrow;
78
+ constructor(adapterService: SkyVerticalTabsetAdapterService, changeRef: ChangeDetectorRef, tabsetService: SkyVerticalTabsetService, verticalTabMediaQueryService: SkyVerticalTabMediaQueryService);
79
+ ngOnInit(): void;
80
+ ngOnDestroy(): void;
81
+ tabIndex(): number;
82
+ activateTab(): void;
83
+ onWindowResize(): void;
84
+ tabDeactivated(): void;
85
+ private updateBreakpointAndResponsiveClass;
86
+ }
@@ -0,0 +1,10 @@
1
+ import { ElementRef, RendererFactory2 } from '@angular/core';
2
+ import { SkyMediaBreakpoints } from '@skyux/core';
3
+ export declare class SkyVerticalTabsetAdapterService {
4
+ private rendererFactory;
5
+ private renderer;
6
+ constructor(rendererFactory: RendererFactory2);
7
+ getWidth(elementRef: ElementRef): number;
8
+ scrollToContentTop(element: ElementRef): void;
9
+ setResponsiveClass(element: ElementRef, breakpoint: SkyMediaBreakpoints): void;
10
+ }
@@ -0,0 +1,33 @@
1
+ import { ChangeDetectorRef, OnDestroy, OnInit } from '@angular/core';
2
+ import { SkyVerticalTabsetService } from './vertical-tabset.service';
3
+ export declare class SkyVerticalTabsetGroupComponent implements OnInit, OnDestroy {
4
+ private tabService;
5
+ private changeRef;
6
+ /**
7
+ * Indicates whether to disable the ability to expand and collapse the group.
8
+ * @default "false"
9
+ */
10
+ disabled: boolean;
11
+ /**
12
+ * Specifies the header for the collapsible group of tabs.
13
+ */
14
+ groupHeading: string;
15
+ /**
16
+ * Indicates whether the collapsible group is expanded.
17
+ * @default "false"
18
+ */
19
+ set open(value: boolean);
20
+ get open(): boolean;
21
+ private tabs;
22
+ private ngUnsubscribe;
23
+ private openBeforeTabsHidden;
24
+ private _open;
25
+ constructor(tabService: SkyVerticalTabsetService, changeRef: ChangeDetectorRef);
26
+ ngOnInit(): void;
27
+ ngOnDestroy(): void;
28
+ toggleMenuOpen(): void;
29
+ subMenuOpen(): boolean;
30
+ tabClicked: () => void;
31
+ tabsHidden: () => void;
32
+ tabsShown: () => void;
33
+ }
@@ -0,0 +1,45 @@
1
+ import { ElementRef, OnInit, EventEmitter, AfterViewChecked, ChangeDetectorRef, OnDestroy } from '@angular/core';
2
+ import { SkyLibResourcesService } from '@skyux/i18n';
3
+ import { SkyVerticalTabsetAdapterService } from './vertical-tabset-adapter.service';
4
+ import { SkyVerticalTabsetService } from './vertical-tabset.service';
5
+ export declare class SkyVerticalTabsetComponent implements OnInit, AfterViewChecked, OnDestroy {
6
+ adapterService: SkyVerticalTabsetAdapterService;
7
+ tabService: SkyVerticalTabsetService;
8
+ private resources;
9
+ private changeRef;
10
+ /**
11
+ * Specifies the text to display on the show tabs button on mobile devices.
12
+ */
13
+ showTabsText: string;
14
+ /**
15
+ * Specifies an ARIA role for the vertical tabset
16
+ * [to support accessibility](https://developer.blackbaud.com/skyux/learn/accessibility)
17
+ * by indicating how the tabset functions and what it controls. For information about how
18
+ * an ARIA role indicates what an item represents on a web page, see the
19
+ * [WAI-ARIA roles model](https://www.w3.org/WAI/PF/aria/roles).
20
+ * @default "tablist"
21
+ */
22
+ get ariaRole(): string;
23
+ set ariaRole(value: string);
24
+ /**
25
+ * Indicates whether the vertical tabset loads tab content during initialization so that it
26
+ * displays content without moving around elements in the content container.
27
+ * @default 'false'
28
+ */
29
+ maintainTabContent: boolean;
30
+ /**
31
+ * Fires when the active tab changes. Emits the index of the active tab. The
32
+ * index is based on the tab's position when it loads.
33
+ */
34
+ activeChange: EventEmitter<number>;
35
+ tabGroups: ElementRef;
36
+ content: ElementRef;
37
+ private contentWrapper;
38
+ private isMobile;
39
+ private _ngUnsubscribe;
40
+ private _ariaRole;
41
+ constructor(adapterService: SkyVerticalTabsetAdapterService, tabService: SkyVerticalTabsetService, resources: SkyLibResourcesService, changeRef: ChangeDetectorRef);
42
+ ngOnInit(): void;
43
+ ngAfterViewChecked(): void;
44
+ ngOnDestroy(): void;
45
+ }
@@ -0,0 +1,2 @@
1
+ export declare class SkyVerticalTabsetModule {
2
+ }
@@ -0,0 +1,41 @@
1
+ import { ElementRef } from '@angular/core';
2
+ import { SkyMediaQueryService } from '@skyux/core';
3
+ import { BehaviorSubject, Subject } from 'rxjs';
4
+ import { SkyVerticalTabComponent } from './vertical-tab.component';
5
+ export declare const VISIBLE_STATE = "shown";
6
+ export declare const HIDDEN_STATE = "void";
7
+ /**
8
+ * @internal
9
+ */
10
+ export declare class SkyVerticalTabsetService {
11
+ private mediaQueryService;
12
+ activeIndex: number;
13
+ animationContentVisibleState: string;
14
+ animationTabsVisibleState: string;
15
+ set content(value: ElementRef);
16
+ hidingTabs: BehaviorSubject<boolean>;
17
+ indexChanged: BehaviorSubject<number>;
18
+ maintainTabContent: boolean;
19
+ showingTabs: BehaviorSubject<boolean>;
20
+ switchingMobile: Subject<boolean>;
21
+ tabs: Array<SkyVerticalTabComponent>;
22
+ tabAdded: Subject<SkyVerticalTabComponent>;
23
+ tabClicked: BehaviorSubject<boolean>;
24
+ private _content;
25
+ private _contentAdded;
26
+ private _tabsVisible;
27
+ private _isMobile;
28
+ constructor(mediaQueryService: SkyMediaQueryService);
29
+ addTab(tab: SkyVerticalTabComponent): void;
30
+ destroyTab(tab: SkyVerticalTabComponent): void;
31
+ activateTab(tab: SkyVerticalTabComponent): void;
32
+ activeTab(): SkyVerticalTabComponent;
33
+ isMobile(): boolean;
34
+ updateContent(): void;
35
+ tabsVisible(): boolean;
36
+ contentVisible(): boolean;
37
+ showTabs(): void;
38
+ private destroyContent;
39
+ private moveContent;
40
+ private updateTabClicked;
41
+ }
package/package.json ADDED
@@ -0,0 +1,41 @@
1
+ {
2
+ "name": "@skyux/tabs",
3
+ "version": "4.6.9",
4
+ "description": "SKY UX Tabs",
5
+ "keywords": [],
6
+ "author": "Blackbaud",
7
+ "license": "ISC",
8
+ "repository": {
9
+ "type": "git",
10
+ "url": "git+https://github.com/blackbaud/skyux-tabs.git"
11
+ },
12
+ "bugs": {
13
+ "url": "https://github.com/blackbaud/skyux-tabs/issues"
14
+ },
15
+ "homepage": "https://github.com/blackbaud/skyux-tabs#readme",
16
+ "peerDependencies": {
17
+ "@angular/common": "^9.1.8",
18
+ "@angular/core": "^9.1.8",
19
+ "@angular/router": "^9.1.8",
20
+ "@skyux/core": "^4.0.0",
21
+ "@skyux/i18n": "^4.0.0",
22
+ "@skyux/forms": "^4.0.0",
23
+ "@skyux/indicators": "^4.2.0",
24
+ "@skyux/modals": "^4.0.0",
25
+ "@skyux/popovers": "^4.2.0",
26
+ "@skyux/theme": "^4.15.4"
27
+ },
28
+ "dependencies": {
29
+ "tslib": "^1.10.0"
30
+ },
31
+ "main": "bundles/skyux-tabs.umd.js",
32
+ "module": "fesm5/skyux-tabs.js",
33
+ "es2015": "fesm2015/skyux-tabs.js",
34
+ "esm5": "esm5/skyux-tabs.js",
35
+ "esm2015": "esm2015/skyux-tabs.js",
36
+ "fesm5": "fesm5/skyux-tabs.js",
37
+ "fesm2015": "fesm2015/skyux-tabs.js",
38
+ "typings": "skyux-tabs.d.ts",
39
+ "metadata": "skyux-tabs.metadata.json",
40
+ "sideEffects": false
41
+ }
@@ -0,0 +1,5 @@
1
+ import { SkyAppLocaleInfo, SkyLibResourcesProvider } from '@skyux/i18n';
2
+ export declare class SkyTabsResourcesProvider implements SkyLibResourcesProvider {
3
+ private resources;
4
+ getString(localeInfo: SkyAppLocaleInfo, name: string): string;
5
+ }
@@ -0,0 +1,9 @@
1
+ export * from './modules/sectioned-form/sectioned-form.module';
2
+ export * from './modules/sectioned-form/sectioned-form.service';
3
+ export * from './modules/tabs/tab-index';
4
+ export * from './modules/tabs/tabset-buttons-display-mode';
5
+ export * from './modules/tabs/tabset-style';
6
+ export * from './modules/tabs/tabset-tab-indexes-change';
7
+ export * from './modules/tabs/tabs.module';
8
+ export * from './modules/vertical-tabset/vertical-tabset.module';
9
+ export * from './modules/sectioned-form/sectioned-form.component';
@@ -0,0 +1,20 @@
1
+ /**
2
+ * Generated bundle index. Do not edit.
3
+ */
4
+ export * from './public_api';
5
+ export { SkySectionedFormSectionComponent as ɵd } from './modules/sectioned-form/sectioned-form-section.component';
6
+ export { SkyTabsResourcesModule as ɵj } from './modules/shared/tabs-resources.module';
7
+ export { SkyTabButtonComponent as ɵl } from './modules/tabs/tab-button.component';
8
+ export { SkyTabComponent as ɵm } from './modules/tabs/tab.component';
9
+ export { SkyTabsetAdapterService as ɵq } from './modules/tabs/tabset-adapter.service';
10
+ export { SkyTabsetNavButtonComponent as ɵr } from './modules/tabs/tabset-nav-button.component';
11
+ export { SkyTabsetPermalinkService as ɵn } from './modules/tabs/tabset-permalink.service';
12
+ export { SkyTabsetComponent as ɵp } from './modules/tabs/tabset.component';
13
+ export { SkyTabsetService as ɵo } from './modules/tabs/tabset.service';
14
+ export { SkyVerticalTabMediaQueryService as ɵf } from './modules/vertical-tabset/vertical-tab-media-query.service';
15
+ export { SkyVerticalTabComponent as ɵe } from './modules/vertical-tabset/vertical-tab.component';
16
+ export { SkyVerticalTabsetAdapterService as ɵg } from './modules/vertical-tabset/vertical-tabset-adapter.service';
17
+ export { SkyVerticalTabsetGroupComponent as ɵi } from './modules/vertical-tabset/vertical-tabset-group.component';
18
+ export { SkyVerticalTabsetComponent as ɵh } from './modules/vertical-tabset/vertical-tabset.component';
19
+ export { HIDDEN_STATE as ɵb, SkyVerticalTabsetService as ɵc, VISIBLE_STATE as ɵa } from './modules/vertical-tabset/vertical-tabset.service';
20
+ export { SkyTabsResourcesProvider as ɵk } from './plugin-resources/tabs-resources-provider';
@@ -0,0 +1 @@
1
+ {"__symbolic":"module","version":4,"metadata":{"SkySectionedFormModule":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"NgModule","line":7,"character":1},"arguments":[{"declarations":[{"__symbolic":"reference","name":"SkySectionedFormComponent"},{"__symbolic":"reference","name":"ɵd"}],"imports":[{"__symbolic":"reference","module":"@angular/common","name":"CommonModule","line":13,"character":4},{"__symbolic":"reference","module":"@skyux/forms","name":"SkyCheckboxModule","line":14,"character":4},{"__symbolic":"reference","name":"SkyVerticalTabsetModule"}],"exports":[{"__symbolic":"reference","name":"SkySectionedFormComponent"},{"__symbolic":"reference","name":"ɵd"}]}]}],"members":{}},"SkySectionedFormService":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injectable","line":8,"character":1}}],"members":{"invalidFieldChanged":[{"__symbolic":"method"}],"requiredFieldChanged":[{"__symbolic":"method"}]}},"SkyTabIndex":{"__symbolic":"interface"},"SkyTabsetButtonsDisplayMode":{"__symbolic":"interface"},"SkyTabsetStyle":{"__symbolic":"interface"},"SkyTabsetTabIndexesChange":{"__symbolic":"interface"},"SkyTabsModule":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"NgModule","line":48,"character":1},"arguments":[{"declarations":[{"__symbolic":"reference","name":"ɵl"},{"__symbolic":"reference","name":"ɵm"},{"__symbolic":"reference","name":"ɵp"},{"__symbolic":"reference","name":"ɵr"}],"imports":[{"__symbolic":"reference","module":"@angular/common","name":"CommonModule","line":56,"character":4},{"__symbolic":"reference","module":"@angular/router","name":"RouterModule","line":57,"character":4},{"__symbolic":"reference","module":"@skyux/popovers","name":"SkyDropdownModule","line":58,"character":4},{"__symbolic":"reference","module":"@skyux/i18n","name":"SkyI18nModule","line":59,"character":4},{"__symbolic":"reference","module":"@skyux/indicators","name":"SkyIconModule","line":60,"character":4},{"__symbolic":"reference","name":"ɵj"},{"__symbolic":"reference","module":"@skyux/theme","name":"SkyThemeModule","line":62,"character":4}],"exports":[{"__symbolic":"reference","name":"ɵm"},{"__symbolic":"reference","name":"ɵp"},{"__symbolic":"reference","name":"ɵr"}]}]}],"members":{}},"SkyVerticalTabsetModule":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"NgModule","line":46,"character":1},"arguments":[{"declarations":[{"__symbolic":"reference","name":"ɵh"},{"__symbolic":"reference","name":"ɵi"},{"__symbolic":"reference","name":"ɵe"}],"imports":[{"__symbolic":"reference","module":"@angular/common","name":"CommonModule","line":53,"character":4},{"__symbolic":"reference","module":"@angular/platform-browser/animations","name":"BrowserAnimationsModule","line":54,"character":4},{"__symbolic":"reference","module":"@skyux/indicators","name":"SkyChevronModule","line":55,"character":4},{"__symbolic":"reference","module":"@skyux/indicators","name":"SkyIconModule","line":56,"character":4},{"__symbolic":"reference","module":"@skyux/core","name":"SkyMediaQueryModule","line":57,"character":4},{"__symbolic":"reference","module":"@skyux/indicators","name":"SkyStatusIndicatorModule","line":58,"character":4},{"__symbolic":"reference","name":"ɵj"},{"__symbolic":"reference","module":"@skyux/theme","name":"SkyThemeModule","line":60,"character":4}],"providers":[{"__symbolic":"reference","name":"ɵg"}],"exports":[{"__symbolic":"reference","name":"ɵh"},{"__symbolic":"reference","name":"ɵi"},{"__symbolic":"reference","name":"ɵe"}]}]}],"members":{}},"SkySectionedFormComponent":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":38,"character":1},"arguments":[{"selector":"sky-sectioned-form","providers":[{"__symbolic":"reference","name":"ɵc"}],"changeDetection":{"__symbolic":"select","expression":{"__symbolic":"reference","module":"@angular/core","name":"ChangeDetectionStrategy","line":43,"character":19},"member":"OnPush"},"animations":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/animations","name":"trigger","line":45,"character":4},"arguments":["tabEnter",[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/animations","name":"transition","line":47,"character":8},"arguments":[{"__symbolic":"binop","operator":"+","left":{"__symbolic":"binop","operator":"+","left":{"__symbolic":"reference","name":"ɵb"},"right":" => "},"right":{"__symbolic":"reference","name":"ɵa"}},[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/animations","name":"style","line":48,"character":10},"arguments":[{"transform":"translate(-100%)"}]},{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/animations","name":"animate","line":49,"character":10},"arguments":["150ms ease-in"]}]]}]]},{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/animations","name":"trigger","line":53,"character":4},"arguments":["contentEnter",[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/animations","name":"transition","line":55,"character":8},"arguments":[{"__symbolic":"binop","operator":"+","left":{"__symbolic":"binop","operator":"+","left":{"__symbolic":"reference","name":"ɵb"},"right":" => "},"right":{"__symbolic":"reference","name":"ɵa"}},[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/animations","name":"style","line":56,"character":10},"arguments":[{"transform":"translate(100%)"}]},{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/animations","name":"animate","line":57,"character":10},"arguments":["150ms ease-in"]}]]}]]}],"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 sky-padding-even-large\"\n [ngClass]=\"{'sky-sectioned-form-content-hidden': !tabService.contentVisible()}\"\n [@contentEnter]=\"tabService.animationContentVisibleState\"\n #skySectionSideContent\n >\n </div>\n</div>\n\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-lg) .sky-sectioned-form,:host-context(.sky-responsive-container-md) .sky-sectioned-form,:host-context(.sky-responsive-container-sm) .sky-sectioned-form,:host-context(.sky-responsive-container-xs) .sky-sectioned-form{display:block;max-height:none}:host-context(.sky-responsive-container-lg) .sky-sectioned-form-content,:host-context(.sky-responsive-container-md) .sky-sectioned-form-content,:host-context(.sky-responsive-container-sm) .sky-sectioned-form-content,:host-context(.sky-responsive-container-xs) .sky-sectioned-form-content{flex-basis:auto;overflow-y:visible}:host-context(.sky-responsive-container-lg) .sky-sectioned-form-tabs,:host-context(.sky-responsive-container-md) .sky-sectioned-form-tabs,:host-context(.sky-responsive-container-sm) .sky-sectioned-form-tabs,:host-context(.sky-responsive-container-xs) .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%;overflow-y:auto}:host .sky-sectioned-form-tabs{flex-basis:30%;overflow-y:auto}}:host-context(.sky-responsive-container-lg) .sky-sectioned-form,:host-context(.sky-responsive-container-md) .sky-sectioned-form,:host-context(.sky-responsive-container-sm) .sky-sectioned-form{display:flex;max-height:100%}:host-context(.sky-responsive-container-lg) .sky-sectioned-form-content,:host-context(.sky-responsive-container-md) .sky-sectioned-form-content,:host-context(.sky-responsive-container-sm) .sky-sectioned-form-content{flex-basis:70%;overflow-y:auto}:host-context(.sky-responsive-container-lg) .sky-sectioned-form-tabs,:host-context(.sky-responsive-container-md) .sky-sectioned-form-tabs,:host-context(.sky-responsive-container-sm) .sky-sectioned-form-tabs{flex-basis:30%;overflow-y:auto}.sky-sectioned-form-content-hidden,.sky-sectioned-form-tabs-hidden{display:none}"]}]}],"members":{"maintainSectionContent":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":70,"character":3}}]}],"indexChanged":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":77,"character":3}}]}],"content":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"ViewChild","line":84,"character":3},"arguments":["skySectionSideContent"]}]}],"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"ɵc"},{"__symbolic":"reference","module":"@angular/core","name":"ChangeDetectorRef","line":92,"character":23}]}],"ngOnInit":[{"__symbolic":"method"}],"ngAfterViewChecked":[{"__symbolic":"method"}],"ngOnDestroy":[{"__symbolic":"method"}],"tabsVisible":[{"__symbolic":"method"}],"showTabs":[{"__symbolic":"method"}]}},"ɵa":"shown","ɵb":"void","ɵc":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injectable","line":25,"character":1}}],"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"@skyux/core","name":"SkyMediaQueryService","line":62,"character":48}]}],"addTab":[{"__symbolic":"method"}],"destroyTab":[{"__symbolic":"method"}],"activateTab":[{"__symbolic":"method"}],"activeTab":[{"__symbolic":"method"}],"isMobile":[{"__symbolic":"method"}],"updateContent":[{"__symbolic":"method"}],"tabsVisible":[{"__symbolic":"method"}],"contentVisible":[{"__symbolic":"method"}],"showTabs":[{"__symbolic":"method"}],"destroyContent":[{"__symbolic":"method"}],"moveContent":[{"__symbolic":"method"}],"updateTabClicked":[{"__symbolic":"method"}]}},"ɵd":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":32,"character":1},"arguments":[{"selector":"sky-sectioned-form-section","providers":[{"__symbolic":"reference","name":"SkySectionedFormService"}],"template":"<sky-vertical-tab\n [active]=\"active\"\n [ariaControls]=\"sectionContentId\"\n [ariaInvalid]=\"fieldInvalid\"\n [ariaRequired]=\"fieldRequired\"\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 <div\n [attr.aria-labelledby]=\"ariaLabelledby\"\n [attr.role]=\"ariaRole\"\n [id]=\"sectionContentId\"\n #tabContent>\n <ng-content></ng-content>\n </div>\n</sky-vertical-tab>\n","styles":[":host .sky-tab-field-required ::ng-deep .sky-vertical-tab-heading:after{content:\"*\";color:#ef4044;padding-left:5px}"]}]}],"members":{"heading":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":46,"character":3}}]}],"itemCount":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":53,"character":3}}]}],"active":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":60,"character":3}}]}],"tab":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"ViewChild","line":74,"character":3},"arguments":[{"__symbolic":"reference","name":"ɵe"}]}]}],"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"SkySectionedFormService"},{"__symbolic":"reference","name":"ɵc"},{"__symbolic":"reference","module":"@angular/core","name":"ChangeDetectorRef","line":83,"character":23}]}],"ngOnInit":[{"__symbolic":"method"}],"ngOnDestroy":[{"__symbolic":"method"}]}},"ɵe":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":36,"character":1},"arguments":[{"selector":"sky-vertical-tab","providers":[{"__symbolic":"reference","name":"ɵf"},{"provide":{"__symbolic":"reference","module":"@skyux/core","name":"SkyMediaQueryService","line":42,"character":15},"useExisting":{"__symbolic":"reference","name":"ɵf"}}],"changeDetection":{"__symbolic":"select","expression":{"__symbolic":"reference","module":"@angular/core","name":"ChangeDetectionStrategy","line":44,"character":19},"member":"OnPush"},"template":"<a\n class=\"sky-vertical-tab\"\n [attr.aria-controls]=\"ariaControls\"\n [attr.aria-invalid]=\"ariaInvalid\"\n [attr.aria-required]=\"ariaRequired ? ariaRequired : null\"\n [attr.aria-selected]=\"active\"\n [attr.id]=\"tabId\"\n [attr.role]=\"ariaRole\"\n [ngClass]=\"{\n 'sky-vertical-tab-active': active,\n 'sky-vertical-tab-disabled': disabled,\n 'sky-deemphasized': disabled\n }\"\n [tabIndex]=\"tabIndex()\"\n (click)=\"activateTab()\"\n (keyup.enter)=\"activateTab()\">\n <div class=\"sky-vertical-tab-display\">\n <div class=\"sky-vertical-tab-heading\">\n <span class=\"sky-vertical-tab-heading-value\">{{ tabHeading }}</span>\n <span\n class=\"sky-vertical-tab-count\"\n *ngIf=\"tabHeaderCount || tabHeaderCount === 0\">\n ({{ tabHeaderCount }})\n </span>\n </div>\n <sky-status-indicator *ngIf=\"errorIndicator\"\n class=\"sky-vertical-tab-heading-error\"\n descriptionType=\"error\"\n indicatorType=\"danger\"\n ></sky-status-indicator>\n\n <sky-icon\n *ngIf=\"showTabRightArrow\"\n class=\"sky-vertical-tab-right-arrow\"\n icon=\"chevron-right\"\n >\n </sky-icon>\n </div>\n</a>\n\n<div\n #tabContentWrapper\n>\n <div\n class=\"sky-vertical-tab-content-pane\"\n [ngClass]=\"{'sky-vertical-tab-hidden': !active}\"\n >\n\n <ng-content></ng-content>\n\n <div>\n\n</div>\n\n","styles":[".sky-vertical-tab{cursor:pointer;padding:7px 0 7px 10px;margin:5px 0 5px 10px;display:flex;text-decoration:none}.sky-vertical-tab:not(.sky-deemphasized){color:#212327}.sky-vertical-tab:hover{background-color:#eeeeef}.sky-vertical-tab:focus{outline:dotted thin;outline:-webkit-focus-ring-color auto 5px}.sky-vertical-tab:hover .sky-vertical-tab-right-arrow{color:#979ba2}.sky-vertical-tab-active{background-color:#eeeeef;color:#212327;padding-left:6px;border-left:4px solid #00b4f1}.sky-vertical-tab-hidden{display:none}.sky-vertical-tab-display{display:flex;flex-grow:1}.sky-vertical-tab-heading-error{padding-left:5px}.sky-vertical-tab-count{margin-left:5px}.sky-vertical-tab-disabled{cursor:not-allowed;pointer-events:none;font-style:normal}.sky-vertical-tab-right-arrow{padding:3px 10px 0 0;color:#cdcfd2}.sky-theme-modern .sky-vertical-tab,:host-context(.sky-theme-modern) .sky-vertical-tab{cursor:pointer;padding:10px 0 10px 10px;margin:10px 0 20px 10px}.sky-theme-modern .sky-vertical-tab:not(.sky-vertical-tab-active):not(:active):hover,:host-context(.sky-theme-modern) .sky-vertical-tab:not(.sky-vertical-tab-active):not(:active):hover{color:#212327;background-color:transparent;padding-left:9px;border-left:1px solid #00b4f1}.sky-theme-modern .sky-vertical-tab:not(:active):focus,:host-context(.sky-theme-modern) .sky-vertical-tab:not(:active):focus{outline:#1870b8 solid 2px;outline-offset:-2px;box-shadow:0 1px 8px 0 rgba(0,0,0,.3)}.sky-theme-modern .sky-vertical-tab:focus:active:hover,:host-context(.sky-theme-modern) .sky-vertical-tab:focus:active:hover{outline:0;background:0 0}.sky-theme-modern .sky-vertical-tab:active,:host-context(.sky-theme-modern) .sky-vertical-tab:active{border-left:3px solid #00b4f1;padding-left:7px}.sky-theme-modern .sky-vertical-tab .sky-vertical-tab-heading-error,:host-context(.sky-theme-modern) .sky-vertical-tab .sky-vertical-tab-heading-error{padding-left:10px}.sky-theme-modern .sky-vertical-tab-active,:host-context(.sky-theme-modern) .sky-vertical-tab-active{background:0 0;padding-left:7px;border-left:3px solid #1870b8}"]}]}],"members":{"active":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":50,"character":3}}]}],"ariaControls":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":58,"character":3}}]}],"ariaInvalid":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":69,"character":3}}]}],"ariaRequired":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":75,"character":3}}]}],"ariaRole":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":86,"character":3}}]}],"disabled":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":100,"character":3}}]}],"errorIndicator":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":107,"character":3}}]}],"tabHeaderCount":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":113,"character":3}}]}],"tabHeading":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":120,"character":3}}]}],"showTabRightArrow":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":127,"character":3}}]}],"tabId":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":139,"character":3}}]}],"tabContent":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"ViewChild","line":159,"character":3},"arguments":["tabContentWrapper"]}]}],"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"ɵg"},{"__symbolic":"reference","module":"@angular/core","name":"ChangeDetectorRef","line":178,"character":23},{"__symbolic":"reference","name":"ɵc"},{"__symbolic":"reference","name":"ɵf"}]}],"ngOnInit":[{"__symbolic":"method"}],"ngOnDestroy":[{"__symbolic":"method"}],"tabIndex":[{"__symbolic":"method"}],"activateTab":[{"__symbolic":"method"}],"onWindowResize":[{"__symbolic":"method","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"HostListener","line":230,"character":3},"arguments":["window:resize"]}]}],"tabDeactivated":[{"__symbolic":"method"}],"updateBreakpointAndResponsiveClass":[{"__symbolic":"method"}]}},"ɵf":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injectable","line":17,"character":1}}],"members":{"__ctor__":[{"__symbolic":"constructor"}],"subscribe":[{"__symbolic":"method"}],"setBreakpointForWidth":[{"__symbolic":"method"}],"isWidthWithinBreakpiont":[{"__symbolic":"method"}],"destroy":[{"__symbolic":"method"}]}},"ɵg":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injectable","line":11,"character":1}}],"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"@angular/core","name":"RendererFactory2","line":16,"character":29}]}],"getWidth":[{"__symbolic":"method"}],"scrollToContentTop":[{"__symbolic":"method"}],"setResponsiveClass":[{"__symbolic":"method"}]}},"ɵh":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":44,"character":1},"arguments":[{"selector":"sky-vertical-tabset","providers":[{"__symbolic":"reference","name":"ɵc"}],"changeDetection":{"__symbolic":"select","expression":{"__symbolic":"reference","module":"@angular/core","name":"ChangeDetectionStrategy","line":49,"character":19},"member":"OnPush"},"animations":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/animations","name":"trigger","line":51,"character":4},"arguments":["tabGroupEnter",[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/animations","name":"transition","line":53,"character":8},"arguments":[{"__symbolic":"binop","operator":"+","left":{"__symbolic":"binop","operator":"+","left":{"__symbolic":"reference","name":"ɵb"},"right":" => "},"right":{"__symbolic":"reference","name":"ɵa"}},[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/animations","name":"style","line":54,"character":10},"arguments":[{"transform":"translate(-100%)"}]},{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/animations","name":"animate","line":55,"character":10},"arguments":["150ms ease-in"]}]]}]]},{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/animations","name":"trigger","line":59,"character":4},"arguments":["contentEnter",[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/animations","name":"transition","line":61,"character":8},"arguments":[{"__symbolic":"binop","operator":"+","left":{"__symbolic":"binop","operator":"+","left":{"__symbolic":"reference","name":"ɵb"},"right":" => "},"right":{"__symbolic":"reference","name":"ɵa"}},[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/animations","name":"style","line":62,"character":10},"arguments":[{"transform":"translate(100%)"}]},{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/animations","name":"animate","line":63,"character":10},"arguments":["150ms ease-in"]}]]}]]}],"template":" <div class=\"sky-vertical-tabset\" (window:resize)=\"tabService.updateContent()\">\n <div\n *ngIf=\"maintainTabContent || tabService.tabsVisible()\"\n #groupContainerWrapper\n class=\"sky-vertical-tabset-group-container\"\n [ngClass]=\"{'sky-vertical-tabset-hidden': !tabService.tabsVisible()}\"\n [attr.role]=\"ariaRole\"\n [@tabGroupEnter]=\"tabService.animationTabsVisibleState\"\n >\n <ng-content></ng-content>\n </div>\n <div\n *ngIf=\"maintainTabContent || tabService.contentVisible()\"\n class=\"sky-vertical-tabset-content\"\n [ngClass]=\"{'sky-vertical-tabset-content-hidden': !tabService.contentVisible()}\"\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-lg) .sky-vertical-tabset,:host-context(.sky-responsive-container-md) .sky-vertical-tabset,:host-context(.sky-responsive-container-sm) .sky-vertical-tabset,:host-context(.sky-responsive-container-xs) .sky-vertical-tabset{display:block;height:auto}:host-context(.sky-responsive-container-lg) .sky-vertical-tabset-group-container,:host-context(.sky-responsive-container-md) .sky-vertical-tabset-group-container,:host-context(.sky-responsive-container-sm) .sky-vertical-tabset-group-container,:host-context(.sky-responsive-container-xs) .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-lg) .sky-vertical-tabset,:host-context(.sky-responsive-container-md) .sky-vertical-tabset,:host-context(.sky-responsive-container-sm) .sky-vertical-tabset{display:flex;height:100%}:host-context(.sky-responsive-container-lg) .sky-vertical-tabset-group-container,:host-context(.sky-responsive-container-md) .sky-vertical-tabset-group-container,:host-context(.sky-responsive-container-sm) .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}"]}]}],"members":{"showTabsText":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":74,"character":3}}]}],"ariaRole":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":85,"character":3}}]}],"maintainTabContent":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":101,"character":3}}]}],"activeChange":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":108,"character":3}}]}],"tabGroups":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"ViewChild","line":111,"character":3},"arguments":["groupContainerWrapper"]}]}],"content":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"ViewChild","line":114,"character":3},"arguments":["skySideContent"]}]}],"contentWrapper":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"ViewChild","line":117,"character":3},"arguments":["contentContainerWrapper"]}]}],"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"ɵg"},{"__symbolic":"reference","name":"ɵc"},{"__symbolic":"reference","module":"@skyux/i18n","name":"SkyLibResourcesService","line":127,"character":23},{"__symbolic":"reference","module":"@angular/core","name":"ChangeDetectorRef","line":128,"character":23}]}],"ngOnInit":[{"__symbolic":"method"}],"ngAfterViewChecked":[{"__symbolic":"method"}],"ngOnDestroy":[{"__symbolic":"method"}]}},"ɵi":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":34,"character":1},"arguments":[{"selector":"sky-vertical-tabset-group","changeDetection":{"__symbolic":"select","expression":{"__symbolic":"reference","module":"@angular/core","name":"ChangeDetectionStrategy","line":38,"character":19},"member":"OnPush"},"animations":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/animations","name":"trigger","line":40,"character":4},"arguments":["tabSlide",[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/animations","name":"transition","line":42,"character":8},"arguments":[":enter",[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/animations","name":"style","line":43,"character":10},"arguments":[{"height":"0","visibility":"hidden"}]},{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/animations","name":"animate","line":47,"character":10},"arguments":["150ms ease-in",{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/animations","name":"style","line":47,"character":35},"arguments":[{"height":"*","visibility":"visible"}]}]}]]},{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/animations","name":"transition","line":52,"character":8},"arguments":[":leave",[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/animations","name":"style","line":53,"character":10},"arguments":[{"height":"*","visibility":"visible"}]},{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/animations","name":"animate","line":57,"character":10},"arguments":["150ms ease-in",{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/animations","name":"style","line":57,"character":35},"arguments":[{"height":"0","visibility":"hidden"}]}]}]]}]]}],"template":"<div class=\"sky-vertical-tabset-group\">\n <div\n class=\"sky-vertical-tabset-group-header sky-padding-even-default\"\n [ngClass]=\"{\n 'sky-vertical-tabset-group-header-sub-open sky-emphasized': subMenuOpen(),\n 'sky-deemphasized': disabled,\n 'sky-vertical-tabset-disabled': disabled\n }\"\n (click)=\"toggleMenuOpen()\"\n (keyup.enter)=\"toggleMenuOpen()\"\n [tabIndex]=\"-1\"\n >\n {{ groupHeading }}\n <sky-chevron *skyThemeIf=\"'default'\"\n class=\"sky-vertical-tabset-group-header-chevron\"\n [direction]=\"open ? 'up' : 'down'\"\n [disabled]=\"disabled\"\n (directionChange)=\"toggleMenuOpen()\"\n (keyup.enter)=\"$event.stopPropagation()\"\n >\n </sky-chevron>\n <ng-container *skyThemeIf=\"'modern'\">\n <button *ngIf=\"!open\"\n class=\"sky-btn sky-btn-icon-borderless sky-vertical-tabset-group-header-chevron\"\n type=\"button\"\n >\n <sky-icon\n icon=\"chevron-right\"\n iconType=\"skyux\"\n >\n </sky-icon>\n </button>\n <button *ngIf=\"open\"\n class=\"sky-btn sky-btn-icon-borderless sky-vertical-tabset-group-header-chevron\"\n type=\"button\"\n >\n <sky-icon\n icon=\"chevron-down\"\n iconType=\"skyux\"\n >\n </sky-icon>\n </button>\n </ng-container>\n </div>\n <div\n class=\"sky-vertical-tabset-group-content\"\n *ngIf=\"open\"\n [@tabSlide]\n >\n <ng-content></ng-content>\n </div>\n</div>\n","styles":[".sky-vertical-tabset-group{border-bottom:1px solid #e2e3e4;margin:5px 0 5px 5px}.sky-vertical-tabset-group-header{cursor:pointer;display:flex;justify-content:space-between}.sky-vertical-tabset-group-header:focus{outline:dotted thin;outline:-webkit-focus-ring-color auto 5px}.sky-vertical-tabset-group-content{overflow:hidden;border-top:1px solid #e2e3e4}:host ::ng-deep .sky-vertical-tabset-group-header-chevron>button{font-size:14px!important}.sky-vertical-tabset-disabled{cursor:not-allowed;pointer-events:none;font-style:normal}.sky-theme-modern .sky-vertical-tabset-group,:host-context(.sky-theme-modern) .sky-vertical-tabset-group{border:none}.sky-theme-modern .sky-vertical-tabset-group-content,:host-context(.sky-theme-modern) .sky-vertical-tabset-group-content{border:none;padding-left:25px}.sky-theme-modern .sky-vertical-tabset-group-header,:host-context(.sky-theme-modern) .sky-vertical-tabset-group-header{position:relative}.sky-theme-modern .sky-vertical-tabset-group-header-chevron,:host-context(.sky-theme-modern) .sky-vertical-tabset-group-header-chevron{position:absolute;top:6px;right:5px}"]}]}],"members":{"disabled":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":71,"character":3}}]}],"groupHeading":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":77,"character":3}}]}],"open":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":84,"character":3}}]}],"tabs":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"ContentChildren","line":93,"character":3},"arguments":[{"__symbolic":"reference","name":"ɵe"}]}]}],"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"ɵc"},{"__symbolic":"reference","module":"@angular/core","name":"ChangeDetectorRef","line":104,"character":23}]}],"ngOnInit":[{"__symbolic":"method"}],"ngOnDestroy":[{"__symbolic":"method"}],"toggleMenuOpen":[{"__symbolic":"method"}],"subMenuOpen":[{"__symbolic":"method"}]}},"ɵj":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"NgModule","line":12,"character":1},"arguments":[{"providers":[{"provide":{"__symbolic":"reference","module":"@skyux/i18n","name":"SKY_LIB_RESOURCES_PROVIDERS","line":14,"character":13},"useClass":{"__symbolic":"reference","name":"ɵk"},"multi":true}]}]}],"members":{}},"ɵk":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injectable","line":11,"character":1}}],"members":{"getString":[{"__symbolic":"method"}]}},"ɵl":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":16,"character":1},"arguments":[{"selector":"sky-tab-button","changeDetection":{"__symbolic":"select","expression":{"__symbolic":"reference","module":"@angular/core","name":"ChangeDetectionStrategy","line":20,"character":19},"member":"OnPush"},"encapsulation":{"__symbolic":"select","expression":{"__symbolic":"reference","module":"@angular/core","name":"ViewEncapsulation","line":21,"character":17},"member":"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.enter)=\"onButtonEnterKeyDown($event)\"\n >\n <span\n class=\"sky-tab-heading\"\n >\n {{ buttonText }}\n <span *ngIf=\"buttonTextCount !== undefined\"\n class=\"sky-tab-header-count\"\n >\n {{ buttonTextCount }}\n </span>\n </span>\n </a>\n\n <button *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\n icon=\"remove\"\n ></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 150ms}.sky-btn-tab-wrapper.sky-btn-tab-wrapper-selected:not(.sky-btn-tab-wrapper-disabled) .sky-btn-tab-close{color:#fff}.sky-tab-btn-closeable{padding-right:43px}.sky-theme-modern .sky-btn-tab-wrapper,:host-context(.sky-theme-modern) .sky-btn-tab-wrapper{margin-right:10px}.sky-theme-modern .sky-btn-tab-wrapper .sky-btn-tab-close,:host-context(.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,: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}.sky-theme-modern .sky-tab-btn-closeable,:host-context(.sky-theme-modern) .sky-tab-btn-closeable{padding-right:44px}.sky-theme-modern.sky-theme-mode-dark .sky-btn-tab-wrapper .sky-btn-tab-close,:host-context(.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,: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}"]}]}],"members":{"active":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":25,"character":3}}]}],"ariaControls":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":28,"character":3}}]}],"buttonHref":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":31,"character":3}}]}],"buttonId":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":34,"character":3}}]}],"buttonText":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":37,"character":3}}]}],"buttonTextCount":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":40,"character":3}}]}],"closeable":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":43,"character":3}}]}],"disabled":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":46,"character":3}}]}],"tabStyle":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":49,"character":3}}]}],"buttonClick":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":52,"character":3}}]}],"closeClick":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":55,"character":3}}]}],"onButtonClick":[{"__symbolic":"method"}],"onButtonEnterKeyDown":[{"__symbolic":"method"}],"onCloseClick":[{"__symbolic":"method"}]}},"ɵm":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":31,"character":1},"arguments":[{"selector":"sky-tab","changeDetection":{"__symbolic":"select","expression":{"__symbolic":"reference","module":"@angular/core","name":"ChangeDetectionStrategy","line":34,"character":19},"member":"OnPush"},"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"}]}],"members":{"active":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":43,"character":3}}]}],"disabled":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":66,"character":3}}]}],"permalinkValue":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":76,"character":3}}]}],"tabHeaderCount":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":88,"character":3}}]}],"tabHeading":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":99,"character":3}}]}],"tabIndex":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":106,"character":3}}]}],"close":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":128,"character":3}}]}],"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"@angular/core","name":"ChangeDetectorRef","line":165,"character":28},{"__symbolic":"reference","name":"ɵn"},{"__symbolic":"reference","name":"ɵo"}]}],"ngOnChanges":[{"__symbolic":"method"}],"ngOnDestroy":[{"__symbolic":"method"}],"init":[{"__symbolic":"method"}],"activate":[{"__symbolic":"method"}],"deactivate":[{"__symbolic":"method"}]}},"ɵn":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injectable","line":30,"character":1}}],"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"@angular/router","name":"ActivatedRoute","line":42,"character":28},{"__symbolic":"reference","module":"@angular/common","name":"Location","line":43,"character":22},{"__symbolic":"reference","module":"@angular/router","name":"Router","line":44,"character":20}]}],"ngOnDestroy":[{"__symbolic":"method"}],"init":[{"__symbolic":"method"}],"getParam":[{"__symbolic":"method"}],"setParam":[{"__symbolic":"method"}],"clearParam":[{"__symbolic":"method"}],"getParamHref":[{"__symbolic":"method"}],"urlify":[{"__symbolic":"method"}],"getParams":[{"__symbolic":"method"}]}},"ɵo":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injectable","line":21,"character":1}}],"members":{"setActiveTabIndex":[{"__symbolic":"method"}],"registerTab":[{"__symbolic":"method"}],"updateTabIndex":[{"__symbolic":"method"}],"unregisterTab":[{"__symbolic":"method"}],"unregisterAll":[{"__symbolic":"method"}],"tabIndexesEqual":[{"__symbolic":"method"}],"isValidTabIndex":[{"__symbolic":"method"}],"activateFirstTab":[{"__symbolic":"method"}],"activateNearestTab":[{"__symbolic":"method"}],"isTabIndexActive":[{"__symbolic":"method"}]}},"ɵp":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":73,"character":1},"arguments":[{"selector":"sky-tabset","providers":[{"__symbolic":"reference","name":"ɵq"},{"__symbolic":"reference","name":"ɵn"},{"__symbolic":"reference","name":"ɵo"}],"changeDetection":{"__symbolic":"select","expression":{"__symbolic":"reference","module":"@angular/core","name":"ChangeDetectionStrategy","line":82,"character":19},"member":"OnPush"},"encapsulation":{"__symbolic":"select","expression":{"__symbolic":"reference","module":"@angular/core","name":"ViewEncapsulation","line":83,"character":17},"member":"None"},"template":"<div\n class=\"sky-tabset\"\n role=\"tablist\"\n [attr.aria-label]=\"ariaLabel\"\n [attr.aria-labelledby]=\"ariaLabelledBy\"\n [ngClass]=\"'sky-tabset-mode-' + tabDisplayMode + ' sky-tabset-style-' + tabStyle\"\n (window:resize)=\"onWindowResize()\"\n>\n <span class=\"sky-tabset-dropdown\">\n <sky-dropdown *ngIf=\"tabDisplayMode === 'dropdown'\"\n buttonType=\"tab\"\n >\n <sky-dropdown-button>\n {{ dropdownTriggerButtonText }}\n </sky-dropdown-button>\n <sky-dropdown-menu>\n <sky-dropdown-item *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 *ngTemplateOutlet=\"tabButtonTemplate; context: {\n $implicit: tabButton\n }\"></ng-container>\n </div>\n </sky-dropdown-item>\n </sky-dropdown-menu>\n </sky-dropdown>\n </span>\n <span\n class=\"sky-tabset-tabs\"\n >\n <ng-container *ngFor=\"let tabButton of tabButtons\">\n <ng-container *ngTemplateOutlet=\"tabButtonTemplate; context: {\n $implicit: tabButton\n }\"></ng-container>\n </ng-container>\n </span>\n <span\n class=\"sky-tabset-btns\"\n >\n <button *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\n icon=\"plus-circle\"\n size=\"lg\"\n >\n </sky-icon>\n </button>\n <button *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\n icon=\"folder-open-o\"\n size=\"lg\"\n >\n </sky-icon>\n </button>\n </span>\n</div>\n<ng-content></ng-content>\n\n<ng-template\n let-tabButton\n #tabButtonTemplate\n>\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;padding-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-tabset{border-bottom:1px solid #d2d2d2;overflow:visible}.sky-theme-modern .sky-tab-dropdown-menu-item .sky-btn-tab-wrapper{margin-right:0}"]}]}],"members":{"active":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":90,"character":3}}]}],"ariaLabel":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":128,"character":3}}]}],"ariaLabelledBy":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":137,"character":3}}]}],"permalinkId":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":146,"character":3}}]}],"tabStyle":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":167,"character":3}}]}],"activeChange":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":187,"character":3}}]}],"newTab":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":194,"character":3}}]}],"openTab":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":201,"character":3}}]}],"tabIndexesChange":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":207,"character":3}}]}],"tabs":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"ContentChildren","line":219,"character":3},"arguments":[{"__symbolic":"reference","name":"ɵm"}]}]}],"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"@angular/core","name":"ChangeDetectorRef","line":245,"character":28},{"__symbolic":"reference","module":"@angular/core","name":"ElementRef","line":246,"character":24},{"__symbolic":"reference","name":"ɵq"},{"__symbolic":"reference","name":"ɵn"},{"__symbolic":"reference","name":"ɵo"}]}],"ngAfterViewInit":[{"__symbolic":"method"}],"ngOnDestroy":[{"__symbolic":"method"}],"onWindowResize":[{"__symbolic":"method"}],"onTabCloseClick":[{"__symbolic":"method"}],"onTabButtonClick":[{"__symbolic":"method"}],"onNewTabClick":[{"__symbolic":"method"}],"onOpenTabClick":[{"__symbolic":"method"}],"getInitialTabIndex":[{"__symbolic":"method"}],"listenActiveIndexChange":[{"__symbolic":"method"}],"listenTabComponentsStructuralChange":[{"__symbolic":"method"}],"listenTabComponentsStateChange":[{"__symbolic":"method"}],"initTabComponents":[{"__symbolic":"method"}],"resetTabComponents":[{"__symbolic":"method"}],"emitTabIndexChange":[{"__symbolic":"method"}],"unsubscribeTabComponentsStateChange":[{"__symbolic":"method"}],"listenTabButtonsOverflowChange":[{"__symbolic":"method"}],"listenLocationPopStateChange":[{"__symbolic":"method"}],"setActiveTabIndexByPermalinkId":[{"__symbolic":"method"}],"getActiveTabIndexByPermalinkId":[{"__symbolic":"method"}],"getActiveTabComponent":[{"__symbolic":"method"}],"createTabButtons":[{"__symbolic":"method"}],"updateTabButtons":[{"__symbolic":"method"}],"updateTabsetComponent":[{"__symbolic":"method"}]}},"ɵq":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injectable","line":13,"character":1}}],"members":{"registerTabset":[{"__symbolic":"method"}],"detectOverflow":[{"__symbolic":"method"}],"getTabsOffsetLeft":[{"__symbolic":"method"}]}},"ɵr":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":34,"character":1},"arguments":[{"selector":"sky-tabset-nav-button","template":"<button\n class=\"sky-btn sky-btn-default\"\n type=\"button\"\n [disabled]=\"disabled\"\n (click)=\"buttonClick()\"\n>\n {{ buttonText }}\n</button>\n"}]}],"members":{"tabset":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":40,"character":3}}]}],"buttonType":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":43,"character":3}}]}],"buttonText":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":46,"character":3}}]}],"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"@skyux/i18n","name":"SkyLibResourcesService","line":121,"character":39},{"__symbolic":"reference","module":"@angular/core","name":"ChangeDetectorRef","line":121,"character":87}]}],"ngAfterViewInit":[{"__symbolic":"method"}],"buttonClick":[{"__symbolic":"method"}]}}},"origins":{"SkySectionedFormModule":"./modules/sectioned-form/sectioned-form.module","SkySectionedFormService":"./modules/sectioned-form/sectioned-form.service","SkyTabIndex":"./modules/tabs/tab-index","SkyTabsetButtonsDisplayMode":"./modules/tabs/tabset-buttons-display-mode","SkyTabsetStyle":"./modules/tabs/tabset-style","SkyTabsetTabIndexesChange":"./modules/tabs/tabset-tab-indexes-change","SkyTabsModule":"./modules/tabs/tabs.module","SkyVerticalTabsetModule":"./modules/vertical-tabset/vertical-tabset.module","SkySectionedFormComponent":"./modules/sectioned-form/sectioned-form.component","ɵa":"./modules/vertical-tabset/vertical-tabset.service","ɵb":"./modules/vertical-tabset/vertical-tabset.service","ɵc":"./modules/vertical-tabset/vertical-tabset.service","ɵd":"./modules/sectioned-form/sectioned-form-section.component","ɵe":"./modules/vertical-tabset/vertical-tab.component","ɵf":"./modules/vertical-tabset/vertical-tab-media-query.service","ɵg":"./modules/vertical-tabset/vertical-tabset-adapter.service","ɵh":"./modules/vertical-tabset/vertical-tabset.component","ɵi":"./modules/vertical-tabset/vertical-tabset-group.component","ɵj":"./modules/shared/tabs-resources.module","ɵk":"./plugin-resources/tabs-resources-provider","ɵl":"./modules/tabs/tab-button.component","ɵm":"./modules/tabs/tab.component","ɵn":"./modules/tabs/tabset-permalink.service","ɵo":"./modules/tabs/tabset.service","ɵp":"./modules/tabs/tabset.component","ɵq":"./modules/tabs/tabset-adapter.service","ɵr":"./modules/tabs/tabset-nav-button.component"},"importAs":"@skyux/tabs"}