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