@skyux/tabs 4.6.9 → 5.0.0-beta.4
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/LICENSE +21 -0
- package/bundles/skyux-tabs-testing.umd.js +324 -221
- package/bundles/skyux-tabs-testing.umd.js.map +1 -1
- package/bundles/skyux-tabs.umd.js +657 -782
- package/bundles/skyux-tabs.umd.js.map +1 -1
- package/documentation.json +5509 -0
- package/esm2015/modules/sectioned-form/sectioned-form-section.component.js +29 -32
- package/esm2015/modules/sectioned-form/sectioned-form.component.js +52 -41
- package/esm2015/modules/sectioned-form/sectioned-form.module.js +30 -19
- package/esm2015/modules/sectioned-form/sectioned-form.service.js +9 -8
- package/esm2015/modules/shared/sky-tabs-resources.module.js +41 -0
- package/esm2015/modules/tabs/tab-button.component.js +41 -47
- package/esm2015/modules/tabs/tab-index.js +2 -1
- package/esm2015/modules/tabs/tab.component.js +31 -41
- package/esm2015/modules/tabs/tabs.module.js +45 -23
- package/esm2015/modules/tabs/tabset-active-tab-unregistered-args.js +2 -1
- package/esm2015/modules/tabs/tabset-adapter.service.js +9 -8
- package/esm2015/modules/tabs/tabset-buttons-display-mode.js +2 -1
- package/esm2015/modules/tabs/tabset-nav-button.component.js +21 -26
- package/esm2015/modules/tabs/tabset-permalink.service.js +11 -15
- package/esm2015/modules/tabs/tabset-style.js +2 -1
- package/esm2015/modules/tabs/tabset-tab-indexes-change.js +2 -1
- package/esm2015/modules/tabs/tabset.component.js +56 -57
- package/esm2015/modules/tabs/tabset.service.js +10 -8
- package/esm2015/modules/vertical-tabset/vertical-tab-media-query.service.js +9 -8
- package/esm2015/modules/vertical-tabset/vertical-tab.component.js +57 -65
- package/esm2015/modules/vertical-tabset/vertical-tabset-adapter.service.js +10 -12
- package/esm2015/modules/vertical-tabset/vertical-tabset-group.component.js +75 -54
- package/esm2015/modules/vertical-tabset/vertical-tabset.component.js +70 -57
- package/esm2015/modules/vertical-tabset/vertical-tabset.module.js +47 -30
- package/esm2015/modules/vertical-tabset/vertical-tabset.service.js +19 -16
- package/esm2015/public-api.js +23 -0
- package/esm2015/skyux-tabs.js +2 -18
- package/esm2015/testing/public-api.js +3 -0
- package/esm2015/testing/skyux-tabs-testing.js +2 -2
- package/esm2015/testing/tabs/tab-fixture-tab.js +2 -1
- package/esm2015/testing/tabs/tabset-fixture.js +1 -1
- package/fesm2015/skyux-tabs-testing.js.map +1 -1
- package/fesm2015/skyux-tabs.js +596 -518
- package/fesm2015/skyux-tabs.js.map +1 -1
- package/modules/sectioned-form/sectioned-form-section.component.d.ts +3 -0
- package/modules/sectioned-form/sectioned-form.component.d.ts +3 -0
- package/modules/sectioned-form/sectioned-form.module.d.ts +9 -0
- package/modules/sectioned-form/sectioned-form.service.d.ts +3 -0
- package/modules/shared/sky-tabs-resources.module.d.ts +14 -0
- package/modules/tabs/tab-button.component.d.ts +4 -1
- package/modules/tabs/tab.component.d.ts +4 -1
- package/modules/tabs/tabs.module.d.ts +15 -0
- package/modules/tabs/tabset-adapter.service.d.ts +3 -0
- package/modules/tabs/tabset-nav-button.component.d.ts +3 -0
- package/modules/tabs/tabset-permalink.service.d.ts +3 -0
- package/modules/tabs/tabset.component.d.ts +4 -1
- package/modules/tabs/tabset.service.d.ts +3 -0
- package/modules/vertical-tabset/vertical-tab-media-query.service.d.ts +3 -0
- package/modules/vertical-tabset/vertical-tab.component.d.ts +3 -0
- package/modules/vertical-tabset/vertical-tabset-adapter.service.d.ts +3 -0
- package/modules/vertical-tabset/vertical-tabset-group.component.d.ts +3 -0
- package/modules/vertical-tabset/vertical-tabset.component.d.ts +3 -0
- package/modules/vertical-tabset/vertical-tabset.module.d.ts +11 -0
- package/modules/vertical-tabset/vertical-tabset.service.d.ts +3 -0
- package/package.json +14 -29
- package/public-api.d.ts +16 -0
- package/skyux-tabs.d.ts +2 -17
- package/testing/package.json +2 -5
- package/testing/{public_api.d.ts → public-api.d.ts} +0 -0
- package/testing/skyux-tabs-testing.d.ts +2 -1
- package/CHANGELOG.md +0 -218
- package/bundles/skyux-tabs-testing.umd.min.js +0 -16
- package/bundles/skyux-tabs-testing.umd.min.js.map +0 -1
- package/bundles/skyux-tabs.umd.min.js +0 -16
- package/bundles/skyux-tabs.umd.min.js.map +0 -1
- package/esm2015/modules/shared/tabs-resources.module.js +0 -17
- package/esm2015/plugin-resources/tabs-resources-provider.js +0 -16
- package/esm2015/public_api.js +0 -10
- package/esm2015/testing/public_api.js +0 -2
- package/esm5/modules/sectioned-form/sectioned-form-section.component.js +0 -84
- package/esm5/modules/sectioned-form/sectioned-form.component.js +0 -111
- package/esm5/modules/sectioned-form/sectioned-form.module.js +0 -31
- package/esm5/modules/sectioned-form/sectioned-form.service.js +0 -35
- package/esm5/modules/shared/tabs-resources.module.js +0 -20
- package/esm5/modules/tabs/tab-button.component.js +0 -72
- package/esm5/modules/tabs/tab-index.js +0 -1
- package/esm5/modules/tabs/tab.component.js +0 -173
- package/esm5/modules/tabs/tabs.module.js +0 -44
- package/esm5/modules/tabs/tabset-active-tab-unregistered-args.js +0 -1
- package/esm5/modules/tabs/tabset-adapter.service.js +0 -58
- package/esm5/modules/tabs/tabset-buttons-display-mode.js +0 -1
- package/esm5/modules/tabs/tabset-nav-button.component.js +0 -145
- package/esm5/modules/tabs/tabset-permalink.service.js +0 -129
- package/esm5/modules/tabs/tabset-style.js +0 -1
- package/esm5/modules/tabs/tabset-tab-indexes-change.js +0 -1
- package/esm5/modules/tabs/tabset.component.js +0 -434
- package/esm5/modules/tabs/tabset.service.js +0 -122
- package/esm5/modules/vertical-tabset/vertical-tab-media-query.service.js +0 -76
- package/esm5/modules/vertical-tabset/vertical-tab.component.js +0 -214
- package/esm5/modules/vertical-tabset/vertical-tabset-adapter.service.js +0 -51
- package/esm5/modules/vertical-tabset/vertical-tabset-group.component.js +0 -119
- package/esm5/modules/vertical-tabset/vertical-tabset.component.js +0 -145
- package/esm5/modules/vertical-tabset/vertical-tabset.module.js +0 -46
- package/esm5/modules/vertical-tabset/vertical-tabset.service.js +0 -176
- package/esm5/plugin-resources/tabs-resources-provider.js +0 -17
- package/esm5/public_api.js +0 -10
- package/esm5/skyux-tabs.js +0 -21
- package/esm5/testing/public_api.js +0 -2
- package/esm5/testing/skyux-tabs-testing.js +0 -5
- package/esm5/testing/tabs/tab-fixture-tab.js +0 -1
- package/esm5/testing/tabs/tabset-fixture.js +0 -168
- package/fesm5/skyux-tabs-testing.js +0 -174
- package/fesm5/skyux-tabs-testing.js.map +0 -1
- package/fesm5/skyux-tabs.js +0 -2182
- package/fesm5/skyux-tabs.js.map +0 -1
- package/modules/shared/tabs-resources.module.d.ts +0 -2
- package/plugin-resources/tabs-resources-provider.d.ts +0 -5
- package/public_api.d.ts +0 -9
- package/skyux-tabs.metadata.json +0 -1
- 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 +0 -26
- package/testing/skyux-tabs-testing.metadata.json +0 -1
package/CHANGELOG.md
DELETED
|
@@ -1,218 +0,0 @@
|
|
|
1
|
-
# 4.6.9 (2021-09-16)
|
|
2
|
-
|
|
3
|
-
- Fixed the vertical tabs component to scroll the top of the content pane when a new tab is activated. [#182](https://github.com/blackbaud/skyux-tabs/pull/182)
|
|
4
|
-
|
|
5
|
-
# 4.6.8 (2021-07-27)
|
|
6
|
-
|
|
7
|
-
- Fixed the sectioned form component to have proper spacing between a section's heading and invalid icon. [#176](https://github.com/blackbaud/skyux-tabs/pull/176)
|
|
8
|
-
|
|
9
|
-
# 4.6.7 (2021-06-11)
|
|
10
|
-
|
|
11
|
-
- Fixed the module name in the installation documentation. [#171](https://github.com/blackbaud/skyux-tabs/pull/171)
|
|
12
|
-
|
|
13
|
-
# 4.6.6 (2021-05-12)
|
|
14
|
-
|
|
15
|
-
- Fixed the tabset component to ensure all tabs are registered if new tabs are added quickly on initialization. [#166](https://github.com/blackbaud/skyux-tabs/pull/166)
|
|
16
|
-
|
|
17
|
-
# 4.6.5 (2021-04-26)
|
|
18
|
-
|
|
19
|
-
- Fixed the tab close button to follow accessibility guidelines. [#162](https://github.com/blackbaud/skyux-tabs/pull/162)
|
|
20
|
-
|
|
21
|
-
# 4.6.4 (2021-03-31)
|
|
22
|
-
|
|
23
|
-
- Replaced theme conditionals in templates with the new `skyThemeIf` directive. [#159](https://github.com/blackbaud/skyux-tabs/pull/159)
|
|
24
|
-
|
|
25
|
-
# 4.6.3 (2021-03-12)
|
|
26
|
-
|
|
27
|
-
- Fixed the vertical tab component to ensure all content is rendered prior to responsive styles being added. [#158](https://github.com/blackbaud/skyux-tabs/pull/158)
|
|
28
|
-
|
|
29
|
-
# 4.6.2 (2021-03-05)
|
|
30
|
-
|
|
31
|
-
- Fixed the tabset component to fire the `activeChange` event when the component is initialized. [#157](https://github.com/blackbaud/skyux-tabs/pull/157)
|
|
32
|
-
|
|
33
|
-
# 4.6.1 (2021-03-04)
|
|
34
|
-
|
|
35
|
-
- Fixed the tabset component to retain the selected tab (when using `permalinkId`) after the page has been reloaded. [#156](https://github.com/blackbaud/skyux-tabs/pull/156)
|
|
36
|
-
|
|
37
|
-
# 4.6.0 (2021-02-26)
|
|
38
|
-
|
|
39
|
-
- Added responsive container classes to the vertical tab component to allow child components to use the correct responsive styles. [#154](https://github.com/blackbaud/skyux-tabs/pull/154)
|
|
40
|
-
|
|
41
|
-
# 4.5.0 (2021-01-19)
|
|
42
|
-
|
|
43
|
-
- Added modern theme styles for the vertical tabs component. [#150](https://github.com/blackbaud/skyux-tabs/pull/150)
|
|
44
|
-
|
|
45
|
-
# 4.4.1 (2020-11-30)
|
|
46
|
-
|
|
47
|
-
- Fixed the tabset component to properly activate the nearest tab when the active tab is removed. [#148](https://github.com/blackbaud/skyux-tabs/pull/148)
|
|
48
|
-
|
|
49
|
-
# 4.4.0 (2020-10-14)
|
|
50
|
-
|
|
51
|
-
- Added the `tabIndexesChange` event to the tabset component which fires when tab indexes change. [#143](https://github.com/blackbaud/skyux-tabs/pull/143)
|
|
52
|
-
- Fixed the tabset service to generate unique tab indexes for tabs created after initialization. [#143](https://github.com/blackbaud/skyux-tabs/pull/143)
|
|
53
|
-
- Fixed the tabset component to properly close the final tab in a set. [#142](https://github.com/blackbaud/skyux-tabs/pull/142)
|
|
54
|
-
- Fixed the tabset component to recognize changes to a tab's `tabHeading` attribute. [#142](https://github.com/blackbaud/skyux-tabs/pull/142)
|
|
55
|
-
|
|
56
|
-
# 4.3.4 (2020-10-08)
|
|
57
|
-
|
|
58
|
-
- Fixed the tabset component to properly recognize active tabs that are set after initialization. [#137](https://github.com/blackbaud/skyux-tabs/pull/137)
|
|
59
|
-
|
|
60
|
-
# 4.3.3 (2020-09-11)
|
|
61
|
-
|
|
62
|
-
- Fixed the tabset component to allow consumers to activate a tab as soon as they create it. [#132](https://github.com/blackbaud/skyux-tabs/pull/132)
|
|
63
|
-
|
|
64
|
-
# 4.3.2 (2020-08-20)
|
|
65
|
-
|
|
66
|
-
- Fixed the tabset component to use query params instead of matrix params when using `permalinkId` (matrix params cannot be used on the root route of an application). [#128](https://github.com/blackbaud/skyux-tabs/pull/128)
|
|
67
|
-
|
|
68
|
-
# 4.3.1 (2020-08-13)
|
|
69
|
-
|
|
70
|
-
- Fixed the tabset component to preserve URL query params when using `permalinkId`. [#126](https://github.com/blackbaud/skyux-tabs/pull/126)
|
|
71
|
-
|
|
72
|
-
# 4.3.0 (2020-08-04)
|
|
73
|
-
|
|
74
|
-
- Added modern theme styles for active, focused, and hover states to the tabset component. [#122](https://github.com/blackbaud/skyux-tabs/pull/122)
|
|
75
|
-
|
|
76
|
-
# 4.2.1 (2020-07-31)
|
|
77
|
-
|
|
78
|
-
- Fixed the tabset component to properly handle two-way binding with the `active` input. [#121](https://github.com/blackbaud/skyux-tabs/pull/121)
|
|
79
|
-
|
|
80
|
-
# 4.2.0 (2020-07-20)
|
|
81
|
-
|
|
82
|
-
- Added a test fixture for the tabset component to use in consumer unit tests. [#113](https://github.com/blackbaud/skyux-tabs/pull/113)
|
|
83
|
-
- Added the `maintainSectionContent` input property to the sectioned form component. [#112](https://github.com/blackbaud/skyux-tabs/pull/112) (Thanks [@michael-tims](https://github.com/michael-tims)!)
|
|
84
|
-
- Added the `maintainTabContent` input property to the vertical tabset component. [#112](https://github.com/blackbaud/skyux-tabs/pull/112) (Thanks [@michael-tims](https://github.com/michael-tims)!)
|
|
85
|
-
- Fixed an issue where removing a tabset from the page did not remove the permalink in the URL. [#109](https://github.com/blackbaud/skyux-tabs/pull/109)
|
|
86
|
-
|
|
87
|
-
# 4.1.1 (2020-06-25)
|
|
88
|
-
|
|
89
|
-
- Fixed the exports API to include `SectionedFormService`. [#97](https://github.com/blackbaud/skyux-tabs/pull/97)
|
|
90
|
-
|
|
91
|
-
# 4.1.0 (2020-06-16)
|
|
92
|
-
|
|
93
|
-
- Added the `ariaLabel` and `ariaLabelledBy` input properties to the tabset component. [#90](https://github.com/blackbaud/skyux-tabs/pull/90)
|
|
94
|
-
- Fixed the `aria-controls` and `role` HTML properties on the tabset component to follow proper accessibility guidelines. [#90](https://github.com/blackbaud/skyux-tabs/pull/90)
|
|
95
|
-
|
|
96
|
-
# 4.0.1 (2020-06-11)
|
|
97
|
-
|
|
98
|
-
- Fixed the exports API to include `SkySectionedFormComponent`. [#92](https://github.com/blackbaud/skyux-tabs/pull/92)
|
|
99
|
-
- Fixed the tabset component to allow setting the `tabStyle` to `'wizard'`. [#92](https://github.com/blackbaud/skyux-tabs/pull/92)
|
|
100
|
-
|
|
101
|
-
# 4.0.0 (2020-05-21)
|
|
102
|
-
|
|
103
|
-
### New features
|
|
104
|
-
|
|
105
|
-
- Added support for `@angular/core@^9`. [#56](https://github.com/blackbaud/skyux-tabs/pull/56)
|
|
106
|
-
- Updated the pipeline to transpile to the [Angular Package Format](https://docs.google.com/document/d/1CZC2rcpxffTDfRDs6p1cfbmKNLA6x5O-NtkJglDaBVs/preview). [#56](https://github.com/blackbaud/skyux-tabs/pull/56)
|
|
107
|
-
|
|
108
|
-
### Breaking changes
|
|
109
|
-
|
|
110
|
-
- Removed the `tabStyle` input from the tabset component, which was used to switch between `'wizard'` or `'tabs'` tab styles. To use a wizard-styled component, use the progress indicator component. [#84](https://github.com/blackbaud/skyux-tabs/pull/84)
|
|
111
|
-
- Dropped support for `rxjs@5`. Consumers can install `rxjs-compat@^6` to support older versions of `rxjs`. [#56](https://github.com/blackbaud/skyux-tabs/pull/56)
|
|
112
|
-
|
|
113
|
-
# 4.0.0-rc.2 (2020-05-18)
|
|
114
|
-
|
|
115
|
-
### Breaking changes
|
|
116
|
-
|
|
117
|
-
- Removed the `tabStyle` input from the tabset component, which was used to switch between `'wizard'` or `'tabs'` tab styles. To use a wizard-styled component, use the progress indicator component. [#84](https://github.com/blackbaud/skyux-tabs/pull/84)
|
|
118
|
-
|
|
119
|
-
# 3.3.0 (2020-05-11)
|
|
120
|
-
|
|
121
|
-
- Added modern theme styles to the tabset component. [#81](https://github.com/blackbaud/skyux-tabs/pull/81)
|
|
122
|
-
|
|
123
|
-
# 3.2.8 (2020-05-07)
|
|
124
|
-
|
|
125
|
-
- Fixed deep imports for `SkyMediaQueryService`. [#77](https://github.com/blackbaud/skyux-tabs/pull/77)
|
|
126
|
-
|
|
127
|
-
# 4.0.0-rc.1 (2020-04-30)
|
|
128
|
-
|
|
129
|
-
- Added bug fixes and features from the `master` branch. [#75](https://github.com/blackbaud/skyux-tabs/pull/75)
|
|
130
|
-
|
|
131
|
-
# 3.2.7 (2020-04-23)
|
|
132
|
-
|
|
133
|
-
- Fixed the tab and tabset components to set the active tab on initialization. [#73](https://github.com/blackbaud/skyux-tabs/pull/73)
|
|
134
|
-
|
|
135
|
-
# 3.2.6 (2020-04-07)
|
|
136
|
-
|
|
137
|
-
- Fixed the tabset component to set the active tab when `activeIndex` is set to a `string` value. [#62](https://github.com/blackbaud/skyux-tabs/pull/62)
|
|
138
|
-
|
|
139
|
-
# 3.2.5 (2020-03-30)
|
|
140
|
-
|
|
141
|
-
- Fixed the tabset component to avoid triggering navigation changes when using the `permalinkId` property. [#59](https://github.com/blackbaud/skyux-tabs/pull/59)
|
|
142
|
-
|
|
143
|
-
# 4.0.0-rc.0 (2020-02-22)
|
|
144
|
-
|
|
145
|
-
### New features
|
|
146
|
-
|
|
147
|
-
- Added support for `@angular/core@^9`. [#56](https://github.com/blackbaud/skyux-tabs/pull/56)
|
|
148
|
-
- Updated the pipeline to transpile to the [Angular Package Format](https://docs.google.com/document/d/1CZC2rcpxffTDfRDs6p1cfbmKNLA6x5O-NtkJglDaBVs/preview). [#56](https://github.com/blackbaud/skyux-tabs/pull/56)
|
|
149
|
-
|
|
150
|
-
### Breaking changes
|
|
151
|
-
|
|
152
|
-
- Dropped support for `rxjs@5`. Consumers can install `rxjs-compat@^6` to support older versions of `rxjs`. [#56](https://github.com/blackbaud/skyux-tabs/pull/56)
|
|
153
|
-
|
|
154
|
-
# 3.2.4 (2020-01-27)
|
|
155
|
-
|
|
156
|
-
- Fixed the vertical tabset component to eliminate extra padding when placed inside a modal. [#53](https://github.com/blackbaud/skyux-tabs/pull/53)
|
|
157
|
-
|
|
158
|
-
# 3.2.3 (2019-12-20)
|
|
159
|
-
|
|
160
|
-
- Fixed the vertical tab component to work with structural directives such as `ngFor` and `ngIf`. [#48](https://github.com/blackbaud/skyux-tabs/pull/48)
|
|
161
|
-
|
|
162
|
-
# 3.2.2 (2019-11-21)
|
|
163
|
-
|
|
164
|
-
- Fixed the tabset component to navigate to the previous active tab when users select the browser's "back" button. [#44](https://github.com/blackbaud/skyux-tabs/pull/44)
|
|
165
|
-
- Fixed the tabset component to prevent tabs from collapsing when a tabset is within another tabset. [#44](https://github.com/blackbaud/skyux-tabs/pull/44)
|
|
166
|
-
- Fixed the tabset component to clear the URL router fragment when users select a tab. [#44](https://github.com/blackbaud/skyux-tabs/pull/44)
|
|
167
|
-
|
|
168
|
-
# 3.2.1 (2019-10-25)
|
|
169
|
-
|
|
170
|
-
- Fixed the tabset component to fall back to the active index if `permalinkValue` is undefined. [#37](https://github.com/blackbaud/skyux-tabs/pull/37)
|
|
171
|
-
|
|
172
|
-
# 3.2.0 (2019-08-28)
|
|
173
|
-
|
|
174
|
-
- Added query parameters to the URL to reflect active tab states in the tabset component. [#31](https://github.com/blackbaud/skyux-tabs/pull/31)
|
|
175
|
-
|
|
176
|
-
# 3.1.0 (2019-05-17)
|
|
177
|
-
|
|
178
|
-
- Added the ability to trigger responsive styles based on a parent component. [#25](https://github.com/blackbaud/skyux-tabs/pull/25)
|
|
179
|
-
|
|
180
|
-
# 3.0.3 (2019-04-29)
|
|
181
|
-
|
|
182
|
-
- Fixed the vertical tabset component to correctly translate resource strings. [#24](https://github.com/blackbaud/skyux-tabs/pull/24)
|
|
183
|
-
|
|
184
|
-
# 3.0.2 (2019-04-24)
|
|
185
|
-
|
|
186
|
-
- Fixed the tabset component to prevent throwing `ViewDestroyedError`s in modals. [#21](https://github.com/blackbaud/skyux-tabs/pull/21)
|
|
187
|
-
|
|
188
|
-
# 3.0.1 (2019-04-04)
|
|
189
|
-
|
|
190
|
-
- Fixed efficiency issues in the tabset component. [#16](https://github.com/blackbaud/skyux-tabs/pull/16)
|
|
191
|
-
|
|
192
|
-
# 3.0.0 (2019-01-14)
|
|
193
|
-
|
|
194
|
-
- Major version release.
|
|
195
|
-
|
|
196
|
-
# 3.0.0-rc.4 (2018-12-19)
|
|
197
|
-
|
|
198
|
-
- Fixed the vertical tabset group component to not accept clicks and have proper visual styles when disabled. [#7](https://github.com/blackbaud/skyux-tabs/pull/7)
|
|
199
|
-
|
|
200
|
-
# 3.0.0-rc.3 (2018-11-28)
|
|
201
|
-
|
|
202
|
-
- Fixed the sectioned form component to keep tabs stationary when users scroll through content and to keep content stationary when users scroll through tabs. [#4](https://github.com/blackbaud/skyux-tabs/pull/4)
|
|
203
|
-
|
|
204
|
-
# 3.0.0-rc.2 (2018-11-09)
|
|
205
|
-
|
|
206
|
-
- Added support for `@skyux/i18n@3.3.0`, which addresses some internationalization issues. [#3](https://github.com/blackbaud/skyux-tabs/pull/3)
|
|
207
|
-
|
|
208
|
-
# 3.0.0-rc.1 (2018-10-18)
|
|
209
|
-
|
|
210
|
-
- Added support for `@skyux/i18n@3.2.0`. [#2](https://github.com/blackbaud/skyux-tabs/pull/2)
|
|
211
|
-
|
|
212
|
-
# 3.0.0-rc.0 (2018-10-12)
|
|
213
|
-
|
|
214
|
-
- Initial release candidate.
|
|
215
|
-
|
|
216
|
-
# 3.0.0-alpha.0 (2018-10-10)
|
|
217
|
-
|
|
218
|
-
- Initial alpha release.
|
|
@@ -1,16 +0,0 @@
|
|
|
1
|
-
!function(t,e){"object"==typeof exports&&"undefined"!=typeof module?e(exports,require("@angular/platform-browser"),require("@skyux-sdk/testing")):"function"==typeof define&&define.amd?define("@skyux/tabs/testing",["exports","@angular/platform-browser","@skyux-sdk/testing"],e):e(((t=t||self).skyux=t.skyux||{},t.skyux.tabs=t.skyux.tabs||{},t.skyux.tabs.testing={}),t.ng.platformBrowser,t.testing)}(this,(function(t,e,n){"use strict";
|
|
2
|
-
/*! *****************************************************************************
|
|
3
|
-
Copyright (c) Microsoft Corporation.
|
|
4
|
-
|
|
5
|
-
Permission to use, copy, modify, and/or distribute this software for any
|
|
6
|
-
purpose with or without fee is hereby granted.
|
|
7
|
-
|
|
8
|
-
THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH
|
|
9
|
-
REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
|
|
10
|
-
AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,
|
|
11
|
-
INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
|
|
12
|
-
LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
|
|
13
|
-
OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
|
|
14
|
-
PERFORMANCE OF THIS SOFTWARE.
|
|
15
|
-
***************************************************************************** */function r(t,e,n,r){return new(n||(n=Promise))((function(i,o){function a(t){try{u(r.next(t))}catch(t){o(t)}}function s(t){try{u(r.throw(t))}catch(t){o(t)}}function u(t){var e;t.done?i(t.value):(e=t.value,e instanceof n?e:new n((function(t){t(e)}))).then(a,s)}u((r=r.apply(t,e||[])).next())}))}function i(t,e){var n,r,i,o,a={label:0,sent:function(){if(1&i[0])throw i[1];return i[1]},trys:[],ops:[]};return o={next:s(0),throw:s(1),return:s(2)},"function"==typeof Symbol&&(o[Symbol.iterator]=function(){return this}),o;function s(o){return function(s){return function(o){if(n)throw new TypeError("Generator is already executing.");for(;a;)try{if(n=1,r&&(i=2&o[0]?r.return:o[0]?r.throw||((i=r.return)&&i.call(r),0):r.next)&&!(i=i.call(r,o[1])).done)return i;switch(r=0,i&&(o=[2&o[0],i.value]),o[0]){case 0:case 1:i=o;break;case 4:return a.label++,{value:o[1],done:!1};case 5:a.label++,r=o[1],o=[0];continue;case 7:o=a.ops.pop(),a.trys.pop();continue;default:if(!(i=a.trys,(i=i.length>0&&i[i.length-1])||6!==o[0]&&2!==o[0])){a=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]<i[3])){a.label=o[1];break}if(6===o[0]&&a.label<i[1]){a.label=i[1],i=o;break}if(i&&a.label<i[2]){a.label=i[2],a.ops.push(o);break}i[2]&&a.ops.pop(),a.trys.pop();continue}o=e.call(t,a)}catch(t){o=[6,t],r=0}finally{n=i=0}if(5&o[0])throw o[1];return{value:o[0]?o[1]:void 0,done:!0}}([o,s])}}}var o=function(){function t(t,e){this.fixture=t,this.debugEl=n.SkyAppTestUtility.getDebugElementByTestId(t,e,"sky-tabset")}return Object.defineProperty(t.prototype,"ariaLabel",{get:function(){return this.getTabsetEl().getAttribute("aria-label")||void 0},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"ariaLabelledBy",{get:function(){return this.getTabsetEl().getAttribute("aria-labelledby")||void 0},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"activeTabIndex",{get:function(){for(var t=this.getTabLinkEls(),e=0,n=t.length;e<n;e++)if(t.item(e).classList.contains("sky-btn-tab-selected"))return e;return-1},enumerable:!0,configurable:!0}),t.prototype.getTab=function(t){var e,n=this.getTabLinkEl(t),r=this.activeTabIndex===t,i=n.classList.contains("sky-btn-tab-disabled"),o=this.getTextContent(n.querySelector(".sky-tab-heading").childNodes[0]),a=this.getTextContent(n.querySelector(".sky-tab-header-count"));if(n.href){var s=n.href.split("?")[1];if(s){var u=s.split("=");e=decodeURIComponent(u[1])}}return{active:r,disabled:i,permalinkValue:e,tabHeaderCount:a,tabHeading:o}},t.prototype.clickNewButton=function(){return r(this,void 0,void 0,(function(){return i(this,(function(t){return[2,this.clickButton("sky-tabset-btn-new")]}))}))},t.prototype.clickOpenButton=function(){return r(this,void 0,void 0,(function(){return i(this,(function(t){return[2,this.clickButton("sky-tabset-btn-open")]}))}))},t.prototype.clickTab=function(t){return r(this,void 0,void 0,(function(){var e;return i(this,(function(n){if(!(e=this.getTabLinkEl(t)))throw new Error("There is no tab at index "+t+".");return e.click(),this.fixture.detectChanges(),[2,this.fixture.whenStable()]}))}))},t.prototype.clickTabClose=function(t){return r(this,void 0,void 0,(function(){var e,n;return i(this,(function(r){if(!(e=this.getTabsetEl().querySelectorAll(".sky-tabset-tabs .sky-btn-tab-wrapper")[t]))throw new Error("There is no tab at index "+t+".");if(!(n=e.querySelector(".sky-btn-tab-close")))throw new Error("The specified tab does not have a close button.");return n.click(),this.fixture.detectChanges(),[2,this.fixture.whenStable()]}))}))},t.prototype.clickButton=function(t){return r(this,void 0,void 0,(function(){var e;return i(this,(function(n){return e=this.getTabsetEl(),e.querySelector(".sky-tabset-btns ."+t).click(),this.fixture.detectChanges(),[2,this.fixture.whenStable()]}))}))},t.prototype.getTabsetEl=function(){return this.debugEl.query(e.By.css(".sky-tabset")).nativeElement},t.prototype.getTabLinkEls=function(){return this.getTabsetEl().querySelectorAll(".sky-tabset-tabs .sky-btn-tab")},t.prototype.getTabLinkEl=function(t){var e=this.getTabLinkEls().item(t);if(!e)throw new Error("There is no tab at index "+t+".");return e},t.prototype.getTextContent=function(t){return t&&t.textContent.trim()||void 0},t}();t.SkyTabsetFixture=o,Object.defineProperty(t,"__esModule",{value:!0})}));
|
|
16
|
-
//# sourceMappingURL=skyux-tabs-testing.umd.min.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../node_modules/tslib/tslib.es6.js","ng://@skyux/tabs/testing/tabs/tabset-fixture.ts"],"names":["__awaiter","thisArg","_arguments","P","generator","Promise","resolve","reject","fulfilled","value","step","next","e","rejected","result","done","then","apply","__generator","body","f","y","t","g","_","label","sent","trys","ops","verb","throw","return","Symbol","iterator","this","n","v","op","TypeError","call","pop","length","push","SkyTabsetFixture","fixture","skyTestId","debugEl","SkyAppTestUtility","getDebugElementByTestId","Object","defineProperty","prototype","getTabsetEl","getAttribute","undefined","tabLinkEls","getTabLinkEls","i","item","classList","contains","getTab","tabIndex","permalinkValue","tabLinkEl","getTabLinkEl","active","activeTabIndex","disabled","tabHeading","getTextContent","querySelector","childNodes","tabHeaderCount","href","permalink","split","permalinkParts","decodeURIComponent","clickNewButton","clickButton","clickOpenButton","clickTab","Error","click","detectChanges","whenStable","clickTabClose","tabWrapperEl","querySelectorAll","closeBtnEl","buttonCls","tabsetEl","query","By","css","nativeElement","el","textContent","trim"],"mappings":";;;;;;;;;;;;;;oFAmEO,SAASA,EAAUC,EAASC,EAAYC,EAAGC,GAE9C,OAAO,IAAKD,IAAMA,EAAIE,WAAU,SAAUC,EAASC,GAC/C,SAASC,EAAUC,GAAS,IAAMC,EAAKN,EAAUO,KAAKF,IAAW,MAAOG,GAAKL,EAAOK,IACpF,SAASC,EAASJ,GAAS,IAAMC,EAAKN,EAAiB,MAAEK,IAAW,MAAOG,GAAKL,EAAOK,IACvF,SAASF,EAAKI,GAJlB,IAAeL,EAIaK,EAAOC,KAAOT,EAAQQ,EAAOL,QAJ1CA,EAIyDK,EAAOL,MAJhDA,aAAiBN,EAAIM,EAAQ,IAAIN,GAAE,SAAUG,GAAWA,EAAQG,OAITO,KAAKR,EAAWK,GAClGH,GAAMN,EAAYA,EAAUa,MAAMhB,EAASC,GAAc,KAAKS,WAI/D,SAASO,EAAYjB,EAASkB,GACjC,IAAsGC,EAAGC,EAAGC,EAAGC,EAA3GC,EAAI,CAAEC,MAAO,EAAGC,KAAM,WAAa,GAAW,EAAPJ,EAAE,GAAQ,MAAMA,EAAE,GAAI,OAAOA,EAAE,IAAOK,KAAM,GAAIC,IAAK,IAChG,OAAOL,EAAI,CAAEZ,KAAMkB,EAAK,GAAIC,MAASD,EAAK,GAAIE,OAAUF,EAAK,IAAwB,mBAAXG,SAA0BT,EAAES,OAAOC,UAAY,WAAa,OAAOC,OAAUX,EACvJ,SAASM,EAAKM,GAAK,OAAO,SAAUC,GAAK,OACzC,SAAcC,GACV,GAAIjB,EAAG,MAAM,IAAIkB,UAAU,mCAC3B,KAAOd,GAAG,IACN,GAAIJ,EAAI,EAAGC,IAAMC,EAAY,EAARe,EAAG,GAAShB,EAAU,OAAIgB,EAAG,GAAKhB,EAAS,SAAOC,EAAID,EAAU,SAAMC,EAAEiB,KAAKlB,GAAI,GAAKA,EAAEV,SAAWW,EAAIA,EAAEiB,KAAKlB,EAAGgB,EAAG,KAAKtB,KAAM,OAAOO,EAE3J,OADID,EAAI,EAAGC,IAAGe,EAAK,CAAS,EAARA,EAAG,GAAQf,EAAEb,QACzB4B,EAAG,IACP,KAAK,EAAG,KAAK,EAAGf,EAAIe,EAAI,MACxB,KAAK,EAAc,OAAXb,EAAEC,QAAgB,CAAEhB,MAAO4B,EAAG,GAAItB,MAAM,GAChD,KAAK,EAAGS,EAAEC,QAASJ,EAAIgB,EAAG,GAAIA,EAAK,CAAC,GAAI,SACxC,KAAK,EAAGA,EAAKb,EAAEI,IAAIY,MAAOhB,EAAEG,KAAKa,MAAO,SACxC,QACI,KAAMlB,EAAIE,EAAEG,MAAML,EAAIA,EAAEmB,OAAS,GAAKnB,EAAEA,EAAEmB,OAAS,KAAkB,IAAVJ,EAAG,IAAsB,IAAVA,EAAG,IAAW,CAAEb,EAAI,EAAG,SACjG,GAAc,IAAVa,EAAG,MAAcf,GAAMe,EAAG,GAAKf,EAAE,IAAMe,EAAG,GAAKf,EAAE,IAAM,CAAEE,EAAEC,MAAQY,EAAG,GAAI,MAC9E,GAAc,IAAVA,EAAG,IAAYb,EAAEC,MAAQH,EAAE,GAAI,CAAEE,EAAEC,MAAQH,EAAE,GAAIA,EAAIe,EAAI,MAC7D,GAAIf,GAAKE,EAAEC,MAAQH,EAAE,GAAI,CAAEE,EAAEC,MAAQH,EAAE,GAAIE,EAAEI,IAAIc,KAAKL,GAAK,MACvDf,EAAE,IAAIE,EAAEI,IAAIY,MAChBhB,EAAEG,KAAKa,MAAO,SAEtBH,EAAKlB,EAAKoB,KAAKtC,EAASuB,GAC1B,MAAOZ,GAAKyB,EAAK,CAAC,EAAGzB,GAAIS,EAAI,EAAI,QAAWD,EAAIE,EAAI,EACtD,GAAY,EAARe,EAAG,GAAQ,MAAMA,EAAG,GAAI,MAAO,CAAE5B,MAAO4B,EAAG,GAAKA,EAAG,QAAK,EAAQtB,MAAM,GArB9BL,CAAK,CAACyB,EAAGC,uBCtB3D,SAAAO,EACUC,EACRC,GADQX,KAAAU,QAAAA,EAGRV,KAAKY,QAAUC,EAAAA,kBAAkBC,wBAAwBJ,EAASC,EAAW,cAmIjF,OArKEI,OAAAC,eAAWP,EAAAQ,UAAA,YAAS,KAApB,WAEE,OADiBjB,KAAKkB,cACNC,aAAa,oBAAiBC,mCAMhDL,OAAAC,eAAWP,EAAAQ,UAAA,iBAAc,KAAzB,WAEE,OADiBjB,KAAKkB,cACNC,aAAa,yBAAsBC,mCAMrDL,OAAAC,eAAWP,EAAAQ,UAAA,iBAAc,KAAzB,WAGE,IAFA,IAAMI,EAAarB,KAAKsB,gBAEfC,EAAI,EAAGtB,EAAIoB,EAAWd,OAAQgB,EAAItB,EAAGsB,IAC5C,GAAIF,EAAWG,KAAKD,GAAGE,UAAUC,SAAS,wBACxC,OAAOH,EAIX,OAAQ,mCAgBHd,EAAAQ,UAAAU,OAAP,SAAcC,GACZ,IASIC,EATEC,EAAY9B,KAAK+B,aAAaH,GAE9BI,EAAShC,KAAKiC,iBAAmBL,EACjCM,EAAWJ,EAAUL,UAAUC,SAAS,wBACxCS,EAAanC,KAAKoC,eACtBN,EAAUO,cAAc,oBAAoBC,WAAW,IAEnDC,EAAiBvC,KAAKoC,eAAeN,EAAUO,cAAc,0BAInE,GAAIP,EAAUU,KAAM,CAClB,IAAMC,EAAYX,EAAUU,KAAKE,MAAM,KAAK,GAC5C,GAAID,EAAW,CACb,IAAME,EAAiBF,EAAUC,MAAM,KAEvCb,EAAiBe,mBAAmBD,EAAe,KAIvD,MAAO,CACLX,OAAMA,EACNE,SAAQA,EACRL,eAAcA,EACdU,eAAcA,EACdJ,WAAUA,IAOD1B,EAAAQ,UAAA4B,eAAb,8EACE,MAAA,CAAA,EAAO7C,KAAK8C,YAAY,8BAMbrC,EAAAQ,UAAA8B,gBAAb,8EACE,MAAA,CAAA,EAAO/C,KAAK8C,YAAY,+BAObrC,EAAAQ,UAAA+B,SAAb,SAAsBpB,4EAGpB,KAFME,EAAY9B,KAAK+B,aAAaH,IAGlC,MAAM,IAAIqB,MAAM,4BAA4BrB,EAAQ,KAMtD,OAHAE,EAAUoB,QAEVlD,KAAKU,QAAQyC,gBACb,CAAA,EAAOnD,KAAKU,QAAQ0C,qBAOT3C,EAAAQ,UAAAoC,cAAb,SAA2BzB,8EAKzB,KAJM0B,EAAetD,KAAKkB,cAAcqC,iBACtC,yCACA3B,IAGA,MAAM,IAAIqB,MAAM,4BAA4BrB,EAAQ,KAKtD,KAFM4B,EAAaF,EAAajB,cAAc,uBAG5C,MAAM,IAAIY,MAAM,mDAMlB,OAHAO,EAAWN,QAEXlD,KAAKU,QAAQyC,gBACb,CAAA,EAAOnD,KAAKU,QAAQ0C,qBAGR3C,EAAAQ,UAAA6B,YAAd,SAA0BW,4EASxB,OARMC,EAAW1D,KAAKkB,cAGpBwC,EAASrB,cAAc,qBAAqBoB,GAElCP,QAEZlD,KAAKU,QAAQyC,gBACb,CAAA,EAAOnD,KAAKU,QAAQ0C,qBAGd3C,EAAAQ,UAAAC,YAAR,WAGE,OAFiBlB,KAAKY,QAAQ+C,MAAMC,EAAAA,GAAGC,IAAI,gBAAgBC,eAKrDrD,EAAAQ,UAAAK,cAAR,WACE,OAAOtB,KAAKkB,cAAcqC,iBACxB,kCAII9C,EAAAQ,UAAAc,aAAR,SAAqBH,GACnB,IAAME,EAAY9B,KAAKsB,gBAAgBE,KAAKI,GAE5C,IAAKE,EACH,MAAM,IAAImB,MAAM,4BAA4BrB,EAAQ,KAGtD,OAAOE,GAGDrB,EAAAQ,UAAAmB,eAAR,SAAuB2B,GACrB,OAAQA,GAAMA,EAAGC,YAAYC,aAAW7C,GAG5CX","sourcesContent":["/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport function __createBinding(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n}\r\n\r\nexport function __exportStar(m, exports) {\r\n for (var p in m) if (p !== \"default\" && !exports.hasOwnProperty(p)) exports[p] = m[p];\r\n}\r\n\r\nexport function __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n};\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];\r\n result.default = mod;\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, privateMap) {\r\n if (!privateMap.has(receiver)) {\r\n throw new TypeError(\"attempted to get private field on non-instance\");\r\n }\r\n return privateMap.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, privateMap, value) {\r\n if (!privateMap.has(receiver)) {\r\n throw new TypeError(\"attempted to set private field on non-instance\");\r\n }\r\n privateMap.set(receiver, value);\r\n return value;\r\n}\r\n","import {\n ComponentFixture\n} from '@angular/core/testing';\n\nimport {\n DebugElement\n} from '@angular/core';\n\nimport {\n By\n} from '@angular/platform-browser';\n\nimport {\n SkyAppTestUtility\n} from '@skyux-sdk/testing';\n\nimport {\n SkyTabsetFixtureTab\n} from './tab-fixture-tab';\n\n/**\n * Allows interaction with a SKY UX tabset component.\n */\nexport class SkyTabsetFixture {\n\n /**\n * The tabset component's ARIA label.\n */\n public get ariaLabel(): string {\n const tabsetEl = this.getTabsetEl();\n return tabsetEl.getAttribute('aria-label') || undefined;\n }\n\n /**\n * The tabset component's ARIA labelled by attribute.\n */\n public get ariaLabelledBy(): string {\n const tabsetEl = this.getTabsetEl();\n return tabsetEl.getAttribute('aria-labelledby') || undefined;\n }\n\n /**\n * The index of the currently selected tab.\n */\n public get activeTabIndex(): number {\n const tabLinkEls = this.getTabLinkEls();\n\n for (let i = 0, n = tabLinkEls.length; i < n; i++) {\n if (tabLinkEls.item(i).classList.contains('sky-btn-tab-selected')) {\n return i;\n }\n }\n\n return -1;\n }\n\n private debugEl: DebugElement;\n\n constructor(\n private fixture: ComponentFixture<any>,\n skyTestId: string\n ) {\n this.debugEl = SkyAppTestUtility.getDebugElementByTestId(fixture, skyTestId, 'sky-tabset');\n }\n\n /**\n * Retrieves information about the tab at the specified index.\n * @param tabIndex The index of the tab.\n */\n public getTab(tabIndex: number): SkyTabsetFixtureTab {\n const tabLinkEl = this.getTabLinkEl(tabIndex);\n\n const active = this.activeTabIndex === tabIndex;\n const disabled = tabLinkEl.classList.contains('sky-btn-tab-disabled');\n const tabHeading = this.getTextContent(\n tabLinkEl.querySelector('.sky-tab-heading').childNodes[0]\n );\n const tabHeaderCount = this.getTextContent(tabLinkEl.querySelector('.sky-tab-header-count'));\n\n let permalinkValue: string;\n\n if (tabLinkEl.href) {\n const permalink = tabLinkEl.href.split('?')[1];\n if (permalink) {\n const permalinkParts = permalink.split('=');\n\n permalinkValue = decodeURIComponent(permalinkParts[1]);\n }\n }\n\n return {\n active,\n disabled,\n permalinkValue,\n tabHeaderCount,\n tabHeading\n };\n }\n\n /**\n * Clicks the tabset's \"new\" button.\n */\n public async clickNewButton(): Promise<any> {\n return this.clickButton('sky-tabset-btn-new');\n }\n\n /**\n * Clicks the tabset's \"open\" button.\n */\n public async clickOpenButton(): Promise<any> {\n return this.clickButton('sky-tabset-btn-open');\n }\n\n /**\n * Clicks the tab button at the specified index.\n * @param tabIndex The index of the tab.\n */\n public async clickTab(tabIndex: number): Promise<any> {\n const tabLinkEl = this.getTabLinkEl(tabIndex);\n\n if (!tabLinkEl) {\n throw new Error(`There is no tab at index ${tabIndex}.`);\n }\n\n tabLinkEl.click();\n\n this.fixture.detectChanges();\n return this.fixture.whenStable();\n }\n\n /**\n * Click's the tab's close button at the specified index.\n * @param tabIndex The index of the tab.\n */\n public async clickTabClose(tabIndex: number): Promise<any> {\n const tabWrapperEl = this.getTabsetEl().querySelectorAll(\n `.sky-tabset-tabs .sky-btn-tab-wrapper`\n )[tabIndex];\n\n if (!tabWrapperEl) {\n throw new Error(`There is no tab at index ${tabIndex}.`);\n }\n\n const closeBtnEl = tabWrapperEl.querySelector('.sky-btn-tab-close') as HTMLButtonElement;\n\n if (!closeBtnEl) {\n throw new Error('The specified tab does not have a close button.');\n }\n\n closeBtnEl.click();\n\n this.fixture.detectChanges();\n return this.fixture.whenStable();\n }\n\n private async clickButton(buttonCls: string): Promise<any> {\n const tabsetEl = this.getTabsetEl();\n\n const newButtonEl =\n tabsetEl.querySelector(`.sky-tabset-btns .${buttonCls}`) as HTMLButtonElement;\n\n newButtonEl.click();\n\n this.fixture.detectChanges();\n return this.fixture.whenStable();\n }\n\n private getTabsetEl(): HTMLDivElement {\n const tabsetEl = this.debugEl.query(By.css('.sky-tabset')).nativeElement;\n\n return tabsetEl;\n }\n\n private getTabLinkEls(): NodeListOf<HTMLAnchorElement> {\n return this.getTabsetEl().querySelectorAll(\n `.sky-tabset-tabs .sky-btn-tab`\n );\n }\n\n private getTabLinkEl(tabIndex: number): HTMLAnchorElement {\n const tabLinkEl = this.getTabLinkEls().item(tabIndex);\n\n if (!tabLinkEl) {\n throw new Error(`There is no tab at index ${tabIndex}.`);\n }\n\n return tabLinkEl;\n }\n\n private getTextContent(el: Element | Node): string {\n return (el && el.textContent.trim()) || undefined;\n }\n\n}\n"]}
|
|
@@ -1,16 +0,0 @@
|
|
|
1
|
-
!function(t,e){"object"==typeof exports&&"undefined"!=typeof module?e(exports,require("@angular/core"),require("@angular/common"),require("@angular/animations"),require("rxjs"),require("rxjs/operators"),require("@skyux/core"),require("@angular/platform-browser/animations"),require("@skyux/indicators"),require("@skyux/theme"),require("@skyux/i18n"),require("@skyux/forms"),require("@angular/router"),require("@skyux/popovers")):"function"==typeof define&&define.amd?define("@skyux/tabs",["exports","@angular/core","@angular/common","@angular/animations","rxjs","rxjs/operators","@skyux/core","@angular/platform-browser/animations","@skyux/indicators","@skyux/theme","@skyux/i18n","@skyux/forms","@angular/router","@skyux/popovers"],e):e(((t=t||self).skyux=t.skyux||{},t.skyux.tabs={}),t.ng.core,t.ng.common,t.ng.animations,t.rxjs,t.rxjs.operators,t.core$1,t.ng.platformBrowser.animations,t.indicators,t.theme,t.i18n,t.forms,t.ng.router,t.popovers)}(this,(function(t,e,n,i,o,s,a,r,c,b,d,p,u,l){"use strict";
|
|
2
|
-
/*! *****************************************************************************
|
|
3
|
-
Copyright (c) Microsoft Corporation.
|
|
4
|
-
|
|
5
|
-
Permission to use, copy, modify, and/or distribute this software for any
|
|
6
|
-
purpose with or without fee is hereby granted.
|
|
7
|
-
|
|
8
|
-
THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH
|
|
9
|
-
REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
|
|
10
|
-
AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,
|
|
11
|
-
INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
|
|
12
|
-
LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
|
|
13
|
-
OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
|
|
14
|
-
PERFORMANCE OF THIS SOFTWARE.
|
|
15
|
-
***************************************************************************** */function h(t,e,n,i){var o,s=arguments.length,a=s<3?e:null===i?i=Object.getOwnPropertyDescriptor(e,n):i;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(t,e,n,i);else for(var r=t.length-1;r>=0;r--)(o=t[r])&&(a=(s<3?o(a):s>3?o(e,n,a):o(e,n))||a);return s>3&&a&&Object.defineProperty(e,n,a),a}var y=function(){function t(t){var e=this;this.mediaQueryService=t,this.activeIndex=void 0,this.hidingTabs=new o.BehaviorSubject(!1),this.indexChanged=new o.BehaviorSubject(void 0),this.maintainTabContent=!1,this.showingTabs=new o.BehaviorSubject(!1),this.switchingMobile=new o.Subject,this.tabs=[],this.tabAdded=new o.Subject,this.tabClicked=new o.BehaviorSubject(void 0),this._contentAdded=!1,this._tabsVisible=!1,this._isMobile=!1,this.mediaQueryService.subscribe((function(t){var n=t===a.SkyMediaBreakpoints.xs;n&&!e._isMobile?(e.switchingMobile.next(!0),e._tabsVisible||e.hidingTabs.next(!0)):!n&&e._isMobile&&(e.switchingMobile.next(!1),e._tabsVisible||e.showingTabs.next(!0)),e._isMobile=n}))}return Object.defineProperty(t.prototype,"content",{set:function(t){this._content=t},enumerable:!0,configurable:!0}),t.prototype.addTab=function(t){var e=this.tabs.length;t.index=e,this.tabs.push(t),t.active&&this.activateTab(t),this.tabAdded.next(t)},t.prototype.destroyTab=function(t){var e=this.tabs.indexOf(t);if(-1!==e&&(this.maintainTabContent&&t.contentRendered&&this._content&&this._content.nativeElement.contains(t.tabContent.nativeElement)&&this._content.nativeElement.removeChild(t.tabContent.nativeElement),this.tabs.splice(e,1),this.tabs.forEach((function(t,e){return t.index=e})),t.active)){this.maintainTabContent||this.destroyContent();var n=this.tabs[e]||this.tabs[e-1];n&&n.activateTab()}},t.prototype.activateTab=function(t){var e=this,n=this.tabs.find((function(t){return t.index===e.activeIndex}));n&&n.index!==t.index&&(n.active=!1,n.tabDeactivated()),this.activeIndex=t.index,this.tabClicked.next(!0),this.updateTabClicked()},t.prototype.activeTab=function(){var t=this;return this.tabs.find((function(e){return e.index===t.activeIndex}))},t.prototype.isMobile=function(){return this._isMobile},t.prototype.updateContent=function(){var t=this;this.maintainTabContent?this.tabs.forEach((function(e){e.contentRendered||(t._content.nativeElement.appendChild(e.tabContent.nativeElement),e.contentRendered=!0)})):!this._contentAdded&&this.contentVisible()?this.moveContent():this._contentAdded&&!this.contentVisible()&&(this._contentAdded=!1)},t.prototype.tabsVisible=function(){return!this.isMobile()||this._tabsVisible},t.prototype.contentVisible=function(){return!this.isMobile()||!this._tabsVisible},t.prototype.showTabs=function(){this._tabsVisible=!0,this._contentAdded=!1,this.animationTabsVisibleState="shown",this.animationContentVisibleState="void",this.showingTabs.next(!0)},t.prototype.destroyContent=function(){this._content&&(this._content.nativeElement.innerHTML=""),this.content=void 0},t.prototype.moveContent=function(){if(this._content&&!this._contentAdded){var t=this.activeTab(),e=t?t.tabContent:void 0;e&&e.nativeElement&&(this._content.nativeElement.appendChild(e.nativeElement),t.contentRendered=!0,this._contentAdded=!0)}},t.prototype.updateTabClicked=function(){this._contentAdded=!1,this.isMobile()&&(this._tabsVisible=!1,this.animationContentVisibleState="shown",this.animationTabsVisibleState="void",this.hidingTabs.next(!0)),this.indexChanged.next(this.activeIndex)},t.ctorParameters=function(){return[{type:a.SkyMediaQueryService}]},t=h([e.Injectable()],t)}(),v=function(){function t(t,n){this.tabService=t,this.changeRef=n,this.maintainSectionContent=!1,this.indexChanged=new e.EventEmitter,this.isMobile=!1,this._ngUnsubscribe=new o.Subject}return Object.defineProperty(t.prototype,"ariaRole",{get:function(){return this.isMobile?void 0:"tablist"},enumerable:!0,configurable:!0}),t.prototype.ngOnInit=function(){var t=this;this.tabService.maintainTabContent=this.maintainSectionContent,this.tabService.indexChanged.pipe(s.takeUntil(this._ngUnsubscribe)).subscribe((function(e){t.indexChanged.emit(e),t.changeRef.markForCheck()})),this.tabService.switchingMobile.pipe(s.takeUntil(this._ngUnsubscribe)).subscribe((function(e){t.isMobile=e,t.changeRef.markForCheck()})),this.tabService.isMobile()&&(this.isMobile=!0,this.tabService.animationContentVisibleState="shown",this.changeRef.markForCheck())},t.prototype.ngAfterViewChecked=function(){this.tabService.content=this.content,this.tabService.updateContent()},t.prototype.ngOnDestroy=function(){this._ngUnsubscribe.next(),this._ngUnsubscribe.complete()},t.prototype.tabsVisible=function(){return this.changeRef.markForCheck(),this.tabService.tabsVisible()},t.prototype.showTabs=function(){this.tabService.showTabs(),this.changeRef.markForCheck()},t.ctorParameters=function(){return[{type:y},{type:e.ChangeDetectorRef}]},h([e.Input()],t.prototype,"maintainSectionContent",void 0),h([e.Output()],t.prototype,"indexChanged",void 0),h([e.ViewChild("skySectionSideContent")],t.prototype,"content",void 0),t=h([e.Component({selector:"sky-sectioned-form",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',providers:[y],changeDetection:e.ChangeDetectionStrategy.OnPush,animations:[i.trigger("tabEnter",[i.transition("void => shown",[i.style({transform:"translate(-100%)"}),i.animate("150ms ease-in")])]),i.trigger("contentEnter",[i.transition("void => shown",[i.style({transform:"translate(100%)"}),i.animate("150ms ease-in")])])],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}"]})],t)}(),k=function(){function t(){this.currentSubject=new o.BehaviorSubject(this.current),this._current=a.SkyMediaBreakpoints.xs,this.currentSubject.next(this._current)}return Object.defineProperty(t.prototype,"current",{get:function(){return this._current},enumerable:!0,configurable:!0}),t.prototype.subscribe=function(t){return this.currentSubject.subscribe({next:function(e){t(e)}})},t.prototype.setBreakpointForWidth=function(t){var e;e=this.isWidthWithinBreakpiont(t,a.SkyMediaBreakpoints.xs)?a.SkyMediaBreakpoints.xs:this.isWidthWithinBreakpiont(t,a.SkyMediaBreakpoints.sm)?a.SkyMediaBreakpoints.sm:this.isWidthWithinBreakpiont(t,a.SkyMediaBreakpoints.md)?a.SkyMediaBreakpoints.md:a.SkyMediaBreakpoints.lg,this._current=e,this.currentSubject.next(this._current)},t.prototype.isWidthWithinBreakpiont=function(t,e){switch(e){case a.SkyMediaBreakpoints.xs:return t<=767;case a.SkyMediaBreakpoints.sm:return t>=768&&t<=991;case a.SkyMediaBreakpoints.md:return t>=992&&t<=1199;default:return t>=1200}},t.prototype.destroy=function(){this.currentSubject.complete()},t=h([e.Injectable()],t)}(),f=function(){function t(t){this.rendererFactory=t,this.renderer=this.rendererFactory.createRenderer(void 0,void 0)}return t.prototype.getWidth=function(t){return t.nativeElement.clientWidth},t.prototype.scrollToContentTop=function(t){t.nativeElement.scrollTop=0},t.prototype.setResponsiveClass=function(t,e){var n,i=t.nativeElement;switch(this.renderer.removeClass(i,"sky-responsive-container-xs"),this.renderer.removeClass(i,"sky-responsive-container-sm"),this.renderer.removeClass(i,"sky-responsive-container-md"),this.renderer.removeClass(i,"sky-responsive-container-lg"),e){case a.SkyMediaBreakpoints.xs:n="sky-responsive-container-xs";break;case a.SkyMediaBreakpoints.sm:n="sky-responsive-container-sm";break;case a.SkyMediaBreakpoints.md:n="sky-responsive-container-md";break;default:n="sky-responsive-container-lg"}this.renderer.addClass(i,n)},t.ctorParameters=function(){return[{type:e.RendererFactory2}]},t=h([e.Injectable()],t)}(),g=function(){function t(t,e,n,i){this.adapterService=t,this.changeRef=e,this.tabsetService=n,this.verticalTabMediaQueryService=i,this.active=!1,this.disabled=!1,this.errorIndicator=!1,this.isMobile=!1,this._contentRendered=!1,this._mobileSubscription=new o.Subject,this._ngUnsubscribe=new o.Subject,this._showTabRightArrow=!1}return Object.defineProperty(t.prototype,"ariaControls",{get:function(){return this.isMobile?void 0:this._ariaControls},set:function(t){this._ariaControls=t},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"ariaRole",{get:function(){if(!this.isMobile)return this._ariaRole||"tab"},set:function(t){this._ariaRole=t},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"showTabRightArrow",{get:function(){return this._showTabRightArrow&&this.tabsetService.isMobile()},set:function(t){this._showTabRightArrow=t},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"contentRendered",{get:function(){return this._contentRendered},set:function(t){var e=this;this._contentRendered=t,this._contentRendered&&setTimeout((function(){e.updateBreakpointAndResponsiveClass(e.adapterService.getWidth(e.tabContent))}))},enumerable:!0,configurable:!0}),t.prototype.ngOnInit=function(){var t=this;this.isMobile=this.tabsetService.isMobile(),this.changeRef.markForCheck(),this.tabsetService.switchingMobile.subscribe((function(e){t.isMobile=e,t.changeRef.markForCheck()})),this.tabsetService.indexChanged.pipe(s.takeUntil(this._ngUnsubscribe)).subscribe((function(e){t.index===e&&t.contentRendered&&t.updateBreakpointAndResponsiveClass(t.adapterService.getWidth(t.tabContent))})),this.tabsetService.addTab(this)},t.prototype.ngOnDestroy=function(){this._mobileSubscription.unsubscribe(),this._ngUnsubscribe.next(),this._ngUnsubscribe.complete(),this.tabsetService.destroyTab(this)},t.prototype.tabIndex=function(){return this.disabled?-1:0},t.prototype.activateTab=function(){this.disabled||(this.active=!0,this.tabsetService.activateTab(this),this.changeRef.markForCheck())},t.prototype.onWindowResize=function(){this.updateBreakpointAndResponsiveClass(this.adapterService.getWidth(this.tabContent))},t.prototype.tabDeactivated=function(){this.changeRef.markForCheck()},t.prototype.updateBreakpointAndResponsiveClass=function(t){this.verticalTabMediaQueryService.setBreakpointForWidth(t);var e=this.verticalTabMediaQueryService.current;this.adapterService.setResponsiveClass(this.tabContent,e),this.changeRef.markForCheck()},t.ctorParameters=function(){return[{type:f},{type:e.ChangeDetectorRef},{type:y},{type:k}]},h([e.Input()],t.prototype,"active",void 0),h([e.Input()],t.prototype,"ariaControls",null),h([e.Input()],t.prototype,"ariaInvalid",void 0),h([e.Input()],t.prototype,"ariaRequired",void 0),h([e.Input()],t.prototype,"ariaRole",null),h([e.Input()],t.prototype,"disabled",void 0),h([e.Input()],t.prototype,"errorIndicator",void 0),h([e.Input()],t.prototype,"tabHeaderCount",void 0),h([e.Input()],t.prototype,"tabHeading",void 0),h([e.Input()],t.prototype,"showTabRightArrow",null),h([e.Input()],t.prototype,"tabId",void 0),h([e.ViewChild("tabContentWrapper")],t.prototype,"tabContent",void 0),h([e.HostListener("window:resize")],t.prototype,"onWindowResize",null),t=h([e.Component({selector:"sky-vertical-tab",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',providers:[k,{provide:a.SkyMediaQueryService,useExisting:k}],changeDetection:e.ChangeDetectionStrategy.OnPush,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}"]})],t)}(),m=function(){function t(){this.invalidChange=new o.BehaviorSubject(void 0),this.requiredChange=new o.BehaviorSubject(void 0)}return t.prototype.invalidFieldChanged=function(t){this.invalidChange.next(t)},t.prototype.requiredFieldChanged=function(t){this.requiredChange.next(t)},t=h([e.Injectable()],t)}(),x=0,C=function(){function t(t,e,n){this.sectionedFormService=t,this.tabsetService=e,this.changeRef=n,this.sectionTabId="sky-sectioned-form-tab-"+ ++x,this.sectionContentId="sky-sectioned-form-section-"+ ++x,this.isMobile=!1,this._ngUnsubscribe=new o.Subject}return Object.defineProperty(t.prototype,"ariaRole",{get:function(){return this.isMobile?void 0:"tabpanel"},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"ariaLabelledby",{get:function(){return this.isMobile?void 0:this.sectionTabId},enumerable:!0,configurable:!0}),t.prototype.ngOnInit=function(){var t=this;this.isMobile=this.tabsetService.isMobile(),this.changeRef.detectChanges(),this.tabsetService.switchingMobile.subscribe((function(e){t.isMobile=e,t.changeRef.detectChanges()})),this.sectionedFormService.requiredChange.pipe(s.takeUntil(this._ngUnsubscribe)).subscribe((function(e){return t.fieldRequired=e})),this.sectionedFormService.invalidChange.pipe(s.takeUntil(this._ngUnsubscribe)).subscribe((function(e){return t.fieldInvalid=e}))},t.prototype.ngOnDestroy=function(){this._ngUnsubscribe.next(),this._ngUnsubscribe.complete()},t.ctorParameters=function(){return[{type:m},{type:y},{type:e.ChangeDetectorRef}]},h([e.Input()],t.prototype,"heading",void 0),h([e.Input()],t.prototype,"itemCount",void 0),h([e.Input()],t.prototype,"active",void 0),h([e.ViewChild(g)],t.prototype,"tab",void 0),t=h([e.Component({selector:"sky-sectioned-form-section",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',providers:[m],styles:[':host .sky-tab-field-required ::ng-deep .sky-vertical-tab-heading:after{content:"*";color:#ef4044;padding-left:5px}']})],t)}(),S=function(){function t(){this.resources={"EN-US":{skyux_tab_add:"Add tab",skyux_tab_close:"Close {0} tab",skyux_tabs_navigator_next:"Next",skyux_tabs_navigator_previous:"Previous",skyux_tab_open:"Open tab",skyux_vertical_tabs_show_tabs_text:"Tab list"}}}return t.prototype.getString=function(t,e){return d.getStringForLocale(this.resources,t.locale,e)},t=h([e.Injectable()],t)}(),w=function(){function t(){}return t=h([e.NgModule({providers:[{provide:d.SKY_LIB_RESOURCES_PROVIDERS,useClass:S,multi:!0}]})],t)}(),T=function(){function t(t,n,i,s){this.adapterService=t,this.tabService=n,this.resources=i,this.changeRef=s,this.maintainTabContent=!1,this.activeChange=new e.EventEmitter,this.isMobile=!1,this._ngUnsubscribe=new o.Subject}return Object.defineProperty(t.prototype,"ariaRole",{get:function(){if(!this.isMobile)return this._ariaRole||"tablist"},set:function(t){this._ariaRole=t},enumerable:!0,configurable:!0}),t.prototype.ngOnInit=function(){var t=this;this.tabService.maintainTabContent=this.maintainTabContent,this.tabService.indexChanged.pipe(s.takeUntil(this._ngUnsubscribe)).subscribe((function(e){t.activeChange.emit(e),t.contentWrapper&&t.adapterService.scrollToContentTop(t.contentWrapper),t.changeRef.markForCheck()})),this.tabService.switchingMobile.pipe(s.takeUntil(this._ngUnsubscribe)).subscribe((function(e){t.isMobile=e,t.changeRef.markForCheck()})),this.tabService.isMobile()&&(this.isMobile=!0,this.tabService.animationContentVisibleState="shown",this.changeRef.markForCheck()),this.showTabsText||this.resources.getString("skyux_vertical_tabs_show_tabs_text").pipe(s.take(1)).subscribe((function(e){t.showTabsText||(t.showTabsText=e)}))},t.prototype.ngAfterViewChecked=function(){this.tabService.content=this.content,this.tabService.updateContent()},t.prototype.ngOnDestroy=function(){this._ngUnsubscribe.next(),this._ngUnsubscribe.complete()},t.ctorParameters=function(){return[{type:f},{type:y},{type:d.SkyLibResourcesService},{type:e.ChangeDetectorRef}]},h([e.Input()],t.prototype,"showTabsText",void 0),h([e.Input()],t.prototype,"ariaRole",null),h([e.Input()],t.prototype,"maintainTabContent",void 0),h([e.Output()],t.prototype,"activeChange",void 0),h([e.ViewChild("groupContainerWrapper")],t.prototype,"tabGroups",void 0),h([e.ViewChild("skySideContent")],t.prototype,"content",void 0),h([e.ViewChild("contentContainerWrapper")],t.prototype,"contentWrapper",void 0),t=h([e.Component({selector:"sky-vertical-tabset",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',providers:[y],changeDetection:e.ChangeDetectionStrategy.OnPush,animations:[i.trigger("tabGroupEnter",[i.transition("void => shown",[i.style({transform:"translate(-100%)"}),i.animate("150ms ease-in")])]),i.trigger("contentEnter",[i.transition("void => shown",[i.style({transform:"translate(100%)"}),i.animate("150ms ease-in")])])],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}"]})],t)}(),I=function(){function t(t,e){var n=this;this.tabService=t,this.changeRef=e,this.ngUnsubscribe=new o.Subject,this.openBeforeTabsHidden=!1,this._open=!1,this.tabClicked=function(){n.changeRef.markForCheck()},this.tabsHidden=function(){n.openBeforeTabsHidden=n.open,n.open=!1,n.changeRef.markForCheck()},this.tabsShown=function(){n.open=n.openBeforeTabsHidden,n.changeRef.markForCheck()}}return Object.defineProperty(t.prototype,"open",{get:function(){return!this.disabled&&this._open},set:function(t){this._open=t},enumerable:!0,configurable:!0}),t.prototype.ngOnInit=function(){this.tabService.hidingTabs.pipe(s.takeUntil(this.ngUnsubscribe)).subscribe(this.tabsHidden),this.tabService.showingTabs.pipe(s.takeUntil(this.ngUnsubscribe)).subscribe(this.tabsShown),this.tabService.tabClicked.pipe(s.takeUntil(this.ngUnsubscribe)).subscribe(this.tabClicked)},t.prototype.ngOnDestroy=function(){this.ngUnsubscribe.next(),this.ngUnsubscribe.complete()},t.prototype.toggleMenuOpen=function(){this.disabled||(this.open=!this.open),this.changeRef.markForCheck()},t.prototype.subMenuOpen=function(){return this.tabs&&void 0!==this.tabs.find((function(t){return t.active}))},t.ctorParameters=function(){return[{type:y},{type:e.ChangeDetectorRef}]},h([e.Input()],t.prototype,"disabled",void 0),h([e.Input()],t.prototype,"groupHeading",void 0),h([e.Input()],t.prototype,"open",null),h([e.ContentChildren(g)],t.prototype,"tabs",void 0),t=h([e.Component({selector:"sky-vertical-tabset-group",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',changeDetection:e.ChangeDetectionStrategy.OnPush,animations:[i.trigger("tabSlide",[i.transition(":enter",[i.style({height:"0",visibility:"hidden"}),i.animate("150ms ease-in",i.style({height:"*",visibility:"visible"}))]),i.transition(":leave",[i.style({height:"*",visibility:"visible"}),i.animate("150ms ease-in",i.style({height:"0",visibility:"hidden"}))])])],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}"]})],t)}(),_=function(){function t(){}return t=h([e.NgModule({declarations:[T,I,g],imports:[n.CommonModule,r.BrowserAnimationsModule,c.SkyChevronModule,c.SkyIconModule,a.SkyMediaQueryModule,c.SkyStatusIndicatorModule,w,b.SkyThemeModule],providers:[f],exports:[T,I,g]})],t)}(),R=function(){function t(){}return t=h([e.NgModule({declarations:[v,C],imports:[n.CommonModule,p.SkyCheckboxModule,_],exports:[v,C]})],t)}(),B=function(){function t(){this.buttonClick=new e.EventEmitter,this.closeClick=new e.EventEmitter}return t.prototype.onButtonClick=function(t){this.disabled||(this.buttonClick.emit(),t.preventDefault())},t.prototype.onButtonEnterKeyDown=function(t){this.onButtonClick(t)},t.prototype.onCloseClick=function(t){this.closeClick.emit(),t.stopPropagation(),t.preventDefault()},h([e.Input()],t.prototype,"active",void 0),h([e.Input()],t.prototype,"ariaControls",void 0),h([e.Input()],t.prototype,"buttonHref",void 0),h([e.Input()],t.prototype,"buttonId",void 0),h([e.Input()],t.prototype,"buttonText",void 0),h([e.Input()],t.prototype,"buttonTextCount",void 0),h([e.Input()],t.prototype,"closeable",void 0),h([e.Input()],t.prototype,"disabled",void 0),h([e.Input()],t.prototype,"tabStyle",void 0),h([e.Output()],t.prototype,"buttonClick",void 0),h([e.Output()],t.prototype,"closeClick",void 0),t=h([e.Component({selector:"sky-tab-button",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',changeDetection:e.ChangeDetectionStrategy.OnPush,encapsulation:e.ViewEncapsulation.None,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}"]})],t)}(),O=function(){function t(t,e,n){this.activatedRoute=t,this.location=e,this.router=n,this._popStateChange=new o.Subject}return Object.defineProperty(t.prototype,"popStateChange",{get:function(){return this._popStateChange.asObservable()},enumerable:!0,configurable:!0}),t.prototype.ngOnDestroy=function(){this.subscription&&this.subscription.unsubscribe()},t.prototype.init=function(){var t=this;this.subscription=this.location.subscribe((function(){t._popStateChange.next()}))},t.prototype.getParam=function(t){return this.getParams()[t]},t.prototype.setParam=function(t,e){var n=this.getParams();null===e?delete n[t]:n[t]=e;var i=this.router.createUrlTree(["."],{relativeTo:this.activatedRoute,queryParams:n,queryParamsHandling:"merge"}).toString();this.location.isCurrentPathEqualTo(i)||this.location.go(i)},t.prototype.clearParam=function(t){this.setParam(t,null)},t.prototype.getParamHref=function(t,e){if(!t)return null;var n=this.getParams();n[t]=e;var i=this.location.path().split("?")[0],o=Object.keys(n).map((function(t){return t+"="+n[t]})).join("&");return this.location.prepareExternalUrl(i+"?"+o)},t.prototype.urlify=function(t){return t?t.toLowerCase().replace(/[\_\~\`\@\!\#\$\%\^\&\*\(\)\[\]\{\}\;\:\'\/\\\<\>\,\.\?\=\+\|"]/g,"").replace(/\s/g,"-").replace(/--/g,"-"):""},t.prototype.getParams=function(){var t={},e=this.location.path();return-1===e.indexOf("?")||e.split("?")[1].split("&").forEach((function(e){var n=e.split("=");t[n[0]]=decodeURIComponent(n[1])})),t},t.ctorParameters=function(){return[{type:u.ActivatedRoute},{type:n.Location},{type:u.Router}]},t=h([e.Injectable()],t)}(),M=function(){function t(){this.currentActiveTabIndex=0,this._activeTabIndex=new o.BehaviorSubject(0),this._activeTabUnregistered=new o.Subject,this.tabs=[],this.tabCounter=0}return Object.defineProperty(t.prototype,"activeTabUnregistered",{get:function(){return this._activeTabUnregistered.asObservable()},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"activeTabIndex",{get:function(){return this._activeTabIndex.asObservable()},enumerable:!0,configurable:!0}),t.prototype.setActiveTabIndex=function(t,e){void 0===e&&(e={emitChange:!0}),void 0===t||this.tabIndexesEqual(t,this.currentActiveTabIndex)||(this.currentActiveTabIndex=t,e.emitChange&&this._activeTabIndex.next(t))},t.prototype.registerTab=function(t){return void 0===t&&(t=this.tabCounter,this.tabCounter++),this.tabs.push({tabIndex:t}),t},t.prototype.updateTabIndex=function(t,e){var n=this;this.tabs.find((function(e){return n.tabIndexesEqual(e.tabIndex,t)})).tabIndex=e},t.prototype.unregisterTab=function(t){var e=this,n=this.tabs.findIndex((function(n){return e.tabIndexesEqual(n.tabIndex,t)}));this.isTabIndexActive(this.tabs[n].tabIndex)&&this._activeTabUnregistered.next({arrayIndex:n}),this.tabs.splice(n,1)},t.prototype.unregisterAll=function(){this.tabs=[]},t.prototype.tabIndexesEqual=function(t,e){return t===e||+t==+e},t.prototype.isValidTabIndex=function(t){var e=this;return this.tabs.some((function(n){return e.tabIndexesEqual(n.tabIndex,t)}))},t.prototype.activateFirstTab=function(){var t=this.tabs[0]&&this.tabs[0].tabIndex;if(void 0!==t)return this.setActiveTabIndex(t),t},t.prototype.activateNearestTab=function(t){var e=this.tabs[t]||this.tabs[t-1];e&&(this.currentActiveTabIndex=e.tabIndex)},t.prototype.isTabIndexActive=function(t){return this.tabIndexesEqual(t,this.currentActiveTabIndex)},t=h([e.Injectable()],t)}(),P=0,j=function(){function t(t,n,i){this.changeDetector=t,this.permalinkService=n,this.tabsetService=i,this.close=new e.EventEmitter,this.showContent=!1,this._activeChange=new o.BehaviorSubject(void 0),this._stateChange=new o.BehaviorSubject(void 0),this._tabIndexChange=new o.BehaviorSubject(void 0);var s=P++;this.tabPanelId="sky-tab-"+s,this.tabButtonId=this.tabPanelId+"-nav-btn"}return Object.defineProperty(t.prototype,"active",{get:function(){return this._active||!1},set:function(t){void 0!==t&&t!==this._active&&(this._active=t,this._activeChange.next())},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"activeChange",{get:function(){return this._activeChange.asObservable()},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"permalinkValue",{get:function(){return this._permalinkValue||this.permalinkService.urlify(this.tabHeading)},set:function(t){this._permalinkValue=this.permalinkService.urlify(t)},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"tabIndex",{get:function(){return this._tabIndex},set:function(t){t!==this._tabIndex&&void 0!==t&&void 0!==this._tabIndex&&(this.tabsetService.updateTabIndex(this._tabIndex,t),this._tabIndexChange.next(t)),this._tabIndex=t},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"closeable",{get:function(){return this.close.observers.length>0},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"stateChange",{get:function(){return this._stateChange.asObservable()},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"tabIndexChange",{get:function(){return this._tabIndexChange.asObservable()},enumerable:!0,configurable:!0}),t.prototype.ngOnChanges=function(t){(t.disabled&&!t.disabled.firstChange||t.tabHeading&&!t.tabHeading.firstChange||t.tabHeaderCount&&!t.tabHeaderCount.firstChange||t.permalinkValue&&!t.permalinkValue.firstChange)&&this._stateChange.next()},t.prototype.ngOnDestroy=function(){this._stateChange.complete(),this.tabsetService.unregisterTab(this.tabIndex)},t.prototype.init=function(){this._tabIndex=this.tabsetService.registerTab(this.tabIndex)},t.prototype.activate=function(){this._active=!0,this.showContent=!0,this.changeDetector.markForCheck()},t.prototype.deactivate=function(){this._active=!1,this.showContent=!1,this.changeDetector.markForCheck()},t.ctorParameters=function(){return[{type:e.ChangeDetectorRef},{type:O},{type:M}]},h([e.Input()],t.prototype,"active",null),h([e.Input()],t.prototype,"disabled",void 0),h([e.Input()],t.prototype,"permalinkValue",null),h([e.Input()],t.prototype,"tabHeaderCount",void 0),h([e.Input()],t.prototype,"tabHeading",void 0),h([e.Input()],t.prototype,"tabIndex",null),h([e.Output()],t.prototype,"close",void 0),t=h([e.Component({selector:"sky-tab",template:'<div\n class="sky-tab"\n role="tabpanel"\n [attr.aria-labelledby]="tabButtonId"\n [hidden]="!showContent"\n [id]="tabPanelId"\n>\n <ng-content></ng-content>\n</div>\n',changeDetection:e.ChangeDetectionStrategy.OnPush})],t)}(),E=function(){function t(t,e){this.resourceService=t,this.changeDetector=e}return Object.defineProperty(t.prototype,"buttonText",{get:function(){if(this._buttonText)return this._buttonText;switch(this.buttonType){case"previous":return this.previousButtonText;case"next":return this.nextButtonText;default:return""}},set:function(t){this._buttonText=t},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"disabled",{get:function(){var t;switch(this.buttonType){case"previous":t=this.previousTab;break;case"next":t=this.nextTab}return!t||t.disabled},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"selectedTab",{get:function(){var t,e=this;return this.tabset&&this.tabset.tabs&&(t=this.tabset.tabs.find((function(t){return t.tabIndex===e.tabset.lastActiveTabIndex}))),t},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"nextTab",{get:function(){var t=this.selectedTab;if(t){var e=this.tabset.tabs.toArray();return e[e.indexOf(t)+1]}},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"previousTab",{get:function(){var t=this.selectedTab;if(t){var e=this.tabset.tabs.toArray();return e[e.indexOf(t)-1]}},enumerable:!0,configurable:!0}),t.prototype.ngAfterViewInit=function(){var t=this;o.forkJoin([this.resourceService.getString("skyux_tabs_navigator_previous"),this.resourceService.getString("skyux_tabs_navigator_next")]).pipe(s.take(1)).subscribe((function(e){t.previousButtonText=e[0],t.nextButtonText=e[1],t.changeDetector.detectChanges()}))},t.prototype.buttonClick=function(){var t;switch(this.buttonType){case"previous":t=this.previousTab;break;case"next":t=this.nextTab}t&&!t.disabled&&(this.tabset.active=t.tabIndex)},t.ctorParameters=function(){return[{type:d.SkyLibResourcesService},{type:e.ChangeDetectorRef}]},h([e.Input()],t.prototype,"tabset",void 0),h([e.Input()],t.prototype,"buttonType",void 0),h([e.Input()],t.prototype,"buttonText",null),t=h([e.Component({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'})],t)}(),U=function(){function t(){this._overflowChange=new o.BehaviorSubject(!1)}return Object.defineProperty(t.prototype,"overflowChange",{get:function(){return this._overflowChange.asObservable()},enumerable:!0,configurable:!0}),t.prototype.registerTabset=function(t){this.tabsetRef=t,this.tabsOffsetLeft=this.getTabsOffsetLeft(t.nativeElement)},t.prototype.detectOverflow=function(){var t=this.tabsetRef.nativeElement,e=t.querySelector(".sky-tabset").getBoundingClientRect(),n=t.querySelector(".sky-tabset-tabs").getBoundingClientRect(),i=t.querySelector(".sky-tabset-btns").getBoundingClientRect(),o=n.width+i.width+this.tabsOffsetLeft>e.width;this.currentOverflow!==o&&(this.currentOverflow=o,this._overflowChange.next(this.currentOverflow))},t.prototype.getTabsOffsetLeft=function(t){var e=t.getBoundingClientRect();return t.querySelector(".sky-tabset-dropdown").getBoundingClientRect().left-e.left},t=h([e.Injectable()],t)}(),A=function(){function t(t,n,i,s,a){this.changeDetector=t,this.elementRef=n,this.adapterService=i,this.permalinkService=s,this.tabsetService=a,this.activeChange=new e.EventEmitter,this.newTab=new e.EventEmitter,this.openTab=new e.EventEmitter,this.tabIndexesChange=new e.EventEmitter,this.tabButtons=[],this.ngUnsubscribe=new o.Subject,this.tabComponentsStateChangeUnsubscribe=new o.Subject}return Object.defineProperty(t.prototype,"active",{get:function(){return this._active},set:function(t){var e=this;void 0===t||this.tabsetService.tabIndexesEqual(t,this._active)||(this._active=t,this.tabs?this.tabsetService.setActiveTabIndex(t):setTimeout((function(){e.tabsetService.isValidTabIndex(t)?void 0===e.getActiveTabIndexByPermalinkId()&&e.tabsetService.setActiveTabIndex(t):e._active=e.tabsetService.activateFirstTab()})))},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"permalinkId",{get:function(){return this._permalinkId||""},set:function(t){if(t){var e=this.permalinkService.urlify(t);this._permalinkId=e+"-active-tab"}},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"tabStyle",{get:function(){return this._tabStyle||"tabs"},set:function(t){t&&"wizard"===t.toLowerCase()&&console.warn("The tabset wizard is deprecated. Please implement the new approach using progress indicator as documented here: https://developer.blackbaud.com/skyux/components/wizard."),this._tabStyle=t},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"tabDisplayMode",{get:function(){return this._tabDisplayMode||"tabs"},set:function(t){this._tabDisplayMode=t,this.changeDetector.markForCheck()},enumerable:!0,configurable:!0}),t.prototype.ngAfterViewInit=function(){var t=this;this.initTabComponents(),this.listenTabComponentsStructuralChange();var e=this.getInitialTabIndex();this.tabsetService.setActiveTabIndex(e),this.listenTabButtonsOverflowChange(),this.listenLocationPopStateChange(),this.tabsetService.activeTabUnregistered.pipe(s.takeUntil(this.ngUnsubscribe)).subscribe((function(e){setTimeout((function(){t.tabsetService.activateNearestTab(e.arrayIndex)}))})),setTimeout((function(){t.listenTabComponentsStateChange(),t.listenActiveIndexChange(),t.permalinkService.init()}))},t.prototype.ngOnDestroy=function(){this.ngUnsubscribe.next(),this.ngUnsubscribe.complete(),this.unsubscribeTabComponentsStateChange(),this.permalinkService.clearParam(this.permalinkId)},t.prototype.onWindowResize=function(){this.adapterService.detectOverflow()},t.prototype.onTabCloseClick=function(t){var e=this;this.tabs.find((function(n){return e.tabsetService.tabIndexesEqual(n.tabIndex,t.tabIndex)})).close.emit()},t.prototype.onTabButtonClick=function(t){this.tabsetService.setActiveTabIndex(t.tabIndex)},t.prototype.onNewTabClick=function(){this.newTab.emit()},t.prototype.onOpenTabClick=function(){this.openTab.emit()},t.prototype.getInitialTabIndex=function(){var t,e=this.getActiveTabIndexByPermalinkId();return void 0===e&&void 0===(e=null===(t=this.getActiveTabComponent())||void 0===t?void 0:t.tabIndex)&&(e=this.active),e},t.prototype.listenActiveIndexChange=function(){var t=this;this.tabsetService.activeTabIndex.pipe(s.distinctUntilChanged(),s.takeUntil(this.ngUnsubscribe)).subscribe((function(e){t.updateTabsetComponent(e)}))},t.prototype.listenTabComponentsStructuralChange=function(){var t=this;this.tabs.changes.pipe(s.takeUntil(this.ngUnsubscribe)).subscribe((function(){t.resetTabComponents()}))},t.prototype.listenTabComponentsStateChange=function(){var t=this;o.combineLatest(this.tabs.map((function(t){return t.activeChange}))).pipe(s.takeUntil(o.race(this.tabComponentsStateChangeUnsubscribe,this.ngUnsubscribe))).subscribe((function(){setTimeout((function(){var e,n=null===(e=t.getActiveTabComponent())||void 0===e?void 0:e.tabIndex;t.tabsetService.setActiveTabIndex(n)}))})),o.combineLatest(this.tabs.map((function(t){return t.tabIndexChange}))).pipe(s.takeUntil(o.race(this.tabComponentsStateChangeUnsubscribe,this.ngUnsubscribe))).subscribe((function(){void 0!==t.lastActiveTabIndex&&setTimeout((function(){t.updateTabsetComponent(t.tabsetService.currentActiveTabIndex,!0),t.emitTabIndexChange()}))})),o.combineLatest(this.tabs.map((function(t){return t.stateChange}))).pipe(s.takeUntil(o.race(this.tabComponentsStateChangeUnsubscribe,this.ngUnsubscribe))).subscribe((function(){setTimeout((function(){t.updateTabsetComponent(t.tabsetService.currentActiveTabIndex,!0)}))}))},t.prototype.initTabComponents=function(){this.tabs.forEach((function(t){return t.init()}))},t.prototype.resetTabComponents=function(){var t;if(this.unsubscribeTabComponentsStateChange(),this.tabsetService.unregisterAll(),0!==this.tabs.length){this.initTabComponents();var e=null===(t=this.getActiveTabComponent())||void 0===t?void 0:t.tabIndex;this.tabsetService.setActiveTabIndex(e,{emitChange:!1}),this.listenTabComponentsStateChange()}else this.updateTabsetComponent(0,!0)},t.prototype.emitTabIndexChange=function(){this.tabIndexesChange.emit({tabs:this.tabs.map((function(t){return{tabHeading:t.tabHeading,tabIndex:t.tabIndex}}))})},t.prototype.unsubscribeTabComponentsStateChange=function(){this.tabComponentsStateChangeUnsubscribe.next(),this.tabComponentsStateChangeUnsubscribe.complete(),this.tabComponentsStateChangeUnsubscribe=new o.Subject},t.prototype.listenTabButtonsOverflowChange=function(){var t=this;this.adapterService.registerTabset(this.elementRef),this.adapterService.overflowChange.pipe(s.takeUntil(this.ngUnsubscribe)).subscribe((function(e){t.tabDisplayMode=e?"dropdown":"tabs",t.changeDetector.markForCheck()}))},t.prototype.listenLocationPopStateChange=function(){var t=this;this.permalinkService.popStateChange.pipe(s.takeUntil(this.ngUnsubscribe)).subscribe((function(){t.setActiveTabIndexByPermalinkId()}))},t.prototype.setActiveTabIndexByPermalinkId=function(){var t=this.getActiveTabIndexByPermalinkId();this.tabsetService.setActiveTabIndex(t)},t.prototype.getActiveTabIndexByPermalinkId=function(){var t;if(this.permalinkId){var e=this.permalinkService.getParam(this.permalinkId);if(e)return null===(t=this.tabs.find((function(t){return t.permalinkValue===e})))||void 0===t?void 0:t.tabIndex}},t.prototype.getActiveTabComponent=function(){return this.tabs.toArray().reverse().find((function(t){return!0===t.active}))},t.prototype.createTabButtons=function(t){var e=this;return this.tabs.map((function(n){return{active:e.tabsetService.tabIndexesEqual(n.tabIndex,t),closeable:n.closeable,ariaControls:n.tabPanelId,disabled:n.disabled,buttonHref:n.disabled?null:e.permalinkService.getParamHref(e.permalinkId,n.permalinkValue),buttonId:n.tabButtonId,buttonTextCount:n.tabHeaderCount,buttonText:n.tabHeading,tabIndex:n.tabIndex}}))},t.prototype.updateTabButtons=function(t){var e=this;this.tabButtons.forEach((function(n){n.active=e.tabsetService.tabIndexesEqual(n.tabIndex,t)}))},t.prototype.updateTabsetComponent=function(t,e){var n,i=this;if(void 0===e&&(e=!1),this.tabs.forEach((function(e){i.tabsetService.tabIndexesEqual(e.tabIndex,t)?e.activate():e.deactivate()})),e||!this.tabButtons.length?this.tabButtons=this.createTabButtons(t):this.updateTabButtons(t),this.dropdownTriggerButtonText=null===(n=this.tabButtons.find((function(e){return i.tabsetService.tabIndexesEqual(e.tabIndex,t)})))||void 0===n?void 0:n.buttonText,this.permalinkId){var o=this.tabs.find((function(e){return i.tabsetService.tabIndexesEqual(e.tabIndex,t)}));this.permalinkService.setParam(this.permalinkId,o.permalinkValue)}setTimeout((function(){i.adapterService.detectOverflow()})),this.changeDetector.markForCheck(),this.lastActiveTabIndex!==t&&(this.lastActiveTabIndex=t,this.activeChange.emit(t))},t.ctorParameters=function(){return[{type:e.ChangeDetectorRef},{type:e.ElementRef},{type:U},{type:O},{type:M}]},h([e.Input()],t.prototype,"active",null),h([e.Input()],t.prototype,"ariaLabel",void 0),h([e.Input()],t.prototype,"ariaLabelledBy",void 0),h([e.Input()],t.prototype,"permalinkId",null),h([e.Input()],t.prototype,"tabStyle",null),h([e.Output()],t.prototype,"activeChange",void 0),h([e.Output()],t.prototype,"newTab",void 0),h([e.Output()],t.prototype,"openTab",void 0),h([e.Output()],t.prototype,"tabIndexesChange",void 0),h([e.ContentChildren(j)],t.prototype,"tabs",void 0),t=h([e.Component({selector:"sky-tabset",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',providers:[U,O,M],changeDetection:e.ChangeDetectionStrategy.OnPush,encapsulation:e.ViewEncapsulation.None,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}"]})],t)}(),V=function(){function t(){}return t=h([e.NgModule({declarations:[B,j,A,E],imports:[n.CommonModule,u.RouterModule,l.SkyDropdownModule,d.SkyI18nModule,c.SkyIconModule,w,b.SkyThemeModule],exports:[j,A,E]})],t)}();t.SkySectionedFormComponent=v,t.SkySectionedFormModule=R,t.SkySectionedFormService=m,t.SkyTabsModule=V,t.SkyVerticalTabsetModule=_,t.ɵa="shown",t.ɵb="void",t.ɵc=y,t.ɵd=C,t.ɵe=g,t.ɵf=k,t.ɵg=f,t.ɵh=T,t.ɵi=I,t.ɵj=w,t.ɵk=S,t.ɵl=B,t.ɵm=j,t.ɵn=O,t.ɵo=M,t.ɵp=A,t.ɵq=U,t.ɵr=E,Object.defineProperty(t,"__esModule",{value:!0})}));
|
|
16
|
-
//# sourceMappingURL=skyux-tabs.umd.min.js.map
|