@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.
- package/CHANGELOG.md +218 -0
- package/README.md +5 -0
- package/bundles/skyux-tabs-testing.umd.js +395 -0
- package/bundles/skyux-tabs-testing.umd.js.map +1 -0
- package/bundles/skyux-tabs-testing.umd.min.js +16 -0
- package/bundles/skyux-tabs-testing.umd.min.js.map +1 -0
- package/bundles/skyux-tabs.umd.js +2414 -0
- package/bundles/skyux-tabs.umd.js.map +1 -0
- package/bundles/skyux-tabs.umd.min.js +16 -0
- package/bundles/skyux-tabs.umd.min.js.map +1 -0
- package/esm2015/modules/sectioned-form/sectioned-form-section.component.js +74 -0
- package/esm2015/modules/sectioned-form/sectioned-form.component.js +105 -0
- package/esm2015/modules/sectioned-form/sectioned-form.module.js +28 -0
- package/esm2015/modules/sectioned-form/sectioned-form.service.js +34 -0
- package/esm2015/modules/shared/tabs-resources.module.js +17 -0
- package/esm2015/modules/tabs/tab-button.component.js +71 -0
- package/esm2015/modules/tabs/tab-index.js +1 -0
- package/esm2015/modules/tabs/tab.component.js +144 -0
- package/esm2015/modules/tabs/tabs.module.js +41 -0
- package/esm2015/modules/tabs/tabset-active-tab-unregistered-args.js +1 -0
- package/esm2015/modules/tabs/tabset-adapter.service.js +53 -0
- package/esm2015/modules/tabs/tabset-buttons-display-mode.js +1 -0
- package/esm2015/modules/tabs/tabset-nav-button.component.js +122 -0
- package/esm2015/modules/tabs/tabset-permalink.service.js +123 -0
- package/esm2015/modules/tabs/tabset-style.js +1 -0
- package/esm2015/modules/tabs/tabset-tab-indexes-change.js +1 -0
- package/esm2015/modules/tabs/tabset.component.js +403 -0
- package/esm2015/modules/tabs/tabset.service.js +109 -0
- package/esm2015/modules/vertical-tabset/vertical-tab-media-query.service.js +71 -0
- package/esm2015/modules/vertical-tabset/vertical-tab.component.js +195 -0
- package/esm2015/modules/vertical-tabset/vertical-tabset-adapter.service.js +50 -0
- package/esm2015/modules/vertical-tabset/vertical-tabset-group.component.js +113 -0
- package/esm2015/modules/vertical-tabset/vertical-tabset.component.js +139 -0
- package/esm2015/modules/vertical-tabset/vertical-tabset.module.js +43 -0
- package/esm2015/modules/vertical-tabset/vertical-tabset.service.js +167 -0
- package/esm2015/plugin-resources/tabs-resources-provider.js +16 -0
- package/esm2015/public_api.js +10 -0
- package/esm2015/skyux-tabs.js +21 -0
- package/esm2015/testing/public_api.js +2 -0
- package/esm2015/testing/skyux-tabs-testing.js +5 -0
- package/esm2015/testing/tabs/tab-fixture-tab.js +1 -0
- package/esm2015/testing/tabs/tabset-fixture.js +141 -0
- package/esm5/modules/sectioned-form/sectioned-form-section.component.js +84 -0
- package/esm5/modules/sectioned-form/sectioned-form.component.js +111 -0
- package/esm5/modules/sectioned-form/sectioned-form.module.js +31 -0
- package/esm5/modules/sectioned-form/sectioned-form.service.js +35 -0
- package/esm5/modules/shared/tabs-resources.module.js +20 -0
- package/esm5/modules/tabs/tab-button.component.js +72 -0
- package/esm5/modules/tabs/tab-index.js +1 -0
- package/esm5/modules/tabs/tab.component.js +173 -0
- package/esm5/modules/tabs/tabs.module.js +44 -0
- package/esm5/modules/tabs/tabset-active-tab-unregistered-args.js +1 -0
- package/esm5/modules/tabs/tabset-adapter.service.js +58 -0
- package/esm5/modules/tabs/tabset-buttons-display-mode.js +1 -0
- package/esm5/modules/tabs/tabset-nav-button.component.js +145 -0
- package/esm5/modules/tabs/tabset-permalink.service.js +129 -0
- package/esm5/modules/tabs/tabset-style.js +1 -0
- package/esm5/modules/tabs/tabset-tab-indexes-change.js +1 -0
- package/esm5/modules/tabs/tabset.component.js +434 -0
- package/esm5/modules/tabs/tabset.service.js +122 -0
- package/esm5/modules/vertical-tabset/vertical-tab-media-query.service.js +76 -0
- package/esm5/modules/vertical-tabset/vertical-tab.component.js +214 -0
- package/esm5/modules/vertical-tabset/vertical-tabset-adapter.service.js +51 -0
- package/esm5/modules/vertical-tabset/vertical-tabset-group.component.js +119 -0
- package/esm5/modules/vertical-tabset/vertical-tabset.component.js +145 -0
- package/esm5/modules/vertical-tabset/vertical-tabset.module.js +46 -0
- package/esm5/modules/vertical-tabset/vertical-tabset.service.js +176 -0
- package/esm5/plugin-resources/tabs-resources-provider.js +17 -0
- package/esm5/public_api.js +10 -0
- package/esm5/skyux-tabs.js +21 -0
- package/esm5/testing/public_api.js +2 -0
- package/esm5/testing/skyux-tabs-testing.js +5 -0
- package/esm5/testing/tabs/tab-fixture-tab.js +1 -0
- package/esm5/testing/tabs/tabset-fixture.js +168 -0
- package/fesm2015/skyux-tabs-testing.js +148 -0
- package/fesm2015/skyux-tabs-testing.js.map +1 -0
- package/fesm2015/skyux-tabs.js +1998 -0
- package/fesm2015/skyux-tabs.js.map +1 -0
- package/fesm5/skyux-tabs-testing.js +174 -0
- package/fesm5/skyux-tabs-testing.js.map +1 -0
- package/fesm5/skyux-tabs.js +2182 -0
- package/fesm5/skyux-tabs.js.map +1 -0
- package/modules/sectioned-form/sectioned-form-section.component.d.ts +39 -0
- package/modules/sectioned-form/sectioned-form.component.d.ts +30 -0
- package/modules/sectioned-form/sectioned-form.module.d.ts +2 -0
- package/modules/sectioned-form/sectioned-form.service.d.ts +21 -0
- package/modules/shared/tabs-resources.module.d.ts +2 -0
- package/modules/tabs/tab-button.component.d.ts +21 -0
- package/modules/tabs/tab-index.d.ts +1 -0
- package/modules/tabs/tab.component.d.ts +77 -0
- package/modules/tabs/tabs.module.d.ts +2 -0
- package/modules/tabs/tabset-active-tab-unregistered-args.d.ts +10 -0
- package/modules/tabs/tabset-adapter.service.d.ts +21 -0
- package/modules/tabs/tabset-buttons-display-mode.d.ts +1 -0
- package/modules/tabs/tabset-nav-button.component.d.ts +24 -0
- package/modules/tabs/tabset-permalink.service.d.ts +43 -0
- package/modules/tabs/tabset-style.d.ts +1 -0
- package/modules/tabs/tabset-tab-indexes-change.d.ts +7 -0
- package/modules/tabs/tabset.component.d.ts +142 -0
- package/modules/tabs/tabset.service.d.ts +51 -0
- package/modules/vertical-tabset/vertical-tab-media-query.service.d.ts +15 -0
- package/modules/vertical-tabset/vertical-tab.component.d.ts +86 -0
- package/modules/vertical-tabset/vertical-tabset-adapter.service.d.ts +10 -0
- package/modules/vertical-tabset/vertical-tabset-group.component.d.ts +33 -0
- package/modules/vertical-tabset/vertical-tabset.component.d.ts +45 -0
- package/modules/vertical-tabset/vertical-tabset.module.d.ts +2 -0
- package/modules/vertical-tabset/vertical-tabset.service.d.ts +41 -0
- package/package.json +41 -0
- package/plugin-resources/tabs-resources-provider.d.ts +5 -0
- package/public_api.d.ts +9 -0
- package/skyux-tabs.d.ts +20 -0
- package/skyux-tabs.metadata.json +1 -0
- package/src/assets/img/guidelines/tabs/tabs-anatomy.png +0 -0
- package/src/assets/img/guidelines/tabs/tabs-behavior-1.png +0 -0
- package/src/assets/img/guidelines/tabs/tabs-layout-1.png +0 -0
- package/src/assets/img/guidelines/tabs/tabs-layout-2.png +0 -0
- package/src/assets/img/guidelines/tabs/tabs-layout-3.png +0 -0
- package/src/assets/img/guidelines/tabs/tabs-layout-4.png +0 -0
- package/src/assets/img/guidelines/tabs/tabs-options-1.png +0 -0
- package/src/assets/img/guidelines/tabs/tabs-options-2.png +0 -0
- package/src/assets/img/guidelines/tabs/tabs-state-collapsed-closed.png +0 -0
- package/src/assets/img/guidelines/tabs/tabs-state-collapsed-open.png +0 -0
- package/src/assets/img/guidelines/tabs/tabs-state-hover.png +0 -0
- package/src/assets/img/guidelines/tabs/tabs-state-selected.png +0 -0
- package/src/assets/img/guidelines/tabs/tabs-state-unselected.png +0 -0
- package/src/assets/img/guidelines/tabs/tabs-usage-1.png +0 -0
- package/src/assets/img/guidelines/tabs/tabs-usage-2.png +0 -0
- package/src/assets/img/guidelines/tabs/tabs-usage-3.png +0 -0
- package/src/assets/img/guidelines/tabs/tabs-usage-4.png +0 -0
- package/src/assets/img/guidelines/tabs/tabs-usage-5.png +0 -0
- package/src/assets/img/guidelines/vertical-tabs/vertical-tabs-anatomy-1.png +0 -0
- package/src/assets/img/guidelines/vertical-tabs/vertical-tabs-anatomy-2.png +0 -0
- package/src/assets/img/guidelines/vertical-tabs/vertical-tabs-layout-1.png +0 -0
- package/src/assets/img/guidelines/vertical-tabs/vertical-tabs-state-hover.png +0 -0
- package/src/assets/img/guidelines/vertical-tabs/vertical-tabs-state-selected-group.png +0 -0
- package/src/assets/img/guidelines/vertical-tabs/vertical-tabs-state-selected.png +0 -0
- package/src/assets/img/guidelines/vertical-tabs/vertical-tabs-state-unselected-group.png +0 -0
- package/src/assets/img/guidelines/vertical-tabs/vertical-tabs-state-unselected.png +0 -0
- package/src/assets/img/guidelines/vertical-tabs/vertical-tabs-usage-1.png +0 -0
- package/src/assets/img/guidelines/vertical-tabs/vertical-tabs-usage-2.png +0 -0
- package/src/assets/img/guidelines/vertical-tabs/vertical-tabs-usage-3.png +0 -0
- package/src/assets/img/guidelines/vertical-tabs/vertical-tabs-usage-4.png +0 -0
- package/src/assets/img/guidelines/vertical-tabs/vertical-tabs-usage-5.png +0 -0
- package/src/assets/img/guidelines/vertical-tabs/vertical-tabs-usage-6.png +0 -0
- package/src/assets/img/guidelines/vertical-tabs/vertical-tabs-usage-7.png +0 -0
- package/src/assets/locales/resources_en_US.json +26 -0
- package/testing/package.json +13 -0
- package/testing/public_api.d.ts +2 -0
- package/testing/skyux-tabs-testing.d.ts +4 -0
- package/testing/skyux-tabs-testing.metadata.json +1 -0
- package/testing/tabs/tab-fixture-tab.d.ts +25 -0
- 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,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
|
+
}
|
package/public_api.d.ts
ADDED
|
@@ -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';
|
package/skyux-tabs.d.ts
ADDED
|
@@ -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"}
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|