@skyux/tabs 8.6.0 → 9.0.0-alpha.0
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 +92 -54
- package/esm2022/index.mjs +26 -0
- package/esm2022/lib/modules/sectioned-form/sectioned-form-section.component.mjs +65 -0
- package/esm2022/lib/modules/sectioned-form/sectioned-form.component.mjs +187 -0
- package/{esm2020 → esm2022}/lib/modules/sectioned-form/sectioned-form.module.mjs +11 -11
- package/{esm2020 → esm2022}/lib/modules/sectioned-form/sectioned-form.service.mjs +4 -4
- package/esm2022/lib/modules/shared/sky-tabs-resources.module.mjs +61 -0
- package/esm2022/lib/modules/shared/tab-id.service.mjs +50 -0
- package/{esm2020 → esm2022}/lib/modules/tabs/tab-button-adapter.service.mjs +4 -4
- package/esm2022/lib/modules/tabs/tab-button.component.mjs +162 -0
- package/{esm2020 → esm2022}/lib/modules/tabs/tab-layout-type.mjs +1 -1
- package/esm2022/lib/modules/tabs/tab.component.mjs +197 -0
- package/{esm2020 → esm2022}/lib/modules/tabs/tabs.module.mjs +21 -21
- package/esm2022/lib/modules/tabs/tabset-adapter.service.mjs +68 -0
- package/{esm2020 → esm2022}/lib/modules/tabs/tabset-nav-button-disabled.pipe.mjs +4 -4
- package/esm2022/lib/modules/tabs/tabset-nav-button.component.mjs +149 -0
- package/esm2022/lib/modules/tabs/tabset-permalink.service.mjs +128 -0
- package/esm2022/lib/modules/tabs/tabset.component.mjs +466 -0
- package/esm2022/lib/modules/tabs/tabset.service.mjs +198 -0
- package/esm2022/lib/modules/vertical-tabset/vertical-tab-media-query.service.mjs +68 -0
- package/esm2022/lib/modules/vertical-tabset/vertical-tab.component.mjs +217 -0
- package/esm2022/lib/modules/vertical-tabset/vertical-tabset-adapter.service.mjs +48 -0
- package/esm2022/lib/modules/vertical-tabset/vertical-tabset-group.component.mjs +108 -0
- package/esm2022/lib/modules/vertical-tabset/vertical-tabset.component.mjs +158 -0
- package/{esm2020 → esm2022}/lib/modules/vertical-tabset/vertical-tabset.module.mjs +21 -21
- package/esm2022/lib/modules/vertical-tabset/vertical-tabset.service.mjs +169 -0
- package/esm2022/testing/tabs/tabset-fixture.mjs +129 -0
- package/fesm2022/skyux-tabs-testing.mjs +136 -0
- package/{fesm2020 → fesm2022}/skyux-tabs-testing.mjs.map +1 -1
- package/fesm2022/skyux-tabs.mjs +2586 -0
- package/{fesm2020 → fesm2022}/skyux-tabs.mjs.map +1 -1
- package/index.d.ts +1 -0
- package/lib/modules/sectioned-form/sectioned-form-section.component.d.ts +1 -1
- package/lib/modules/sectioned-form/sectioned-form.component.d.ts +1 -1
- package/lib/modules/tabs/tab-button.component.d.ts +1 -1
- package/lib/modules/tabs/tab-layout-type.d.ts +1 -1
- package/lib/modules/tabs/tab.component.d.ts +1 -1
- package/lib/modules/tabs/tabset-nav-button.component.d.ts +1 -1
- package/lib/modules/tabs/tabset.component.d.ts +1 -1
- package/lib/modules/vertical-tabset/vertical-tab.component.d.ts +1 -1
- package/lib/modules/vertical-tabset/vertical-tabset-group.component.d.ts +1 -1
- package/lib/modules/vertical-tabset/vertical-tabset.component.d.ts +1 -1
- package/package.json +21 -29
- package/esm2020/index.mjs +0 -25
- package/esm2020/lib/modules/sectioned-form/sectioned-form-section.component.mjs +0 -67
- package/esm2020/lib/modules/sectioned-form/sectioned-form.component.mjs +0 -187
- package/esm2020/lib/modules/shared/sky-tabs-resources.module.mjs +0 -61
- package/esm2020/lib/modules/shared/tab-id.service.mjs +0 -53
- package/esm2020/lib/modules/tabs/tab-button.component.mjs +0 -162
- package/esm2020/lib/modules/tabs/tab.component.mjs +0 -198
- package/esm2020/lib/modules/tabs/tabset-adapter.service.mjs +0 -68
- package/esm2020/lib/modules/tabs/tabset-nav-button.component.mjs +0 -149
- package/esm2020/lib/modules/tabs/tabset-permalink.service.mjs +0 -128
- package/esm2020/lib/modules/tabs/tabset.component.mjs +0 -429
- package/esm2020/lib/modules/tabs/tabset.service.mjs +0 -196
- package/esm2020/lib/modules/vertical-tabset/vertical-tab-media-query.service.mjs +0 -71
- package/esm2020/lib/modules/vertical-tabset/vertical-tab.component.mjs +0 -216
- package/esm2020/lib/modules/vertical-tabset/vertical-tabset-adapter.service.mjs +0 -51
- package/esm2020/lib/modules/vertical-tabset/vertical-tabset-group.component.mjs +0 -110
- package/esm2020/lib/modules/vertical-tabset/vertical-tabset.component.mjs +0 -159
- package/esm2020/lib/modules/vertical-tabset/vertical-tabset.service.mjs +0 -167
- package/esm2020/testing/tabs/tabset-fixture.mjs +0 -128
- package/fesm2015/skyux-tabs-testing.mjs +0 -147
- package/fesm2015/skyux-tabs-testing.mjs.map +0 -1
- package/fesm2015/skyux-tabs.mjs +0 -2560
- package/fesm2015/skyux-tabs.mjs.map +0 -1
- package/fesm2020/skyux-tabs-testing.mjs +0 -135
- package/fesm2020/skyux-tabs.mjs +0 -2544
- /package/{esm2020 → esm2022}/lib/modules/sectioned-form/types/sectioned-form-message-type.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/modules/sectioned-form/types/sectioned-form-message.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/modules/tabs/tab-button-view-model.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/modules/tabs/tab-index.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/modules/tabs/tabset-active-tab-unregistered-args.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/modules/tabs/tabset-buttons-display-mode.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/modules/tabs/tabset-nav-button-type.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/modules/tabs/tabset-style.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/modules/tabs/tabset-tab-indexes-change.mjs +0 -0
- /package/{esm2020 → esm2022}/skyux-tabs.mjs +0 -0
- /package/{esm2020 → esm2022}/testing/public-api.mjs +0 -0
- /package/{esm2020 → esm2022}/testing/skyux-tabs-testing.mjs +0 -0
- /package/{esm2020 → esm2022}/testing/tabs/tab-fixture-tab.mjs +0 -0
package/fesm2015/skyux-tabs.mjs
DELETED
|
@@ -1,2560 +0,0 @@
|
|
|
1
|
-
import * as i4 from '@angular/common';
|
|
2
|
-
import { CommonModule } from '@angular/common';
|
|
3
|
-
import * as i0 from '@angular/core';
|
|
4
|
-
import { NgModule, Injectable, Component, ChangeDetectionStrategy, Optional, Input, ViewChild, HostListener, ContentChildren, EventEmitter, Output, ViewEncapsulation, HostBinding, Pipe, inject } from '@angular/core';
|
|
5
|
-
import { SkyCheckboxModule } from '@skyux/forms';
|
|
6
|
-
import * as i7 from '@skyux/theme';
|
|
7
|
-
import { SkyThemeModule } from '@skyux/theme';
|
|
8
|
-
import * as i1 from '@skyux/core';
|
|
9
|
-
import { SkyMediaBreakpoints, SkyMediaQueryService, SkyIdModule, SkyLayoutHostService } from '@skyux/core';
|
|
10
|
-
import * as i6 from '@skyux/indicators';
|
|
11
|
-
import { SkyIconModule, SkyExpansionIndicatorModule, SkyStatusIndicatorModule } from '@skyux/indicators';
|
|
12
|
-
import * as i3 from '@skyux/i18n';
|
|
13
|
-
import { getLibStringForLocale, SkyI18nModule, SKY_LIB_RESOURCES_PROVIDERS } from '@skyux/i18n';
|
|
14
|
-
import { __classPrivateFieldSet, __classPrivateFieldGet } from 'tslib';
|
|
15
|
-
import { ReplaySubject, BehaviorSubject, Subject, combineLatest, race } from 'rxjs';
|
|
16
|
-
import { takeUntil, take, distinctUntilChanged } from 'rxjs/operators';
|
|
17
|
-
import { skyAnimationSlide } from '@skyux/animations';
|
|
18
|
-
import { trigger, transition, style, animate } from '@angular/animations';
|
|
19
|
-
import * as i1$1 from '@angular/router';
|
|
20
|
-
import { RouterModule } from '@angular/router';
|
|
21
|
-
import * as i5 from '@skyux/popovers';
|
|
22
|
-
import { SkyDropdownModule } from '@skyux/popovers';
|
|
23
|
-
|
|
24
|
-
/**
|
|
25
|
-
* NOTICE: DO NOT MODIFY THIS FILE!
|
|
26
|
-
* The contents of this file were automatically generated by
|
|
27
|
-
* the 'ng generate @skyux/i18n:lib-resources-module lib/modules/shared/sky-tabs' schematic.
|
|
28
|
-
* To update this file, simply rerun the command.
|
|
29
|
-
*/
|
|
30
|
-
const RESOURCES = {
|
|
31
|
-
'EN-US': {
|
|
32
|
-
skyux_tab_add: { message: 'Add tab' },
|
|
33
|
-
skyux_tab_close: { message: 'Close {0} tab' },
|
|
34
|
-
skyux_tabs_navigator_finish: { message: 'Finish' },
|
|
35
|
-
skyux_tabs_navigator_next: { message: 'Next' },
|
|
36
|
-
skyux_tabs_navigator_previous: { message: 'Previous' },
|
|
37
|
-
skyux_tab_open: { message: 'Open tab' },
|
|
38
|
-
skyux_tabs_sr_tab_order: { message: 'Tab {0} of {1}: {2}' },
|
|
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
|
-
},
|
|
47
|
-
},
|
|
48
|
-
};
|
|
49
|
-
class SkyTabsResourcesProvider {
|
|
50
|
-
getString(localeInfo, name) {
|
|
51
|
-
return getLibStringForLocale(RESOURCES, localeInfo.locale, name);
|
|
52
|
-
}
|
|
53
|
-
}
|
|
54
|
-
/**
|
|
55
|
-
* Import into any component library module that needs to use resource strings.
|
|
56
|
-
*/
|
|
57
|
-
class SkyTabsResourcesModule {
|
|
58
|
-
}
|
|
59
|
-
SkyTabsResourcesModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: SkyTabsResourcesModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
60
|
-
SkyTabsResourcesModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "15.2.9", ngImport: i0, type: SkyTabsResourcesModule, exports: [SkyI18nModule] });
|
|
61
|
-
SkyTabsResourcesModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: SkyTabsResourcesModule, providers: [
|
|
62
|
-
{
|
|
63
|
-
provide: SKY_LIB_RESOURCES_PROVIDERS,
|
|
64
|
-
useClass: SkyTabsResourcesProvider,
|
|
65
|
-
multi: true,
|
|
66
|
-
},
|
|
67
|
-
], imports: [SkyI18nModule] });
|
|
68
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: SkyTabsResourcesModule, decorators: [{
|
|
69
|
-
type: NgModule,
|
|
70
|
-
args: [{
|
|
71
|
-
exports: [SkyI18nModule],
|
|
72
|
-
providers: [
|
|
73
|
-
{
|
|
74
|
-
provide: SKY_LIB_RESOURCES_PROVIDERS,
|
|
75
|
-
useClass: SkyTabsResourcesProvider,
|
|
76
|
-
multi: true,
|
|
77
|
-
},
|
|
78
|
-
],
|
|
79
|
-
}]
|
|
80
|
-
}] });
|
|
81
|
-
|
|
82
|
-
var _SkyVerticalTabMediaQueryService_currentSubject;
|
|
83
|
-
/**
|
|
84
|
-
* @internal
|
|
85
|
-
*/
|
|
86
|
-
class SkyVerticalTabMediaQueryService {
|
|
87
|
-
constructor() {
|
|
88
|
-
_SkyVerticalTabMediaQueryService_currentSubject.set(this, void 0);
|
|
89
|
-
__classPrivateFieldSet(this, _SkyVerticalTabMediaQueryService_currentSubject, new ReplaySubject(1), "f");
|
|
90
|
-
}
|
|
91
|
-
subscribe(listener) {
|
|
92
|
-
return __classPrivateFieldGet(this, _SkyVerticalTabMediaQueryService_currentSubject, "f").subscribe({
|
|
93
|
-
next: (breakpoints) => {
|
|
94
|
-
listener(breakpoints);
|
|
95
|
-
},
|
|
96
|
-
});
|
|
97
|
-
}
|
|
98
|
-
setBreakpointForWidth(width) {
|
|
99
|
-
let breakpoint;
|
|
100
|
-
if (this.isWidthWithinBreakpoint(width, SkyMediaBreakpoints.xs)) {
|
|
101
|
-
breakpoint = SkyMediaBreakpoints.xs;
|
|
102
|
-
}
|
|
103
|
-
else if (this.isWidthWithinBreakpoint(width, SkyMediaBreakpoints.sm)) {
|
|
104
|
-
breakpoint = SkyMediaBreakpoints.sm;
|
|
105
|
-
}
|
|
106
|
-
else if (this.isWidthWithinBreakpoint(width, SkyMediaBreakpoints.md)) {
|
|
107
|
-
breakpoint = SkyMediaBreakpoints.md;
|
|
108
|
-
}
|
|
109
|
-
else {
|
|
110
|
-
breakpoint = SkyMediaBreakpoints.lg;
|
|
111
|
-
}
|
|
112
|
-
this.current = breakpoint;
|
|
113
|
-
__classPrivateFieldGet(this, _SkyVerticalTabMediaQueryService_currentSubject, "f").next(this.current);
|
|
114
|
-
}
|
|
115
|
-
isWidthWithinBreakpoint(width, breakpoint) {
|
|
116
|
-
const xsBreakpointMaxPixels = 767;
|
|
117
|
-
const smBreakpointMinPixels = 768;
|
|
118
|
-
const smBreakpointMaxPixels = 991;
|
|
119
|
-
const mdBreakpointMinPixels = 992;
|
|
120
|
-
const mdBreakpointMaxPixels = 1199;
|
|
121
|
-
const lgBreakpointMinPixels = 1200;
|
|
122
|
-
switch (breakpoint) {
|
|
123
|
-
case SkyMediaBreakpoints.xs: {
|
|
124
|
-
return width <= xsBreakpointMaxPixels;
|
|
125
|
-
}
|
|
126
|
-
case SkyMediaBreakpoints.sm: {
|
|
127
|
-
return width >= smBreakpointMinPixels && width <= smBreakpointMaxPixels;
|
|
128
|
-
}
|
|
129
|
-
case SkyMediaBreakpoints.md: {
|
|
130
|
-
return width >= mdBreakpointMinPixels && width <= mdBreakpointMaxPixels;
|
|
131
|
-
}
|
|
132
|
-
default: {
|
|
133
|
-
return width >= lgBreakpointMinPixels;
|
|
134
|
-
}
|
|
135
|
-
}
|
|
136
|
-
}
|
|
137
|
-
destroy() {
|
|
138
|
-
__classPrivateFieldGet(this, _SkyVerticalTabMediaQueryService_currentSubject, "f").complete();
|
|
139
|
-
}
|
|
140
|
-
}
|
|
141
|
-
_SkyVerticalTabMediaQueryService_currentSubject = new WeakMap();
|
|
142
|
-
SkyVerticalTabMediaQueryService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: SkyVerticalTabMediaQueryService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
143
|
-
SkyVerticalTabMediaQueryService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: SkyVerticalTabMediaQueryService });
|
|
144
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: SkyVerticalTabMediaQueryService, decorators: [{
|
|
145
|
-
type: Injectable
|
|
146
|
-
}], ctorParameters: function () { return []; } });
|
|
147
|
-
|
|
148
|
-
var _SkyVerticalTabsetAdapterService_renderer;
|
|
149
|
-
class SkyVerticalTabsetAdapterService {
|
|
150
|
-
constructor(rendererFactory) {
|
|
151
|
-
_SkyVerticalTabsetAdapterService_renderer.set(this, void 0);
|
|
152
|
-
__classPrivateFieldSet(this, _SkyVerticalTabsetAdapterService_renderer, rendererFactory.createRenderer(undefined, null), "f");
|
|
153
|
-
}
|
|
154
|
-
getWidth(elementRef) {
|
|
155
|
-
return elementRef.nativeElement.clientWidth;
|
|
156
|
-
}
|
|
157
|
-
scrollToContentTop(element) {
|
|
158
|
-
element.nativeElement.scrollTop = 0;
|
|
159
|
-
}
|
|
160
|
-
setResponsiveClass(element, breakpoint) {
|
|
161
|
-
const nativeEl = element.nativeElement;
|
|
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');
|
|
166
|
-
let newClass;
|
|
167
|
-
switch (breakpoint) {
|
|
168
|
-
case SkyMediaBreakpoints.xs: {
|
|
169
|
-
newClass = 'sky-responsive-container-xs';
|
|
170
|
-
break;
|
|
171
|
-
}
|
|
172
|
-
case SkyMediaBreakpoints.sm: {
|
|
173
|
-
newClass = 'sky-responsive-container-sm';
|
|
174
|
-
break;
|
|
175
|
-
}
|
|
176
|
-
case SkyMediaBreakpoints.md: {
|
|
177
|
-
newClass = 'sky-responsive-container-md';
|
|
178
|
-
break;
|
|
179
|
-
}
|
|
180
|
-
default: {
|
|
181
|
-
newClass = 'sky-responsive-container-lg';
|
|
182
|
-
break;
|
|
183
|
-
}
|
|
184
|
-
}
|
|
185
|
-
__classPrivateFieldGet(this, _SkyVerticalTabsetAdapterService_renderer, "f").addClass(nativeEl, newClass);
|
|
186
|
-
}
|
|
187
|
-
}
|
|
188
|
-
_SkyVerticalTabsetAdapterService_renderer = new WeakMap();
|
|
189
|
-
SkyVerticalTabsetAdapterService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: SkyVerticalTabsetAdapterService, deps: [{ token: i0.RendererFactory2 }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
190
|
-
SkyVerticalTabsetAdapterService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: SkyVerticalTabsetAdapterService });
|
|
191
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: SkyVerticalTabsetAdapterService, decorators: [{
|
|
192
|
-
type: Injectable
|
|
193
|
-
}], ctorParameters: function () { return [{ type: i0.RendererFactory2 }]; } });
|
|
194
|
-
|
|
195
|
-
var _SkyVerticalTabsetService_instances, _SkyVerticalTabsetService_contentAdded, _SkyVerticalTabsetService_tabsVisible, _SkyVerticalTabsetService_isMobile, _SkyVerticalTabsetService_mediaQueryService, _SkyVerticalTabsetService_destroyContent, _SkyVerticalTabsetService_moveContent, _SkyVerticalTabsetService_updateTabClicked;
|
|
196
|
-
const VISIBLE_STATE = 'shown';
|
|
197
|
-
const HIDDEN_STATE = 'void';
|
|
198
|
-
/**
|
|
199
|
-
* @internal
|
|
200
|
-
*/
|
|
201
|
-
class SkyVerticalTabsetService {
|
|
202
|
-
constructor(mediaQueryService) {
|
|
203
|
-
_SkyVerticalTabsetService_instances.add(this);
|
|
204
|
-
this.activeIndex = undefined;
|
|
205
|
-
this.hidingTabs = new BehaviorSubject(false);
|
|
206
|
-
this.indexChanged = new ReplaySubject(1);
|
|
207
|
-
this.maintainTabContent = false;
|
|
208
|
-
this.showingTabs = new BehaviorSubject(false);
|
|
209
|
-
this.switchingMobile = new Subject();
|
|
210
|
-
this.tabs = [];
|
|
211
|
-
this.tabAdded = new Subject();
|
|
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) => {
|
|
219
|
-
const nowMobile = breakpoint === SkyMediaBreakpoints.xs;
|
|
220
|
-
if (nowMobile && !__classPrivateFieldGet(this, _SkyVerticalTabsetService_isMobile, "f")) {
|
|
221
|
-
// switching to mobile
|
|
222
|
-
this.switchingMobile.next(true);
|
|
223
|
-
if (!__classPrivateFieldGet(this, _SkyVerticalTabsetService_tabsVisible, "f")) {
|
|
224
|
-
this.hidingTabs.next(true);
|
|
225
|
-
}
|
|
226
|
-
}
|
|
227
|
-
else if (!nowMobile && __classPrivateFieldGet(this, _SkyVerticalTabsetService_isMobile, "f")) {
|
|
228
|
-
// switching to widescreen
|
|
229
|
-
this.switchingMobile.next(false);
|
|
230
|
-
if (!__classPrivateFieldGet(this, _SkyVerticalTabsetService_tabsVisible, "f")) {
|
|
231
|
-
this.showingTabs.next(true);
|
|
232
|
-
}
|
|
233
|
-
}
|
|
234
|
-
__classPrivateFieldSet(this, _SkyVerticalTabsetService_isMobile, nowMobile, "f");
|
|
235
|
-
});
|
|
236
|
-
}
|
|
237
|
-
addTab(tab) {
|
|
238
|
-
const index = this.tabs.length;
|
|
239
|
-
tab.index = index;
|
|
240
|
-
this.tabs.push(tab);
|
|
241
|
-
if (tab.active) {
|
|
242
|
-
this.activateTab(tab);
|
|
243
|
-
}
|
|
244
|
-
this.tabAdded.next(tab);
|
|
245
|
-
}
|
|
246
|
-
destroyTab(tab) {
|
|
247
|
-
var _a, _b, _c, _d;
|
|
248
|
-
const tabIndex = this.tabs.indexOf(tab);
|
|
249
|
-
if (tabIndex === -1) {
|
|
250
|
-
return;
|
|
251
|
-
}
|
|
252
|
-
if (this.maintainTabContent &&
|
|
253
|
-
tab.contentRendered &&
|
|
254
|
-
(
|
|
255
|
-
/* istanbul ignore next */
|
|
256
|
-
(_a = this.content) === null || _a === void 0 ? void 0 : _a.nativeElement.contains((_b = tab.tabContent) === null || _b === void 0 ? void 0 : _b.nativeElement))) {
|
|
257
|
-
(_c = this.content) === null || _c === void 0 ? void 0 : _c.nativeElement.removeChild((_d = tab.tabContent) === null || _d === void 0 ? void 0 : _d.nativeElement);
|
|
258
|
-
}
|
|
259
|
-
this.tabs.splice(tabIndex, 1);
|
|
260
|
-
// update tab indices
|
|
261
|
-
this.tabs.forEach((tabItem, index) => (tabItem.index = index));
|
|
262
|
-
if (tab.active) {
|
|
263
|
-
if (!this.maintainTabContent) {
|
|
264
|
-
__classPrivateFieldGet(this, _SkyVerticalTabsetService_instances, "m", _SkyVerticalTabsetService_destroyContent).call(this);
|
|
265
|
-
}
|
|
266
|
-
// Try selecting the next tab first, and if there's no next tab then
|
|
267
|
-
// try selecting the previous one.
|
|
268
|
-
const newActiveTab = this.tabs[tabIndex] || this.tabs[tabIndex - 1];
|
|
269
|
-
/*istanbul ignore else */
|
|
270
|
-
if (newActiveTab) {
|
|
271
|
-
newActiveTab.activateTab();
|
|
272
|
-
}
|
|
273
|
-
}
|
|
274
|
-
}
|
|
275
|
-
activateTab(tab) {
|
|
276
|
-
// deactivate active tab
|
|
277
|
-
const activeTab = this.tabs.find((t) => t.index === this.activeIndex);
|
|
278
|
-
if (activeTab && activeTab.index !== tab.index) {
|
|
279
|
-
activeTab.active = false;
|
|
280
|
-
activeTab.tabDeactivated();
|
|
281
|
-
}
|
|
282
|
-
this.activeIndex = tab.index;
|
|
283
|
-
this.tabClicked.next(true);
|
|
284
|
-
__classPrivateFieldGet(this, _SkyVerticalTabsetService_instances, "m", _SkyVerticalTabsetService_updateTabClicked).call(this);
|
|
285
|
-
}
|
|
286
|
-
activeTab() {
|
|
287
|
-
return this.tabs.find((t) => t.index === this.activeIndex);
|
|
288
|
-
}
|
|
289
|
-
isMobile() {
|
|
290
|
-
return __classPrivateFieldGet(this, _SkyVerticalTabsetService_isMobile, "f");
|
|
291
|
-
}
|
|
292
|
-
updateContent() {
|
|
293
|
-
if (!this.maintainTabContent) {
|
|
294
|
-
if (!__classPrivateFieldGet(this, _SkyVerticalTabsetService_contentAdded, "f") && this.contentVisible()) {
|
|
295
|
-
// content needs to be moved
|
|
296
|
-
__classPrivateFieldGet(this, _SkyVerticalTabsetService_instances, "m", _SkyVerticalTabsetService_moveContent).call(this);
|
|
297
|
-
}
|
|
298
|
-
else if (__classPrivateFieldGet(this, _SkyVerticalTabsetService_contentAdded, "f") && !this.contentVisible()) {
|
|
299
|
-
// content hidden
|
|
300
|
-
__classPrivateFieldSet(this, _SkyVerticalTabsetService_contentAdded, false, "f");
|
|
301
|
-
}
|
|
302
|
-
}
|
|
303
|
-
else {
|
|
304
|
-
this.tabs.forEach((tab) => {
|
|
305
|
-
var _a, _b;
|
|
306
|
-
if (!tab.contentRendered) {
|
|
307
|
-
(_a = this.content) === null || _a === void 0 ? void 0 : _a.nativeElement.appendChild((_b = tab.tabContent) === null || _b === void 0 ? void 0 : _b.nativeElement);
|
|
308
|
-
tab.contentRendered = true;
|
|
309
|
-
}
|
|
310
|
-
});
|
|
311
|
-
}
|
|
312
|
-
}
|
|
313
|
-
tabsVisible() {
|
|
314
|
-
return !this.isMobile() || __classPrivateFieldGet(this, _SkyVerticalTabsetService_tabsVisible, "f");
|
|
315
|
-
}
|
|
316
|
-
contentVisible() {
|
|
317
|
-
return !this.isMobile() || !__classPrivateFieldGet(this, _SkyVerticalTabsetService_tabsVisible, "f");
|
|
318
|
-
}
|
|
319
|
-
showTabs() {
|
|
320
|
-
__classPrivateFieldSet(this, _SkyVerticalTabsetService_tabsVisible, true, "f");
|
|
321
|
-
__classPrivateFieldSet(this, _SkyVerticalTabsetService_contentAdded, false, "f");
|
|
322
|
-
this.animationTabsVisibleState = VISIBLE_STATE;
|
|
323
|
-
this.animationContentVisibleState = HIDDEN_STATE;
|
|
324
|
-
this.showingTabs.next(true);
|
|
325
|
-
}
|
|
326
|
-
}
|
|
327
|
-
_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() {
|
|
328
|
-
if (this.content) {
|
|
329
|
-
this.content.nativeElement.innerHTML = '';
|
|
330
|
-
}
|
|
331
|
-
this.content = undefined;
|
|
332
|
-
}, _SkyVerticalTabsetService_moveContent = function _SkyVerticalTabsetService_moveContent() {
|
|
333
|
-
/* istanbul ignore else */
|
|
334
|
-
if (this.content && !__classPrivateFieldGet(this, _SkyVerticalTabsetService_contentAdded, "f")) {
|
|
335
|
-
const activeTab = this.activeTab();
|
|
336
|
-
const activeContent = activeTab ? activeTab.tabContent : undefined;
|
|
337
|
-
if (activeContent && activeTab && activeContent.nativeElement) {
|
|
338
|
-
this.content.nativeElement.appendChild(activeContent.nativeElement);
|
|
339
|
-
activeTab.contentRendered = true;
|
|
340
|
-
__classPrivateFieldSet(this, _SkyVerticalTabsetService_contentAdded, true, "f");
|
|
341
|
-
}
|
|
342
|
-
}
|
|
343
|
-
}, _SkyVerticalTabsetService_updateTabClicked = function _SkyVerticalTabsetService_updateTabClicked() {
|
|
344
|
-
__classPrivateFieldSet(this, _SkyVerticalTabsetService_contentAdded, false, "f");
|
|
345
|
-
if (this.isMobile()) {
|
|
346
|
-
__classPrivateFieldSet(this, _SkyVerticalTabsetService_tabsVisible, false, "f");
|
|
347
|
-
this.animationContentVisibleState = VISIBLE_STATE;
|
|
348
|
-
this.animationTabsVisibleState = HIDDEN_STATE;
|
|
349
|
-
this.hidingTabs.next(true);
|
|
350
|
-
}
|
|
351
|
-
this.indexChanged.next(this.activeIndex);
|
|
352
|
-
};
|
|
353
|
-
SkyVerticalTabsetService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: SkyVerticalTabsetService, deps: [{ token: i1.SkyMediaQueryService }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
354
|
-
SkyVerticalTabsetService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: SkyVerticalTabsetService });
|
|
355
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: SkyVerticalTabsetService, decorators: [{
|
|
356
|
-
type: Injectable
|
|
357
|
-
}], ctorParameters: function () { return [{ type: i1.SkyMediaQueryService }]; } });
|
|
358
|
-
|
|
359
|
-
var _SkyTabIdService_instances, _SkyTabIdService_ids, _SkyTabIdService_ids$, _SkyTabIdService_idsObs, _SkyTabIdService_emitIds;
|
|
360
|
-
/**
|
|
361
|
-
* Tracks the element IDs for all tabs within a tablist.
|
|
362
|
-
* @internal
|
|
363
|
-
*/
|
|
364
|
-
class SkyTabIdService {
|
|
365
|
-
get ids() {
|
|
366
|
-
return __classPrivateFieldGet(this, _SkyTabIdService_idsObs, "f");
|
|
367
|
-
}
|
|
368
|
-
constructor() {
|
|
369
|
-
_SkyTabIdService_instances.add(this);
|
|
370
|
-
_SkyTabIdService_ids.set(this, void 0);
|
|
371
|
-
_SkyTabIdService_ids$.set(this, void 0);
|
|
372
|
-
_SkyTabIdService_idsObs.set(this, void 0);
|
|
373
|
-
__classPrivateFieldSet(this, _SkyTabIdService_ids, new Map(), "f");
|
|
374
|
-
__classPrivateFieldSet(this, _SkyTabIdService_ids$, new BehaviorSubject([]), "f");
|
|
375
|
-
__classPrivateFieldSet(this, _SkyTabIdService_idsObs, __classPrivateFieldGet(this, _SkyTabIdService_ids$, "f").asObservable(), "f");
|
|
376
|
-
}
|
|
377
|
-
/**
|
|
378
|
-
* Associates a tab's ID with its parent tablist.
|
|
379
|
-
* @param {string} id A unique ID for the tab's registration.
|
|
380
|
-
* @param {string} elementId The ID applied to the tab's element.
|
|
381
|
-
*/
|
|
382
|
-
register(id, elementId) {
|
|
383
|
-
if (!__classPrivateFieldGet(this, _SkyTabIdService_ids, "f").has(id) || __classPrivateFieldGet(this, _SkyTabIdService_ids, "f").get(id) !== elementId) {
|
|
384
|
-
__classPrivateFieldGet(this, _SkyTabIdService_ids, "f").set(id, elementId);
|
|
385
|
-
__classPrivateFieldGet(this, _SkyTabIdService_instances, "m", _SkyTabIdService_emitIds).call(this);
|
|
386
|
-
}
|
|
387
|
-
}
|
|
388
|
-
/**
|
|
389
|
-
* Disassociates a tab's ID with its parent tablist.
|
|
390
|
-
* @param {string} id The ID used to register the tab.
|
|
391
|
-
*/
|
|
392
|
-
unregister(id) {
|
|
393
|
-
if (__classPrivateFieldGet(this, _SkyTabIdService_ids, "f").has(id)) {
|
|
394
|
-
__classPrivateFieldGet(this, _SkyTabIdService_ids, "f").delete(id);
|
|
395
|
-
__classPrivateFieldGet(this, _SkyTabIdService_instances, "m", _SkyTabIdService_emitIds).call(this);
|
|
396
|
-
}
|
|
397
|
-
}
|
|
398
|
-
}
|
|
399
|
-
_SkyTabIdService_ids = new WeakMap(), _SkyTabIdService_ids$ = new WeakMap(), _SkyTabIdService_idsObs = new WeakMap(), _SkyTabIdService_instances = new WeakSet(), _SkyTabIdService_emitIds = function _SkyTabIdService_emitIds() {
|
|
400
|
-
__classPrivateFieldGet(this, _SkyTabIdService_ids$, "f").next(Array.from(__classPrivateFieldGet(this, _SkyTabIdService_ids, "f").values()));
|
|
401
|
-
};
|
|
402
|
-
SkyTabIdService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: SkyTabIdService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
403
|
-
SkyTabIdService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: SkyTabIdService });
|
|
404
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: SkyTabIdService, decorators: [{
|
|
405
|
-
type: Injectable
|
|
406
|
-
}], ctorParameters: function () { return []; } });
|
|
407
|
-
|
|
408
|
-
var _SkyVerticalTabComponent_instances, _SkyVerticalTabComponent__ariaRole, _SkyVerticalTabComponent__contentRendered, _SkyVerticalTabComponent_tabIdOrDefault, _SkyVerticalTabComponent_defaultTabId, _SkyVerticalTabComponent_mobileSubscription, _SkyVerticalTabComponent_ngUnsubscribe, _SkyVerticalTabComponent_adapterService, _SkyVerticalTabComponent_changeRef, _SkyVerticalTabComponent_tabsetService, _SkyVerticalTabComponent_verticalTabMediaQueryService, _SkyVerticalTabComponent_tabIdSvc, _SkyVerticalTabComponent_updateBreakpointAndResponsiveClass;
|
|
409
|
-
let nextId$2 = 0;
|
|
410
|
-
class SkyVerticalTabComponent {
|
|
411
|
-
/**
|
|
412
|
-
* The ARIA role for the vertical tab
|
|
413
|
-
* [to support accessibility](https://developer.blackbaud.com/skyux/learn/accessibility)
|
|
414
|
-
* by indicating how the tab functions and what it controls. For information about how
|
|
415
|
-
* an ARIA role indicates what an item represents on a web page, see the
|
|
416
|
-
* [WAI-ARIA roles model](https://www.w3.org/WAI/PF/aria/#roles).
|
|
417
|
-
* @default "tab"
|
|
418
|
-
* @deprecated Any other value than `tab` could lead to a poor user experience for users with assistive technology.
|
|
419
|
-
* In the next major version, this property will be automatically set to `tab`.
|
|
420
|
-
*/
|
|
421
|
-
get ariaRole() {
|
|
422
|
-
return __classPrivateFieldGet(this, _SkyVerticalTabComponent__ariaRole, "f");
|
|
423
|
-
}
|
|
424
|
-
set ariaRole(value) {
|
|
425
|
-
__classPrivateFieldSet(this, _SkyVerticalTabComponent__ariaRole, value !== null && value !== void 0 ? value : 'tab', "f");
|
|
426
|
-
}
|
|
427
|
-
/**
|
|
428
|
-
* The ID for the tab.
|
|
429
|
-
* @deprecated Now that the vertical tabs provide aria labels automatically, this input is no longer necessary.
|
|
430
|
-
*/
|
|
431
|
-
set tabId(value) {
|
|
432
|
-
var _a;
|
|
433
|
-
__classPrivateFieldSet(this, _SkyVerticalTabComponent_tabIdOrDefault, value || __classPrivateFieldGet(this, _SkyVerticalTabComponent_defaultTabId, "f"), "f");
|
|
434
|
-
(_a = __classPrivateFieldGet(this, _SkyVerticalTabComponent_tabIdSvc, "f")) === null || _a === void 0 ? void 0 : _a.register(__classPrivateFieldGet(this, _SkyVerticalTabComponent_defaultTabId, "f"), __classPrivateFieldGet(this, _SkyVerticalTabComponent_tabIdOrDefault, "f"));
|
|
435
|
-
}
|
|
436
|
-
get tabId() {
|
|
437
|
-
return __classPrivateFieldGet(this, _SkyVerticalTabComponent_tabIdOrDefault, "f");
|
|
438
|
-
}
|
|
439
|
-
set contentRendered(value) {
|
|
440
|
-
__classPrivateFieldSet(this, _SkyVerticalTabComponent__contentRendered, value, "f");
|
|
441
|
-
/* istanbul ignore else */
|
|
442
|
-
if (__classPrivateFieldGet(this, _SkyVerticalTabComponent__contentRendered, "f")) {
|
|
443
|
-
// NOTE: Wrapped in a setTimeout here to ensure that everything has completed rendering.
|
|
444
|
-
setTimeout(() => {
|
|
445
|
-
if (this.tabContent) {
|
|
446
|
-
__classPrivateFieldGet(this, _SkyVerticalTabComponent_instances, "m", _SkyVerticalTabComponent_updateBreakpointAndResponsiveClass).call(this);
|
|
447
|
-
}
|
|
448
|
-
});
|
|
449
|
-
}
|
|
450
|
-
}
|
|
451
|
-
get contentRendered() {
|
|
452
|
-
return __classPrivateFieldGet(this, _SkyVerticalTabComponent__contentRendered, "f");
|
|
453
|
-
}
|
|
454
|
-
constructor(adapterService, changeRef, tabsetService, verticalTabMediaQueryService, tabIdSvc) {
|
|
455
|
-
_SkyVerticalTabComponent_instances.add(this);
|
|
456
|
-
/**
|
|
457
|
-
* Whether the tab is active when the tabset loads.
|
|
458
|
-
*/
|
|
459
|
-
this.active = false;
|
|
460
|
-
/**
|
|
461
|
-
* Whether to disable the tab.
|
|
462
|
-
*/
|
|
463
|
-
this.disabled = false;
|
|
464
|
-
/**
|
|
465
|
-
* Whether to indicate that the tab has an error.
|
|
466
|
-
* @internal This is used for sectioned forms and is not currently a supported design for pure vertical tabs.
|
|
467
|
-
*/
|
|
468
|
-
this.errorIndicator = false;
|
|
469
|
-
this.isMobile = false;
|
|
470
|
-
_SkyVerticalTabComponent__ariaRole.set(this, 'tab');
|
|
471
|
-
_SkyVerticalTabComponent__contentRendered.set(this, false);
|
|
472
|
-
_SkyVerticalTabComponent_tabIdOrDefault.set(this, void 0);
|
|
473
|
-
_SkyVerticalTabComponent_defaultTabId.set(this, void 0);
|
|
474
|
-
_SkyVerticalTabComponent_mobileSubscription.set(this, new Subject());
|
|
475
|
-
_SkyVerticalTabComponent_ngUnsubscribe.set(this, new Subject());
|
|
476
|
-
_SkyVerticalTabComponent_adapterService.set(this, void 0);
|
|
477
|
-
_SkyVerticalTabComponent_changeRef.set(this, void 0);
|
|
478
|
-
_SkyVerticalTabComponent_tabsetService.set(this, void 0);
|
|
479
|
-
_SkyVerticalTabComponent_verticalTabMediaQueryService.set(this, void 0);
|
|
480
|
-
_SkyVerticalTabComponent_tabIdSvc.set(this, void 0);
|
|
481
|
-
__classPrivateFieldSet(this, _SkyVerticalTabComponent_adapterService, adapterService, "f");
|
|
482
|
-
__classPrivateFieldSet(this, _SkyVerticalTabComponent_changeRef, changeRef, "f");
|
|
483
|
-
__classPrivateFieldSet(this, _SkyVerticalTabComponent_tabsetService, tabsetService, "f");
|
|
484
|
-
__classPrivateFieldSet(this, _SkyVerticalTabComponent_verticalTabMediaQueryService, verticalTabMediaQueryService, "f");
|
|
485
|
-
__classPrivateFieldSet(this, _SkyVerticalTabComponent_tabIdSvc, tabIdSvc, "f");
|
|
486
|
-
__classPrivateFieldSet(this, _SkyVerticalTabComponent_tabIdOrDefault, __classPrivateFieldSet(this, _SkyVerticalTabComponent_defaultTabId, `sky-vertical-tab-${++nextId$2}`, "f"), "f");
|
|
487
|
-
this.tabId = __classPrivateFieldGet(this, _SkyVerticalTabComponent_defaultTabId, "f");
|
|
488
|
-
}
|
|
489
|
-
ngOnInit() {
|
|
490
|
-
this.isMobile = __classPrivateFieldGet(this, _SkyVerticalTabComponent_tabsetService, "f").isMobile();
|
|
491
|
-
__classPrivateFieldGet(this, _SkyVerticalTabComponent_changeRef, "f").markForCheck();
|
|
492
|
-
__classPrivateFieldGet(this, _SkyVerticalTabComponent_tabsetService, "f").switchingMobile.subscribe((mobile) => {
|
|
493
|
-
this.isMobile = mobile;
|
|
494
|
-
__classPrivateFieldGet(this, _SkyVerticalTabComponent_changeRef, "f").markForCheck();
|
|
495
|
-
});
|
|
496
|
-
// Update the breakpoint and responsive class here just as a sanity check since we can not
|
|
497
|
-
// watch for element resizing.
|
|
498
|
-
__classPrivateFieldGet(this, _SkyVerticalTabComponent_tabsetService, "f").indexChanged
|
|
499
|
-
.pipe(takeUntil(__classPrivateFieldGet(this, _SkyVerticalTabComponent_ngUnsubscribe, "f")))
|
|
500
|
-
.subscribe((index) => {
|
|
501
|
-
if (this.index === index && this.contentRendered) {
|
|
502
|
-
if (this.tabContent) {
|
|
503
|
-
__classPrivateFieldGet(this, _SkyVerticalTabComponent_instances, "m", _SkyVerticalTabComponent_updateBreakpointAndResponsiveClass).call(this);
|
|
504
|
-
}
|
|
505
|
-
}
|
|
506
|
-
});
|
|
507
|
-
__classPrivateFieldGet(this, _SkyVerticalTabComponent_tabsetService, "f").addTab(this);
|
|
508
|
-
}
|
|
509
|
-
ngOnDestroy() {
|
|
510
|
-
var _a;
|
|
511
|
-
(_a = __classPrivateFieldGet(this, _SkyVerticalTabComponent_tabIdSvc, "f")) === null || _a === void 0 ? void 0 : _a.unregister(__classPrivateFieldGet(this, _SkyVerticalTabComponent_defaultTabId, "f"));
|
|
512
|
-
__classPrivateFieldGet(this, _SkyVerticalTabComponent_mobileSubscription, "f").unsubscribe();
|
|
513
|
-
__classPrivateFieldGet(this, _SkyVerticalTabComponent_ngUnsubscribe, "f").next();
|
|
514
|
-
__classPrivateFieldGet(this, _SkyVerticalTabComponent_ngUnsubscribe, "f").complete();
|
|
515
|
-
__classPrivateFieldGet(this, _SkyVerticalTabComponent_tabsetService, "f").destroyTab(this);
|
|
516
|
-
}
|
|
517
|
-
tabIndex() {
|
|
518
|
-
if (!this.disabled) {
|
|
519
|
-
return 0;
|
|
520
|
-
}
|
|
521
|
-
else {
|
|
522
|
-
return -1;
|
|
523
|
-
}
|
|
524
|
-
}
|
|
525
|
-
activateTab() {
|
|
526
|
-
if (!this.disabled) {
|
|
527
|
-
this.active = true;
|
|
528
|
-
__classPrivateFieldGet(this, _SkyVerticalTabComponent_tabsetService, "f").activateTab(this);
|
|
529
|
-
__classPrivateFieldGet(this, _SkyVerticalTabComponent_changeRef, "f").markForCheck();
|
|
530
|
-
}
|
|
531
|
-
}
|
|
532
|
-
onTabButtonKeyUp(event) {
|
|
533
|
-
/*istanbul ignore else */
|
|
534
|
-
if (event.key) {
|
|
535
|
-
switch (event.key.toUpperCase()) {
|
|
536
|
-
case ' ':
|
|
537
|
-
case 'ENTER':
|
|
538
|
-
this.activateTab();
|
|
539
|
-
event.stopPropagation();
|
|
540
|
-
break;
|
|
541
|
-
/* istanbul ignore next */
|
|
542
|
-
default:
|
|
543
|
-
break;
|
|
544
|
-
}
|
|
545
|
-
}
|
|
546
|
-
}
|
|
547
|
-
onWindowResize() {
|
|
548
|
-
if (this.tabContent) {
|
|
549
|
-
__classPrivateFieldGet(this, _SkyVerticalTabComponent_instances, "m", _SkyVerticalTabComponent_updateBreakpointAndResponsiveClass).call(this);
|
|
550
|
-
}
|
|
551
|
-
}
|
|
552
|
-
tabDeactivated() {
|
|
553
|
-
__classPrivateFieldGet(this, _SkyVerticalTabComponent_changeRef, "f").markForCheck();
|
|
554
|
-
}
|
|
555
|
-
}
|
|
556
|
-
_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_tabIdSvc = new WeakMap(), _SkyVerticalTabComponent_instances = new WeakSet(), _SkyVerticalTabComponent_updateBreakpointAndResponsiveClass = function _SkyVerticalTabComponent_updateBreakpointAndResponsiveClass() {
|
|
557
|
-
if (this.tabContent) {
|
|
558
|
-
const width = __classPrivateFieldGet(this, _SkyVerticalTabComponent_adapterService, "f").getWidth(this.tabContent);
|
|
559
|
-
__classPrivateFieldGet(this, _SkyVerticalTabComponent_verticalTabMediaQueryService, "f").setBreakpointForWidth(width);
|
|
560
|
-
const newBreakpoint = __classPrivateFieldGet(this, _SkyVerticalTabComponent_verticalTabMediaQueryService, "f").current;
|
|
561
|
-
if (newBreakpoint) {
|
|
562
|
-
__classPrivateFieldGet(this, _SkyVerticalTabComponent_adapterService, "f").setResponsiveClass(this.tabContent, newBreakpoint);
|
|
563
|
-
}
|
|
564
|
-
__classPrivateFieldGet(this, _SkyVerticalTabComponent_changeRef, "f").markForCheck();
|
|
565
|
-
}
|
|
566
|
-
};
|
|
567
|
-
SkyVerticalTabComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: SkyVerticalTabComponent, deps: [{ token: SkyVerticalTabsetAdapterService }, { token: i0.ChangeDetectorRef }, { token: SkyVerticalTabsetService }, { token: SkyVerticalTabMediaQueryService }, { token: SkyTabIdService, optional: true }], target: i0.ɵɵFactoryTarget.Component });
|
|
568
|
-
SkyVerticalTabComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.9", 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: [
|
|
569
|
-
SkyVerticalTabMediaQueryService,
|
|
570
|
-
{
|
|
571
|
-
provide: SkyMediaQueryService,
|
|
572
|
-
useExisting: SkyVerticalTabMediaQueryService,
|
|
573
|
-
},
|
|
574
|
-
], 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: i6.λ4, selector: "sky-icon", inputs: ["icon", "iconType", "size", "fixedWidth", "variant"] }, { kind: "directive", type: i1.λ2, selector: "[skyId]", exportAs: ["skyId"] }, { kind: "component", type: i6.λ10, selector: "sky-status-indicator", inputs: ["indicatorType", "descriptionType", "customDescription"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
575
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: SkyVerticalTabComponent, decorators: [{
|
|
576
|
-
type: Component,
|
|
577
|
-
args: [{ selector: 'sky-vertical-tab', providers: [
|
|
578
|
-
SkyVerticalTabMediaQueryService,
|
|
579
|
-
{
|
|
580
|
-
provide: SkyMediaQueryService,
|
|
581
|
-
useExisting: SkyVerticalTabMediaQueryService,
|
|
582
|
-
},
|
|
583
|
-
], 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"] }]
|
|
584
|
-
}], ctorParameters: function () {
|
|
585
|
-
return [{ type: SkyVerticalTabsetAdapterService }, { type: i0.ChangeDetectorRef }, { type: SkyVerticalTabsetService }, { type: SkyVerticalTabMediaQueryService }, { type: SkyTabIdService, decorators: [{
|
|
586
|
-
type: Optional
|
|
587
|
-
}] }];
|
|
588
|
-
}, propDecorators: { active: [{
|
|
589
|
-
type: Input
|
|
590
|
-
}], ariaControls: [{
|
|
591
|
-
type: Input
|
|
592
|
-
}], ariaRole: [{
|
|
593
|
-
type: Input
|
|
594
|
-
}], disabled: [{
|
|
595
|
-
type: Input
|
|
596
|
-
}], errorIndicator: [{
|
|
597
|
-
type: Input
|
|
598
|
-
}], tabHeaderCount: [{
|
|
599
|
-
type: Input
|
|
600
|
-
}], tabHeading: [{
|
|
601
|
-
type: Input
|
|
602
|
-
}], showTabRightArrow: [{
|
|
603
|
-
type: Input
|
|
604
|
-
}], tabId: [{
|
|
605
|
-
type: Input
|
|
606
|
-
}], tabContent: [{
|
|
607
|
-
type: ViewChild,
|
|
608
|
-
args: ['tabContentWrapper']
|
|
609
|
-
}], onWindowResize: [{
|
|
610
|
-
type: HostListener,
|
|
611
|
-
args: ['window:resize']
|
|
612
|
-
}] } });
|
|
613
|
-
|
|
614
|
-
var _SkyVerticalTabsetGroupComponent_instances, _SkyVerticalTabsetGroupComponent_ngUnsubscribe, _SkyVerticalTabsetGroupComponent_tabService, _SkyVerticalTabsetGroupComponent_changeRef, _SkyVerticalTabsetGroupComponent__disabled, _SkyVerticalTabsetGroupComponent__open, _SkyVerticalTabsetGroupComponent_updateSlideDirection;
|
|
615
|
-
class SkyVerticalTabsetGroupComponent {
|
|
616
|
-
/**
|
|
617
|
-
* Whether to disable the ability to expand and collapse the group.
|
|
618
|
-
* @default false
|
|
619
|
-
*/
|
|
620
|
-
set disabled(value) {
|
|
621
|
-
__classPrivateFieldSet(this, _SkyVerticalTabsetGroupComponent__disabled, value, "f");
|
|
622
|
-
__classPrivateFieldGet(this, _SkyVerticalTabsetGroupComponent_instances, "m", _SkyVerticalTabsetGroupComponent_updateSlideDirection).call(this, false);
|
|
623
|
-
}
|
|
624
|
-
get disabled() {
|
|
625
|
-
return __classPrivateFieldGet(this, _SkyVerticalTabsetGroupComponent__disabled, "f");
|
|
626
|
-
}
|
|
627
|
-
/**
|
|
628
|
-
* Whether the collapsible group is expanded.
|
|
629
|
-
* @default false
|
|
630
|
-
*/
|
|
631
|
-
set open(value) {
|
|
632
|
-
__classPrivateFieldSet(this, _SkyVerticalTabsetGroupComponent__open, value, "f");
|
|
633
|
-
__classPrivateFieldGet(this, _SkyVerticalTabsetGroupComponent_instances, "m", _SkyVerticalTabsetGroupComponent_updateSlideDirection).call(this, false);
|
|
634
|
-
}
|
|
635
|
-
get open() {
|
|
636
|
-
return __classPrivateFieldGet(this, _SkyVerticalTabsetGroupComponent__open, "f");
|
|
637
|
-
}
|
|
638
|
-
constructor(tabService, changeRef) {
|
|
639
|
-
_SkyVerticalTabsetGroupComponent_instances.add(this);
|
|
640
|
-
this.animationDisabled = false;
|
|
641
|
-
this.slideDirection = 'up';
|
|
642
|
-
_SkyVerticalTabsetGroupComponent_ngUnsubscribe.set(this, new Subject());
|
|
643
|
-
_SkyVerticalTabsetGroupComponent_tabService.set(this, void 0);
|
|
644
|
-
_SkyVerticalTabsetGroupComponent_changeRef.set(this, void 0);
|
|
645
|
-
_SkyVerticalTabsetGroupComponent__disabled.set(this, void 0);
|
|
646
|
-
_SkyVerticalTabsetGroupComponent__open.set(this, void 0);
|
|
647
|
-
this.tabClicked = () => {
|
|
648
|
-
__classPrivateFieldGet(this, _SkyVerticalTabsetGroupComponent_changeRef, "f").markForCheck();
|
|
649
|
-
};
|
|
650
|
-
this.tabsHidden = () => {
|
|
651
|
-
// Angular will sometimes place the animation into the "void" state when tabs are hidden. Update our internal variable to reflect that.
|
|
652
|
-
this.slideDirection = 'void';
|
|
653
|
-
__classPrivateFieldGet(this, _SkyVerticalTabsetGroupComponent_changeRef, "f").markForCheck();
|
|
654
|
-
};
|
|
655
|
-
this.tabsShown = () => {
|
|
656
|
-
// Set the animation back up so that the "void" state is returned to where it was prior to the tabs being hidden.
|
|
657
|
-
// This will be instantaneous due to there not being a "void -> *" state on the slide animation.
|
|
658
|
-
__classPrivateFieldGet(this, _SkyVerticalTabsetGroupComponent_instances, "m", _SkyVerticalTabsetGroupComponent_updateSlideDirection).call(this, true);
|
|
659
|
-
__classPrivateFieldGet(this, _SkyVerticalTabsetGroupComponent_changeRef, "f").markForCheck();
|
|
660
|
-
};
|
|
661
|
-
__classPrivateFieldSet(this, _SkyVerticalTabsetGroupComponent_tabService, tabService, "f");
|
|
662
|
-
__classPrivateFieldSet(this, _SkyVerticalTabsetGroupComponent_changeRef, changeRef, "f");
|
|
663
|
-
}
|
|
664
|
-
ngOnInit() {
|
|
665
|
-
__classPrivateFieldGet(this, _SkyVerticalTabsetGroupComponent_tabService, "f").hidingTabs
|
|
666
|
-
.pipe(takeUntil(__classPrivateFieldGet(this, _SkyVerticalTabsetGroupComponent_ngUnsubscribe, "f")))
|
|
667
|
-
.subscribe(this.tabsHidden);
|
|
668
|
-
__classPrivateFieldGet(this, _SkyVerticalTabsetGroupComponent_tabService, "f").showingTabs
|
|
669
|
-
.pipe(takeUntil(__classPrivateFieldGet(this, _SkyVerticalTabsetGroupComponent_ngUnsubscribe, "f")))
|
|
670
|
-
.subscribe(this.tabsShown);
|
|
671
|
-
__classPrivateFieldGet(this, _SkyVerticalTabsetGroupComponent_tabService, "f").tabClicked
|
|
672
|
-
.pipe(takeUntil(__classPrivateFieldGet(this, _SkyVerticalTabsetGroupComponent_ngUnsubscribe, "f")))
|
|
673
|
-
.subscribe(this.tabClicked);
|
|
674
|
-
}
|
|
675
|
-
ngOnDestroy() {
|
|
676
|
-
__classPrivateFieldGet(this, _SkyVerticalTabsetGroupComponent_ngUnsubscribe, "f").next();
|
|
677
|
-
__classPrivateFieldGet(this, _SkyVerticalTabsetGroupComponent_ngUnsubscribe, "f").complete();
|
|
678
|
-
}
|
|
679
|
-
updateSlideDirection(event) {
|
|
680
|
-
this.slideDirection = event.toState;
|
|
681
|
-
}
|
|
682
|
-
toggleMenuOpen() {
|
|
683
|
-
if (!this.disabled) {
|
|
684
|
-
this.open = !this.open;
|
|
685
|
-
}
|
|
686
|
-
__classPrivateFieldGet(this, _SkyVerticalTabsetGroupComponent_instances, "m", _SkyVerticalTabsetGroupComponent_updateSlideDirection).call(this, true);
|
|
687
|
-
__classPrivateFieldGet(this, _SkyVerticalTabsetGroupComponent_changeRef, "f").markForCheck();
|
|
688
|
-
}
|
|
689
|
-
subMenuOpen() {
|
|
690
|
-
return !!this.tabs && this.tabs.find((t) => !!t.active) !== undefined;
|
|
691
|
-
}
|
|
692
|
-
}
|
|
693
|
-
_SkyVerticalTabsetGroupComponent_ngUnsubscribe = new WeakMap(), _SkyVerticalTabsetGroupComponent_tabService = new WeakMap(), _SkyVerticalTabsetGroupComponent_changeRef = new WeakMap(), _SkyVerticalTabsetGroupComponent__disabled = new WeakMap(), _SkyVerticalTabsetGroupComponent__open = new WeakMap(), _SkyVerticalTabsetGroupComponent_instances = new WeakSet(), _SkyVerticalTabsetGroupComponent_updateSlideDirection = function _SkyVerticalTabsetGroupComponent_updateSlideDirection(animate) {
|
|
694
|
-
this.animationDisabled = !animate;
|
|
695
|
-
this.slideDirection = this.open && !this.disabled ? 'down' : 'up';
|
|
696
|
-
};
|
|
697
|
-
SkyVerticalTabsetGroupComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: SkyVerticalTabsetGroupComponent, deps: [{ token: SkyVerticalTabsetService }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
|
|
698
|
-
SkyVerticalTabsetGroupComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.9", 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':\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 [@.disabled]=\"animationDisabled\"\n [@skyAnimationSlide]=\"slideDirection\"\n (@skyAnimationSlide.done)=\"updateSlideDirection($event)\"\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: i6.λ15, selector: "sky-expansion-indicator", inputs: ["direction"] }], animations: [skyAnimationSlide], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
699
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: SkyVerticalTabsetGroupComponent, decorators: [{
|
|
700
|
-
type: Component,
|
|
701
|
-
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':\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 [@.disabled]=\"animationDisabled\"\n [@skyAnimationSlide]=\"slideDirection\"\n (@skyAnimationSlide.done)=\"updateSlideDirection($event)\"\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"] }]
|
|
702
|
-
}], ctorParameters: function () { return [{ type: SkyVerticalTabsetService }, { type: i0.ChangeDetectorRef }]; }, propDecorators: { disabled: [{
|
|
703
|
-
type: Input
|
|
704
|
-
}], groupHeading: [{
|
|
705
|
-
type: Input
|
|
706
|
-
}], open: [{
|
|
707
|
-
type: Input
|
|
708
|
-
}], tabs: [{
|
|
709
|
-
type: ContentChildren,
|
|
710
|
-
args: [SkyVerticalTabComponent]
|
|
711
|
-
}] } });
|
|
712
|
-
|
|
713
|
-
var _SkyVerticalTabsetComponent_ngUnsubscribe, _SkyVerticalTabsetComponent__ariaRole, _SkyVerticalTabsetComponent_resources, _SkyVerticalTabsetComponent_changeRef, _SkyVerticalTabsetComponent_tabIdSvc;
|
|
714
|
-
class SkyVerticalTabsetComponent {
|
|
715
|
-
/**
|
|
716
|
-
* The ARIA role for the vertical tabset
|
|
717
|
-
* [to support accessibility](https://developer.blackbaud.com/skyux/learn/accessibility)
|
|
718
|
-
* by indicating how the tabset functions and what it controls. For information about how
|
|
719
|
-
* an ARIA role indicates what an item represents on a web page, see the
|
|
720
|
-
* [WAI-ARIA roles model](https://www.w3.org/WAI/PF/aria/#roles).
|
|
721
|
-
* @default "tablist"
|
|
722
|
-
* @deprecated Any other value than `tablist` could lead to a poor user experience for users with assistive technology.
|
|
723
|
-
* In the next major version, this property will be automatically set to `tablist`.
|
|
724
|
-
*/
|
|
725
|
-
get ariaRole() {
|
|
726
|
-
return __classPrivateFieldGet(this, _SkyVerticalTabsetComponent__ariaRole, "f");
|
|
727
|
-
}
|
|
728
|
-
set ariaRole(value) {
|
|
729
|
-
__classPrivateFieldSet(this, _SkyVerticalTabsetComponent__ariaRole, value !== null && value !== void 0 ? value : 'tablist', "f");
|
|
730
|
-
}
|
|
731
|
-
constructor(adapterService, tabService, resources, changeRef, tabIdSvc) {
|
|
732
|
-
this.adapterService = adapterService;
|
|
733
|
-
this.tabService = tabService;
|
|
734
|
-
/**
|
|
735
|
-
* Whether the vertical tabset loads tab content during initialization so that it
|
|
736
|
-
* displays content without moving around elements in the content container.
|
|
737
|
-
* @default false
|
|
738
|
-
*/
|
|
739
|
-
this.maintainTabContent = false;
|
|
740
|
-
/**
|
|
741
|
-
* Fires when the active tab changes. Emits the index of the active tab. The
|
|
742
|
-
* index is based on the tab's position when it loads.
|
|
743
|
-
*/
|
|
744
|
-
this.activeChange = new EventEmitter();
|
|
745
|
-
this.isMobile = false;
|
|
746
|
-
_SkyVerticalTabsetComponent_ngUnsubscribe.set(this, new Subject());
|
|
747
|
-
_SkyVerticalTabsetComponent__ariaRole.set(this, 'tablist');
|
|
748
|
-
_SkyVerticalTabsetComponent_resources.set(this, void 0);
|
|
749
|
-
_SkyVerticalTabsetComponent_changeRef.set(this, void 0);
|
|
750
|
-
_SkyVerticalTabsetComponent_tabIdSvc.set(this, void 0);
|
|
751
|
-
__classPrivateFieldSet(this, _SkyVerticalTabsetComponent_resources, resources, "f");
|
|
752
|
-
__classPrivateFieldSet(this, _SkyVerticalTabsetComponent_changeRef, changeRef, "f");
|
|
753
|
-
__classPrivateFieldSet(this, _SkyVerticalTabsetComponent_tabIdSvc, tabIdSvc, "f");
|
|
754
|
-
__classPrivateFieldGet(this, _SkyVerticalTabsetComponent_tabIdSvc, "f").ids.pipe(takeUntil(__classPrivateFieldGet(this, _SkyVerticalTabsetComponent_ngUnsubscribe, "f"))).subscribe((ids) => {
|
|
755
|
-
this.ariaOwns = ids.join(' ') || undefined;
|
|
756
|
-
__classPrivateFieldGet(this, _SkyVerticalTabsetComponent_changeRef, "f").markForCheck();
|
|
757
|
-
});
|
|
758
|
-
}
|
|
759
|
-
ngOnInit() {
|
|
760
|
-
this.tabService.maintainTabContent = this.maintainTabContent;
|
|
761
|
-
this.tabService.indexChanged
|
|
762
|
-
.pipe(takeUntil(__classPrivateFieldGet(this, _SkyVerticalTabsetComponent_ngUnsubscribe, "f")))
|
|
763
|
-
.subscribe((index) => {
|
|
764
|
-
this.activeChange.emit(index);
|
|
765
|
-
if (this.contentWrapper) {
|
|
766
|
-
this.adapterService.scrollToContentTop(this.contentWrapper);
|
|
767
|
-
}
|
|
768
|
-
__classPrivateFieldGet(this, _SkyVerticalTabsetComponent_changeRef, "f").markForCheck();
|
|
769
|
-
});
|
|
770
|
-
this.tabService.switchingMobile
|
|
771
|
-
.pipe(takeUntil(__classPrivateFieldGet(this, _SkyVerticalTabsetComponent_ngUnsubscribe, "f")))
|
|
772
|
-
.subscribe((mobile) => {
|
|
773
|
-
this.isMobile = mobile;
|
|
774
|
-
__classPrivateFieldGet(this, _SkyVerticalTabsetComponent_changeRef, "f").markForCheck();
|
|
775
|
-
});
|
|
776
|
-
if (this.tabService.isMobile()) {
|
|
777
|
-
this.isMobile = true;
|
|
778
|
-
this.tabService.animationContentVisibleState = VISIBLE_STATE;
|
|
779
|
-
__classPrivateFieldGet(this, _SkyVerticalTabsetComponent_changeRef, "f").markForCheck();
|
|
780
|
-
}
|
|
781
|
-
if (!this.showTabsText) {
|
|
782
|
-
__classPrivateFieldGet(this, _SkyVerticalTabsetComponent_resources, "f")
|
|
783
|
-
.getString('skyux_vertical_tabs_show_tabs_text')
|
|
784
|
-
.pipe(take(1))
|
|
785
|
-
.subscribe((resource) => {
|
|
786
|
-
/* sanity check */
|
|
787
|
-
/* istanbul ignore else */
|
|
788
|
-
if (!this.showTabsText) {
|
|
789
|
-
this.showTabsText = resource;
|
|
790
|
-
}
|
|
791
|
-
});
|
|
792
|
-
}
|
|
793
|
-
}
|
|
794
|
-
ngAfterViewChecked() {
|
|
795
|
-
this.tabService.content = this.content;
|
|
796
|
-
this.tabService.updateContent();
|
|
797
|
-
}
|
|
798
|
-
ngOnDestroy() {
|
|
799
|
-
__classPrivateFieldGet(this, _SkyVerticalTabsetComponent_ngUnsubscribe, "f").next();
|
|
800
|
-
__classPrivateFieldGet(this, _SkyVerticalTabsetComponent_ngUnsubscribe, "f").complete();
|
|
801
|
-
}
|
|
802
|
-
}
|
|
803
|
-
_SkyVerticalTabsetComponent_ngUnsubscribe = new WeakMap(), _SkyVerticalTabsetComponent__ariaRole = new WeakMap(), _SkyVerticalTabsetComponent_resources = new WeakMap(), _SkyVerticalTabsetComponent_changeRef = new WeakMap(), _SkyVerticalTabsetComponent_tabIdSvc = new WeakMap();
|
|
804
|
-
SkyVerticalTabsetComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: SkyVerticalTabsetComponent, deps: [{ token: SkyVerticalTabsetAdapterService }, { token: SkyVerticalTabsetService }, { token: i3.SkyLibResourcesService }, { token: i0.ChangeDetectorRef }, { token: SkyTabIdService }], target: i0.ɵɵFactoryTarget.Component });
|
|
805
|
-
SkyVerticalTabsetComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.9", type: SkyVerticalTabsetComponent, selector: "sky-vertical-tabset", inputs: { showTabsText: "showTabsText", ariaLabel: "ariaLabel", ariaLabelledBy: "ariaLabelledBy", ariaRole: "ariaRole", maintainTabContent: "maintainTabContent" }, outputs: { activeChange: "activeChange" }, providers: [SkyTabIdService, 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\">\n <!--\n ARIA rules do not allow tabpanel elements to be children of a tablist element.\n However, the markup for each sky-vertical-tab component includes both the tab button\n and its panel, making the panel element a child of its tablist. Moreover, our\n sky-vertical-tab components can be grouped within collapsible containers, which also\n violates accessibility rules because only tab buttons can be children of a tablist.\n To address this, we create an empty tablist element with an aria-owns attribute,\n pointing to each tab element individually. That way, we don't have to worry about the\n structure for each sky-vertical-tab component in order to satisfy accessibility\n guidelines.\n -->\n <span\n aria-orientation=\"vertical\"\n class=\"sky-vertical-tabset-tablist\"\n [attr.aria-label]=\"ariaLabel\"\n [attr.aria-labelledby]=\"ariaLabelledBy\"\n [attr.aria-owns]=\"ariaOwns\"\n [attr.role]=\"isMobile ? undefined : ariaRole\"\n ></span>\n <div\n *ngIf=\"maintainTabContent || tabService.tabsVisible()\"\n class=\"sky-vertical-tabset-group-container\"\n [@tabGroupEnter]=\"tabService.animationTabsVisibleState\"\n [ngClass]=\"{ 'sky-vertical-tabset-hidden': !tabService.tabsVisible() }\"\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: i6.λ4, selector: "sky-icon", inputs: ["icon", "iconType", "size", "fixedWidth", "variant"] }], animations: [
|
|
806
|
-
trigger('tabGroupEnter', [
|
|
807
|
-
transition(`${HIDDEN_STATE} => ${VISIBLE_STATE}`, [
|
|
808
|
-
style({ transform: 'translate(-100%)' }),
|
|
809
|
-
animate('150ms ease-in'),
|
|
810
|
-
]),
|
|
811
|
-
]),
|
|
812
|
-
trigger('contentEnter', [
|
|
813
|
-
transition(`${HIDDEN_STATE} => ${VISIBLE_STATE}`, [
|
|
814
|
-
style({ transform: 'translate(100%)' }),
|
|
815
|
-
animate('150ms ease-in'),
|
|
816
|
-
]),
|
|
817
|
-
]),
|
|
818
|
-
], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
819
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: SkyVerticalTabsetComponent, decorators: [{
|
|
820
|
-
type: Component,
|
|
821
|
-
args: [{ selector: 'sky-vertical-tabset', providers: [SkyTabIdService, SkyVerticalTabsetService], changeDetection: ChangeDetectionStrategy.OnPush, animations: [
|
|
822
|
-
trigger('tabGroupEnter', [
|
|
823
|
-
transition(`${HIDDEN_STATE} => ${VISIBLE_STATE}`, [
|
|
824
|
-
style({ transform: 'translate(-100%)' }),
|
|
825
|
-
animate('150ms ease-in'),
|
|
826
|
-
]),
|
|
827
|
-
]),
|
|
828
|
-
trigger('contentEnter', [
|
|
829
|
-
transition(`${HIDDEN_STATE} => ${VISIBLE_STATE}`, [
|
|
830
|
-
style({ transform: 'translate(100%)' }),
|
|
831
|
-
animate('150ms ease-in'),
|
|
832
|
-
]),
|
|
833
|
-
]),
|
|
834
|
-
], template: "<div class=\"sky-vertical-tabset\">\n <!--\n ARIA rules do not allow tabpanel elements to be children of a tablist element.\n However, the markup for each sky-vertical-tab component includes both the tab button\n and its panel, making the panel element a child of its tablist. Moreover, our\n sky-vertical-tab components can be grouped within collapsible containers, which also\n violates accessibility rules because only tab buttons can be children of a tablist.\n To address this, we create an empty tablist element with an aria-owns attribute,\n pointing to each tab element individually. That way, we don't have to worry about the\n structure for each sky-vertical-tab component in order to satisfy accessibility\n guidelines.\n -->\n <span\n aria-orientation=\"vertical\"\n class=\"sky-vertical-tabset-tablist\"\n [attr.aria-label]=\"ariaLabel\"\n [attr.aria-labelledby]=\"ariaLabelledBy\"\n [attr.aria-owns]=\"ariaOwns\"\n [attr.role]=\"isMobile ? undefined : ariaRole\"\n ></span>\n <div\n *ngIf=\"maintainTabContent || tabService.tabsVisible()\"\n class=\"sky-vertical-tabset-group-container\"\n [@tabGroupEnter]=\"tabService.animationTabsVisibleState\"\n [ngClass]=\"{ 'sky-vertical-tabset-hidden': !tabService.tabsVisible() }\"\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"] }]
|
|
835
|
-
}], ctorParameters: function () { return [{ type: SkyVerticalTabsetAdapterService }, { type: SkyVerticalTabsetService }, { type: i3.SkyLibResourcesService }, { type: i0.ChangeDetectorRef }, { type: SkyTabIdService }]; }, propDecorators: { showTabsText: [{
|
|
836
|
-
type: Input
|
|
837
|
-
}], ariaLabel: [{
|
|
838
|
-
type: Input
|
|
839
|
-
}], ariaLabelledBy: [{
|
|
840
|
-
type: Input
|
|
841
|
-
}], ariaRole: [{
|
|
842
|
-
type: Input
|
|
843
|
-
}], maintainTabContent: [{
|
|
844
|
-
type: Input
|
|
845
|
-
}], activeChange: [{
|
|
846
|
-
type: Output
|
|
847
|
-
}], tabGroups: [{
|
|
848
|
-
type: ViewChild,
|
|
849
|
-
args: ['groupContainerWrapper']
|
|
850
|
-
}], content: [{
|
|
851
|
-
type: ViewChild,
|
|
852
|
-
args: ['skySideContent']
|
|
853
|
-
}], contentWrapper: [{
|
|
854
|
-
type: ViewChild,
|
|
855
|
-
args: ['contentContainerWrapper']
|
|
856
|
-
}] } });
|
|
857
|
-
|
|
858
|
-
class SkyVerticalTabsetModule {
|
|
859
|
-
}
|
|
860
|
-
SkyVerticalTabsetModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: SkyVerticalTabsetModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
861
|
-
SkyVerticalTabsetModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "15.2.9", ngImport: i0, type: SkyVerticalTabsetModule, declarations: [SkyVerticalTabsetComponent,
|
|
862
|
-
SkyVerticalTabsetGroupComponent,
|
|
863
|
-
SkyVerticalTabComponent], imports: [CommonModule,
|
|
864
|
-
SkyIconModule,
|
|
865
|
-
SkyIdModule,
|
|
866
|
-
SkyExpansionIndicatorModule,
|
|
867
|
-
SkyStatusIndicatorModule,
|
|
868
|
-
SkyTabsResourcesModule,
|
|
869
|
-
SkyThemeModule], exports: [SkyVerticalTabsetComponent,
|
|
870
|
-
SkyVerticalTabsetGroupComponent,
|
|
871
|
-
SkyVerticalTabComponent] });
|
|
872
|
-
SkyVerticalTabsetModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: SkyVerticalTabsetModule, providers: [SkyVerticalTabsetAdapterService], imports: [CommonModule,
|
|
873
|
-
SkyIconModule,
|
|
874
|
-
SkyIdModule,
|
|
875
|
-
SkyExpansionIndicatorModule,
|
|
876
|
-
SkyStatusIndicatorModule,
|
|
877
|
-
SkyTabsResourcesModule,
|
|
878
|
-
SkyThemeModule] });
|
|
879
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: SkyVerticalTabsetModule, decorators: [{
|
|
880
|
-
type: NgModule,
|
|
881
|
-
args: [{
|
|
882
|
-
declarations: [
|
|
883
|
-
SkyVerticalTabsetComponent,
|
|
884
|
-
SkyVerticalTabsetGroupComponent,
|
|
885
|
-
SkyVerticalTabComponent,
|
|
886
|
-
],
|
|
887
|
-
imports: [
|
|
888
|
-
CommonModule,
|
|
889
|
-
SkyIconModule,
|
|
890
|
-
SkyIdModule,
|
|
891
|
-
SkyExpansionIndicatorModule,
|
|
892
|
-
SkyStatusIndicatorModule,
|
|
893
|
-
SkyTabsResourcesModule,
|
|
894
|
-
SkyThemeModule,
|
|
895
|
-
],
|
|
896
|
-
providers: [SkyVerticalTabsetAdapterService],
|
|
897
|
-
exports: [
|
|
898
|
-
SkyVerticalTabsetComponent,
|
|
899
|
-
SkyVerticalTabsetGroupComponent,
|
|
900
|
-
SkyVerticalTabComponent,
|
|
901
|
-
],
|
|
902
|
-
}]
|
|
903
|
-
}] });
|
|
904
|
-
|
|
905
|
-
class SkySectionedFormService {
|
|
906
|
-
constructor() {
|
|
907
|
-
/**
|
|
908
|
-
* @internal
|
|
909
|
-
*/
|
|
910
|
-
this.invalidChange = new BehaviorSubject(undefined);
|
|
911
|
-
/**
|
|
912
|
-
* @internal
|
|
913
|
-
*/
|
|
914
|
-
this.requiredChange = new BehaviorSubject(undefined);
|
|
915
|
-
}
|
|
916
|
-
/**
|
|
917
|
-
* Sets the current section's invalid state based on the `isInvalid` parameter.
|
|
918
|
-
* This method is used within a `sky-sectioned-form-section` element.
|
|
919
|
-
*/
|
|
920
|
-
invalidFieldChanged(isInvalid) {
|
|
921
|
-
this.invalidChange.next(isInvalid);
|
|
922
|
-
}
|
|
923
|
-
/**
|
|
924
|
-
* Sets the current section's required state based on the `isRequired` parameter.
|
|
925
|
-
* This method is used within a `sky-sectioned-form-section` element.
|
|
926
|
-
*/
|
|
927
|
-
requiredFieldChanged(isRequired) {
|
|
928
|
-
this.requiredChange.next(isRequired);
|
|
929
|
-
}
|
|
930
|
-
}
|
|
931
|
-
SkySectionedFormService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: SkySectionedFormService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
932
|
-
SkySectionedFormService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: SkySectionedFormService });
|
|
933
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: SkySectionedFormService, decorators: [{
|
|
934
|
-
type: Injectable
|
|
935
|
-
}] });
|
|
936
|
-
|
|
937
|
-
var _SkySectionedFormSectionComponent_ngUnsubscribe, _SkySectionedFormSectionComponent_sectionedFormService, _SkySectionedFormSectionComponent_tabsetService, _SkySectionedFormSectionComponent_changeRef;
|
|
938
|
-
let nextId$1 = 0;
|
|
939
|
-
/**
|
|
940
|
-
* Creates an individual form to display as a section within the sectioned form.
|
|
941
|
-
*/
|
|
942
|
-
class SkySectionedFormSectionComponent {
|
|
943
|
-
constructor(sectionedFormService, tabsetService, changeRef) {
|
|
944
|
-
this.sectionTabId = `sky-sectioned-form-tab-${++nextId$1}`;
|
|
945
|
-
this.sectionContentId = `sky-sectioned-form-section-${++nextId$1}`;
|
|
946
|
-
/**
|
|
947
|
-
* Whether the section is active when the form loads.
|
|
948
|
-
* @default false
|
|
949
|
-
*/
|
|
950
|
-
this.active = false;
|
|
951
|
-
_SkySectionedFormSectionComponent_ngUnsubscribe.set(this, new Subject());
|
|
952
|
-
_SkySectionedFormSectionComponent_sectionedFormService.set(this, void 0);
|
|
953
|
-
_SkySectionedFormSectionComponent_tabsetService.set(this, void 0);
|
|
954
|
-
_SkySectionedFormSectionComponent_changeRef.set(this, void 0);
|
|
955
|
-
__classPrivateFieldSet(this, _SkySectionedFormSectionComponent_sectionedFormService, sectionedFormService, "f");
|
|
956
|
-
__classPrivateFieldSet(this, _SkySectionedFormSectionComponent_tabsetService, tabsetService, "f");
|
|
957
|
-
__classPrivateFieldSet(this, _SkySectionedFormSectionComponent_changeRef, changeRef, "f");
|
|
958
|
-
}
|
|
959
|
-
ngOnInit() {
|
|
960
|
-
__classPrivateFieldGet(this, _SkySectionedFormSectionComponent_changeRef, "f").detectChanges();
|
|
961
|
-
__classPrivateFieldGet(this, _SkySectionedFormSectionComponent_tabsetService, "f").switchingMobile.subscribe((mobile) => {
|
|
962
|
-
__classPrivateFieldGet(this, _SkySectionedFormSectionComponent_changeRef, "f").detectChanges();
|
|
963
|
-
});
|
|
964
|
-
__classPrivateFieldGet(this, _SkySectionedFormSectionComponent_sectionedFormService, "f").requiredChange
|
|
965
|
-
.pipe(takeUntil(__classPrivateFieldGet(this, _SkySectionedFormSectionComponent_ngUnsubscribe, "f")))
|
|
966
|
-
.subscribe((required) => (this.fieldRequired = required));
|
|
967
|
-
__classPrivateFieldGet(this, _SkySectionedFormSectionComponent_sectionedFormService, "f").invalidChange
|
|
968
|
-
.pipe(takeUntil(__classPrivateFieldGet(this, _SkySectionedFormSectionComponent_ngUnsubscribe, "f")))
|
|
969
|
-
.subscribe((invalid) => (this.fieldInvalid = invalid));
|
|
970
|
-
}
|
|
971
|
-
ngOnDestroy() {
|
|
972
|
-
__classPrivateFieldGet(this, _SkySectionedFormSectionComponent_ngUnsubscribe, "f").next();
|
|
973
|
-
__classPrivateFieldGet(this, _SkySectionedFormSectionComponent_ngUnsubscribe, "f").complete();
|
|
974
|
-
}
|
|
975
|
-
}
|
|
976
|
-
_SkySectionedFormSectionComponent_ngUnsubscribe = new WeakMap(), _SkySectionedFormSectionComponent_sectionedFormService = new WeakMap(), _SkySectionedFormSectionComponent_tabsetService = new WeakMap(), _SkySectionedFormSectionComponent_changeRef = new WeakMap();
|
|
977
|
-
SkySectionedFormSectionComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: SkySectionedFormSectionComponent, deps: [{ token: SkySectionedFormService }, { token: SkyVerticalTabsetService }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
|
|
978
|
-
SkySectionedFormSectionComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.9", 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:var(--sky-highlight-color-danger);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"] }] });
|
|
979
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: SkySectionedFormSectionComponent, decorators: [{
|
|
980
|
-
type: Component,
|
|
981
|
-
args: [{ selector: 'sky-sectioned-form-section', providers: [SkySectionedFormService], 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:var(--sky-highlight-color-danger);padding-left:5px}\n"] }]
|
|
982
|
-
}], ctorParameters: function () { return [{ type: SkySectionedFormService }, { type: SkyVerticalTabsetService }, { type: i0.ChangeDetectorRef }]; }, propDecorators: { heading: [{
|
|
983
|
-
type: Input
|
|
984
|
-
}], itemCount: [{
|
|
985
|
-
type: Input
|
|
986
|
-
}], active: [{
|
|
987
|
-
type: Input
|
|
988
|
-
}], tab: [{
|
|
989
|
-
type: ViewChild,
|
|
990
|
-
args: [SkyVerticalTabComponent]
|
|
991
|
-
}] } });
|
|
992
|
-
|
|
993
|
-
var SkySectionedFormMessageType;
|
|
994
|
-
(function (SkySectionedFormMessageType) {
|
|
995
|
-
SkySectionedFormMessageType[SkySectionedFormMessageType["ShowTabs"] = 1] = "ShowTabs";
|
|
996
|
-
})(SkySectionedFormMessageType || (SkySectionedFormMessageType = {}));
|
|
997
|
-
|
|
998
|
-
var _SkySectionedFormComponent_instances, _SkySectionedFormComponent_ngUnsubscribe, _SkySectionedFormComponent_messageStreamSub, _SkySectionedFormComponent_changeRef, _SkySectionedFormComponent_tabIdSvc, _SkySectionedFormComponent_logger, _SkySectionedFormComponent__messageStream, _SkySectionedFormComponent_showTabs, _SkySectionedFormComponent_initMessageStream;
|
|
999
|
-
/**
|
|
1000
|
-
* Creates a container for the sectioned forms.
|
|
1001
|
-
*/
|
|
1002
|
-
class SkySectionedFormComponent {
|
|
1003
|
-
set messageStream(value) {
|
|
1004
|
-
__classPrivateFieldSet(this, _SkySectionedFormComponent__messageStream, value || new Subject(), "f");
|
|
1005
|
-
__classPrivateFieldGet(this, _SkySectionedFormComponent_instances, "m", _SkySectionedFormComponent_initMessageStream).call(this);
|
|
1006
|
-
}
|
|
1007
|
-
get messageStream() {
|
|
1008
|
-
return __classPrivateFieldGet(this, _SkySectionedFormComponent__messageStream, "f");
|
|
1009
|
-
}
|
|
1010
|
-
constructor(tabService, changeRef, tabIdSvc, logger) {
|
|
1011
|
-
this.tabService = tabService;
|
|
1012
|
-
_SkySectionedFormComponent_instances.add(this);
|
|
1013
|
-
/**
|
|
1014
|
-
* Whether the sectioned form loads section content during initialization so that it
|
|
1015
|
-
* displays content without moving around elements in the content container.
|
|
1016
|
-
* @default false
|
|
1017
|
-
*/
|
|
1018
|
-
this.maintainSectionContent = false;
|
|
1019
|
-
/**
|
|
1020
|
-
* Fires when the active tab changes and emits the index of the active
|
|
1021
|
-
* section. The index is based on the section's position when the form loads.
|
|
1022
|
-
*/
|
|
1023
|
-
this.indexChanged = new EventEmitter();
|
|
1024
|
-
/**
|
|
1025
|
-
* Fires when the sectioned form tabs are shown or hidden.
|
|
1026
|
-
*/
|
|
1027
|
-
this.tabsVisibleChanged = new EventEmitter();
|
|
1028
|
-
this.ariaRole = 'tablist';
|
|
1029
|
-
_SkySectionedFormComponent_ngUnsubscribe.set(this, new Subject());
|
|
1030
|
-
_SkySectionedFormComponent_messageStreamSub.set(this, void 0);
|
|
1031
|
-
_SkySectionedFormComponent_changeRef.set(this, void 0);
|
|
1032
|
-
_SkySectionedFormComponent_tabIdSvc.set(this, void 0);
|
|
1033
|
-
_SkySectionedFormComponent_logger.set(this, void 0);
|
|
1034
|
-
_SkySectionedFormComponent__messageStream.set(this, new Subject());
|
|
1035
|
-
__classPrivateFieldSet(this, _SkySectionedFormComponent_changeRef, changeRef, "f");
|
|
1036
|
-
__classPrivateFieldSet(this, _SkySectionedFormComponent_tabIdSvc, tabIdSvc, "f");
|
|
1037
|
-
__classPrivateFieldSet(this, _SkySectionedFormComponent_logger, logger, "f");
|
|
1038
|
-
__classPrivateFieldGet(this, _SkySectionedFormComponent_instances, "m", _SkySectionedFormComponent_initMessageStream).call(this);
|
|
1039
|
-
__classPrivateFieldGet(this, _SkySectionedFormComponent_tabIdSvc, "f").ids.pipe(takeUntil(__classPrivateFieldGet(this, _SkySectionedFormComponent_ngUnsubscribe, "f"))).subscribe((ids) => {
|
|
1040
|
-
this.ariaOwns = ids.join(' ') || undefined;
|
|
1041
|
-
__classPrivateFieldGet(this, _SkySectionedFormComponent_changeRef, "f").markForCheck();
|
|
1042
|
-
});
|
|
1043
|
-
}
|
|
1044
|
-
ngOnInit() {
|
|
1045
|
-
this.tabService.maintainTabContent = this.maintainSectionContent;
|
|
1046
|
-
this.tabService.indexChanged
|
|
1047
|
-
.pipe(takeUntil(__classPrivateFieldGet(this, _SkySectionedFormComponent_ngUnsubscribe, "f")))
|
|
1048
|
-
.subscribe((index) => {
|
|
1049
|
-
this.indexChanged.emit(index);
|
|
1050
|
-
__classPrivateFieldGet(this, _SkySectionedFormComponent_changeRef, "f").markForCheck();
|
|
1051
|
-
});
|
|
1052
|
-
this.tabService.switchingMobile
|
|
1053
|
-
.pipe(takeUntil(__classPrivateFieldGet(this, _SkySectionedFormComponent_ngUnsubscribe, "f")))
|
|
1054
|
-
.subscribe((mobile) => {
|
|
1055
|
-
if (!mobile) {
|
|
1056
|
-
this.ariaRole = 'tablist';
|
|
1057
|
-
}
|
|
1058
|
-
else {
|
|
1059
|
-
this.ariaRole = undefined;
|
|
1060
|
-
}
|
|
1061
|
-
__classPrivateFieldGet(this, _SkySectionedFormComponent_changeRef, "f").markForCheck();
|
|
1062
|
-
});
|
|
1063
|
-
this.tabService.hidingTabs
|
|
1064
|
-
.pipe(takeUntil(__classPrivateFieldGet(this, _SkySectionedFormComponent_ngUnsubscribe, "f")))
|
|
1065
|
-
.subscribe(() => {
|
|
1066
|
-
this.tabsVisibleChanged.emit(false);
|
|
1067
|
-
});
|
|
1068
|
-
this.tabService.showingTabs
|
|
1069
|
-
.pipe(takeUntil(__classPrivateFieldGet(this, _SkySectionedFormComponent_ngUnsubscribe, "f")))
|
|
1070
|
-
.subscribe(() => {
|
|
1071
|
-
this.tabsVisibleChanged.emit(true);
|
|
1072
|
-
});
|
|
1073
|
-
if (this.tabService.isMobile()) {
|
|
1074
|
-
this.ariaRole = undefined;
|
|
1075
|
-
this.tabService.animationContentVisibleState = VISIBLE_STATE;
|
|
1076
|
-
__classPrivateFieldGet(this, _SkySectionedFormComponent_changeRef, "f").markForCheck();
|
|
1077
|
-
}
|
|
1078
|
-
}
|
|
1079
|
-
ngAfterViewChecked() {
|
|
1080
|
-
this.tabService.content = this.content;
|
|
1081
|
-
this.tabService.updateContent();
|
|
1082
|
-
}
|
|
1083
|
-
ngOnDestroy() {
|
|
1084
|
-
__classPrivateFieldGet(this, _SkySectionedFormComponent_ngUnsubscribe, "f").next();
|
|
1085
|
-
__classPrivateFieldGet(this, _SkySectionedFormComponent_ngUnsubscribe, "f").complete();
|
|
1086
|
-
}
|
|
1087
|
-
/**
|
|
1088
|
-
* @deprecated Use the `tabsVisibleChanged` output to listen for tab visibility changes.
|
|
1089
|
-
*/
|
|
1090
|
-
tabsVisible() {
|
|
1091
|
-
__classPrivateFieldGet(this, _SkySectionedFormComponent_logger, "f").deprecated('SectionedFormComponent.tabsVisible()', {
|
|
1092
|
-
deprecationMajorVersion: 8,
|
|
1093
|
-
moreInfoUrl: 'https://developer.blackbaud.com/skyux/components/sectioned-form',
|
|
1094
|
-
replacementRecommendation: 'Use the `tabsVisibleChanged` output to listen for tab visibility changes.',
|
|
1095
|
-
});
|
|
1096
|
-
__classPrivateFieldGet(this, _SkySectionedFormComponent_changeRef, "f").markForCheck();
|
|
1097
|
-
return this.tabService.tabsVisible();
|
|
1098
|
-
}
|
|
1099
|
-
/**
|
|
1100
|
-
* @deprecated Use the `messageStream` input and push a `ShowTabs` message to the message stream instead.
|
|
1101
|
-
*/
|
|
1102
|
-
showTabs() {
|
|
1103
|
-
__classPrivateFieldGet(this, _SkySectionedFormComponent_logger, "f").deprecated('SectionedFormComponent.showTabs()', {
|
|
1104
|
-
deprecationMajorVersion: 8,
|
|
1105
|
-
moreInfoUrl: 'https://developer.blackbaud.com/skyux/components/sectioned-form',
|
|
1106
|
-
replacementRecommendation: 'Use the `messageStream` input and push a `ShowTabs` message to the message stream instead.',
|
|
1107
|
-
});
|
|
1108
|
-
__classPrivateFieldGet(this, _SkySectionedFormComponent_instances, "m", _SkySectionedFormComponent_showTabs).call(this);
|
|
1109
|
-
}
|
|
1110
|
-
}
|
|
1111
|
-
_SkySectionedFormComponent_ngUnsubscribe = new WeakMap(), _SkySectionedFormComponent_messageStreamSub = new WeakMap(), _SkySectionedFormComponent_changeRef = new WeakMap(), _SkySectionedFormComponent_tabIdSvc = new WeakMap(), _SkySectionedFormComponent_logger = new WeakMap(), _SkySectionedFormComponent__messageStream = new WeakMap(), _SkySectionedFormComponent_instances = new WeakSet(), _SkySectionedFormComponent_showTabs = function _SkySectionedFormComponent_showTabs() {
|
|
1112
|
-
this.tabService.showTabs();
|
|
1113
|
-
__classPrivateFieldGet(this, _SkySectionedFormComponent_changeRef, "f").markForCheck();
|
|
1114
|
-
}, _SkySectionedFormComponent_initMessageStream = function _SkySectionedFormComponent_initMessageStream() {
|
|
1115
|
-
if (__classPrivateFieldGet(this, _SkySectionedFormComponent_messageStreamSub, "f")) {
|
|
1116
|
-
__classPrivateFieldGet(this, _SkySectionedFormComponent_messageStreamSub, "f").unsubscribe();
|
|
1117
|
-
}
|
|
1118
|
-
__classPrivateFieldSet(this, _SkySectionedFormComponent_messageStreamSub, this.messageStream
|
|
1119
|
-
.pipe(takeUntil(__classPrivateFieldGet(this, _SkySectionedFormComponent_ngUnsubscribe, "f")))
|
|
1120
|
-
.subscribe((message) => {
|
|
1121
|
-
switch (message.type) {
|
|
1122
|
-
case SkySectionedFormMessageType.ShowTabs:
|
|
1123
|
-
__classPrivateFieldGet(this, _SkySectionedFormComponent_instances, "m", _SkySectionedFormComponent_showTabs).call(this);
|
|
1124
|
-
break;
|
|
1125
|
-
}
|
|
1126
|
-
}), "f");
|
|
1127
|
-
};
|
|
1128
|
-
SkySectionedFormComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: SkySectionedFormComponent, deps: [{ token: SkyVerticalTabsetService }, { token: i0.ChangeDetectorRef }, { token: SkyTabIdService }, { token: i1.SkyLogService }], target: i0.ɵɵFactoryTarget.Component });
|
|
1129
|
-
SkySectionedFormComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.9", type: SkySectionedFormComponent, selector: "sky-sectioned-form", inputs: { maintainSectionContent: "maintainSectionContent", messageStream: "messageStream" }, outputs: { indexChanged: "indexChanged", tabsVisibleChanged: "tabsVisibleChanged" }, providers: [SkyTabIdService, SkyVerticalTabsetService], viewQueries: [{ propertyName: "content", first: true, predicate: ["skySectionSideContent"], descendants: true }], ngImport: i0, template: "<div class=\"sky-sectioned-form\" (window:resize)=\"tabService.updateContent()\">\n <!--\n ARIA rules do not allow tabpanel elements to be children of a tablist element.\n However, the markup for each sky-vertical-tab component includes both the tab button\n and its panel, making the panel element a child of its tablist. Moreover, our\n sky-vertical-tab components can be grouped within collapsible containers, which also\n violates accessibility rules because only tab buttons can be children of a tablist.\n To address this, we create an empty tablist element with an aria-owns attribute,\n pointing to each tab element individually. That way, we don't have to worry about the\n structure for each sky-vertical-tab component in order to satisfy accessibility\n guidelines.\n -->\n <span\n aria-orientation=\"vertical\"\n [attr.aria-owns]=\"ariaOwns\"\n [attr.role]=\"ariaRole\"\n ></span>\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: [
|
|
1130
|
-
trigger('tabEnter', [
|
|
1131
|
-
transition(`${HIDDEN_STATE} => ${VISIBLE_STATE}`, [
|
|
1132
|
-
style({ transform: 'translate(-100%)' }),
|
|
1133
|
-
animate('150ms ease-in'),
|
|
1134
|
-
]),
|
|
1135
|
-
]),
|
|
1136
|
-
trigger('contentEnter', [
|
|
1137
|
-
transition(`${HIDDEN_STATE} => ${VISIBLE_STATE}`, [
|
|
1138
|
-
style({ transform: 'translate(100%)' }),
|
|
1139
|
-
animate('150ms ease-in'),
|
|
1140
|
-
]),
|
|
1141
|
-
]),
|
|
1142
|
-
], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
1143
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: SkySectionedFormComponent, decorators: [{
|
|
1144
|
-
type: Component,
|
|
1145
|
-
args: [{ selector: 'sky-sectioned-form', providers: [SkyTabIdService, SkyVerticalTabsetService], changeDetection: ChangeDetectionStrategy.OnPush, animations: [
|
|
1146
|
-
trigger('tabEnter', [
|
|
1147
|
-
transition(`${HIDDEN_STATE} => ${VISIBLE_STATE}`, [
|
|
1148
|
-
style({ transform: 'translate(-100%)' }),
|
|
1149
|
-
animate('150ms ease-in'),
|
|
1150
|
-
]),
|
|
1151
|
-
]),
|
|
1152
|
-
trigger('contentEnter', [
|
|
1153
|
-
transition(`${HIDDEN_STATE} => ${VISIBLE_STATE}`, [
|
|
1154
|
-
style({ transform: 'translate(100%)' }),
|
|
1155
|
-
animate('150ms ease-in'),
|
|
1156
|
-
]),
|
|
1157
|
-
]),
|
|
1158
|
-
], template: "<div class=\"sky-sectioned-form\" (window:resize)=\"tabService.updateContent()\">\n <!--\n ARIA rules do not allow tabpanel elements to be children of a tablist element.\n However, the markup for each sky-vertical-tab component includes both the tab button\n and its panel, making the panel element a child of its tablist. Moreover, our\n sky-vertical-tab components can be grouped within collapsible containers, which also\n violates accessibility rules because only tab buttons can be children of a tablist.\n To address this, we create an empty tablist element with an aria-owns attribute,\n pointing to each tab element individually. That way, we don't have to worry about the\n structure for each sky-vertical-tab component in order to satisfy accessibility\n guidelines.\n -->\n <span\n aria-orientation=\"vertical\"\n [attr.aria-owns]=\"ariaOwns\"\n [attr.role]=\"ariaRole\"\n ></span>\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"] }]
|
|
1159
|
-
}], ctorParameters: function () { return [{ type: SkyVerticalTabsetService }, { type: i0.ChangeDetectorRef }, { type: SkyTabIdService }, { type: i1.SkyLogService }]; }, propDecorators: { maintainSectionContent: [{
|
|
1160
|
-
type: Input
|
|
1161
|
-
}], messageStream: [{
|
|
1162
|
-
type: Input
|
|
1163
|
-
}], indexChanged: [{
|
|
1164
|
-
type: Output
|
|
1165
|
-
}], tabsVisibleChanged: [{
|
|
1166
|
-
type: Output
|
|
1167
|
-
}], content: [{
|
|
1168
|
-
type: ViewChild,
|
|
1169
|
-
args: ['skySectionSideContent']
|
|
1170
|
-
}] } });
|
|
1171
|
-
|
|
1172
|
-
class SkySectionedFormModule {
|
|
1173
|
-
}
|
|
1174
|
-
SkySectionedFormModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: SkySectionedFormModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
1175
|
-
SkySectionedFormModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "15.2.9", ngImport: i0, type: SkySectionedFormModule, declarations: [SkySectionedFormComponent, SkySectionedFormSectionComponent], imports: [CommonModule,
|
|
1176
|
-
SkyCheckboxModule,
|
|
1177
|
-
SkyThemeModule,
|
|
1178
|
-
SkyVerticalTabsetModule], exports: [SkySectionedFormComponent, SkySectionedFormSectionComponent] });
|
|
1179
|
-
SkySectionedFormModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: SkySectionedFormModule, imports: [CommonModule,
|
|
1180
|
-
SkyCheckboxModule,
|
|
1181
|
-
SkyThemeModule,
|
|
1182
|
-
SkyVerticalTabsetModule] });
|
|
1183
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: SkySectionedFormModule, decorators: [{
|
|
1184
|
-
type: NgModule,
|
|
1185
|
-
args: [{
|
|
1186
|
-
declarations: [SkySectionedFormComponent, SkySectionedFormSectionComponent],
|
|
1187
|
-
imports: [
|
|
1188
|
-
CommonModule,
|
|
1189
|
-
SkyCheckboxModule,
|
|
1190
|
-
SkyThemeModule,
|
|
1191
|
-
SkyVerticalTabsetModule,
|
|
1192
|
-
],
|
|
1193
|
-
exports: [SkySectionedFormComponent, SkySectionedFormSectionComponent],
|
|
1194
|
-
}]
|
|
1195
|
-
}] });
|
|
1196
|
-
|
|
1197
|
-
/**
|
|
1198
|
-
* @internal
|
|
1199
|
-
*/
|
|
1200
|
-
class SkyTabButtonAdapterService {
|
|
1201
|
-
focusButtonLink(buttonEl) {
|
|
1202
|
-
buttonEl.nativeElement.querySelector('a').focus();
|
|
1203
|
-
}
|
|
1204
|
-
}
|
|
1205
|
-
SkyTabButtonAdapterService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: SkyTabButtonAdapterService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
1206
|
-
SkyTabButtonAdapterService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: SkyTabButtonAdapterService });
|
|
1207
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: SkyTabButtonAdapterService, decorators: [{
|
|
1208
|
-
type: Injectable
|
|
1209
|
-
}] });
|
|
1210
|
-
|
|
1211
|
-
var _SkyTabsetService_instances, _SkyTabsetService_activeTabIndex, _SkyTabsetService_focusedTabBtnIndex, _SkyTabsetService_activeTabUnregistered, _SkyTabsetService_activeTabLayout, _SkyTabsetService_tabs, _SkyTabsetService_tabCounter, _SkyTabsetService_isTabIndexActive, _SkyTabsetService_getNextTabArrayIndex, _SkyTabsetService_getPrevTabArrayIndex;
|
|
1212
|
-
/**
|
|
1213
|
-
* @internal
|
|
1214
|
-
*/
|
|
1215
|
-
class SkyTabsetService {
|
|
1216
|
-
get activeTabUnregistered() {
|
|
1217
|
-
return __classPrivateFieldGet(this, _SkyTabsetService_activeTabUnregistered, "f");
|
|
1218
|
-
}
|
|
1219
|
-
get activeTabIndex() {
|
|
1220
|
-
return __classPrivateFieldGet(this, _SkyTabsetService_activeTabIndex, "f");
|
|
1221
|
-
}
|
|
1222
|
-
get focusedTabBtnIndex() {
|
|
1223
|
-
return __classPrivateFieldGet(this, _SkyTabsetService_focusedTabBtnIndex, "f");
|
|
1224
|
-
}
|
|
1225
|
-
get activeTabLayout() {
|
|
1226
|
-
return __classPrivateFieldGet(this, _SkyTabsetService_activeTabLayout, "f");
|
|
1227
|
-
}
|
|
1228
|
-
constructor() {
|
|
1229
|
-
_SkyTabsetService_instances.add(this);
|
|
1230
|
-
this.currentActiveTabIndex = 0;
|
|
1231
|
-
this.currentFocusedTabBtnIndex = 0;
|
|
1232
|
-
_SkyTabsetService_activeTabIndex.set(this, void 0);
|
|
1233
|
-
_SkyTabsetService_focusedTabBtnIndex.set(this, void 0);
|
|
1234
|
-
_SkyTabsetService_activeTabUnregistered.set(this, void 0);
|
|
1235
|
-
_SkyTabsetService_activeTabLayout.set(this, new Subject());
|
|
1236
|
-
_SkyTabsetService_tabs.set(this, []);
|
|
1237
|
-
_SkyTabsetService_tabCounter.set(this, 0);
|
|
1238
|
-
__classPrivateFieldSet(this, _SkyTabsetService_activeTabIndex, new BehaviorSubject(0), "f");
|
|
1239
|
-
__classPrivateFieldSet(this, _SkyTabsetService_activeTabUnregistered, new Subject(), "f");
|
|
1240
|
-
__classPrivateFieldSet(this, _SkyTabsetService_focusedTabBtnIndex, new Subject(), "f");
|
|
1241
|
-
}
|
|
1242
|
-
ngOnDestroy() {
|
|
1243
|
-
__classPrivateFieldGet(this, _SkyTabsetService_activeTabIndex, "f").complete();
|
|
1244
|
-
__classPrivateFieldGet(this, _SkyTabsetService_activeTabUnregistered, "f").complete();
|
|
1245
|
-
__classPrivateFieldGet(this, _SkyTabsetService_focusedTabBtnIndex, "f").complete();
|
|
1246
|
-
__classPrivateFieldGet(this, _SkyTabsetService_activeTabLayout, "f").complete();
|
|
1247
|
-
}
|
|
1248
|
-
/**
|
|
1249
|
-
* Sets the active tab by its unique `tabIndex` property.
|
|
1250
|
-
*/
|
|
1251
|
-
setActiveTabIndex(value, config = {
|
|
1252
|
-
emitChange: true,
|
|
1253
|
-
}) {
|
|
1254
|
-
if (value !== undefined &&
|
|
1255
|
-
!this.tabIndexesEqual(value, this.currentActiveTabIndex)) {
|
|
1256
|
-
this.currentActiveTabIndex = value;
|
|
1257
|
-
/* istanbul ignore else */
|
|
1258
|
-
if (config.emitChange) {
|
|
1259
|
-
__classPrivateFieldGet(this, _SkyTabsetService_activeTabIndex, "f").next(value);
|
|
1260
|
-
}
|
|
1261
|
-
this.setFocusedTabBtnIndex(value);
|
|
1262
|
-
}
|
|
1263
|
-
}
|
|
1264
|
-
focusNextTabBtn(tabButtons) {
|
|
1265
|
-
const currentTabArrayIndex = __classPrivateFieldGet(this, _SkyTabsetService_tabs, "f").findIndex((tab) => this.tabIndexesEqual(tab.tabIndex, this.currentFocusedTabBtnIndex));
|
|
1266
|
-
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)) {
|
|
1267
|
-
const tabBtn = tabButtons[i];
|
|
1268
|
-
if (!tabBtn.disabled && tabBtn.tabIndex !== undefined) {
|
|
1269
|
-
this.setFocusedTabBtnIndex(tabBtn.tabIndex);
|
|
1270
|
-
return;
|
|
1271
|
-
}
|
|
1272
|
-
}
|
|
1273
|
-
}
|
|
1274
|
-
focusPrevTabBtn(tabButtons) {
|
|
1275
|
-
const currentTabArrayIndex = __classPrivateFieldGet(this, _SkyTabsetService_tabs, "f").findIndex((tab) => this.tabIndexesEqual(tab.tabIndex, this.currentFocusedTabBtnIndex));
|
|
1276
|
-
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)) {
|
|
1277
|
-
const tabBtn = tabButtons[i];
|
|
1278
|
-
if (!tabBtn.disabled && tabBtn.tabIndex !== undefined) {
|
|
1279
|
-
this.setFocusedTabBtnIndex(tabBtn.tabIndex);
|
|
1280
|
-
return;
|
|
1281
|
-
}
|
|
1282
|
-
}
|
|
1283
|
-
}
|
|
1284
|
-
focusFirstOrNearestTabBtn(tabButtons) {
|
|
1285
|
-
for (let i = 0; i < tabButtons.length; i++) {
|
|
1286
|
-
const tabBtn = tabButtons[i];
|
|
1287
|
-
if (!tabBtn.disabled && tabBtn.tabIndex !== undefined) {
|
|
1288
|
-
this.setFocusedTabBtnIndex(tabBtn.tabIndex);
|
|
1289
|
-
return;
|
|
1290
|
-
}
|
|
1291
|
-
}
|
|
1292
|
-
}
|
|
1293
|
-
focusLastOrNearestTabBtn(tabButtons) {
|
|
1294
|
-
for (let i = tabButtons.length - 1; i >= 0; i--) {
|
|
1295
|
-
const tabBtn = tabButtons[i];
|
|
1296
|
-
if (!tabBtn.disabled && tabBtn.tabIndex !== undefined) {
|
|
1297
|
-
this.setFocusedTabBtnIndex(tabBtn.tabIndex);
|
|
1298
|
-
return;
|
|
1299
|
-
}
|
|
1300
|
-
}
|
|
1301
|
-
}
|
|
1302
|
-
setFocusedTabBtnIndex(tabIndex) {
|
|
1303
|
-
this.currentFocusedTabBtnIndex = tabIndex;
|
|
1304
|
-
__classPrivateFieldGet(this, _SkyTabsetService_focusedTabBtnIndex, "f").next(tabIndex);
|
|
1305
|
-
}
|
|
1306
|
-
/**
|
|
1307
|
-
* Registers a tab component.
|
|
1308
|
-
*/
|
|
1309
|
-
registerTab(tabIndex) {
|
|
1310
|
-
var _a;
|
|
1311
|
-
if (tabIndex === undefined) {
|
|
1312
|
-
tabIndex = __classPrivateFieldGet(this, _SkyTabsetService_tabCounter, "f");
|
|
1313
|
-
__classPrivateFieldSet(this, _SkyTabsetService_tabCounter, (_a = __classPrivateFieldGet(this, _SkyTabsetService_tabCounter, "f"), _a++, _a), "f");
|
|
1314
|
-
}
|
|
1315
|
-
__classPrivateFieldGet(this, _SkyTabsetService_tabs, "f").push({ tabIndex });
|
|
1316
|
-
return tabIndex;
|
|
1317
|
-
}
|
|
1318
|
-
updateTabIndex(currentTabIndex, newTabIndex) {
|
|
1319
|
-
const found = __classPrivateFieldGet(this, _SkyTabsetService_tabs, "f").find((tab) => this.tabIndexesEqual(tab.tabIndex, currentTabIndex));
|
|
1320
|
-
if (found) {
|
|
1321
|
-
found.tabIndex = newTabIndex;
|
|
1322
|
-
}
|
|
1323
|
-
}
|
|
1324
|
-
updateActiveTabLayout(layout) {
|
|
1325
|
-
__classPrivateFieldGet(this, _SkyTabsetService_activeTabLayout, "f").next(layout);
|
|
1326
|
-
}
|
|
1327
|
-
/**
|
|
1328
|
-
* Unregisters a tab component.
|
|
1329
|
-
*/
|
|
1330
|
-
unregisterTab(tabIndex) {
|
|
1331
|
-
var _b;
|
|
1332
|
-
const index = __classPrivateFieldGet(this, _SkyTabsetService_tabs, "f").findIndex((tab) => this.tabIndexesEqual(tab.tabIndex, tabIndex));
|
|
1333
|
-
// Notify the tabset component when an active tab is unregistered.
|
|
1334
|
-
if (__classPrivateFieldGet(this, _SkyTabsetService_instances, "m", _SkyTabsetService_isTabIndexActive).call(this, (_b = __classPrivateFieldGet(this, _SkyTabsetService_tabs, "f")[index]) === null || _b === void 0 ? void 0 : _b.tabIndex)) {
|
|
1335
|
-
__classPrivateFieldGet(this, _SkyTabsetService_activeTabUnregistered, "f").next({
|
|
1336
|
-
arrayIndex: index,
|
|
1337
|
-
});
|
|
1338
|
-
}
|
|
1339
|
-
__classPrivateFieldGet(this, _SkyTabsetService_tabs, "f").splice(index, 1);
|
|
1340
|
-
}
|
|
1341
|
-
/**
|
|
1342
|
-
* Unregisters all tab components at once.
|
|
1343
|
-
*/
|
|
1344
|
-
unregisterAll() {
|
|
1345
|
-
__classPrivateFieldSet(this, _SkyTabsetService_tabs, [], "f");
|
|
1346
|
-
}
|
|
1347
|
-
/**
|
|
1348
|
-
* Compares two tab indexes and returns `true` if they are equal.
|
|
1349
|
-
*/
|
|
1350
|
-
tabIndexesEqual(tabIndex1, tabIndex2) {
|
|
1351
|
-
return (tabIndex1 === tabIndex2 ||
|
|
1352
|
-
(tabIndex1 !== undefined &&
|
|
1353
|
-
tabIndex2 !== undefined &&
|
|
1354
|
-
+tabIndex1 === +tabIndex2));
|
|
1355
|
-
}
|
|
1356
|
-
/**
|
|
1357
|
-
* Verifies if a provided tab index is registered.
|
|
1358
|
-
*/
|
|
1359
|
-
isValidTabIndex(tabIndex) {
|
|
1360
|
-
return __classPrivateFieldGet(this, _SkyTabsetService_tabs, "f").some((tab) => this.tabIndexesEqual(tab.tabIndex, tabIndex));
|
|
1361
|
-
}
|
|
1362
|
-
/**
|
|
1363
|
-
* Activates the first registered tab.
|
|
1364
|
-
*/
|
|
1365
|
-
activateFirstTab() {
|
|
1366
|
-
const firstTabIndex = __classPrivateFieldGet(this, _SkyTabsetService_tabs, "f")[0] && __classPrivateFieldGet(this, _SkyTabsetService_tabs, "f")[0].tabIndex;
|
|
1367
|
-
if (firstTabIndex !== undefined) {
|
|
1368
|
-
this.setActiveTabIndex(firstTabIndex);
|
|
1369
|
-
return firstTabIndex;
|
|
1370
|
-
}
|
|
1371
|
-
return undefined;
|
|
1372
|
-
}
|
|
1373
|
-
/**
|
|
1374
|
-
* Activates the next registered tab, or the previous one based on a provided array index.
|
|
1375
|
-
*/
|
|
1376
|
-
activateNearestTab(arrayIndex) {
|
|
1377
|
-
const newActiveTab = __classPrivateFieldGet(this, _SkyTabsetService_tabs, "f")[arrayIndex] || __classPrivateFieldGet(this, _SkyTabsetService_tabs, "f")[arrayIndex - 1];
|
|
1378
|
-
if (newActiveTab) {
|
|
1379
|
-
this.currentActiveTabIndex = newActiveTab.tabIndex;
|
|
1380
|
-
}
|
|
1381
|
-
}
|
|
1382
|
-
}
|
|
1383
|
-
_SkyTabsetService_activeTabIndex = new WeakMap(), _SkyTabsetService_focusedTabBtnIndex = new WeakMap(), _SkyTabsetService_activeTabUnregistered = new WeakMap(), _SkyTabsetService_activeTabLayout = new WeakMap(), _SkyTabsetService_tabs = new WeakMap(), _SkyTabsetService_tabCounter = new WeakMap(), _SkyTabsetService_instances = new WeakSet(), _SkyTabsetService_isTabIndexActive = function _SkyTabsetService_isTabIndexActive(tabIndex) {
|
|
1384
|
-
return this.tabIndexesEqual(tabIndex, this.currentActiveTabIndex);
|
|
1385
|
-
}, _SkyTabsetService_getNextTabArrayIndex = function _SkyTabsetService_getNextTabArrayIndex(currentIndex) {
|
|
1386
|
-
let nextIndex = currentIndex + 1;
|
|
1387
|
-
if (nextIndex === __classPrivateFieldGet(this, _SkyTabsetService_tabs, "f").length) {
|
|
1388
|
-
nextIndex = 0;
|
|
1389
|
-
}
|
|
1390
|
-
return nextIndex;
|
|
1391
|
-
}, _SkyTabsetService_getPrevTabArrayIndex = function _SkyTabsetService_getPrevTabArrayIndex(currentIndex) {
|
|
1392
|
-
let prevIndex = currentIndex - 1;
|
|
1393
|
-
if (prevIndex < 0) {
|
|
1394
|
-
prevIndex = __classPrivateFieldGet(this, _SkyTabsetService_tabs, "f").length - 1;
|
|
1395
|
-
}
|
|
1396
|
-
return prevIndex;
|
|
1397
|
-
};
|
|
1398
|
-
SkyTabsetService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: SkyTabsetService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
1399
|
-
SkyTabsetService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: SkyTabsetService });
|
|
1400
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: SkyTabsetService, decorators: [{
|
|
1401
|
-
type: Injectable
|
|
1402
|
-
}], ctorParameters: function () { return []; } });
|
|
1403
|
-
|
|
1404
|
-
var _SkyTabButtonComponent_instances, _SkyTabButtonComponent__isActive, _SkyTabButtonComponent__isDisabled, _SkyTabButtonComponent__tabStyle, _SkyTabButtonComponent_adapterService, _SkyTabButtonComponent_changeDetectorRef, _SkyTabButtonComponent_elementRef, _SkyTabButtonComponent_tabsetService, _SkyTabButtonComponent_ngUnsubscribe, _SkyTabButtonComponent_updateWizardStepState;
|
|
1405
|
-
const DEFAULT_DISABLED = false;
|
|
1406
|
-
/**
|
|
1407
|
-
* @internal
|
|
1408
|
-
*/
|
|
1409
|
-
class SkyTabButtonComponent {
|
|
1410
|
-
get active() {
|
|
1411
|
-
return __classPrivateFieldGet(this, _SkyTabButtonComponent__isActive, "f");
|
|
1412
|
-
}
|
|
1413
|
-
set active(value) {
|
|
1414
|
-
__classPrivateFieldSet(this, _SkyTabButtonComponent__isActive, value, "f");
|
|
1415
|
-
__classPrivateFieldGet(this, _SkyTabButtonComponent_instances, "m", _SkyTabButtonComponent_updateWizardStepState).call(this);
|
|
1416
|
-
}
|
|
1417
|
-
get disabled() {
|
|
1418
|
-
return __classPrivateFieldGet(this, _SkyTabButtonComponent__isDisabled, "f");
|
|
1419
|
-
}
|
|
1420
|
-
set disabled(value) {
|
|
1421
|
-
__classPrivateFieldSet(this, _SkyTabButtonComponent__isDisabled, value !== null && value !== void 0 ? value : DEFAULT_DISABLED, "f");
|
|
1422
|
-
__classPrivateFieldGet(this, _SkyTabButtonComponent_instances, "m", _SkyTabButtonComponent_updateWizardStepState).call(this);
|
|
1423
|
-
}
|
|
1424
|
-
get tabStyle() {
|
|
1425
|
-
return __classPrivateFieldGet(this, _SkyTabButtonComponent__tabStyle, "f");
|
|
1426
|
-
}
|
|
1427
|
-
set tabStyle(style) {
|
|
1428
|
-
__classPrivateFieldSet(this, _SkyTabButtonComponent__tabStyle, style, "f");
|
|
1429
|
-
__classPrivateFieldGet(this, _SkyTabButtonComponent_instances, "m", _SkyTabButtonComponent_updateWizardStepState).call(this);
|
|
1430
|
-
}
|
|
1431
|
-
constructor(elementRef, adapterService, changeDetectorRef, tabsetService) {
|
|
1432
|
-
_SkyTabButtonComponent_instances.add(this);
|
|
1433
|
-
this.buttonClick = new EventEmitter();
|
|
1434
|
-
this.closeClick = new EventEmitter();
|
|
1435
|
-
this.closeBtnTabIndex = '-1';
|
|
1436
|
-
_SkyTabButtonComponent__isActive.set(this, false);
|
|
1437
|
-
_SkyTabButtonComponent__isDisabled.set(this, DEFAULT_DISABLED);
|
|
1438
|
-
_SkyTabButtonComponent__tabStyle.set(this, void 0);
|
|
1439
|
-
_SkyTabButtonComponent_adapterService.set(this, void 0);
|
|
1440
|
-
_SkyTabButtonComponent_changeDetectorRef.set(this, void 0);
|
|
1441
|
-
_SkyTabButtonComponent_elementRef.set(this, void 0);
|
|
1442
|
-
_SkyTabButtonComponent_tabsetService.set(this, void 0);
|
|
1443
|
-
_SkyTabButtonComponent_ngUnsubscribe.set(this, new Subject());
|
|
1444
|
-
__classPrivateFieldSet(this, _SkyTabButtonComponent_adapterService, adapterService, "f");
|
|
1445
|
-
__classPrivateFieldSet(this, _SkyTabButtonComponent_changeDetectorRef, changeDetectorRef, "f");
|
|
1446
|
-
__classPrivateFieldSet(this, _SkyTabButtonComponent_elementRef, elementRef, "f");
|
|
1447
|
-
__classPrivateFieldSet(this, _SkyTabButtonComponent_tabsetService, tabsetService, "f");
|
|
1448
|
-
}
|
|
1449
|
-
ngAfterViewInit() {
|
|
1450
|
-
__classPrivateFieldGet(this, _SkyTabButtonComponent_tabsetService, "f").focusedTabBtnIndex
|
|
1451
|
-
.pipe(distinctUntilChanged(), takeUntil(__classPrivateFieldGet(this, _SkyTabButtonComponent_ngUnsubscribe, "f")))
|
|
1452
|
-
.subscribe((focusedIndex) => {
|
|
1453
|
-
if (this.tabIndex !== undefined && focusedIndex === this.tabIndex) {
|
|
1454
|
-
this.closeBtnTabIndex = '0';
|
|
1455
|
-
this.focusBtn();
|
|
1456
|
-
}
|
|
1457
|
-
else {
|
|
1458
|
-
this.closeBtnTabIndex = '-1';
|
|
1459
|
-
}
|
|
1460
|
-
__classPrivateFieldGet(this, _SkyTabButtonComponent_changeDetectorRef, "f").markForCheck();
|
|
1461
|
-
});
|
|
1462
|
-
}
|
|
1463
|
-
ngOnDestroy() {
|
|
1464
|
-
__classPrivateFieldGet(this, _SkyTabButtonComponent_ngUnsubscribe, "f").next();
|
|
1465
|
-
__classPrivateFieldGet(this, _SkyTabButtonComponent_ngUnsubscribe, "f").complete();
|
|
1466
|
-
}
|
|
1467
|
-
onButtonClick(event) {
|
|
1468
|
-
if (!this.disabled) {
|
|
1469
|
-
this.buttonClick.emit();
|
|
1470
|
-
event.preventDefault();
|
|
1471
|
-
}
|
|
1472
|
-
}
|
|
1473
|
-
onTabButtonKeyDown(event) {
|
|
1474
|
-
/*istanbul ignore else */
|
|
1475
|
-
if (event.key) {
|
|
1476
|
-
switch (event.key.toUpperCase()) {
|
|
1477
|
-
case ' ':
|
|
1478
|
-
case 'ENTER':
|
|
1479
|
-
this.onButtonClick(event);
|
|
1480
|
-
break;
|
|
1481
|
-
/* istanbul ignore next */
|
|
1482
|
-
default:
|
|
1483
|
-
break;
|
|
1484
|
-
}
|
|
1485
|
-
}
|
|
1486
|
-
}
|
|
1487
|
-
onCloseClick(event) {
|
|
1488
|
-
this.closeClick.emit();
|
|
1489
|
-
// Prevent the click event from bubbling up to the anchor tag;
|
|
1490
|
-
// otherwise it will trigger a page refresh.
|
|
1491
|
-
event.stopPropagation();
|
|
1492
|
-
event.preventDefault();
|
|
1493
|
-
}
|
|
1494
|
-
focusBtn() {
|
|
1495
|
-
__classPrivateFieldGet(this, _SkyTabButtonComponent_adapterService, "f").focusButtonLink(__classPrivateFieldGet(this, _SkyTabButtonComponent_elementRef, "f"));
|
|
1496
|
-
}
|
|
1497
|
-
onFocus() {
|
|
1498
|
-
if (this.tabIndex !== undefined) {
|
|
1499
|
-
__classPrivateFieldGet(this, _SkyTabButtonComponent_tabsetService, "f").setFocusedTabBtnIndex(this.tabIndex);
|
|
1500
|
-
}
|
|
1501
|
-
}
|
|
1502
|
-
}
|
|
1503
|
-
_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() {
|
|
1504
|
-
if (this.tabStyle === 'tabs') {
|
|
1505
|
-
this.wizardStepState = undefined;
|
|
1506
|
-
}
|
|
1507
|
-
else {
|
|
1508
|
-
if (this.active) {
|
|
1509
|
-
this.wizardStepState = 'current';
|
|
1510
|
-
}
|
|
1511
|
-
else if (!this.disabled) {
|
|
1512
|
-
this.wizardStepState = 'completed';
|
|
1513
|
-
}
|
|
1514
|
-
else {
|
|
1515
|
-
this.wizardStepState = 'unavailable';
|
|
1516
|
-
}
|
|
1517
|
-
}
|
|
1518
|
-
__classPrivateFieldGet(this, _SkyTabButtonComponent_changeDetectorRef, "f").markForCheck();
|
|
1519
|
-
};
|
|
1520
|
-
SkyTabButtonComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: SkyTabButtonComponent, deps: [{ token: i0.ElementRef }, { token: SkyTabButtonAdapterService }, { token: i0.ChangeDetectorRef }, { token: SkyTabsetService }], target: i0.ɵɵFactoryTarget.Component });
|
|
1521
|
-
SkyTabButtonComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.9", 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 *ngIf=\"closeable\"\n class=\"sky-btn-tab-close\"\n [tabindex]=\"closeBtnTabIndex\"\n [attr.aria-label]=\"'skyux_tab_close' | skyLibResources : buttonText\"\n [ngClass]=\"{\n 'sky-btn-tab-close-disabled': disabled\n }\"\n (click)=\"onCloseClick($event)\"\n (keydown.enter)=\"onCloseClick($event)\"\n >\n <sky-icon icon=\"remove\"></sky-icon>\n </span>\n </span>\n </a>\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;padding:1px 6px}.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: i6.λ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 });
|
|
1522
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: SkyTabButtonComponent, decorators: [{
|
|
1523
|
-
type: Component,
|
|
1524
|
-
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 *ngIf=\"closeable\"\n class=\"sky-btn-tab-close\"\n [tabindex]=\"closeBtnTabIndex\"\n [attr.aria-label]=\"'skyux_tab_close' | skyLibResources : buttonText\"\n [ngClass]=\"{\n 'sky-btn-tab-close-disabled': disabled\n }\"\n (click)=\"onCloseClick($event)\"\n (keydown.enter)=\"onCloseClick($event)\"\n >\n <sky-icon icon=\"remove\"></sky-icon>\n </span>\n </span>\n </a>\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;padding:1px 6px}.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"] }]
|
|
1525
|
-
}], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: SkyTabButtonAdapterService }, { type: i0.ChangeDetectorRef }, { type: SkyTabsetService }]; }, propDecorators: { active: [{
|
|
1526
|
-
type: Input
|
|
1527
|
-
}], ariaControls: [{
|
|
1528
|
-
type: Input
|
|
1529
|
-
}], buttonHref: [{
|
|
1530
|
-
type: Input
|
|
1531
|
-
}], buttonId: [{
|
|
1532
|
-
type: Input
|
|
1533
|
-
}], buttonText: [{
|
|
1534
|
-
type: Input
|
|
1535
|
-
}], buttonTextCount: [{
|
|
1536
|
-
type: Input
|
|
1537
|
-
}], closeable: [{
|
|
1538
|
-
type: Input
|
|
1539
|
-
}], disabled: [{
|
|
1540
|
-
type: Input
|
|
1541
|
-
}], tabIndex: [{
|
|
1542
|
-
type: Input
|
|
1543
|
-
}], tabNumber: [{
|
|
1544
|
-
type: Input
|
|
1545
|
-
}], totalTabsCount: [{
|
|
1546
|
-
type: Input
|
|
1547
|
-
}], tabStyle: [{
|
|
1548
|
-
type: Input
|
|
1549
|
-
}], buttonClick: [{
|
|
1550
|
-
type: Output
|
|
1551
|
-
}], closeClick: [{
|
|
1552
|
-
type: Output
|
|
1553
|
-
}] } });
|
|
1554
|
-
|
|
1555
|
-
var _SkyTabsetPermalinkService_instances, _SkyTabsetPermalinkService_popStateChange, _SkyTabsetPermalinkService_subscription, _SkyTabsetPermalinkService_activatedRoute, _SkyTabsetPermalinkService_location, _SkyTabsetPermalinkService_router, _SkyTabsetPermalinkService_getParams;
|
|
1556
|
-
/**
|
|
1557
|
-
* @internal
|
|
1558
|
-
*/
|
|
1559
|
-
class SkyTabsetPermalinkService {
|
|
1560
|
-
get popStateChange() {
|
|
1561
|
-
return __classPrivateFieldGet(this, _SkyTabsetPermalinkService_popStateChange, "f");
|
|
1562
|
-
}
|
|
1563
|
-
constructor(activatedRoute, location, router) {
|
|
1564
|
-
_SkyTabsetPermalinkService_instances.add(this);
|
|
1565
|
-
_SkyTabsetPermalinkService_popStateChange.set(this, void 0);
|
|
1566
|
-
_SkyTabsetPermalinkService_subscription.set(this, void 0);
|
|
1567
|
-
_SkyTabsetPermalinkService_activatedRoute.set(this, void 0);
|
|
1568
|
-
_SkyTabsetPermalinkService_location.set(this, void 0);
|
|
1569
|
-
_SkyTabsetPermalinkService_router.set(this, void 0);
|
|
1570
|
-
__classPrivateFieldSet(this, _SkyTabsetPermalinkService_activatedRoute, activatedRoute, "f");
|
|
1571
|
-
__classPrivateFieldSet(this, _SkyTabsetPermalinkService_location, location, "f");
|
|
1572
|
-
__classPrivateFieldSet(this, _SkyTabsetPermalinkService_router, router, "f");
|
|
1573
|
-
__classPrivateFieldSet(this, _SkyTabsetPermalinkService_popStateChange, new Subject(), "f");
|
|
1574
|
-
}
|
|
1575
|
-
ngOnDestroy() {
|
|
1576
|
-
if (__classPrivateFieldGet(this, _SkyTabsetPermalinkService_subscription, "f")) {
|
|
1577
|
-
__classPrivateFieldGet(this, _SkyTabsetPermalinkService_subscription, "f").unsubscribe();
|
|
1578
|
-
}
|
|
1579
|
-
__classPrivateFieldGet(this, _SkyTabsetPermalinkService_popStateChange, "f").complete();
|
|
1580
|
-
}
|
|
1581
|
-
init() {
|
|
1582
|
-
__classPrivateFieldSet(this, _SkyTabsetPermalinkService_subscription, __classPrivateFieldGet(this, _SkyTabsetPermalinkService_location, "f").subscribe(() => {
|
|
1583
|
-
__classPrivateFieldGet(this, _SkyTabsetPermalinkService_popStateChange, "f").next();
|
|
1584
|
-
}), "f");
|
|
1585
|
-
}
|
|
1586
|
-
/**
|
|
1587
|
-
* Returns the value of a URL query param.
|
|
1588
|
-
*/
|
|
1589
|
-
getParam(name) {
|
|
1590
|
-
return __classPrivateFieldGet(this, _SkyTabsetPermalinkService_instances, "m", _SkyTabsetPermalinkService_getParams).call(this)[name];
|
|
1591
|
-
}
|
|
1592
|
-
/**
|
|
1593
|
-
* Sets the value of a URL query param.
|
|
1594
|
-
*/
|
|
1595
|
-
setParam(name, value) {
|
|
1596
|
-
const params = __classPrivateFieldGet(this, _SkyTabsetPermalinkService_instances, "m", _SkyTabsetPermalinkService_getParams).call(this);
|
|
1597
|
-
if (value === null) {
|
|
1598
|
-
delete params[name];
|
|
1599
|
-
}
|
|
1600
|
-
else {
|
|
1601
|
-
params[name] = value;
|
|
1602
|
-
}
|
|
1603
|
-
// Update the URL without triggering a navigation state change.
|
|
1604
|
-
// See: https://stackoverflow.com/a/46486677
|
|
1605
|
-
const url = __classPrivateFieldGet(this, _SkyTabsetPermalinkService_router, "f")
|
|
1606
|
-
.createUrlTree([], {
|
|
1607
|
-
relativeTo: __classPrivateFieldGet(this, _SkyTabsetPermalinkService_activatedRoute, "f"),
|
|
1608
|
-
queryParams: params,
|
|
1609
|
-
queryParamsHandling: 'merge',
|
|
1610
|
-
})
|
|
1611
|
-
.toString();
|
|
1612
|
-
// Abort redirect if the current URL is equal to the new URL.
|
|
1613
|
-
if (__classPrivateFieldGet(this, _SkyTabsetPermalinkService_location, "f").isCurrentPathEqualTo(url)) {
|
|
1614
|
-
return;
|
|
1615
|
-
}
|
|
1616
|
-
__classPrivateFieldGet(this, _SkyTabsetPermalinkService_location, "f").go(url);
|
|
1617
|
-
}
|
|
1618
|
-
/**
|
|
1619
|
-
* Removes the provided query param from the URL.
|
|
1620
|
-
*/
|
|
1621
|
-
clearParam(name) {
|
|
1622
|
-
this.setParam(name, null);
|
|
1623
|
-
}
|
|
1624
|
-
/**
|
|
1625
|
-
* Returns a relative URL that includes the provided query parameter. The value is intended to be
|
|
1626
|
-
* used by an HTML anchor element.
|
|
1627
|
-
*/
|
|
1628
|
-
getParamHref(name, value) {
|
|
1629
|
-
if (!name) {
|
|
1630
|
-
return null;
|
|
1631
|
-
}
|
|
1632
|
-
const params = __classPrivateFieldGet(this, _SkyTabsetPermalinkService_instances, "m", _SkyTabsetPermalinkService_getParams).call(this);
|
|
1633
|
-
params[name] = value;
|
|
1634
|
-
const baseUrl = __classPrivateFieldGet(this, _SkyTabsetPermalinkService_location, "f").path().split('?')[0];
|
|
1635
|
-
const paramString = Object.keys(params)
|
|
1636
|
-
.map((k) => `${k}=${params[k]}`)
|
|
1637
|
-
.join('&');
|
|
1638
|
-
return __classPrivateFieldGet(this, _SkyTabsetPermalinkService_location, "f").prepareExternalUrl(`${baseUrl}?${paramString}`);
|
|
1639
|
-
}
|
|
1640
|
-
/**
|
|
1641
|
-
* Converts the provided string into a value that can be safely used in a URL.
|
|
1642
|
-
*/
|
|
1643
|
-
urlify(value) {
|
|
1644
|
-
if (!value) {
|
|
1645
|
-
return '';
|
|
1646
|
-
}
|
|
1647
|
-
const sanitized = value
|
|
1648
|
-
.toLowerCase()
|
|
1649
|
-
// Remove special characters.
|
|
1650
|
-
.replace(/[_~`@!#$%^&*()[\]{};:'/\\<>,.?=+|"]/g, '')
|
|
1651
|
-
// Replace space characters with a dash.
|
|
1652
|
-
.replace(/\s/g, '-')
|
|
1653
|
-
// Remove any double-dashes.
|
|
1654
|
-
.replace(/--/g, '-');
|
|
1655
|
-
return sanitized;
|
|
1656
|
-
}
|
|
1657
|
-
}
|
|
1658
|
-
_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() {
|
|
1659
|
-
const params = {};
|
|
1660
|
-
const path = __classPrivateFieldGet(this, _SkyTabsetPermalinkService_location, "f").path();
|
|
1661
|
-
if (path.indexOf('?') === -1) {
|
|
1662
|
-
return params;
|
|
1663
|
-
}
|
|
1664
|
-
const existingParamPairs = path.split('?')[1].split('&');
|
|
1665
|
-
existingParamPairs.forEach((pair) => {
|
|
1666
|
-
const fragments = pair.split('=');
|
|
1667
|
-
params[fragments[0]] = decodeURIComponent(fragments[1]);
|
|
1668
|
-
});
|
|
1669
|
-
return params;
|
|
1670
|
-
};
|
|
1671
|
-
SkyTabsetPermalinkService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: SkyTabsetPermalinkService, deps: [{ token: i1$1.ActivatedRoute }, { token: i4.Location }, { token: i1$1.Router }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
1672
|
-
SkyTabsetPermalinkService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: SkyTabsetPermalinkService });
|
|
1673
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: SkyTabsetPermalinkService, decorators: [{
|
|
1674
|
-
type: Injectable
|
|
1675
|
-
}], ctorParameters: function () { return [{ type: i1$1.ActivatedRoute }, { type: i4.Location }, { type: i1$1.Router }]; } });
|
|
1676
|
-
|
|
1677
|
-
var _SkyTabComponent_instances, _SkyTabComponent__active, _SkyTabComponent_activeChange, _SkyTabComponent__permalinkValue, _SkyTabComponent_stateChange, _SkyTabComponent__tabHeading, _SkyTabComponent__tabIndex, _SkyTabComponent__layout, _SkyTabComponent_tabIndexChange, _SkyTabComponent_changeDetector, _SkyTabComponent_permalinkService, _SkyTabComponent_tabsetService, _SkyTabComponent_setPermalinkValueOrDefault;
|
|
1678
|
-
const LAYOUT_CLASS_PREFIX = 'sky-layout-host-';
|
|
1679
|
-
const LAYOUT_DEFAULT = 'none';
|
|
1680
|
-
let nextId = 0;
|
|
1681
|
-
class SkyTabComponent {
|
|
1682
|
-
/**
|
|
1683
|
-
* Whether the tab is active when the tabset loads. After initialization, the `active`
|
|
1684
|
-
* property on the tabset component should be used to set the active tab.
|
|
1685
|
-
* @default false
|
|
1686
|
-
*/
|
|
1687
|
-
set active(value) {
|
|
1688
|
-
if (value !== undefined && !!value !== __classPrivateFieldGet(this, _SkyTabComponent__active, "f")) {
|
|
1689
|
-
__classPrivateFieldSet(this, _SkyTabComponent__active, value, "f");
|
|
1690
|
-
__classPrivateFieldGet(this, _SkyTabComponent_activeChange, "f").next();
|
|
1691
|
-
}
|
|
1692
|
-
}
|
|
1693
|
-
get active() {
|
|
1694
|
-
return __classPrivateFieldGet(this, _SkyTabComponent__active, "f");
|
|
1695
|
-
}
|
|
1696
|
-
get activeChange() {
|
|
1697
|
-
return __classPrivateFieldGet(this, _SkyTabComponent_activeChange, "f");
|
|
1698
|
-
}
|
|
1699
|
-
/**
|
|
1700
|
-
* The custom query parameter value for the tab.
|
|
1701
|
-
* This works in conjunction with the tabset's `permalinkId` to distinguish
|
|
1702
|
-
* the tab's unique state in the URL by generating a query parameter that is
|
|
1703
|
-
* written as `?<queryParam>-active-tab=<sanitized-tab-heading`.
|
|
1704
|
-
* By default, the query parameter's value is parsed automatically from the tab's heading text.
|
|
1705
|
-
* This input only applies when the tabset's `tabStyle` is `"tabs"`.
|
|
1706
|
-
*/
|
|
1707
|
-
set permalinkValue(value) {
|
|
1708
|
-
__classPrivateFieldSet(this, _SkyTabComponent__permalinkValue, value, "f");
|
|
1709
|
-
__classPrivateFieldGet(this, _SkyTabComponent_instances, "m", _SkyTabComponent_setPermalinkValueOrDefault).call(this);
|
|
1710
|
-
}
|
|
1711
|
-
get permalinkValue() {
|
|
1712
|
-
return __classPrivateFieldGet(this, _SkyTabComponent__permalinkValue, "f");
|
|
1713
|
-
}
|
|
1714
|
-
/**
|
|
1715
|
-
* The tab header.
|
|
1716
|
-
* When using tabs as the main navigation on a page,
|
|
1717
|
-
* use [the Angular `Title` service](https://angular.io/docs/ts/latest/cookbook/set-document-title.html)
|
|
1718
|
-
* and [the SKY UX `title` configuration property](https://developer.blackbaud.com/skyux/learn/reference/configuration#app)
|
|
1719
|
-
* to reflect the tab header in the page title.
|
|
1720
|
-
* @required
|
|
1721
|
-
*/
|
|
1722
|
-
set tabHeading(value) {
|
|
1723
|
-
__classPrivateFieldSet(this, _SkyTabComponent__tabHeading, value, "f");
|
|
1724
|
-
__classPrivateFieldGet(this, _SkyTabComponent_instances, "m", _SkyTabComponent_setPermalinkValueOrDefault).call(this);
|
|
1725
|
-
}
|
|
1726
|
-
get tabHeading() {
|
|
1727
|
-
return __classPrivateFieldGet(this, _SkyTabComponent__tabHeading, "f");
|
|
1728
|
-
}
|
|
1729
|
-
/**
|
|
1730
|
-
* The unique identifier for the tab.
|
|
1731
|
-
* If not defined, the identifier is set to the position of the tab on load, starting with `0`.
|
|
1732
|
-
*/
|
|
1733
|
-
set tabIndex(value) {
|
|
1734
|
-
if (value !== __classPrivateFieldGet(this, _SkyTabComponent__tabIndex, "f") &&
|
|
1735
|
-
value !== undefined &&
|
|
1736
|
-
__classPrivateFieldGet(this, _SkyTabComponent__tabIndex, "f") !== undefined) {
|
|
1737
|
-
__classPrivateFieldGet(this, _SkyTabComponent_tabsetService, "f").updateTabIndex(__classPrivateFieldGet(this, _SkyTabComponent__tabIndex, "f"), value);
|
|
1738
|
-
__classPrivateFieldGet(this, _SkyTabComponent_tabIndexChange, "f").next(value);
|
|
1739
|
-
}
|
|
1740
|
-
__classPrivateFieldSet(this, _SkyTabComponent__tabIndex, value, "f");
|
|
1741
|
-
}
|
|
1742
|
-
get tabIndex() {
|
|
1743
|
-
return __classPrivateFieldGet(this, _SkyTabComponent__tabIndex, "f");
|
|
1744
|
-
}
|
|
1745
|
-
/**
|
|
1746
|
-
* The page layout that corresponds with the top-level component type
|
|
1747
|
-
* used on the page. For laying out custom content, use `auto` to allow
|
|
1748
|
-
* the page contents to expand beyond the bottom of the browser window
|
|
1749
|
-
* or `fit` to constrain the page contents to the available viewport.
|
|
1750
|
-
* @default "auto"
|
|
1751
|
-
*/
|
|
1752
|
-
set layout(value) {
|
|
1753
|
-
const layout = value || LAYOUT_DEFAULT;
|
|
1754
|
-
__classPrivateFieldSet(this, _SkyTabComponent__layout, layout, "f");
|
|
1755
|
-
this.cssClass = `${LAYOUT_CLASS_PREFIX}${layout}`;
|
|
1756
|
-
if (this.active) {
|
|
1757
|
-
__classPrivateFieldGet(this, _SkyTabComponent_tabsetService, "f").updateActiveTabLayout(layout);
|
|
1758
|
-
}
|
|
1759
|
-
}
|
|
1760
|
-
get layout() {
|
|
1761
|
-
return __classPrivateFieldGet(this, _SkyTabComponent__layout, "f");
|
|
1762
|
-
}
|
|
1763
|
-
/**
|
|
1764
|
-
* Alerts the tabset component when this component has changes that need to be reflected in the UI.
|
|
1765
|
-
*/
|
|
1766
|
-
get stateChange() {
|
|
1767
|
-
return __classPrivateFieldGet(this, _SkyTabComponent_stateChange, "f");
|
|
1768
|
-
}
|
|
1769
|
-
get tabIndexChange() {
|
|
1770
|
-
return __classPrivateFieldGet(this, _SkyTabComponent_tabIndexChange, "f");
|
|
1771
|
-
}
|
|
1772
|
-
constructor(changeDetector, permalinkService, tabsetService) {
|
|
1773
|
-
_SkyTabComponent_instances.add(this);
|
|
1774
|
-
this.cssClass = `${LAYOUT_CLASS_PREFIX}${LAYOUT_DEFAULT}`;
|
|
1775
|
-
/**
|
|
1776
|
-
* Fires when users click the button to close the tab.
|
|
1777
|
-
* The close button is added to the tab when you specify a listener for this event.
|
|
1778
|
-
* This event only applies when the tabset's `tabStyle` is `"tabs"`.
|
|
1779
|
-
*/
|
|
1780
|
-
this.close = new EventEmitter(); // eslint-disable-line @angular-eslint/no-output-native
|
|
1781
|
-
this.permalinkValueOrDefault = '';
|
|
1782
|
-
this.showContent = false;
|
|
1783
|
-
_SkyTabComponent__active.set(this, false);
|
|
1784
|
-
_SkyTabComponent_activeChange.set(this, void 0);
|
|
1785
|
-
_SkyTabComponent__permalinkValue.set(this, void 0);
|
|
1786
|
-
_SkyTabComponent_stateChange.set(this, void 0);
|
|
1787
|
-
_SkyTabComponent__tabHeading.set(this, void 0);
|
|
1788
|
-
_SkyTabComponent__tabIndex.set(this, void 0);
|
|
1789
|
-
_SkyTabComponent__layout.set(this, LAYOUT_DEFAULT);
|
|
1790
|
-
_SkyTabComponent_tabIndexChange.set(this, void 0);
|
|
1791
|
-
_SkyTabComponent_changeDetector.set(this, void 0);
|
|
1792
|
-
_SkyTabComponent_permalinkService.set(this, void 0);
|
|
1793
|
-
_SkyTabComponent_tabsetService.set(this, void 0);
|
|
1794
|
-
__classPrivateFieldSet(this, _SkyTabComponent_changeDetector, changeDetector, "f");
|
|
1795
|
-
__classPrivateFieldSet(this, _SkyTabComponent_permalinkService, permalinkService, "f");
|
|
1796
|
-
__classPrivateFieldSet(this, _SkyTabComponent_tabsetService, tabsetService, "f");
|
|
1797
|
-
const id = nextId++;
|
|
1798
|
-
this.tabPanelId = `sky-tab-${id}`;
|
|
1799
|
-
this.tabButtonId = `${this.tabPanelId}-nav-btn`;
|
|
1800
|
-
__classPrivateFieldSet(this, _SkyTabComponent_activeChange, new BehaviorSubject(undefined), "f");
|
|
1801
|
-
__classPrivateFieldSet(this, _SkyTabComponent_stateChange, new BehaviorSubject(undefined), "f");
|
|
1802
|
-
__classPrivateFieldSet(this, _SkyTabComponent_tabIndexChange, new BehaviorSubject(undefined), "f");
|
|
1803
|
-
__classPrivateFieldGet(this, _SkyTabComponent_instances, "m", _SkyTabComponent_setPermalinkValueOrDefault).call(this);
|
|
1804
|
-
}
|
|
1805
|
-
ngOnChanges(changes) {
|
|
1806
|
-
if ((changes['disabled'] && !changes['disabled'].firstChange) ||
|
|
1807
|
-
(changes['tabHeading'] && !changes['tabHeading'].firstChange) ||
|
|
1808
|
-
(changes['tabHeaderCount'] && !changes['tabHeaderCount'].firstChange) ||
|
|
1809
|
-
(changes['permalinkValue'] && !changes['permalinkValue'].firstChange)) {
|
|
1810
|
-
__classPrivateFieldGet(this, _SkyTabComponent_stateChange, "f").next();
|
|
1811
|
-
}
|
|
1812
|
-
}
|
|
1813
|
-
ngOnDestroy() {
|
|
1814
|
-
__classPrivateFieldGet(this, _SkyTabComponent_activeChange, "f").complete();
|
|
1815
|
-
__classPrivateFieldGet(this, _SkyTabComponent_stateChange, "f").complete();
|
|
1816
|
-
__classPrivateFieldGet(this, _SkyTabComponent_tabIndexChange, "f").complete();
|
|
1817
|
-
if (this.tabIndex !== undefined) {
|
|
1818
|
-
__classPrivateFieldGet(this, _SkyTabComponent_tabsetService, "f").unregisterTab(this.tabIndex);
|
|
1819
|
-
}
|
|
1820
|
-
}
|
|
1821
|
-
init() {
|
|
1822
|
-
__classPrivateFieldSet(this, _SkyTabComponent__tabIndex, __classPrivateFieldGet(this, _SkyTabComponent_tabsetService, "f").registerTab(this.tabIndex), "f");
|
|
1823
|
-
}
|
|
1824
|
-
activate() {
|
|
1825
|
-
__classPrivateFieldSet(this, _SkyTabComponent__active, true, "f");
|
|
1826
|
-
this.showContent = true;
|
|
1827
|
-
__classPrivateFieldGet(this, _SkyTabComponent_changeDetector, "f").markForCheck();
|
|
1828
|
-
}
|
|
1829
|
-
deactivate() {
|
|
1830
|
-
__classPrivateFieldSet(this, _SkyTabComponent__active, false, "f");
|
|
1831
|
-
this.showContent = false;
|
|
1832
|
-
__classPrivateFieldGet(this, _SkyTabComponent_changeDetector, "f").markForCheck();
|
|
1833
|
-
}
|
|
1834
|
-
isCloseable() {
|
|
1835
|
-
return this.close.observers.length > 0;
|
|
1836
|
-
}
|
|
1837
|
-
}
|
|
1838
|
-
_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__layout = 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() {
|
|
1839
|
-
this.permalinkValueOrDefault =
|
|
1840
|
-
__classPrivateFieldGet(this, _SkyTabComponent_permalinkService, "f").urlify(this.permalinkValue) ||
|
|
1841
|
-
__classPrivateFieldGet(this, _SkyTabComponent_permalinkService, "f").urlify(this.tabHeading);
|
|
1842
|
-
};
|
|
1843
|
-
SkyTabComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: SkyTabComponent, deps: [{ token: i0.ChangeDetectorRef }, { token: SkyTabsetPermalinkService }, { token: SkyTabsetService }], target: i0.ɵɵFactoryTarget.Component });
|
|
1844
|
-
SkyTabComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.9", type: SkyTabComponent, selector: "sky-tab", inputs: { active: "active", disabled: "disabled", permalinkValue: "permalinkValue", tabHeaderCount: "tabHeaderCount", tabHeading: "tabHeading", tabIndex: "tabIndex", layout: "layout" }, outputs: { close: "close" }, host: { properties: { "class": "this.cssClass" } }, 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", styles: [":host.sky-layout-host-fit{display:flex;flex-grow:1;position:static}:host.sky-layout-host-fit .sky-tab{flex-grow:1;position:relative}.sky-tab{flex-grow:var(--sky-layout-host-content-flex-grow, 0);overflow:var(--sky-layout-host-content-overflow, visible);padding:var(--sky-layout-host-content-spacing, 0);position:var(--sky-layout-host-content-position, static)}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
1845
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: SkyTabComponent, decorators: [{
|
|
1846
|
-
type: Component,
|
|
1847
|
-
args: [{ selector: 'sky-tab', changeDetection: ChangeDetectionStrategy.OnPush, template: "<div\n class=\"sky-tab\"\n role=\"tabpanel\"\n [attr.aria-labelledby]=\"tabButtonId\"\n [hidden]=\"!showContent\"\n [id]=\"tabPanelId\"\n>\n <ng-content></ng-content>\n</div>\n", styles: [":host.sky-layout-host-fit{display:flex;flex-grow:1;position:static}:host.sky-layout-host-fit .sky-tab{flex-grow:1;position:relative}.sky-tab{flex-grow:var(--sky-layout-host-content-flex-grow, 0);overflow:var(--sky-layout-host-content-overflow, visible);padding:var(--sky-layout-host-content-spacing, 0);position:var(--sky-layout-host-content-position, static)}\n"] }]
|
|
1848
|
-
}], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: SkyTabsetPermalinkService }, { type: SkyTabsetService }]; }, propDecorators: { active: [{
|
|
1849
|
-
type: Input
|
|
1850
|
-
}], disabled: [{
|
|
1851
|
-
type: Input
|
|
1852
|
-
}], permalinkValue: [{
|
|
1853
|
-
type: Input
|
|
1854
|
-
}], tabHeaderCount: [{
|
|
1855
|
-
type: Input
|
|
1856
|
-
}], tabHeading: [{
|
|
1857
|
-
type: Input
|
|
1858
|
-
}], tabIndex: [{
|
|
1859
|
-
type: Input
|
|
1860
|
-
}], layout: [{
|
|
1861
|
-
type: Input
|
|
1862
|
-
}], cssClass: [{
|
|
1863
|
-
type: HostBinding,
|
|
1864
|
-
args: ['class']
|
|
1865
|
-
}], close: [{
|
|
1866
|
-
type: Output
|
|
1867
|
-
}] } });
|
|
1868
|
-
|
|
1869
|
-
class SkyTabsetNavButtonDisabledPipe {
|
|
1870
|
-
transform(disabled, buttonType, tabToSelectExists, tabToSelectIsDisabled) {
|
|
1871
|
-
if (disabled !== undefined) {
|
|
1872
|
-
return disabled;
|
|
1873
|
-
}
|
|
1874
|
-
else if (buttonType === 'finish') {
|
|
1875
|
-
return false;
|
|
1876
|
-
}
|
|
1877
|
-
return !tabToSelectExists || !!tabToSelectIsDisabled;
|
|
1878
|
-
}
|
|
1879
|
-
}
|
|
1880
|
-
SkyTabsetNavButtonDisabledPipe.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: SkyTabsetNavButtonDisabledPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe });
|
|
1881
|
-
SkyTabsetNavButtonDisabledPipe.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "15.2.9", ngImport: i0, type: SkyTabsetNavButtonDisabledPipe, name: "skyTabsetNavButtonDisabled" });
|
|
1882
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: SkyTabsetNavButtonDisabledPipe, decorators: [{
|
|
1883
|
-
type: Pipe,
|
|
1884
|
-
args: [{
|
|
1885
|
-
name: 'skyTabsetNavButtonDisabled',
|
|
1886
|
-
}]
|
|
1887
|
-
}] });
|
|
1888
|
-
|
|
1889
|
-
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;
|
|
1890
|
-
const buttonTypeNext = 'next';
|
|
1891
|
-
const buttonTypePrevious = 'previous';
|
|
1892
|
-
const buttonTypeFinish = 'finish';
|
|
1893
|
-
class SkyTabsetNavButtonComponent {
|
|
1894
|
-
/**
|
|
1895
|
-
* The tabset wizard component to associate with the nav button.
|
|
1896
|
-
* @required
|
|
1897
|
-
*/
|
|
1898
|
-
get tabset() {
|
|
1899
|
-
return __classPrivateFieldGet(this, _SkyTabsetNavButtonComponent__tabset, "f");
|
|
1900
|
-
}
|
|
1901
|
-
set tabset(value) {
|
|
1902
|
-
__classPrivateFieldSet(this, _SkyTabsetNavButtonComponent__tabset, value, "f");
|
|
1903
|
-
if (__classPrivateFieldGet(this, _SkyTabsetNavButtonComponent_currentTabsetSub, "f")) {
|
|
1904
|
-
__classPrivateFieldGet(this, _SkyTabsetNavButtonComponent_currentTabsetSub, "f").unsubscribe();
|
|
1905
|
-
}
|
|
1906
|
-
if (value) {
|
|
1907
|
-
__classPrivateFieldSet(this, _SkyTabsetNavButtonComponent_currentTabsetSub, value.activeChange
|
|
1908
|
-
.pipe(distinctUntilChanged(), takeUntil(__classPrivateFieldGet(this, _SkyTabsetNavButtonComponent_ngUnsubscribe, "f")))
|
|
1909
|
-
.subscribe((index) => {
|
|
1910
|
-
var _a, _b;
|
|
1911
|
-
__classPrivateFieldSet(this, _SkyTabsetNavButtonComponent_activeSkyTabIndex, index, "f");
|
|
1912
|
-
__classPrivateFieldSet(this, _SkyTabsetNavButtonComponent_tabCount, (_b = (_a = __classPrivateFieldGet(this, _SkyTabsetNavButtonComponent__tabset, "f")) === null || _a === void 0 ? void 0 : _a.tabs) === null || _b === void 0 ? void 0 : _b.length, "f");
|
|
1913
|
-
__classPrivateFieldGet(this, _SkyTabsetNavButtonComponent_instances, "m", _SkyTabsetNavButtonComponent_updateTabToSelect).call(this);
|
|
1914
|
-
__classPrivateFieldGet(this, _SkyTabsetNavButtonComponent_instances, "m", _SkyTabsetNavButtonComponent_updateButtonVisibility).call(this);
|
|
1915
|
-
__classPrivateFieldGet(this, _SkyTabsetNavButtonComponent_instances, "m", _SkyTabsetNavButtonComponent_updateButtonProperties).call(this);
|
|
1916
|
-
}), "f");
|
|
1917
|
-
}
|
|
1918
|
-
else {
|
|
1919
|
-
__classPrivateFieldGet(this, _SkyTabsetNavButtonComponent_logger, "f").error('The SkyTabsetNavButtonComponent requires a reference to the SkyTabsetComponent it controls.');
|
|
1920
|
-
}
|
|
1921
|
-
}
|
|
1922
|
-
/**
|
|
1923
|
-
* The type of nav button to include.
|
|
1924
|
-
* @required
|
|
1925
|
-
*/
|
|
1926
|
-
get buttonType() {
|
|
1927
|
-
return __classPrivateFieldGet(this, _SkyTabsetNavButtonComponent__buttonType, "f");
|
|
1928
|
-
}
|
|
1929
|
-
set buttonType(value) {
|
|
1930
|
-
__classPrivateFieldSet(this, _SkyTabsetNavButtonComponent__buttonType, value, "f");
|
|
1931
|
-
__classPrivateFieldGet(this, _SkyTabsetNavButtonComponent_instances, "m", _SkyTabsetNavButtonComponent_updateTabToSelect).call(this);
|
|
1932
|
-
__classPrivateFieldGet(this, _SkyTabsetNavButtonComponent_instances, "m", _SkyTabsetNavButtonComponent_updateButtonProperties).call(this);
|
|
1933
|
-
__classPrivateFieldGet(this, _SkyTabsetNavButtonComponent_instances, "m", _SkyTabsetNavButtonComponent_updateButtonVisibility).call(this);
|
|
1934
|
-
if (value === buttonTypeFinish) {
|
|
1935
|
-
this.type = 'submit';
|
|
1936
|
-
}
|
|
1937
|
-
else {
|
|
1938
|
-
this.type = 'button';
|
|
1939
|
-
}
|
|
1940
|
-
}
|
|
1941
|
-
/**
|
|
1942
|
-
* Whether to disable the nav button.
|
|
1943
|
-
* Defaults to the disabled state of the next tab for `next`, the existence of a previous tab for `previous`,
|
|
1944
|
-
* and false for `finish`.
|
|
1945
|
-
*/
|
|
1946
|
-
set disabled(value) {
|
|
1947
|
-
__classPrivateFieldSet(this, _SkyTabsetNavButtonComponent__disabled, value, "f");
|
|
1948
|
-
}
|
|
1949
|
-
get disabled() {
|
|
1950
|
-
return __classPrivateFieldGet(this, _SkyTabsetNavButtonComponent__disabled, "f");
|
|
1951
|
-
}
|
|
1952
|
-
constructor(logger) {
|
|
1953
|
-
_SkyTabsetNavButtonComponent_instances.add(this);
|
|
1954
|
-
this.isVisible = false;
|
|
1955
|
-
this.type = 'submit';
|
|
1956
|
-
_SkyTabsetNavButtonComponent__buttonType.set(this, void 0);
|
|
1957
|
-
_SkyTabsetNavButtonComponent__disabled.set(this, void 0);
|
|
1958
|
-
_SkyTabsetNavButtonComponent__tabset.set(this, void 0);
|
|
1959
|
-
_SkyTabsetNavButtonComponent_activeIndexNumber.set(this, void 0);
|
|
1960
|
-
_SkyTabsetNavButtonComponent_activeSkyTabIndex.set(this, void 0);
|
|
1961
|
-
_SkyTabsetNavButtonComponent_currentTabsetSub.set(this, void 0);
|
|
1962
|
-
_SkyTabsetNavButtonComponent_logger.set(this, void 0);
|
|
1963
|
-
_SkyTabsetNavButtonComponent_tabCount.set(this, void 0);
|
|
1964
|
-
_SkyTabsetNavButtonComponent_ngUnsubscribe.set(this, new Subject());
|
|
1965
|
-
__classPrivateFieldSet(this, _SkyTabsetNavButtonComponent_logger, logger, "f");
|
|
1966
|
-
}
|
|
1967
|
-
ngOnDestroy() {
|
|
1968
|
-
__classPrivateFieldGet(this, _SkyTabsetNavButtonComponent_ngUnsubscribe, "f").next();
|
|
1969
|
-
__classPrivateFieldGet(this, _SkyTabsetNavButtonComponent_ngUnsubscribe, "f").complete();
|
|
1970
|
-
}
|
|
1971
|
-
buttonClick() {
|
|
1972
|
-
/* istanbul ignore else */
|
|
1973
|
-
if (this.tabToSelect && !this.tabToSelect.disabled && this.tabset) {
|
|
1974
|
-
this.tabset.active = this.tabToSelect.tabIndex;
|
|
1975
|
-
}
|
|
1976
|
-
}
|
|
1977
|
-
}
|
|
1978
|
-
_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() {
|
|
1979
|
-
const isLastStep = !!__classPrivateFieldGet(this, _SkyTabsetNavButtonComponent_tabCount, "f") && __classPrivateFieldGet(this, _SkyTabsetNavButtonComponent_activeIndexNumber, "f") === __classPrivateFieldGet(this, _SkyTabsetNavButtonComponent_tabCount, "f") - 1;
|
|
1980
|
-
if (this.buttonType === buttonTypeFinish) {
|
|
1981
|
-
this.isVisible = isLastStep;
|
|
1982
|
-
}
|
|
1983
|
-
else if (this.buttonType === buttonTypeNext) {
|
|
1984
|
-
this.isVisible = !isLastStep;
|
|
1985
|
-
}
|
|
1986
|
-
else {
|
|
1987
|
-
this.isVisible = true;
|
|
1988
|
-
}
|
|
1989
|
-
}, _SkyTabsetNavButtonComponent_updateButtonProperties = function _SkyTabsetNavButtonComponent_updateButtonProperties() {
|
|
1990
|
-
var _a;
|
|
1991
|
-
if (this.buttonType === buttonTypeNext ||
|
|
1992
|
-
this.buttonType === buttonTypeFinish) {
|
|
1993
|
-
this.buttonClassName = 'sky-btn-primary';
|
|
1994
|
-
}
|
|
1995
|
-
else {
|
|
1996
|
-
this.buttonClassName = 'sky-btn-default';
|
|
1997
|
-
}
|
|
1998
|
-
this.ariaControls = (_a = this.tabToSelect) === null || _a === void 0 ? void 0 : _a.tabPanelId;
|
|
1999
|
-
}, _SkyTabsetNavButtonComponent_updateTabToSelect = function _SkyTabsetNavButtonComponent_updateTabToSelect() {
|
|
2000
|
-
var _a;
|
|
2001
|
-
if ((_a = this.tabset) === null || _a === void 0 ? void 0 : _a.tabs) {
|
|
2002
|
-
const tabs = this.tabset.tabs.toArray();
|
|
2003
|
-
this.tabToSelect = undefined;
|
|
2004
|
-
// tab index can be a number or a string, but we need the actual number index
|
|
2005
|
-
__classPrivateFieldSet(this, _SkyTabsetNavButtonComponent_activeIndexNumber, tabs.findIndex((tab) => tab.tabIndex === __classPrivateFieldGet(this, _SkyTabsetNavButtonComponent_activeSkyTabIndex, "f")), "f");
|
|
2006
|
-
/* istanbul ignore else */
|
|
2007
|
-
if (__classPrivateFieldGet(this, _SkyTabsetNavButtonComponent_activeIndexNumber, "f") !== undefined) {
|
|
2008
|
-
if (this.buttonType === buttonTypeNext) {
|
|
2009
|
-
this.tabToSelect = tabs[__classPrivateFieldGet(this, _SkyTabsetNavButtonComponent_activeIndexNumber, "f") + 1];
|
|
2010
|
-
}
|
|
2011
|
-
else if (this.buttonType === buttonTypePrevious) {
|
|
2012
|
-
this.tabToSelect = tabs[__classPrivateFieldGet(this, _SkyTabsetNavButtonComponent_activeIndexNumber, "f") - 1];
|
|
2013
|
-
}
|
|
2014
|
-
}
|
|
2015
|
-
}
|
|
2016
|
-
};
|
|
2017
|
-
SkyTabsetNavButtonComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: SkyTabsetNavButtonComponent, deps: [{ token: i1.SkyLogService }], target: i0.ɵɵFactoryTarget.Component });
|
|
2018
|
-
SkyTabsetNavButtonComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.9", 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" }] });
|
|
2019
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: SkyTabsetNavButtonComponent, decorators: [{
|
|
2020
|
-
type: Component,
|
|
2021
|
-
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" }]
|
|
2022
|
-
}], ctorParameters: function () { return [{ type: i1.SkyLogService }]; }, propDecorators: { tabset: [{
|
|
2023
|
-
type: Input
|
|
2024
|
-
}], buttonType: [{
|
|
2025
|
-
type: Input
|
|
2026
|
-
}], buttonText: [{
|
|
2027
|
-
type: Input
|
|
2028
|
-
}], disabled: [{
|
|
2029
|
-
type: Input
|
|
2030
|
-
}] } });
|
|
2031
|
-
|
|
2032
|
-
var _SkyTabsetAdapterService_instances, _SkyTabsetAdapterService_currentOverflow, _SkyTabsetAdapterService_tabsetRef, _SkyTabsetAdapterService_tabsOffsetLeft, _SkyTabsetAdapterService_overflowChange, _SkyTabsetAdapterService_getTabsOffsetLeft;
|
|
2033
|
-
/**
|
|
2034
|
-
* @internal
|
|
2035
|
-
*/
|
|
2036
|
-
class SkyTabsetAdapterService {
|
|
2037
|
-
get overflowChange() {
|
|
2038
|
-
return __classPrivateFieldGet(this, _SkyTabsetAdapterService_overflowChange, "f");
|
|
2039
|
-
}
|
|
2040
|
-
constructor() {
|
|
2041
|
-
_SkyTabsetAdapterService_instances.add(this);
|
|
2042
|
-
_SkyTabsetAdapterService_currentOverflow.set(this, false);
|
|
2043
|
-
_SkyTabsetAdapterService_tabsetRef.set(this, void 0);
|
|
2044
|
-
_SkyTabsetAdapterService_tabsOffsetLeft.set(this, void 0);
|
|
2045
|
-
_SkyTabsetAdapterService_overflowChange.set(this, void 0);
|
|
2046
|
-
__classPrivateFieldSet(this, _SkyTabsetAdapterService_overflowChange, new BehaviorSubject(false), "f");
|
|
2047
|
-
}
|
|
2048
|
-
ngOnDestroy() {
|
|
2049
|
-
__classPrivateFieldGet(this, _SkyTabsetAdapterService_overflowChange, "f").complete();
|
|
2050
|
-
}
|
|
2051
|
-
registerTabset(tabsetRef) {
|
|
2052
|
-
__classPrivateFieldSet(this, _SkyTabsetAdapterService_tabsetRef, tabsetRef, "f");
|
|
2053
|
-
__classPrivateFieldSet(this, _SkyTabsetAdapterService_tabsOffsetLeft, __classPrivateFieldGet(this, _SkyTabsetAdapterService_instances, "m", _SkyTabsetAdapterService_getTabsOffsetLeft).call(this, tabsetRef.nativeElement), "f");
|
|
2054
|
-
}
|
|
2055
|
-
/**
|
|
2056
|
-
* Detects if the tab buttons are wider than the tabset container.
|
|
2057
|
-
*/
|
|
2058
|
-
detectOverflow() {
|
|
2059
|
-
var _a;
|
|
2060
|
-
const nativeElement = (_a = __classPrivateFieldGet(this, _SkyTabsetAdapterService_tabsetRef, "f")) === null || _a === void 0 ? void 0 : _a.nativeElement;
|
|
2061
|
-
const tabsetRect = nativeElement
|
|
2062
|
-
.querySelector('.sky-tabset')
|
|
2063
|
-
.getBoundingClientRect();
|
|
2064
|
-
const tabButtonsRect = nativeElement
|
|
2065
|
-
.querySelector('.sky-tabset-tabs')
|
|
2066
|
-
.getBoundingClientRect();
|
|
2067
|
-
const tabExtraButtonsRect = nativeElement
|
|
2068
|
-
.querySelector('.sky-tabset-btns')
|
|
2069
|
-
.getBoundingClientRect();
|
|
2070
|
-
const tabButtonsWidth = tabButtonsRect.width + tabExtraButtonsRect.width + __classPrivateFieldGet(this, _SkyTabsetAdapterService_tabsOffsetLeft, "f");
|
|
2071
|
-
const newOverflow = tabButtonsWidth > tabsetRect.width;
|
|
2072
|
-
if (__classPrivateFieldGet(this, _SkyTabsetAdapterService_currentOverflow, "f") !== newOverflow) {
|
|
2073
|
-
__classPrivateFieldSet(this, _SkyTabsetAdapterService_currentOverflow, newOverflow, "f");
|
|
2074
|
-
__classPrivateFieldGet(this, _SkyTabsetAdapterService_overflowChange, "f").next(__classPrivateFieldGet(this, _SkyTabsetAdapterService_currentOverflow, "f"));
|
|
2075
|
-
}
|
|
2076
|
-
}
|
|
2077
|
-
}
|
|
2078
|
-
_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) {
|
|
2079
|
-
var _a;
|
|
2080
|
-
const tabsetRect = tabsetEl.getBoundingClientRect();
|
|
2081
|
-
// The dropdown element is the first "tab" and always exists in the DOM, even when hidden.
|
|
2082
|
-
const firstTabRect = (_a = tabsetEl
|
|
2083
|
-
.querySelector('.sky-tabset-dropdown')) === null || _a === void 0 ? void 0 : _a.getBoundingClientRect();
|
|
2084
|
-
// Safety check
|
|
2085
|
-
/* istanbul ignore next */
|
|
2086
|
-
if (!firstTabRect) {
|
|
2087
|
-
return 0;
|
|
2088
|
-
}
|
|
2089
|
-
return firstTabRect.left - tabsetRect.left;
|
|
2090
|
-
};
|
|
2091
|
-
SkyTabsetAdapterService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: SkyTabsetAdapterService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
2092
|
-
SkyTabsetAdapterService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: SkyTabsetAdapterService });
|
|
2093
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: SkyTabsetAdapterService, decorators: [{
|
|
2094
|
-
type: Injectable
|
|
2095
|
-
}], ctorParameters: function () { return []; } });
|
|
2096
|
-
|
|
2097
|
-
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_layoutHostSvc, _SkyTabsetComponent_getInitialTabIndex, _SkyTabsetComponent_listenActiveIndexChange, _SkyTabsetComponent_updateLayout, _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;
|
|
2098
|
-
class SkyTabsetComponent {
|
|
2099
|
-
/**
|
|
2100
|
-
* Activates a tab by its `tabIndex` property.
|
|
2101
|
-
*/
|
|
2102
|
-
set active(value) {
|
|
2103
|
-
if (value === undefined ||
|
|
2104
|
-
__classPrivateFieldGet(this, _SkyTabsetComponent_tabsetService, "f").tabIndexesEqual(value, __classPrivateFieldGet(this, _SkyTabsetComponent__active, "f"))) {
|
|
2105
|
-
return;
|
|
2106
|
-
}
|
|
2107
|
-
__classPrivateFieldSet(this, _SkyTabsetComponent__active, value, "f");
|
|
2108
|
-
if (this.tabs) {
|
|
2109
|
-
__classPrivateFieldGet(this, _SkyTabsetComponent_tabsetService, "f").setActiveTabIndex(value);
|
|
2110
|
-
}
|
|
2111
|
-
else {
|
|
2112
|
-
// On init, wait for children tabs to render before broadcasting the active tab index.
|
|
2113
|
-
setTimeout(() => {
|
|
2114
|
-
if (__classPrivateFieldGet(this, _SkyTabsetComponent_tabsetService, "f").isValidTabIndex(value)) {
|
|
2115
|
-
// On init, yield to the permalink ID, if it exists.
|
|
2116
|
-
if (__classPrivateFieldGet(this, _SkyTabsetComponent_instances, "m", _SkyTabsetComponent_getActiveTabIndexByPermalinkId).call(this) === undefined) {
|
|
2117
|
-
__classPrivateFieldGet(this, _SkyTabsetComponent_tabsetService, "f").setActiveTabIndex(value);
|
|
2118
|
-
}
|
|
2119
|
-
}
|
|
2120
|
-
else {
|
|
2121
|
-
// Activate the first tab if the new tab index is invalid.
|
|
2122
|
-
__classPrivateFieldSet(this, _SkyTabsetComponent__active, __classPrivateFieldGet(this, _SkyTabsetComponent_tabsetService, "f").activateFirstTab(), "f");
|
|
2123
|
-
}
|
|
2124
|
-
});
|
|
2125
|
-
}
|
|
2126
|
-
}
|
|
2127
|
-
get active() {
|
|
2128
|
-
return __classPrivateFieldGet(this, _SkyTabsetComponent__active, "f");
|
|
2129
|
-
}
|
|
2130
|
-
/**
|
|
2131
|
-
* Distinguishes a tabset's unique state in the URL by generating a query parameter
|
|
2132
|
-
* that is written as `?<queryParam>-active-tab=<sanitized-tab-heading>`.
|
|
2133
|
-
* The query parameter's value is parsed automatically from the selected tab's heading text,
|
|
2134
|
-
* but you can supply a custom query parameter value for each tab with its `permalinkValue`.
|
|
2135
|
-
* This input only applies when `tabStyle` is `"tabs"`
|
|
2136
|
-
*/
|
|
2137
|
-
set permalinkId(value) {
|
|
2138
|
-
if (!value) {
|
|
2139
|
-
__classPrivateFieldSet(this, _SkyTabsetComponent__permalinkId, '', "f");
|
|
2140
|
-
}
|
|
2141
|
-
else {
|
|
2142
|
-
const sanitized = __classPrivateFieldGet(this, _SkyTabsetComponent_permalinkService, "f").urlify(value);
|
|
2143
|
-
__classPrivateFieldSet(this, _SkyTabsetComponent__permalinkId, `${sanitized}-active-tab`, "f");
|
|
2144
|
-
}
|
|
2145
|
-
}
|
|
2146
|
-
get permalinkId() {
|
|
2147
|
-
return __classPrivateFieldGet(this, _SkyTabsetComponent__permalinkId, "f");
|
|
2148
|
-
}
|
|
2149
|
-
/**
|
|
2150
|
-
* The behavior for a series of tabs.
|
|
2151
|
-
* @default "tabs"
|
|
2152
|
-
*/
|
|
2153
|
-
set tabStyle(value) {
|
|
2154
|
-
__classPrivateFieldSet(this, _SkyTabsetComponent__tabStyle, value || 'tabs', "f");
|
|
2155
|
-
}
|
|
2156
|
-
get tabStyle() {
|
|
2157
|
-
return __classPrivateFieldGet(this, _SkyTabsetComponent__tabStyle, "f");
|
|
2158
|
-
}
|
|
2159
|
-
set tabDisplayMode(value) {
|
|
2160
|
-
__classPrivateFieldSet(this, _SkyTabsetComponent__tabDisplayMode, value, "f");
|
|
2161
|
-
__classPrivateFieldGet(this, _SkyTabsetComponent_changeDetector, "f").markForCheck();
|
|
2162
|
-
}
|
|
2163
|
-
get tabDisplayMode() {
|
|
2164
|
-
return __classPrivateFieldGet(this, _SkyTabsetComponent__tabDisplayMode, "f");
|
|
2165
|
-
}
|
|
2166
|
-
set tabs(value) {
|
|
2167
|
-
__classPrivateFieldSet(this, _SkyTabsetComponent__tabs, value, "f");
|
|
2168
|
-
__classPrivateFieldGet(this, _SkyTabsetComponent_tabComponentsChangeUnsubscribe, "f").next();
|
|
2169
|
-
value === null || value === void 0 ? void 0 : value.changes.pipe(takeUntil(__classPrivateFieldGet(this, _SkyTabsetComponent_tabComponentsChangeUnsubscribe, "f"))).subscribe(() => {
|
|
2170
|
-
__classPrivateFieldGet(this, _SkyTabsetComponent_instances, "m", _SkyTabsetComponent_resetTabComponents).call(this);
|
|
2171
|
-
});
|
|
2172
|
-
}
|
|
2173
|
-
get tabs() {
|
|
2174
|
-
return __classPrivateFieldGet(this, _SkyTabsetComponent__tabs, "f");
|
|
2175
|
-
}
|
|
2176
|
-
constructor(changeDetector, elementRef, adapterService, permalinkService, tabsetService) {
|
|
2177
|
-
_SkyTabsetComponent_instances.add(this);
|
|
2178
|
-
/**
|
|
2179
|
-
* Fires when the active tab changes. This event emits the index of the active tab.
|
|
2180
|
-
*/
|
|
2181
|
-
this.activeChange = new EventEmitter();
|
|
2182
|
-
/**
|
|
2183
|
-
* Fires when users click the button to add a new tab.
|
|
2184
|
-
* The new tab button is added to the tab area when you specify a listener for this event.
|
|
2185
|
-
* This event only applies when `tabStyle` is `"tabs"`.
|
|
2186
|
-
*/
|
|
2187
|
-
this.newTab = new EventEmitter();
|
|
2188
|
-
/**
|
|
2189
|
-
* Fires when users click the button to open a tab.
|
|
2190
|
-
* The open tab button is added to the tab area when you specify a listener for this event.
|
|
2191
|
-
* This event only applies when `tabStyle` is `"tabs"`.
|
|
2192
|
-
*/
|
|
2193
|
-
this.openTab = new EventEmitter();
|
|
2194
|
-
/**
|
|
2195
|
-
* Fires when any tab's `tabIndex` value changes.
|
|
2196
|
-
* This event only applies when `tabStyle` is `"tabs"`.
|
|
2197
|
-
*/
|
|
2198
|
-
this.tabIndexesChange = new EventEmitter();
|
|
2199
|
-
this.cssClass = 'sky-tabset-layout-none';
|
|
2200
|
-
this.dropdownTriggerButtonText = '';
|
|
2201
|
-
this.tabButtons = [];
|
|
2202
|
-
_SkyTabsetComponent_ngUnsubscribe.set(this, new Subject());
|
|
2203
|
-
_SkyTabsetComponent_tabComponentsChangeUnsubscribe.set(this, new Subject());
|
|
2204
|
-
_SkyTabsetComponent_tabComponentsStateChangeUnsubscribe.set(this, new Subject());
|
|
2205
|
-
_SkyTabsetComponent__active.set(this, void 0);
|
|
2206
|
-
_SkyTabsetComponent__permalinkId.set(this, '');
|
|
2207
|
-
_SkyTabsetComponent__tabs.set(this, void 0);
|
|
2208
|
-
_SkyTabsetComponent__tabDisplayMode.set(this, 'tabs');
|
|
2209
|
-
_SkyTabsetComponent__tabStyle.set(this, 'tabs');
|
|
2210
|
-
_SkyTabsetComponent_changeDetector.set(this, void 0);
|
|
2211
|
-
_SkyTabsetComponent_elementRef.set(this, void 0);
|
|
2212
|
-
_SkyTabsetComponent_adapterService.set(this, void 0);
|
|
2213
|
-
_SkyTabsetComponent_permalinkService.set(this, void 0);
|
|
2214
|
-
_SkyTabsetComponent_tabsetService.set(this, void 0);
|
|
2215
|
-
_SkyTabsetComponent_layoutHostSvc.set(this, inject(SkyLayoutHostService, { optional: true }));
|
|
2216
|
-
__classPrivateFieldSet(this, _SkyTabsetComponent_changeDetector, changeDetector, "f");
|
|
2217
|
-
__classPrivateFieldSet(this, _SkyTabsetComponent_elementRef, elementRef, "f");
|
|
2218
|
-
__classPrivateFieldSet(this, _SkyTabsetComponent_adapterService, adapterService, "f");
|
|
2219
|
-
__classPrivateFieldSet(this, _SkyTabsetComponent_permalinkService, permalinkService, "f");
|
|
2220
|
-
__classPrivateFieldSet(this, _SkyTabsetComponent_tabsetService, tabsetService, "f");
|
|
2221
|
-
}
|
|
2222
|
-
ngAfterViewInit() {
|
|
2223
|
-
__classPrivateFieldGet(this, _SkyTabsetComponent_instances, "m", _SkyTabsetComponent_initTabComponents).call(this);
|
|
2224
|
-
const initialTabIndex = __classPrivateFieldGet(this, _SkyTabsetComponent_instances, "m", _SkyTabsetComponent_getInitialTabIndex).call(this);
|
|
2225
|
-
__classPrivateFieldGet(this, _SkyTabsetComponent_tabsetService, "f").setActiveTabIndex(initialTabIndex);
|
|
2226
|
-
__classPrivateFieldGet(this, _SkyTabsetComponent_instances, "m", _SkyTabsetComponent_listenTabButtonsOverflowChange).call(this);
|
|
2227
|
-
__classPrivateFieldGet(this, _SkyTabsetComponent_instances, "m", _SkyTabsetComponent_listenLocationPopStateChange).call(this);
|
|
2228
|
-
// If the currently active tab is getting unregistered, activate the next one.
|
|
2229
|
-
__classPrivateFieldGet(this, _SkyTabsetComponent_tabsetService, "f").activeTabUnregistered
|
|
2230
|
-
.pipe(takeUntil(__classPrivateFieldGet(this, _SkyTabsetComponent_ngUnsubscribe, "f")))
|
|
2231
|
-
.subscribe((tab) => {
|
|
2232
|
-
// Wait for the new tabs to render before activating.
|
|
2233
|
-
setTimeout(() => {
|
|
2234
|
-
__classPrivateFieldGet(this, _SkyTabsetComponent_tabsetService, "f").activateNearestTab(tab.arrayIndex);
|
|
2235
|
-
});
|
|
2236
|
-
});
|
|
2237
|
-
__classPrivateFieldGet(this, _SkyTabsetComponent_tabsetService, "f").activeTabLayout
|
|
2238
|
-
.pipe(takeUntil(__classPrivateFieldGet(this, _SkyTabsetComponent_ngUnsubscribe, "f")))
|
|
2239
|
-
.subscribe((layout) => {
|
|
2240
|
-
__classPrivateFieldGet(this, _SkyTabsetComponent_instances, "m", _SkyTabsetComponent_updateLayout).call(this, layout);
|
|
2241
|
-
});
|
|
2242
|
-
// Let the tabset render the initial active index before listening for changes.
|
|
2243
|
-
setTimeout(() => {
|
|
2244
|
-
__classPrivateFieldGet(this, _SkyTabsetComponent_instances, "m", _SkyTabsetComponent_listenTabComponentsStateChange).call(this);
|
|
2245
|
-
__classPrivateFieldGet(this, _SkyTabsetComponent_instances, "m", _SkyTabsetComponent_listenActiveIndexChange).call(this);
|
|
2246
|
-
__classPrivateFieldGet(this, _SkyTabsetComponent_permalinkService, "f").init();
|
|
2247
|
-
});
|
|
2248
|
-
}
|
|
2249
|
-
ngOnDestroy() {
|
|
2250
|
-
__classPrivateFieldGet(this, _SkyTabsetComponent_ngUnsubscribe, "f").next();
|
|
2251
|
-
__classPrivateFieldGet(this, _SkyTabsetComponent_ngUnsubscribe, "f").complete();
|
|
2252
|
-
__classPrivateFieldGet(this, _SkyTabsetComponent_tabComponentsChangeUnsubscribe, "f").next();
|
|
2253
|
-
__classPrivateFieldGet(this, _SkyTabsetComponent_tabComponentsChangeUnsubscribe, "f").complete();
|
|
2254
|
-
__classPrivateFieldGet(this, _SkyTabsetComponent_instances, "m", _SkyTabsetComponent_unsubscribeTabComponentsStateChange).call(this);
|
|
2255
|
-
if (this.permalinkId) {
|
|
2256
|
-
__classPrivateFieldGet(this, _SkyTabsetComponent_permalinkService, "f").clearParam(this.permalinkId);
|
|
2257
|
-
}
|
|
2258
|
-
}
|
|
2259
|
-
onWindowResize() {
|
|
2260
|
-
__classPrivateFieldGet(this, _SkyTabsetComponent_adapterService, "f").detectOverflow();
|
|
2261
|
-
}
|
|
2262
|
-
onTabCloseClick(tabButton) {
|
|
2263
|
-
var _a;
|
|
2264
|
-
const tabComponent = (_a = this.tabs) === null || _a === void 0 ? void 0 : _a.find((tab) => __classPrivateFieldGet(this, _SkyTabsetComponent_tabsetService, "f").tabIndexesEqual(tab.tabIndex, tabButton.tabIndex));
|
|
2265
|
-
tabComponent === null || tabComponent === void 0 ? void 0 : tabComponent.close.emit();
|
|
2266
|
-
}
|
|
2267
|
-
onTabButtonClick(tabButton) {
|
|
2268
|
-
__classPrivateFieldGet(this, _SkyTabsetComponent_tabsetService, "f").setActiveTabIndex(tabButton.tabIndex);
|
|
2269
|
-
}
|
|
2270
|
-
onNewTabClick() {
|
|
2271
|
-
this.newTab.emit();
|
|
2272
|
-
}
|
|
2273
|
-
onOpenTabClick() {
|
|
2274
|
-
this.openTab.emit();
|
|
2275
|
-
}
|
|
2276
|
-
onRightKeyDown() {
|
|
2277
|
-
__classPrivateFieldGet(this, _SkyTabsetComponent_tabsetService, "f").focusNextTabBtn(this.tabButtons);
|
|
2278
|
-
}
|
|
2279
|
-
onLeftKeyDown() {
|
|
2280
|
-
__classPrivateFieldGet(this, _SkyTabsetComponent_tabsetService, "f").focusPrevTabBtn(this.tabButtons);
|
|
2281
|
-
}
|
|
2282
|
-
onHomeKeyDown() {
|
|
2283
|
-
__classPrivateFieldGet(this, _SkyTabsetComponent_tabsetService, "f").focusFirstOrNearestTabBtn(this.tabButtons);
|
|
2284
|
-
}
|
|
2285
|
-
onEndKeyDown() {
|
|
2286
|
-
__classPrivateFieldGet(this, _SkyTabsetComponent_tabsetService, "f").focusLastOrNearestTabBtn(this.tabButtons);
|
|
2287
|
-
}
|
|
2288
|
-
}
|
|
2289
|
-
_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_layoutHostSvc = new WeakMap(), _SkyTabsetComponent_instances = new WeakSet(), _SkyTabsetComponent_getInitialTabIndex = function _SkyTabsetComponent_getInitialTabIndex() {
|
|
2290
|
-
var _a;
|
|
2291
|
-
let activeIndex = __classPrivateFieldGet(this, _SkyTabsetComponent_instances, "m", _SkyTabsetComponent_getActiveTabIndexByPermalinkId).call(this);
|
|
2292
|
-
if (activeIndex === undefined) {
|
|
2293
|
-
activeIndex = (_a = __classPrivateFieldGet(this, _SkyTabsetComponent_instances, "m", _SkyTabsetComponent_getActiveTabComponent).call(this)) === null || _a === void 0 ? void 0 : _a.tabIndex;
|
|
2294
|
-
if (activeIndex === undefined) {
|
|
2295
|
-
activeIndex = this.active;
|
|
2296
|
-
}
|
|
2297
|
-
}
|
|
2298
|
-
return activeIndex;
|
|
2299
|
-
}, _SkyTabsetComponent_listenActiveIndexChange = function _SkyTabsetComponent_listenActiveIndexChange() {
|
|
2300
|
-
__classPrivateFieldGet(this, _SkyTabsetComponent_tabsetService, "f").activeTabIndex
|
|
2301
|
-
.pipe(distinctUntilChanged(), takeUntil(__classPrivateFieldGet(this, _SkyTabsetComponent_ngUnsubscribe, "f")))
|
|
2302
|
-
.subscribe((activeIndex) => {
|
|
2303
|
-
__classPrivateFieldGet(this, _SkyTabsetComponent_instances, "m", _SkyTabsetComponent_updateTabsetComponent).call(this, activeIndex);
|
|
2304
|
-
const activeTab = __classPrivateFieldGet(this, _SkyTabsetComponent_instances, "m", _SkyTabsetComponent_getActiveTabComponent).call(this);
|
|
2305
|
-
__classPrivateFieldGet(this, _SkyTabsetComponent_instances, "m", _SkyTabsetComponent_updateLayout).call(this, activeTab === null || activeTab === void 0 ? void 0 : activeTab.layout);
|
|
2306
|
-
});
|
|
2307
|
-
}, _SkyTabsetComponent_updateLayout = function _SkyTabsetComponent_updateLayout(layout) {
|
|
2308
|
-
if (__classPrivateFieldGet(this, _SkyTabsetComponent_layoutHostSvc, "f") && layout) {
|
|
2309
|
-
__classPrivateFieldGet(this, _SkyTabsetComponent_layoutHostSvc, "f").setHostLayoutForChild({
|
|
2310
|
-
layout,
|
|
2311
|
-
});
|
|
2312
|
-
this.cssClass = `sky-tabset-layout-${layout}`;
|
|
2313
|
-
}
|
|
2314
|
-
}, _SkyTabsetComponent_listenTabComponentsStateChange = function _SkyTabsetComponent_listenTabComponentsStateChange() {
|
|
2315
|
-
if (this.tabs) {
|
|
2316
|
-
combineLatest(this.tabs.map((tab) => tab.activeChange))
|
|
2317
|
-
.pipe(takeUntil(race(__classPrivateFieldGet(this, _SkyTabsetComponent_tabComponentsStateChangeUnsubscribe, "f"), __classPrivateFieldGet(this, _SkyTabsetComponent_ngUnsubscribe, "f"))))
|
|
2318
|
-
.subscribe(() => {
|
|
2319
|
-
// Wait for the tab components to render changes before finding the active one.
|
|
2320
|
-
setTimeout(() => {
|
|
2321
|
-
var _a;
|
|
2322
|
-
const tabIndex = (_a = __classPrivateFieldGet(this, _SkyTabsetComponent_instances, "m", _SkyTabsetComponent_getActiveTabComponent).call(this)) === null || _a === void 0 ? void 0 : _a.tabIndex;
|
|
2323
|
-
__classPrivateFieldGet(this, _SkyTabsetComponent_tabsetService, "f").setActiveTabIndex(tabIndex);
|
|
2324
|
-
});
|
|
2325
|
-
});
|
|
2326
|
-
combineLatest(this.tabs.map((tab) => tab.tabIndexChange))
|
|
2327
|
-
.pipe(takeUntil(race(__classPrivateFieldGet(this, _SkyTabsetComponent_tabComponentsStateChangeUnsubscribe, "f"), __classPrivateFieldGet(this, _SkyTabsetComponent_ngUnsubscribe, "f"))))
|
|
2328
|
-
.subscribe(() => {
|
|
2329
|
-
// Don't emit the first change.
|
|
2330
|
-
if (this.lastActiveTabIndex !== undefined) {
|
|
2331
|
-
// Wait for the tab components to render changes before updating the view.
|
|
2332
|
-
setTimeout(() => {
|
|
2333
|
-
__classPrivateFieldGet(this, _SkyTabsetComponent_instances, "m", _SkyTabsetComponent_updateTabsetComponent).call(this, __classPrivateFieldGet(this, _SkyTabsetComponent_tabsetService, "f").currentActiveTabIndex, true);
|
|
2334
|
-
__classPrivateFieldGet(this, _SkyTabsetComponent_instances, "m", _SkyTabsetComponent_emitTabIndexChange).call(this);
|
|
2335
|
-
});
|
|
2336
|
-
}
|
|
2337
|
-
});
|
|
2338
|
-
combineLatest(this.tabs.map((tab) => tab.stateChange))
|
|
2339
|
-
.pipe(takeUntil(race(__classPrivateFieldGet(this, _SkyTabsetComponent_tabComponentsStateChangeUnsubscribe, "f"), __classPrivateFieldGet(this, _SkyTabsetComponent_ngUnsubscribe, "f"))))
|
|
2340
|
-
.subscribe(() => {
|
|
2341
|
-
// Wait for the tab components to render changes before finding the active one.
|
|
2342
|
-
setTimeout(() => {
|
|
2343
|
-
__classPrivateFieldGet(this, _SkyTabsetComponent_instances, "m", _SkyTabsetComponent_updateTabsetComponent).call(this, __classPrivateFieldGet(this, _SkyTabsetComponent_tabsetService, "f").currentActiveTabIndex, true);
|
|
2344
|
-
});
|
|
2345
|
-
});
|
|
2346
|
-
}
|
|
2347
|
-
}, _SkyTabsetComponent_initTabComponents = function _SkyTabsetComponent_initTabComponents() {
|
|
2348
|
-
var _a;
|
|
2349
|
-
(_a = this.tabs) === null || _a === void 0 ? void 0 : _a.forEach((tab) => tab.init());
|
|
2350
|
-
}, _SkyTabsetComponent_resetTabComponents = function _SkyTabsetComponent_resetTabComponents() {
|
|
2351
|
-
var _a, _b;
|
|
2352
|
-
__classPrivateFieldGet(this, _SkyTabsetComponent_instances, "m", _SkyTabsetComponent_unsubscribeTabComponentsStateChange).call(this);
|
|
2353
|
-
__classPrivateFieldGet(this, _SkyTabsetComponent_tabsetService, "f").unregisterAll();
|
|
2354
|
-
// If there are no tab components, do a hard reset of the view.
|
|
2355
|
-
if (((_a = this.tabs) === null || _a === void 0 ? void 0 : _a.length) === 0) {
|
|
2356
|
-
__classPrivateFieldGet(this, _SkyTabsetComponent_instances, "m", _SkyTabsetComponent_updateTabsetComponent).call(this, 0, true);
|
|
2357
|
-
return;
|
|
2358
|
-
}
|
|
2359
|
-
__classPrivateFieldGet(this, _SkyTabsetComponent_instances, "m", _SkyTabsetComponent_initTabComponents).call(this);
|
|
2360
|
-
const activeIndex = (_b = __classPrivateFieldGet(this, _SkyTabsetComponent_instances, "m", _SkyTabsetComponent_getActiveTabComponent).call(this)) === null || _b === void 0 ? void 0 : _b.tabIndex;
|
|
2361
|
-
__classPrivateFieldGet(this, _SkyTabsetComponent_tabsetService, "f").setActiveTabIndex(activeIndex, {
|
|
2362
|
-
emitChange: false,
|
|
2363
|
-
});
|
|
2364
|
-
__classPrivateFieldGet(this, _SkyTabsetComponent_instances, "m", _SkyTabsetComponent_listenTabComponentsStateChange).call(this);
|
|
2365
|
-
}, _SkyTabsetComponent_emitTabIndexChange = function _SkyTabsetComponent_emitTabIndexChange() {
|
|
2366
|
-
var _a;
|
|
2367
|
-
this.tabIndexesChange.emit({
|
|
2368
|
-
tabs: (_a = this.tabs) === null || _a === void 0 ? void 0 : _a.map((tab) => ({
|
|
2369
|
-
tabHeading: tab.tabHeading,
|
|
2370
|
-
tabIndex: tab.tabIndex,
|
|
2371
|
-
})),
|
|
2372
|
-
});
|
|
2373
|
-
}, _SkyTabsetComponent_unsubscribeTabComponentsStateChange = function _SkyTabsetComponent_unsubscribeTabComponentsStateChange() {
|
|
2374
|
-
__classPrivateFieldGet(this, _SkyTabsetComponent_tabComponentsStateChangeUnsubscribe, "f").next();
|
|
2375
|
-
__classPrivateFieldGet(this, _SkyTabsetComponent_tabComponentsStateChangeUnsubscribe, "f").complete();
|
|
2376
|
-
__classPrivateFieldSet(this, _SkyTabsetComponent_tabComponentsStateChangeUnsubscribe, new Subject(), "f");
|
|
2377
|
-
}, _SkyTabsetComponent_listenTabButtonsOverflowChange = function _SkyTabsetComponent_listenTabButtonsOverflowChange() {
|
|
2378
|
-
__classPrivateFieldGet(this, _SkyTabsetComponent_adapterService, "f").registerTabset(__classPrivateFieldGet(this, _SkyTabsetComponent_elementRef, "f"));
|
|
2379
|
-
__classPrivateFieldGet(this, _SkyTabsetComponent_adapterService, "f").overflowChange
|
|
2380
|
-
.pipe(takeUntil(__classPrivateFieldGet(this, _SkyTabsetComponent_ngUnsubscribe, "f")))
|
|
2381
|
-
.subscribe((isOverflowing) => {
|
|
2382
|
-
this.tabDisplayMode = isOverflowing ? 'dropdown' : 'tabs';
|
|
2383
|
-
__classPrivateFieldGet(this, _SkyTabsetComponent_changeDetector, "f").markForCheck();
|
|
2384
|
-
});
|
|
2385
|
-
}, _SkyTabsetComponent_listenLocationPopStateChange = function _SkyTabsetComponent_listenLocationPopStateChange() {
|
|
2386
|
-
__classPrivateFieldGet(this, _SkyTabsetComponent_permalinkService, "f").popStateChange
|
|
2387
|
-
.pipe(takeUntil(__classPrivateFieldGet(this, _SkyTabsetComponent_ngUnsubscribe, "f")))
|
|
2388
|
-
.subscribe(() => {
|
|
2389
|
-
__classPrivateFieldGet(this, _SkyTabsetComponent_instances, "m", _SkyTabsetComponent_setActiveTabIndexByPermalinkId).call(this);
|
|
2390
|
-
});
|
|
2391
|
-
}, _SkyTabsetComponent_setActiveTabIndexByPermalinkId = function _SkyTabsetComponent_setActiveTabIndexByPermalinkId() {
|
|
2392
|
-
const activeIndex = __classPrivateFieldGet(this, _SkyTabsetComponent_instances, "m", _SkyTabsetComponent_getActiveTabIndexByPermalinkId).call(this);
|
|
2393
|
-
__classPrivateFieldGet(this, _SkyTabsetComponent_tabsetService, "f").setActiveTabIndex(activeIndex);
|
|
2394
|
-
}, _SkyTabsetComponent_getActiveTabIndexByPermalinkId = function _SkyTabsetComponent_getActiveTabIndexByPermalinkId() {
|
|
2395
|
-
var _a, _b;
|
|
2396
|
-
if (this.permalinkId) {
|
|
2397
|
-
const paramValue = __classPrivateFieldGet(this, _SkyTabsetComponent_permalinkService, "f").getParam(this.permalinkId);
|
|
2398
|
-
if (paramValue) {
|
|
2399
|
-
return (_b = (_a = this.tabs) === null || _a === void 0 ? void 0 : _a.find((tab) => tab.permalinkValueOrDefault === paramValue)) === null || _b === void 0 ? void 0 : _b.tabIndex;
|
|
2400
|
-
}
|
|
2401
|
-
return undefined;
|
|
2402
|
-
}
|
|
2403
|
-
return undefined;
|
|
2404
|
-
}, _SkyTabsetComponent_getActiveTabComponent = function _SkyTabsetComponent_getActiveTabComponent() {
|
|
2405
|
-
var _a;
|
|
2406
|
-
return (_a = this.tabs) === null || _a === void 0 ? void 0 : _a.toArray().reverse().find((tab) => tab.active === true);
|
|
2407
|
-
}, _SkyTabsetComponent_createTabButtons = function _SkyTabsetComponent_createTabButtons(activeIndex) {
|
|
2408
|
-
// Safety check
|
|
2409
|
-
/* istanbul ignore next */
|
|
2410
|
-
if (!this.tabs) {
|
|
2411
|
-
return [];
|
|
2412
|
-
}
|
|
2413
|
-
return this.tabs.map((tab, index) => ({
|
|
2414
|
-
active: __classPrivateFieldGet(this, _SkyTabsetComponent_tabsetService, "f").tabIndexesEqual(tab.tabIndex, activeIndex),
|
|
2415
|
-
closeable: tab.isCloseable(),
|
|
2416
|
-
ariaControls: tab.tabPanelId,
|
|
2417
|
-
disabled: tab.disabled,
|
|
2418
|
-
buttonHref: tab.disabled
|
|
2419
|
-
? null
|
|
2420
|
-
: __classPrivateFieldGet(this, _SkyTabsetComponent_permalinkService, "f").getParamHref(this.permalinkId, tab.permalinkValueOrDefault),
|
|
2421
|
-
buttonId: tab.tabButtonId,
|
|
2422
|
-
buttonTextCount: tab.tabHeaderCount,
|
|
2423
|
-
buttonText: tab.tabHeading,
|
|
2424
|
-
tabIndex: tab.tabIndex,
|
|
2425
|
-
tabNumber: index + 1,
|
|
2426
|
-
totalTabsCount: this.tabs.length,
|
|
2427
|
-
}));
|
|
2428
|
-
}, _SkyTabsetComponent_updateTabButtons = function _SkyTabsetComponent_updateTabButtons(activeIndex) {
|
|
2429
|
-
this.tabButtons.forEach((button) => {
|
|
2430
|
-
button.active = __classPrivateFieldGet(this, _SkyTabsetComponent_tabsetService, "f").tabIndexesEqual(button.tabIndex, activeIndex);
|
|
2431
|
-
});
|
|
2432
|
-
}, _SkyTabsetComponent_updateTabsetComponent = function _SkyTabsetComponent_updateTabsetComponent(activeIndex, regenerateTabButtons = false) {
|
|
2433
|
-
var _a, _b, _c, _d;
|
|
2434
|
-
// Activate/deactivate tab components.
|
|
2435
|
-
(_a = this.tabs) === null || _a === void 0 ? void 0 : _a.forEach((tab) => {
|
|
2436
|
-
__classPrivateFieldGet(this, _SkyTabsetComponent_tabsetService, "f").tabIndexesEqual(tab.tabIndex, activeIndex)
|
|
2437
|
-
? tab.activate()
|
|
2438
|
-
: tab.deactivate();
|
|
2439
|
-
});
|
|
2440
|
-
// Update the tab button models.
|
|
2441
|
-
if (regenerateTabButtons || !this.tabButtons.length) {
|
|
2442
|
-
this.tabButtons = __classPrivateFieldGet(this, _SkyTabsetComponent_instances, "m", _SkyTabsetComponent_createTabButtons).call(this, activeIndex);
|
|
2443
|
-
}
|
|
2444
|
-
else {
|
|
2445
|
-
__classPrivateFieldGet(this, _SkyTabsetComponent_instances, "m", _SkyTabsetComponent_updateTabButtons).call(this, activeIndex);
|
|
2446
|
-
}
|
|
2447
|
-
// Update the dropdown trigger button text.
|
|
2448
|
-
this.dropdownTriggerButtonText =
|
|
2449
|
-
(_c = (_b = this.tabButtons.find((b) => {
|
|
2450
|
-
return __classPrivateFieldGet(this, _SkyTabsetComponent_tabsetService, "f").tabIndexesEqual(b.tabIndex, activeIndex);
|
|
2451
|
-
})) === null || _b === void 0 ? void 0 : _b.buttonText) !== null && _c !== void 0 ? _c : '';
|
|
2452
|
-
// Set the query params based on active tab.
|
|
2453
|
-
if (this.permalinkId) {
|
|
2454
|
-
const activeTabComponent = (_d = this.tabs) === null || _d === void 0 ? void 0 : _d.find((tab) => {
|
|
2455
|
-
return __classPrivateFieldGet(this, _SkyTabsetComponent_tabsetService, "f").tabIndexesEqual(tab.tabIndex, activeIndex);
|
|
2456
|
-
});
|
|
2457
|
-
if (activeTabComponent) {
|
|
2458
|
-
__classPrivateFieldGet(this, _SkyTabsetComponent_permalinkService, "f").setParam(this.permalinkId, activeTabComponent.permalinkValueOrDefault);
|
|
2459
|
-
}
|
|
2460
|
-
}
|
|
2461
|
-
// Wait for tab button view models to render before gauging dimensions.
|
|
2462
|
-
setTimeout(() => {
|
|
2463
|
-
__classPrivateFieldGet(this, _SkyTabsetComponent_adapterService, "f").detectOverflow();
|
|
2464
|
-
});
|
|
2465
|
-
__classPrivateFieldGet(this, _SkyTabsetComponent_changeDetector, "f").markForCheck();
|
|
2466
|
-
// Emit the new active index value to consumers.
|
|
2467
|
-
if (this.lastActiveTabIndex !== activeIndex) {
|
|
2468
|
-
this.lastActiveTabIndex = activeIndex;
|
|
2469
|
-
this.activeChange.emit(activeIndex);
|
|
2470
|
-
}
|
|
2471
|
-
};
|
|
2472
|
-
SkyTabsetComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: SkyTabsetComponent, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: SkyTabsetAdapterService }, { token: SkyTabsetPermalinkService }, { token: SkyTabsetService }], target: i0.ɵɵFactoryTarget.Component });
|
|
2473
|
-
SkyTabsetComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.9", 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" }, host: { properties: { "class": "this.cssClass" } }, providers: [
|
|
2474
|
-
SkyTabsetAdapterService,
|
|
2475
|
-
SkyTabsetPermalinkService,
|
|
2476
|
-
SkyTabsetService,
|
|
2477
|
-
], 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.sky-tabset-layout-fit{position:absolute;inset:0;display:flex;flex-direction:column}sky-tabset.sky-tabset-layout-fit .sky-tabset{flex-grow:0}.sky-tabset{--sky-tabset-margin: 0;align-items:center;border-bottom:2px solid #0974a1;display:flex;list-style-type:none;margin:var(--sky-tabset-margin);padding:0 0 0 var(--sky-layout-host-tab-content-spacing, 15px);white-space:nowrap;flex-grow:var(--sky-layout-host-content-flex-grow, 0);overflow:var(--sky-layout-host-content-overflow, hidden);position:var(--sky-layout-host-content-position, static)}.sky-tabset.sky-tabset-style-wizard{border-bottom:none;padding-left:0}.sky-modal-content .sky-tabset-style-tabs{--sky-tabset-margin: var( --sky-compat-tabset-tabs-modal-margin, 0 -15px 20px )}.sky-modal-content .sky-tabset-style-wizard{--sky-tabset-margin: var( --sky-compat-tabset-wizard-modal-margin, 0 0 20px )}.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{--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.λ2, selector: "sky-dropdown-button" }, { kind: "component", type: i5.λ3, selector: "sky-dropdown", inputs: ["buttonStyle", "buttonType", "disabled", "dismissOnBlur", "label", "horizontalAlignment", "messageStream", "title", "trigger"] }, { kind: "component", type: i5.λ1, selector: "sky-dropdown-item", inputs: ["ariaRole"] }, { kind: "component", type: i5.λ4, selector: "sky-dropdown-menu", inputs: ["ariaLabelledBy", "ariaRole", "useNativeFocus"], outputs: ["menuChanges"] }, { kind: "component", type: i6.λ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 });
|
|
2478
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: SkyTabsetComponent, decorators: [{
|
|
2479
|
-
type: Component,
|
|
2480
|
-
args: [{ selector: 'sky-tabset', providers: [
|
|
2481
|
-
SkyTabsetAdapterService,
|
|
2482
|
-
SkyTabsetPermalinkService,
|
|
2483
|
-
SkyTabsetService,
|
|
2484
|
-
], 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.sky-tabset-layout-fit{position:absolute;inset:0;display:flex;flex-direction:column}sky-tabset.sky-tabset-layout-fit .sky-tabset{flex-grow:0}.sky-tabset{--sky-tabset-margin: 0;align-items:center;border-bottom:2px solid #0974a1;display:flex;list-style-type:none;margin:var(--sky-tabset-margin);padding:0 0 0 var(--sky-layout-host-tab-content-spacing, 15px);white-space:nowrap;flex-grow:var(--sky-layout-host-content-flex-grow, 0);overflow:var(--sky-layout-host-content-overflow, hidden);position:var(--sky-layout-host-content-position, static)}.sky-tabset.sky-tabset-style-wizard{border-bottom:none;padding-left:0}.sky-modal-content .sky-tabset-style-tabs{--sky-tabset-margin: var( --sky-compat-tabset-tabs-modal-margin, 0 -15px 20px )}.sky-modal-content .sky-tabset-style-wizard{--sky-tabset-margin: var( --sky-compat-tabset-wizard-modal-margin, 0 0 20px )}.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{--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"] }]
|
|
2485
|
-
}], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: SkyTabsetAdapterService }, { type: SkyTabsetPermalinkService }, { type: SkyTabsetService }]; }, propDecorators: { active: [{
|
|
2486
|
-
type: Input
|
|
2487
|
-
}], ariaLabel: [{
|
|
2488
|
-
type: Input
|
|
2489
|
-
}], ariaLabelledBy: [{
|
|
2490
|
-
type: Input
|
|
2491
|
-
}], permalinkId: [{
|
|
2492
|
-
type: Input
|
|
2493
|
-
}], tabStyle: [{
|
|
2494
|
-
type: Input
|
|
2495
|
-
}], activeChange: [{
|
|
2496
|
-
type: Output
|
|
2497
|
-
}], newTab: [{
|
|
2498
|
-
type: Output
|
|
2499
|
-
}], openTab: [{
|
|
2500
|
-
type: Output
|
|
2501
|
-
}], tabIndexesChange: [{
|
|
2502
|
-
type: Output
|
|
2503
|
-
}], tabs: [{
|
|
2504
|
-
type: ContentChildren,
|
|
2505
|
-
args: [SkyTabComponent]
|
|
2506
|
-
}], cssClass: [{
|
|
2507
|
-
type: HostBinding,
|
|
2508
|
-
args: ['class']
|
|
2509
|
-
}] } });
|
|
2510
|
-
|
|
2511
|
-
class SkyTabsModule {
|
|
2512
|
-
}
|
|
2513
|
-
SkyTabsModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: SkyTabsModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
2514
|
-
SkyTabsModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "15.2.9", ngImport: i0, type: SkyTabsModule, declarations: [SkyTabButtonComponent,
|
|
2515
|
-
SkyTabComponent,
|
|
2516
|
-
SkyTabsetComponent,
|
|
2517
|
-
SkyTabsetNavButtonComponent,
|
|
2518
|
-
SkyTabsetNavButtonDisabledPipe], imports: [CommonModule,
|
|
2519
|
-
RouterModule,
|
|
2520
|
-
SkyDropdownModule,
|
|
2521
|
-
SkyI18nModule,
|
|
2522
|
-
SkyIconModule,
|
|
2523
|
-
SkyTabsResourcesModule,
|
|
2524
|
-
SkyThemeModule], exports: [SkyTabComponent, SkyTabsetComponent, SkyTabsetNavButtonComponent] });
|
|
2525
|
-
SkyTabsModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: SkyTabsModule, imports: [CommonModule,
|
|
2526
|
-
RouterModule,
|
|
2527
|
-
SkyDropdownModule,
|
|
2528
|
-
SkyI18nModule,
|
|
2529
|
-
SkyIconModule,
|
|
2530
|
-
SkyTabsResourcesModule,
|
|
2531
|
-
SkyThemeModule] });
|
|
2532
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: SkyTabsModule, decorators: [{
|
|
2533
|
-
type: NgModule,
|
|
2534
|
-
args: [{
|
|
2535
|
-
declarations: [
|
|
2536
|
-
SkyTabButtonComponent,
|
|
2537
|
-
SkyTabComponent,
|
|
2538
|
-
SkyTabsetComponent,
|
|
2539
|
-
SkyTabsetNavButtonComponent,
|
|
2540
|
-
SkyTabsetNavButtonDisabledPipe,
|
|
2541
|
-
],
|
|
2542
|
-
imports: [
|
|
2543
|
-
CommonModule,
|
|
2544
|
-
RouterModule,
|
|
2545
|
-
SkyDropdownModule,
|
|
2546
|
-
SkyI18nModule,
|
|
2547
|
-
SkyIconModule,
|
|
2548
|
-
SkyTabsResourcesModule,
|
|
2549
|
-
SkyThemeModule,
|
|
2550
|
-
],
|
|
2551
|
-
exports: [SkyTabComponent, SkyTabsetComponent, SkyTabsetNavButtonComponent],
|
|
2552
|
-
}]
|
|
2553
|
-
}] });
|
|
2554
|
-
|
|
2555
|
-
/**
|
|
2556
|
-
* Generated bundle index. Do not edit.
|
|
2557
|
-
*/
|
|
2558
|
-
|
|
2559
|
-
export { SkySectionedFormComponent, SkySectionedFormMessageType, SkySectionedFormModule, SkySectionedFormService, SkyTabsModule, SkyVerticalTabsetModule, SkyTabComponent as λ1, SkyTabsetComponent as λ2, SkyTabsetNavButtonComponent as λ3, SkyVerticalTabComponent as λ4, SkySectionedFormSectionComponent as λ5, SkyVerticalTabsetComponent as λ6, SkyVerticalTabsetGroupComponent as λ7 };
|
|
2560
|
-
//# sourceMappingURL=skyux-tabs.mjs.map
|