@skyux/tabs 7.0.0-beta.4 → 7.0.0-beta.6
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 +679 -594
- package/esm2020/lib/modules/sectioned-form/sectioned-form.component.mjs +2 -2
- package/esm2020/lib/modules/tabs/tab-button-view-model.mjs +1 -1
- package/esm2020/lib/modules/tabs/tab-button.component.mjs +7 -8
- package/esm2020/lib/modules/tabs/tab.component.mjs +73 -33
- package/esm2020/lib/modules/tabs/tabs.module.mjs +5 -2
- package/esm2020/lib/modules/tabs/tabset-adapter.service.mjs +34 -22
- package/esm2020/lib/modules/tabs/tabset-nav-button-disabled.pipe.mjs +22 -0
- package/esm2020/lib/modules/tabs/tabset-nav-button.component.mjs +17 -23
- package/esm2020/lib/modules/tabs/tabset-permalink.service.mjs +41 -35
- package/esm2020/lib/modules/tabs/tabset-tab-indexes-change.mjs +1 -1
- package/esm2020/lib/modules/tabs/tabset.component.mjs +222 -221
- package/esm2020/lib/modules/tabs/tabset.service.mjs +67 -51
- package/esm2020/lib/modules/vertical-tabset/vertical-tab.component.mjs +5 -3
- package/esm2020/lib/modules/vertical-tabset/vertical-tabset-group.component.mjs +4 -4
- package/esm2020/lib/modules/vertical-tabset/vertical-tabset.component.mjs +2 -2
- package/esm2020/testing/tabs/tab-fixture-tab.mjs +1 -1
- package/esm2020/testing/tabs/tabset-fixture.mjs +44 -47
- package/fesm2015/skyux-tabs-testing.mjs +47 -49
- package/fesm2015/skyux-tabs-testing.mjs.map +1 -1
- package/fesm2015/skyux-tabs.mjs +484 -395
- package/fesm2015/skyux-tabs.mjs.map +1 -1
- package/fesm2020/skyux-tabs-testing.mjs +43 -46
- package/fesm2020/skyux-tabs-testing.mjs.map +1 -1
- package/fesm2020/skyux-tabs.mjs +603 -516
- package/fesm2020/skyux-tabs.mjs.map +1 -1
- package/lib/modules/tabs/tab-button-view-model.d.ts +5 -5
- package/lib/modules/tabs/tab-button.component.d.ts +9 -10
- package/lib/modules/tabs/tab.component.d.ts +13 -18
- package/lib/modules/tabs/tabs.module.d.ts +9 -8
- package/lib/modules/tabs/tabset-adapter.service.d.ts +5 -10
- package/lib/modules/tabs/tabset-nav-button-disabled.pipe.d.ts +8 -0
- package/lib/modules/tabs/tabset-nav-button.component.d.ts +8 -6
- package/lib/modules/tabs/tabset-permalink.service.d.ts +3 -11
- package/lib/modules/tabs/tabset-tab-indexes-change.d.ts +2 -2
- package/lib/modules/tabs/tabset.component.d.ts +10 -54
- package/lib/modules/tabs/tabset.service.d.ts +8 -12
- package/package.json +9 -9
- package/testing/tabs/tab-fixture-tab.d.ts +3 -3
- package/testing/tabs/tabset-fixture.d.ts +3 -9
package/fesm2015/skyux-tabs.mjs
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import * as i4 from '@angular/common';
|
|
2
2
|
import { CommonModule } from '@angular/common';
|
|
3
3
|
import * as i0 from '@angular/core';
|
|
4
|
-
import { NgModule, Injectable, Component, ChangeDetectionStrategy, Input, ViewChild, HostListener, ContentChildren, EventEmitter, Output, ViewEncapsulation } from '@angular/core';
|
|
4
|
+
import { NgModule, Injectable, Component, ChangeDetectionStrategy, Input, ViewChild, HostListener, ContentChildren, EventEmitter, Output, ViewEncapsulation, Pipe } from '@angular/core';
|
|
5
5
|
import { SkyCheckboxModule } from '@skyux/forms';
|
|
6
6
|
import * as i7 from '@skyux/theme';
|
|
7
7
|
import { SkyThemeModule } from '@skyux/theme';
|
|
@@ -502,7 +502,9 @@ _SkyVerticalTabComponent__ariaRole = new WeakMap(), _SkyVerticalTabComponent__co
|
|
|
502
502
|
const width = __classPrivateFieldGet(this, _SkyVerticalTabComponent_adapterService, "f").getWidth(this.tabContent);
|
|
503
503
|
__classPrivateFieldGet(this, _SkyVerticalTabComponent_verticalTabMediaQueryService, "f").setBreakpointForWidth(width);
|
|
504
504
|
const newBreakpoint = __classPrivateFieldGet(this, _SkyVerticalTabComponent_verticalTabMediaQueryService, "f").current;
|
|
505
|
-
|
|
505
|
+
if (newBreakpoint) {
|
|
506
|
+
__classPrivateFieldGet(this, _SkyVerticalTabComponent_adapterService, "f").setResponsiveClass(this.tabContent, newBreakpoint);
|
|
507
|
+
}
|
|
506
508
|
__classPrivateFieldGet(this, _SkyVerticalTabComponent_changeRef, "f").markForCheck();
|
|
507
509
|
}
|
|
508
510
|
};
|
|
@@ -599,10 +601,10 @@ class SkyVerticalTabsetGroupComponent {
|
|
|
599
601
|
}
|
|
600
602
|
_SkyVerticalTabsetGroupComponent_ngUnsubscribe = new WeakMap(), _SkyVerticalTabsetGroupComponent_openBeforeTabsHidden = new WeakMap(), _SkyVerticalTabsetGroupComponent_tabService = new WeakMap(), _SkyVerticalTabsetGroupComponent_changeRef = new WeakMap();
|
|
601
603
|
SkyVerticalTabsetGroupComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.0", ngImport: i0, type: SkyVerticalTabsetGroupComponent, deps: [{ token: SkyVerticalTabsetService }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
|
|
602
|
-
SkyVerticalTabsetGroupComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.0", type: SkyVerticalTabsetGroupComponent, selector: "sky-vertical-tabset-group", inputs: { disabled: "disabled", groupHeading: "groupHeading", open: "open" }, queries: [{ propertyName: "tabs", predicate: SkyVerticalTabComponent }], ngImport: i0, template: "<div class=\"sky-vertical-tabset-group\">\n <!-- [ngClass] includes font classes for both modern and default styles -->\n <div\n class=\"sky-vertical-tabset-group-header\"\n [ngClass]=\"{\n 'sky-vertical-tabset-group-header-sub-open sky-font-emphasized sky-emphasized':\n subMenuOpen(),\n 'sky-font-deemphasized': disabled,\n 'sky-deemphasized': disabled,\n 'sky-vertical-tabset-disabled': disabled\n }\"\n [tabIndex]=\"-1\"\n >\n <button\n class=\"sky-padding-even-default\"\n type=\"button\"\n skyId\n [attr.aria-controls]=\"groupContent.id\"\n [attr.aria-expanded]=\"!disabled && open\"\n (click)=\"toggleMenuOpen()\"\n #groupHeadingButton\n >\n {{ groupHeading }}\n <sky-expansion-indicator\n class=\"sky-vertical-tabset-group-expansion-indicator\"\n [direction]=\"!disabled && open ? 'up' : 'down'\"\n >\n </sky-expansion-indicator>\n </button>\n </div>\n <div\n class=\"sky-vertical-tabset-group-content\"\n
|
|
604
|
+
SkyVerticalTabsetGroupComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.0", type: SkyVerticalTabsetGroupComponent, selector: "sky-vertical-tabset-group", inputs: { disabled: "disabled", groupHeading: "groupHeading", open: "open" }, queries: [{ propertyName: "tabs", predicate: SkyVerticalTabComponent }], ngImport: i0, template: "<div class=\"sky-vertical-tabset-group\">\n <!-- [ngClass] includes font classes for both modern and default styles -->\n <div\n class=\"sky-vertical-tabset-group-header\"\n [ngClass]=\"{\n 'sky-vertical-tabset-group-header-sub-open sky-font-emphasized sky-emphasized':\n subMenuOpen(),\n 'sky-font-deemphasized': disabled,\n 'sky-deemphasized': disabled,\n 'sky-vertical-tabset-disabled': disabled\n }\"\n [tabIndex]=\"-1\"\n >\n <button\n class=\"sky-padding-even-default\"\n type=\"button\"\n skyId\n [attr.aria-controls]=\"groupContent.id\"\n [attr.aria-expanded]=\"!disabled && open\"\n (click)=\"toggleMenuOpen()\"\n #groupHeadingButton\n >\n {{ groupHeading }}\n <sky-expansion-indicator\n class=\"sky-vertical-tabset-group-expansion-indicator\"\n [direction]=\"!disabled && open ? 'up' : 'down'\"\n >\n </sky-expansion-indicator>\n </button>\n </div>\n <div\n class=\"sky-vertical-tabset-group-content\"\n skyId\n [attr.labelledby]=\"groupHeadingButton.id\"\n [@skyAnimationSlide]=\"!disabled && open ? 'down' : 'up'\"\n #groupContent\n >\n <ng-content></ng-content>\n </div>\n</div>\n", styles: [".sky-vertical-tabset-group{border-bottom:1px solid #e2e3e4;margin:5px 0 5px 5px}.sky-vertical-tabset-group-header button{cursor:pointer;display:flex;justify-content:space-between;border:none;width:100%;text-align:left;background:none}.sky-vertical-tabset-group-content{overflow:hidden;border-top:1px solid #e2e3e4}:host ::ng-deep .sky-vertical-tabset-group-expansion-indicator>button{font-size:14px!important}.sky-vertical-tabset-disabled{cursor:not-allowed;pointer-events:none}:host-context(.sky-theme-modern) .sky-vertical-tabset-group{border:none;margin:10px 0}:host-context(.sky-theme-modern) .sky-vertical-tabset-group-content{border:none;padding-left:25px}:host-context(.sky-theme-modern) .sky-vertical-tabset-group-header{position:relative}:host-context(.sky-theme-modern) .sky-vertical-tabset-group-expansion-indicator{position:absolute;top:6px;right:5px}.sky-theme-modern .sky-vertical-tabset-group{border:none;margin:10px 0}.sky-theme-modern .sky-vertical-tabset-group-content{border:none;padding-left:25px}.sky-theme-modern .sky-vertical-tabset-group-header{position:relative}.sky-theme-modern .sky-vertical-tabset-group-expansion-indicator{position:absolute;top:6px;right:5px}\n"], dependencies: [{ kind: "directive", type: i4.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.λ2, selector: "[skyId]", exportAs: ["skyId"] }, { kind: "component", type: i5.λ15, selector: "sky-expansion-indicator", inputs: ["direction"] }], animations: [skyAnimationSlide], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
603
605
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.0", ngImport: i0, type: SkyVerticalTabsetGroupComponent, decorators: [{
|
|
604
606
|
type: Component,
|
|
605
|
-
args: [{ selector: 'sky-vertical-tabset-group', changeDetection: ChangeDetectionStrategy.OnPush, animations: [skyAnimationSlide], template: "<div class=\"sky-vertical-tabset-group\">\n <!-- [ngClass] includes font classes for both modern and default styles -->\n <div\n class=\"sky-vertical-tabset-group-header\"\n [ngClass]=\"{\n 'sky-vertical-tabset-group-header-sub-open sky-font-emphasized sky-emphasized':\n subMenuOpen(),\n 'sky-font-deemphasized': disabled,\n 'sky-deemphasized': disabled,\n 'sky-vertical-tabset-disabled': disabled\n }\"\n [tabIndex]=\"-1\"\n >\n <button\n class=\"sky-padding-even-default\"\n type=\"button\"\n skyId\n [attr.aria-controls]=\"groupContent.id\"\n [attr.aria-expanded]=\"!disabled && open\"\n (click)=\"toggleMenuOpen()\"\n #groupHeadingButton\n >\n {{ groupHeading }}\n <sky-expansion-indicator\n class=\"sky-vertical-tabset-group-expansion-indicator\"\n [direction]=\"!disabled && open ? 'up' : 'down'\"\n >\n </sky-expansion-indicator>\n </button>\n </div>\n <div\n class=\"sky-vertical-tabset-group-content\"\n
|
|
607
|
+
args: [{ selector: 'sky-vertical-tabset-group', changeDetection: ChangeDetectionStrategy.OnPush, animations: [skyAnimationSlide], template: "<div class=\"sky-vertical-tabset-group\">\n <!-- [ngClass] includes font classes for both modern and default styles -->\n <div\n class=\"sky-vertical-tabset-group-header\"\n [ngClass]=\"{\n 'sky-vertical-tabset-group-header-sub-open sky-font-emphasized sky-emphasized':\n subMenuOpen(),\n 'sky-font-deemphasized': disabled,\n 'sky-deemphasized': disabled,\n 'sky-vertical-tabset-disabled': disabled\n }\"\n [tabIndex]=\"-1\"\n >\n <button\n class=\"sky-padding-even-default\"\n type=\"button\"\n skyId\n [attr.aria-controls]=\"groupContent.id\"\n [attr.aria-expanded]=\"!disabled && open\"\n (click)=\"toggleMenuOpen()\"\n #groupHeadingButton\n >\n {{ groupHeading }}\n <sky-expansion-indicator\n class=\"sky-vertical-tabset-group-expansion-indicator\"\n [direction]=\"!disabled && open ? 'up' : 'down'\"\n >\n </sky-expansion-indicator>\n </button>\n </div>\n <div\n class=\"sky-vertical-tabset-group-content\"\n skyId\n [attr.labelledby]=\"groupHeadingButton.id\"\n [@skyAnimationSlide]=\"!disabled && open ? 'down' : 'up'\"\n #groupContent\n >\n <ng-content></ng-content>\n </div>\n</div>\n", styles: [".sky-vertical-tabset-group{border-bottom:1px solid #e2e3e4;margin:5px 0 5px 5px}.sky-vertical-tabset-group-header button{cursor:pointer;display:flex;justify-content:space-between;border:none;width:100%;text-align:left;background:none}.sky-vertical-tabset-group-content{overflow:hidden;border-top:1px solid #e2e3e4}:host ::ng-deep .sky-vertical-tabset-group-expansion-indicator>button{font-size:14px!important}.sky-vertical-tabset-disabled{cursor:not-allowed;pointer-events:none}:host-context(.sky-theme-modern) .sky-vertical-tabset-group{border:none;margin:10px 0}:host-context(.sky-theme-modern) .sky-vertical-tabset-group-content{border:none;padding-left:25px}:host-context(.sky-theme-modern) .sky-vertical-tabset-group-header{position:relative}:host-context(.sky-theme-modern) .sky-vertical-tabset-group-expansion-indicator{position:absolute;top:6px;right:5px}.sky-theme-modern .sky-vertical-tabset-group{border:none;margin:10px 0}.sky-theme-modern .sky-vertical-tabset-group-content{border:none;padding-left:25px}.sky-theme-modern .sky-vertical-tabset-group-header{position:relative}.sky-theme-modern .sky-vertical-tabset-group-expansion-indicator{position:absolute;top:6px;right:5px}\n"] }]
|
|
606
608
|
}], ctorParameters: function () { return [{ type: SkyVerticalTabsetService }, { type: i0.ChangeDetectorRef }]; }, propDecorators: { disabled: [{
|
|
607
609
|
type: Input
|
|
608
610
|
}], groupHeading: [{
|
|
@@ -1033,27 +1035,37 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.0", ngImpor
|
|
|
1033
1035
|
type: Injectable
|
|
1034
1036
|
}] });
|
|
1035
1037
|
|
|
1038
|
+
var _SkyTabsetService_instances, _SkyTabsetService_activeTabIndex, _SkyTabsetService_focusedTabBtnIndex, _SkyTabsetService_activeTabUnregistered, _SkyTabsetService_tabs, _SkyTabsetService_tabCounter, _SkyTabsetService_isTabIndexActive, _SkyTabsetService_getNextTabArrayIndex, _SkyTabsetService_getPrevTabArrayIndex;
|
|
1036
1039
|
/**
|
|
1037
1040
|
* @internal
|
|
1038
1041
|
*/
|
|
1039
1042
|
class SkyTabsetService {
|
|
1040
1043
|
constructor() {
|
|
1044
|
+
_SkyTabsetService_instances.add(this);
|
|
1041
1045
|
this.currentActiveTabIndex = 0;
|
|
1042
1046
|
this.currentFocusedTabBtnIndex = 0;
|
|
1043
|
-
this
|
|
1044
|
-
this
|
|
1045
|
-
this
|
|
1046
|
-
this
|
|
1047
|
-
this
|
|
1047
|
+
_SkyTabsetService_activeTabIndex.set(this, void 0);
|
|
1048
|
+
_SkyTabsetService_focusedTabBtnIndex.set(this, void 0);
|
|
1049
|
+
_SkyTabsetService_activeTabUnregistered.set(this, void 0);
|
|
1050
|
+
_SkyTabsetService_tabs.set(this, []);
|
|
1051
|
+
_SkyTabsetService_tabCounter.set(this, 0);
|
|
1052
|
+
__classPrivateFieldSet(this, _SkyTabsetService_activeTabIndex, new BehaviorSubject(0), "f");
|
|
1053
|
+
__classPrivateFieldSet(this, _SkyTabsetService_activeTabUnregistered, new Subject(), "f");
|
|
1054
|
+
__classPrivateFieldSet(this, _SkyTabsetService_focusedTabBtnIndex, new Subject(), "f");
|
|
1048
1055
|
}
|
|
1049
1056
|
get activeTabUnregistered() {
|
|
1050
|
-
return this
|
|
1057
|
+
return __classPrivateFieldGet(this, _SkyTabsetService_activeTabUnregistered, "f");
|
|
1051
1058
|
}
|
|
1052
1059
|
get activeTabIndex() {
|
|
1053
|
-
return this
|
|
1060
|
+
return __classPrivateFieldGet(this, _SkyTabsetService_activeTabIndex, "f");
|
|
1054
1061
|
}
|
|
1055
1062
|
get focusedTabBtnIndex() {
|
|
1056
|
-
return this
|
|
1063
|
+
return __classPrivateFieldGet(this, _SkyTabsetService_focusedTabBtnIndex, "f");
|
|
1064
|
+
}
|
|
1065
|
+
ngOnDestroy() {
|
|
1066
|
+
__classPrivateFieldGet(this, _SkyTabsetService_activeTabIndex, "f").complete();
|
|
1067
|
+
__classPrivateFieldGet(this, _SkyTabsetService_activeTabUnregistered, "f").complete();
|
|
1068
|
+
__classPrivateFieldGet(this, _SkyTabsetService_focusedTabBtnIndex, "f").complete();
|
|
1057
1069
|
}
|
|
1058
1070
|
/**
|
|
1059
1071
|
* Sets the active tab by its unique `tabIndex` property.
|
|
@@ -1066,26 +1078,26 @@ class SkyTabsetService {
|
|
|
1066
1078
|
this.currentActiveTabIndex = value;
|
|
1067
1079
|
/* istanbul ignore else */
|
|
1068
1080
|
if (config.emitChange) {
|
|
1069
|
-
this.
|
|
1081
|
+
__classPrivateFieldGet(this, _SkyTabsetService_activeTabIndex, "f").next(value);
|
|
1070
1082
|
}
|
|
1071
1083
|
this.setFocusedTabBtnIndex(value);
|
|
1072
1084
|
}
|
|
1073
1085
|
}
|
|
1074
1086
|
focusNextTabBtn(tabButtons) {
|
|
1075
|
-
const currentTabArrayIndex = this.
|
|
1076
|
-
for (let i = this.
|
|
1087
|
+
const currentTabArrayIndex = __classPrivateFieldGet(this, _SkyTabsetService_tabs, "f").findIndex((tab) => this.tabIndexesEqual(tab.tabIndex, this.currentFocusedTabBtnIndex));
|
|
1088
|
+
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)) {
|
|
1077
1089
|
const tabBtn = tabButtons[i];
|
|
1078
|
-
if (!tabBtn.disabled) {
|
|
1090
|
+
if (!tabBtn.disabled && tabBtn.tabIndex !== undefined) {
|
|
1079
1091
|
this.setFocusedTabBtnIndex(tabBtn.tabIndex);
|
|
1080
1092
|
return;
|
|
1081
1093
|
}
|
|
1082
1094
|
}
|
|
1083
1095
|
}
|
|
1084
1096
|
focusPrevTabBtn(tabButtons) {
|
|
1085
|
-
const currentTabArrayIndex = this.
|
|
1086
|
-
for (let i = this.
|
|
1097
|
+
const currentTabArrayIndex = __classPrivateFieldGet(this, _SkyTabsetService_tabs, "f").findIndex((tab) => this.tabIndexesEqual(tab.tabIndex, this.currentFocusedTabBtnIndex));
|
|
1098
|
+
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)) {
|
|
1087
1099
|
const tabBtn = tabButtons[i];
|
|
1088
|
-
if (!tabBtn.disabled) {
|
|
1100
|
+
if (!tabBtn.disabled && tabBtn.tabIndex !== undefined) {
|
|
1089
1101
|
this.setFocusedTabBtnIndex(tabBtn.tabIndex);
|
|
1090
1102
|
return;
|
|
1091
1103
|
}
|
|
@@ -1094,7 +1106,7 @@ class SkyTabsetService {
|
|
|
1094
1106
|
focusFirstOrNearestTabBtn(tabButtons) {
|
|
1095
1107
|
for (let i = 0; i < tabButtons.length; i++) {
|
|
1096
1108
|
const tabBtn = tabButtons[i];
|
|
1097
|
-
if (!tabBtn.disabled) {
|
|
1109
|
+
if (!tabBtn.disabled && tabBtn.tabIndex !== undefined) {
|
|
1098
1110
|
this.setFocusedTabBtnIndex(tabBtn.tabIndex);
|
|
1099
1111
|
return;
|
|
1100
1112
|
}
|
|
@@ -1103,7 +1115,7 @@ class SkyTabsetService {
|
|
|
1103
1115
|
focusLastOrNearestTabBtn(tabButtons) {
|
|
1104
1116
|
for (let i = tabButtons.length - 1; i >= 0; i--) {
|
|
1105
1117
|
const tabBtn = tabButtons[i];
|
|
1106
|
-
if (!tabBtn.disabled) {
|
|
1118
|
+
if (!tabBtn.disabled && tabBtn.tabIndex !== undefined) {
|
|
1107
1119
|
this.setFocusedTabBtnIndex(tabBtn.tabIndex);
|
|
1108
1120
|
return;
|
|
1109
1121
|
}
|
|
@@ -1111,100 +1123,104 @@ class SkyTabsetService {
|
|
|
1111
1123
|
}
|
|
1112
1124
|
setFocusedTabBtnIndex(tabIndex) {
|
|
1113
1125
|
this.currentFocusedTabBtnIndex = tabIndex;
|
|
1114
|
-
this.
|
|
1126
|
+
__classPrivateFieldGet(this, _SkyTabsetService_focusedTabBtnIndex, "f").next(tabIndex);
|
|
1115
1127
|
}
|
|
1116
1128
|
/**
|
|
1117
1129
|
* Registers a tab component.
|
|
1118
1130
|
*/
|
|
1119
1131
|
registerTab(tabIndex) {
|
|
1132
|
+
var _a;
|
|
1120
1133
|
if (tabIndex === undefined) {
|
|
1121
|
-
tabIndex = this
|
|
1122
|
-
this
|
|
1134
|
+
tabIndex = __classPrivateFieldGet(this, _SkyTabsetService_tabCounter, "f");
|
|
1135
|
+
__classPrivateFieldSet(this, _SkyTabsetService_tabCounter, (_a = __classPrivateFieldGet(this, _SkyTabsetService_tabCounter, "f"), _a++, _a), "f");
|
|
1123
1136
|
}
|
|
1124
|
-
this.
|
|
1137
|
+
__classPrivateFieldGet(this, _SkyTabsetService_tabs, "f").push({ tabIndex });
|
|
1125
1138
|
return tabIndex;
|
|
1126
1139
|
}
|
|
1127
1140
|
updateTabIndex(currentTabIndex, newTabIndex) {
|
|
1128
|
-
const found = this.
|
|
1129
|
-
found
|
|
1141
|
+
const found = __classPrivateFieldGet(this, _SkyTabsetService_tabs, "f").find((tab) => this.tabIndexesEqual(tab.tabIndex, currentTabIndex));
|
|
1142
|
+
if (found) {
|
|
1143
|
+
found.tabIndex = newTabIndex;
|
|
1144
|
+
}
|
|
1130
1145
|
}
|
|
1131
1146
|
/**
|
|
1132
1147
|
* Unregisters a tab component.
|
|
1133
1148
|
*/
|
|
1134
1149
|
unregisterTab(tabIndex) {
|
|
1135
|
-
var
|
|
1136
|
-
const index = this.
|
|
1150
|
+
var _b;
|
|
1151
|
+
const index = __classPrivateFieldGet(this, _SkyTabsetService_tabs, "f").findIndex((tab) => this.tabIndexesEqual(tab.tabIndex, tabIndex));
|
|
1137
1152
|
// Notify the tabset component when an active tab is unregistered.
|
|
1138
|
-
if (this.
|
|
1139
|
-
this.
|
|
1153
|
+
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)) {
|
|
1154
|
+
__classPrivateFieldGet(this, _SkyTabsetService_activeTabUnregistered, "f").next({
|
|
1140
1155
|
arrayIndex: index,
|
|
1141
1156
|
});
|
|
1142
1157
|
}
|
|
1143
|
-
this.
|
|
1158
|
+
__classPrivateFieldGet(this, _SkyTabsetService_tabs, "f").splice(index, 1);
|
|
1144
1159
|
}
|
|
1145
1160
|
/**
|
|
1146
1161
|
* Unregisters all tab components at once.
|
|
1147
1162
|
*/
|
|
1148
1163
|
unregisterAll() {
|
|
1149
|
-
this
|
|
1164
|
+
__classPrivateFieldSet(this, _SkyTabsetService_tabs, [], "f");
|
|
1150
1165
|
}
|
|
1151
1166
|
/**
|
|
1152
1167
|
* Compares two tab indexes and returns `true` if they are equal.
|
|
1153
1168
|
*/
|
|
1154
1169
|
tabIndexesEqual(tabIndex1, tabIndex2) {
|
|
1155
|
-
return tabIndex1 === tabIndex2 ||
|
|
1170
|
+
return (tabIndex1 === tabIndex2 ||
|
|
1171
|
+
(tabIndex1 !== undefined &&
|
|
1172
|
+
tabIndex2 !== undefined &&
|
|
1173
|
+
+tabIndex1 === +tabIndex2));
|
|
1156
1174
|
}
|
|
1157
1175
|
/**
|
|
1158
1176
|
* Verifies if a provided tab index is registered.
|
|
1159
1177
|
*/
|
|
1160
1178
|
isValidTabIndex(tabIndex) {
|
|
1161
|
-
return this.
|
|
1179
|
+
return __classPrivateFieldGet(this, _SkyTabsetService_tabs, "f").some((tab) => this.tabIndexesEqual(tab.tabIndex, tabIndex));
|
|
1162
1180
|
}
|
|
1163
1181
|
/**
|
|
1164
1182
|
* Activates the first registered tab.
|
|
1165
1183
|
*/
|
|
1166
1184
|
activateFirstTab() {
|
|
1167
|
-
const firstTabIndex = this
|
|
1185
|
+
const firstTabIndex = __classPrivateFieldGet(this, _SkyTabsetService_tabs, "f")[0] && __classPrivateFieldGet(this, _SkyTabsetService_tabs, "f")[0].tabIndex;
|
|
1168
1186
|
if (firstTabIndex !== undefined) {
|
|
1169
1187
|
this.setActiveTabIndex(firstTabIndex);
|
|
1170
1188
|
return firstTabIndex;
|
|
1171
1189
|
}
|
|
1190
|
+
return undefined;
|
|
1172
1191
|
}
|
|
1173
1192
|
/**
|
|
1174
1193
|
* Activates the next registered tab, or the previous one based on a provided array index.
|
|
1175
1194
|
*/
|
|
1176
1195
|
activateNearestTab(arrayIndex) {
|
|
1177
|
-
const newActiveTab = this
|
|
1196
|
+
const newActiveTab = __classPrivateFieldGet(this, _SkyTabsetService_tabs, "f")[arrayIndex] || __classPrivateFieldGet(this, _SkyTabsetService_tabs, "f")[arrayIndex - 1];
|
|
1178
1197
|
if (newActiveTab) {
|
|
1179
1198
|
this.currentActiveTabIndex = newActiveTab.tabIndex;
|
|
1180
1199
|
}
|
|
1181
1200
|
}
|
|
1182
|
-
isTabIndexActive(tabIndex) {
|
|
1183
|
-
return this.tabIndexesEqual(tabIndex, this.currentActiveTabIndex);
|
|
1184
|
-
}
|
|
1185
|
-
getNextTabArrayIndex(currentIndex) {
|
|
1186
|
-
let nextIndex = currentIndex + 1;
|
|
1187
|
-
if (nextIndex === this.tabs.length) {
|
|
1188
|
-
nextIndex = 0;
|
|
1189
|
-
}
|
|
1190
|
-
return nextIndex;
|
|
1191
|
-
}
|
|
1192
|
-
getPrevTabArrayIndex(currentIndex) {
|
|
1193
|
-
let prevIndex = currentIndex - 1;
|
|
1194
|
-
if (prevIndex < 0) {
|
|
1195
|
-
prevIndex = this.tabs.length - 1;
|
|
1196
|
-
}
|
|
1197
|
-
return prevIndex;
|
|
1198
|
-
}
|
|
1199
1201
|
}
|
|
1202
|
+
_SkyTabsetService_activeTabIndex = new WeakMap(), _SkyTabsetService_focusedTabBtnIndex = new WeakMap(), _SkyTabsetService_activeTabUnregistered = new WeakMap(), _SkyTabsetService_tabs = new WeakMap(), _SkyTabsetService_tabCounter = new WeakMap(), _SkyTabsetService_instances = new WeakSet(), _SkyTabsetService_isTabIndexActive = function _SkyTabsetService_isTabIndexActive(tabIndex) {
|
|
1203
|
+
return this.tabIndexesEqual(tabIndex, this.currentActiveTabIndex);
|
|
1204
|
+
}, _SkyTabsetService_getNextTabArrayIndex = function _SkyTabsetService_getNextTabArrayIndex(currentIndex) {
|
|
1205
|
+
let nextIndex = currentIndex + 1;
|
|
1206
|
+
if (nextIndex === __classPrivateFieldGet(this, _SkyTabsetService_tabs, "f").length) {
|
|
1207
|
+
nextIndex = 0;
|
|
1208
|
+
}
|
|
1209
|
+
return nextIndex;
|
|
1210
|
+
}, _SkyTabsetService_getPrevTabArrayIndex = function _SkyTabsetService_getPrevTabArrayIndex(currentIndex) {
|
|
1211
|
+
let prevIndex = currentIndex - 1;
|
|
1212
|
+
if (prevIndex < 0) {
|
|
1213
|
+
prevIndex = __classPrivateFieldGet(this, _SkyTabsetService_tabs, "f").length - 1;
|
|
1214
|
+
}
|
|
1215
|
+
return prevIndex;
|
|
1216
|
+
};
|
|
1200
1217
|
SkyTabsetService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.0", ngImport: i0, type: SkyTabsetService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
1201
1218
|
SkyTabsetService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "14.2.0", ngImport: i0, type: SkyTabsetService });
|
|
1202
1219
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.0", ngImport: i0, type: SkyTabsetService, decorators: [{
|
|
1203
1220
|
type: Injectable
|
|
1204
|
-
}] });
|
|
1221
|
+
}], ctorParameters: function () { return []; } });
|
|
1205
1222
|
|
|
1206
1223
|
var _SkyTabButtonComponent_instances, _SkyTabButtonComponent__isActive, _SkyTabButtonComponent__isDisabled, _SkyTabButtonComponent__tabStyle, _SkyTabButtonComponent_adapterService, _SkyTabButtonComponent_changeDetectorRef, _SkyTabButtonComponent_elementRef, _SkyTabButtonComponent_tabsetService, _SkyTabButtonComponent_ngUnsubscribe, _SkyTabButtonComponent_updateWizardStepState;
|
|
1207
|
-
const DEFAULT_ELEMENT_ROLE$1 = 'tab';
|
|
1208
1224
|
const DEFAULT_DISABLED = false;
|
|
1209
1225
|
/**
|
|
1210
1226
|
* @internal
|
|
@@ -1214,7 +1230,6 @@ class SkyTabButtonComponent {
|
|
|
1214
1230
|
_SkyTabButtonComponent_instances.add(this);
|
|
1215
1231
|
this.buttonClick = new EventEmitter();
|
|
1216
1232
|
this.closeClick = new EventEmitter();
|
|
1217
|
-
this.elementRole = DEFAULT_ELEMENT_ROLE$1;
|
|
1218
1233
|
this.closeBtnTabIndex = '-1';
|
|
1219
1234
|
_SkyTabButtonComponent__isActive.set(this, false);
|
|
1220
1235
|
_SkyTabButtonComponent__isDisabled.set(this, DEFAULT_DISABLED);
|
|
@@ -1248,14 +1263,13 @@ class SkyTabButtonComponent {
|
|
|
1248
1263
|
}
|
|
1249
1264
|
set tabStyle(style) {
|
|
1250
1265
|
__classPrivateFieldSet(this, _SkyTabButtonComponent__tabStyle, style, "f");
|
|
1251
|
-
this.elementRole = style === 'tabs' ? DEFAULT_ELEMENT_ROLE$1 : undefined;
|
|
1252
1266
|
__classPrivateFieldGet(this, _SkyTabButtonComponent_instances, "m", _SkyTabButtonComponent_updateWizardStepState).call(this);
|
|
1253
1267
|
}
|
|
1254
1268
|
ngAfterViewInit() {
|
|
1255
1269
|
__classPrivateFieldGet(this, _SkyTabButtonComponent_tabsetService, "f").focusedTabBtnIndex
|
|
1256
1270
|
.pipe(distinctUntilChanged(), takeUntil(__classPrivateFieldGet(this, _SkyTabButtonComponent_ngUnsubscribe, "f")))
|
|
1257
1271
|
.subscribe((focusedIndex) => {
|
|
1258
|
-
if (focusedIndex === this.tabIndex) {
|
|
1272
|
+
if (this.tabIndex !== undefined && focusedIndex === this.tabIndex) {
|
|
1259
1273
|
this.closeBtnTabIndex = '0';
|
|
1260
1274
|
this.focusBtn();
|
|
1261
1275
|
}
|
|
@@ -1300,7 +1314,9 @@ class SkyTabButtonComponent {
|
|
|
1300
1314
|
__classPrivateFieldGet(this, _SkyTabButtonComponent_adapterService, "f").focusButtonLink(__classPrivateFieldGet(this, _SkyTabButtonComponent_elementRef, "f"));
|
|
1301
1315
|
}
|
|
1302
1316
|
onFocus() {
|
|
1303
|
-
|
|
1317
|
+
if (this.tabIndex !== undefined) {
|
|
1318
|
+
__classPrivateFieldGet(this, _SkyTabButtonComponent_tabsetService, "f").setFocusedTabBtnIndex(this.tabIndex);
|
|
1319
|
+
}
|
|
1304
1320
|
}
|
|
1305
1321
|
}
|
|
1306
1322
|
_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() {
|
|
@@ -1321,10 +1337,10 @@ _SkyTabButtonComponent__isActive = new WeakMap(), _SkyTabButtonComponent__isDisa
|
|
|
1321
1337
|
__classPrivateFieldGet(this, _SkyTabButtonComponent_changeDetectorRef, "f").markForCheck();
|
|
1322
1338
|
};
|
|
1323
1339
|
SkyTabButtonComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.0", ngImport: i0, type: SkyTabButtonComponent, deps: [{ token: i0.ElementRef }, { token: SkyTabButtonAdapterService }, { token: i0.ChangeDetectorRef }, { token: SkyTabsetService }], target: i0.ɵɵFactoryTarget.Component });
|
|
1324
|
-
SkyTabButtonComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.0", type: SkyTabButtonComponent, selector: "sky-tab-button", inputs: { active: "active", ariaControls: "ariaControls", buttonHref: "buttonHref", buttonId: "buttonId", buttonText: "buttonText", buttonTextCount: "buttonTextCount", closeable: "closeable", disabled: "disabled", tabIndex: "tabIndex", tabNumber: "tabNumber", totalTabsCount: "totalTabsCount", tabStyle: "tabStyle" }, outputs: { buttonClick: "buttonClick", closeClick: "closeClick" }, providers: [SkyTabButtonAdapterService], ngImport: i0, template: "<div\n class=\"sky-btn-tab-wrapper\"\n [ngClass]=\"{\n 'sky-btn-tab-wrapper-selected': active,\n 'sky-btn-tab-wrapper-disabled': disabled\n }\"\n>\n <a\n #tabButtonEl\n class=\"sky-btn-tab\"\n
|
|
1340
|
+
SkyTabButtonComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.0", type: SkyTabButtonComponent, selector: "sky-tab-button", inputs: { active: "active", ariaControls: "ariaControls", buttonHref: "buttonHref", buttonId: "buttonId", buttonText: "buttonText", buttonTextCount: "buttonTextCount", closeable: "closeable", disabled: "disabled", tabIndex: "tabIndex", tabNumber: "tabNumber", totalTabsCount: "totalTabsCount", tabStyle: "tabStyle" }, outputs: { buttonClick: "buttonClick", closeClick: "closeClick" }, providers: [SkyTabButtonAdapterService], ngImport: i0, template: "<div\n class=\"sky-btn-tab-wrapper\"\n [ngClass]=\"{\n 'sky-btn-tab-wrapper-selected': active,\n 'sky-btn-tab-wrapper-disabled': disabled\n }\"\n>\n <a\n #tabButtonEl\n class=\"sky-btn-tab\"\n role=\"tab\"\n [attr.aria-controls]=\"ariaControls\"\n [attr.aria-disabled]=\"disabled\"\n [attr.aria-selected]=\"active\"\n [attr.href]=\"buttonHref\"\n [attr.aria-label]=\"\n (tabStyle === 'wizard'\n ? 'skyux_wizard_sr_step_' + wizardStepState\n : 'skyux_tabs_sr_tab_order'\n ) | skyLibResources: tabNumber:totalTabsCount:buttonText\n \"\n [id]=\"buttonId\"\n [ngClass]=\"{\n 'sky-btn-tab-wizard': tabStyle === 'wizard',\n 'sky-btn-tab-selected': active,\n 'sky-btn-tab-disabled': disabled,\n 'sky-tab-btn-closeable': closeable\n }\"\n [tabindex]=\"active ? '0' : '-1'\"\n (click)=\"onButtonClick($event)\"\n (keydown)=\"onTabButtonKeyDown($event)\"\n (focus)=\"onFocus()\"\n >\n <span class=\"sky-tab-heading\" [attr.aria-hidden]=\"true\">\n {{ buttonText }}\n <span *ngIf=\"buttonTextCount !== undefined\" class=\"sky-tab-header-count\">\n {{ buttonTextCount }}\n </span>\n </span>\n </a>\n\n <button\n *ngIf=\"closeable\"\n class=\"sky-btn-tab-close\"\n [tabindex]=\"closeBtnTabIndex\"\n type=\"button\"\n [attr.aria-label]=\"'skyux_tab_close' | skyLibResources: buttonText\"\n [disabled]=\"disabled\"\n [ngClass]=\"{\n 'sky-btn-tab-close-disabled': disabled\n }\"\n (click)=\"onCloseClick($event)\"\n >\n <sky-icon icon=\"remove\"></sky-icon>\n </button>\n</div>\n", styles: [".sky-btn-tab-wrapper{display:inline-block;position:relative;margin-right:5px}.sky-btn-tab-wrapper .sky-btn-tab-close{position:absolute;top:10px;right:10px;color:#686c73}.sky-btn-tab-wrapper .sky-btn-tab-close:hover{color:#212327;transition:color .15s}.sky-btn-tab-wrapper.sky-btn-tab-wrapper-selected:not(.sky-btn-tab-wrapper-disabled) .sky-btn-tab-close{color:#fff}.sky-btn-tab-wrapper.sky-btn-tab-wrapper-disabled{cursor:not-allowed}.sky-tab-btn-closeable{padding-right:43px}:host-context(.sky-theme-modern) .sky-btn-tab-wrapper{margin-right:10px}:host-context(.sky-theme-modern) .sky-btn-tab-wrapper .sky-btn-tab-close{top:12px;right:10px}:host-context(.sky-theme-modern) .sky-btn-tab-wrapper.sky-btn-tab-wrapper-selected:not(.sky-btn-tab-wrapper-disabled) .sky-btn-tab-close{color:#686c73}:host-context(.sky-theme-modern) .sky-tab-btn-closeable{padding-right:44px}.sky-theme-modern .sky-btn-tab-wrapper{margin-right:10px}.sky-theme-modern .sky-btn-tab-wrapper .sky-btn-tab-close{top:12px;right:10px}.sky-theme-modern .sky-btn-tab-wrapper.sky-btn-tab-wrapper-selected:not(.sky-btn-tab-wrapper-disabled) .sky-btn-tab-close{color:#686c73}.sky-theme-modern .sky-tab-btn-closeable{padding-right:44px}:host-context(.sky-theme-modern.sky-theme-mode-dark) .sky-btn-tab-wrapper .sky-btn-tab-close{color:#eeeeef}:host-context(.sky-theme-modern.sky-theme-mode-dark) .sky-btn-tab-wrapper.sky-btn-tab-wrapper-selected:not(.sky-btn-tab-wrapper-disabled) .sky-btn-tab-close{color:#eeeeef}.sky-theme-modern.sky-theme-mode-dark .sky-btn-tab-wrapper .sky-btn-tab-close{color:#eeeeef}.sky-theme-modern.sky-theme-mode-dark .sky-btn-tab-wrapper.sky-btn-tab-wrapper-selected:not(.sky-btn-tab-wrapper-disabled) .sky-btn-tab-close{color:#eeeeef}\n"], dependencies: [{ kind: "directive", type: i4.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i5.λ4, selector: "sky-icon", inputs: ["icon", "iconType", "size", "fixedWidth", "variant"] }, { kind: "pipe", type: i3.SkyLibResourcesPipe, name: "skyLibResources" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
|
|
1325
1341
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.0", ngImport: i0, type: SkyTabButtonComponent, decorators: [{
|
|
1326
1342
|
type: Component,
|
|
1327
|
-
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
|
|
1343
|
+
args: [{ selector: 'sky-tab-button', providers: [SkyTabButtonAdapterService], changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, template: "<div\n class=\"sky-btn-tab-wrapper\"\n [ngClass]=\"{\n 'sky-btn-tab-wrapper-selected': active,\n 'sky-btn-tab-wrapper-disabled': disabled\n }\"\n>\n <a\n #tabButtonEl\n class=\"sky-btn-tab\"\n role=\"tab\"\n [attr.aria-controls]=\"ariaControls\"\n [attr.aria-disabled]=\"disabled\"\n [attr.aria-selected]=\"active\"\n [attr.href]=\"buttonHref\"\n [attr.aria-label]=\"\n (tabStyle === 'wizard'\n ? 'skyux_wizard_sr_step_' + wizardStepState\n : 'skyux_tabs_sr_tab_order'\n ) | skyLibResources: tabNumber:totalTabsCount:buttonText\n \"\n [id]=\"buttonId\"\n [ngClass]=\"{\n 'sky-btn-tab-wizard': tabStyle === 'wizard',\n 'sky-btn-tab-selected': active,\n 'sky-btn-tab-disabled': disabled,\n 'sky-tab-btn-closeable': closeable\n }\"\n [tabindex]=\"active ? '0' : '-1'\"\n (click)=\"onButtonClick($event)\"\n (keydown)=\"onTabButtonKeyDown($event)\"\n (focus)=\"onFocus()\"\n >\n <span class=\"sky-tab-heading\" [attr.aria-hidden]=\"true\">\n {{ buttonText }}\n <span *ngIf=\"buttonTextCount !== undefined\" class=\"sky-tab-header-count\">\n {{ buttonTextCount }}\n </span>\n </span>\n </a>\n\n <button\n *ngIf=\"closeable\"\n class=\"sky-btn-tab-close\"\n [tabindex]=\"closeBtnTabIndex\"\n type=\"button\"\n [attr.aria-label]=\"'skyux_tab_close' | skyLibResources: buttonText\"\n [disabled]=\"disabled\"\n [ngClass]=\"{\n 'sky-btn-tab-close-disabled': disabled\n }\"\n (click)=\"onCloseClick($event)\"\n >\n <sky-icon icon=\"remove\"></sky-icon>\n </button>\n</div>\n", styles: [".sky-btn-tab-wrapper{display:inline-block;position:relative;margin-right:5px}.sky-btn-tab-wrapper .sky-btn-tab-close{position:absolute;top:10px;right:10px;color:#686c73}.sky-btn-tab-wrapper .sky-btn-tab-close:hover{color:#212327;transition:color .15s}.sky-btn-tab-wrapper.sky-btn-tab-wrapper-selected:not(.sky-btn-tab-wrapper-disabled) .sky-btn-tab-close{color:#fff}.sky-btn-tab-wrapper.sky-btn-tab-wrapper-disabled{cursor:not-allowed}.sky-tab-btn-closeable{padding-right:43px}:host-context(.sky-theme-modern) .sky-btn-tab-wrapper{margin-right:10px}:host-context(.sky-theme-modern) .sky-btn-tab-wrapper .sky-btn-tab-close{top:12px;right:10px}:host-context(.sky-theme-modern) .sky-btn-tab-wrapper.sky-btn-tab-wrapper-selected:not(.sky-btn-tab-wrapper-disabled) .sky-btn-tab-close{color:#686c73}:host-context(.sky-theme-modern) .sky-tab-btn-closeable{padding-right:44px}.sky-theme-modern .sky-btn-tab-wrapper{margin-right:10px}.sky-theme-modern .sky-btn-tab-wrapper .sky-btn-tab-close{top:12px;right:10px}.sky-theme-modern .sky-btn-tab-wrapper.sky-btn-tab-wrapper-selected:not(.sky-btn-tab-wrapper-disabled) .sky-btn-tab-close{color:#686c73}.sky-theme-modern .sky-tab-btn-closeable{padding-right:44px}:host-context(.sky-theme-modern.sky-theme-mode-dark) .sky-btn-tab-wrapper .sky-btn-tab-close{color:#eeeeef}:host-context(.sky-theme-modern.sky-theme-mode-dark) .sky-btn-tab-wrapper.sky-btn-tab-wrapper-selected:not(.sky-btn-tab-wrapper-disabled) .sky-btn-tab-close{color:#eeeeef}.sky-theme-modern.sky-theme-mode-dark .sky-btn-tab-wrapper .sky-btn-tab-close{color:#eeeeef}.sky-theme-modern.sky-theme-mode-dark .sky-btn-tab-wrapper.sky-btn-tab-wrapper-selected:not(.sky-btn-tab-wrapper-disabled) .sky-btn-tab-close{color:#eeeeef}\n"] }]
|
|
1328
1344
|
}], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: SkyTabButtonAdapterService }, { type: i0.ChangeDetectorRef }, { type: SkyTabsetService }]; }, propDecorators: { active: [{
|
|
1329
1345
|
type: Input
|
|
1330
1346
|
}], ariaControls: [{
|
|
@@ -1355,40 +1371,48 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.0", ngImpor
|
|
|
1355
1371
|
type: Output
|
|
1356
1372
|
}] } });
|
|
1357
1373
|
|
|
1374
|
+
var _SkyTabsetPermalinkService_instances, _SkyTabsetPermalinkService_popStateChange, _SkyTabsetPermalinkService_subscription, _SkyTabsetPermalinkService_activatedRoute, _SkyTabsetPermalinkService_location, _SkyTabsetPermalinkService_router, _SkyTabsetPermalinkService_getParams;
|
|
1358
1375
|
/**
|
|
1359
1376
|
* @internal
|
|
1360
1377
|
*/
|
|
1361
1378
|
class SkyTabsetPermalinkService {
|
|
1362
1379
|
constructor(activatedRoute, location, router) {
|
|
1363
|
-
this
|
|
1364
|
-
this
|
|
1365
|
-
this
|
|
1366
|
-
this
|
|
1380
|
+
_SkyTabsetPermalinkService_instances.add(this);
|
|
1381
|
+
_SkyTabsetPermalinkService_popStateChange.set(this, void 0);
|
|
1382
|
+
_SkyTabsetPermalinkService_subscription.set(this, void 0);
|
|
1383
|
+
_SkyTabsetPermalinkService_activatedRoute.set(this, void 0);
|
|
1384
|
+
_SkyTabsetPermalinkService_location.set(this, void 0);
|
|
1385
|
+
_SkyTabsetPermalinkService_router.set(this, void 0);
|
|
1386
|
+
__classPrivateFieldSet(this, _SkyTabsetPermalinkService_activatedRoute, activatedRoute, "f");
|
|
1387
|
+
__classPrivateFieldSet(this, _SkyTabsetPermalinkService_location, location, "f");
|
|
1388
|
+
__classPrivateFieldSet(this, _SkyTabsetPermalinkService_router, router, "f");
|
|
1389
|
+
__classPrivateFieldSet(this, _SkyTabsetPermalinkService_popStateChange, new Subject(), "f");
|
|
1367
1390
|
}
|
|
1368
1391
|
get popStateChange() {
|
|
1369
|
-
return this
|
|
1392
|
+
return __classPrivateFieldGet(this, _SkyTabsetPermalinkService_popStateChange, "f");
|
|
1370
1393
|
}
|
|
1371
1394
|
ngOnDestroy() {
|
|
1372
|
-
if (this
|
|
1373
|
-
this.
|
|
1395
|
+
if (__classPrivateFieldGet(this, _SkyTabsetPermalinkService_subscription, "f")) {
|
|
1396
|
+
__classPrivateFieldGet(this, _SkyTabsetPermalinkService_subscription, "f").unsubscribe();
|
|
1374
1397
|
}
|
|
1398
|
+
__classPrivateFieldGet(this, _SkyTabsetPermalinkService_popStateChange, "f").complete();
|
|
1375
1399
|
}
|
|
1376
1400
|
init() {
|
|
1377
|
-
this
|
|
1378
|
-
this.
|
|
1379
|
-
});
|
|
1401
|
+
__classPrivateFieldSet(this, _SkyTabsetPermalinkService_subscription, __classPrivateFieldGet(this, _SkyTabsetPermalinkService_location, "f").subscribe(() => {
|
|
1402
|
+
__classPrivateFieldGet(this, _SkyTabsetPermalinkService_popStateChange, "f").next();
|
|
1403
|
+
}), "f");
|
|
1380
1404
|
}
|
|
1381
1405
|
/**
|
|
1382
1406
|
* Returns the value of a URL query param.
|
|
1383
1407
|
*/
|
|
1384
1408
|
getParam(name) {
|
|
1385
|
-
return this.
|
|
1409
|
+
return __classPrivateFieldGet(this, _SkyTabsetPermalinkService_instances, "m", _SkyTabsetPermalinkService_getParams).call(this)[name];
|
|
1386
1410
|
}
|
|
1387
1411
|
/**
|
|
1388
1412
|
* Sets the value of a URL query param.
|
|
1389
1413
|
*/
|
|
1390
1414
|
setParam(name, value) {
|
|
1391
|
-
const params = this.
|
|
1415
|
+
const params = __classPrivateFieldGet(this, _SkyTabsetPermalinkService_instances, "m", _SkyTabsetPermalinkService_getParams).call(this);
|
|
1392
1416
|
if (value === null) {
|
|
1393
1417
|
delete params[name];
|
|
1394
1418
|
}
|
|
@@ -1397,18 +1421,18 @@ class SkyTabsetPermalinkService {
|
|
|
1397
1421
|
}
|
|
1398
1422
|
// Update the URL without triggering a navigation state change.
|
|
1399
1423
|
// See: https://stackoverflow.com/a/46486677
|
|
1400
|
-
const url = this
|
|
1424
|
+
const url = __classPrivateFieldGet(this, _SkyTabsetPermalinkService_router, "f")
|
|
1401
1425
|
.createUrlTree([], {
|
|
1402
|
-
relativeTo: this
|
|
1426
|
+
relativeTo: __classPrivateFieldGet(this, _SkyTabsetPermalinkService_activatedRoute, "f"),
|
|
1403
1427
|
queryParams: params,
|
|
1404
1428
|
queryParamsHandling: 'merge',
|
|
1405
1429
|
})
|
|
1406
1430
|
.toString();
|
|
1407
1431
|
// Abort redirect if the current URL is equal to the new URL.
|
|
1408
|
-
if (this.
|
|
1432
|
+
if (__classPrivateFieldGet(this, _SkyTabsetPermalinkService_location, "f").isCurrentPathEqualTo(url)) {
|
|
1409
1433
|
return;
|
|
1410
1434
|
}
|
|
1411
|
-
this.
|
|
1435
|
+
__classPrivateFieldGet(this, _SkyTabsetPermalinkService_location, "f").go(url);
|
|
1412
1436
|
}
|
|
1413
1437
|
/**
|
|
1414
1438
|
* Removes the provided query param from the URL.
|
|
@@ -1424,13 +1448,13 @@ class SkyTabsetPermalinkService {
|
|
|
1424
1448
|
if (!name) {
|
|
1425
1449
|
return null;
|
|
1426
1450
|
}
|
|
1427
|
-
const params = this.
|
|
1451
|
+
const params = __classPrivateFieldGet(this, _SkyTabsetPermalinkService_instances, "m", _SkyTabsetPermalinkService_getParams).call(this);
|
|
1428
1452
|
params[name] = value;
|
|
1429
|
-
const baseUrl = this.
|
|
1453
|
+
const baseUrl = __classPrivateFieldGet(this, _SkyTabsetPermalinkService_location, "f").path().split('?')[0];
|
|
1430
1454
|
const paramString = Object.keys(params)
|
|
1431
1455
|
.map((k) => `${k}=${params[k]}`)
|
|
1432
1456
|
.join('&');
|
|
1433
|
-
return this.
|
|
1457
|
+
return __classPrivateFieldGet(this, _SkyTabsetPermalinkService_location, "f").prepareExternalUrl(`${baseUrl}?${paramString}`);
|
|
1434
1458
|
}
|
|
1435
1459
|
/**
|
|
1436
1460
|
* Converts the provided string into a value that can be safely used in a URL.
|
|
@@ -1449,48 +1473,59 @@ class SkyTabsetPermalinkService {
|
|
|
1449
1473
|
.replace(/--/g, '-');
|
|
1450
1474
|
return sanitized;
|
|
1451
1475
|
}
|
|
1452
|
-
|
|
1453
|
-
|
|
1454
|
-
|
|
1455
|
-
|
|
1456
|
-
|
|
1457
|
-
const path = this.location.path();
|
|
1458
|
-
if (path.indexOf('?') === -1) {
|
|
1459
|
-
return params;
|
|
1460
|
-
}
|
|
1461
|
-
const existingParamPairs = path.split('?')[1].split('&');
|
|
1462
|
-
existingParamPairs.forEach((pair) => {
|
|
1463
|
-
const fragments = pair.split('=');
|
|
1464
|
-
params[fragments[0]] = decodeURIComponent(fragments[1]);
|
|
1465
|
-
});
|
|
1476
|
+
}
|
|
1477
|
+
_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() {
|
|
1478
|
+
const params = {};
|
|
1479
|
+
const path = __classPrivateFieldGet(this, _SkyTabsetPermalinkService_location, "f").path();
|
|
1480
|
+
if (path.indexOf('?') === -1) {
|
|
1466
1481
|
return params;
|
|
1467
1482
|
}
|
|
1468
|
-
|
|
1483
|
+
const existingParamPairs = path.split('?')[1].split('&');
|
|
1484
|
+
existingParamPairs.forEach((pair) => {
|
|
1485
|
+
const fragments = pair.split('=');
|
|
1486
|
+
params[fragments[0]] = decodeURIComponent(fragments[1]);
|
|
1487
|
+
});
|
|
1488
|
+
return params;
|
|
1489
|
+
};
|
|
1469
1490
|
SkyTabsetPermalinkService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.0", ngImport: i0, type: SkyTabsetPermalinkService, deps: [{ token: i1$1.ActivatedRoute }, { token: i4.Location }, { token: i1$1.Router }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
1470
1491
|
SkyTabsetPermalinkService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "14.2.0", ngImport: i0, type: SkyTabsetPermalinkService });
|
|
1471
1492
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.0", ngImport: i0, type: SkyTabsetPermalinkService, decorators: [{
|
|
1472
1493
|
type: Injectable
|
|
1473
1494
|
}], ctorParameters: function () { return [{ type: i1$1.ActivatedRoute }, { type: i4.Location }, { type: i1$1.Router }]; } });
|
|
1474
1495
|
|
|
1496
|
+
var _SkyTabComponent_instances, _SkyTabComponent__active, _SkyTabComponent_activeChange, _SkyTabComponent__permalinkValue, _SkyTabComponent_stateChange, _SkyTabComponent__tabHeading, _SkyTabComponent__tabIndex, _SkyTabComponent_tabIndexChange, _SkyTabComponent_changeDetector, _SkyTabComponent_permalinkService, _SkyTabComponent_tabsetService, _SkyTabComponent_setPermalinkValueOrDefault;
|
|
1475
1497
|
let nextId = 0;
|
|
1476
1498
|
class SkyTabComponent {
|
|
1477
1499
|
constructor(changeDetector, permalinkService, tabsetService) {
|
|
1478
|
-
this
|
|
1479
|
-
this.permalinkService = permalinkService;
|
|
1480
|
-
this.tabsetService = tabsetService;
|
|
1500
|
+
_SkyTabComponent_instances.add(this);
|
|
1481
1501
|
/**
|
|
1482
1502
|
* Fires when users click the button to close the tab.
|
|
1483
1503
|
* The close button is added to the tab when you specify a listener for this event.
|
|
1484
1504
|
* This event only applies when the tabset's `tabStyle` is `"tabs"`.
|
|
1485
1505
|
*/
|
|
1486
1506
|
this.close = new EventEmitter(); // eslint-disable-line @angular-eslint/no-output-native
|
|
1507
|
+
this.permalinkValueOrDefault = '';
|
|
1487
1508
|
this.showContent = false;
|
|
1488
|
-
this
|
|
1489
|
-
this
|
|
1490
|
-
this
|
|
1509
|
+
_SkyTabComponent__active.set(this, false);
|
|
1510
|
+
_SkyTabComponent_activeChange.set(this, void 0);
|
|
1511
|
+
_SkyTabComponent__permalinkValue.set(this, void 0);
|
|
1512
|
+
_SkyTabComponent_stateChange.set(this, void 0);
|
|
1513
|
+
_SkyTabComponent__tabHeading.set(this, void 0);
|
|
1514
|
+
_SkyTabComponent__tabIndex.set(this, void 0);
|
|
1515
|
+
_SkyTabComponent_tabIndexChange.set(this, void 0);
|
|
1516
|
+
_SkyTabComponent_changeDetector.set(this, void 0);
|
|
1517
|
+
_SkyTabComponent_permalinkService.set(this, void 0);
|
|
1518
|
+
_SkyTabComponent_tabsetService.set(this, void 0);
|
|
1519
|
+
__classPrivateFieldSet(this, _SkyTabComponent_changeDetector, changeDetector, "f");
|
|
1520
|
+
__classPrivateFieldSet(this, _SkyTabComponent_permalinkService, permalinkService, "f");
|
|
1521
|
+
__classPrivateFieldSet(this, _SkyTabComponent_tabsetService, tabsetService, "f");
|
|
1491
1522
|
const id = nextId++;
|
|
1492
1523
|
this.tabPanelId = `sky-tab-${id}`;
|
|
1493
1524
|
this.tabButtonId = `${this.tabPanelId}-nav-btn`;
|
|
1525
|
+
__classPrivateFieldSet(this, _SkyTabComponent_activeChange, new BehaviorSubject(undefined), "f");
|
|
1526
|
+
__classPrivateFieldSet(this, _SkyTabComponent_stateChange, new BehaviorSubject(undefined), "f");
|
|
1527
|
+
__classPrivateFieldSet(this, _SkyTabComponent_tabIndexChange, new BehaviorSubject(undefined), "f");
|
|
1528
|
+
__classPrivateFieldGet(this, _SkyTabComponent_instances, "m", _SkyTabComponent_setPermalinkValueOrDefault).call(this);
|
|
1494
1529
|
}
|
|
1495
1530
|
/**
|
|
1496
1531
|
* Indicates whether the tab is active when the tabset loads. After initialization, the `active`
|
|
@@ -1498,16 +1533,16 @@ class SkyTabComponent {
|
|
|
1498
1533
|
* @default false
|
|
1499
1534
|
*/
|
|
1500
1535
|
set active(value) {
|
|
1501
|
-
if (value !== undefined && value !== this
|
|
1502
|
-
this
|
|
1503
|
-
this.
|
|
1536
|
+
if (value !== undefined && !!value !== __classPrivateFieldGet(this, _SkyTabComponent__active, "f")) {
|
|
1537
|
+
__classPrivateFieldSet(this, _SkyTabComponent__active, value, "f");
|
|
1538
|
+
__classPrivateFieldGet(this, _SkyTabComponent_activeChange, "f").next();
|
|
1504
1539
|
}
|
|
1505
1540
|
}
|
|
1506
1541
|
get active() {
|
|
1507
|
-
return this
|
|
1542
|
+
return __classPrivateFieldGet(this, _SkyTabComponent__active, "f");
|
|
1508
1543
|
}
|
|
1509
1544
|
get activeChange() {
|
|
1510
|
-
return this
|
|
1545
|
+
return __classPrivateFieldGet(this, _SkyTabComponent_activeChange, "f");
|
|
1511
1546
|
}
|
|
1512
1547
|
/**
|
|
1513
1548
|
* Specifies a custom query parameter value for the tab.
|
|
@@ -1518,65 +1553,90 @@ class SkyTabComponent {
|
|
|
1518
1553
|
* This input only applies when the tabset's `tabStyle` is `"tabs"`.
|
|
1519
1554
|
*/
|
|
1520
1555
|
set permalinkValue(value) {
|
|
1521
|
-
this
|
|
1556
|
+
__classPrivateFieldSet(this, _SkyTabComponent__permalinkValue, value, "f");
|
|
1557
|
+
__classPrivateFieldGet(this, _SkyTabComponent_instances, "m", _SkyTabComponent_setPermalinkValueOrDefault).call(this);
|
|
1522
1558
|
}
|
|
1523
1559
|
get permalinkValue() {
|
|
1524
|
-
return (this
|
|
1560
|
+
return __classPrivateFieldGet(this, _SkyTabComponent__permalinkValue, "f");
|
|
1561
|
+
}
|
|
1562
|
+
/**
|
|
1563
|
+
* Specifies the tab header.
|
|
1564
|
+
* When using tabs as the main navigation on a page,
|
|
1565
|
+
* use [the Angular `Title` service](https://angular.io/docs/ts/latest/cookbook/set-document-title.html)
|
|
1566
|
+
* and [the SKY UX `title` configuration property](https://developer.blackbaud.com/skyux/learn/reference/configuration#app)
|
|
1567
|
+
* to reflect the tab header in the page title.
|
|
1568
|
+
* @required
|
|
1569
|
+
*/
|
|
1570
|
+
set tabHeading(value) {
|
|
1571
|
+
__classPrivateFieldSet(this, _SkyTabComponent__tabHeading, value, "f");
|
|
1572
|
+
__classPrivateFieldGet(this, _SkyTabComponent_instances, "m", _SkyTabComponent_setPermalinkValueOrDefault).call(this);
|
|
1573
|
+
}
|
|
1574
|
+
get tabHeading() {
|
|
1575
|
+
return __classPrivateFieldGet(this, _SkyTabComponent__tabHeading, "f");
|
|
1525
1576
|
}
|
|
1526
1577
|
/**
|
|
1527
1578
|
* Specifies a unique identifier for the tab.
|
|
1528
1579
|
* If not defined, the identifier is set to the position of the tab on load, starting with `0`.
|
|
1529
1580
|
*/
|
|
1530
1581
|
set tabIndex(value) {
|
|
1531
|
-
if (value !== this
|
|
1582
|
+
if (value !== __classPrivateFieldGet(this, _SkyTabComponent__tabIndex, "f") &&
|
|
1532
1583
|
value !== undefined &&
|
|
1533
|
-
this
|
|
1534
|
-
this.
|
|
1535
|
-
this.
|
|
1584
|
+
__classPrivateFieldGet(this, _SkyTabComponent__tabIndex, "f") !== undefined) {
|
|
1585
|
+
__classPrivateFieldGet(this, _SkyTabComponent_tabsetService, "f").updateTabIndex(__classPrivateFieldGet(this, _SkyTabComponent__tabIndex, "f"), value);
|
|
1586
|
+
__classPrivateFieldGet(this, _SkyTabComponent_tabIndexChange, "f").next(value);
|
|
1536
1587
|
}
|
|
1537
|
-
this
|
|
1588
|
+
__classPrivateFieldSet(this, _SkyTabComponent__tabIndex, value, "f");
|
|
1538
1589
|
}
|
|
1539
1590
|
get tabIndex() {
|
|
1540
|
-
return this
|
|
1541
|
-
}
|
|
1542
|
-
get closeable() {
|
|
1543
|
-
return this.close.observers.length > 0;
|
|
1591
|
+
return __classPrivateFieldGet(this, _SkyTabComponent__tabIndex, "f");
|
|
1544
1592
|
}
|
|
1545
1593
|
/**
|
|
1546
1594
|
* Alerts the tabset component when this component has changes that need to be reflected in the UI.
|
|
1547
1595
|
*/
|
|
1548
1596
|
get stateChange() {
|
|
1549
|
-
return this
|
|
1597
|
+
return __classPrivateFieldGet(this, _SkyTabComponent_stateChange, "f");
|
|
1550
1598
|
}
|
|
1551
1599
|
get tabIndexChange() {
|
|
1552
|
-
return this
|
|
1600
|
+
return __classPrivateFieldGet(this, _SkyTabComponent_tabIndexChange, "f");
|
|
1553
1601
|
}
|
|
1554
1602
|
ngOnChanges(changes) {
|
|
1555
1603
|
if ((changes.disabled && !changes.disabled.firstChange) ||
|
|
1556
1604
|
(changes.tabHeading && !changes.tabHeading.firstChange) ||
|
|
1557
1605
|
(changes.tabHeaderCount && !changes.tabHeaderCount.firstChange) ||
|
|
1558
1606
|
(changes.permalinkValue && !changes.permalinkValue.firstChange)) {
|
|
1559
|
-
this.
|
|
1607
|
+
__classPrivateFieldGet(this, _SkyTabComponent_stateChange, "f").next();
|
|
1560
1608
|
}
|
|
1561
1609
|
}
|
|
1562
1610
|
ngOnDestroy() {
|
|
1563
|
-
this.
|
|
1564
|
-
this.
|
|
1611
|
+
__classPrivateFieldGet(this, _SkyTabComponent_activeChange, "f").complete();
|
|
1612
|
+
__classPrivateFieldGet(this, _SkyTabComponent_stateChange, "f").complete();
|
|
1613
|
+
__classPrivateFieldGet(this, _SkyTabComponent_tabIndexChange, "f").complete();
|
|
1614
|
+
if (this.tabIndex !== undefined) {
|
|
1615
|
+
__classPrivateFieldGet(this, _SkyTabComponent_tabsetService, "f").unregisterTab(this.tabIndex);
|
|
1616
|
+
}
|
|
1565
1617
|
}
|
|
1566
1618
|
init() {
|
|
1567
|
-
this
|
|
1619
|
+
__classPrivateFieldSet(this, _SkyTabComponent__tabIndex, __classPrivateFieldGet(this, _SkyTabComponent_tabsetService, "f").registerTab(this.tabIndex), "f");
|
|
1568
1620
|
}
|
|
1569
1621
|
activate() {
|
|
1570
|
-
this
|
|
1622
|
+
__classPrivateFieldSet(this, _SkyTabComponent__active, true, "f");
|
|
1571
1623
|
this.showContent = true;
|
|
1572
|
-
this.
|
|
1624
|
+
__classPrivateFieldGet(this, _SkyTabComponent_changeDetector, "f").markForCheck();
|
|
1573
1625
|
}
|
|
1574
1626
|
deactivate() {
|
|
1575
|
-
this
|
|
1627
|
+
__classPrivateFieldSet(this, _SkyTabComponent__active, false, "f");
|
|
1576
1628
|
this.showContent = false;
|
|
1577
|
-
this.
|
|
1629
|
+
__classPrivateFieldGet(this, _SkyTabComponent_changeDetector, "f").markForCheck();
|
|
1630
|
+
}
|
|
1631
|
+
isCloseable() {
|
|
1632
|
+
return this.close.observers.length > 0;
|
|
1578
1633
|
}
|
|
1579
1634
|
}
|
|
1635
|
+
_SkyTabComponent__active = new WeakMap(), _SkyTabComponent_activeChange = new WeakMap(), _SkyTabComponent__permalinkValue = new WeakMap(), _SkyTabComponent_stateChange = new WeakMap(), _SkyTabComponent__tabHeading = new WeakMap(), _SkyTabComponent__tabIndex = new WeakMap(), _SkyTabComponent_tabIndexChange = new WeakMap(), _SkyTabComponent_changeDetector = new WeakMap(), _SkyTabComponent_permalinkService = new WeakMap(), _SkyTabComponent_tabsetService = new WeakMap(), _SkyTabComponent_instances = new WeakSet(), _SkyTabComponent_setPermalinkValueOrDefault = function _SkyTabComponent_setPermalinkValueOrDefault() {
|
|
1636
|
+
this.permalinkValueOrDefault =
|
|
1637
|
+
__classPrivateFieldGet(this, _SkyTabComponent_permalinkService, "f").urlify(this.permalinkValue) ||
|
|
1638
|
+
__classPrivateFieldGet(this, _SkyTabComponent_permalinkService, "f").urlify(this.tabHeading);
|
|
1639
|
+
};
|
|
1580
1640
|
SkyTabComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.0", ngImport: i0, type: SkyTabComponent, deps: [{ token: i0.ChangeDetectorRef }, { token: SkyTabsetPermalinkService }, { token: SkyTabsetService }], target: i0.ɵɵFactoryTarget.Component });
|
|
1581
1641
|
SkyTabComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.0", type: SkyTabComponent, selector: "sky-tab", inputs: { active: "active", disabled: "disabled", permalinkValue: "permalinkValue", tabHeaderCount: "tabHeaderCount", tabHeading: "tabHeading", tabIndex: "tabIndex" }, outputs: { close: "close" }, usesOnChanges: true, ngImport: i0, template: "<div\n class=\"sky-tab\"\n role=\"tabpanel\"\n [attr.aria-labelledby]=\"tabButtonId\"\n [hidden]=\"!showContent\"\n [id]=\"tabPanelId\"\n>\n <ng-content></ng-content>\n</div>\n", changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
1582
1642
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.0", ngImport: i0, type: SkyTabComponent, decorators: [{
|
|
@@ -1598,7 +1658,27 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.0", ngImpor
|
|
|
1598
1658
|
type: Output
|
|
1599
1659
|
}] } });
|
|
1600
1660
|
|
|
1601
|
-
|
|
1661
|
+
class SkyTabsetNavButtonDisabledPipe {
|
|
1662
|
+
transform(disabled, buttonType, tabToSelectExists, tabToSelectIsDisabled) {
|
|
1663
|
+
if (disabled !== undefined) {
|
|
1664
|
+
return disabled;
|
|
1665
|
+
}
|
|
1666
|
+
else if (buttonType === 'finish') {
|
|
1667
|
+
return false;
|
|
1668
|
+
}
|
|
1669
|
+
return !tabToSelectExists || !!tabToSelectIsDisabled;
|
|
1670
|
+
}
|
|
1671
|
+
}
|
|
1672
|
+
SkyTabsetNavButtonDisabledPipe.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.0", ngImport: i0, type: SkyTabsetNavButtonDisabledPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe });
|
|
1673
|
+
SkyTabsetNavButtonDisabledPipe.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "14.2.0", ngImport: i0, type: SkyTabsetNavButtonDisabledPipe, name: "skyTabsetNavButtonDisabled" });
|
|
1674
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.0", ngImport: i0, type: SkyTabsetNavButtonDisabledPipe, decorators: [{
|
|
1675
|
+
type: Pipe,
|
|
1676
|
+
args: [{
|
|
1677
|
+
name: 'skyTabsetNavButtonDisabled',
|
|
1678
|
+
}]
|
|
1679
|
+
}] });
|
|
1680
|
+
|
|
1681
|
+
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;
|
|
1602
1682
|
const buttonTypeNext = 'next';
|
|
1603
1683
|
const buttonTypePrevious = 'previous';
|
|
1604
1684
|
const buttonTypeFinish = 'finish';
|
|
@@ -1606,6 +1686,7 @@ class SkyTabsetNavButtonComponent {
|
|
|
1606
1686
|
constructor(logger) {
|
|
1607
1687
|
_SkyTabsetNavButtonComponent_instances.add(this);
|
|
1608
1688
|
this.isVisible = false;
|
|
1689
|
+
this.type = 'submit';
|
|
1609
1690
|
_SkyTabsetNavButtonComponent__buttonType.set(this, void 0);
|
|
1610
1691
|
_SkyTabsetNavButtonComponent__disabled.set(this, void 0);
|
|
1611
1692
|
_SkyTabsetNavButtonComponent__tabset.set(this, void 0);
|
|
@@ -1614,7 +1695,6 @@ class SkyTabsetNavButtonComponent {
|
|
|
1614
1695
|
_SkyTabsetNavButtonComponent_currentTabsetSub.set(this, void 0);
|
|
1615
1696
|
_SkyTabsetNavButtonComponent_logger.set(this, void 0);
|
|
1616
1697
|
_SkyTabsetNavButtonComponent_tabCount.set(this, void 0);
|
|
1617
|
-
_SkyTabsetNavButtonComponent_tabToSelect.set(this, void 0);
|
|
1618
1698
|
_SkyTabsetNavButtonComponent_ngUnsubscribe.set(this, new Subject());
|
|
1619
1699
|
__classPrivateFieldSet(this, _SkyTabsetNavButtonComponent_logger, logger, "f");
|
|
1620
1700
|
}
|
|
@@ -1631,11 +1711,12 @@ class SkyTabsetNavButtonComponent {
|
|
|
1631
1711
|
__classPrivateFieldGet(this, _SkyTabsetNavButtonComponent_currentTabsetSub, "f").unsubscribe();
|
|
1632
1712
|
}
|
|
1633
1713
|
if (value) {
|
|
1634
|
-
__classPrivateFieldSet(this, _SkyTabsetNavButtonComponent_currentTabsetSub,
|
|
1714
|
+
__classPrivateFieldSet(this, _SkyTabsetNavButtonComponent_currentTabsetSub, value.activeChange
|
|
1635
1715
|
.pipe(distinctUntilChanged(), takeUntil(__classPrivateFieldGet(this, _SkyTabsetNavButtonComponent_ngUnsubscribe, "f")))
|
|
1636
1716
|
.subscribe((index) => {
|
|
1717
|
+
var _a, _b;
|
|
1637
1718
|
__classPrivateFieldSet(this, _SkyTabsetNavButtonComponent_activeSkyTabIndex, index, "f");
|
|
1638
|
-
__classPrivateFieldSet(this, _SkyTabsetNavButtonComponent_tabCount, __classPrivateFieldGet(this, _SkyTabsetNavButtonComponent__tabset, "f").tabs.length, "f");
|
|
1719
|
+
__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");
|
|
1639
1720
|
__classPrivateFieldGet(this, _SkyTabsetNavButtonComponent_instances, "m", _SkyTabsetNavButtonComponent_updateTabToSelect).call(this);
|
|
1640
1721
|
__classPrivateFieldGet(this, _SkyTabsetNavButtonComponent_instances, "m", _SkyTabsetNavButtonComponent_updateButtonVisibility).call(this);
|
|
1641
1722
|
__classPrivateFieldGet(this, _SkyTabsetNavButtonComponent_instances, "m", _SkyTabsetNavButtonComponent_updateButtonProperties).call(this);
|
|
@@ -1673,13 +1754,7 @@ class SkyTabsetNavButtonComponent {
|
|
|
1673
1754
|
__classPrivateFieldSet(this, _SkyTabsetNavButtonComponent__disabled, value, "f");
|
|
1674
1755
|
}
|
|
1675
1756
|
get disabled() {
|
|
1676
|
-
|
|
1677
|
-
return __classPrivateFieldGet(this, _SkyTabsetNavButtonComponent__disabled, "f");
|
|
1678
|
-
}
|
|
1679
|
-
else if (this.buttonType === buttonTypeFinish) {
|
|
1680
|
-
return false;
|
|
1681
|
-
}
|
|
1682
|
-
return !__classPrivateFieldGet(this, _SkyTabsetNavButtonComponent_tabToSelect, "f") || __classPrivateFieldGet(this, _SkyTabsetNavButtonComponent_tabToSelect, "f").disabled;
|
|
1757
|
+
return __classPrivateFieldGet(this, _SkyTabsetNavButtonComponent__disabled, "f");
|
|
1683
1758
|
}
|
|
1684
1759
|
ngOnDestroy() {
|
|
1685
1760
|
__classPrivateFieldGet(this, _SkyTabsetNavButtonComponent_ngUnsubscribe, "f").next();
|
|
@@ -1687,13 +1762,13 @@ class SkyTabsetNavButtonComponent {
|
|
|
1687
1762
|
}
|
|
1688
1763
|
buttonClick() {
|
|
1689
1764
|
/* istanbul ignore else */
|
|
1690
|
-
if (
|
|
1691
|
-
this.tabset.active =
|
|
1765
|
+
if (this.tabToSelect && !this.tabToSelect.disabled && this.tabset) {
|
|
1766
|
+
this.tabset.active = this.tabToSelect.tabIndex;
|
|
1692
1767
|
}
|
|
1693
1768
|
}
|
|
1694
1769
|
}
|
|
1695
|
-
_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(),
|
|
1696
|
-
const isLastStep = __classPrivateFieldGet(this, _SkyTabsetNavButtonComponent_activeIndexNumber, "f") === __classPrivateFieldGet(this, _SkyTabsetNavButtonComponent_tabCount, "f") - 1;
|
|
1770
|
+
_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() {
|
|
1771
|
+
const isLastStep = !!__classPrivateFieldGet(this, _SkyTabsetNavButtonComponent_tabCount, "f") && __classPrivateFieldGet(this, _SkyTabsetNavButtonComponent_activeIndexNumber, "f") === __classPrivateFieldGet(this, _SkyTabsetNavButtonComponent_tabCount, "f") - 1;
|
|
1697
1772
|
if (this.buttonType === buttonTypeFinish) {
|
|
1698
1773
|
this.isVisible = isLastStep;
|
|
1699
1774
|
}
|
|
@@ -1712,30 +1787,30 @@ _SkyTabsetNavButtonComponent__buttonType = new WeakMap(), _SkyTabsetNavButtonCom
|
|
|
1712
1787
|
else {
|
|
1713
1788
|
this.buttonClassName = 'sky-btn-default';
|
|
1714
1789
|
}
|
|
1715
|
-
this.ariaControls = (_a =
|
|
1790
|
+
this.ariaControls = (_a = this.tabToSelect) === null || _a === void 0 ? void 0 : _a.tabPanelId;
|
|
1716
1791
|
}, _SkyTabsetNavButtonComponent_updateTabToSelect = function _SkyTabsetNavButtonComponent_updateTabToSelect() {
|
|
1717
1792
|
var _a;
|
|
1718
1793
|
if ((_a = this.tabset) === null || _a === void 0 ? void 0 : _a.tabs) {
|
|
1719
1794
|
const tabs = this.tabset.tabs.toArray();
|
|
1720
|
-
|
|
1795
|
+
this.tabToSelect = undefined;
|
|
1721
1796
|
// tab index can be a number or a string, but we need the actual number index
|
|
1722
1797
|
__classPrivateFieldSet(this, _SkyTabsetNavButtonComponent_activeIndexNumber, tabs.findIndex((tab) => tab.tabIndex === __classPrivateFieldGet(this, _SkyTabsetNavButtonComponent_activeSkyTabIndex, "f")), "f");
|
|
1723
1798
|
/* istanbul ignore else */
|
|
1724
1799
|
if (__classPrivateFieldGet(this, _SkyTabsetNavButtonComponent_activeIndexNumber, "f") !== undefined) {
|
|
1725
1800
|
if (this.buttonType === buttonTypeNext) {
|
|
1726
|
-
|
|
1801
|
+
this.tabToSelect = tabs[__classPrivateFieldGet(this, _SkyTabsetNavButtonComponent_activeIndexNumber, "f") + 1];
|
|
1727
1802
|
}
|
|
1728
1803
|
else if (this.buttonType === buttonTypePrevious) {
|
|
1729
|
-
|
|
1804
|
+
this.tabToSelect = tabs[__classPrivateFieldGet(this, _SkyTabsetNavButtonComponent_activeIndexNumber, "f") - 1];
|
|
1730
1805
|
}
|
|
1731
1806
|
}
|
|
1732
1807
|
}
|
|
1733
1808
|
};
|
|
1734
1809
|
SkyTabsetNavButtonComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.0", ngImport: i0, type: SkyTabsetNavButtonComponent, deps: [{ token: i1.SkyLogService }], target: i0.ɵɵFactoryTarget.Component });
|
|
1735
|
-
SkyTabsetNavButtonComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.0", type: SkyTabsetNavButtonComponent, selector: "sky-tabset-nav-button", inputs: { tabset: "tabset", buttonType: "buttonType", buttonText: "buttonText", disabled: "disabled" }, ngImport: i0, template: "<button\n *ngIf=\"isVisible\"\n class=\"sky-btn sky-margin-inline-sm\"\n [attr.aria-controls]=\"ariaControls\"\n [disabled]=\"disabled\"\n [ngClass]=\"buttonClassName\"\n [type]=\"type\"\n (click)=\"buttonType === 'finish' ? null : buttonClick()\"\n>\n {{ buttonText || ('skyux_tabs_navigator_' + buttonType | skyLibResources) }}\n</button>\n", dependencies: [{ kind: "directive", type: i4.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "pipe", type: i3.SkyLibResourcesPipe, name: "skyLibResources" }] });
|
|
1810
|
+
SkyTabsetNavButtonComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.0", type: SkyTabsetNavButtonComponent, selector: "sky-tabset-nav-button", inputs: { tabset: "tabset", buttonType: "buttonType", buttonText: "buttonText", disabled: "disabled" }, ngImport: i0, template: "<button\n *ngIf=\"isVisible\"\n class=\"sky-btn sky-margin-inline-sm\"\n [attr.aria-controls]=\"ariaControls\"\n [disabled]=\"\n disabled\n | skyTabsetNavButtonDisabled\n : buttonType\n : !!tabToSelect\n : tabToSelect?.disabled\n \"\n [ngClass]=\"buttonClassName\"\n [type]=\"type\"\n (click)=\"buttonType === 'finish' ? null : buttonClick()\"\n>\n {{ buttonText || ('skyux_tabs_navigator_' + buttonType | skyLibResources) }}\n</button>\n", dependencies: [{ kind: "directive", type: i4.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "pipe", type: i3.SkyLibResourcesPipe, name: "skyLibResources" }, { kind: "pipe", type: SkyTabsetNavButtonDisabledPipe, name: "skyTabsetNavButtonDisabled" }] });
|
|
1736
1811
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.0", ngImport: i0, type: SkyTabsetNavButtonComponent, decorators: [{
|
|
1737
1812
|
type: Component,
|
|
1738
|
-
args: [{ selector: 'sky-tabset-nav-button', template: "<button\n *ngIf=\"isVisible\"\n class=\"sky-btn sky-margin-inline-sm\"\n [attr.aria-controls]=\"ariaControls\"\n [disabled]=\"disabled\"\n [ngClass]=\"buttonClassName\"\n [type]=\"type\"\n (click)=\"buttonType === 'finish' ? null : buttonClick()\"\n>\n {{ buttonText || ('skyux_tabs_navigator_' + buttonType | skyLibResources) }}\n</button>\n" }]
|
|
1813
|
+
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" }]
|
|
1739
1814
|
}], ctorParameters: function () { return [{ type: i1.SkyLogService }]; }, propDecorators: { tabset: [{
|
|
1740
1815
|
type: Input
|
|
1741
1816
|
}], buttonType: [{
|
|
@@ -1746,25 +1821,35 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.0", ngImpor
|
|
|
1746
1821
|
type: Input
|
|
1747
1822
|
}] } });
|
|
1748
1823
|
|
|
1824
|
+
var _SkyTabsetAdapterService_instances, _SkyTabsetAdapterService_currentOverflow, _SkyTabsetAdapterService_tabsetRef, _SkyTabsetAdapterService_tabsOffsetLeft, _SkyTabsetAdapterService_overflowChange, _SkyTabsetAdapterService_getTabsOffsetLeft;
|
|
1749
1825
|
/**
|
|
1750
1826
|
* @internal
|
|
1751
1827
|
*/
|
|
1752
1828
|
class SkyTabsetAdapterService {
|
|
1753
1829
|
constructor() {
|
|
1754
|
-
|
|
1830
|
+
_SkyTabsetAdapterService_instances.add(this);
|
|
1831
|
+
_SkyTabsetAdapterService_currentOverflow.set(this, false);
|
|
1832
|
+
_SkyTabsetAdapterService_tabsetRef.set(this, void 0);
|
|
1833
|
+
_SkyTabsetAdapterService_tabsOffsetLeft.set(this, void 0);
|
|
1834
|
+
_SkyTabsetAdapterService_overflowChange.set(this, void 0);
|
|
1835
|
+
__classPrivateFieldSet(this, _SkyTabsetAdapterService_overflowChange, new BehaviorSubject(false), "f");
|
|
1755
1836
|
}
|
|
1756
1837
|
get overflowChange() {
|
|
1757
|
-
return this
|
|
1838
|
+
return __classPrivateFieldGet(this, _SkyTabsetAdapterService_overflowChange, "f");
|
|
1839
|
+
}
|
|
1840
|
+
ngOnDestroy() {
|
|
1841
|
+
__classPrivateFieldGet(this, _SkyTabsetAdapterService_overflowChange, "f").complete();
|
|
1758
1842
|
}
|
|
1759
1843
|
registerTabset(tabsetRef) {
|
|
1760
|
-
this
|
|
1761
|
-
this
|
|
1844
|
+
__classPrivateFieldSet(this, _SkyTabsetAdapterService_tabsetRef, tabsetRef, "f");
|
|
1845
|
+
__classPrivateFieldSet(this, _SkyTabsetAdapterService_tabsOffsetLeft, __classPrivateFieldGet(this, _SkyTabsetAdapterService_instances, "m", _SkyTabsetAdapterService_getTabsOffsetLeft).call(this, tabsetRef.nativeElement), "f");
|
|
1762
1846
|
}
|
|
1763
1847
|
/**
|
|
1764
1848
|
* Detects if the tab buttons are wider than the tabset container.
|
|
1765
1849
|
*/
|
|
1766
1850
|
detectOverflow() {
|
|
1767
|
-
|
|
1851
|
+
var _a;
|
|
1852
|
+
const nativeElement = (_a = __classPrivateFieldGet(this, _SkyTabsetAdapterService_tabsetRef, "f")) === null || _a === void 0 ? void 0 : _a.nativeElement;
|
|
1768
1853
|
const tabsetRect = nativeElement
|
|
1769
1854
|
.querySelector('.sky-tabset')
|
|
1770
1855
|
.getBoundingClientRect();
|
|
@@ -1774,39 +1859,37 @@ class SkyTabsetAdapterService {
|
|
|
1774
1859
|
const tabExtraButtonsRect = nativeElement
|
|
1775
1860
|
.querySelector('.sky-tabset-btns')
|
|
1776
1861
|
.getBoundingClientRect();
|
|
1777
|
-
const tabButtonsWidth = tabButtonsRect.width + tabExtraButtonsRect.width + this
|
|
1862
|
+
const tabButtonsWidth = tabButtonsRect.width + tabExtraButtonsRect.width + __classPrivateFieldGet(this, _SkyTabsetAdapterService_tabsOffsetLeft, "f");
|
|
1778
1863
|
const newOverflow = tabButtonsWidth > tabsetRect.width;
|
|
1779
|
-
if (this
|
|
1780
|
-
this
|
|
1781
|
-
this.
|
|
1864
|
+
if (__classPrivateFieldGet(this, _SkyTabsetAdapterService_currentOverflow, "f") !== newOverflow) {
|
|
1865
|
+
__classPrivateFieldSet(this, _SkyTabsetAdapterService_currentOverflow, newOverflow, "f");
|
|
1866
|
+
__classPrivateFieldGet(this, _SkyTabsetAdapterService_overflowChange, "f").next(__classPrivateFieldGet(this, _SkyTabsetAdapterService_currentOverflow, "f"));
|
|
1782
1867
|
}
|
|
1783
1868
|
}
|
|
1784
|
-
/**
|
|
1785
|
-
* Returns the number of pixels to the left of the first tab.
|
|
1786
|
-
*/
|
|
1787
|
-
getTabsOffsetLeft(tabsetEl) {
|
|
1788
|
-
const tabsetRect = tabsetEl.getBoundingClientRect();
|
|
1789
|
-
// The dropdown element is the first "tab" and always exists in the DOM, even when hidden.
|
|
1790
|
-
const firstTabRect = tabsetEl
|
|
1791
|
-
.querySelector('.sky-tabset-dropdown')
|
|
1792
|
-
.getBoundingClientRect();
|
|
1793
|
-
return firstTabRect.left - tabsetRect.left;
|
|
1794
|
-
}
|
|
1795
1869
|
}
|
|
1870
|
+
_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) {
|
|
1871
|
+
var _a;
|
|
1872
|
+
const tabsetRect = tabsetEl.getBoundingClientRect();
|
|
1873
|
+
// The dropdown element is the first "tab" and always exists in the DOM, even when hidden.
|
|
1874
|
+
const firstTabRect = (_a = tabsetEl
|
|
1875
|
+
.querySelector('.sky-tabset-dropdown')) === null || _a === void 0 ? void 0 : _a.getBoundingClientRect();
|
|
1876
|
+
// Safety check
|
|
1877
|
+
/* istanbul ignore next */
|
|
1878
|
+
if (!firstTabRect) {
|
|
1879
|
+
return 0;
|
|
1880
|
+
}
|
|
1881
|
+
return firstTabRect.left - tabsetRect.left;
|
|
1882
|
+
};
|
|
1796
1883
|
SkyTabsetAdapterService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.0", ngImport: i0, type: SkyTabsetAdapterService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
1797
1884
|
SkyTabsetAdapterService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "14.2.0", ngImport: i0, type: SkyTabsetAdapterService });
|
|
1798
1885
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.0", ngImport: i0, type: SkyTabsetAdapterService, decorators: [{
|
|
1799
1886
|
type: Injectable
|
|
1800
|
-
}] });
|
|
1887
|
+
}], ctorParameters: function () { return []; } });
|
|
1801
1888
|
|
|
1802
|
-
|
|
1889
|
+
var _SkyTabsetComponent_instances, _SkyTabsetComponent_ngUnsubscribe, _SkyTabsetComponent_tabComponentsChangeUnsubscribe, _SkyTabsetComponent_tabComponentsStateChangeUnsubscribe, _SkyTabsetComponent__active, _SkyTabsetComponent__permalinkId, _SkyTabsetComponent__tabs, _SkyTabsetComponent__tabDisplayMode, _SkyTabsetComponent__tabStyle, _SkyTabsetComponent_changeDetector, _SkyTabsetComponent_elementRef, _SkyTabsetComponent_adapterService, _SkyTabsetComponent_permalinkService, _SkyTabsetComponent_tabsetService, _SkyTabsetComponent_getInitialTabIndex, _SkyTabsetComponent_listenActiveIndexChange, _SkyTabsetComponent_listenTabComponentsStateChange, _SkyTabsetComponent_initTabComponents, _SkyTabsetComponent_resetTabComponents, _SkyTabsetComponent_emitTabIndexChange, _SkyTabsetComponent_unsubscribeTabComponentsStateChange, _SkyTabsetComponent_listenTabButtonsOverflowChange, _SkyTabsetComponent_listenLocationPopStateChange, _SkyTabsetComponent_setActiveTabIndexByPermalinkId, _SkyTabsetComponent_getActiveTabIndexByPermalinkId, _SkyTabsetComponent_getActiveTabComponent, _SkyTabsetComponent_createTabButtons, _SkyTabsetComponent_updateTabButtons, _SkyTabsetComponent_updateTabsetComponent;
|
|
1803
1890
|
class SkyTabsetComponent {
|
|
1804
1891
|
constructor(changeDetector, elementRef, adapterService, permalinkService, tabsetService) {
|
|
1805
|
-
this
|
|
1806
|
-
this.elementRef = elementRef;
|
|
1807
|
-
this.adapterService = adapterService;
|
|
1808
|
-
this.permalinkService = permalinkService;
|
|
1809
|
-
this.tabsetService = tabsetService;
|
|
1892
|
+
_SkyTabsetComponent_instances.add(this);
|
|
1810
1893
|
/**
|
|
1811
1894
|
* Fires when the active tab changes. This event emits the index of the active tab.
|
|
1812
1895
|
*/
|
|
@@ -1828,41 +1911,57 @@ class SkyTabsetComponent {
|
|
|
1828
1911
|
* This event only applies when `tabStyle` is `"tabs"`.
|
|
1829
1912
|
*/
|
|
1830
1913
|
this.tabIndexesChange = new EventEmitter();
|
|
1914
|
+
this.dropdownTriggerButtonText = '';
|
|
1831
1915
|
this.tabButtons = [];
|
|
1832
|
-
this
|
|
1833
|
-
this
|
|
1834
|
-
this
|
|
1916
|
+
_SkyTabsetComponent_ngUnsubscribe.set(this, new Subject());
|
|
1917
|
+
_SkyTabsetComponent_tabComponentsChangeUnsubscribe.set(this, new Subject());
|
|
1918
|
+
_SkyTabsetComponent_tabComponentsStateChangeUnsubscribe.set(this, new Subject());
|
|
1919
|
+
_SkyTabsetComponent__active.set(this, void 0);
|
|
1920
|
+
_SkyTabsetComponent__permalinkId.set(this, '');
|
|
1921
|
+
_SkyTabsetComponent__tabs.set(this, void 0);
|
|
1922
|
+
_SkyTabsetComponent__tabDisplayMode.set(this, 'tabs');
|
|
1923
|
+
_SkyTabsetComponent__tabStyle.set(this, 'tabs');
|
|
1924
|
+
_SkyTabsetComponent_changeDetector.set(this, void 0);
|
|
1925
|
+
_SkyTabsetComponent_elementRef.set(this, void 0);
|
|
1926
|
+
_SkyTabsetComponent_adapterService.set(this, void 0);
|
|
1927
|
+
_SkyTabsetComponent_permalinkService.set(this, void 0);
|
|
1928
|
+
_SkyTabsetComponent_tabsetService.set(this, void 0);
|
|
1929
|
+
__classPrivateFieldSet(this, _SkyTabsetComponent_changeDetector, changeDetector, "f");
|
|
1930
|
+
__classPrivateFieldSet(this, _SkyTabsetComponent_elementRef, elementRef, "f");
|
|
1931
|
+
__classPrivateFieldSet(this, _SkyTabsetComponent_adapterService, adapterService, "f");
|
|
1932
|
+
__classPrivateFieldSet(this, _SkyTabsetComponent_permalinkService, permalinkService, "f");
|
|
1933
|
+
__classPrivateFieldSet(this, _SkyTabsetComponent_tabsetService, tabsetService, "f");
|
|
1835
1934
|
}
|
|
1836
1935
|
/**
|
|
1837
1936
|
* Activates a tab by its `tabIndex` property.
|
|
1838
1937
|
*/
|
|
1839
1938
|
set active(value) {
|
|
1840
1939
|
if (value === undefined ||
|
|
1841
|
-
this.
|
|
1940
|
+
__classPrivateFieldGet(this, _SkyTabsetComponent_tabsetService, "f").tabIndexesEqual(value, __classPrivateFieldGet(this, _SkyTabsetComponent__active, "f"))) {
|
|
1842
1941
|
return;
|
|
1843
1942
|
}
|
|
1844
|
-
this
|
|
1943
|
+
__classPrivateFieldSet(this, _SkyTabsetComponent__active, value, "f");
|
|
1845
1944
|
if (this.tabs) {
|
|
1846
|
-
this.
|
|
1945
|
+
__classPrivateFieldGet(this, _SkyTabsetComponent_tabsetService, "f").setActiveTabIndex(value);
|
|
1847
1946
|
}
|
|
1848
1947
|
else {
|
|
1849
1948
|
// On init, wait for children tabs to render before broadcasting the active tab index.
|
|
1850
1949
|
setTimeout(() => {
|
|
1851
|
-
if (this.
|
|
1950
|
+
if (__classPrivateFieldGet(this, _SkyTabsetComponent_tabsetService, "f").isValidTabIndex(value)) {
|
|
1852
1951
|
// On init, yield to the permalink ID, if it exists.
|
|
1853
|
-
if (this.
|
|
1854
|
-
this.
|
|
1952
|
+
if (__classPrivateFieldGet(this, _SkyTabsetComponent_instances, "m", _SkyTabsetComponent_getActiveTabIndexByPermalinkId).call(this) === undefined) {
|
|
1953
|
+
__classPrivateFieldGet(this, _SkyTabsetComponent_tabsetService, "f").setActiveTabIndex(value);
|
|
1855
1954
|
}
|
|
1856
1955
|
}
|
|
1857
1956
|
else {
|
|
1858
1957
|
// Activate the first tab if the new tab index is invalid.
|
|
1859
|
-
this
|
|
1958
|
+
__classPrivateFieldSet(this, _SkyTabsetComponent__active, __classPrivateFieldGet(this, _SkyTabsetComponent_tabsetService, "f").activateFirstTab(), "f");
|
|
1860
1959
|
}
|
|
1861
1960
|
});
|
|
1862
1961
|
}
|
|
1863
1962
|
}
|
|
1864
1963
|
get active() {
|
|
1865
|
-
return this
|
|
1964
|
+
return __classPrivateFieldGet(this, _SkyTabsetComponent__active, "f");
|
|
1866
1965
|
}
|
|
1867
1966
|
/**
|
|
1868
1967
|
* Distinguishes a tabset's unique state in the URL by generating a query parameter
|
|
@@ -1873,72 +1972,85 @@ class SkyTabsetComponent {
|
|
|
1873
1972
|
*/
|
|
1874
1973
|
set permalinkId(value) {
|
|
1875
1974
|
if (!value) {
|
|
1876
|
-
|
|
1975
|
+
__classPrivateFieldSet(this, _SkyTabsetComponent__permalinkId, '', "f");
|
|
1976
|
+
}
|
|
1977
|
+
else {
|
|
1978
|
+
const sanitized = __classPrivateFieldGet(this, _SkyTabsetComponent_permalinkService, "f").urlify(value);
|
|
1979
|
+
__classPrivateFieldSet(this, _SkyTabsetComponent__permalinkId, `${sanitized}-active-tab`, "f");
|
|
1877
1980
|
}
|
|
1878
|
-
const sanitized = this.permalinkService.urlify(value);
|
|
1879
|
-
this._permalinkId = `${sanitized}-active-tab`;
|
|
1880
1981
|
}
|
|
1881
1982
|
get permalinkId() {
|
|
1882
|
-
return this
|
|
1983
|
+
return __classPrivateFieldGet(this, _SkyTabsetComponent__permalinkId, "f");
|
|
1883
1984
|
}
|
|
1884
1985
|
/**
|
|
1885
1986
|
* Specifies the behavior for a series of tabs.
|
|
1886
1987
|
* @default "tabs"
|
|
1887
1988
|
*/
|
|
1888
1989
|
set tabStyle(value) {
|
|
1889
|
-
this
|
|
1890
|
-
this.elementRole = value === 'tabs' ? DEFAULT_ELEMENT_ROLE : undefined;
|
|
1990
|
+
__classPrivateFieldSet(this, _SkyTabsetComponent__tabStyle, value || 'tabs', "f");
|
|
1891
1991
|
}
|
|
1892
1992
|
get tabStyle() {
|
|
1893
|
-
return this
|
|
1993
|
+
return __classPrivateFieldGet(this, _SkyTabsetComponent__tabStyle, "f");
|
|
1894
1994
|
}
|
|
1895
1995
|
set tabDisplayMode(value) {
|
|
1896
|
-
this
|
|
1897
|
-
this.
|
|
1996
|
+
__classPrivateFieldSet(this, _SkyTabsetComponent__tabDisplayMode, value, "f");
|
|
1997
|
+
__classPrivateFieldGet(this, _SkyTabsetComponent_changeDetector, "f").markForCheck();
|
|
1898
1998
|
}
|
|
1899
1999
|
get tabDisplayMode() {
|
|
1900
|
-
return this
|
|
2000
|
+
return __classPrivateFieldGet(this, _SkyTabsetComponent__tabDisplayMode, "f");
|
|
2001
|
+
}
|
|
2002
|
+
set tabs(value) {
|
|
2003
|
+
__classPrivateFieldSet(this, _SkyTabsetComponent__tabs, value, "f");
|
|
2004
|
+
__classPrivateFieldGet(this, _SkyTabsetComponent_tabComponentsChangeUnsubscribe, "f").next();
|
|
2005
|
+
value === null || value === void 0 ? void 0 : value.changes.pipe(takeUntil(__classPrivateFieldGet(this, _SkyTabsetComponent_tabComponentsChangeUnsubscribe, "f"))).subscribe(() => {
|
|
2006
|
+
__classPrivateFieldGet(this, _SkyTabsetComponent_instances, "m", _SkyTabsetComponent_resetTabComponents).call(this);
|
|
2007
|
+
});
|
|
2008
|
+
}
|
|
2009
|
+
get tabs() {
|
|
2010
|
+
return __classPrivateFieldGet(this, _SkyTabsetComponent__tabs, "f");
|
|
1901
2011
|
}
|
|
1902
2012
|
ngAfterViewInit() {
|
|
1903
|
-
this.
|
|
1904
|
-
this.
|
|
1905
|
-
|
|
1906
|
-
this.
|
|
1907
|
-
this.
|
|
1908
|
-
this.listenLocationPopStateChange();
|
|
2013
|
+
__classPrivateFieldGet(this, _SkyTabsetComponent_instances, "m", _SkyTabsetComponent_initTabComponents).call(this);
|
|
2014
|
+
const initialTabIndex = __classPrivateFieldGet(this, _SkyTabsetComponent_instances, "m", _SkyTabsetComponent_getInitialTabIndex).call(this);
|
|
2015
|
+
__classPrivateFieldGet(this, _SkyTabsetComponent_tabsetService, "f").setActiveTabIndex(initialTabIndex);
|
|
2016
|
+
__classPrivateFieldGet(this, _SkyTabsetComponent_instances, "m", _SkyTabsetComponent_listenTabButtonsOverflowChange).call(this);
|
|
2017
|
+
__classPrivateFieldGet(this, _SkyTabsetComponent_instances, "m", _SkyTabsetComponent_listenLocationPopStateChange).call(this);
|
|
1909
2018
|
// If the currently active tab is getting unregistered, activate the next one.
|
|
1910
|
-
this.
|
|
1911
|
-
.pipe(takeUntil(this
|
|
2019
|
+
__classPrivateFieldGet(this, _SkyTabsetComponent_tabsetService, "f").activeTabUnregistered
|
|
2020
|
+
.pipe(takeUntil(__classPrivateFieldGet(this, _SkyTabsetComponent_ngUnsubscribe, "f")))
|
|
1912
2021
|
.subscribe((tab) => {
|
|
1913
2022
|
// Wait for the new tabs to render before activating.
|
|
1914
2023
|
setTimeout(() => {
|
|
1915
|
-
this.
|
|
2024
|
+
__classPrivateFieldGet(this, _SkyTabsetComponent_tabsetService, "f").activateNearestTab(tab.arrayIndex);
|
|
1916
2025
|
});
|
|
1917
2026
|
});
|
|
1918
2027
|
// Let the tabset render the initial active index before listening for changes.
|
|
1919
2028
|
setTimeout(() => {
|
|
1920
|
-
this.
|
|
1921
|
-
this.
|
|
1922
|
-
this.
|
|
2029
|
+
__classPrivateFieldGet(this, _SkyTabsetComponent_instances, "m", _SkyTabsetComponent_listenTabComponentsStateChange).call(this);
|
|
2030
|
+
__classPrivateFieldGet(this, _SkyTabsetComponent_instances, "m", _SkyTabsetComponent_listenActiveIndexChange).call(this);
|
|
2031
|
+
__classPrivateFieldGet(this, _SkyTabsetComponent_permalinkService, "f").init();
|
|
1923
2032
|
});
|
|
1924
2033
|
}
|
|
1925
2034
|
ngOnDestroy() {
|
|
1926
|
-
this.
|
|
1927
|
-
this.
|
|
1928
|
-
this.
|
|
2035
|
+
__classPrivateFieldGet(this, _SkyTabsetComponent_ngUnsubscribe, "f").next();
|
|
2036
|
+
__classPrivateFieldGet(this, _SkyTabsetComponent_ngUnsubscribe, "f").complete();
|
|
2037
|
+
__classPrivateFieldGet(this, _SkyTabsetComponent_tabComponentsChangeUnsubscribe, "f").next();
|
|
2038
|
+
__classPrivateFieldGet(this, _SkyTabsetComponent_tabComponentsChangeUnsubscribe, "f").complete();
|
|
2039
|
+
__classPrivateFieldGet(this, _SkyTabsetComponent_instances, "m", _SkyTabsetComponent_unsubscribeTabComponentsStateChange).call(this);
|
|
1929
2040
|
if (this.permalinkId) {
|
|
1930
|
-
this.
|
|
2041
|
+
__classPrivateFieldGet(this, _SkyTabsetComponent_permalinkService, "f").clearParam(this.permalinkId);
|
|
1931
2042
|
}
|
|
1932
2043
|
}
|
|
1933
2044
|
onWindowResize() {
|
|
1934
|
-
this.
|
|
2045
|
+
__classPrivateFieldGet(this, _SkyTabsetComponent_adapterService, "f").detectOverflow();
|
|
1935
2046
|
}
|
|
1936
2047
|
onTabCloseClick(tabButton) {
|
|
1937
|
-
|
|
1938
|
-
tabComponent.
|
|
2048
|
+
var _a;
|
|
2049
|
+
const tabComponent = (_a = this.tabs) === null || _a === void 0 ? void 0 : _a.find((tab) => __classPrivateFieldGet(this, _SkyTabsetComponent_tabsetService, "f").tabIndexesEqual(tab.tabIndex, tabButton.tabIndex));
|
|
2050
|
+
tabComponent === null || tabComponent === void 0 ? void 0 : tabComponent.close.emit();
|
|
1939
2051
|
}
|
|
1940
2052
|
onTabButtonClick(tabButton) {
|
|
1941
|
-
this.
|
|
2053
|
+
__classPrivateFieldGet(this, _SkyTabsetComponent_tabsetService, "f").setActiveTabIndex(tabButton.tabIndex);
|
|
1942
2054
|
}
|
|
1943
2055
|
onNewTabClick() {
|
|
1944
2056
|
this.newTab.emit();
|
|
@@ -1947,230 +2059,205 @@ class SkyTabsetComponent {
|
|
|
1947
2059
|
this.openTab.emit();
|
|
1948
2060
|
}
|
|
1949
2061
|
onRightKeyDown() {
|
|
1950
|
-
this.
|
|
2062
|
+
__classPrivateFieldGet(this, _SkyTabsetComponent_tabsetService, "f").focusNextTabBtn(this.tabButtons);
|
|
1951
2063
|
}
|
|
1952
2064
|
onLeftKeyDown() {
|
|
1953
|
-
this.
|
|
2065
|
+
__classPrivateFieldGet(this, _SkyTabsetComponent_tabsetService, "f").focusPrevTabBtn(this.tabButtons);
|
|
1954
2066
|
}
|
|
1955
2067
|
onHomeKeyDown() {
|
|
1956
|
-
this.
|
|
2068
|
+
__classPrivateFieldGet(this, _SkyTabsetComponent_tabsetService, "f").focusFirstOrNearestTabBtn(this.tabButtons);
|
|
1957
2069
|
}
|
|
1958
2070
|
onEndKeyDown() {
|
|
1959
|
-
this.
|
|
2071
|
+
__classPrivateFieldGet(this, _SkyTabsetComponent_tabsetService, "f").focusLastOrNearestTabBtn(this.tabButtons);
|
|
1960
2072
|
}
|
|
1961
|
-
|
|
1962
|
-
|
|
1963
|
-
|
|
1964
|
-
|
|
1965
|
-
|
|
1966
|
-
|
|
1967
|
-
getInitialTabIndex() {
|
|
1968
|
-
var _a;
|
|
1969
|
-
let activeIndex = this.getActiveTabIndexByPermalinkId();
|
|
2073
|
+
}
|
|
2074
|
+
_SkyTabsetComponent_ngUnsubscribe = new WeakMap(), _SkyTabsetComponent_tabComponentsChangeUnsubscribe = new WeakMap(), _SkyTabsetComponent_tabComponentsStateChangeUnsubscribe = new WeakMap(), _SkyTabsetComponent__active = new WeakMap(), _SkyTabsetComponent__permalinkId = new WeakMap(), _SkyTabsetComponent__tabs = new WeakMap(), _SkyTabsetComponent__tabDisplayMode = new WeakMap(), _SkyTabsetComponent__tabStyle = new WeakMap(), _SkyTabsetComponent_changeDetector = new WeakMap(), _SkyTabsetComponent_elementRef = new WeakMap(), _SkyTabsetComponent_adapterService = new WeakMap(), _SkyTabsetComponent_permalinkService = new WeakMap(), _SkyTabsetComponent_tabsetService = new WeakMap(), _SkyTabsetComponent_instances = new WeakSet(), _SkyTabsetComponent_getInitialTabIndex = function _SkyTabsetComponent_getInitialTabIndex() {
|
|
2075
|
+
var _a;
|
|
2076
|
+
let activeIndex = __classPrivateFieldGet(this, _SkyTabsetComponent_instances, "m", _SkyTabsetComponent_getActiveTabIndexByPermalinkId).call(this);
|
|
2077
|
+
if (activeIndex === undefined) {
|
|
2078
|
+
activeIndex = (_a = __classPrivateFieldGet(this, _SkyTabsetComponent_instances, "m", _SkyTabsetComponent_getActiveTabComponent).call(this)) === null || _a === void 0 ? void 0 : _a.tabIndex;
|
|
1970
2079
|
if (activeIndex === undefined) {
|
|
1971
|
-
activeIndex =
|
|
1972
|
-
|
|
1973
|
-
|
|
1974
|
-
|
|
1975
|
-
|
|
1976
|
-
|
|
1977
|
-
|
|
1978
|
-
|
|
1979
|
-
this.
|
|
1980
|
-
|
|
1981
|
-
|
|
1982
|
-
|
|
1983
|
-
});
|
|
1984
|
-
}
|
|
1985
|
-
listenTabComponentsStructuralChange() {
|
|
1986
|
-
this.tabs.changes.pipe(takeUntil(this.ngUnsubscribe)).subscribe(() => {
|
|
1987
|
-
this.resetTabComponents();
|
|
1988
|
-
});
|
|
1989
|
-
}
|
|
1990
|
-
listenTabComponentsStateChange() {
|
|
2080
|
+
activeIndex = this.active;
|
|
2081
|
+
}
|
|
2082
|
+
}
|
|
2083
|
+
return activeIndex;
|
|
2084
|
+
}, _SkyTabsetComponent_listenActiveIndexChange = function _SkyTabsetComponent_listenActiveIndexChange() {
|
|
2085
|
+
__classPrivateFieldGet(this, _SkyTabsetComponent_tabsetService, "f").activeTabIndex
|
|
2086
|
+
.pipe(distinctUntilChanged(), takeUntil(__classPrivateFieldGet(this, _SkyTabsetComponent_ngUnsubscribe, "f")))
|
|
2087
|
+
.subscribe((activeIndex) => {
|
|
2088
|
+
__classPrivateFieldGet(this, _SkyTabsetComponent_instances, "m", _SkyTabsetComponent_updateTabsetComponent).call(this, activeIndex);
|
|
2089
|
+
});
|
|
2090
|
+
}, _SkyTabsetComponent_listenTabComponentsStateChange = function _SkyTabsetComponent_listenTabComponentsStateChange() {
|
|
2091
|
+
if (this.tabs) {
|
|
1991
2092
|
combineLatest(this.tabs.map((tab) => tab.activeChange))
|
|
1992
|
-
.pipe(takeUntil(race(this
|
|
2093
|
+
.pipe(takeUntil(race(__classPrivateFieldGet(this, _SkyTabsetComponent_tabComponentsStateChangeUnsubscribe, "f"), __classPrivateFieldGet(this, _SkyTabsetComponent_ngUnsubscribe, "f"))))
|
|
1993
2094
|
.subscribe(() => {
|
|
1994
2095
|
// Wait for the tab components to render changes before finding the active one.
|
|
1995
2096
|
setTimeout(() => {
|
|
1996
2097
|
var _a;
|
|
1997
|
-
const tabIndex = (_a = this.
|
|
1998
|
-
this.
|
|
2098
|
+
const tabIndex = (_a = __classPrivateFieldGet(this, _SkyTabsetComponent_instances, "m", _SkyTabsetComponent_getActiveTabComponent).call(this)) === null || _a === void 0 ? void 0 : _a.tabIndex;
|
|
2099
|
+
__classPrivateFieldGet(this, _SkyTabsetComponent_tabsetService, "f").setActiveTabIndex(tabIndex);
|
|
1999
2100
|
});
|
|
2000
2101
|
});
|
|
2001
2102
|
combineLatest(this.tabs.map((tab) => tab.tabIndexChange))
|
|
2002
|
-
.pipe(takeUntil(race(this
|
|
2103
|
+
.pipe(takeUntil(race(__classPrivateFieldGet(this, _SkyTabsetComponent_tabComponentsStateChangeUnsubscribe, "f"), __classPrivateFieldGet(this, _SkyTabsetComponent_ngUnsubscribe, "f"))))
|
|
2003
2104
|
.subscribe(() => {
|
|
2004
2105
|
// Don't emit the first change.
|
|
2005
2106
|
if (this.lastActiveTabIndex !== undefined) {
|
|
2006
2107
|
// Wait for the tab components to render changes before updating the view.
|
|
2007
2108
|
setTimeout(() => {
|
|
2008
|
-
this.
|
|
2009
|
-
this.
|
|
2109
|
+
__classPrivateFieldGet(this, _SkyTabsetComponent_instances, "m", _SkyTabsetComponent_updateTabsetComponent).call(this, __classPrivateFieldGet(this, _SkyTabsetComponent_tabsetService, "f").currentActiveTabIndex, true);
|
|
2110
|
+
__classPrivateFieldGet(this, _SkyTabsetComponent_instances, "m", _SkyTabsetComponent_emitTabIndexChange).call(this);
|
|
2010
2111
|
});
|
|
2011
2112
|
}
|
|
2012
2113
|
});
|
|
2013
2114
|
combineLatest(this.tabs.map((tab) => tab.stateChange))
|
|
2014
|
-
.pipe(takeUntil(race(this
|
|
2115
|
+
.pipe(takeUntil(race(__classPrivateFieldGet(this, _SkyTabsetComponent_tabComponentsStateChangeUnsubscribe, "f"), __classPrivateFieldGet(this, _SkyTabsetComponent_ngUnsubscribe, "f"))))
|
|
2015
2116
|
.subscribe(() => {
|
|
2016
2117
|
// Wait for the tab components to render changes before finding the active one.
|
|
2017
2118
|
setTimeout(() => {
|
|
2018
|
-
this.
|
|
2119
|
+
__classPrivateFieldGet(this, _SkyTabsetComponent_instances, "m", _SkyTabsetComponent_updateTabsetComponent).call(this, __classPrivateFieldGet(this, _SkyTabsetComponent_tabsetService, "f").currentActiveTabIndex, true);
|
|
2019
2120
|
});
|
|
2020
2121
|
});
|
|
2021
2122
|
}
|
|
2022
|
-
|
|
2023
|
-
|
|
2024
|
-
|
|
2025
|
-
|
|
2026
|
-
|
|
2027
|
-
|
|
2028
|
-
|
|
2029
|
-
|
|
2030
|
-
|
|
2031
|
-
|
|
2032
|
-
|
|
2033
|
-
|
|
2034
|
-
|
|
2035
|
-
|
|
2036
|
-
|
|
2037
|
-
|
|
2038
|
-
|
|
2039
|
-
|
|
2040
|
-
|
|
2041
|
-
|
|
2042
|
-
|
|
2043
|
-
|
|
2044
|
-
|
|
2045
|
-
tabIndex: tab.tabIndex,
|
|
2046
|
-
})),
|
|
2047
|
-
});
|
|
2048
|
-
}
|
|
2049
|
-
unsubscribeTabComponentsStateChange() {
|
|
2050
|
-
this.tabComponentsStateChangeUnsubscribe.next();
|
|
2051
|
-
this.tabComponentsStateChangeUnsubscribe.complete();
|
|
2052
|
-
this.tabComponentsStateChangeUnsubscribe = new Subject();
|
|
2053
|
-
}
|
|
2054
|
-
listenTabButtonsOverflowChange() {
|
|
2055
|
-
this.adapterService.registerTabset(this.elementRef);
|
|
2056
|
-
this.adapterService.overflowChange
|
|
2057
|
-
.pipe(takeUntil(this.ngUnsubscribe))
|
|
2058
|
-
.subscribe((isOverflowing) => {
|
|
2059
|
-
this.tabDisplayMode = isOverflowing ? 'dropdown' : 'tabs';
|
|
2060
|
-
this.changeDetector.markForCheck();
|
|
2061
|
-
});
|
|
2062
|
-
}
|
|
2063
|
-
/**
|
|
2064
|
-
* Listen for back/forward history button presses to detect query param changes in the URL.
|
|
2065
|
-
*/
|
|
2066
|
-
listenLocationPopStateChange() {
|
|
2067
|
-
this.permalinkService.popStateChange
|
|
2068
|
-
.pipe(takeUntil(this.ngUnsubscribe))
|
|
2069
|
-
.subscribe(() => {
|
|
2070
|
-
this.setActiveTabIndexByPermalinkId();
|
|
2071
|
-
});
|
|
2072
|
-
}
|
|
2073
|
-
setActiveTabIndexByPermalinkId() {
|
|
2074
|
-
const activeIndex = this.getActiveTabIndexByPermalinkId();
|
|
2075
|
-
this.tabsetService.setActiveTabIndex(activeIndex);
|
|
2076
|
-
}
|
|
2077
|
-
getActiveTabIndexByPermalinkId() {
|
|
2078
|
-
var _a;
|
|
2079
|
-
if (this.permalinkId) {
|
|
2080
|
-
const paramValue = this.permalinkService.getParam(this.permalinkId);
|
|
2081
|
-
if (paramValue) {
|
|
2082
|
-
return (_a = this.tabs.find((tab) => tab.permalinkValue === paramValue)) === null || _a === void 0 ? void 0 : _a.tabIndex;
|
|
2083
|
-
}
|
|
2084
|
-
}
|
|
2085
|
-
}
|
|
2086
|
-
getActiveTabComponent() {
|
|
2087
|
-
return this.tabs
|
|
2088
|
-
.toArray()
|
|
2089
|
-
.reverse()
|
|
2090
|
-
.find((tab) => tab.active === true);
|
|
2091
|
-
}
|
|
2092
|
-
createTabButtons(activeIndex) {
|
|
2093
|
-
return this.tabs.map((tab, index) => ({
|
|
2094
|
-
active: this.tabsetService.tabIndexesEqual(tab.tabIndex, activeIndex),
|
|
2095
|
-
closeable: tab.closeable,
|
|
2096
|
-
ariaControls: tab.tabPanelId,
|
|
2097
|
-
disabled: tab.disabled,
|
|
2098
|
-
buttonHref: tab.disabled
|
|
2099
|
-
? null
|
|
2100
|
-
: this.permalinkService.getParamHref(this.permalinkId, tab.permalinkValue),
|
|
2101
|
-
buttonId: tab.tabButtonId,
|
|
2102
|
-
buttonTextCount: tab.tabHeaderCount,
|
|
2103
|
-
buttonText: tab.tabHeading,
|
|
2123
|
+
}, _SkyTabsetComponent_initTabComponents = function _SkyTabsetComponent_initTabComponents() {
|
|
2124
|
+
var _a;
|
|
2125
|
+
(_a = this.tabs) === null || _a === void 0 ? void 0 : _a.forEach((tab) => tab.init());
|
|
2126
|
+
}, _SkyTabsetComponent_resetTabComponents = function _SkyTabsetComponent_resetTabComponents() {
|
|
2127
|
+
var _a, _b;
|
|
2128
|
+
__classPrivateFieldGet(this, _SkyTabsetComponent_instances, "m", _SkyTabsetComponent_unsubscribeTabComponentsStateChange).call(this);
|
|
2129
|
+
__classPrivateFieldGet(this, _SkyTabsetComponent_tabsetService, "f").unregisterAll();
|
|
2130
|
+
// If there are no tab components, do a hard reset of the view.
|
|
2131
|
+
if (((_a = this.tabs) === null || _a === void 0 ? void 0 : _a.length) === 0) {
|
|
2132
|
+
__classPrivateFieldGet(this, _SkyTabsetComponent_instances, "m", _SkyTabsetComponent_updateTabsetComponent).call(this, 0, true);
|
|
2133
|
+
return;
|
|
2134
|
+
}
|
|
2135
|
+
__classPrivateFieldGet(this, _SkyTabsetComponent_instances, "m", _SkyTabsetComponent_initTabComponents).call(this);
|
|
2136
|
+
const activeIndex = (_b = __classPrivateFieldGet(this, _SkyTabsetComponent_instances, "m", _SkyTabsetComponent_getActiveTabComponent).call(this)) === null || _b === void 0 ? void 0 : _b.tabIndex;
|
|
2137
|
+
__classPrivateFieldGet(this, _SkyTabsetComponent_tabsetService, "f").setActiveTabIndex(activeIndex, {
|
|
2138
|
+
emitChange: false,
|
|
2139
|
+
});
|
|
2140
|
+
__classPrivateFieldGet(this, _SkyTabsetComponent_instances, "m", _SkyTabsetComponent_listenTabComponentsStateChange).call(this);
|
|
2141
|
+
}, _SkyTabsetComponent_emitTabIndexChange = function _SkyTabsetComponent_emitTabIndexChange() {
|
|
2142
|
+
var _a;
|
|
2143
|
+
this.tabIndexesChange.emit({
|
|
2144
|
+
tabs: (_a = this.tabs) === null || _a === void 0 ? void 0 : _a.map((tab) => ({
|
|
2145
|
+
tabHeading: tab.tabHeading,
|
|
2104
2146
|
tabIndex: tab.tabIndex,
|
|
2105
|
-
|
|
2106
|
-
|
|
2107
|
-
|
|
2108
|
-
|
|
2109
|
-
|
|
2110
|
-
|
|
2111
|
-
|
|
2112
|
-
|
|
2147
|
+
})),
|
|
2148
|
+
});
|
|
2149
|
+
}, _SkyTabsetComponent_unsubscribeTabComponentsStateChange = function _SkyTabsetComponent_unsubscribeTabComponentsStateChange() {
|
|
2150
|
+
__classPrivateFieldGet(this, _SkyTabsetComponent_tabComponentsStateChangeUnsubscribe, "f").next();
|
|
2151
|
+
__classPrivateFieldGet(this, _SkyTabsetComponent_tabComponentsStateChangeUnsubscribe, "f").complete();
|
|
2152
|
+
__classPrivateFieldSet(this, _SkyTabsetComponent_tabComponentsStateChangeUnsubscribe, new Subject(), "f");
|
|
2153
|
+
}, _SkyTabsetComponent_listenTabButtonsOverflowChange = function _SkyTabsetComponent_listenTabButtonsOverflowChange() {
|
|
2154
|
+
__classPrivateFieldGet(this, _SkyTabsetComponent_adapterService, "f").registerTabset(__classPrivateFieldGet(this, _SkyTabsetComponent_elementRef, "f"));
|
|
2155
|
+
__classPrivateFieldGet(this, _SkyTabsetComponent_adapterService, "f").overflowChange
|
|
2156
|
+
.pipe(takeUntil(__classPrivateFieldGet(this, _SkyTabsetComponent_ngUnsubscribe, "f")))
|
|
2157
|
+
.subscribe((isOverflowing) => {
|
|
2158
|
+
this.tabDisplayMode = isOverflowing ? 'dropdown' : 'tabs';
|
|
2159
|
+
__classPrivateFieldGet(this, _SkyTabsetComponent_changeDetector, "f").markForCheck();
|
|
2160
|
+
});
|
|
2161
|
+
}, _SkyTabsetComponent_listenLocationPopStateChange = function _SkyTabsetComponent_listenLocationPopStateChange() {
|
|
2162
|
+
__classPrivateFieldGet(this, _SkyTabsetComponent_permalinkService, "f").popStateChange
|
|
2163
|
+
.pipe(takeUntil(__classPrivateFieldGet(this, _SkyTabsetComponent_ngUnsubscribe, "f")))
|
|
2164
|
+
.subscribe(() => {
|
|
2165
|
+
__classPrivateFieldGet(this, _SkyTabsetComponent_instances, "m", _SkyTabsetComponent_setActiveTabIndexByPermalinkId).call(this);
|
|
2166
|
+
});
|
|
2167
|
+
}, _SkyTabsetComponent_setActiveTabIndexByPermalinkId = function _SkyTabsetComponent_setActiveTabIndexByPermalinkId() {
|
|
2168
|
+
const activeIndex = __classPrivateFieldGet(this, _SkyTabsetComponent_instances, "m", _SkyTabsetComponent_getActiveTabIndexByPermalinkId).call(this);
|
|
2169
|
+
__classPrivateFieldGet(this, _SkyTabsetComponent_tabsetService, "f").setActiveTabIndex(activeIndex);
|
|
2170
|
+
}, _SkyTabsetComponent_getActiveTabIndexByPermalinkId = function _SkyTabsetComponent_getActiveTabIndexByPermalinkId() {
|
|
2171
|
+
var _a, _b;
|
|
2172
|
+
if (this.permalinkId) {
|
|
2173
|
+
const paramValue = __classPrivateFieldGet(this, _SkyTabsetComponent_permalinkService, "f").getParam(this.permalinkId);
|
|
2174
|
+
if (paramValue) {
|
|
2175
|
+
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;
|
|
2176
|
+
}
|
|
2177
|
+
return undefined;
|
|
2178
|
+
}
|
|
2179
|
+
return undefined;
|
|
2180
|
+
}, _SkyTabsetComponent_getActiveTabComponent = function _SkyTabsetComponent_getActiveTabComponent() {
|
|
2181
|
+
var _a;
|
|
2182
|
+
return (_a = this.tabs) === null || _a === void 0 ? void 0 : _a.toArray().reverse().find((tab) => tab.active === true);
|
|
2183
|
+
}, _SkyTabsetComponent_createTabButtons = function _SkyTabsetComponent_createTabButtons(activeIndex) {
|
|
2184
|
+
// Safety check
|
|
2185
|
+
/* istanbul ignore next */
|
|
2186
|
+
if (!this.tabs) {
|
|
2187
|
+
return [];
|
|
2188
|
+
}
|
|
2189
|
+
return this.tabs.map((tab, index) => ({
|
|
2190
|
+
active: __classPrivateFieldGet(this, _SkyTabsetComponent_tabsetService, "f").tabIndexesEqual(tab.tabIndex, activeIndex),
|
|
2191
|
+
closeable: tab.isCloseable(),
|
|
2192
|
+
ariaControls: tab.tabPanelId,
|
|
2193
|
+
disabled: tab.disabled,
|
|
2194
|
+
buttonHref: tab.disabled
|
|
2195
|
+
? null
|
|
2196
|
+
: __classPrivateFieldGet(this, _SkyTabsetComponent_permalinkService, "f").getParamHref(this.permalinkId, tab.permalinkValueOrDefault),
|
|
2197
|
+
buttonId: tab.tabButtonId,
|
|
2198
|
+
buttonTextCount: tab.tabHeaderCount,
|
|
2199
|
+
buttonText: tab.tabHeading,
|
|
2200
|
+
tabIndex: tab.tabIndex,
|
|
2201
|
+
tabNumber: index + 1,
|
|
2202
|
+
totalTabsCount: this.tabs.length,
|
|
2203
|
+
}));
|
|
2204
|
+
}, _SkyTabsetComponent_updateTabButtons = function _SkyTabsetComponent_updateTabButtons(activeIndex) {
|
|
2205
|
+
this.tabButtons.forEach((button) => {
|
|
2206
|
+
button.active = __classPrivateFieldGet(this, _SkyTabsetComponent_tabsetService, "f").tabIndexesEqual(button.tabIndex, activeIndex);
|
|
2207
|
+
});
|
|
2208
|
+
}, _SkyTabsetComponent_updateTabsetComponent = function _SkyTabsetComponent_updateTabsetComponent(activeIndex, regenerateTabButtons = false) {
|
|
2209
|
+
var _a, _b, _c, _d;
|
|
2210
|
+
// Activate/deactivate tab components.
|
|
2211
|
+
(_a = this.tabs) === null || _a === void 0 ? void 0 : _a.forEach((tab) => {
|
|
2212
|
+
__classPrivateFieldGet(this, _SkyTabsetComponent_tabsetService, "f").tabIndexesEqual(tab.tabIndex, activeIndex)
|
|
2213
|
+
? tab.activate()
|
|
2214
|
+
: tab.deactivate();
|
|
2215
|
+
});
|
|
2216
|
+
// Update the tab button models.
|
|
2217
|
+
if (regenerateTabButtons || !this.tabButtons.length) {
|
|
2218
|
+
this.tabButtons = __classPrivateFieldGet(this, _SkyTabsetComponent_instances, "m", _SkyTabsetComponent_createTabButtons).call(this, activeIndex);
|
|
2113
2219
|
}
|
|
2114
|
-
|
|
2115
|
-
|
|
2116
|
-
|
|
2117
|
-
|
|
2118
|
-
|
|
2119
|
-
|
|
2120
|
-
|
|
2121
|
-
|
|
2122
|
-
|
|
2123
|
-
|
|
2124
|
-
|
|
2125
|
-
|
|
2126
|
-
this.tabs.forEach((tab) => {
|
|
2127
|
-
this.tabsetService.tabIndexesEqual(tab.tabIndex, activeIndex)
|
|
2128
|
-
? tab.activate()
|
|
2129
|
-
: tab.deactivate();
|
|
2130
|
-
});
|
|
2131
|
-
// Update the tab button models.
|
|
2132
|
-
if (regenerateTabButtons || !this.tabButtons.length) {
|
|
2133
|
-
this.tabButtons = this.createTabButtons(activeIndex);
|
|
2134
|
-
}
|
|
2135
|
-
else {
|
|
2136
|
-
this.updateTabButtons(activeIndex);
|
|
2137
|
-
}
|
|
2138
|
-
// Update the dropdown trigger button text.
|
|
2139
|
-
this.dropdownTriggerButtonText = (_a = this.tabButtons.find((b) => {
|
|
2140
|
-
return this.tabsetService.tabIndexesEqual(b.tabIndex, activeIndex);
|
|
2141
|
-
})) === null || _a === void 0 ? void 0 : _a.buttonText;
|
|
2142
|
-
// Set the query params based on active tab.
|
|
2143
|
-
if (this.permalinkId) {
|
|
2144
|
-
const activeTabComponent = this.tabs.find((tab) => {
|
|
2145
|
-
return this.tabsetService.tabIndexesEqual(tab.tabIndex, activeIndex);
|
|
2146
|
-
});
|
|
2147
|
-
this.permalinkService.setParam(this.permalinkId, activeTabComponent.permalinkValue);
|
|
2148
|
-
}
|
|
2149
|
-
// Wait for tab button view models to render before gauging dimensions.
|
|
2150
|
-
setTimeout(() => {
|
|
2151
|
-
this.adapterService.detectOverflow();
|
|
2220
|
+
else {
|
|
2221
|
+
__classPrivateFieldGet(this, _SkyTabsetComponent_instances, "m", _SkyTabsetComponent_updateTabButtons).call(this, activeIndex);
|
|
2222
|
+
}
|
|
2223
|
+
// Update the dropdown trigger button text.
|
|
2224
|
+
this.dropdownTriggerButtonText =
|
|
2225
|
+
(_c = (_b = this.tabButtons.find((b) => {
|
|
2226
|
+
return __classPrivateFieldGet(this, _SkyTabsetComponent_tabsetService, "f").tabIndexesEqual(b.tabIndex, activeIndex);
|
|
2227
|
+
})) === null || _b === void 0 ? void 0 : _b.buttonText) !== null && _c !== void 0 ? _c : '';
|
|
2228
|
+
// Set the query params based on active tab.
|
|
2229
|
+
if (this.permalinkId) {
|
|
2230
|
+
const activeTabComponent = (_d = this.tabs) === null || _d === void 0 ? void 0 : _d.find((tab) => {
|
|
2231
|
+
return __classPrivateFieldGet(this, _SkyTabsetComponent_tabsetService, "f").tabIndexesEqual(tab.tabIndex, activeIndex);
|
|
2152
2232
|
});
|
|
2153
|
-
|
|
2154
|
-
|
|
2155
|
-
if (this.lastActiveTabIndex !== activeIndex) {
|
|
2156
|
-
this.lastActiveTabIndex = activeIndex;
|
|
2157
|
-
this.activeChange.emit(activeIndex);
|
|
2233
|
+
if (activeTabComponent) {
|
|
2234
|
+
__classPrivateFieldGet(this, _SkyTabsetComponent_permalinkService, "f").setParam(this.permalinkId, activeTabComponent.permalinkValueOrDefault);
|
|
2158
2235
|
}
|
|
2159
2236
|
}
|
|
2160
|
-
|
|
2237
|
+
// Wait for tab button view models to render before gauging dimensions.
|
|
2238
|
+
setTimeout(() => {
|
|
2239
|
+
__classPrivateFieldGet(this, _SkyTabsetComponent_adapterService, "f").detectOverflow();
|
|
2240
|
+
});
|
|
2241
|
+
__classPrivateFieldGet(this, _SkyTabsetComponent_changeDetector, "f").markForCheck();
|
|
2242
|
+
// Emit the new active index value to consumers.
|
|
2243
|
+
if (this.lastActiveTabIndex !== activeIndex) {
|
|
2244
|
+
this.lastActiveTabIndex = activeIndex;
|
|
2245
|
+
this.activeChange.emit(activeIndex);
|
|
2246
|
+
}
|
|
2247
|
+
};
|
|
2161
2248
|
SkyTabsetComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.0", ngImport: i0, type: SkyTabsetComponent, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: SkyTabsetAdapterService }, { token: SkyTabsetPermalinkService }, { token: SkyTabsetService }], target: i0.ɵɵFactoryTarget.Component });
|
|
2162
2249
|
SkyTabsetComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.0", type: SkyTabsetComponent, selector: "sky-tabset", inputs: { active: "active", ariaLabel: "ariaLabel", ariaLabelledBy: "ariaLabelledBy", permalinkId: "permalinkId", tabStyle: "tabStyle" }, outputs: { activeChange: "activeChange", newTab: "newTab", openTab: "openTab", tabIndexesChange: "tabIndexesChange" }, providers: [
|
|
2163
2250
|
SkyTabsetAdapterService,
|
|
2164
2251
|
SkyTabsetPermalinkService,
|
|
2165
2252
|
SkyTabsetService,
|
|
2166
|
-
], queries: [{ propertyName: "tabs", predicate: SkyTabComponent }], ngImport: i0, template: "<div\n class=\"sky-tabset\"\n
|
|
2253
|
+
], queries: [{ propertyName: "tabs", predicate: SkyTabComponent }], ngImport: i0, template: "<div\n class=\"sky-tabset\"\n role=\"tablist\"\n [attr.aria-label]=\"ariaLabel\"\n [attr.aria-labelledby]=\"ariaLabelledBy\"\n [ngClass]=\"\n 'sky-tabset-mode-' + tabDisplayMode + ' sky-tabset-style-' + tabStyle\n \"\n (window:resize)=\"onWindowResize()\"\n (keydown.arrowright)=\"onRightKeyDown()\"\n (keydown.arrowleft)=\"onLeftKeyDown()\"\n (keydown.home)=\"onHomeKeyDown()\"\n (keydown.end)=\"onEndKeyDown()\"\n>\n <span class=\"sky-tabset-dropdown\">\n <sky-dropdown *ngIf=\"tabDisplayMode === 'dropdown'\" buttonType=\"tab\">\n <sky-dropdown-button>\n {{ dropdownTriggerButtonText }}\n </sky-dropdown-button>\n <sky-dropdown-menu>\n <sky-dropdown-item\n *ngFor=\"let tabButton of tabButtons\"\n class=\"sky-tab-dropdown-menu-item\"\n >\n <div\n class=\"sky-tab-dropdown-item\"\n [ngClass]=\"{\n 'sky-tab-dropdown-item-selected': tabButton.active\n }\"\n >\n <ng-container\n *ngTemplateOutlet=\"\n tabButtonTemplate;\n context: {\n $implicit: tabButton\n }\n \"\n ></ng-container>\n </div>\n </sky-dropdown-item>\n </sky-dropdown-menu>\n </sky-dropdown>\n </span>\n <span class=\"sky-tabset-tabs\">\n <ng-container *ngFor=\"let tabButton of tabButtons\">\n <ng-container\n *ngTemplateOutlet=\"\n tabButtonTemplate;\n context: {\n $implicit: tabButton\n }\n \"\n ></ng-container>\n </ng-container>\n </span>\n <span class=\"sky-tabset-btns\">\n <button\n *ngIf=\"newTab.observers.length > 0\"\n class=\"sky-btn sky-btn-icon sky-tabset-btn-new sky-margin-inline-compact\"\n type=\"button\"\n [attr.aria-label]=\"'skyux_tab_add' | skyLibResources\"\n [skyThemeClass]=\"{\n 'sky-margin-inline-sm': 'modern'\n }\"\n (click)=\"onNewTabClick()\"\n >\n <sky-icon icon=\"plus-circle\" size=\"lg\"> </sky-icon>\n </button>\n <button\n *ngIf=\"openTab.observers.length > 0\"\n class=\"sky-btn sky-btn-icon sky-tabset-btn-open sky-margin-inline-compact\"\n type=\"button\"\n [attr.aria-label]=\"'skyux_tab_open' | skyLibResources\"\n [skyThemeClass]=\"{\n 'sky-margin-inline-sm': 'modern'\n }\"\n (click)=\"onOpenTabClick()\"\n >\n <sky-icon icon=\"folder-open-o\" size=\"lg\"> </sky-icon>\n </button>\n </span>\n</div>\n<ng-content></ng-content>\n\n<ng-template let-tabButton #tabButtonTemplate>\n <sky-tab-button\n [active]=\"tabButton.active\"\n [ariaControls]=\"tabButton.ariaControls\"\n [buttonHref]=\"tabButton.buttonHref\"\n [buttonId]=\"tabButton.buttonId\"\n [buttonText]=\"tabButton.buttonText\"\n [buttonTextCount]=\"tabButton.buttonTextCount\"\n [closeable]=\"tabButton.closeable\"\n [disabled]=\"tabButton.disabled\"\n [tabIndex]=\"tabButton.tabIndex\"\n [tabStyle]=\"tabStyle\"\n [tabNumber]=\"tabButton.tabNumber\"\n [totalTabsCount]=\"tabButton.totalTabsCount\"\n (buttonClick)=\"onTabButtonClick(tabButton)\"\n (closeClick)=\"onTabCloseClick(tabButton)\"\n ></sky-tab-button>\n</ng-template>\n", styles: [".sky-tabset{align-items:center;border-bottom:2px solid #0974a1;display:flex;list-style-type:none;margin:0;overflow:hidden;padding:0 0 0 15px;white-space:nowrap}.sky-tabset.sky-tabset-style-wizard{border-bottom:none;margin-bottom:10px;padding-left:0}.sky-tabset-btns{order:1;padding-left:10px}.sky-tabset-dropdown{order:0;max-width:100%}.sky-tabset-mode-dropdown{line-height:0}.sky-tabset-mode-dropdown .sky-tabset-tabs{visibility:hidden;order:2}.sky-tab-dropdown-menu-item sky-tab-button{display:flex;min-width:300px}.sky-tab-dropdown-menu-item .sky-dropdown-item{margin:0}.sky-tab-dropdown-menu-item .sky-btn-tab-wrapper{width:100%;margin-right:0}.sky-tab-dropdown-menu-item .sky-btn-tab{margin:0;border-radius:0;width:100%;display:flex}.sky-tab-dropdown-menu-item .sky-btn-tab>.sky-tab-heading{flex:1 1 auto}.sky-tab-dropdown-menu-item .sky-btn-tab>.sky-btn-tab-close{flex:0 1 auto}.sky-tabset-tabs{order:0;white-space:nowrap}.sky-tabset-btn-new,.sky-tabset-btn-open{color:#0974a1}.sky-theme-modern .sky-modal-content .sky-tabset{margin:-10px -30px 30px;padding-left:30px;padding-right:30px}.sky-theme-modern .sky-tabset{border-bottom:1px solid #d2d2d2;overflow:visible}.sky-theme-modern .sky-tab-dropdown-menu-item .sky-btn-tab-wrapper{margin-right:0}\n"], dependencies: [{ kind: "directive", type: i4.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i4.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i4.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: i5$1.λ2, selector: "sky-dropdown-button" }, { kind: "component", type: i5$1.λ3, selector: "sky-dropdown", inputs: ["buttonStyle", "buttonType", "disabled", "dismissOnBlur", "label", "horizontalAlignment", "messageStream", "title", "trigger"] }, { kind: "component", type: i5$1.λ1, selector: "sky-dropdown-item", inputs: ["ariaRole"] }, { kind: "component", type: i5$1.λ4, selector: "sky-dropdown-menu", inputs: ["ariaLabelledBy", "ariaRole", "useNativeFocus"], outputs: ["menuChanges"] }, { kind: "component", type: i5.λ4, selector: "sky-icon", inputs: ["icon", "iconType", "size", "fixedWidth", "variant"] }, { kind: "directive", type: i7.λ2, selector: "[skyThemeClass]", inputs: ["class", "skyThemeClass"] }, { kind: "component", type: SkyTabButtonComponent, selector: "sky-tab-button", inputs: ["active", "ariaControls", "buttonHref", "buttonId", "buttonText", "buttonTextCount", "closeable", "disabled", "tabIndex", "tabNumber", "totalTabsCount", "tabStyle"], outputs: ["buttonClick", "closeClick"] }, { kind: "pipe", type: i3.SkyLibResourcesPipe, name: "skyLibResources" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
|
|
2167
2254
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.0", ngImport: i0, type: SkyTabsetComponent, decorators: [{
|
|
2168
2255
|
type: Component,
|
|
2169
2256
|
args: [{ selector: 'sky-tabset', providers: [
|
|
2170
2257
|
SkyTabsetAdapterService,
|
|
2171
2258
|
SkyTabsetPermalinkService,
|
|
2172
2259
|
SkyTabsetService,
|
|
2173
|
-
], changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, template: "<div\n class=\"sky-tabset\"\n
|
|
2260
|
+
], changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, template: "<div\n class=\"sky-tabset\"\n role=\"tablist\"\n [attr.aria-label]=\"ariaLabel\"\n [attr.aria-labelledby]=\"ariaLabelledBy\"\n [ngClass]=\"\n 'sky-tabset-mode-' + tabDisplayMode + ' sky-tabset-style-' + tabStyle\n \"\n (window:resize)=\"onWindowResize()\"\n (keydown.arrowright)=\"onRightKeyDown()\"\n (keydown.arrowleft)=\"onLeftKeyDown()\"\n (keydown.home)=\"onHomeKeyDown()\"\n (keydown.end)=\"onEndKeyDown()\"\n>\n <span class=\"sky-tabset-dropdown\">\n <sky-dropdown *ngIf=\"tabDisplayMode === 'dropdown'\" buttonType=\"tab\">\n <sky-dropdown-button>\n {{ dropdownTriggerButtonText }}\n </sky-dropdown-button>\n <sky-dropdown-menu>\n <sky-dropdown-item\n *ngFor=\"let tabButton of tabButtons\"\n class=\"sky-tab-dropdown-menu-item\"\n >\n <div\n class=\"sky-tab-dropdown-item\"\n [ngClass]=\"{\n 'sky-tab-dropdown-item-selected': tabButton.active\n }\"\n >\n <ng-container\n *ngTemplateOutlet=\"\n tabButtonTemplate;\n context: {\n $implicit: tabButton\n }\n \"\n ></ng-container>\n </div>\n </sky-dropdown-item>\n </sky-dropdown-menu>\n </sky-dropdown>\n </span>\n <span class=\"sky-tabset-tabs\">\n <ng-container *ngFor=\"let tabButton of tabButtons\">\n <ng-container\n *ngTemplateOutlet=\"\n tabButtonTemplate;\n context: {\n $implicit: tabButton\n }\n \"\n ></ng-container>\n </ng-container>\n </span>\n <span class=\"sky-tabset-btns\">\n <button\n *ngIf=\"newTab.observers.length > 0\"\n class=\"sky-btn sky-btn-icon sky-tabset-btn-new sky-margin-inline-compact\"\n type=\"button\"\n [attr.aria-label]=\"'skyux_tab_add' | skyLibResources\"\n [skyThemeClass]=\"{\n 'sky-margin-inline-sm': 'modern'\n }\"\n (click)=\"onNewTabClick()\"\n >\n <sky-icon icon=\"plus-circle\" size=\"lg\"> </sky-icon>\n </button>\n <button\n *ngIf=\"openTab.observers.length > 0\"\n class=\"sky-btn sky-btn-icon sky-tabset-btn-open sky-margin-inline-compact\"\n type=\"button\"\n [attr.aria-label]=\"'skyux_tab_open' | skyLibResources\"\n [skyThemeClass]=\"{\n 'sky-margin-inline-sm': 'modern'\n }\"\n (click)=\"onOpenTabClick()\"\n >\n <sky-icon icon=\"folder-open-o\" size=\"lg\"> </sky-icon>\n </button>\n </span>\n</div>\n<ng-content></ng-content>\n\n<ng-template let-tabButton #tabButtonTemplate>\n <sky-tab-button\n [active]=\"tabButton.active\"\n [ariaControls]=\"tabButton.ariaControls\"\n [buttonHref]=\"tabButton.buttonHref\"\n [buttonId]=\"tabButton.buttonId\"\n [buttonText]=\"tabButton.buttonText\"\n [buttonTextCount]=\"tabButton.buttonTextCount\"\n [closeable]=\"tabButton.closeable\"\n [disabled]=\"tabButton.disabled\"\n [tabIndex]=\"tabButton.tabIndex\"\n [tabStyle]=\"tabStyle\"\n [tabNumber]=\"tabButton.tabNumber\"\n [totalTabsCount]=\"tabButton.totalTabsCount\"\n (buttonClick)=\"onTabButtonClick(tabButton)\"\n (closeClick)=\"onTabCloseClick(tabButton)\"\n ></sky-tab-button>\n</ng-template>\n", styles: [".sky-tabset{align-items:center;border-bottom:2px solid #0974a1;display:flex;list-style-type:none;margin:0;overflow:hidden;padding:0 0 0 15px;white-space:nowrap}.sky-tabset.sky-tabset-style-wizard{border-bottom:none;margin-bottom:10px;padding-left:0}.sky-tabset-btns{order:1;padding-left:10px}.sky-tabset-dropdown{order:0;max-width:100%}.sky-tabset-mode-dropdown{line-height:0}.sky-tabset-mode-dropdown .sky-tabset-tabs{visibility:hidden;order:2}.sky-tab-dropdown-menu-item sky-tab-button{display:flex;min-width:300px}.sky-tab-dropdown-menu-item .sky-dropdown-item{margin:0}.sky-tab-dropdown-menu-item .sky-btn-tab-wrapper{width:100%;margin-right:0}.sky-tab-dropdown-menu-item .sky-btn-tab{margin:0;border-radius:0;width:100%;display:flex}.sky-tab-dropdown-menu-item .sky-btn-tab>.sky-tab-heading{flex:1 1 auto}.sky-tab-dropdown-menu-item .sky-btn-tab>.sky-btn-tab-close{flex:0 1 auto}.sky-tabset-tabs{order:0;white-space:nowrap}.sky-tabset-btn-new,.sky-tabset-btn-open{color:#0974a1}.sky-theme-modern .sky-modal-content .sky-tabset{margin:-10px -30px 30px;padding-left:30px;padding-right:30px}.sky-theme-modern .sky-tabset{border-bottom:1px solid #d2d2d2;overflow:visible}.sky-theme-modern .sky-tab-dropdown-menu-item .sky-btn-tab-wrapper{margin-right:0}\n"] }]
|
|
2174
2261
|
}], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: SkyTabsetAdapterService }, { type: SkyTabsetPermalinkService }, { type: SkyTabsetService }]; }, propDecorators: { active: [{
|
|
2175
2262
|
type: Input
|
|
2176
2263
|
}], ariaLabel: [{
|
|
@@ -2200,7 +2287,8 @@ SkyTabsModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
|
2200
2287
|
SkyTabsModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "14.2.0", ngImport: i0, type: SkyTabsModule, declarations: [SkyTabButtonComponent,
|
|
2201
2288
|
SkyTabComponent,
|
|
2202
2289
|
SkyTabsetComponent,
|
|
2203
|
-
SkyTabsetNavButtonComponent
|
|
2290
|
+
SkyTabsetNavButtonComponent,
|
|
2291
|
+
SkyTabsetNavButtonDisabledPipe], imports: [CommonModule,
|
|
2204
2292
|
RouterModule,
|
|
2205
2293
|
SkyDropdownModule,
|
|
2206
2294
|
SkyI18nModule,
|
|
@@ -2222,6 +2310,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.0", ngImpor
|
|
|
2222
2310
|
SkyTabComponent,
|
|
2223
2311
|
SkyTabsetComponent,
|
|
2224
2312
|
SkyTabsetNavButtonComponent,
|
|
2313
|
+
SkyTabsetNavButtonDisabledPipe,
|
|
2225
2314
|
],
|
|
2226
2315
|
imports: [
|
|
2227
2316
|
CommonModule,
|