@skyux/tabs 8.3.0 → 8.4.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/documentation.json +638 -480
- package/esm2020/lib/modules/tabs/tab-layout-type.mjs +2 -0
- package/esm2020/lib/modules/tabs/tab.component.mjs +33 -6
- package/esm2020/lib/modules/tabs/tabset.component.mjs +27 -7
- package/esm2020/lib/modules/tabs/tabset.service.mjs +11 -3
- package/fesm2015/skyux-tabs.mjs +67 -13
- package/fesm2015/skyux-tabs.mjs.map +1 -1
- package/fesm2020/skyux-tabs.mjs +67 -13
- package/fesm2020/skyux-tabs.mjs.map +1 -1
- package/lib/modules/tabs/tab-layout-type.d.ts +1 -0
- package/lib/modules/tabs/tab.component.d.ts +12 -1
- package/lib/modules/tabs/tabset.component.d.ts +1 -0
- package/lib/modules/tabs/tabset.service.d.ts +3 -0
- package/package.json +9 -9
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
var _SkyTabsetService_instances, _SkyTabsetService_activeTabIndex, _SkyTabsetService_focusedTabBtnIndex, _SkyTabsetService_activeTabUnregistered, _SkyTabsetService_tabs, _SkyTabsetService_tabCounter, _SkyTabsetService_isTabIndexActive, _SkyTabsetService_getNextTabArrayIndex, _SkyTabsetService_getPrevTabArrayIndex;
|
|
1
|
+
var _SkyTabsetService_instances, _SkyTabsetService_activeTabIndex, _SkyTabsetService_focusedTabBtnIndex, _SkyTabsetService_activeTabUnregistered, _SkyTabsetService_activeTabLayout, _SkyTabsetService_tabs, _SkyTabsetService_tabCounter, _SkyTabsetService_isTabIndexActive, _SkyTabsetService_getNextTabArrayIndex, _SkyTabsetService_getPrevTabArrayIndex;
|
|
2
2
|
import { __classPrivateFieldGet, __classPrivateFieldSet } from "tslib";
|
|
3
3
|
import { Injectable } from '@angular/core';
|
|
4
4
|
import { BehaviorSubject, Subject } from 'rxjs';
|
|
@@ -16,6 +16,9 @@ export class SkyTabsetService {
|
|
|
16
16
|
get focusedTabBtnIndex() {
|
|
17
17
|
return __classPrivateFieldGet(this, _SkyTabsetService_focusedTabBtnIndex, "f");
|
|
18
18
|
}
|
|
19
|
+
get activeTabLayout() {
|
|
20
|
+
return __classPrivateFieldGet(this, _SkyTabsetService_activeTabLayout, "f");
|
|
21
|
+
}
|
|
19
22
|
constructor() {
|
|
20
23
|
_SkyTabsetService_instances.add(this);
|
|
21
24
|
this.currentActiveTabIndex = 0;
|
|
@@ -23,6 +26,7 @@ export class SkyTabsetService {
|
|
|
23
26
|
_SkyTabsetService_activeTabIndex.set(this, void 0);
|
|
24
27
|
_SkyTabsetService_focusedTabBtnIndex.set(this, void 0);
|
|
25
28
|
_SkyTabsetService_activeTabUnregistered.set(this, void 0);
|
|
29
|
+
_SkyTabsetService_activeTabLayout.set(this, new Subject());
|
|
26
30
|
_SkyTabsetService_tabs.set(this, []);
|
|
27
31
|
_SkyTabsetService_tabCounter.set(this, 0);
|
|
28
32
|
__classPrivateFieldSet(this, _SkyTabsetService_activeTabIndex, new BehaviorSubject(0), "f");
|
|
@@ -33,6 +37,7 @@ export class SkyTabsetService {
|
|
|
33
37
|
__classPrivateFieldGet(this, _SkyTabsetService_activeTabIndex, "f").complete();
|
|
34
38
|
__classPrivateFieldGet(this, _SkyTabsetService_activeTabUnregistered, "f").complete();
|
|
35
39
|
__classPrivateFieldGet(this, _SkyTabsetService_focusedTabBtnIndex, "f").complete();
|
|
40
|
+
__classPrivateFieldGet(this, _SkyTabsetService_activeTabLayout, "f").complete();
|
|
36
41
|
}
|
|
37
42
|
/**
|
|
38
43
|
* Sets the active tab by its unique `tabIndex` property.
|
|
@@ -110,6 +115,9 @@ export class SkyTabsetService {
|
|
|
110
115
|
found.tabIndex = newTabIndex;
|
|
111
116
|
}
|
|
112
117
|
}
|
|
118
|
+
updateActiveTabLayout(layout) {
|
|
119
|
+
__classPrivateFieldGet(this, _SkyTabsetService_activeTabLayout, "f").next(layout);
|
|
120
|
+
}
|
|
113
121
|
/**
|
|
114
122
|
* Unregisters a tab component.
|
|
115
123
|
*/
|
|
@@ -165,7 +173,7 @@ export class SkyTabsetService {
|
|
|
165
173
|
}
|
|
166
174
|
}
|
|
167
175
|
}
|
|
168
|
-
_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) {
|
|
176
|
+
_SkyTabsetService_activeTabIndex = new WeakMap(), _SkyTabsetService_focusedTabBtnIndex = new WeakMap(), _SkyTabsetService_activeTabUnregistered = new WeakMap(), _SkyTabsetService_activeTabLayout = new WeakMap(), _SkyTabsetService_tabs = new WeakMap(), _SkyTabsetService_tabCounter = new WeakMap(), _SkyTabsetService_instances = new WeakSet(), _SkyTabsetService_isTabIndexActive = function _SkyTabsetService_isTabIndexActive(tabIndex) {
|
|
169
177
|
return this.tabIndexesEqual(tabIndex, this.currentActiveTabIndex);
|
|
170
178
|
}, _SkyTabsetService_getNextTabArrayIndex = function _SkyTabsetService_getNextTabArrayIndex(currentIndex) {
|
|
171
179
|
let nextIndex = currentIndex + 1;
|
|
@@ -185,4 +193,4 @@ SkyTabsetService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", ver
|
|
|
185
193
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: SkyTabsetService, decorators: [{
|
|
186
194
|
type: Injectable
|
|
187
195
|
}], ctorParameters: function () { return []; } });
|
|
188
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFic2V0LnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvdGFicy9zcmMvbGliL21vZHVsZXMvdGFicy90YWJzZXQuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQWEsTUFBTSxlQUFlLENBQUM7QUFFdEQsT0FBTyxFQUFFLGVBQWUsRUFBYyxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7O0FBTTVEOztHQUVHO0FBRUgsTUFBTSxPQUFPLGdCQUFnQjtJQUMzQixJQUFXLHFCQUFxQjtRQUM5QixPQUFPLHVCQUFBLElBQUksK0NBQXVCLENBQUM7SUFDckMsQ0FBQztJQUVELElBQVcsY0FBYztRQUN2QixPQUFPLHVCQUFBLElBQUksd0NBQWdCLENBQUM7SUFDOUIsQ0FBQztJQUVELElBQVcsa0JBQWtCO1FBQzNCLE9BQU8sdUJBQUEsSUFBSSw0Q0FBb0IsQ0FBQztJQUNsQyxDQUFDO0lBa0JEOztRQWhCTywwQkFBcUIsR0FBNEIsQ0FBQyxDQUFDO1FBRW5ELDhCQUF5QixHQUFnQixDQUFDLENBQUM7UUFFbEQsbURBQThDO1FBRTlDLHVEQUEwQztRQUUxQywwREFBb0U7UUFFcEUsaUNBRU0sRUFBRSxFQUFDO1FBRVQsdUNBQWMsQ0FBQyxFQUFDO1FBR2QsdUJBQUEsSUFBSSxvQ0FBbUIsSUFBSSxlQUFlLENBQWMsQ0FBQyxDQUFDLE1BQUEsQ0FBQztRQUUzRCx1QkFBQSxJQUFJLDJDQUNGLElBQUksT0FBTyxFQUFzQyxNQUFBLENBQUM7UUFFcEQsdUJBQUEsSUFBSSx3Q0FBdUIsSUFBSSxPQUFPLEVBQWUsTUFBQSxDQUFDO0lBQ3hELENBQUM7SUFFTSxXQUFXO1FBQ2hCLHVCQUFBLElBQUksd0NBQWdCLENBQUMsUUFBUSxFQUFFLENBQUM7UUFDaEMsdUJBQUEsSUFBSSwrQ0FBdUIsQ0FBQyxRQUFRLEVBQUUsQ0FB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T0FBTyxTQUFTLENBQUM7QUFDbkIsQ0FBQzs2R0ExUFUsZ0JBQWdCO2lIQUFoQixnQkFBZ0I7MkZBQWhCLGdCQUFnQjtrQkFENUIsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUsIE9uRGVzdHJveSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QsIE9ic2VydmFibGUsIFN1YmplY3QgfSBmcm9tICdyeGpzJztcblxuaW1wb3J0IHsgVGFiQnV0dG9uVmlld01vZGVsIH0gZnJvbSAnLi90YWItYnV0dG9uLXZpZXctbW9kZWwnO1xuaW1wb3J0IHsgU2t5VGFiSW5kZXggfSBmcm9tICcuL3RhYi1pbmRleCc7XG5pbXBvcnQgeyBTa3lUYWJzZXRBY3RpdmVUYWJVbnJlZ2lzdGVyZWRBcmdzIH0gZnJvbSAnLi90YWJzZXQtYWN0aXZlLXRhYi11bnJlZ2lzdGVyZWQtYXJncyc7XG5cbi8qKlxuICogQGludGVybmFsXG4gKi9cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBTa3lUYWJzZXRTZXJ2aWNlIGltcGxlbWVudHMgT25EZXN0cm95IHtcbiAgcHVibGljIGdldCBhY3RpdmVUYWJVbnJlZ2lzdGVyZWQoKTogT2JzZXJ2YWJsZTxTa3lUYWJzZXRBY3RpdmVUYWJVbnJlZ2lzdGVyZWRBcmdzPiB7XG4gICAgcmV0dXJuIHRoaXMuI2FjdGl2ZVRhYlVucmVnaXN0ZXJlZDtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgYWN0aXZlVGFiSW5kZXgoKTogT2JzZXJ2YWJsZTxTa3lUYWJJbmRleD4ge1xuICAgIHJldHVybiB0aGlzLiNhY3RpdmVUYWJJbmRleDtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgZm9jdXNlZFRhYkJ0bkluZGV4KCk6IE9ic2VydmFibGU8U2t5VGFiSW5kZXg+IHtcbiAgICByZXR1cm4gdGhpcy4jZm9jdXNlZFRhYkJ0bkluZGV4O1xuICB9XG5cbiAgcHVibGljIGN1cnJlbnRBY3RpdmVUYWJJbmRleDogU2t5VGFiSW5kZXggfCB1bmRlZmluZWQgPSAwO1xuXG4gIHB1YmxpYyBjdXJyZW50Rm9jdXNlZFRhYkJ0bkluZGV4OiBTa3lUYWJJbmRleCA9IDA7XG5cbiAgI2FjdGl2ZVRhYkluZGV4OiBCZWhhdmlvclN1YmplY3Q8U2t5VGFiSW5kZXg+O1xuXG4gICNmb2N1c2VkVGFiQnRuSW5kZXg6IFN1YmplY3Q8U2t5VGFiSW5kZXg+O1xuXG4gICNhY3RpdmVUYWJVbnJlZ2lzdGVyZWQ6IFN1YmplY3Q8U2t5VGFic2V0QWN0aXZlVGFiVW5yZWdpc3RlcmVkQXJncz47XG5cbiAgI3RhYnM6IHtcbiAgICB0YWJJbmRleDogU2t5VGFiSW5kZXggfCB1bmRlZmluZWQ7XG4gIH1bXSA9IFtdO1xuXG4gICN0YWJDb3VudGVyID0gMDtcblxuICBjb25zdHJ1Y3RvcigpIHtcbiAgICB0aGlzLiNhY3RpdmVUYWJJbmRleCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8U2t5VGFiSW5kZXg+KDApO1xuXG4gICAgdGhpcy4jYWN0aXZlVGFiVW5yZWdpc3RlcmVkID1cbiAgICAgIG5ldyBTdWJqZWN0PFNreVRhYnNldEFjdGl2ZVRhYlVucmVnaXN0ZXJlZEFyZ3M+KCk7XG5cbiAgICB0aGlzLiNmb2N1c2VkVGFiQnRuSW5kZXggPSBuZXcgU3ViamVjdDxTa3lUYWJJbmRleD4oKTtcbiAgfVxuXG4gIHB1YmxpYyBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICB0aGlzLiNhY3RpdmVUYWJJbmRleC5jb21wbGV0ZSgpO1xuICAgIHRoaXMuI2FjdGl2ZVRhYlVucmVnaXN0ZXJlZC5jb21wbGV0ZSgpO1xuICAgIHRoaXMuI2ZvY3VzZWRUYWJCdG5JbmRleC5jb21wbGV0ZSgpO1xuICB9XG5cbiAgLyoqXG4gICAqIFNldHMgdGhlIGFjdGl2ZSB0YWIgYnkgaXRzIHVuaXF1ZSBgdGFiSW5kZXhgIHByb3BlcnR5LlxuICAgKi9cbiAgcHVibGljIHNldEFjdGl2ZVRhYkluZGV4KFxuICAgIHZhbHVlOiBTa3lUYWJJbmRleCB8IHVuZGVmaW5lZCxcbiAgICBjb25maWcgPSB7XG4gICAgICBlbWl0Q2hhbmdlOiB0cnVlLFxuICAgIH1cbiAgKTogdm9pZCB7XG4gICAgaWYgKFxuICAgICAgdmFsdWUgIT09IHVuZGVmaW5lZCAmJlxuICAgICAgIXRoaXMudGFiSW5kZXhlc0VxdWFsKHZhbHVlLCB0aGlzLmN1cnJlbnRBY3RpdmVUYWJJbmRleClcbiAgICApIHtcbiAgICAgIHRoaXMuY3VycmVudEFjdGl2ZVRhYkluZGV4ID0gdmFsdWU7XG5cbiAgICAgIC8qIGlzdGFuYnVsIGlnbm9yZSBlbHNlICovXG4gICAgICBpZiAoY29uZmlnLmVtaXRDaGFuZ2UpIHtcbiAgICAgICAgdGhpcy4jYWN0aXZlVGFiSW5kZXgubmV4dCh2YWx1ZSk7XG4gICAgICB9XG5cbiAgICAgIHRoaXMuc2V0Rm9jdXNlZFRhYkJ0bkluZGV4KHZhbHVlKTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgZm9jdXNOZXh0VGFiQnRuKHRhYkJ1dHRvbnM6IFRhYkJ1dHRvblZpZXdNb2RlbFtdKTogdm9pZCB7XG4gICAgY29uc3QgY3VycmVudFRhYkFycmF5SW5kZXggPSB0aGlzLiN0YWJzLmZpbmRJbmRleCgodGFiKSA9PlxuICAgICAgdGhpcy50YWJJbmRleGVzRXF1YWwodGFiLnRhYkluZGV4LCB0aGlzLmN1cnJlbnRGb2N1c2VkVGFiQnRuSW5kZXgpXG4gICAgKTtcblxuICAgIGZvciAoXG4gICAgICBsZXQgaSA9IHRoaXMuI2dldE5leHRUYWJBcnJheUluZGV4KGN1cnJlbnRUYWJBcnJheUluZGV4KTtcbiAgICAgIGkgIT09IGN1cnJlbnRUYWJBcnJheUluZGV4O1xuICAgICAgaSA9IHRoaXMuI2dldE5leHRUYWJBcnJheUluZGV4KGkpXG4gICAgKSB7XG4gICAgICBjb25zdCB0YWJCdG4gPSB0YWJCdXR0b25zW2ldO1xuICAgICAgaWYgKCF0YWJCdG4uZGlzYWJsZWQgJiYgdGFiQnRuLnRhYkluZGV4ICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgdGhpcy5zZXRGb2N1c2VkVGFiQnRuSW5kZXgodGFiQnRuLnRhYkluZGV4KTtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBmb2N1c1ByZXZUYWJCdG4odGFiQnV0dG9uczogVGFiQnV0dG9uVmlld01vZGVsW10pOiB2b2lkIHtcbiAgICBjb25zdCBjdXJyZW50VGFiQXJyYXlJbmRleCA9IHRoaXMuI3RhYnMuZmluZEluZGV4KCh0YWIpID0+XG4gICAgICB0aGlzLnRhYkluZGV4ZXNFcXVhbCh0YWIudGFiSW5kZXgsIHRoaXMuY3VycmVudEZvY3VzZWRUYWJCdG5JbmRleClcbiAgICApO1xuXG4gICAgZm9yIChcbiAgICAgIGxldCBpID0gdGhpcy4jZ2V0UHJldlRhYkFycmF5SW5kZXgoY3VycmVudFRhYkFycmF5SW5kZXgpO1xuICAgICAgaSAhPT0gY3VycmVudFRhYkFycmF5SW5kZXg7XG4gICAgICBpID0gdGhpcy4jZ2V0UHJldlRhYkFycmF5SW5kZXgoaSlcbiAgICApIHtcbiAgICAgIGNvbnN0IHRhYkJ0biA9IHRhYkJ1dHRvbnNbaV07XG4gICAgICBpZiAoIXRhYkJ0bi5kaXNhYmxlZCAmJiB0YWJCdG4udGFiSW5kZXggIT09IHVuZGVmaW5lZCkge1xuICAgICAgICB0aGlzLnNldEZvY3VzZWRUYWJCdG5JbmRleCh0YWJCdG4udGFiSW5kZXgpO1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcHVibGljIGZvY3VzRmlyc3RPck5lYXJlc3RUYWJCdG4odGFiQnV0dG9uczogVGFiQnV0dG9uVmlld01vZGVsW10pOiB2b2lkIHtcbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IHRhYkJ1dHRvbnMubGVuZ3RoOyBpKyspIHtcbiAgICAgIGNvbnN0IHRhYkJ0biA9IHRhYkJ1dHRvbnNbaV07XG5cbiAgICAgIGlmICghdGFiQnRuLmRpc2FibGVkICYmIHRhYkJ0bi50YWJJbmRleCAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgIHRoaXMuc2V0Rm9jdXNlZFRhYkJ0bkluZGV4KHRhYkJ0bi50YWJJbmRleCk7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBwdWJsaWMgZm9jdXNMYXN0T3JOZWFyZXN0VGFiQnRuKHRhYkJ1dHRvbnM6IFRhYkJ1dHRvblZpZXdNb2RlbFtdKTogdm9pZCB7XG4gICAgZm9yIChsZXQgaSA9IHRhYkJ1dHRvbnMubGVuZ3RoIC0gMTsgaSA+PSAwOyBpLS0pIHtcbiAgICAgIGNvbnN0IHRhYkJ0biA9IHRhYkJ1dHRvbnNbaV07XG5cbiAgICAgIGlmICghdGFiQnRuLmRpc2FibGVkICYmIHRhYkJ0bi50YWJJbmRleCAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgIHRoaXMuc2V0Rm9jdXNlZFRhYkJ0bkluZGV4KHRhYkJ0bi50YWJJbmRleCk7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBwdWJsaWMgc2V0Rm9jdXNlZFRhYkJ0bkluZGV4KHRhYkluZGV4OiBTa3lUYWJJbmRleCk6IHZvaWQge1xuICAgIHRoaXMuY3VycmVudEZvY3VzZWRUYWJCdG5JbmRleCA9IHRhYkluZGV4O1xuICAgIHRoaXMuI2ZvY3VzZWRUYWJCdG5JbmRleC5uZXh0KHRhYkluZGV4KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZWdpc3RlcnMgYSB0YWIgY29tcG9uZW50LlxuICAgKi9cbiAgcHVibGljIHJlZ2lzdGVyVGFiKHRhYkluZGV4PzogU2t5VGFiSW5kZXgpOiBTa3lUYWJJbmRleCB7XG4gICAgaWYgKHRhYkluZGV4ID09PSB1bmRlZmluZWQpIHtcbiAgICAgIHRhYkluZGV4ID0gdGhpcy4jdGFiQ291bnRlcjtcbiAgICAgIHRoaXMuI3RhYkNvdW50ZXIrKztcbiAgICB9XG5cbiAgICB0aGlzLiN0YWJzLnB1c2goeyB0YWJJbmRleCB9KTtcblxuICAgIHJldHVybiB0YWJJbmRleDtcbiAgfVxuXG4gIHB1YmxpYyB1cGRhdGVUYWJJbmRleChcbiAgICBjdXJyZW50VGFiSW5kZXg6IFNreVRhYkluZGV4LFxuICAgIG5ld1RhYkluZGV4OiBTa3lUYWJJbmRleFxuICApOiB2b2lkIHtcbiAgICBjb25zdCBmb3VuZCA9IHRoaXMuI3RhYnMuZmluZCgodGFiKSA9PlxuICAgICAgdGhpcy50YWJJbmRleGVzRXF1YWwodGFiLnRhYkluZGV4LCBjdXJyZW50VGFiSW5kZXgpXG4gICAgKTtcbiAgICBpZiAoZm91bmQpIHtcbiAgICAgIGZvdW5kLnRhYkluZGV4ID0gbmV3VGFiSW5kZXg7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIFVucmVnaXN0ZXJzIGEgdGFiIGNvbXBvbmVudC5cbiAgICovXG4gIHB1YmxpYyB1bnJlZ2lzdGVyVGFiKHRhYkluZGV4OiBTa3lUYWJJbmRleCk6IHZvaWQge1xuICAgIGNvbnN0IGluZGV4ID0gdGhpcy4jdGFicy5maW5kSW5kZXgoKHRhYikgPT5cbiAgICAgIHRoaXMudGFiSW5kZXhlc0VxdWFsKHRhYi50YWJJbmRleCwgdGFiSW5kZXgpXG4gICAgKTtcblxuICAgIC8vIE5vdGlmeSB0aGUgdGFic2V0IGNvbXBvbmVudCB3aGVuIGFuIGFjdGl2ZSB0YWIgaXMgdW5yZWdpc3RlcmVkLlxuICAgIGlmICh0aGlzLiNpc1RhYkluZGV4QWN0aXZlKHRoaXMuI3RhYnNbaW5kZXhdPy50YWJJbmRleCkpIHtcbiAgICAgIHRoaXMuI2FjdGl2ZVRhYlVucmVnaXN0ZXJlZC5uZXh0KHtcbiAgICAgICAgYXJyYXlJbmRleDogaW5kZXgsXG4gICAgICB9KTtcbiAgICB9XG5cbiAgICB0aGlzLiN0YWJzLnNwbGljZShpbmRleCwgMSk7XG4gIH1cblxuICAvKipcbiAgICogVW5yZWdpc3RlcnMgYWxsIHRhYiBjb21wb25lbnRzIGF0IG9uY2UuXG4gICAqL1xuICBwdWJsaWMgdW5yZWdpc3RlckFsbCgpOiB2b2lkIHtcbiAgICB0aGlzLiN0YWJzID0gW107XG4gIH1cblxuICAvKipcbiAgICogQ29tcGFyZXMgdHdvIHRhYiBpbmRleGVzIGFuZCByZXR1cm5zIGB0cnVlYCBpZiB0aGV5IGFyZSBlcXVhbC5cbiAgICovXG4gIHB1YmxpYyB0YWJJbmRleGVzRXF1YWwoXG4gICAgdGFiSW5kZXgxOiBTa3lUYWJJbmRleCB8IHVuZGVmaW5lZCxcbiAgICB0YWJJbmRleDI6IFNreVRhYkluZGV4IHwgdW5kZWZpbmVkXG4gICk6IGJvb2xlYW4ge1xuICAgIHJldHVybiAoXG4gICAgICB0YWJJbmRleDEgPT09IHRhYkluZGV4MiB8fFxuICAgICAgKHRhYkluZGV4MSAhPT0gdW5kZWZpbmVkICYmXG4gICAgICAgIHRhYkluZGV4MiAhPT0gdW5kZWZpbmVkICYmXG4gICAgICAgICt0YWJJbmRleDEgPT09ICt0YWJJbmRleDIpXG4gICAgKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBWZXJpZmllcyBpZiBhIHByb3ZpZGVkIHRhYiBpbmRleCBpcyByZWdpc3RlcmVkLlxuICAgKi9cbiAgcHVibGljIGlzVmFsaWRUYWJJbmRleCh0YWJJbmRleDogU2t5VGFiSW5kZXgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy4jdGFicy5zb21lKCh0YWIpID0+XG4gICAgICB0aGlzLnRhYkluZGV4ZXNFcXVhbCh0YWIudGFiSW5kZXgsIHRhYkluZGV4KVxuICAgICk7XG4gIH1cblxuICAvKipcbiAgICogQWN0aXZhdGVzIHRoZSBmaXJzdCByZWdpc3RlcmVkIHRhYi5cbiAgICovXG4gIHB1YmxpYyBhY3RpdmF0ZUZpcnN0VGFiKCk6IFNreVRhYkluZGV4IHwgdW5kZWZpbmVkIHtcbiAgICBjb25zdCBmaXJzdFRhYkluZGV4ID0gdGhpcy4jdGFic1swXSAmJiB0aGlzLiN0YWJzWzBdLnRhYkluZGV4O1xuICAgIGlmIChmaXJzdFRhYkluZGV4ICE9PSB1bmRlZmluZWQpIHtcbiAgICAgIHRoaXMuc2V0QWN0aXZlVGFiSW5kZXgoZmlyc3RUYWJJbmRleCk7XG4gICAgICByZXR1cm4gZmlyc3RUYWJJbmRleDtcbiAgICB9XG4gICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgfVxuXG4gIC8qKlxuICAgKiBBY3RpdmF0ZXMgdGhlIG5leHQgcmVnaXN0ZXJlZCB0YWIsIG9yIHRoZSBwcmV2aW91cyBvbmUgYmFzZWQgb24gYSBwcm92aWRlZCBhcnJheSBpbmRleC5cbiAgICovXG4gIHB1YmxpYyBhY3RpdmF0ZU5lYXJlc3RUYWIoYXJyYXlJbmRleDogbnVtYmVyKTogdm9pZCB7XG4gICAgY29uc3QgbmV3QWN0aXZlVGFiID0gdGhpcy4jdGFic1thcnJheUluZGV4XSB8fCB0aGlzLiN0YWJzW2FycmF5SW5kZXggLSAxXTtcbiAgICBpZiAobmV3QWN0aXZlVGFiKSB7XG4gICAgICB0aGlzLmN1cnJlbnRBY3RpdmVUYWJJbmRleCA9IG5ld0FjdGl2ZVRhYi50YWJJbmRleDtcbiAgICB9XG4gIH1cblxuICAjaXNUYWJJbmRleEFjdGl2ZSh0YWJJbmRleDogU2t5VGFiSW5kZXggfCB1bmRlZmluZWQpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy50YWJJbmRleGVzRXF1YWwodGFiSW5kZXgsIHRoaXMuY3VycmVudEFjdGl2ZVRhYkluZGV4KTtcbiAgfVxuXG4gICNnZXROZXh0VGFiQXJyYXlJbmRleChjdXJyZW50SW5kZXg6IG51bWJlcik6IG51bWJlciB7XG4gICAgbGV0IG5leHRJbmRleCA9IGN1cnJlbnRJbmRleCArIDE7XG5cbiAgICBpZiAobmV4dEluZGV4ID09PSB0aGlzLiN0YWJzLmxlbmd0aCkge1xuICAgICAgbmV4dEluZGV4ID0gMDtcbiAgICB9XG5cbiAgICByZXR1cm4gbmV4dEluZGV4O1xuICB9XG5cbiAgI2dldFByZXZUYWJBcnJheUluZGV4KGN1cnJlbnRJbmRleDogbnVtYmVyKTogbnVtYmVyIHtcbiAgICBsZXQgcHJldkluZGV4ID0gY3VycmVudEluZGV4IC0gMTtcblxuICAgIGlmIChwcmV2SW5kZXggPCAwKSB7XG4gICAgICBwcmV2SW5kZXggPSB0aGlzLiN0YWJzLmxlbmd0aCAtIDE7XG4gICAgfVxuXG4gICAgcmV0dXJuIHByZXZJbmRleDtcbiAgfVxufVxuIl19
|
|
196
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFic2V0LnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvdGFicy9zcmMvbGliL21vZHVsZXMvdGFicy90YWJzZXQuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQWEsTUFBTSxlQUFlLENBQUM7QUFFdEQsT0FBTyxFQUFFLGVBQWUsRUFBYyxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7O0FBTzVEOztHQUVHO0FBRUgsTUFBTSxPQUFPLGdCQUFnQjtJQUMzQixJQUFXLHFCQUFxQjtRQUM5QixPQUFPLHVCQUFBLElBQUksK0NBQXVCLENBQUM7SUFDckMsQ0FBQztJQUVELElBQVcsY0FBYztRQUN2QixPQUFPLHVCQUFBLElBQUksd0NBQWdCLENBQUM7SUFDOUIsQ0FBQztJQUVELElBQVcsa0JBQWtCO1FBQzNCLE9BQU8sdUJBQUEsSUFBSSw0Q0FBb0IsQ0FBQztJQUNsQyxDQUFDO0lBRUQsSUFBVyxlQUFlO1FBQ3hCLE9BQU8sdUJBQUEsSUFBSSx5Q0FBaUIsQ0FBQztJQUMvQixDQUFDO0lBb0JEOztRQWxCTywwQkFBcUIsR0FBNEIsQ0FBQyxDQUFDO1FBRW5ELDhCQUF5QixHQUFnQixDQUFDLENBQUM7UUFFbEQsbURBQThDO1FBRTlDLHVEQUEwQztRQUUxQywwREFBb0U7UUFFcEUsNENBQW1CLElBQUksT0FBTyxFQUFvQixFQUFDO1FBRW5ELGlDQUVNLEVBQUUsRUFBQztRQUVULHVDQUFjLENBQUMsRUFBQztRQUdkLHVCQUFBLElBQUksb0NBQW1CLElBQUksZUFBZSxDQUFjLENBQUMsQ0FBQyxNQUFBLENBQUM7UUFFM0QsdUJBQUEsSUFBSSwyQ0FDRixJQUFJLE9BQU8sRUFBc0MsTUFBQSxDQUFDO1FBRXBELHVCQUFBLElBQUksd0NBQXVCLElBQUksT0FBTyxFQUFlLE1BQUEsQ0FBQztJQUN4RCxDQUFDO0lB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TUFBTSxFQUFFO1FBQ25DLFNBQVMsR0FBRyxDQUFDLENBQUM7S0FDZjtJQUVELE9BQU8sU0FBUyxDQUFDO0FBQ25CLENBQUMsMkZBRXFCLFlBQW9CO0lBQ3hDLElBQUksU0FBUyxHQUFHLFlBQVksR0FBRyxDQUFDLENBQUM7SUFFakMsSUFBSSxTQUFTLEdBQUcsQ0FBQyxFQUFFO1FBQ2pCLFNBQVMsR0FBRyx1QkFBQSxJQUFJLDhCQUFNLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQztLQUNuQztJQUVELE9BQU8sU0FBUyxDQUFDO0FBQ25CLENBQUM7NkdBclFVLGdCQUFnQjtpSEFBaEIsZ0JBQWdCOzJGQUFoQixnQkFBZ0I7a0JBRDVCLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlLCBPbkRlc3Ryb3kgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0LCBPYnNlcnZhYmxlLCBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XG5cbmltcG9ydCB7IFRhYkJ1dHRvblZpZXdNb2RlbCB9IGZyb20gJy4vdGFiLWJ1dHRvbi12aWV3LW1vZGVsJztcbmltcG9ydCB7IFNreVRhYkluZGV4IH0gZnJvbSAnLi90YWItaW5kZXgnO1xuaW1wb3J0IHsgU2t5VGFiTGF5b3V0VHlwZSB9IGZyb20gJy4vdGFiLWxheW91dC10eXBlJztcbmltcG9ydCB7IFNreVRhYnNldEFjdGl2ZVRhYlVucmVnaXN0ZXJlZEFyZ3MgfSBmcm9tICcuL3RhYnNldC1hY3RpdmUtdGFiLXVucmVnaXN0ZXJlZC1hcmdzJztcblxuLyoqXG4gKiBAaW50ZXJuYWxcbiAqL1xuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIFNreVRhYnNldFNlcnZpY2UgaW1wbGVtZW50cyBPbkRlc3Ryb3kge1xuICBwdWJsaWMgZ2V0IGFjdGl2ZVRhYlVucmVnaXN0ZXJlZCgpOiBPYnNlcnZhYmxlPFNreVRhYnNldEFjdGl2ZVRhYlVucmVnaXN0ZXJlZEFyZ3M+IHtcbiAgICByZXR1cm4gdGhpcy4jYWN0aXZlVGFiVW5yZWdpc3RlcmVkO1xuICB9XG5cbiAgcHVibGljIGdldCBhY3RpdmVUYWJJbmRleCgpOiBPYnNlcnZhYmxlPFNreVRhYkluZGV4PiB7XG4gICAgcmV0dXJuIHRoaXMuI2FjdGl2ZVRhYkluZGV4O1xuICB9XG5cbiAgcHVibGljIGdldCBmb2N1c2VkVGFiQnRuSW5kZXgoKTogT2JzZXJ2YWJsZTxTa3lUYWJJbmRleD4ge1xuICAgIHJldHVybiB0aGlzLiNmb2N1c2VkVGFiQnRuSW5kZXg7XG4gIH1cblxuICBwdWJsaWMgZ2V0IGFjdGl2ZVRhYkxheW91dCgpOiBPYnNlcnZhYmxlPFNreVRhYkxheW91dFR5cGU+IHtcbiAgICByZXR1cm4gdGhpcy4jYWN0aXZlVGFiTGF5b3V0O1xuICB9XG5cbiAgcHVibGljIGN1cnJlbnRBY3RpdmVUYWJJbmRleDogU2t5VGFiSW5kZXggfCB1bmRlZmluZWQgPSAwO1xuXG4gIHB1YmxpYyBjdXJyZW50Rm9jdXNlZFRhYkJ0bkluZGV4OiBTa3lUYWJJbmRleCA9IDA7XG5cbiAgI2FjdGl2ZVRhYkluZGV4OiBCZWhhdmlvclN1YmplY3Q8U2t5VGFiSW5kZXg+O1xuXG4gICNmb2N1c2VkVGFiQnRuSW5kZXg6IFN1YmplY3Q8U2t5VGFiSW5kZXg+O1xuXG4gICNhY3RpdmVUYWJVbnJlZ2lzdGVyZWQ6IFN1YmplY3Q8U2t5VGFic2V0QWN0aXZlVGFiVW5yZWdpc3RlcmVkQXJncz47XG5cbiAgI2FjdGl2ZVRhYkxheW91dCA9IG5ldyBTdWJqZWN0PFNreVRhYkxheW91dFR5cGU+KCk7XG5cbiAgI3RhYnM6IHtcbiAgICB0YWJJbmRleDogU2t5VGFiSW5kZXggfCB1bmRlZmluZWQ7XG4gIH1bXSA9IFtdO1xuXG4gICN0YWJDb3VudGVyID0gMDtcblxuICBjb25zdHJ1Y3RvcigpIHtcbiAgICB0aGlzLiNhY3RpdmVUYWJJbmRleCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8U2t5VGFiSW5kZXg+KDApO1xuXG4gICAgdGhpcy4jYWN0aXZlVGFiVW5yZWdpc3RlcmVkID1cbiAgICAgIG5ldyBTdWJqZWN0PFNreVRhYnNldEFjdGl2ZVRhYlVucmVnaXN0ZXJlZEFyZ3M+KCk7XG5cbiAgICB0aGlzLiNmb2N1c2VkVGFiQnRuSW5kZXggPSBuZXcgU3ViamVjdDxTa3lUYWJJbmRleD4oKTtcbiAgfVxuXG4gIHB1YmxpYyBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICB0aGlzLiNhY3RpdmVUYWJJbmRleC5jb21wbGV0ZSgpO1xuICAgIHRoaXMuI2FjdGl2ZVRhYlVucmVnaXN0ZXJlZC5jb21wbGV0ZSgpO1xuICAgIHRoaXMuI2ZvY3VzZWRUYWJCdG5JbmRleC5jb21wbGV0ZSgpO1xuICAgIHRoaXMuI2FjdGl2ZVRhYkxheW91dC5jb21wbGV0ZSgpO1xuICB9XG5cbiAgLyoqXG4gICAqIFNldHMgdGhlIGFjdGl2ZSB0YWIgYnkgaXRzIHVuaXF1ZSBgdGFiSW5kZXhgIHByb3BlcnR5LlxuICAgKi9cbiAgcHVibGljIHNldEFjdGl2ZVRhYkluZGV4KFxuICAgIHZhbHVlOiBTa3lUYWJJbmRleCB8IHVuZGVmaW5lZCxcbiAgICBjb25maWcgPSB7XG4gICAgICBlbWl0Q2hhbmdlOiB0cnVlLFxuICAgIH1cbiAgKTogdm9pZCB7XG4gICAgaWYgKFxuICAgICAgdmFsdWUgIT09IHVuZGVmaW5lZCAmJlxuICAgICAgIXRoaXMudGFiSW5kZXhlc0VxdWFsKHZhbHVlLCB0aGlzLmN1cnJlbnRBY3RpdmVUYWJJbmRleClcbiAgICApIHtcbiAgICAgIHRoaXMuY3VycmVudEFjdGl2ZVRhYkluZGV4ID0gdmFsdWU7XG5cbiAgICAgIC8qIGlzdGFuYnVsIGlnbm9yZSBlbHNlICovXG4gICAgICBpZiAoY29uZmlnLmVtaXRDaGFuZ2UpIHtcbiAgICAgICAgdGhpcy4jYWN0aXZlVGFiSW5kZXgubmV4dCh2YWx1ZSk7XG4gICAgICB9XG5cbiAgICAgIHRoaXMuc2V0Rm9jdXNlZFRhYkJ0bkluZGV4KHZhbHVlKTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgZm9jdXNOZXh0VGFiQnRuKHRhYkJ1dHRvbnM6IFRhYkJ1dHRvblZpZXdNb2RlbFtdKTogdm9pZCB7XG4gICAgY29uc3QgY3VycmVudFRhYkFycmF5SW5kZXggPSB0aGlzLiN0YWJzLmZpbmRJbmRleCgodGFiKSA9PlxuICAgICAgdGhpcy50YWJJbmRleGVzRXF1YWwodGFiLnRhYkluZGV4LCB0aGlzLmN1cnJlbnRGb2N1c2VkVGFiQnRuSW5kZXgpXG4gICAgKTtcblxuICAgIGZvciAoXG4gICAgICBsZXQgaSA9IHRoaXMuI2dldE5leHRUYWJBcnJheUluZGV4KGN1cnJlbnRUYWJBcnJheUluZGV4KTtcbiAgICAgIGkgIT09IGN1cnJlbnRUYWJBcnJheUluZGV4O1xuICAgICAgaSA9IHRoaXMuI2dldE5leHRUYWJBcnJheUluZGV4KGkpXG4gICAgKSB7XG4gICAgICBjb25zdCB0YWJCdG4gPSB0YWJCdXR0b25zW2ldO1xuICAgICAgaWYgKCF0YWJCdG4uZGlzYWJsZWQgJiYgdGFiQnRuLnRhYkluZGV4ICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgdGhpcy5zZXRGb2N1c2VkVGFiQnRuSW5kZXgodGFiQnRuLnRhYkluZGV4KTtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBmb2N1c1ByZXZUYWJCdG4odGFiQnV0dG9uczogVGFiQnV0dG9uVmlld01vZGVsW10pOiB2b2lkIHtcbiAgICBjb25zdCBjdXJyZW50VGFiQXJyYXlJbmRleCA9IHRoaXMuI3RhYnMuZmluZEluZGV4KCh0YWIpID0+XG4gICAgICB0aGlzLnRhYkluZGV4ZXNFcXVhbCh0YWIudGFiSW5kZXgsIHRoaXMuY3VycmVudEZvY3VzZWRUYWJCdG5JbmRleClcbiAgICApO1xuXG4gICAgZm9yIChcbiAgICAgIGxldCBpID0gdGhpcy4jZ2V0UHJldlRhYkFycmF5SW5kZXgoY3VycmVudFRhYkFycmF5SW5kZXgpO1xuICAgICAgaSAhPT0gY3VycmVudFRhYkFycmF5SW5kZXg7XG4gICAgICBpID0gdGhpcy4jZ2V0UHJldlRhYkFycmF5SW5kZXgoaSlcbiAgICApIHtcbiAgICAgIGNvbnN0IHRhYkJ0biA9IHRhYkJ1dHRvbnNbaV07XG4gICAgICBpZiAoIXRhYkJ0bi5kaXNhYmxlZCAmJiB0YWJCdG4udGFiSW5kZXggIT09IHVuZGVmaW5lZCkge1xuICAgICAgICB0aGlzLnNldEZvY3VzZWRUYWJCdG5JbmRleCh0YWJCdG4udGFiSW5kZXgpO1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcHVibGljIGZvY3VzRmlyc3RPck5lYXJlc3RUYWJCdG4odGFiQnV0dG9uczogVGFiQnV0dG9uVmlld01vZGVsW10pOiB2b2lkIHtcbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IHRhYkJ1dHRvbnMubGVuZ3RoOyBpKyspIHtcbiAgICAgIGNvbnN0IHRhYkJ0biA9IHRhYkJ1dHRvbnNbaV07XG5cbiAgICAgIGlmICghdGFiQnRuLmRpc2FibGVkICYmIHRhYkJ0bi50YWJJbmRleCAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgIHRoaXMuc2V0Rm9jdXNlZFRhYkJ0bkluZGV4KHRhYkJ0bi50YWJJbmRleCk7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBwdWJsaWMgZm9jdXNMYXN0T3JOZWFyZXN0VGFiQnRuKHRhYkJ1dHRvbnM6IFRhYkJ1dHRvblZpZXdNb2RlbFtdKTogdm9pZCB7XG4gICAgZm9yIChsZXQgaSA9IHRhYkJ1dHRvbnMubGVuZ3RoIC0gMTsgaSA+PSAwOyBpLS0pIHtcbiAgICAgIGNvbnN0IHRhYkJ0biA9IHRhYkJ1dHRvbnNbaV07XG5cbiAgICAgIGlmICghdGFiQnRuLmRpc2FibGVkICYmIHRhYkJ0bi50YWJJbmRleCAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgIHRoaXMuc2V0Rm9jdXNlZFRhYkJ0bkluZGV4KHRhYkJ0bi50YWJJbmRleCk7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBwdWJsaWMgc2V0Rm9jdXNlZFRhYkJ0bkluZGV4KHRhYkluZGV4OiBTa3lUYWJJbmRleCk6IHZvaWQge1xuICAgIHRoaXMuY3VycmVudEZvY3VzZWRUYWJCdG5JbmRleCA9IHRhYkluZGV4O1xuICAgIHRoaXMuI2ZvY3VzZWRUYWJCdG5JbmRleC5uZXh0KHRhYkluZGV4KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZWdpc3RlcnMgYSB0YWIgY29tcG9uZW50LlxuICAgKi9cbiAgcHVibGljIHJlZ2lzdGVyVGFiKHRhYkluZGV4PzogU2t5VGFiSW5kZXgpOiBTa3lUYWJJbmRleCB7XG4gICAgaWYgKHRhYkluZGV4ID09PSB1bmRlZmluZWQpIHtcbiAgICAgIHRhYkluZGV4ID0gdGhpcy4jdGFiQ291bnRlcjtcbiAgICAgIHRoaXMuI3RhYkNvdW50ZXIrKztcbiAgICB9XG5cbiAgICB0aGlzLiN0YWJzLnB1c2goeyB0YWJJbmRleCB9KTtcblxuICAgIHJldHVybiB0YWJJbmRleDtcbiAgfVxuXG4gIHB1YmxpYyB1cGRhdGVUYWJJbmRleChcbiAgICBjdXJyZW50VGFiSW5kZXg6IFNreVRhYkluZGV4LFxuICAgIG5ld1RhYkluZGV4OiBTa3lUYWJJbmRleFxuICApOiB2b2lkIHtcbiAgICBjb25zdCBmb3VuZCA9IHRoaXMuI3RhYnMuZmluZCgodGFiKSA9PlxuICAgICAgdGhpcy50YWJJbmRleGVzRXF1YWwodGFiLnRhYkluZGV4LCBjdXJyZW50VGFiSW5kZXgpXG4gICAgKTtcbiAgICBpZiAoZm91bmQpIHtcbiAgICAgIGZvdW5kLnRhYkluZGV4ID0gbmV3VGFiSW5kZXg7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIHVwZGF0ZUFjdGl2ZVRhYkxheW91dChsYXlvdXQ6IFNreVRhYkxheW91dFR5cGUpOiB2b2lkIHtcbiAgICB0aGlzLiNhY3RpdmVUYWJMYXlvdXQubmV4dChsYXlvdXQpO1xuICB9XG5cbiAgLyoqXG4gICAqIFVucmVnaXN0ZXJzIGEgdGFiIGNvbXBvbmVudC5cbiAgICovXG4gIHB1YmxpYyB1bnJlZ2lzdGVyVGFiKHRhYkluZGV4OiBTa3lUYWJJbmRleCk6IHZvaWQge1xuICAgIGNvbnN0IGluZGV4ID0gdGhpcy4jdGFicy5maW5kSW5kZXgoKHRhYikgPT5cbiAgICAgIHRoaXMudGFiSW5kZXhlc0VxdWFsKHRhYi50YWJJbmRleCwgdGFiSW5kZXgpXG4gICAgKTtcblxuICAgIC8vIE5vdGlmeSB0aGUgdGFic2V0IGNvbXBvbmVudCB3aGVuIGFuIGFjdGl2ZSB0YWIgaXMgdW5yZWdpc3RlcmVkLlxuICAgIGlmICh0aGlzLiNpc1RhYkluZGV4QWN0aXZlKHRoaXMuI3RhYnNbaW5kZXhdPy50YWJJbmRleCkpIHtcbiAgICAgIHRoaXMuI2FjdGl2ZVRhYlVucmVnaXN0ZXJlZC5uZXh0KHtcbiAgICAgICAgYXJyYXlJbmRleDogaW5kZXgsXG4gICAgICB9KTtcbiAgICB9XG5cbiAgICB0aGlzLiN0YWJzLnNwbGljZShpbmRleCwgMSk7XG4gIH1cblxuICAvKipcbiAgICogVW5yZWdpc3RlcnMgYWxsIHRhYiBjb21wb25lbnRzIGF0IG9uY2UuXG4gICAqL1xuICBwdWJsaWMgdW5yZWdpc3RlckFsbCgpOiB2b2lkIHtcbiAgICB0aGlzLiN0YWJzID0gW107XG4gIH1cblxuICAvKipcbiAgICogQ29tcGFyZXMgdHdvIHRhYiBpbmRleGVzIGFuZCByZXR1cm5zIGB0cnVlYCBpZiB0aGV5IGFyZSBlcXVhbC5cbiAgICovXG4gIHB1YmxpYyB0YWJJbmRleGVzRXF1YWwoXG4gICAgdGFiSW5kZXgxOiBTa3lUYWJJbmRleCB8IHVuZGVmaW5lZCxcbiAgICB0YWJJbmRleDI6IFNreVRhYkluZGV4IHwgdW5kZWZpbmVkXG4gICk6IGJvb2xlYW4ge1xuICAgIHJldHVybiAoXG4gICAgICB0YWJJbmRleDEgPT09IHRhYkluZGV4MiB8fFxuICAgICAgKHRhYkluZGV4MSAhPT0gdW5kZWZpbmVkICYmXG4gICAgICAgIHRhYkluZGV4MiAhPT0gdW5kZWZpbmVkICYmXG4gICAgICAgICt0YWJJbmRleDEgPT09ICt0YWJJbmRleDIpXG4gICAgKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBWZXJpZmllcyBpZiBhIHByb3ZpZGVkIHRhYiBpbmRleCBpcyByZWdpc3RlcmVkLlxuICAgKi9cbiAgcHVibGljIGlzVmFsaWRUYWJJbmRleCh0YWJJbmRleDogU2t5VGFiSW5kZXgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy4jdGFicy5zb21lKCh0YWIpID0+XG4gICAgICB0aGlzLnRhYkluZGV4ZXNFcXVhbCh0YWIudGFiSW5kZXgsIHRhYkluZGV4KVxuICAgICk7XG4gIH1cblxuICAvKipcbiAgICogQWN0aXZhdGVzIHRoZSBmaXJzdCByZWdpc3RlcmVkIHRhYi5cbiAgICovXG4gIHB1YmxpYyBhY3RpdmF0ZUZpcnN0VGFiKCk6IFNreVRhYkluZGV4IHwgdW5kZWZpbmVkIHtcbiAgICBjb25zdCBmaXJzdFRhYkluZGV4ID0gdGhpcy4jdGFic1swXSAmJiB0aGlzLiN0YWJzWzBdLnRhYkluZGV4O1xuICAgIGlmIChmaXJzdFRhYkluZGV4ICE9PSB1bmRlZmluZWQpIHtcbiAgICAgIHRoaXMuc2V0QWN0aXZlVGFiSW5kZXgoZmlyc3RUYWJJbmRleCk7XG4gICAgICByZXR1cm4gZmlyc3RUYWJJbmRleDtcbiAgICB9XG4gICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgfVxuXG4gIC8qKlxuICAgKiBBY3RpdmF0ZXMgdGhlIG5leHQgcmVnaXN0ZXJlZCB0YWIsIG9yIHRoZSBwcmV2aW91cyBvbmUgYmFzZWQgb24gYSBwcm92aWRlZCBhcnJheSBpbmRleC5cbiAgICovXG4gIHB1YmxpYyBhY3RpdmF0ZU5lYXJlc3RUYWIoYXJyYXlJbmRleDogbnVtYmVyKTogdm9pZCB7XG4gICAgY29uc3QgbmV3QWN0aXZlVGFiID0gdGhpcy4jdGFic1thcnJheUluZGV4XSB8fCB0aGlzLiN0YWJzW2FycmF5SW5kZXggLSAxXTtcbiAgICBpZiAobmV3QWN0aXZlVGFiKSB7XG4gICAgICB0aGlzLmN1cnJlbnRBY3RpdmVUYWJJbmRleCA9IG5ld0FjdGl2ZVRhYi50YWJJbmRleDtcbiAgICB9XG4gIH1cblxuICAjaXNUYWJJbmRleEFjdGl2ZSh0YWJJbmRleDogU2t5VGFiSW5kZXggfCB1bmRlZmluZWQpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy50YWJJbmRleGVzRXF1YWwodGFiSW5kZXgsIHRoaXMuY3VycmVudEFjdGl2ZVRhYkluZGV4KTtcbiAgfVxuXG4gICNnZXROZXh0VGFiQXJyYXlJbmRleChjdXJyZW50SW5kZXg6IG51bWJlcik6IG51bWJlciB7XG4gICAgbGV0IG5leHRJbmRleCA9IGN1cnJlbnRJbmRleCArIDE7XG5cbiAgICBpZiAobmV4dEluZGV4ID09PSB0aGlzLiN0YWJzLmxlbmd0aCkge1xuICAgICAgbmV4dEluZGV4ID0gMDtcbiAgICB9XG5cbiAgICByZXR1cm4gbmV4dEluZGV4O1xuICB9XG5cbiAgI2dldFByZXZUYWJBcnJheUluZGV4KGN1cnJlbnRJbmRleDogbnVtYmVyKTogbnVtYmVyIHtcbiAgICBsZXQgcHJldkluZGV4ID0gY3VycmVudEluZGV4IC0gMTtcblxuICAgIGlmIChwcmV2SW5kZXggPCAwKSB7XG4gICAgICBwcmV2SW5kZXggPSB0aGlzLiN0YWJzLmxlbmd0aCAtIDE7XG4gICAgfVxuXG4gICAgcmV0dXJuIHByZXZJbmRleDtcbiAgfVxufVxuIl19
|
package/fesm2015/skyux-tabs.mjs
CHANGED
|
@@ -1,12 +1,12 @@
|
|
|
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, Optional, Input, ViewChild, HostListener, ContentChildren, EventEmitter, Output, ViewEncapsulation, Pipe } from '@angular/core';
|
|
4
|
+
import { NgModule, Injectable, Component, ChangeDetectionStrategy, Optional, Input, ViewChild, HostListener, ContentChildren, EventEmitter, Output, ViewEncapsulation, HostBinding, Pipe, inject } 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';
|
|
8
8
|
import * as i1 from '@skyux/core';
|
|
9
|
-
import { SkyMediaBreakpoints, SkyMediaQueryService, SkyIdModule } from '@skyux/core';
|
|
9
|
+
import { SkyMediaBreakpoints, SkyMediaQueryService, SkyIdModule, SkyLayoutHostService } from '@skyux/core';
|
|
10
10
|
import * as i6 from '@skyux/indicators';
|
|
11
11
|
import { SkyIconModule, SkyExpansionIndicatorModule, SkyStatusIndicatorModule } from '@skyux/indicators';
|
|
12
12
|
import * as i3 from '@skyux/i18n';
|
|
@@ -1208,7 +1208,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImpor
|
|
|
1208
1208
|
type: Injectable
|
|
1209
1209
|
}] });
|
|
1210
1210
|
|
|
1211
|
-
var _SkyTabsetService_instances, _SkyTabsetService_activeTabIndex, _SkyTabsetService_focusedTabBtnIndex, _SkyTabsetService_activeTabUnregistered, _SkyTabsetService_tabs, _SkyTabsetService_tabCounter, _SkyTabsetService_isTabIndexActive, _SkyTabsetService_getNextTabArrayIndex, _SkyTabsetService_getPrevTabArrayIndex;
|
|
1211
|
+
var _SkyTabsetService_instances, _SkyTabsetService_activeTabIndex, _SkyTabsetService_focusedTabBtnIndex, _SkyTabsetService_activeTabUnregistered, _SkyTabsetService_activeTabLayout, _SkyTabsetService_tabs, _SkyTabsetService_tabCounter, _SkyTabsetService_isTabIndexActive, _SkyTabsetService_getNextTabArrayIndex, _SkyTabsetService_getPrevTabArrayIndex;
|
|
1212
1212
|
/**
|
|
1213
1213
|
* @internal
|
|
1214
1214
|
*/
|
|
@@ -1222,6 +1222,9 @@ class SkyTabsetService {
|
|
|
1222
1222
|
get focusedTabBtnIndex() {
|
|
1223
1223
|
return __classPrivateFieldGet(this, _SkyTabsetService_focusedTabBtnIndex, "f");
|
|
1224
1224
|
}
|
|
1225
|
+
get activeTabLayout() {
|
|
1226
|
+
return __classPrivateFieldGet(this, _SkyTabsetService_activeTabLayout, "f");
|
|
1227
|
+
}
|
|
1225
1228
|
constructor() {
|
|
1226
1229
|
_SkyTabsetService_instances.add(this);
|
|
1227
1230
|
this.currentActiveTabIndex = 0;
|
|
@@ -1229,6 +1232,7 @@ class SkyTabsetService {
|
|
|
1229
1232
|
_SkyTabsetService_activeTabIndex.set(this, void 0);
|
|
1230
1233
|
_SkyTabsetService_focusedTabBtnIndex.set(this, void 0);
|
|
1231
1234
|
_SkyTabsetService_activeTabUnregistered.set(this, void 0);
|
|
1235
|
+
_SkyTabsetService_activeTabLayout.set(this, new Subject());
|
|
1232
1236
|
_SkyTabsetService_tabs.set(this, []);
|
|
1233
1237
|
_SkyTabsetService_tabCounter.set(this, 0);
|
|
1234
1238
|
__classPrivateFieldSet(this, _SkyTabsetService_activeTabIndex, new BehaviorSubject(0), "f");
|
|
@@ -1239,6 +1243,7 @@ class SkyTabsetService {
|
|
|
1239
1243
|
__classPrivateFieldGet(this, _SkyTabsetService_activeTabIndex, "f").complete();
|
|
1240
1244
|
__classPrivateFieldGet(this, _SkyTabsetService_activeTabUnregistered, "f").complete();
|
|
1241
1245
|
__classPrivateFieldGet(this, _SkyTabsetService_focusedTabBtnIndex, "f").complete();
|
|
1246
|
+
__classPrivateFieldGet(this, _SkyTabsetService_activeTabLayout, "f").complete();
|
|
1242
1247
|
}
|
|
1243
1248
|
/**
|
|
1244
1249
|
* Sets the active tab by its unique `tabIndex` property.
|
|
@@ -1316,6 +1321,9 @@ class SkyTabsetService {
|
|
|
1316
1321
|
found.tabIndex = newTabIndex;
|
|
1317
1322
|
}
|
|
1318
1323
|
}
|
|
1324
|
+
updateActiveTabLayout(layout) {
|
|
1325
|
+
__classPrivateFieldGet(this, _SkyTabsetService_activeTabLayout, "f").next(layout);
|
|
1326
|
+
}
|
|
1319
1327
|
/**
|
|
1320
1328
|
* Unregisters a tab component.
|
|
1321
1329
|
*/
|
|
@@ -1372,7 +1380,7 @@ class SkyTabsetService {
|
|
|
1372
1380
|
}
|
|
1373
1381
|
}
|
|
1374
1382
|
}
|
|
1375
|
-
_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) {
|
|
1383
|
+
_SkyTabsetService_activeTabIndex = new WeakMap(), _SkyTabsetService_focusedTabBtnIndex = new WeakMap(), _SkyTabsetService_activeTabUnregistered = new WeakMap(), _SkyTabsetService_activeTabLayout = new WeakMap(), _SkyTabsetService_tabs = new WeakMap(), _SkyTabsetService_tabCounter = new WeakMap(), _SkyTabsetService_instances = new WeakSet(), _SkyTabsetService_isTabIndexActive = function _SkyTabsetService_isTabIndexActive(tabIndex) {
|
|
1376
1384
|
return this.tabIndexesEqual(tabIndex, this.currentActiveTabIndex);
|
|
1377
1385
|
}, _SkyTabsetService_getNextTabArrayIndex = function _SkyTabsetService_getNextTabArrayIndex(currentIndex) {
|
|
1378
1386
|
let nextIndex = currentIndex + 1;
|
|
@@ -1666,7 +1674,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImpor
|
|
|
1666
1674
|
type: Injectable
|
|
1667
1675
|
}], ctorParameters: function () { return [{ type: i1$1.ActivatedRoute }, { type: i4.Location }, { type: i1$1.Router }]; } });
|
|
1668
1676
|
|
|
1669
|
-
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;
|
|
1677
|
+
var _SkyTabComponent_instances, _SkyTabComponent__active, _SkyTabComponent_activeChange, _SkyTabComponent__permalinkValue, _SkyTabComponent_stateChange, _SkyTabComponent__tabHeading, _SkyTabComponent__tabIndex, _SkyTabComponent__layout, _SkyTabComponent_tabIndexChange, _SkyTabComponent_changeDetector, _SkyTabComponent_permalinkService, _SkyTabComponent_tabsetService, _SkyTabComponent_setPermalinkValueOrDefault;
|
|
1678
|
+
const LAYOUT_CLASS_PREFIX = 'sky-layout-host-';
|
|
1679
|
+
const LAYOUT_DEFAULT = 'none';
|
|
1670
1680
|
let nextId = 0;
|
|
1671
1681
|
class SkyTabComponent {
|
|
1672
1682
|
/**
|
|
@@ -1732,6 +1742,24 @@ class SkyTabComponent {
|
|
|
1732
1742
|
get tabIndex() {
|
|
1733
1743
|
return __classPrivateFieldGet(this, _SkyTabComponent__tabIndex, "f");
|
|
1734
1744
|
}
|
|
1745
|
+
/**
|
|
1746
|
+
* The page layout that corresponds with the top-level component type
|
|
1747
|
+
* used on the page. For laying out custom content, use `auto` to allow
|
|
1748
|
+
* the page contents to expand beyond the bottom of the browser window
|
|
1749
|
+
* or `fit` to constrain the page contents to the available viewport.
|
|
1750
|
+
* @default "auto"
|
|
1751
|
+
*/
|
|
1752
|
+
set layout(value) {
|
|
1753
|
+
const layout = value || LAYOUT_DEFAULT;
|
|
1754
|
+
__classPrivateFieldSet(this, _SkyTabComponent__layout, layout, "f");
|
|
1755
|
+
this.cssClass = `${LAYOUT_CLASS_PREFIX}${layout}`;
|
|
1756
|
+
if (this.active) {
|
|
1757
|
+
__classPrivateFieldGet(this, _SkyTabComponent_tabsetService, "f").updateActiveTabLayout(layout);
|
|
1758
|
+
}
|
|
1759
|
+
}
|
|
1760
|
+
get layout() {
|
|
1761
|
+
return __classPrivateFieldGet(this, _SkyTabComponent__layout, "f");
|
|
1762
|
+
}
|
|
1735
1763
|
/**
|
|
1736
1764
|
* Alerts the tabset component when this component has changes that need to be reflected in the UI.
|
|
1737
1765
|
*/
|
|
@@ -1743,6 +1771,7 @@ class SkyTabComponent {
|
|
|
1743
1771
|
}
|
|
1744
1772
|
constructor(changeDetector, permalinkService, tabsetService) {
|
|
1745
1773
|
_SkyTabComponent_instances.add(this);
|
|
1774
|
+
this.cssClass = `${LAYOUT_CLASS_PREFIX}${LAYOUT_DEFAULT}`;
|
|
1746
1775
|
/**
|
|
1747
1776
|
* Fires when users click the button to close the tab.
|
|
1748
1777
|
* The close button is added to the tab when you specify a listener for this event.
|
|
@@ -1757,6 +1786,7 @@ class SkyTabComponent {
|
|
|
1757
1786
|
_SkyTabComponent_stateChange.set(this, void 0);
|
|
1758
1787
|
_SkyTabComponent__tabHeading.set(this, void 0);
|
|
1759
1788
|
_SkyTabComponent__tabIndex.set(this, void 0);
|
|
1789
|
+
_SkyTabComponent__layout.set(this, LAYOUT_DEFAULT);
|
|
1760
1790
|
_SkyTabComponent_tabIndexChange.set(this, void 0);
|
|
1761
1791
|
_SkyTabComponent_changeDetector.set(this, void 0);
|
|
1762
1792
|
_SkyTabComponent_permalinkService.set(this, void 0);
|
|
@@ -1805,16 +1835,16 @@ class SkyTabComponent {
|
|
|
1805
1835
|
return this.close.observers.length > 0;
|
|
1806
1836
|
}
|
|
1807
1837
|
}
|
|
1808
|
-
_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() {
|
|
1838
|
+
_SkyTabComponent__active = new WeakMap(), _SkyTabComponent_activeChange = new WeakMap(), _SkyTabComponent__permalinkValue = new WeakMap(), _SkyTabComponent_stateChange = new WeakMap(), _SkyTabComponent__tabHeading = new WeakMap(), _SkyTabComponent__tabIndex = new WeakMap(), _SkyTabComponent__layout = new WeakMap(), _SkyTabComponent_tabIndexChange = new WeakMap(), _SkyTabComponent_changeDetector = new WeakMap(), _SkyTabComponent_permalinkService = new WeakMap(), _SkyTabComponent_tabsetService = new WeakMap(), _SkyTabComponent_instances = new WeakSet(), _SkyTabComponent_setPermalinkValueOrDefault = function _SkyTabComponent_setPermalinkValueOrDefault() {
|
|
1809
1839
|
this.permalinkValueOrDefault =
|
|
1810
1840
|
__classPrivateFieldGet(this, _SkyTabComponent_permalinkService, "f").urlify(this.permalinkValue) ||
|
|
1811
1841
|
__classPrivateFieldGet(this, _SkyTabComponent_permalinkService, "f").urlify(this.tabHeading);
|
|
1812
1842
|
};
|
|
1813
1843
|
SkyTabComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: SkyTabComponent, deps: [{ token: i0.ChangeDetectorRef }, { token: SkyTabsetPermalinkService }, { token: SkyTabsetService }], target: i0.ɵɵFactoryTarget.Component });
|
|
1814
|
-
SkyTabComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.9", type: SkyTabComponent, selector: "sky-tab", inputs: { active: "active", disabled: "disabled", permalinkValue: "permalinkValue", tabHeaderCount: "tabHeaderCount", tabHeading: "tabHeading", tabIndex: "tabIndex" }, 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 });
|
|
1844
|
+
SkyTabComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.9", type: SkyTabComponent, selector: "sky-tab", inputs: { active: "active", disabled: "disabled", permalinkValue: "permalinkValue", tabHeaderCount: "tabHeaderCount", tabHeading: "tabHeading", tabIndex: "tabIndex", layout: "layout" }, outputs: { close: "close" }, host: { properties: { "class": "this.cssClass" } }, usesOnChanges: true, ngImport: i0, template: "<div\n class=\"sky-tab\"\n role=\"tabpanel\"\n [attr.aria-labelledby]=\"tabButtonId\"\n [hidden]=\"!showContent\"\n [id]=\"tabPanelId\"\n>\n <ng-content></ng-content>\n</div>\n", styles: [":host.sky-layout-host-fit{display:flex;flex-grow:1;position:static}:host.sky-layout-host-fit .sky-tab{flex-grow:1;position:relative}.sky-tab{flex-grow:var(--sky-layout-host-content-flex-grow, 0);overflow:var(--sky-layout-host-content-overflow, visible);padding:var(--sky-layout-host-content-spacing, 0);position:var(--sky-layout-host-content-position, static)}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
1815
1845
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: SkyTabComponent, decorators: [{
|
|
1816
1846
|
type: Component,
|
|
1817
|
-
args: [{ selector: 'sky-tab', changeDetection: ChangeDetectionStrategy.OnPush, template: "<div\n class=\"sky-tab\"\n role=\"tabpanel\"\n [attr.aria-labelledby]=\"tabButtonId\"\n [hidden]=\"!showContent\"\n [id]=\"tabPanelId\"\n>\n <ng-content></ng-content>\n</div>\n" }]
|
|
1847
|
+
args: [{ selector: 'sky-tab', changeDetection: ChangeDetectionStrategy.OnPush, template: "<div\n class=\"sky-tab\"\n role=\"tabpanel\"\n [attr.aria-labelledby]=\"tabButtonId\"\n [hidden]=\"!showContent\"\n [id]=\"tabPanelId\"\n>\n <ng-content></ng-content>\n</div>\n", styles: [":host.sky-layout-host-fit{display:flex;flex-grow:1;position:static}:host.sky-layout-host-fit .sky-tab{flex-grow:1;position:relative}.sky-tab{flex-grow:var(--sky-layout-host-content-flex-grow, 0);overflow:var(--sky-layout-host-content-overflow, visible);padding:var(--sky-layout-host-content-spacing, 0);position:var(--sky-layout-host-content-position, static)}\n"] }]
|
|
1818
1848
|
}], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: SkyTabsetPermalinkService }, { type: SkyTabsetService }]; }, propDecorators: { active: [{
|
|
1819
1849
|
type: Input
|
|
1820
1850
|
}], disabled: [{
|
|
@@ -1827,6 +1857,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImpor
|
|
|
1827
1857
|
type: Input
|
|
1828
1858
|
}], tabIndex: [{
|
|
1829
1859
|
type: Input
|
|
1860
|
+
}], layout: [{
|
|
1861
|
+
type: Input
|
|
1862
|
+
}], cssClass: [{
|
|
1863
|
+
type: HostBinding,
|
|
1864
|
+
args: ['class']
|
|
1830
1865
|
}], close: [{
|
|
1831
1866
|
type: Output
|
|
1832
1867
|
}] } });
|
|
@@ -2059,7 +2094,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImpor
|
|
|
2059
2094
|
type: Injectable
|
|
2060
2095
|
}], ctorParameters: function () { return []; } });
|
|
2061
2096
|
|
|
2062
|
-
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;
|
|
2097
|
+
var _SkyTabsetComponent_instances, _SkyTabsetComponent_ngUnsubscribe, _SkyTabsetComponent_tabComponentsChangeUnsubscribe, _SkyTabsetComponent_tabComponentsStateChangeUnsubscribe, _SkyTabsetComponent__active, _SkyTabsetComponent__permalinkId, _SkyTabsetComponent__tabs, _SkyTabsetComponent__tabDisplayMode, _SkyTabsetComponent__tabStyle, _SkyTabsetComponent_changeDetector, _SkyTabsetComponent_elementRef, _SkyTabsetComponent_adapterService, _SkyTabsetComponent_permalinkService, _SkyTabsetComponent_tabsetService, _SkyTabsetComponent_layoutHostSvc, _SkyTabsetComponent_getInitialTabIndex, _SkyTabsetComponent_listenActiveIndexChange, _SkyTabsetComponent_updateLayout, _SkyTabsetComponent_listenTabComponentsStateChange, _SkyTabsetComponent_initTabComponents, _SkyTabsetComponent_resetTabComponents, _SkyTabsetComponent_emitTabIndexChange, _SkyTabsetComponent_unsubscribeTabComponentsStateChange, _SkyTabsetComponent_listenTabButtonsOverflowChange, _SkyTabsetComponent_listenLocationPopStateChange, _SkyTabsetComponent_setActiveTabIndexByPermalinkId, _SkyTabsetComponent_getActiveTabIndexByPermalinkId, _SkyTabsetComponent_getActiveTabComponent, _SkyTabsetComponent_createTabButtons, _SkyTabsetComponent_updateTabButtons, _SkyTabsetComponent_updateTabsetComponent;
|
|
2063
2098
|
class SkyTabsetComponent {
|
|
2064
2099
|
/**
|
|
2065
2100
|
* Activates a tab by its `tabIndex` property.
|
|
@@ -2161,6 +2196,7 @@ class SkyTabsetComponent {
|
|
|
2161
2196
|
* This event only applies when `tabStyle` is `"tabs"`.
|
|
2162
2197
|
*/
|
|
2163
2198
|
this.tabIndexesChange = new EventEmitter();
|
|
2199
|
+
this.cssClass = 'sky-tabset-layout-none';
|
|
2164
2200
|
this.dropdownTriggerButtonText = '';
|
|
2165
2201
|
this.tabButtons = [];
|
|
2166
2202
|
_SkyTabsetComponent_ngUnsubscribe.set(this, new Subject());
|
|
@@ -2176,6 +2212,7 @@ class SkyTabsetComponent {
|
|
|
2176
2212
|
_SkyTabsetComponent_adapterService.set(this, void 0);
|
|
2177
2213
|
_SkyTabsetComponent_permalinkService.set(this, void 0);
|
|
2178
2214
|
_SkyTabsetComponent_tabsetService.set(this, void 0);
|
|
2215
|
+
_SkyTabsetComponent_layoutHostSvc.set(this, inject(SkyLayoutHostService, { optional: true }));
|
|
2179
2216
|
__classPrivateFieldSet(this, _SkyTabsetComponent_changeDetector, changeDetector, "f");
|
|
2180
2217
|
__classPrivateFieldSet(this, _SkyTabsetComponent_elementRef, elementRef, "f");
|
|
2181
2218
|
__classPrivateFieldSet(this, _SkyTabsetComponent_adapterService, adapterService, "f");
|
|
@@ -2197,6 +2234,11 @@ class SkyTabsetComponent {
|
|
|
2197
2234
|
__classPrivateFieldGet(this, _SkyTabsetComponent_tabsetService, "f").activateNearestTab(tab.arrayIndex);
|
|
2198
2235
|
});
|
|
2199
2236
|
});
|
|
2237
|
+
__classPrivateFieldGet(this, _SkyTabsetComponent_tabsetService, "f").activeTabLayout
|
|
2238
|
+
.pipe(takeUntil(__classPrivateFieldGet(this, _SkyTabsetComponent_ngUnsubscribe, "f")))
|
|
2239
|
+
.subscribe((layout) => {
|
|
2240
|
+
__classPrivateFieldGet(this, _SkyTabsetComponent_instances, "m", _SkyTabsetComponent_updateLayout).call(this, layout);
|
|
2241
|
+
});
|
|
2200
2242
|
// Let the tabset render the initial active index before listening for changes.
|
|
2201
2243
|
setTimeout(() => {
|
|
2202
2244
|
__classPrivateFieldGet(this, _SkyTabsetComponent_instances, "m", _SkyTabsetComponent_listenTabComponentsStateChange).call(this);
|
|
@@ -2244,7 +2286,7 @@ class SkyTabsetComponent {
|
|
|
2244
2286
|
__classPrivateFieldGet(this, _SkyTabsetComponent_tabsetService, "f").focusLastOrNearestTabBtn(this.tabButtons);
|
|
2245
2287
|
}
|
|
2246
2288
|
}
|
|
2247
|
-
_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() {
|
|
2289
|
+
_SkyTabsetComponent_ngUnsubscribe = new WeakMap(), _SkyTabsetComponent_tabComponentsChangeUnsubscribe = new WeakMap(), _SkyTabsetComponent_tabComponentsStateChangeUnsubscribe = new WeakMap(), _SkyTabsetComponent__active = new WeakMap(), _SkyTabsetComponent__permalinkId = new WeakMap(), _SkyTabsetComponent__tabs = new WeakMap(), _SkyTabsetComponent__tabDisplayMode = new WeakMap(), _SkyTabsetComponent__tabStyle = new WeakMap(), _SkyTabsetComponent_changeDetector = new WeakMap(), _SkyTabsetComponent_elementRef = new WeakMap(), _SkyTabsetComponent_adapterService = new WeakMap(), _SkyTabsetComponent_permalinkService = new WeakMap(), _SkyTabsetComponent_tabsetService = new WeakMap(), _SkyTabsetComponent_layoutHostSvc = new WeakMap(), _SkyTabsetComponent_instances = new WeakSet(), _SkyTabsetComponent_getInitialTabIndex = function _SkyTabsetComponent_getInitialTabIndex() {
|
|
2248
2290
|
var _a;
|
|
2249
2291
|
let activeIndex = __classPrivateFieldGet(this, _SkyTabsetComponent_instances, "m", _SkyTabsetComponent_getActiveTabIndexByPermalinkId).call(this);
|
|
2250
2292
|
if (activeIndex === undefined) {
|
|
@@ -2259,7 +2301,16 @@ _SkyTabsetComponent_ngUnsubscribe = new WeakMap(), _SkyTabsetComponent_tabCompon
|
|
|
2259
2301
|
.pipe(distinctUntilChanged(), takeUntil(__classPrivateFieldGet(this, _SkyTabsetComponent_ngUnsubscribe, "f")))
|
|
2260
2302
|
.subscribe((activeIndex) => {
|
|
2261
2303
|
__classPrivateFieldGet(this, _SkyTabsetComponent_instances, "m", _SkyTabsetComponent_updateTabsetComponent).call(this, activeIndex);
|
|
2304
|
+
const activeTab = __classPrivateFieldGet(this, _SkyTabsetComponent_instances, "m", _SkyTabsetComponent_getActiveTabComponent).call(this);
|
|
2305
|
+
__classPrivateFieldGet(this, _SkyTabsetComponent_instances, "m", _SkyTabsetComponent_updateLayout).call(this, activeTab === null || activeTab === void 0 ? void 0 : activeTab.layout);
|
|
2262
2306
|
});
|
|
2307
|
+
}, _SkyTabsetComponent_updateLayout = function _SkyTabsetComponent_updateLayout(layout) {
|
|
2308
|
+
if (__classPrivateFieldGet(this, _SkyTabsetComponent_layoutHostSvc, "f") && layout) {
|
|
2309
|
+
__classPrivateFieldGet(this, _SkyTabsetComponent_layoutHostSvc, "f").setHostLayoutForChild({
|
|
2310
|
+
layout,
|
|
2311
|
+
});
|
|
2312
|
+
this.cssClass = `sky-tabset-layout-${layout}`;
|
|
2313
|
+
}
|
|
2263
2314
|
}, _SkyTabsetComponent_listenTabComponentsStateChange = function _SkyTabsetComponent_listenTabComponentsStateChange() {
|
|
2264
2315
|
if (this.tabs) {
|
|
2265
2316
|
combineLatest(this.tabs.map((tab) => tab.activeChange))
|
|
@@ -2419,18 +2470,18 @@ _SkyTabsetComponent_ngUnsubscribe = new WeakMap(), _SkyTabsetComponent_tabCompon
|
|
|
2419
2470
|
}
|
|
2420
2471
|
};
|
|
2421
2472
|
SkyTabsetComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: SkyTabsetComponent, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: SkyTabsetAdapterService }, { token: SkyTabsetPermalinkService }, { token: SkyTabsetService }], target: i0.ɵɵFactoryTarget.Component });
|
|
2422
|
-
SkyTabsetComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.9", type: SkyTabsetComponent, selector: "sky-tabset", inputs: { active: "active", ariaLabel: "ariaLabel", ariaLabelledBy: "ariaLabelledBy", permalinkId: "permalinkId", tabStyle: "tabStyle" }, outputs: { activeChange: "activeChange", newTab: "newTab", openTab: "openTab", tabIndexesChange: "tabIndexesChange" }, providers: [
|
|
2473
|
+
SkyTabsetComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.9", type: SkyTabsetComponent, selector: "sky-tabset", inputs: { active: "active", ariaLabel: "ariaLabel", ariaLabelledBy: "ariaLabelledBy", permalinkId: "permalinkId", tabStyle: "tabStyle" }, outputs: { activeChange: "activeChange", newTab: "newTab", openTab: "openTab", tabIndexesChange: "tabIndexesChange" }, host: { properties: { "class": "this.cssClass" } }, providers: [
|
|
2423
2474
|
SkyTabsetAdapterService,
|
|
2424
2475
|
SkyTabsetPermalinkService,
|
|
2425
2476
|
SkyTabsetService,
|
|
2426
|
-
], queries: [{ propertyName: "tabs", predicate: SkyTabComponent }], ngImport: i0, template: "<div\n class=\"sky-tabset\"\n role=\"tablist\"\n [attr.aria-label]=\"ariaLabel\"\n [attr.aria-labelledby]=\"ariaLabelledBy\"\n [ngClass]=\"\n 'sky-tabset-mode-' + tabDisplayMode + ' sky-tabset-style-' + tabStyle\n \"\n (window:resize)=\"onWindowResize()\"\n (keydown.arrowright)=\"onRightKeyDown()\"\n (keydown.arrowleft)=\"onLeftKeyDown()\"\n (keydown.home)=\"onHomeKeyDown()\"\n (keydown.end)=\"onEndKeyDown()\"\n>\n <span class=\"sky-tabset-dropdown\">\n <sky-dropdown *ngIf=\"tabDisplayMode === 'dropdown'\" buttonType=\"tab\">\n <sky-dropdown-button>\n {{ dropdownTriggerButtonText }}\n </sky-dropdown-button>\n <sky-dropdown-menu>\n <sky-dropdown-item\n *ngFor=\"let tabButton of tabButtons\"\n class=\"sky-tab-dropdown-menu-item\"\n >\n <div\n class=\"sky-tab-dropdown-item\"\n [ngClass]=\"{\n 'sky-tab-dropdown-item-selected': tabButton.active\n }\"\n >\n <ng-container\n *ngTemplateOutlet=\"\n tabButtonTemplate;\n context: {\n $implicit: tabButton\n }\n \"\n ></ng-container>\n </div>\n </sky-dropdown-item>\n </sky-dropdown-menu>\n </sky-dropdown>\n </span>\n <span class=\"sky-tabset-tabs\">\n <ng-container *ngFor=\"let tabButton of tabButtons\">\n <ng-container\n *ngTemplateOutlet=\"\n tabButtonTemplate;\n context: {\n $implicit: tabButton\n }\n \"\n ></ng-container>\n </ng-container>\n </span>\n <span class=\"sky-tabset-btns\">\n <button\n *ngIf=\"newTab.observers.length > 0\"\n class=\"sky-btn sky-btn-icon sky-tabset-btn-new sky-margin-inline-compact\"\n type=\"button\"\n [attr.aria-label]=\"'skyux_tab_add' | skyLibResources\"\n [skyThemeClass]=\"{\n 'sky-margin-inline-sm': 'modern'\n }\"\n (click)=\"onNewTabClick()\"\n >\n <sky-icon icon=\"plus-circle\" size=\"lg\"> </sky-icon>\n </button>\n <button\n *ngIf=\"openTab.observers.length > 0\"\n class=\"sky-btn sky-btn-icon sky-tabset-btn-open sky-margin-inline-compact\"\n type=\"button\"\n [attr.aria-label]=\"'skyux_tab_open' | skyLibResources\"\n [skyThemeClass]=\"{\n 'sky-margin-inline-sm': 'modern'\n }\"\n (click)=\"onOpenTabClick()\"\n >\n <sky-icon icon=\"folder-open-o\" size=\"lg\"> </sky-icon>\n </button>\n </span>\n</div>\n<ng-content></ng-content>\n\n<ng-template let-tabButton #tabButtonTemplate>\n <sky-tab-button\n [active]=\"tabButton.active\"\n [ariaControls]=\"tabButton.ariaControls\"\n [buttonHref]=\"tabButton.buttonHref\"\n [buttonId]=\"tabButton.buttonId\"\n [buttonText]=\"tabButton.buttonText\"\n [buttonTextCount]=\"tabButton.buttonTextCount\"\n [closeable]=\"tabButton.closeable\"\n [disabled]=\"tabButton.disabled\"\n [tabIndex]=\"tabButton.tabIndex\"\n [tabStyle]=\"tabStyle\"\n [tabNumber]=\"tabButton.tabNumber\"\n [totalTabsCount]=\"tabButton.totalTabsCount\"\n (buttonClick)=\"onTabButtonClick(tabButton)\"\n (closeClick)=\"onTabCloseClick(tabButton)\"\n ></sky-tab-button>\n</ng-template>\n", styles: [".sky-tabset{--sky-tabset-margin: 0;align-items:center;border-bottom:2px solid #0974a1;display:flex;list-style-type:none;margin:var(--sky-tabset-margin);
|
|
2477
|
+
], queries: [{ propertyName: "tabs", predicate: SkyTabComponent }], ngImport: i0, template: "<div\n class=\"sky-tabset\"\n role=\"tablist\"\n [attr.aria-label]=\"ariaLabel\"\n [attr.aria-labelledby]=\"ariaLabelledBy\"\n [ngClass]=\"\n 'sky-tabset-mode-' + tabDisplayMode + ' sky-tabset-style-' + tabStyle\n \"\n (window:resize)=\"onWindowResize()\"\n (keydown.arrowright)=\"onRightKeyDown()\"\n (keydown.arrowleft)=\"onLeftKeyDown()\"\n (keydown.home)=\"onHomeKeyDown()\"\n (keydown.end)=\"onEndKeyDown()\"\n>\n <span class=\"sky-tabset-dropdown\">\n <sky-dropdown *ngIf=\"tabDisplayMode === 'dropdown'\" buttonType=\"tab\">\n <sky-dropdown-button>\n {{ dropdownTriggerButtonText }}\n </sky-dropdown-button>\n <sky-dropdown-menu>\n <sky-dropdown-item\n *ngFor=\"let tabButton of tabButtons\"\n class=\"sky-tab-dropdown-menu-item\"\n >\n <div\n class=\"sky-tab-dropdown-item\"\n [ngClass]=\"{\n 'sky-tab-dropdown-item-selected': tabButton.active\n }\"\n >\n <ng-container\n *ngTemplateOutlet=\"\n tabButtonTemplate;\n context: {\n $implicit: tabButton\n }\n \"\n ></ng-container>\n </div>\n </sky-dropdown-item>\n </sky-dropdown-menu>\n </sky-dropdown>\n </span>\n <span class=\"sky-tabset-tabs\">\n <ng-container *ngFor=\"let tabButton of tabButtons\">\n <ng-container\n *ngTemplateOutlet=\"\n tabButtonTemplate;\n context: {\n $implicit: tabButton\n }\n \"\n ></ng-container>\n </ng-container>\n </span>\n <span class=\"sky-tabset-btns\">\n <button\n *ngIf=\"newTab.observers.length > 0\"\n class=\"sky-btn sky-btn-icon sky-tabset-btn-new sky-margin-inline-compact\"\n type=\"button\"\n [attr.aria-label]=\"'skyux_tab_add' | skyLibResources\"\n [skyThemeClass]=\"{\n 'sky-margin-inline-sm': 'modern'\n }\"\n (click)=\"onNewTabClick()\"\n >\n <sky-icon icon=\"plus-circle\" size=\"lg\"> </sky-icon>\n </button>\n <button\n *ngIf=\"openTab.observers.length > 0\"\n class=\"sky-btn sky-btn-icon sky-tabset-btn-open sky-margin-inline-compact\"\n type=\"button\"\n [attr.aria-label]=\"'skyux_tab_open' | skyLibResources\"\n [skyThemeClass]=\"{\n 'sky-margin-inline-sm': 'modern'\n }\"\n (click)=\"onOpenTabClick()\"\n >\n <sky-icon icon=\"folder-open-o\" size=\"lg\"> </sky-icon>\n </button>\n </span>\n</div>\n<ng-content></ng-content>\n\n<ng-template let-tabButton #tabButtonTemplate>\n <sky-tab-button\n [active]=\"tabButton.active\"\n [ariaControls]=\"tabButton.ariaControls\"\n [buttonHref]=\"tabButton.buttonHref\"\n [buttonId]=\"tabButton.buttonId\"\n [buttonText]=\"tabButton.buttonText\"\n [buttonTextCount]=\"tabButton.buttonTextCount\"\n [closeable]=\"tabButton.closeable\"\n [disabled]=\"tabButton.disabled\"\n [tabIndex]=\"tabButton.tabIndex\"\n [tabStyle]=\"tabStyle\"\n [tabNumber]=\"tabButton.tabNumber\"\n [totalTabsCount]=\"tabButton.totalTabsCount\"\n (buttonClick)=\"onTabButtonClick(tabButton)\"\n (closeClick)=\"onTabCloseClick(tabButton)\"\n ></sky-tab-button>\n</ng-template>\n", styles: ["sky-tabset.sky-tabset-layout-fit{position:absolute;inset:0;display:flex;flex-direction:column}sky-tabset.sky-tabset-layout-fit .sky-tabset{flex-grow:0}.sky-tabset{--sky-tabset-margin: 0;align-items:center;border-bottom:2px solid #0974a1;display:flex;list-style-type:none;margin:var(--sky-tabset-margin);padding:0 0 0 var(--sky-layout-host-tab-content-spacing, 15px);white-space:nowrap;flex-grow:var(--sky-layout-host-content-flex-grow, 0);overflow:var(--sky-layout-host-content-overflow, hidden);position:var(--sky-layout-host-content-position, static)}.sky-tabset.sky-tabset-style-wizard{border-bottom:none;padding-left:0}.sky-modal-content .sky-tabset-style-tabs{--sky-tabset-margin: var( --sky-compat-tabset-tabs-modal-margin, 0 -15px 20px )}.sky-modal-content .sky-tabset-style-wizard{--sky-tabset-margin: var( --sky-compat-tabset-wizard-modal-margin, 0 0 20px )}.sky-tabset-btns{order:1;padding-left:10px}.sky-tabset-dropdown{order:0;max-width:100%}.sky-tabset-mode-dropdown{line-height:0}.sky-tabset-mode-dropdown .sky-tabset-tabs{visibility:hidden;order:2}.sky-tab-dropdown-menu-item sky-tab-button{display:flex;min-width:300px}.sky-tab-dropdown-menu-item .sky-dropdown-item{margin:0}.sky-tab-dropdown-menu-item .sky-btn-tab-wrapper{width:100%;margin-right:0}.sky-tab-dropdown-menu-item .sky-btn-tab{margin:0;border-radius:0;width:100%;display:flex}.sky-tab-dropdown-menu-item .sky-btn-tab>.sky-tab-heading{flex:1 1 auto}.sky-tab-dropdown-menu-item .sky-btn-tab>.sky-btn-tab-close{flex:0 1 auto}.sky-tabset-tabs{order:0;white-space:nowrap}.sky-tabset-btn-new,.sky-tabset-btn-open{color:#0974a1}.sky-theme-modern .sky-modal-content .sky-tabset{--sky-tabset-margin: -10px -30px 30px;padding-left:30px;padding-right:30px}.sky-theme-modern .sky-tabset{border-bottom:1px solid #d2d2d2;overflow:visible}.sky-theme-modern .sky-tab-dropdown-menu-item .sky-btn-tab-wrapper{margin-right:0}\n"], dependencies: [{ kind: "directive", type: i4.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i4.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i4.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: i5.λ2, selector: "sky-dropdown-button" }, { kind: "component", type: i5.λ3, selector: "sky-dropdown", inputs: ["buttonStyle", "buttonType", "disabled", "dismissOnBlur", "label", "horizontalAlignment", "messageStream", "title", "trigger"] }, { kind: "component", type: i5.λ1, selector: "sky-dropdown-item", inputs: ["ariaRole"] }, { kind: "component", type: i5.λ4, selector: "sky-dropdown-menu", inputs: ["ariaLabelledBy", "ariaRole", "useNativeFocus"], outputs: ["menuChanges"] }, { kind: "component", type: i6.λ4, selector: "sky-icon", inputs: ["icon", "iconType", "size", "fixedWidth", "variant"] }, { kind: "directive", type: i7.λ2, selector: "[skyThemeClass]", inputs: ["class", "skyThemeClass"] }, { kind: "component", type: SkyTabButtonComponent, selector: "sky-tab-button", inputs: ["active", "ariaControls", "buttonHref", "buttonId", "buttonText", "buttonTextCount", "closeable", "disabled", "tabIndex", "tabNumber", "totalTabsCount", "tabStyle"], outputs: ["buttonClick", "closeClick"] }, { kind: "pipe", type: i3.SkyLibResourcesPipe, name: "skyLibResources" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
|
|
2427
2478
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: SkyTabsetComponent, decorators: [{
|
|
2428
2479
|
type: Component,
|
|
2429
2480
|
args: [{ selector: 'sky-tabset', providers: [
|
|
2430
2481
|
SkyTabsetAdapterService,
|
|
2431
2482
|
SkyTabsetPermalinkService,
|
|
2432
2483
|
SkyTabsetService,
|
|
2433
|
-
], changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, template: "<div\n class=\"sky-tabset\"\n role=\"tablist\"\n [attr.aria-label]=\"ariaLabel\"\n [attr.aria-labelledby]=\"ariaLabelledBy\"\n [ngClass]=\"\n 'sky-tabset-mode-' + tabDisplayMode + ' sky-tabset-style-' + tabStyle\n \"\n (window:resize)=\"onWindowResize()\"\n (keydown.arrowright)=\"onRightKeyDown()\"\n (keydown.arrowleft)=\"onLeftKeyDown()\"\n (keydown.home)=\"onHomeKeyDown()\"\n (keydown.end)=\"onEndKeyDown()\"\n>\n <span class=\"sky-tabset-dropdown\">\n <sky-dropdown *ngIf=\"tabDisplayMode === 'dropdown'\" buttonType=\"tab\">\n <sky-dropdown-button>\n {{ dropdownTriggerButtonText }}\n </sky-dropdown-button>\n <sky-dropdown-menu>\n <sky-dropdown-item\n *ngFor=\"let tabButton of tabButtons\"\n class=\"sky-tab-dropdown-menu-item\"\n >\n <div\n class=\"sky-tab-dropdown-item\"\n [ngClass]=\"{\n 'sky-tab-dropdown-item-selected': tabButton.active\n }\"\n >\n <ng-container\n *ngTemplateOutlet=\"\n tabButtonTemplate;\n context: {\n $implicit: tabButton\n }\n \"\n ></ng-container>\n </div>\n </sky-dropdown-item>\n </sky-dropdown-menu>\n </sky-dropdown>\n </span>\n <span class=\"sky-tabset-tabs\">\n <ng-container *ngFor=\"let tabButton of tabButtons\">\n <ng-container\n *ngTemplateOutlet=\"\n tabButtonTemplate;\n context: {\n $implicit: tabButton\n }\n \"\n ></ng-container>\n </ng-container>\n </span>\n <span class=\"sky-tabset-btns\">\n <button\n *ngIf=\"newTab.observers.length > 0\"\n class=\"sky-btn sky-btn-icon sky-tabset-btn-new sky-margin-inline-compact\"\n type=\"button\"\n [attr.aria-label]=\"'skyux_tab_add' | skyLibResources\"\n [skyThemeClass]=\"{\n 'sky-margin-inline-sm': 'modern'\n }\"\n (click)=\"onNewTabClick()\"\n >\n <sky-icon icon=\"plus-circle\" size=\"lg\"> </sky-icon>\n </button>\n <button\n *ngIf=\"openTab.observers.length > 0\"\n class=\"sky-btn sky-btn-icon sky-tabset-btn-open sky-margin-inline-compact\"\n type=\"button\"\n [attr.aria-label]=\"'skyux_tab_open' | skyLibResources\"\n [skyThemeClass]=\"{\n 'sky-margin-inline-sm': 'modern'\n }\"\n (click)=\"onOpenTabClick()\"\n >\n <sky-icon icon=\"folder-open-o\" size=\"lg\"> </sky-icon>\n </button>\n </span>\n</div>\n<ng-content></ng-content>\n\n<ng-template let-tabButton #tabButtonTemplate>\n <sky-tab-button\n [active]=\"tabButton.active\"\n [ariaControls]=\"tabButton.ariaControls\"\n [buttonHref]=\"tabButton.buttonHref\"\n [buttonId]=\"tabButton.buttonId\"\n [buttonText]=\"tabButton.buttonText\"\n [buttonTextCount]=\"tabButton.buttonTextCount\"\n [closeable]=\"tabButton.closeable\"\n [disabled]=\"tabButton.disabled\"\n [tabIndex]=\"tabButton.tabIndex\"\n [tabStyle]=\"tabStyle\"\n [tabNumber]=\"tabButton.tabNumber\"\n [totalTabsCount]=\"tabButton.totalTabsCount\"\n (buttonClick)=\"onTabButtonClick(tabButton)\"\n (closeClick)=\"onTabCloseClick(tabButton)\"\n ></sky-tab-button>\n</ng-template>\n", styles: [".sky-tabset{--sky-tabset-margin: 0;align-items:center;border-bottom:2px solid #0974a1;display:flex;list-style-type:none;margin:var(--sky-tabset-margin);
|
|
2484
|
+
], changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, template: "<div\n class=\"sky-tabset\"\n role=\"tablist\"\n [attr.aria-label]=\"ariaLabel\"\n [attr.aria-labelledby]=\"ariaLabelledBy\"\n [ngClass]=\"\n 'sky-tabset-mode-' + tabDisplayMode + ' sky-tabset-style-' + tabStyle\n \"\n (window:resize)=\"onWindowResize()\"\n (keydown.arrowright)=\"onRightKeyDown()\"\n (keydown.arrowleft)=\"onLeftKeyDown()\"\n (keydown.home)=\"onHomeKeyDown()\"\n (keydown.end)=\"onEndKeyDown()\"\n>\n <span class=\"sky-tabset-dropdown\">\n <sky-dropdown *ngIf=\"tabDisplayMode === 'dropdown'\" buttonType=\"tab\">\n <sky-dropdown-button>\n {{ dropdownTriggerButtonText }}\n </sky-dropdown-button>\n <sky-dropdown-menu>\n <sky-dropdown-item\n *ngFor=\"let tabButton of tabButtons\"\n class=\"sky-tab-dropdown-menu-item\"\n >\n <div\n class=\"sky-tab-dropdown-item\"\n [ngClass]=\"{\n 'sky-tab-dropdown-item-selected': tabButton.active\n }\"\n >\n <ng-container\n *ngTemplateOutlet=\"\n tabButtonTemplate;\n context: {\n $implicit: tabButton\n }\n \"\n ></ng-container>\n </div>\n </sky-dropdown-item>\n </sky-dropdown-menu>\n </sky-dropdown>\n </span>\n <span class=\"sky-tabset-tabs\">\n <ng-container *ngFor=\"let tabButton of tabButtons\">\n <ng-container\n *ngTemplateOutlet=\"\n tabButtonTemplate;\n context: {\n $implicit: tabButton\n }\n \"\n ></ng-container>\n </ng-container>\n </span>\n <span class=\"sky-tabset-btns\">\n <button\n *ngIf=\"newTab.observers.length > 0\"\n class=\"sky-btn sky-btn-icon sky-tabset-btn-new sky-margin-inline-compact\"\n type=\"button\"\n [attr.aria-label]=\"'skyux_tab_add' | skyLibResources\"\n [skyThemeClass]=\"{\n 'sky-margin-inline-sm': 'modern'\n }\"\n (click)=\"onNewTabClick()\"\n >\n <sky-icon icon=\"plus-circle\" size=\"lg\"> </sky-icon>\n </button>\n <button\n *ngIf=\"openTab.observers.length > 0\"\n class=\"sky-btn sky-btn-icon sky-tabset-btn-open sky-margin-inline-compact\"\n type=\"button\"\n [attr.aria-label]=\"'skyux_tab_open' | skyLibResources\"\n [skyThemeClass]=\"{\n 'sky-margin-inline-sm': 'modern'\n }\"\n (click)=\"onOpenTabClick()\"\n >\n <sky-icon icon=\"folder-open-o\" size=\"lg\"> </sky-icon>\n </button>\n </span>\n</div>\n<ng-content></ng-content>\n\n<ng-template let-tabButton #tabButtonTemplate>\n <sky-tab-button\n [active]=\"tabButton.active\"\n [ariaControls]=\"tabButton.ariaControls\"\n [buttonHref]=\"tabButton.buttonHref\"\n [buttonId]=\"tabButton.buttonId\"\n [buttonText]=\"tabButton.buttonText\"\n [buttonTextCount]=\"tabButton.buttonTextCount\"\n [closeable]=\"tabButton.closeable\"\n [disabled]=\"tabButton.disabled\"\n [tabIndex]=\"tabButton.tabIndex\"\n [tabStyle]=\"tabStyle\"\n [tabNumber]=\"tabButton.tabNumber\"\n [totalTabsCount]=\"tabButton.totalTabsCount\"\n (buttonClick)=\"onTabButtonClick(tabButton)\"\n (closeClick)=\"onTabCloseClick(tabButton)\"\n ></sky-tab-button>\n</ng-template>\n", styles: ["sky-tabset.sky-tabset-layout-fit{position:absolute;inset:0;display:flex;flex-direction:column}sky-tabset.sky-tabset-layout-fit .sky-tabset{flex-grow:0}.sky-tabset{--sky-tabset-margin: 0;align-items:center;border-bottom:2px solid #0974a1;display:flex;list-style-type:none;margin:var(--sky-tabset-margin);padding:0 0 0 var(--sky-layout-host-tab-content-spacing, 15px);white-space:nowrap;flex-grow:var(--sky-layout-host-content-flex-grow, 0);overflow:var(--sky-layout-host-content-overflow, hidden);position:var(--sky-layout-host-content-position, static)}.sky-tabset.sky-tabset-style-wizard{border-bottom:none;padding-left:0}.sky-modal-content .sky-tabset-style-tabs{--sky-tabset-margin: var( --sky-compat-tabset-tabs-modal-margin, 0 -15px 20px )}.sky-modal-content .sky-tabset-style-wizard{--sky-tabset-margin: var( --sky-compat-tabset-wizard-modal-margin, 0 0 20px )}.sky-tabset-btns{order:1;padding-left:10px}.sky-tabset-dropdown{order:0;max-width:100%}.sky-tabset-mode-dropdown{line-height:0}.sky-tabset-mode-dropdown .sky-tabset-tabs{visibility:hidden;order:2}.sky-tab-dropdown-menu-item sky-tab-button{display:flex;min-width:300px}.sky-tab-dropdown-menu-item .sky-dropdown-item{margin:0}.sky-tab-dropdown-menu-item .sky-btn-tab-wrapper{width:100%;margin-right:0}.sky-tab-dropdown-menu-item .sky-btn-tab{margin:0;border-radius:0;width:100%;display:flex}.sky-tab-dropdown-menu-item .sky-btn-tab>.sky-tab-heading{flex:1 1 auto}.sky-tab-dropdown-menu-item .sky-btn-tab>.sky-btn-tab-close{flex:0 1 auto}.sky-tabset-tabs{order:0;white-space:nowrap}.sky-tabset-btn-new,.sky-tabset-btn-open{color:#0974a1}.sky-theme-modern .sky-modal-content .sky-tabset{--sky-tabset-margin: -10px -30px 30px;padding-left:30px;padding-right:30px}.sky-theme-modern .sky-tabset{border-bottom:1px solid #d2d2d2;overflow:visible}.sky-theme-modern .sky-tab-dropdown-menu-item .sky-btn-tab-wrapper{margin-right:0}\n"] }]
|
|
2434
2485
|
}], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: SkyTabsetAdapterService }, { type: SkyTabsetPermalinkService }, { type: SkyTabsetService }]; }, propDecorators: { active: [{
|
|
2435
2486
|
type: Input
|
|
2436
2487
|
}], ariaLabel: [{
|
|
@@ -2452,6 +2503,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImpor
|
|
|
2452
2503
|
}], tabs: [{
|
|
2453
2504
|
type: ContentChildren,
|
|
2454
2505
|
args: [SkyTabComponent]
|
|
2506
|
+
}], cssClass: [{
|
|
2507
|
+
type: HostBinding,
|
|
2508
|
+
args: ['class']
|
|
2455
2509
|
}] } });
|
|
2456
2510
|
|
|
2457
2511
|
class SkyTabsModule {
|