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