@skyux/tabs 9.0.0-alpha.9 → 9.0.0-beta.1

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.
@@ -5,19 +5,7 @@ import * as i0 from "@angular/core";
5
5
  * @internal
6
6
  */
7
7
  export class SkyTabsetService {
8
- get activeTabUnregistered() {
9
- return this.#activeTabUnregistered;
10
- }
11
- get activeTabIndex() {
12
- return this.#activeTabIndex;
13
- }
14
- get focusedTabBtnIndex() {
15
- return this.#focusedTabBtnIndex;
16
- }
17
- get activeTabLayout() {
18
- return this.#activeTabLayout;
19
- }
20
- #activeTabIndex;
8
+ #activeTabChange;
21
9
  #focusedTabBtnIndex;
22
10
  #activeTabUnregistered;
23
11
  #activeTabLayout;
@@ -26,16 +14,22 @@ export class SkyTabsetService {
26
14
  constructor() {
27
15
  this.currentActiveTabIndex = 0;
28
16
  this.currentFocusedTabBtnIndex = 0;
29
- this.#activeTabLayout = new Subject();
30
17
  this.#tabs = [];
31
18
  this.#tabCounter = 0;
32
- this.#activeTabIndex = new BehaviorSubject(0);
33
- this.#activeTabUnregistered =
34
- new Subject();
19
+ this.#activeTabChange = new BehaviorSubject({
20
+ initial: true,
21
+ tabIndex: 0,
22
+ });
23
+ this.#activeTabLayout = new Subject();
24
+ this.#activeTabUnregistered = new Subject();
35
25
  this.#focusedTabBtnIndex = new Subject();
26
+ this.activeTabChange = this.#activeTabChange.asObservable();
27
+ this.activeTabLayout = this.#activeTabLayout.asObservable();
28
+ this.activeTabUnregistered = this.#activeTabUnregistered.asObservable();
29
+ this.focusedTabBtnIndex = this.#focusedTabBtnIndex.asObservable();
36
30
  }
37
31
  ngOnDestroy() {
38
- this.#activeTabIndex.complete();
32
+ this.#activeTabChange.complete();
39
33
  this.#activeTabUnregistered.complete();
40
34
  this.#focusedTabBtnIndex.complete();
41
35
  this.#activeTabLayout.complete();
@@ -46,14 +40,14 @@ export class SkyTabsetService {
46
40
  setActiveTabIndex(value, config = {
47
41
  emitChange: true,
48
42
  }) {
49
- if (value !== undefined &&
50
- !this.tabIndexesEqual(value, this.currentActiveTabIndex)) {
51
- this.currentActiveTabIndex = value;
43
+ if (value.tabIndex !== undefined &&
44
+ !this.tabIndexesEqual(value.tabIndex, this.currentActiveTabIndex)) {
45
+ this.currentActiveTabIndex = value.tabIndex;
52
46
  /* istanbul ignore else */
53
47
  if (config.emitChange) {
54
- this.#activeTabIndex.next(value);
48
+ this.#activeTabChange.next(value);
55
49
  }
56
- this.setFocusedTabBtnIndex(value);
50
+ this.setFocusedTabBtnIndex(value.tabIndex);
57
51
  }
58
52
  }
59
53
  focusNextTabBtn(tabButtons) {
@@ -158,7 +152,9 @@ export class SkyTabsetService {
158
152
  activateFirstTab() {
159
153
  const firstTabIndex = this.#tabs[0] && this.#tabs[0].tabIndex;
160
154
  if (firstTabIndex !== undefined) {
161
- this.setActiveTabIndex(firstTabIndex);
155
+ this.setActiveTabIndex({
156
+ tabIndex: firstTabIndex,
157
+ });
162
158
  return firstTabIndex;
163
159
  }
164
160
  return undefined;
@@ -195,4 +191,4 @@ export class SkyTabsetService {
195
191
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.1", ngImport: i0, type: SkyTabsetService, decorators: [{
196
192
  type: Injectable
197
193
  }], ctorParameters: function () { return []; } });
198
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFic2V0LnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvdGFicy9zcmMvbGliL21vZHVsZXMvdGFicy90YWJzZXQuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFhLE1BQU0sZUFBZSxDQUFDO0FBRXRELE9BQU8sRUFBRSxlQUFlLEVBQWMsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDOztBQU81RDs7R0FFRztBQUVILE1BQU0sT0FBTyxnQkFBZ0I7SUFDM0IsSUFBVyxxQkFBcUI7UUFDOUIsT0FBTyxJQUFJLENBQUMsc0JBQXNCLENBQUM7SUFDckMsQ0FBQztJQUVELElBQVcsY0FBYztRQUN2QixPQUFPLElBQUksQ0FBQyxlQUFlLENBQUM7SUFDOUIsQ0FBQztJQUVELElBQVcsa0JBQWtCO1FBQzNCLE9BQU8sSUFBSSxDQUFDLG1CQUFtQixDQUFDO0lBQ2xDLENBQUM7SUFFRCxJQUFXLGVBQWU7UUFDeEIsT0FBTyxJQUFJLENBQUMsZ0JBQWdCLENBQUM7SUFDL0IsQ0FBQztJQU1ELGVBQWUsQ0FBK0I7SUFFOUMsbUJBQW1CLENBQXVCO0lBRTFDLHNCQUFzQixDQUE4QztJQUVwRSxnQkFBZ0IsQ0FBbUM7SUFFbkQsS0FBSyxDQUVJO0lBRVQsV0FBVyxDQUFLO0lBRWhCO1FBbEJPLDBCQUFxQixHQUE0QixDQUFDLENBQUM7UUFFbkQsOEJBQXlCLEdBQWdCLENBQUMsQ0FBQztRQVFsRCxxQkFBZ0IsR0FBRyxJQUFJLE9BQU8sRUFBb0IsQ0FBQztRQUVuRCxVQUFLLEdBRUMsRUFBRSxDQUFDO1FBRVQsZ0JBQVcsR0FBRyxDQUFDLENBQUM7UUFHZCxJQUFJLENBQUMsZUFBZSxHQUFHLElBQUksZUFBZSxDQUFjLENBQUMsQ0FBQyxDQUFDO1FBRTNELElBQUksQ0FBQyxzQkFBc0I7WUFDekIsSUFBSSxPQUFPLEVBQXND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QUFPLFNBQVMsQ0FBQztJQUNuQixDQUFDO0lBRUQscUJBQXFCLENBQUMsWUFBb0I7UUFDeEMsSUFBSSxTQUFTLEdBQUcsWUFBWSxHQUFHLENBQUMsQ0FBQztRQUVqQyxJQUFJLFNBQVMsR0FBRyxDQUFDLEVBQUU7WUFDakIsU0FBUyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQztTQUNuQztRQUVELE9BQU8sU0FBUyxDQUFDO0lBQ25CLENBQUM7OEdBclFVLGdCQUFnQjtrSEFBaEIsZ0JBQWdCOzsyRkFBaEIsZ0JBQWdCO2tCQUQ1QixVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSwgT25EZXN0cm95IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCwgT2JzZXJ2YWJsZSwgU3ViamVjdCB9IGZyb20gJ3J4anMnO1xuXG5pbXBvcnQgeyBUYWJCdXR0b25WaWV3TW9kZWwgfSBmcm9tICcuL3RhYi1idXR0b24tdmlldy1tb2RlbCc7XG5pbXBvcnQgeyBTa3lUYWJJbmRleCB9IGZyb20gJy4vdGFiLWluZGV4JztcbmltcG9ydCB7IFNreVRhYkxheW91dFR5cGUgfSBmcm9tICcuL3RhYi1sYXlvdXQtdHlwZSc7XG5pbXBvcnQgeyBTa3lUYWJzZXRBY3RpdmVUYWJVbnJlZ2lzdGVyZWRBcmdzIH0gZnJvbSAnLi90YWJzZXQtYWN0aXZlLXRhYi11bnJlZ2lzdGVyZWQtYXJncyc7XG5cbi8qKlxuICogQGludGVybmFsXG4gKi9cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBTa3lUYWJzZXRTZXJ2aWNlIGltcGxlbWVudHMgT25EZXN0cm95IHtcbiAgcHVibGljIGdldCBhY3RpdmVUYWJVbnJlZ2lzdGVyZWQoKTogT2JzZXJ2YWJsZTxTa3lUYWJzZXRBY3RpdmVUYWJVbnJlZ2lzdGVyZWRBcmdzPiB7XG4gICAgcmV0dXJuIHRoaXMuI2FjdGl2ZVRhYlVucmVnaXN0ZXJlZDtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgYWN0aXZlVGFiSW5kZXgoKTogT2JzZXJ2YWJsZTxTa3lUYWJJbmRleD4ge1xuICAgIHJldHVybiB0aGlzLiNhY3RpdmVUYWJJbmRleDtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgZm9jdXNlZFRhYkJ0bkluZGV4KCk6IE9ic2VydmFibGU8U2t5VGFiSW5kZXg+IHtcbiAgICByZXR1cm4gdGhpcy4jZm9jdXNlZFRhYkJ0bkluZGV4O1xuICB9XG5cbiAgcHVibGljIGdldCBhY3RpdmVUYWJMYXlvdXQoKTogT2JzZXJ2YWJsZTxTa3lUYWJMYXlvdXRUeXBlPiB7XG4gICAgcmV0dXJuIHRoaXMuI2FjdGl2ZVRhYkxheW91dDtcbiAgfVxuXG4gIHB1YmxpYyBjdXJyZW50QWN0aXZlVGFiSW5kZXg6IFNreVRhYkluZGV4IHwgdW5kZWZpbmVkID0gMDtcblxuICBwdWJsaWMgY3VycmVudEZvY3VzZWRUYWJCdG5JbmRleDogU2t5VGFiSW5kZXggPSAwO1xuXG4gICNhY3RpdmVUYWJJbmRleDogQmVoYXZpb3JTdWJqZWN0PFNreVRhYkluZGV4PjtcblxuICAjZm9jdXNlZFRhYkJ0bkluZGV4OiBTdWJqZWN0PFNreVRhYkluZGV4PjtcblxuICAjYWN0aXZlVGFiVW5yZWdpc3RlcmVkOiBTdWJqZWN0PFNreVRhYnNldEFjdGl2ZVRhYlVucmVnaXN0ZXJlZEFyZ3M+O1xuXG4gICNhY3RpdmVUYWJMYXlvdXQgPSBuZXcgU3ViamVjdDxTa3lUYWJMYXlvdXRUeXBlPigpO1xuXG4gICN0YWJzOiB7XG4gICAgdGFiSW5kZXg6IFNreVRhYkluZGV4IHwgdW5kZWZpbmVkO1xuICB9W10gPSBbXTtcblxuICAjdGFiQ291bnRlciA9IDA7XG5cbiAgY29uc3RydWN0b3IoKSB7XG4gICAgdGhpcy4jYWN0aXZlVGFiSW5kZXggPSBuZXcgQmVoYXZpb3JTdWJqZWN0PFNreVRhYkluZGV4PigwKTtcblxuICAgIHRoaXMuI2FjdGl2ZVRhYlVucmVnaXN0ZXJlZCA9XG4gICAgICBuZXcgU3ViamVjdDxTa3lUYWJzZXRBY3RpdmVUYWJVbnJlZ2lzdGVyZWRBcmdzPigpO1xuXG4gICAgdGhpcy4jZm9jdXNlZFRhYkJ0bkluZGV4ID0gbmV3IFN1YmplY3Q8U2t5VGFiSW5kZXg+KCk7XG4gIH1cblxuICBwdWJsaWMgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgdGhpcy4jYWN0aXZlVGFiSW5kZXguY29tcGxldGUoKTtcbiAgICB0aGlzLiNhY3RpdmVUYWJVbnJlZ2lzdGVyZWQuY29tcGxldGUoKTtcbiAgICB0aGlzLiNmb2N1c2VkVGFiQnRuSW5kZXguY29tcGxldGUoKTtcbiAgICB0aGlzLiNhY3RpdmVUYWJMYXlvdXQuY29tcGxldGUoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBTZXRzIHRoZSBhY3RpdmUgdGFiIGJ5IGl0cyB1bmlxdWUgYHRhYkluZGV4YCBwcm9wZXJ0eS5cbiAgICovXG4gIHB1YmxpYyBzZXRBY3RpdmVUYWJJbmRleChcbiAgICB2YWx1ZTogU2t5VGFiSW5kZXggfCB1bmRlZmluZWQsXG4gICAgY29uZmlnID0ge1xuICAgICAgZW1pdENoYW5nZTogdHJ1ZSxcbiAgICB9XG4gICk6IHZvaWQge1xuICAgIGlmIChcbiAgICAgIHZhbHVlICE9PSB1bmRlZmluZWQgJiZcbiAgICAgICF0aGlzLnRhYkluZGV4ZXNFcXVhbCh2YWx1ZSwgdGhpcy5jdXJyZW50QWN0aXZlVGFiSW5kZXgpXG4gICAgKSB7XG4gICAgICB0aGlzLmN1cnJlbnRBY3RpdmVUYWJJbmRleCA9IHZhbHVlO1xuXG4gICAgICAvKiBpc3RhbmJ1bCBpZ25vcmUgZWxzZSAqL1xuICAgICAgaWYgKGNvbmZpZy5lbWl0Q2hhbmdlKSB7XG4gICAgICAgIHRoaXMuI2FjdGl2ZVRhYkluZGV4Lm5leHQodmFsdWUpO1xuICAgICAgfVxuXG4gICAgICB0aGlzLnNldEZvY3VzZWRUYWJCdG5JbmRleCh2YWx1ZSk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIGZvY3VzTmV4dFRhYkJ0bih0YWJCdXR0b25zOiBUYWJCdXR0b25WaWV3TW9kZWxbXSk6IHZvaWQge1xuICAgIGNvbnN0IGN1cnJlbnRUYWJBcnJheUluZGV4ID0gdGhpcy4jdGFicy5maW5kSW5kZXgoKHRhYikgPT5cbiAgICAgIHRoaXMudGFiSW5kZXhlc0VxdWFsKHRhYi50YWJJbmRleCwgdGhpcy5jdXJyZW50Rm9jdXNlZFRhYkJ0bkluZGV4KVxuICAgICk7XG5cbiAgICBmb3IgKFxuICAgICAgbGV0IGkgPSB0aGlzLiNnZXROZXh0VGFiQXJyYXlJbmRleChjdXJyZW50VGFiQXJyYXlJbmRleCk7XG4gICAgICBpICE9PSBjdXJyZW50VGFiQXJyYXlJbmRleDtcbiAgICAgIGkgPSB0aGlzLiNnZXROZXh0VGFiQXJyYXlJbmRleChpKVxuICAgICkge1xuICAgICAgY29uc3QgdGFiQnRuID0gdGFiQnV0dG9uc1tpXTtcbiAgICAgIGlmICghdGFiQnRuLmRpc2FibGVkICYmIHRhYkJ0bi50YWJJbmRleCAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgIHRoaXMuc2V0Rm9jdXNlZFRhYkJ0bkluZGV4KHRhYkJ0bi50YWJJbmRleCk7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBwdWJsaWMgZm9jdXNQcmV2VGFiQnRuKHRhYkJ1dHRvbnM6IFRhYkJ1dHRvblZpZXdNb2RlbFtdKTogdm9pZCB7XG4gICAgY29uc3QgY3VycmVudFRhYkFycmF5SW5kZXggPSB0aGlzLiN0YWJzLmZpbmRJbmRleCgodGFiKSA9PlxuICAgICAgdGhpcy50YWJJbmRleGVzRXF1YWwodGFiLnRhYkluZGV4LCB0aGlzLmN1cnJlbnRGb2N1c2VkVGFiQnRuSW5kZXgpXG4gICAgKTtcblxuICAgIGZvciAoXG4gICAgICBsZXQgaSA9IHRoaXMuI2dldFByZXZUYWJBcnJheUluZGV4KGN1cnJlbnRUYWJBcnJheUluZGV4KTtcbiAgICAgIGkgIT09IGN1cnJlbnRUYWJBcnJheUluZGV4O1xuICAgICAgaSA9IHRoaXMuI2dldFByZXZUYWJBcnJheUluZGV4KGkpXG4gICAgKSB7XG4gICAgICBjb25zdCB0YWJCdG4gPSB0YWJCdXR0b25zW2ldO1xuICAgICAgaWYgKCF0YWJCdG4uZGlzYWJsZWQgJiYgdGFiQnRuLnRhYkluZGV4ICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgdGhpcy5zZXRGb2N1c2VkVGFiQnRuSW5kZXgodGFiQnRuLnRhYkluZGV4KTtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBmb2N1c0ZpcnN0T3JOZWFyZXN0VGFiQnRuKHRhYkJ1dHRvbnM6IFRhYkJ1dHRvblZpZXdNb2RlbFtdKTogdm9pZCB7XG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCB0YWJCdXR0b25zLmxlbmd0aDsgaSsrKSB7XG4gICAgICBjb25zdCB0YWJCdG4gPSB0YWJCdXR0b25zW2ldO1xuXG4gICAgICBpZiAoIXRhYkJ0bi5kaXNhYmxlZCAmJiB0YWJCdG4udGFiSW5kZXggIT09IHVuZGVmaW5lZCkge1xuICAgICAgICB0aGlzLnNldEZvY3VzZWRUYWJCdG5JbmRleCh0YWJCdG4udGFiSW5kZXgpO1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcHVibGljIGZvY3VzTGFzdE9yTmVhcmVzdFRhYkJ0bih0YWJCdXR0b25zOiBUYWJCdXR0b25WaWV3TW9kZWxbXSk6IHZvaWQge1xuICAgIGZvciAobGV0IGkgPSB0YWJCdXR0b25zLmxlbmd0aCAtIDE7IGkgPj0gMDsgaS0tKSB7XG4gICAgICBjb25zdCB0YWJCdG4gPSB0YWJCdXR0b25zW2ldO1xuXG4gICAgICBpZiAoIXRhYkJ0bi5kaXNhYmxlZCAmJiB0YWJCdG4udGFiSW5kZXggIT09IHVuZGVmaW5lZCkge1xuICAgICAgICB0aGlzLnNldEZvY3VzZWRUYWJCdG5JbmRleCh0YWJCdG4udGFiSW5kZXgpO1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcHVibGljIHNldEZvY3VzZWRUYWJCdG5JbmRleCh0YWJJbmRleDogU2t5VGFiSW5kZXgpOiB2b2lkIHtcbiAgICB0aGlzLmN1cnJlbnRGb2N1c2VkVGFiQnRuSW5kZXggPSB0YWJJbmRleDtcbiAgICB0aGlzLiNmb2N1c2VkVGFiQnRuSW5kZXgubmV4dCh0YWJJbmRleCk7XG4gIH1cblxuICAvKipcbiAgICogUmVnaXN0ZXJzIGEgdGFiIGNvbXBvbmVudC5cbiAgICovXG4gIHB1YmxpYyByZWdpc3RlclRhYih0YWJJbmRleD86IFNreVRhYkluZGV4KTogU2t5VGFiSW5kZXgge1xuICAgIGlmICh0YWJJbmRleCA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICB0YWJJbmRleCA9IHRoaXMuI3RhYkNvdW50ZXI7XG4gICAgICB0aGlzLiN0YWJDb3VudGVyKys7XG4gICAgfVxuXG4gICAgdGhpcy4jdGFicy5wdXNoKHsgdGFiSW5kZXggfSk7XG5cbiAgICByZXR1cm4gdGFiSW5kZXg7XG4gIH1cblxuICBwdWJsaWMgdXBkYXRlVGFiSW5kZXgoXG4gICAgY3VycmVudFRhYkluZGV4OiBTa3lUYWJJbmRleCxcbiAgICBuZXdUYWJJbmRleDogU2t5VGFiSW5kZXhcbiAgKTogdm9pZCB7XG4gICAgY29uc3QgZm91bmQgPSB0aGlzLiN0YWJzLmZpbmQoKHRhYikgPT5cbiAgICAgIHRoaXMudGFiSW5kZXhlc0VxdWFsKHRhYi50YWJJbmRleCwgY3VycmVudFRhYkluZGV4KVxuICAgICk7XG4gICAgaWYgKGZvdW5kKSB7XG4gICAgICBmb3VuZC50YWJJbmRleCA9IG5ld1RhYkluZGV4O1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyB1cGRhdGVBY3RpdmVUYWJMYXlvdXQobGF5b3V0OiBTa3lUYWJMYXlvdXRUeXBlKTogdm9pZCB7XG4gICAgdGhpcy4jYWN0aXZlVGFiTGF5b3V0Lm5leHQobGF5b3V0KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBVbnJlZ2lzdGVycyBhIHRhYiBjb21wb25lbnQuXG4gICAqL1xuICBwdWJsaWMgdW5yZWdpc3RlclRhYih0YWJJbmRleDogU2t5VGFiSW5kZXgpOiB2b2lkIHtcbiAgICBjb25zdCBpbmRleCA9IHRoaXMuI3RhYnMuZmluZEluZGV4KCh0YWIpID0+XG4gICAgICB0aGlzLnRhYkluZGV4ZXNFcXVhbCh0YWIudGFiSW5kZXgsIHRhYkluZGV4KVxuICAgICk7XG5cbiAgICAvLyBOb3RpZnkgdGhlIHRhYnNldCBjb21wb25lbnQgd2hlbiBhbiBhY3RpdmUgdGFiIGlzIHVucmVnaXN0ZXJlZC5cbiAgICBpZiAodGhpcy4jaXNUYWJJbmRleEFjdGl2ZSh0aGlzLiN0YWJzW2luZGV4XT8udGFiSW5kZXgpKSB7XG4gICAgICB0aGlzLiNhY3RpdmVUYWJVbnJlZ2lzdGVyZWQubmV4dCh7XG4gICAgICAgIGFycmF5SW5kZXg6IGluZGV4LFxuICAgICAgfSk7XG4gICAgfVxuXG4gICAgdGhpcy4jdGFicy5zcGxpY2UoaW5kZXgsIDEpO1xuICB9XG5cbiAgLyoqXG4gICAqIFVucmVnaXN0ZXJzIGFsbCB0YWIgY29tcG9uZW50cyBhdCBvbmNlLlxuICAgKi9cbiAgcHVibGljIHVucmVnaXN0ZXJBbGwoKTogdm9pZCB7XG4gICAgdGhpcy4jdGFicyA9IFtdO1xuICB9XG5cbiAgLyoqXG4gICAqIENvbXBhcmVzIHR3byB0YWIgaW5kZXhlcyBhbmQgcmV0dXJucyBgdHJ1ZWAgaWYgdGhleSBhcmUgZXF1YWwuXG4gICAqL1xuICBwdWJsaWMgdGFiSW5kZXhlc0VxdWFsKFxuICAgIHRhYkluZGV4MTogU2t5VGFiSW5kZXggfCB1bmRlZmluZWQsXG4gICAgdGFiSW5kZXgyOiBTa3lUYWJJbmRleCB8IHVuZGVmaW5lZFxuICApOiBib29sZWFuIHtcbiAgICByZXR1cm4gKFxuICAgICAgdGFiSW5kZXgxID09PSB0YWJJbmRleDIgfHxcbiAgICAgICh0YWJJbmRleDEgIT09IHVuZGVmaW5lZCAmJlxuICAgICAgICB0YWJJbmRleDIgIT09IHVuZGVmaW5lZCAmJlxuICAgICAgICArdGFiSW5kZXgxID09PSArdGFiSW5kZXgyKVxuICAgICk7XG4gIH1cblxuICAvKipcbiAgICogVmVyaWZpZXMgaWYgYSBwcm92aWRlZCB0YWIgaW5kZXggaXMgcmVnaXN0ZXJlZC5cbiAgICovXG4gIHB1YmxpYyBpc1ZhbGlkVGFiSW5kZXgodGFiSW5kZXg6IFNreVRhYkluZGV4KTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuI3RhYnMuc29tZSgodGFiKSA9PlxuICAgICAgdGhpcy50YWJJbmRleGVzRXF1YWwodGFiLnRhYkluZGV4LCB0YWJJbmRleClcbiAgICApO1xuICB9XG5cbiAgLyoqXG4gICAqIEFjdGl2YXRlcyB0aGUgZmlyc3QgcmVnaXN0ZXJlZCB0YWIuXG4gICAqL1xuICBwdWJsaWMgYWN0aXZhdGVGaXJzdFRhYigpOiBTa3lUYWJJbmRleCB8IHVuZGVmaW5lZCB7XG4gICAgY29uc3QgZmlyc3RUYWJJbmRleCA9IHRoaXMuI3RhYnNbMF0gJiYgdGhpcy4jdGFic1swXS50YWJJbmRleDtcbiAgICBpZiAoZmlyc3RUYWJJbmRleCAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICB0aGlzLnNldEFjdGl2ZVRhYkluZGV4KGZpcnN0VGFiSW5kZXgpO1xuICAgICAgcmV0dXJuIGZpcnN0VGFiSW5kZXg7XG4gICAgfVxuICAgIHJldHVybiB1bmRlZmluZWQ7XG4gIH1cblxuICAvKipcbiAgICogQWN0aXZhdGVzIHRoZSBuZXh0IHJlZ2lzdGVyZWQgdGFiLCBvciB0aGUgcHJldmlvdXMgb25lIGJhc2VkIG9uIGEgcHJvdmlkZWQgYXJyYXkgaW5kZXguXG4gICAqL1xuICBwdWJsaWMgYWN0aXZhdGVOZWFyZXN0VGFiKGFycmF5SW5kZXg6IG51bWJlcik6IHZvaWQge1xuICAgIGNvbnN0IG5ld0FjdGl2ZVRhYiA9IHRoaXMuI3RhYnNbYXJyYXlJbmRleF0gfHwgdGhpcy4jdGFic1thcnJheUluZGV4IC0gMV07XG4gICAgaWYgKG5ld0FjdGl2ZVRhYikge1xuICAgICAgdGhpcy5jdXJyZW50QWN0aXZlVGFiSW5kZXggPSBuZXdBY3RpdmVUYWIudGFiSW5kZXg7XG4gICAgfVxuICB9XG5cbiAgI2lzVGFiSW5kZXhBY3RpdmUodGFiSW5kZXg6IFNreVRhYkluZGV4IHwgdW5kZWZpbmVkKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMudGFiSW5kZXhlc0VxdWFsKHRhYkluZGV4LCB0aGlzLmN1cnJlbnRBY3RpdmVUYWJJbmRleCk7XG4gIH1cblxuICAjZ2V0TmV4dFRhYkFycmF5SW5kZXgoY3VycmVudEluZGV4OiBudW1iZXIpOiBudW1iZXIge1xuICAgIGxldCBuZXh0SW5kZXggPSBjdXJyZW50SW5kZXggKyAxO1xuXG4gICAgaWYgKG5leHRJbmRleCA9PT0gdGhpcy4jdGFicy5sZW5ndGgpIHtcbiAgICAgIG5leHRJbmRleCA9IDA7XG4gICAgfVxuXG4gICAgcmV0dXJuIG5leHRJbmRleDtcbiAgfVxuXG4gICNnZXRQcmV2VGFiQXJyYXlJbmRleChjdXJyZW50SW5kZXg6IG51bWJlcik6IG51bWJlciB7XG4gICAgbGV0IHByZXZJbmRleCA9IGN1cnJlbnRJbmRleCAtIDE7XG5cbiAgICBpZiAocHJldkluZGV4IDwgMCkge1xuICAgICAgcHJldkluZGV4ID0gdGhpcy4jdGFicy5sZW5ndGggLSAxO1xuICAgIH1cblxuICAgIHJldHVybiBwcmV2SW5kZXg7XG4gIH1cbn1cbiJdfQ==
194
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFic2V0LnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvdGFicy9zcmMvbGliL21vZHVsZXMvdGFicy90YWJzZXQuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFhLE1BQU0sZUFBZSxDQUFDO0FBRXRELE9BQU8sRUFBRSxlQUFlLEVBQWMsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDOztBQVE1RDs7R0FFRztBQUVILE1BQU0sT0FBTyxnQkFBZ0I7SUFhM0IsZ0JBQWdCLENBQWdEO0lBRWhFLG1CQUFtQixDQUF1QjtJQUUxQyxzQkFBc0IsQ0FBOEM7SUFFcEUsZ0JBQWdCLENBQTRCO0lBRTVDLEtBQUssQ0FFSTtJQUVULFdBQVcsQ0FBSztJQUVoQjtRQWxCTywwQkFBcUIsR0FBNEIsQ0FBQyxDQUFDO1FBRW5ELDhCQUF5QixHQUFnQixDQUFDLENBQUM7UUFVbEQsVUFBSyxHQUVDLEVBQUUsQ0FBQztRQUVULGdCQUFXLEdBQUcsQ0FBQyxDQUFDO1FBR2QsSUFBSSxDQUFDLGdCQUFnQixHQUFHLElBQUksZUFBZSxDQUErQjtZQUN4RSxPQUFPLEVBQUUsSUFBSTtZQUNiLFFBQVEsRUFBRSxDQUFDO1NBQ1osQ0FBQyxDQUFDO1FBRUgsSUFBSSxDQUFDLGdCQUFnQixHQUFHLElBQUksT0FBTyxFQUFFLENBQUM7UUFFdEMsSUFBSSxDQUFDLHNCQUFzQixHQUFHLElBQUksT0FBTyxFQUFFLENBQUM7UUFFNUMsSUFBSSxDQUFDLG1CQUFtQixHQUFHLElBQUksT0FBTyxFQUFFLENBQUM7UUFFekMsSUFBSSxDQUFDLGVBQWUsR0FBRyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsWUFBWSxFQUFFLENBQUM7UUFDNUQsSUFBSSxDQUFDLGVBQWUsR0FBRyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsWUFBWSxFQUFFLENBQUM7UUFDNUQs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LFlBQW9CO1FBQ3hDLElBQUksU0FBUyxHQUFHLFlBQVksR0FBRyxDQUFDLENBQUM7UUFFakMsSUFBSSxTQUFTLEtBQUssSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLEVBQUU7WUFDbkMsU0FBUyxHQUFHLENBQUMsQ0FBQztTQUNmO1FBRUQsT0FBTyxTQUFTLENBQUM7SUFDbkIsQ0FBQztJQUVELHFCQUFxQixDQUFDLFlBQW9CO1FBQ3hDLElBQUksU0FBUyxHQUFHLFlBQVksR0FBRyxDQUFDLENBQUM7UUFFakMsSUFBSSxTQUFTLEdBQUcsQ0FBQyxFQUFFO1lBQ2pCLFNBQVMsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUM7U0FDbkM7UUFFRCxPQUFPLFNBQVMsQ0FBQztJQUNuQixDQUFDOzhHQXhRVSxnQkFBZ0I7a0hBQWhCLGdCQUFnQjs7MkZBQWhCLGdCQUFnQjtrQkFENUIsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUsIE9uRGVzdHJveSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QsIE9ic2VydmFibGUsIFN1YmplY3QgfSBmcm9tICdyeGpzJztcblxuaW1wb3J0IHsgVGFiQnV0dG9uVmlld01vZGVsIH0gZnJvbSAnLi90YWItYnV0dG9uLXZpZXctbW9kZWwnO1xuaW1wb3J0IHsgU2t5VGFiSW5kZXggfSBmcm9tICcuL3RhYi1pbmRleCc7XG5pbXBvcnQgeyBTa3lUYWJMYXlvdXRUeXBlIH0gZnJvbSAnLi90YWItbGF5b3V0LXR5cGUnO1xuaW1wb3J0IHsgU2t5VGFic2V0QWN0aXZlVGFiQ2hhbmdlQXJncyB9IGZyb20gJy4vdGFic2V0LWFjdGl2ZS10YWItY2hhbmdlLWFyZ3MnO1xuaW1wb3J0IHsgU2t5VGFic2V0QWN0aXZlVGFiVW5yZWdpc3RlcmVkQXJncyB9IGZyb20gJy4vdGFic2V0LWFjdGl2ZS10YWItdW5yZWdpc3RlcmVkLWFyZ3MnO1xuXG4vKipcbiAqIEBpbnRlcm5hbFxuICovXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgU2t5VGFic2V0U2VydmljZSBpbXBsZW1lbnRzIE9uRGVzdHJveSB7XG4gIHB1YmxpYyByZWFkb25seSBhY3RpdmVUYWJVbnJlZ2lzdGVyZWQ6IE9ic2VydmFibGU8U2t5VGFic2V0QWN0aXZlVGFiVW5yZWdpc3RlcmVkQXJncz47XG5cbiAgcHVibGljIHJlYWRvbmx5IGFjdGl2ZVRhYkNoYW5nZTogT2JzZXJ2YWJsZTxTa3lUYWJzZXRBY3RpdmVUYWJDaGFuZ2VBcmdzPjtcblxuICBwdWJsaWMgcmVhZG9ubHkgZm9jdXNlZFRhYkJ0bkluZGV4OiBPYnNlcnZhYmxlPFNreVRhYkluZGV4PjtcblxuICBwdWJsaWMgcmVhZG9ubHkgYWN0aXZlVGFiTGF5b3V0OiBPYnNlcnZhYmxlPFNreVRhYkxheW91dFR5cGU+O1xuXG4gIHB1YmxpYyBjdXJyZW50QWN0aXZlVGFiSW5kZXg6IFNreVRhYkluZGV4IHwgdW5kZWZpbmVkID0gMDtcblxuICBwdWJsaWMgY3VycmVudEZvY3VzZWRUYWJCdG5JbmRleDogU2t5VGFiSW5kZXggPSAwO1xuXG4gICNhY3RpdmVUYWJDaGFuZ2U6IEJlaGF2aW9yU3ViamVjdDxTa3lUYWJzZXRBY3RpdmVUYWJDaGFuZ2VBcmdzPjtcblxuICAjZm9jdXNlZFRhYkJ0bkluZGV4OiBTdWJqZWN0PFNreVRhYkluZGV4PjtcblxuICAjYWN0aXZlVGFiVW5yZWdpc3RlcmVkOiBTdWJqZWN0PFNreVRhYnNldEFjdGl2ZVRhYlVucmVnaXN0ZXJlZEFyZ3M+O1xuXG4gICNhY3RpdmVUYWJMYXlvdXQ6IFN1YmplY3Q8U2t5VGFiTGF5b3V0VHlwZT47XG5cbiAgI3RhYnM6IHtcbiAgICB0YWJJbmRleDogU2t5VGFiSW5kZXggfCB1bmRlZmluZWQ7XG4gIH1bXSA9IFtdO1xuXG4gICN0YWJDb3VudGVyID0gMDtcblxuICBjb25zdHJ1Y3RvcigpIHtcbiAgICB0aGlzLiNhY3RpdmVUYWJDaGFuZ2UgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PFNreVRhYnNldEFjdGl2ZVRhYkNoYW5nZUFyZ3M+KHtcbiAgICAgIGluaXRpYWw6IHRydWUsXG4gICAgICB0YWJJbmRleDogMCxcbiAgICB9KTtcblxuICAgIHRoaXMuI2FjdGl2ZVRhYkxheW91dCA9IG5ldyBTdWJqZWN0KCk7XG5cbiAgICB0aGlzLiNhY3RpdmVUYWJVbnJlZ2lzdGVyZWQgPSBuZXcgU3ViamVjdCgpO1xuXG4gICAgdGhpcy4jZm9jdXNlZFRhYkJ0bkluZGV4ID0gbmV3IFN1YmplY3QoKTtcblxuICAgIHRoaXMuYWN0aXZlVGFiQ2hhbmdlID0gdGhpcy4jYWN0aXZlVGFiQ2hhbmdlLmFzT2JzZXJ2YWJsZSgpO1xuICAgIHRoaXMuYWN0aXZlVGFiTGF5b3V0ID0gdGhpcy4jYWN0aXZlVGFiTGF5b3V0LmFzT2JzZXJ2YWJsZSgpO1xuICAgIHRoaXMuYWN0aXZlVGFiVW5yZWdpc3RlcmVkID0gdGhpcy4jYWN0aXZlVGFiVW5yZWdpc3RlcmVkLmFzT2JzZXJ2YWJsZSgpO1xuICAgIHRoaXMuZm9jdXNlZFRhYkJ0bkluZGV4ID0gdGhpcy4jZm9jdXNlZFRhYkJ0bkluZGV4LmFzT2JzZXJ2YWJsZSgpO1xuICB9XG5cbiAgcHVibGljIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIHRoaXMuI2FjdGl2ZVRhYkNoYW5nZS5jb21wbGV0ZSgpO1xuICAgIHRoaXMuI2FjdGl2ZVRhYlVucmVnaXN0ZXJlZC5jb21wbGV0ZSgpO1xuICAgIHRoaXMuI2ZvY3VzZWRUYWJCdG5JbmRleC5jb21wbGV0ZSgpO1xuICAgIHRoaXMuI2FjdGl2ZVRhYkxheW91dC5jb21wbGV0ZSgpO1xuICB9XG5cbiAgLyoqXG4gICAqIFNldHMgdGhlIGFjdGl2ZSB0YWIgYnkgaXRzIHVuaXF1ZSBgdGFiSW5kZXhgIHByb3BlcnR5LlxuICAgKi9cbiAgcHVibGljIHNldEFjdGl2ZVRhYkluZGV4KFxuICAgIHZhbHVlOiBTa3lUYWJzZXRBY3RpdmVUYWJDaGFuZ2VBcmdzLFxuICAgIGNvbmZpZyA9IHtcbiAgICAgIGVtaXRDaGFuZ2U6IHRydWUsXG4gICAgfVxuICApOiB2b2lkIHtcbiAgICBpZiAoXG4gICAgICB2YWx1ZS50YWJJbmRleCAhPT0gdW5kZWZpbmVkICYmXG4gICAgICAhdGhpcy50YWJJbmRleGVzRXF1YWwodmFsdWUudGFiSW5kZXgsIHRoaXMuY3VycmVudEFjdGl2ZVRhYkluZGV4KVxuICAgICkge1xuICAgICAgdGhpcy5jdXJyZW50QWN0aXZlVGFiSW5kZXggPSB2YWx1ZS50YWJJbmRleDtcblxuICAgICAgLyogaXN0YW5idWwgaWdub3JlIGVsc2UgKi9cbiAgICAgIGlmIChjb25maWcuZW1pdENoYW5nZSkge1xuICAgICAgICB0aGlzLiNhY3RpdmVUYWJDaGFuZ2UubmV4dCh2YWx1ZSk7XG4gICAgICB9XG5cbiAgICAgIHRoaXMuc2V0Rm9jdXNlZFRhYkJ0bkluZGV4KHZhbHVlLnRhYkluZGV4KTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgZm9jdXNOZXh0VGFiQnRuKHRhYkJ1dHRvbnM6IFRhYkJ1dHRvblZpZXdNb2RlbFtdKTogdm9pZCB7XG4gICAgY29uc3QgY3VycmVudFRhYkFycmF5SW5kZXggPSB0aGlzLiN0YWJzLmZpbmRJbmRleCgodGFiKSA9PlxuICAgICAgdGhpcy50YWJJbmRleGVzRXF1YWwodGFiLnRhYkluZGV4LCB0aGlzLmN1cnJlbnRGb2N1c2VkVGFiQnRuSW5kZXgpXG4gICAgKTtcblxuICAgIGZvciAoXG4gICAgICBsZXQgaSA9IHRoaXMuI2dldE5leHRUYWJBcnJheUluZGV4KGN1cnJlbnRUYWJBcnJheUluZGV4KTtcbiAgICAgIGkgIT09IGN1cnJlbnRUYWJBcnJheUluZGV4O1xuICAgICAgaSA9IHRoaXMuI2dldE5leHRUYWJBcnJheUluZGV4KGkpXG4gICAgKSB7XG4gICAgICBjb25zdCB0YWJCdG4gPSB0YWJCdXR0b25zW2ldO1xuICAgICAgaWYgKCF0YWJCdG4uZGlzYWJsZWQgJiYgdGFiQnRuLnRhYkluZGV4ICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgdGhpcy5zZXRGb2N1c2VkVGFiQnRuSW5kZXgodGFiQnRuLnRhYkluZGV4KTtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBmb2N1c1ByZXZUYWJCdG4odGFiQnV0dG9uczogVGFiQnV0dG9uVmlld01vZGVsW10pOiB2b2lkIHtcbiAgICBjb25zdCBjdXJyZW50VGFiQXJyYXlJbmRleCA9IHRoaXMuI3RhYnMuZmluZEluZGV4KCh0YWIpID0+XG4gICAgICB0aGlzLnRhYkluZGV4ZXNFcXVhbCh0YWIudGFiSW5kZXgsIHRoaXMuY3VycmVudEZvY3VzZWRUYWJCdG5JbmRleClcbiAgICApO1xuXG4gICAgZm9yIChcbiAgICAgIGxldCBpID0gdGhpcy4jZ2V0UHJldlRhYkFycmF5SW5kZXgoY3VycmVudFRhYkFycmF5SW5kZXgpO1xuICAgICAgaSAhPT0gY3VycmVudFRhYkFycmF5SW5kZXg7XG4gICAgICBpID0gdGhpcy4jZ2V0UHJldlRhYkFycmF5SW5kZXgoaSlcbiAgICApIHtcbiAgICAgIGNvbnN0IHRhYkJ0biA9IHRhYkJ1dHRvbnNbaV07XG4gICAgICBpZiAoIXRhYkJ0bi5kaXNhYmxlZCAmJiB0YWJCdG4udGFiSW5kZXggIT09IHVuZGVmaW5lZCkge1xuICAgICAgICB0aGlzLnNldEZvY3VzZWRUYWJCdG5JbmRleCh0YWJCdG4udGFiSW5kZXgpO1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcHVibGljIGZvY3VzRmlyc3RPck5lYXJlc3RUYWJCdG4odGFiQnV0dG9uczogVGFiQnV0dG9uVmlld01vZGVsW10pOiB2b2lkIHtcbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IHRhYkJ1dHRvbnMubGVuZ3RoOyBpKyspIHtcbiAgICAgIGNvbnN0IHRhYkJ0biA9IHRhYkJ1dHRvbnNbaV07XG5cbiAgICAgIGlmICghdGFiQnRuLmRpc2FibGVkICYmIHRhYkJ0bi50YWJJbmRleCAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgIHRoaXMuc2V0Rm9jdXNlZFRhYkJ0bkluZGV4KHRhYkJ0bi50YWJJbmRleCk7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBwdWJsaWMgZm9jdXNMYXN0T3JOZWFyZXN0VGFiQnRuKHRhYkJ1dHRvbnM6IFRhYkJ1dHRvblZpZXdNb2RlbFtdKTogdm9pZCB7XG4gICAgZm9yIChsZXQgaSA9IHRhYkJ1dHRvbnMubGVuZ3RoIC0gMTsgaSA+PSAwOyBpLS0pIHtcbiAgICAgIGNvbnN0IHRhYkJ0biA9IHRhYkJ1dHRvbnNbaV07XG5cbiAgICAgIGlmICghdGFiQnRuLmRpc2FibGVkICYmIHRhYkJ0bi50YWJJbmRleCAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgIHRoaXMuc2V0Rm9jdXNlZFRhYkJ0bkluZGV4KHRhYkJ0bi50YWJJbmRleCk7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBwdWJsaWMgc2V0Rm9jdXNlZFRhYkJ0bkluZGV4KHRhYkluZGV4OiBTa3lUYWJJbmRleCk6IHZvaWQge1xuICAgIHRoaXMuY3VycmVudEZvY3VzZWRUYWJCdG5JbmRleCA9IHRhYkluZGV4O1xuICAgIHRoaXMuI2ZvY3VzZWRUYWJCdG5JbmRleC5uZXh0KHRhYkluZGV4KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZWdpc3RlcnMgYSB0YWIgY29tcG9uZW50LlxuICAgKi9cbiAgcHVibGljIHJlZ2lzdGVyVGFiKHRhYkluZGV4PzogU2t5VGFiSW5kZXgpOiBTa3lUYWJJbmRleCB7XG4gICAgaWYgKHRhYkluZGV4ID09PSB1bmRlZmluZWQpIHtcbiAgICAgIHRhYkluZGV4ID0gdGhpcy4jdGFiQ291bnRlcjtcbiAgICAgIHRoaXMuI3RhYkNvdW50ZXIrKztcbiAgICB9XG5cbiAgICB0aGlzLiN0YWJzLnB1c2goeyB0YWJJbmRleCB9KTtcblxuICAgIHJldHVybiB0YWJJbmRleDtcbiAgfVxuXG4gIHB1YmxpYyB1cGRhdGVUYWJJbmRleChcbiAgICBjdXJyZW50VGFiSW5kZXg6IFNreVRhYkluZGV4LFxuICAgIG5ld1RhYkluZGV4OiBTa3lUYWJJbmRleFxuICApOiB2b2lkIHtcbiAgICBjb25zdCBmb3VuZCA9IHRoaXMuI3RhYnMuZmluZCgodGFiKSA9PlxuICAgICAgdGhpcy50YWJJbmRleGVzRXF1YWwodGFiLnRhYkluZGV4LCBjdXJyZW50VGFiSW5kZXgpXG4gICAgKTtcbiAgICBpZiAoZm91bmQpIHtcbiAgICAgIGZvdW5kLnRhYkluZGV4ID0gbmV3VGFiSW5kZXg7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIHVwZGF0ZUFjdGl2ZVRhYkxheW91dChsYXlvdXQ6IFNreVRhYkxheW91dFR5cGUpOiB2b2lkIHtcbiAgICB0aGlzLiNhY3RpdmVUYWJMYXlvdXQubmV4dChsYXlvdXQpO1xuICB9XG5cbiAgLyoqXG4gICAqIFVucmVnaXN0ZXJzIGEgdGFiIGNvbXBvbmVudC5cbiAgICovXG4gIHB1YmxpYyB1bnJlZ2lzdGVyVGFiKHRhYkluZGV4OiBTa3lUYWJJbmRleCk6IHZvaWQge1xuICAgIGNvbnN0IGluZGV4ID0gdGhpcy4jdGFicy5maW5kSW5kZXgoKHRhYikgPT5cbiAgICAgIHRoaXMudGFiSW5kZXhlc0VxdWFsKHRhYi50YWJJbmRleCwgdGFiSW5kZXgpXG4gICAgKTtcblxuICAgIC8vIE5vdGlmeSB0aGUgdGFic2V0IGNvbXBvbmVudCB3aGVuIGFuIGFjdGl2ZSB0YWIgaXMgdW5yZWdpc3RlcmVkLlxuICAgIGlmICh0aGlzLiNpc1RhYkluZGV4QWN0aXZlKHRoaXMuI3RhYnNbaW5kZXhdPy50YWJJbmRleCkpIHtcbiAgICAgIHRoaXMuI2FjdGl2ZVRhYlVucmVnaXN0ZXJlZC5uZXh0KHtcbiAgICAgICAgYXJyYXlJbmRleDogaW5kZXgsXG4gICAgICB9KTtcbiAgICB9XG5cbiAgICB0aGlzLiN0YWJzLnNwbGljZShpbmRleCwgMSk7XG4gIH1cblxuICAvKipcbiAgICogVW5yZWdpc3RlcnMgYWxsIHRhYiBjb21wb25lbnRzIGF0IG9uY2UuXG4gICAqL1xuICBwdWJsaWMgdW5yZWdpc3RlckFsbCgpOiB2b2lkIHtcbiAgICB0aGlzLiN0YWJzID0gW107XG4gIH1cblxuICAvKipcbiAgICogQ29tcGFyZXMgdHdvIHRhYiBpbmRleGVzIGFuZCByZXR1cm5zIGB0cnVlYCBpZiB0aGV5IGFyZSBlcXVhbC5cbiAgICovXG4gIHB1YmxpYyB0YWJJbmRleGVzRXF1YWwoXG4gICAgdGFiSW5kZXgxOiBTa3lUYWJJbmRleCB8IHVuZGVmaW5lZCxcbiAgICB0YWJJbmRleDI6IFNreVRhYkluZGV4IHwgdW5kZWZpbmVkXG4gICk6IGJvb2xlYW4ge1xuICAgIHJldHVybiAoXG4gICAgICB0YWJJbmRleDEgPT09IHRhYkluZGV4MiB8fFxuICAgICAgKHRhYkluZGV4MSAhPT0gdW5kZWZpbmVkICYmXG4gICAgICAgIHRhYkluZGV4MiAhPT0gdW5kZWZpbmVkICYmXG4gICAgICAgICt0YWJJbmRleDEgPT09ICt0YWJJbmRleDIpXG4gICAgKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBWZXJpZmllcyBpZiBhIHByb3ZpZGVkIHRhYiBpbmRleCBpcyByZWdpc3RlcmVkLlxuICAgKi9cbiAgcHVibGljIGlzVmFsaWRUYWJJbmRleCh0YWJJbmRleDogU2t5VGFiSW5kZXgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy4jdGFicy5zb21lKCh0YWIpID0+XG4gICAgICB0aGlzLnRhYkluZGV4ZXNFcXVhbCh0YWIudGFiSW5kZXgsIHRhYkluZGV4KVxuICAgICk7XG4gIH1cblxuICAvKipcbiAgICogQWN0aXZhdGVzIHRoZSBmaXJzdCByZWdpc3RlcmVkIHRhYi5cbiAgICovXG4gIHB1YmxpYyBhY3RpdmF0ZUZpcnN0VGFiKCk6IFNreVRhYkluZGV4IHwgdW5kZWZpbmVkIHtcbiAgICBjb25zdCBmaXJzdFRhYkluZGV4ID0gdGhpcy4jdGFic1swXSAmJiB0aGlzLiN0YWJzWzBdLnRhYkluZGV4O1xuICAgIGlmIChmaXJzdFRhYkluZGV4ICE9PSB1bmRlZmluZWQpIHtcbiAgICAgIHRoaXMuc2V0QWN0aXZlVGFiSW5kZXgoe1xuICAgICAgICB0YWJJbmRleDogZmlyc3RUYWJJbmRleCxcbiAgICAgIH0pO1xuICAgICAgcmV0dXJuIGZpcnN0VGFiSW5kZXg7XG4gICAgfVxuICAgIHJldHVybiB1bmRlZmluZWQ7XG4gIH1cblxuICAvKipcbiAgICogQWN0aXZhdGVzIHRoZSBuZXh0IHJlZ2lzdGVyZWQgdGFiLCBvciB0aGUgcHJldmlvdXMgb25lIGJhc2VkIG9uIGEgcHJvdmlkZWQgYXJyYXkgaW5kZXguXG4gICAqL1xuICBwdWJsaWMgYWN0aXZhdGVOZWFyZXN0VGFiKGFycmF5SW5kZXg6IG51bWJlcik6IHZvaWQge1xuICAgIGNvbnN0IG5ld0FjdGl2ZVRhYiA9IHRoaXMuI3RhYnNbYXJyYXlJbmRleF0gfHwgdGhpcy4jdGFic1thcnJheUluZGV4IC0gMV07XG4gICAgaWYgKG5ld0FjdGl2ZVRhYikge1xuICAgICAgdGhpcy5jdXJyZW50QWN0aXZlVGFiSW5kZXggPSBuZXdBY3RpdmVUYWIudGFiSW5kZXg7XG4gICAgfVxuICB9XG5cbiAgI2lzVGFiSW5kZXhBY3RpdmUodGFiSW5kZXg6IFNreVRhYkluZGV4IHwgdW5kZWZpbmVkKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMudGFiSW5kZXhlc0VxdWFsKHRhYkluZGV4LCB0aGlzLmN1cnJlbnRBY3RpdmVUYWJJbmRleCk7XG4gIH1cblxuICAjZ2V0TmV4dFRhYkFycmF5SW5kZXgoY3VycmVudEluZGV4OiBudW1iZXIpOiBudW1iZXIge1xuICAgIGxldCBuZXh0SW5kZXggPSBjdXJyZW50SW5kZXggKyAxO1xuXG4gICAgaWYgKG5leHRJbmRleCA9PT0gdGhpcy4jdGFicy5sZW5ndGgpIHtcbiAgICAgIG5leHRJbmRleCA9IDA7XG4gICAgfVxuXG4gICAgcmV0dXJuIG5leHRJbmRleDtcbiAgfVxuXG4gICNnZXRQcmV2VGFiQXJyYXlJbmRleChjdXJyZW50SW5kZXg6IG51bWJlcik6IG51bWJlciB7XG4gICAgbGV0IHByZXZJbmRleCA9IGN1cnJlbnRJbmRleCAtIDE7XG5cbiAgICBpZiAocHJldkluZGV4IDwgMCkge1xuICAgICAgcHJldkluZGV4ID0gdGhpcy4jdGFicy5sZW5ndGggLSAxO1xuICAgIH1cblxuICAgIHJldHVybiBwcmV2SW5kZXg7XG4gIH1cbn1cbiJdfQ==
@@ -176,7 +176,7 @@ export class SkyVerticalTabComponent {
176
176
  provide: SkyMediaQueryService,
177
177
  useExisting: SkyVerticalTabMediaQueryService,
178
178
  },
179
- ], viewQueries: [{ propertyName: "tabContent", first: true, predicate: ["tabContentWrapper"], descendants: true }], ngImport: i0, template: "<a\n class=\"sky-vertical-tab\"\n [attr.aria-controls]=\"isMobile ? null : ariaControls || tabContentPane.id\"\n [attr.aria-selected]=\"active\"\n [attr.id]=\"tabId\"\n [attr.role]=\"isMobile ? undefined : ariaRole\"\n [ngClass]=\"{\n 'sky-vertical-tab-active': active,\n 'sky-vertical-tab-disabled': disabled,\n 'sky-font-deemphasized': disabled,\n 'sky-deemphasized': disabled\n }\"\n [tabIndex]=\"tabIndex()\"\n (click)=\"activateTab()\"\n (keyup)=\"onTabButtonKeyUp($event)\"\n>\n <div class=\"sky-vertical-tab-display\">\n <div class=\"sky-vertical-tab-heading\">\n <span class=\"sky-vertical-tab-heading-value\">{{ tabHeading }}</span>\n <span\n class=\"sky-vertical-tab-count\"\n *ngIf=\"tabHeaderCount || tabHeaderCount === 0\"\n >\n ({{ tabHeaderCount }})\n </span>\n </div>\n <sky-status-indicator\n *ngIf=\"errorIndicator\"\n class=\"sky-vertical-tab-heading-error\"\n descriptionType=\"error\"\n indicatorType=\"danger\"\n ></sky-status-indicator>\n <sky-icon\n *ngIf=\"isMobile && showTabRightArrow\"\n class=\"sky-vertical-tab-right-arrow\"\n icon=\"chevron-right\"\n >\n </sky-icon>\n </div>\n</a>\n\n<div #tabContentWrapper>\n <div\n class=\"sky-vertical-tab-content-pane\"\n role=\"tabpanel\"\n tabindex=\"0\"\n skyId\n [attr.aria-labelledby]=\"tabId\"\n [ngClass]=\"{ 'sky-vertical-tab-hidden': !active }\"\n #tabContentPane\n >\n <ng-content></ng-content>\n\n <div></div>\n </div>\n</div>\n", styles: [".sky-vertical-tab{cursor:pointer;padding:7px 0 7px 10px;margin:5px 0 5px 10px;display:flex;text-decoration:none}.sky-vertical-tab:not(.sky-deemphasized){color:#212327}.sky-vertical-tab:hover{background-color:#eeeeef}.sky-vertical-tab:focus-visible{outline:thin dotted;outline:-webkit-focus-ring-color auto 5px}.sky-vertical-tab:hover .sky-vertical-tab-right-arrow{color:#979ba2}.sky-vertical-tab-active{background-color:#eeeeef;color:#212327;padding-left:6px;border-left:4px solid #00b4f1}.sky-vertical-tab-hidden{display:none}.sky-vertical-tab-display{display:flex;flex-grow:1}.sky-vertical-tab-heading-error{padding-left:5px}.sky-vertical-tab-count{margin-left:5px}.sky-vertical-tab-disabled{cursor:not-allowed;pointer-events:none}.sky-vertical-tab-right-arrow{padding:3px 10px 0 0;color:#cdcfd2}:host-context(.sky-theme-modern) .sky-vertical-tab{color:#686c73;cursor:pointer;padding:10px 0 10px 15px;margin:15px 0 15px 10px}:host-context(.sky-theme-modern) .sky-vertical-tab:not(.sky-vertical-tab-active):not(:active):hover{color:#212327;background-color:transparent;padding-left:14px;border-left:1px solid #00b4f1}:host-context(.sky-theme-modern) .sky-vertical-tab:not(:active):focus-visible{outline:solid 2px #1870B8;outline-offset:-2px;box-shadow:0 1px 8px #0000004d}:host-context(.sky-theme-modern) .sky-vertical-tab:focus:active:hover{outline:none;background:none}:host-context(.sky-theme-modern) .sky-vertical-tab:active{border-left:4px solid #00b4f1;color:#212327;padding-left:11px}:host-context(.sky-theme-modern) .sky-vertical-tab .sky-vertical-tab-heading-error{padding-left:10px;position:relative;top:-2px}:host-context(.sky-theme-modern) .sky-vertical-tab-active{background:none;color:#212327;padding-left:11px;border-left:4px solid #1870B8}.sky-theme-modern .sky-vertical-tab{color:#686c73;cursor:pointer;padding:10px 0 10px 15px;margin:15px 0 15px 10px}.sky-theme-modern .sky-vertical-tab:not(.sky-vertical-tab-active):not(:active):hover{color:#212327;background-color:transparent;padding-left:14px;border-left:1px solid #00b4f1}.sky-theme-modern .sky-vertical-tab:not(:active):focus-visible{outline:solid 2px #1870B8;outline-offset:-2px;box-shadow:0 1px 8px #0000004d}.sky-theme-modern .sky-vertical-tab:focus:active:hover{outline:none;background:none}.sky-theme-modern .sky-vertical-tab:active{border-left:4px solid #00b4f1;color:#212327;padding-left:11px}.sky-theme-modern .sky-vertical-tab .sky-vertical-tab-heading-error{padding-left:10px;position:relative;top:-2px}.sky-theme-modern .sky-vertical-tab-active{background:none;color:#212327;padding-left:11px;border-left:4px solid #1870B8}\n"], dependencies: [{ kind: "directive", type: i5.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i6.λ4, selector: "sky-icon", inputs: ["icon", "iconType", "size", "fixedWidth", "variant"] }, { kind: "directive", type: i7.λ2, selector: "[skyId]", exportAs: ["skyId"] }, { kind: "component", type: i6.λ10, selector: "sky-status-indicator", inputs: ["indicatorType", "descriptionType", "customDescription"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
179
+ ], viewQueries: [{ propertyName: "tabContent", first: true, predicate: ["tabContentWrapper"], descendants: true }], ngImport: i0, template: "<a\n class=\"sky-vertical-tab\"\n [attr.aria-controls]=\"isMobile ? null : ariaControls || tabContentPane.id\"\n [attr.aria-selected]=\"active\"\n [attr.id]=\"tabId\"\n [attr.role]=\"isMobile ? undefined : ariaRole\"\n [ngClass]=\"{\n 'sky-vertical-tab-active': active,\n 'sky-vertical-tab-disabled': disabled,\n 'sky-font-deemphasized': disabled,\n 'sky-deemphasized': disabled\n }\"\n [tabIndex]=\"tabIndex()\"\n (click)=\"activateTab()\"\n (keyup)=\"onTabButtonKeyUp($event)\"\n>\n <div class=\"sky-vertical-tab-display\">\n <div class=\"sky-vertical-tab-heading\">\n <span class=\"sky-vertical-tab-heading-value\">{{ tabHeading }}</span>\n <span\n class=\"sky-vertical-tab-count\"\n *ngIf=\"tabHeaderCount || tabHeaderCount === 0\"\n >\n ({{ tabHeaderCount }})\n </span>\n </div>\n <sky-status-indicator\n *ngIf=\"errorIndicator\"\n class=\"sky-vertical-tab-heading-error\"\n descriptionType=\"error\"\n indicatorType=\"danger\"\n ></sky-status-indicator>\n <sky-icon\n *ngIf=\"isMobile && showTabRightArrow\"\n class=\"sky-vertical-tab-right-arrow\"\n icon=\"chevron-right\"\n >\n </sky-icon>\n </div>\n</a>\n\n<div #tabContentWrapper>\n <div\n class=\"sky-vertical-tab-content-pane\"\n role=\"tabpanel\"\n tabindex=\"0\"\n skyId\n [attr.aria-labelledby]=\"tabId\"\n [ngClass]=\"{ 'sky-vertical-tab-hidden': !active }\"\n #tabContentPane\n >\n <ng-content></ng-content>\n\n <div></div>\n </div>\n</div>\n", styles: [".sky-vertical-tab{cursor:pointer;padding:7px 0 7px 10px;margin:5px 0 5px 10px;display:flex;text-decoration:none}.sky-vertical-tab:not(.sky-deemphasized){color:#212327}.sky-vertical-tab:hover{background-color:#eeeeef}.sky-vertical-tab:focus-visible{outline:thin dotted;outline:-webkit-focus-ring-color auto 5px}.sky-vertical-tab:hover .sky-vertical-tab-right-arrow{color:#979ba2}.sky-vertical-tab-active{background-color:#eeeeef;color:#212327;padding-left:6px;border-left:4px solid #00b4f1}.sky-vertical-tab-hidden{display:none}.sky-vertical-tab-display{display:flex;justify-content:space-between;flex-grow:1}.sky-vertical-tab-heading-error{padding-left:5px}.sky-vertical-tab-count{margin-left:5px}.sky-vertical-tab-disabled{cursor:not-allowed;pointer-events:none}.sky-vertical-tab-right-arrow{padding:3px 10px 0 0;color:#cdcfd2}:host-context(.sky-theme-modern) .sky-vertical-tab{color:#686c73;cursor:pointer;padding:10px 0 10px 15px;margin:15px 0 15px 10px}:host-context(.sky-theme-modern) .sky-vertical-tab:not(.sky-vertical-tab-active):not(:active):hover{color:#212327;background-color:transparent;padding-left:14px;border-left:1px solid #00b4f1}:host-context(.sky-theme-modern) .sky-vertical-tab:not(:active):focus-visible{outline:solid 2px #1870B8;outline-offset:-2px;box-shadow:0 1px 8px #0000004d}:host-context(.sky-theme-modern) .sky-vertical-tab:focus:active:hover{outline:none;background:none}:host-context(.sky-theme-modern) .sky-vertical-tab:active{border-left:4px solid #00b4f1;color:#212327;padding-left:11px}:host-context(.sky-theme-modern) .sky-vertical-tab .sky-vertical-tab-heading-error{padding-left:10px;position:relative;top:-2px}:host-context(.sky-theme-modern) .sky-vertical-tab-active{background:none;color:#212327;padding-left:11px;border-left:4px solid #1870B8}.sky-theme-modern .sky-vertical-tab{color:#686c73;cursor:pointer;padding:10px 0 10px 15px;margin:15px 0 15px 10px}.sky-theme-modern .sky-vertical-tab:not(.sky-vertical-tab-active):not(:active):hover{color:#212327;background-color:transparent;padding-left:14px;border-left:1px solid #00b4f1}.sky-theme-modern .sky-vertical-tab:not(:active):focus-visible{outline:solid 2px #1870B8;outline-offset:-2px;box-shadow:0 1px 8px #0000004d}.sky-theme-modern .sky-vertical-tab:focus:active:hover{outline:none;background:none}.sky-theme-modern .sky-vertical-tab:active{border-left:4px solid #00b4f1;color:#212327;padding-left:11px}.sky-theme-modern .sky-vertical-tab .sky-vertical-tab-heading-error{padding-left:10px;position:relative;top:-2px}.sky-theme-modern .sky-vertical-tab-active{background:none;color:#212327;padding-left:11px;border-left:4px solid #1870B8}:host-context(.sky-sectioned-form-tabs-only) .sky-vertical-tab{margin-left:0}\n"], dependencies: [{ kind: "directive", type: i5.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i6.λ4, selector: "sky-icon", inputs: ["icon", "iconType", "size", "fixedWidth", "variant"] }, { kind: "directive", type: i7.λ2, selector: "[skyId]", exportAs: ["skyId"] }, { kind: "component", type: i6.λ10, selector: "sky-status-indicator", inputs: ["indicatorType", "descriptionType", "customDescription"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
180
180
  }
181
181
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.1", ngImport: i0, type: SkyVerticalTabComponent, decorators: [{
182
182
  type: Component,
@@ -186,7 +186,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.1", ngImpor
186
186
  provide: SkyMediaQueryService,
187
187
  useExisting: SkyVerticalTabMediaQueryService,
188
188
  },
189
- ], changeDetection: ChangeDetectionStrategy.OnPush, template: "<a\n class=\"sky-vertical-tab\"\n [attr.aria-controls]=\"isMobile ? null : ariaControls || tabContentPane.id\"\n [attr.aria-selected]=\"active\"\n [attr.id]=\"tabId\"\n [attr.role]=\"isMobile ? undefined : ariaRole\"\n [ngClass]=\"{\n 'sky-vertical-tab-active': active,\n 'sky-vertical-tab-disabled': disabled,\n 'sky-font-deemphasized': disabled,\n 'sky-deemphasized': disabled\n }\"\n [tabIndex]=\"tabIndex()\"\n (click)=\"activateTab()\"\n (keyup)=\"onTabButtonKeyUp($event)\"\n>\n <div class=\"sky-vertical-tab-display\">\n <div class=\"sky-vertical-tab-heading\">\n <span class=\"sky-vertical-tab-heading-value\">{{ tabHeading }}</span>\n <span\n class=\"sky-vertical-tab-count\"\n *ngIf=\"tabHeaderCount || tabHeaderCount === 0\"\n >\n ({{ tabHeaderCount }})\n </span>\n </div>\n <sky-status-indicator\n *ngIf=\"errorIndicator\"\n class=\"sky-vertical-tab-heading-error\"\n descriptionType=\"error\"\n indicatorType=\"danger\"\n ></sky-status-indicator>\n <sky-icon\n *ngIf=\"isMobile && showTabRightArrow\"\n class=\"sky-vertical-tab-right-arrow\"\n icon=\"chevron-right\"\n >\n </sky-icon>\n </div>\n</a>\n\n<div #tabContentWrapper>\n <div\n class=\"sky-vertical-tab-content-pane\"\n role=\"tabpanel\"\n tabindex=\"0\"\n skyId\n [attr.aria-labelledby]=\"tabId\"\n [ngClass]=\"{ 'sky-vertical-tab-hidden': !active }\"\n #tabContentPane\n >\n <ng-content></ng-content>\n\n <div></div>\n </div>\n</div>\n", styles: [".sky-vertical-tab{cursor:pointer;padding:7px 0 7px 10px;margin:5px 0 5px 10px;display:flex;text-decoration:none}.sky-vertical-tab:not(.sky-deemphasized){color:#212327}.sky-vertical-tab:hover{background-color:#eeeeef}.sky-vertical-tab:focus-visible{outline:thin dotted;outline:-webkit-focus-ring-color auto 5px}.sky-vertical-tab:hover .sky-vertical-tab-right-arrow{color:#979ba2}.sky-vertical-tab-active{background-color:#eeeeef;color:#212327;padding-left:6px;border-left:4px solid #00b4f1}.sky-vertical-tab-hidden{display:none}.sky-vertical-tab-display{display:flex;flex-grow:1}.sky-vertical-tab-heading-error{padding-left:5px}.sky-vertical-tab-count{margin-left:5px}.sky-vertical-tab-disabled{cursor:not-allowed;pointer-events:none}.sky-vertical-tab-right-arrow{padding:3px 10px 0 0;color:#cdcfd2}:host-context(.sky-theme-modern) .sky-vertical-tab{color:#686c73;cursor:pointer;padding:10px 0 10px 15px;margin:15px 0 15px 10px}:host-context(.sky-theme-modern) .sky-vertical-tab:not(.sky-vertical-tab-active):not(:active):hover{color:#212327;background-color:transparent;padding-left:14px;border-left:1px solid #00b4f1}:host-context(.sky-theme-modern) .sky-vertical-tab:not(:active):focus-visible{outline:solid 2px #1870B8;outline-offset:-2px;box-shadow:0 1px 8px #0000004d}:host-context(.sky-theme-modern) .sky-vertical-tab:focus:active:hover{outline:none;background:none}:host-context(.sky-theme-modern) .sky-vertical-tab:active{border-left:4px solid #00b4f1;color:#212327;padding-left:11px}:host-context(.sky-theme-modern) .sky-vertical-tab .sky-vertical-tab-heading-error{padding-left:10px;position:relative;top:-2px}:host-context(.sky-theme-modern) .sky-vertical-tab-active{background:none;color:#212327;padding-left:11px;border-left:4px solid #1870B8}.sky-theme-modern .sky-vertical-tab{color:#686c73;cursor:pointer;padding:10px 0 10px 15px;margin:15px 0 15px 10px}.sky-theme-modern .sky-vertical-tab:not(.sky-vertical-tab-active):not(:active):hover{color:#212327;background-color:transparent;padding-left:14px;border-left:1px solid #00b4f1}.sky-theme-modern .sky-vertical-tab:not(:active):focus-visible{outline:solid 2px #1870B8;outline-offset:-2px;box-shadow:0 1px 8px #0000004d}.sky-theme-modern .sky-vertical-tab:focus:active:hover{outline:none;background:none}.sky-theme-modern .sky-vertical-tab:active{border-left:4px solid #00b4f1;color:#212327;padding-left:11px}.sky-theme-modern .sky-vertical-tab .sky-vertical-tab-heading-error{padding-left:10px;position:relative;top:-2px}.sky-theme-modern .sky-vertical-tab-active{background:none;color:#212327;padding-left:11px;border-left:4px solid #1870B8}\n"] }]
189
+ ], changeDetection: ChangeDetectionStrategy.OnPush, template: "<a\n class=\"sky-vertical-tab\"\n [attr.aria-controls]=\"isMobile ? null : ariaControls || tabContentPane.id\"\n [attr.aria-selected]=\"active\"\n [attr.id]=\"tabId\"\n [attr.role]=\"isMobile ? undefined : ariaRole\"\n [ngClass]=\"{\n 'sky-vertical-tab-active': active,\n 'sky-vertical-tab-disabled': disabled,\n 'sky-font-deemphasized': disabled,\n 'sky-deemphasized': disabled\n }\"\n [tabIndex]=\"tabIndex()\"\n (click)=\"activateTab()\"\n (keyup)=\"onTabButtonKeyUp($event)\"\n>\n <div class=\"sky-vertical-tab-display\">\n <div class=\"sky-vertical-tab-heading\">\n <span class=\"sky-vertical-tab-heading-value\">{{ tabHeading }}</span>\n <span\n class=\"sky-vertical-tab-count\"\n *ngIf=\"tabHeaderCount || tabHeaderCount === 0\"\n >\n ({{ tabHeaderCount }})\n </span>\n </div>\n <sky-status-indicator\n *ngIf=\"errorIndicator\"\n class=\"sky-vertical-tab-heading-error\"\n descriptionType=\"error\"\n indicatorType=\"danger\"\n ></sky-status-indicator>\n <sky-icon\n *ngIf=\"isMobile && showTabRightArrow\"\n class=\"sky-vertical-tab-right-arrow\"\n icon=\"chevron-right\"\n >\n </sky-icon>\n </div>\n</a>\n\n<div #tabContentWrapper>\n <div\n class=\"sky-vertical-tab-content-pane\"\n role=\"tabpanel\"\n tabindex=\"0\"\n skyId\n [attr.aria-labelledby]=\"tabId\"\n [ngClass]=\"{ 'sky-vertical-tab-hidden': !active }\"\n #tabContentPane\n >\n <ng-content></ng-content>\n\n <div></div>\n </div>\n</div>\n", styles: [".sky-vertical-tab{cursor:pointer;padding:7px 0 7px 10px;margin:5px 0 5px 10px;display:flex;text-decoration:none}.sky-vertical-tab:not(.sky-deemphasized){color:#212327}.sky-vertical-tab:hover{background-color:#eeeeef}.sky-vertical-tab:focus-visible{outline:thin dotted;outline:-webkit-focus-ring-color auto 5px}.sky-vertical-tab:hover .sky-vertical-tab-right-arrow{color:#979ba2}.sky-vertical-tab-active{background-color:#eeeeef;color:#212327;padding-left:6px;border-left:4px solid #00b4f1}.sky-vertical-tab-hidden{display:none}.sky-vertical-tab-display{display:flex;justify-content:space-between;flex-grow:1}.sky-vertical-tab-heading-error{padding-left:5px}.sky-vertical-tab-count{margin-left:5px}.sky-vertical-tab-disabled{cursor:not-allowed;pointer-events:none}.sky-vertical-tab-right-arrow{padding:3px 10px 0 0;color:#cdcfd2}:host-context(.sky-theme-modern) .sky-vertical-tab{color:#686c73;cursor:pointer;padding:10px 0 10px 15px;margin:15px 0 15px 10px}:host-context(.sky-theme-modern) .sky-vertical-tab:not(.sky-vertical-tab-active):not(:active):hover{color:#212327;background-color:transparent;padding-left:14px;border-left:1px solid #00b4f1}:host-context(.sky-theme-modern) .sky-vertical-tab:not(:active):focus-visible{outline:solid 2px #1870B8;outline-offset:-2px;box-shadow:0 1px 8px #0000004d}:host-context(.sky-theme-modern) .sky-vertical-tab:focus:active:hover{outline:none;background:none}:host-context(.sky-theme-modern) .sky-vertical-tab:active{border-left:4px solid #00b4f1;color:#212327;padding-left:11px}:host-context(.sky-theme-modern) .sky-vertical-tab .sky-vertical-tab-heading-error{padding-left:10px;position:relative;top:-2px}:host-context(.sky-theme-modern) .sky-vertical-tab-active{background:none;color:#212327;padding-left:11px;border-left:4px solid #1870B8}.sky-theme-modern .sky-vertical-tab{color:#686c73;cursor:pointer;padding:10px 0 10px 15px;margin:15px 0 15px 10px}.sky-theme-modern .sky-vertical-tab:not(.sky-vertical-tab-active):not(:active):hover{color:#212327;background-color:transparent;padding-left:14px;border-left:1px solid #00b4f1}.sky-theme-modern .sky-vertical-tab:not(:active):focus-visible{outline:solid 2px #1870B8;outline-offset:-2px;box-shadow:0 1px 8px #0000004d}.sky-theme-modern .sky-vertical-tab:focus:active:hover{outline:none;background:none}.sky-theme-modern .sky-vertical-tab:active{border-left:4px solid #00b4f1;color:#212327;padding-left:11px}.sky-theme-modern .sky-vertical-tab .sky-vertical-tab-heading-error{padding-left:10px;position:relative;top:-2px}.sky-theme-modern .sky-vertical-tab-active{background:none;color:#212327;padding-left:11px;border-left:4px solid #1870B8}:host-context(.sky-sectioned-form-tabs-only) .sky-vertical-tab{margin-left:0}\n"] }]
190
190
  }], ctorParameters: function () { return [{ type: i1.SkyVerticalTabsetAdapterService }, { type: i0.ChangeDetectorRef }, { type: i2.SkyVerticalTabsetService }, { type: i3.SkyVerticalTabMediaQueryService }, { type: i4.SkyTabIdService, decorators: [{
191
191
  type: Optional
192
192
  }] }]; }, propDecorators: { active: [{
@@ -564,7 +564,7 @@ class SkyVerticalTabComponent {
564
564
  provide: SkyMediaQueryService,
565
565
  useExisting: SkyVerticalTabMediaQueryService,
566
566
  },
567
- ], viewQueries: [{ propertyName: "tabContent", first: true, predicate: ["tabContentWrapper"], descendants: true }], ngImport: i0, template: "<a\n class=\"sky-vertical-tab\"\n [attr.aria-controls]=\"isMobile ? null : ariaControls || tabContentPane.id\"\n [attr.aria-selected]=\"active\"\n [attr.id]=\"tabId\"\n [attr.role]=\"isMobile ? undefined : ariaRole\"\n [ngClass]=\"{\n 'sky-vertical-tab-active': active,\n 'sky-vertical-tab-disabled': disabled,\n 'sky-font-deemphasized': disabled,\n 'sky-deemphasized': disabled\n }\"\n [tabIndex]=\"tabIndex()\"\n (click)=\"activateTab()\"\n (keyup)=\"onTabButtonKeyUp($event)\"\n>\n <div class=\"sky-vertical-tab-display\">\n <div class=\"sky-vertical-tab-heading\">\n <span class=\"sky-vertical-tab-heading-value\">{{ tabHeading }}</span>\n <span\n class=\"sky-vertical-tab-count\"\n *ngIf=\"tabHeaderCount || tabHeaderCount === 0\"\n >\n ({{ tabHeaderCount }})\n </span>\n </div>\n <sky-status-indicator\n *ngIf=\"errorIndicator\"\n class=\"sky-vertical-tab-heading-error\"\n descriptionType=\"error\"\n indicatorType=\"danger\"\n ></sky-status-indicator>\n <sky-icon\n *ngIf=\"isMobile && showTabRightArrow\"\n class=\"sky-vertical-tab-right-arrow\"\n icon=\"chevron-right\"\n >\n </sky-icon>\n </div>\n</a>\n\n<div #tabContentWrapper>\n <div\n class=\"sky-vertical-tab-content-pane\"\n role=\"tabpanel\"\n tabindex=\"0\"\n skyId\n [attr.aria-labelledby]=\"tabId\"\n [ngClass]=\"{ 'sky-vertical-tab-hidden': !active }\"\n #tabContentPane\n >\n <ng-content></ng-content>\n\n <div></div>\n </div>\n</div>\n", styles: [".sky-vertical-tab{cursor:pointer;padding:7px 0 7px 10px;margin:5px 0 5px 10px;display:flex;text-decoration:none}.sky-vertical-tab:not(.sky-deemphasized){color:#212327}.sky-vertical-tab:hover{background-color:#eeeeef}.sky-vertical-tab:focus-visible{outline:thin dotted;outline:-webkit-focus-ring-color auto 5px}.sky-vertical-tab:hover .sky-vertical-tab-right-arrow{color:#979ba2}.sky-vertical-tab-active{background-color:#eeeeef;color:#212327;padding-left:6px;border-left:4px solid #00b4f1}.sky-vertical-tab-hidden{display:none}.sky-vertical-tab-display{display:flex;flex-grow:1}.sky-vertical-tab-heading-error{padding-left:5px}.sky-vertical-tab-count{margin-left:5px}.sky-vertical-tab-disabled{cursor:not-allowed;pointer-events:none}.sky-vertical-tab-right-arrow{padding:3px 10px 0 0;color:#cdcfd2}:host-context(.sky-theme-modern) .sky-vertical-tab{color:#686c73;cursor:pointer;padding:10px 0 10px 15px;margin:15px 0 15px 10px}:host-context(.sky-theme-modern) .sky-vertical-tab:not(.sky-vertical-tab-active):not(:active):hover{color:#212327;background-color:transparent;padding-left:14px;border-left:1px solid #00b4f1}:host-context(.sky-theme-modern) .sky-vertical-tab:not(:active):focus-visible{outline:solid 2px #1870B8;outline-offset:-2px;box-shadow:0 1px 8px #0000004d}:host-context(.sky-theme-modern) .sky-vertical-tab:focus:active:hover{outline:none;background:none}:host-context(.sky-theme-modern) .sky-vertical-tab:active{border-left:4px solid #00b4f1;color:#212327;padding-left:11px}:host-context(.sky-theme-modern) .sky-vertical-tab .sky-vertical-tab-heading-error{padding-left:10px;position:relative;top:-2px}:host-context(.sky-theme-modern) .sky-vertical-tab-active{background:none;color:#212327;padding-left:11px;border-left:4px solid #1870B8}.sky-theme-modern .sky-vertical-tab{color:#686c73;cursor:pointer;padding:10px 0 10px 15px;margin:15px 0 15px 10px}.sky-theme-modern .sky-vertical-tab:not(.sky-vertical-tab-active):not(:active):hover{color:#212327;background-color:transparent;padding-left:14px;border-left:1px solid #00b4f1}.sky-theme-modern .sky-vertical-tab:not(:active):focus-visible{outline:solid 2px #1870B8;outline-offset:-2px;box-shadow:0 1px 8px #0000004d}.sky-theme-modern .sky-vertical-tab:focus:active:hover{outline:none;background:none}.sky-theme-modern .sky-vertical-tab:active{border-left:4px solid #00b4f1;color:#212327;padding-left:11px}.sky-theme-modern .sky-vertical-tab .sky-vertical-tab-heading-error{padding-left:10px;position:relative;top:-2px}.sky-theme-modern .sky-vertical-tab-active{background:none;color:#212327;padding-left:11px;border-left:4px solid #1870B8}\n"], dependencies: [{ kind: "directive", type: i4.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i6.λ4, selector: "sky-icon", inputs: ["icon", "iconType", "size", "fixedWidth", "variant"] }, { kind: "directive", type: i1.λ2, selector: "[skyId]", exportAs: ["skyId"] }, { kind: "component", type: i6.λ10, selector: "sky-status-indicator", inputs: ["indicatorType", "descriptionType", "customDescription"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
567
+ ], viewQueries: [{ propertyName: "tabContent", first: true, predicate: ["tabContentWrapper"], descendants: true }], ngImport: i0, template: "<a\n class=\"sky-vertical-tab\"\n [attr.aria-controls]=\"isMobile ? null : ariaControls || tabContentPane.id\"\n [attr.aria-selected]=\"active\"\n [attr.id]=\"tabId\"\n [attr.role]=\"isMobile ? undefined : ariaRole\"\n [ngClass]=\"{\n 'sky-vertical-tab-active': active,\n 'sky-vertical-tab-disabled': disabled,\n 'sky-font-deemphasized': disabled,\n 'sky-deemphasized': disabled\n }\"\n [tabIndex]=\"tabIndex()\"\n (click)=\"activateTab()\"\n (keyup)=\"onTabButtonKeyUp($event)\"\n>\n <div class=\"sky-vertical-tab-display\">\n <div class=\"sky-vertical-tab-heading\">\n <span class=\"sky-vertical-tab-heading-value\">{{ tabHeading }}</span>\n <span\n class=\"sky-vertical-tab-count\"\n *ngIf=\"tabHeaderCount || tabHeaderCount === 0\"\n >\n ({{ tabHeaderCount }})\n </span>\n </div>\n <sky-status-indicator\n *ngIf=\"errorIndicator\"\n class=\"sky-vertical-tab-heading-error\"\n descriptionType=\"error\"\n indicatorType=\"danger\"\n ></sky-status-indicator>\n <sky-icon\n *ngIf=\"isMobile && showTabRightArrow\"\n class=\"sky-vertical-tab-right-arrow\"\n icon=\"chevron-right\"\n >\n </sky-icon>\n </div>\n</a>\n\n<div #tabContentWrapper>\n <div\n class=\"sky-vertical-tab-content-pane\"\n role=\"tabpanel\"\n tabindex=\"0\"\n skyId\n [attr.aria-labelledby]=\"tabId\"\n [ngClass]=\"{ 'sky-vertical-tab-hidden': !active }\"\n #tabContentPane\n >\n <ng-content></ng-content>\n\n <div></div>\n </div>\n</div>\n", styles: [".sky-vertical-tab{cursor:pointer;padding:7px 0 7px 10px;margin:5px 0 5px 10px;display:flex;text-decoration:none}.sky-vertical-tab:not(.sky-deemphasized){color:#212327}.sky-vertical-tab:hover{background-color:#eeeeef}.sky-vertical-tab:focus-visible{outline:thin dotted;outline:-webkit-focus-ring-color auto 5px}.sky-vertical-tab:hover .sky-vertical-tab-right-arrow{color:#979ba2}.sky-vertical-tab-active{background-color:#eeeeef;color:#212327;padding-left:6px;border-left:4px solid #00b4f1}.sky-vertical-tab-hidden{display:none}.sky-vertical-tab-display{display:flex;justify-content:space-between;flex-grow:1}.sky-vertical-tab-heading-error{padding-left:5px}.sky-vertical-tab-count{margin-left:5px}.sky-vertical-tab-disabled{cursor:not-allowed;pointer-events:none}.sky-vertical-tab-right-arrow{padding:3px 10px 0 0;color:#cdcfd2}:host-context(.sky-theme-modern) .sky-vertical-tab{color:#686c73;cursor:pointer;padding:10px 0 10px 15px;margin:15px 0 15px 10px}:host-context(.sky-theme-modern) .sky-vertical-tab:not(.sky-vertical-tab-active):not(:active):hover{color:#212327;background-color:transparent;padding-left:14px;border-left:1px solid #00b4f1}:host-context(.sky-theme-modern) .sky-vertical-tab:not(:active):focus-visible{outline:solid 2px #1870B8;outline-offset:-2px;box-shadow:0 1px 8px #0000004d}:host-context(.sky-theme-modern) .sky-vertical-tab:focus:active:hover{outline:none;background:none}:host-context(.sky-theme-modern) .sky-vertical-tab:active{border-left:4px solid #00b4f1;color:#212327;padding-left:11px}:host-context(.sky-theme-modern) .sky-vertical-tab .sky-vertical-tab-heading-error{padding-left:10px;position:relative;top:-2px}:host-context(.sky-theme-modern) .sky-vertical-tab-active{background:none;color:#212327;padding-left:11px;border-left:4px solid #1870B8}.sky-theme-modern .sky-vertical-tab{color:#686c73;cursor:pointer;padding:10px 0 10px 15px;margin:15px 0 15px 10px}.sky-theme-modern .sky-vertical-tab:not(.sky-vertical-tab-active):not(:active):hover{color:#212327;background-color:transparent;padding-left:14px;border-left:1px solid #00b4f1}.sky-theme-modern .sky-vertical-tab:not(:active):focus-visible{outline:solid 2px #1870B8;outline-offset:-2px;box-shadow:0 1px 8px #0000004d}.sky-theme-modern .sky-vertical-tab:focus:active:hover{outline:none;background:none}.sky-theme-modern .sky-vertical-tab:active{border-left:4px solid #00b4f1;color:#212327;padding-left:11px}.sky-theme-modern .sky-vertical-tab .sky-vertical-tab-heading-error{padding-left:10px;position:relative;top:-2px}.sky-theme-modern .sky-vertical-tab-active{background:none;color:#212327;padding-left:11px;border-left:4px solid #1870B8}:host-context(.sky-sectioned-form-tabs-only) .sky-vertical-tab{margin-left:0}\n"], dependencies: [{ kind: "directive", type: i4.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i6.λ4, selector: "sky-icon", inputs: ["icon", "iconType", "size", "fixedWidth", "variant"] }, { kind: "directive", type: i1.λ2, selector: "[skyId]", exportAs: ["skyId"] }, { kind: "component", type: i6.λ10, selector: "sky-status-indicator", inputs: ["indicatorType", "descriptionType", "customDescription"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
568
568
  }
569
569
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.1", ngImport: i0, type: SkyVerticalTabComponent, decorators: [{
570
570
  type: Component,
@@ -574,7 +574,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.1", ngImpor
574
574
  provide: SkyMediaQueryService,
575
575
  useExisting: SkyVerticalTabMediaQueryService,
576
576
  },
577
- ], changeDetection: ChangeDetectionStrategy.OnPush, template: "<a\n class=\"sky-vertical-tab\"\n [attr.aria-controls]=\"isMobile ? null : ariaControls || tabContentPane.id\"\n [attr.aria-selected]=\"active\"\n [attr.id]=\"tabId\"\n [attr.role]=\"isMobile ? undefined : ariaRole\"\n [ngClass]=\"{\n 'sky-vertical-tab-active': active,\n 'sky-vertical-tab-disabled': disabled,\n 'sky-font-deemphasized': disabled,\n 'sky-deemphasized': disabled\n }\"\n [tabIndex]=\"tabIndex()\"\n (click)=\"activateTab()\"\n (keyup)=\"onTabButtonKeyUp($event)\"\n>\n <div class=\"sky-vertical-tab-display\">\n <div class=\"sky-vertical-tab-heading\">\n <span class=\"sky-vertical-tab-heading-value\">{{ tabHeading }}</span>\n <span\n class=\"sky-vertical-tab-count\"\n *ngIf=\"tabHeaderCount || tabHeaderCount === 0\"\n >\n ({{ tabHeaderCount }})\n </span>\n </div>\n <sky-status-indicator\n *ngIf=\"errorIndicator\"\n class=\"sky-vertical-tab-heading-error\"\n descriptionType=\"error\"\n indicatorType=\"danger\"\n ></sky-status-indicator>\n <sky-icon\n *ngIf=\"isMobile && showTabRightArrow\"\n class=\"sky-vertical-tab-right-arrow\"\n icon=\"chevron-right\"\n >\n </sky-icon>\n </div>\n</a>\n\n<div #tabContentWrapper>\n <div\n class=\"sky-vertical-tab-content-pane\"\n role=\"tabpanel\"\n tabindex=\"0\"\n skyId\n [attr.aria-labelledby]=\"tabId\"\n [ngClass]=\"{ 'sky-vertical-tab-hidden': !active }\"\n #tabContentPane\n >\n <ng-content></ng-content>\n\n <div></div>\n </div>\n</div>\n", styles: [".sky-vertical-tab{cursor:pointer;padding:7px 0 7px 10px;margin:5px 0 5px 10px;display:flex;text-decoration:none}.sky-vertical-tab:not(.sky-deemphasized){color:#212327}.sky-vertical-tab:hover{background-color:#eeeeef}.sky-vertical-tab:focus-visible{outline:thin dotted;outline:-webkit-focus-ring-color auto 5px}.sky-vertical-tab:hover .sky-vertical-tab-right-arrow{color:#979ba2}.sky-vertical-tab-active{background-color:#eeeeef;color:#212327;padding-left:6px;border-left:4px solid #00b4f1}.sky-vertical-tab-hidden{display:none}.sky-vertical-tab-display{display:flex;flex-grow:1}.sky-vertical-tab-heading-error{padding-left:5px}.sky-vertical-tab-count{margin-left:5px}.sky-vertical-tab-disabled{cursor:not-allowed;pointer-events:none}.sky-vertical-tab-right-arrow{padding:3px 10px 0 0;color:#cdcfd2}:host-context(.sky-theme-modern) .sky-vertical-tab{color:#686c73;cursor:pointer;padding:10px 0 10px 15px;margin:15px 0 15px 10px}:host-context(.sky-theme-modern) .sky-vertical-tab:not(.sky-vertical-tab-active):not(:active):hover{color:#212327;background-color:transparent;padding-left:14px;border-left:1px solid #00b4f1}:host-context(.sky-theme-modern) .sky-vertical-tab:not(:active):focus-visible{outline:solid 2px #1870B8;outline-offset:-2px;box-shadow:0 1px 8px #0000004d}:host-context(.sky-theme-modern) .sky-vertical-tab:focus:active:hover{outline:none;background:none}:host-context(.sky-theme-modern) .sky-vertical-tab:active{border-left:4px solid #00b4f1;color:#212327;padding-left:11px}:host-context(.sky-theme-modern) .sky-vertical-tab .sky-vertical-tab-heading-error{padding-left:10px;position:relative;top:-2px}:host-context(.sky-theme-modern) .sky-vertical-tab-active{background:none;color:#212327;padding-left:11px;border-left:4px solid #1870B8}.sky-theme-modern .sky-vertical-tab{color:#686c73;cursor:pointer;padding:10px 0 10px 15px;margin:15px 0 15px 10px}.sky-theme-modern .sky-vertical-tab:not(.sky-vertical-tab-active):not(:active):hover{color:#212327;background-color:transparent;padding-left:14px;border-left:1px solid #00b4f1}.sky-theme-modern .sky-vertical-tab:not(:active):focus-visible{outline:solid 2px #1870B8;outline-offset:-2px;box-shadow:0 1px 8px #0000004d}.sky-theme-modern .sky-vertical-tab:focus:active:hover{outline:none;background:none}.sky-theme-modern .sky-vertical-tab:active{border-left:4px solid #00b4f1;color:#212327;padding-left:11px}.sky-theme-modern .sky-vertical-tab .sky-vertical-tab-heading-error{padding-left:10px;position:relative;top:-2px}.sky-theme-modern .sky-vertical-tab-active{background:none;color:#212327;padding-left:11px;border-left:4px solid #1870B8}\n"] }]
577
+ ], changeDetection: ChangeDetectionStrategy.OnPush, template: "<a\n class=\"sky-vertical-tab\"\n [attr.aria-controls]=\"isMobile ? null : ariaControls || tabContentPane.id\"\n [attr.aria-selected]=\"active\"\n [attr.id]=\"tabId\"\n [attr.role]=\"isMobile ? undefined : ariaRole\"\n [ngClass]=\"{\n 'sky-vertical-tab-active': active,\n 'sky-vertical-tab-disabled': disabled,\n 'sky-font-deemphasized': disabled,\n 'sky-deemphasized': disabled\n }\"\n [tabIndex]=\"tabIndex()\"\n (click)=\"activateTab()\"\n (keyup)=\"onTabButtonKeyUp($event)\"\n>\n <div class=\"sky-vertical-tab-display\">\n <div class=\"sky-vertical-tab-heading\">\n <span class=\"sky-vertical-tab-heading-value\">{{ tabHeading }}</span>\n <span\n class=\"sky-vertical-tab-count\"\n *ngIf=\"tabHeaderCount || tabHeaderCount === 0\"\n >\n ({{ tabHeaderCount }})\n </span>\n </div>\n <sky-status-indicator\n *ngIf=\"errorIndicator\"\n class=\"sky-vertical-tab-heading-error\"\n descriptionType=\"error\"\n indicatorType=\"danger\"\n ></sky-status-indicator>\n <sky-icon\n *ngIf=\"isMobile && showTabRightArrow\"\n class=\"sky-vertical-tab-right-arrow\"\n icon=\"chevron-right\"\n >\n </sky-icon>\n </div>\n</a>\n\n<div #tabContentWrapper>\n <div\n class=\"sky-vertical-tab-content-pane\"\n role=\"tabpanel\"\n tabindex=\"0\"\n skyId\n [attr.aria-labelledby]=\"tabId\"\n [ngClass]=\"{ 'sky-vertical-tab-hidden': !active }\"\n #tabContentPane\n >\n <ng-content></ng-content>\n\n <div></div>\n </div>\n</div>\n", styles: [".sky-vertical-tab{cursor:pointer;padding:7px 0 7px 10px;margin:5px 0 5px 10px;display:flex;text-decoration:none}.sky-vertical-tab:not(.sky-deemphasized){color:#212327}.sky-vertical-tab:hover{background-color:#eeeeef}.sky-vertical-tab:focus-visible{outline:thin dotted;outline:-webkit-focus-ring-color auto 5px}.sky-vertical-tab:hover .sky-vertical-tab-right-arrow{color:#979ba2}.sky-vertical-tab-active{background-color:#eeeeef;color:#212327;padding-left:6px;border-left:4px solid #00b4f1}.sky-vertical-tab-hidden{display:none}.sky-vertical-tab-display{display:flex;justify-content:space-between;flex-grow:1}.sky-vertical-tab-heading-error{padding-left:5px}.sky-vertical-tab-count{margin-left:5px}.sky-vertical-tab-disabled{cursor:not-allowed;pointer-events:none}.sky-vertical-tab-right-arrow{padding:3px 10px 0 0;color:#cdcfd2}:host-context(.sky-theme-modern) .sky-vertical-tab{color:#686c73;cursor:pointer;padding:10px 0 10px 15px;margin:15px 0 15px 10px}:host-context(.sky-theme-modern) .sky-vertical-tab:not(.sky-vertical-tab-active):not(:active):hover{color:#212327;background-color:transparent;padding-left:14px;border-left:1px solid #00b4f1}:host-context(.sky-theme-modern) .sky-vertical-tab:not(:active):focus-visible{outline:solid 2px #1870B8;outline-offset:-2px;box-shadow:0 1px 8px #0000004d}:host-context(.sky-theme-modern) .sky-vertical-tab:focus:active:hover{outline:none;background:none}:host-context(.sky-theme-modern) .sky-vertical-tab:active{border-left:4px solid #00b4f1;color:#212327;padding-left:11px}:host-context(.sky-theme-modern) .sky-vertical-tab .sky-vertical-tab-heading-error{padding-left:10px;position:relative;top:-2px}:host-context(.sky-theme-modern) .sky-vertical-tab-active{background:none;color:#212327;padding-left:11px;border-left:4px solid #1870B8}.sky-theme-modern .sky-vertical-tab{color:#686c73;cursor:pointer;padding:10px 0 10px 15px;margin:15px 0 15px 10px}.sky-theme-modern .sky-vertical-tab:not(.sky-vertical-tab-active):not(:active):hover{color:#212327;background-color:transparent;padding-left:14px;border-left:1px solid #00b4f1}.sky-theme-modern .sky-vertical-tab:not(:active):focus-visible{outline:solid 2px #1870B8;outline-offset:-2px;box-shadow:0 1px 8px #0000004d}.sky-theme-modern .sky-vertical-tab:focus:active:hover{outline:none;background:none}.sky-theme-modern .sky-vertical-tab:active{border-left:4px solid #00b4f1;color:#212327;padding-left:11px}.sky-theme-modern .sky-vertical-tab .sky-vertical-tab-heading-error{padding-left:10px;position:relative;top:-2px}.sky-theme-modern .sky-vertical-tab-active{background:none;color:#212327;padding-left:11px;border-left:4px solid #1870B8}:host-context(.sky-sectioned-form-tabs-only) .sky-vertical-tab{margin-left:0}\n"] }]
578
578
  }], ctorParameters: function () { return [{ type: SkyVerticalTabsetAdapterService }, { type: i0.ChangeDetectorRef }, { type: SkyVerticalTabsetService }, { type: SkyVerticalTabMediaQueryService }, { type: SkyTabIdService, decorators: [{
579
579
  type: Optional
580
580
  }] }]; }, propDecorators: { active: [{
@@ -1116,7 +1116,7 @@ class SkySectionedFormComponent {
1116
1116
  });
1117
1117
  }
1118
1118
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.1", ngImport: i0, type: SkySectionedFormComponent, deps: [{ token: SkyVerticalTabsetService }, { token: i0.ChangeDetectorRef }, { token: SkyTabIdService }, { token: i1.SkyLogService }], target: i0.ɵɵFactoryTarget.Component }); }
1119
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.1", type: SkySectionedFormComponent, selector: "sky-sectioned-form", inputs: { maintainSectionContent: "maintainSectionContent", messageStream: "messageStream" }, outputs: { indexChanged: "indexChanged", tabsVisibleChanged: "tabsVisibleChanged" }, providers: [SkyTabIdService, SkyVerticalTabsetService], viewQueries: [{ propertyName: "content", first: true, predicate: ["skySectionSideContent"], descendants: true }], ngImport: i0, template: "<div class=\"sky-sectioned-form\" (window:resize)=\"tabService.updateContent()\">\n <!--\n ARIA rules do not allow tabpanel elements to be children of a tablist element.\n However, the markup for each sky-vertical-tab component includes both the tab button\n and its panel, making the panel element a child of its tablist. Moreover, our\n sky-vertical-tab components can be grouped within collapsible containers, which also\n violates accessibility rules because only tab buttons can be children of a tablist.\n To address this, we create an empty tablist element with an aria-owns attribute,\n pointing to each tab element individually. That way, we don't have to worry about the\n structure for each sky-vertical-tab component in order to satisfy accessibility\n guidelines.\n -->\n <span\n aria-orientation=\"vertical\"\n [attr.aria-owns]=\"ariaOwns\"\n [attr.role]=\"ariaRole\"\n ></span>\n <div\n *ngIf=\"maintainSectionContent || tabsVisible()\"\n class=\"sky-sectioned-form-tabs\"\n [ngClass]=\"{ 'sky-sectioned-form-tabs-hidden': !tabsVisible() }\"\n [@tabEnter]=\"tabService.animationTabsVisibleState\"\n >\n <ng-content></ng-content>\n </div>\n <div\n *ngIf=\"maintainSectionContent || tabService.contentVisible()\"\n class=\"sky-sectioned-form-content\"\n [ngClass]=\"{\n 'sky-sectioned-form-content-hidden': !tabService.contentVisible()\n }\"\n [@contentEnter]=\"tabService.animationContentVisibleState\"\n #skySectionSideContent\n ></div>\n</div>\n", styles: [":host .sky-sectioned-form{display:block;max-height:none}:host .sky-sectioned-form-content{flex-basis:auto;overflow-y:visible}:host .sky-sectioned-form-tabs{flex-basis:auto;overflow-y:visible;border-right:1px solid #e2e3e4}:host-context(.sky-responsive-container-xs) .sky-sectioned-form,:host-context(.sky-responsive-container-sm) .sky-sectioned-form,:host-context(.sky-responsive-container-md) .sky-sectioned-form,:host-context(.sky-responsive-container-lg) .sky-sectioned-form{display:block;max-height:none}:host-context(.sky-responsive-container-xs) .sky-sectioned-form-content,:host-context(.sky-responsive-container-sm) .sky-sectioned-form-content,:host-context(.sky-responsive-container-md) .sky-sectioned-form-content,:host-context(.sky-responsive-container-lg) .sky-sectioned-form-content{flex-basis:auto;overflow-y:visible}:host-context(.sky-responsive-container-xs) .sky-sectioned-form-tabs,:host-context(.sky-responsive-container-sm) .sky-sectioned-form-tabs,:host-context(.sky-responsive-container-md) .sky-sectioned-form-tabs,:host-context(.sky-responsive-container-lg) .sky-sectioned-form-tabs{flex-basis:auto;overflow-y:visible;border-right:1px solid #e2e3e4}@media (min-width: 768px){:host .sky-sectioned-form{display:flex;max-height:100%}:host .sky-sectioned-form-content{flex-basis:70%;padding:15px;overflow-y:auto}:host .sky-sectioned-form-tabs{flex-basis:30%;overflow-y:auto}}:host-context(.sky-responsive-container-sm) .sky-sectioned-form,:host-context(.sky-responsive-container-md) .sky-sectioned-form,:host-context(.sky-responsive-container-lg) .sky-sectioned-form{display:flex;max-height:100%}:host-context(.sky-responsive-container-sm) .sky-sectioned-form-content,:host-context(.sky-responsive-container-md) .sky-sectioned-form-content,:host-context(.sky-responsive-container-lg) .sky-sectioned-form-content{flex-basis:70%;padding:15px;overflow-y:auto}:host-context(.sky-responsive-container-sm) .sky-sectioned-form-tabs,:host-context(.sky-responsive-container-md) .sky-sectioned-form-tabs,:host-context(.sky-responsive-container-lg) .sky-sectioned-form-tabs{flex-basis:30%;overflow-y:auto}.sky-sectioned-form-tabs-hidden,.sky-sectioned-form-content-hidden{display:none}:host-context(.sky-theme-modern) .sky-sectioned-form-content{padding:15px}:host-context(.sky-theme-modern) .sky-sectioned-form-tabs{border-right:1px solid #d2d2d2}@media (min-width: 768px){:host-context(.sky-theme-modern) :host .sky-sectioned-form-content{margin:20px 30px}}:host-context(.sky-theme-modern) :host-context(.sky-responsive-container-sm) .sky-sectioned-form-content,:host-context(.sky-theme-modern) :host-context(.sky-responsive-container-md) .sky-sectioned-form-content,:host-context(.sky-theme-modern) :host-context(.sky-responsive-container-lg) .sky-sectioned-form-content{margin:20px 30px}.sky-theme-modern .sky-sectioned-form-content{padding:15px}.sky-theme-modern .sky-sectioned-form-tabs{border-right:1px solid #d2d2d2}@media (min-width: 768px){.sky-theme-modern :host .sky-sectioned-form-content{margin:20px 30px}}.sky-theme-modern :host-context(.sky-responsive-container-sm) .sky-sectioned-form-content,.sky-theme-modern :host-context(.sky-responsive-container-md) .sky-sectioned-form-content,.sky-theme-modern :host-context(.sky-responsive-container-lg) .sky-sectioned-form-content{margin:20px 30px}\n"], dependencies: [{ kind: "directive", type: i4.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], animations: [
1119
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.1", type: SkySectionedFormComponent, selector: "sky-sectioned-form", inputs: { maintainSectionContent: "maintainSectionContent", messageStream: "messageStream" }, outputs: { indexChanged: "indexChanged", tabsVisibleChanged: "tabsVisibleChanged" }, providers: [SkyTabIdService, SkyVerticalTabsetService], viewQueries: [{ propertyName: "content", first: true, predicate: ["skySectionSideContent"], descendants: true }], ngImport: i0, template: "<div class=\"sky-sectioned-form\" (window:resize)=\"tabService.updateContent()\">\n <!--\n ARIA rules do not allow tabpanel elements to be children of a tablist element.\n However, the markup for each sky-vertical-tab component includes both the tab button\n and its panel, making the panel element a child of its tablist. Moreover, our\n sky-vertical-tab components can be grouped within collapsible containers, which also\n violates accessibility rules because only tab buttons can be children of a tablist.\n To address this, we create an empty tablist element with an aria-owns attribute,\n pointing to each tab element individually. That way, we don't have to worry about the\n structure for each sky-vertical-tab component in order to satisfy accessibility\n guidelines.\n -->\n <span\n aria-orientation=\"vertical\"\n [attr.aria-owns]=\"ariaOwns\"\n [attr.role]=\"ariaRole\"\n ></span>\n <div\n *ngIf=\"maintainSectionContent || tabsVisible()\"\n class=\"sky-sectioned-form-tabs\"\n [ngClass]=\"{\n 'sky-sectioned-form-tabs-hidden': !tabsVisible(),\n 'sky-sectioned-form-tabs-only': !tabService.contentVisible()\n }\"\n [@tabEnter]=\"tabService.animationTabsVisibleState\"\n >\n <ng-content></ng-content>\n </div>\n <div\n *ngIf=\"maintainSectionContent || tabService.contentVisible()\"\n class=\"sky-sectioned-form-content\"\n [ngClass]=\"{\n 'sky-sectioned-form-content-hidden': !tabService.contentVisible()\n }\"\n [@contentEnter]=\"tabService.animationContentVisibleState\"\n #skySectionSideContent\n ></div>\n</div>\n", styles: [":host .sky-sectioned-form{display:block;max-height:none}:host .sky-sectioned-form-content{flex-basis:auto;overflow-y:visible}:host .sky-sectioned-form-tabs{flex-basis:auto;overflow-y:visible}:host .sky-sectioned-form-tabs+.sky-sectioned-form-content{border-left:1px solid var(--sky-border-color-neutral-medium)}:host .sky-sectioned-form-content{padding:var(--sky-padding-even-md) var(--sky-padding-even-xl)}:host .sky-sectioned-form-tabs-only{padding:var(--sky-padding-even-md)}:host-context(.sky-responsive-container-xs) .sky-sectioned-form,:host-context(.sky-responsive-container-sm) .sky-sectioned-form,:host-context(.sky-responsive-container-md) .sky-sectioned-form,:host-context(.sky-responsive-container-lg) .sky-sectioned-form{display:block;max-height:none}:host-context(.sky-responsive-container-xs) .sky-sectioned-form-content,:host-context(.sky-responsive-container-sm) .sky-sectioned-form-content,:host-context(.sky-responsive-container-md) .sky-sectioned-form-content,:host-context(.sky-responsive-container-lg) .sky-sectioned-form-content{flex-basis:auto;overflow-y:visible}:host-context(.sky-responsive-container-xs) .sky-sectioned-form-tabs,:host-context(.sky-responsive-container-sm) .sky-sectioned-form-tabs,:host-context(.sky-responsive-container-md) .sky-sectioned-form-tabs,:host-context(.sky-responsive-container-lg) .sky-sectioned-form-tabs{flex-basis:auto;overflow-y:visible}:host-context(.sky-responsive-container-xs) .sky-sectioned-form-tabs+.sky-sectioned-form-content,:host-context(.sky-responsive-container-sm) .sky-sectioned-form-tabs+.sky-sectioned-form-content,:host-context(.sky-responsive-container-md) .sky-sectioned-form-tabs+.sky-sectioned-form-content,:host-context(.sky-responsive-container-lg) .sky-sectioned-form-tabs+.sky-sectioned-form-content{border-left:1px solid var(--sky-border-color-neutral-medium)}:host-context(.sky-responsive-container-xs) .sky-sectioned-form-content,:host-context(.sky-responsive-container-sm) .sky-sectioned-form-content,:host-context(.sky-responsive-container-md) .sky-sectioned-form-content,:host-context(.sky-responsive-container-lg) .sky-sectioned-form-content{padding:var(--sky-padding-even-md) var(--sky-padding-even-xl)}:host-context(.sky-responsive-container-xs) .sky-sectioned-form-tabs-only,:host-context(.sky-responsive-container-sm) .sky-sectioned-form-tabs-only,:host-context(.sky-responsive-container-md) .sky-sectioned-form-tabs-only,:host-context(.sky-responsive-container-lg) .sky-sectioned-form-tabs-only{padding:var(--sky-padding-even-md)}@media (min-width: 768px){:host .sky-sectioned-form{display:flex;max-height:100%}:host .sky-sectioned-form-content{flex-basis:70%;overflow-y:auto}:host .sky-sectioned-form-tabs{flex-basis:30%;overflow-y:auto}}:host-context(.sky-responsive-container-sm) .sky-sectioned-form,:host-context(.sky-responsive-container-md) .sky-sectioned-form,:host-context(.sky-responsive-container-lg) .sky-sectioned-form{display:flex;max-height:100%}:host-context(.sky-responsive-container-sm) .sky-sectioned-form-content,:host-context(.sky-responsive-container-md) .sky-sectioned-form-content,:host-context(.sky-responsive-container-lg) .sky-sectioned-form-content{flex-basis:70%;overflow-y:auto}:host-context(.sky-responsive-container-sm) .sky-sectioned-form-tabs,:host-context(.sky-responsive-container-md) .sky-sectioned-form-tabs,:host-context(.sky-responsive-container-lg) .sky-sectioned-form-tabs{flex-basis:30%;overflow-y:auto}.sky-sectioned-form-tabs-hidden,.sky-sectioned-form-content-hidden{display:none}\n"], dependencies: [{ kind: "directive", type: i4.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], animations: [
1120
1120
  trigger('tabEnter', [
1121
1121
  transition(`${HIDDEN_STATE} => ${VISIBLE_STATE}`, [
1122
1122
  style({ transform: 'translate(-100%)' }),
@@ -1146,7 +1146,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.1", ngImpor
1146
1146
  animate('150ms ease-in'),
1147
1147
  ]),
1148
1148
  ]),
1149
- ], template: "<div class=\"sky-sectioned-form\" (window:resize)=\"tabService.updateContent()\">\n <!--\n ARIA rules do not allow tabpanel elements to be children of a tablist element.\n However, the markup for each sky-vertical-tab component includes both the tab button\n and its panel, making the panel element a child of its tablist. Moreover, our\n sky-vertical-tab components can be grouped within collapsible containers, which also\n violates accessibility rules because only tab buttons can be children of a tablist.\n To address this, we create an empty tablist element with an aria-owns attribute,\n pointing to each tab element individually. That way, we don't have to worry about the\n structure for each sky-vertical-tab component in order to satisfy accessibility\n guidelines.\n -->\n <span\n aria-orientation=\"vertical\"\n [attr.aria-owns]=\"ariaOwns\"\n [attr.role]=\"ariaRole\"\n ></span>\n <div\n *ngIf=\"maintainSectionContent || tabsVisible()\"\n class=\"sky-sectioned-form-tabs\"\n [ngClass]=\"{ 'sky-sectioned-form-tabs-hidden': !tabsVisible() }\"\n [@tabEnter]=\"tabService.animationTabsVisibleState\"\n >\n <ng-content></ng-content>\n </div>\n <div\n *ngIf=\"maintainSectionContent || tabService.contentVisible()\"\n class=\"sky-sectioned-form-content\"\n [ngClass]=\"{\n 'sky-sectioned-form-content-hidden': !tabService.contentVisible()\n }\"\n [@contentEnter]=\"tabService.animationContentVisibleState\"\n #skySectionSideContent\n ></div>\n</div>\n", styles: [":host .sky-sectioned-form{display:block;max-height:none}:host .sky-sectioned-form-content{flex-basis:auto;overflow-y:visible}:host .sky-sectioned-form-tabs{flex-basis:auto;overflow-y:visible;border-right:1px solid #e2e3e4}:host-context(.sky-responsive-container-xs) .sky-sectioned-form,:host-context(.sky-responsive-container-sm) .sky-sectioned-form,:host-context(.sky-responsive-container-md) .sky-sectioned-form,:host-context(.sky-responsive-container-lg) .sky-sectioned-form{display:block;max-height:none}:host-context(.sky-responsive-container-xs) .sky-sectioned-form-content,:host-context(.sky-responsive-container-sm) .sky-sectioned-form-content,:host-context(.sky-responsive-container-md) .sky-sectioned-form-content,:host-context(.sky-responsive-container-lg) .sky-sectioned-form-content{flex-basis:auto;overflow-y:visible}:host-context(.sky-responsive-container-xs) .sky-sectioned-form-tabs,:host-context(.sky-responsive-container-sm) .sky-sectioned-form-tabs,:host-context(.sky-responsive-container-md) .sky-sectioned-form-tabs,:host-context(.sky-responsive-container-lg) .sky-sectioned-form-tabs{flex-basis:auto;overflow-y:visible;border-right:1px solid #e2e3e4}@media (min-width: 768px){:host .sky-sectioned-form{display:flex;max-height:100%}:host .sky-sectioned-form-content{flex-basis:70%;padding:15px;overflow-y:auto}:host .sky-sectioned-form-tabs{flex-basis:30%;overflow-y:auto}}:host-context(.sky-responsive-container-sm) .sky-sectioned-form,:host-context(.sky-responsive-container-md) .sky-sectioned-form,:host-context(.sky-responsive-container-lg) .sky-sectioned-form{display:flex;max-height:100%}:host-context(.sky-responsive-container-sm) .sky-sectioned-form-content,:host-context(.sky-responsive-container-md) .sky-sectioned-form-content,:host-context(.sky-responsive-container-lg) .sky-sectioned-form-content{flex-basis:70%;padding:15px;overflow-y:auto}:host-context(.sky-responsive-container-sm) .sky-sectioned-form-tabs,:host-context(.sky-responsive-container-md) .sky-sectioned-form-tabs,:host-context(.sky-responsive-container-lg) .sky-sectioned-form-tabs{flex-basis:30%;overflow-y:auto}.sky-sectioned-form-tabs-hidden,.sky-sectioned-form-content-hidden{display:none}:host-context(.sky-theme-modern) .sky-sectioned-form-content{padding:15px}:host-context(.sky-theme-modern) .sky-sectioned-form-tabs{border-right:1px solid #d2d2d2}@media (min-width: 768px){:host-context(.sky-theme-modern) :host .sky-sectioned-form-content{margin:20px 30px}}:host-context(.sky-theme-modern) :host-context(.sky-responsive-container-sm) .sky-sectioned-form-content,:host-context(.sky-theme-modern) :host-context(.sky-responsive-container-md) .sky-sectioned-form-content,:host-context(.sky-theme-modern) :host-context(.sky-responsive-container-lg) .sky-sectioned-form-content{margin:20px 30px}.sky-theme-modern .sky-sectioned-form-content{padding:15px}.sky-theme-modern .sky-sectioned-form-tabs{border-right:1px solid #d2d2d2}@media (min-width: 768px){.sky-theme-modern :host .sky-sectioned-form-content{margin:20px 30px}}.sky-theme-modern :host-context(.sky-responsive-container-sm) .sky-sectioned-form-content,.sky-theme-modern :host-context(.sky-responsive-container-md) .sky-sectioned-form-content,.sky-theme-modern :host-context(.sky-responsive-container-lg) .sky-sectioned-form-content{margin:20px 30px}\n"] }]
1149
+ ], template: "<div class=\"sky-sectioned-form\" (window:resize)=\"tabService.updateContent()\">\n <!--\n ARIA rules do not allow tabpanel elements to be children of a tablist element.\n However, the markup for each sky-vertical-tab component includes both the tab button\n and its panel, making the panel element a child of its tablist. Moreover, our\n sky-vertical-tab components can be grouped within collapsible containers, which also\n violates accessibility rules because only tab buttons can be children of a tablist.\n To address this, we create an empty tablist element with an aria-owns attribute,\n pointing to each tab element individually. That way, we don't have to worry about the\n structure for each sky-vertical-tab component in order to satisfy accessibility\n guidelines.\n -->\n <span\n aria-orientation=\"vertical\"\n [attr.aria-owns]=\"ariaOwns\"\n [attr.role]=\"ariaRole\"\n ></span>\n <div\n *ngIf=\"maintainSectionContent || tabsVisible()\"\n class=\"sky-sectioned-form-tabs\"\n [ngClass]=\"{\n 'sky-sectioned-form-tabs-hidden': !tabsVisible(),\n 'sky-sectioned-form-tabs-only': !tabService.contentVisible()\n }\"\n [@tabEnter]=\"tabService.animationTabsVisibleState\"\n >\n <ng-content></ng-content>\n </div>\n <div\n *ngIf=\"maintainSectionContent || tabService.contentVisible()\"\n class=\"sky-sectioned-form-content\"\n [ngClass]=\"{\n 'sky-sectioned-form-content-hidden': !tabService.contentVisible()\n }\"\n [@contentEnter]=\"tabService.animationContentVisibleState\"\n #skySectionSideContent\n ></div>\n</div>\n", styles: [":host .sky-sectioned-form{display:block;max-height:none}:host .sky-sectioned-form-content{flex-basis:auto;overflow-y:visible}:host .sky-sectioned-form-tabs{flex-basis:auto;overflow-y:visible}:host .sky-sectioned-form-tabs+.sky-sectioned-form-content{border-left:1px solid var(--sky-border-color-neutral-medium)}:host .sky-sectioned-form-content{padding:var(--sky-padding-even-md) var(--sky-padding-even-xl)}:host .sky-sectioned-form-tabs-only{padding:var(--sky-padding-even-md)}:host-context(.sky-responsive-container-xs) .sky-sectioned-form,:host-context(.sky-responsive-container-sm) .sky-sectioned-form,:host-context(.sky-responsive-container-md) .sky-sectioned-form,:host-context(.sky-responsive-container-lg) .sky-sectioned-form{display:block;max-height:none}:host-context(.sky-responsive-container-xs) .sky-sectioned-form-content,:host-context(.sky-responsive-container-sm) .sky-sectioned-form-content,:host-context(.sky-responsive-container-md) .sky-sectioned-form-content,:host-context(.sky-responsive-container-lg) .sky-sectioned-form-content{flex-basis:auto;overflow-y:visible}:host-context(.sky-responsive-container-xs) .sky-sectioned-form-tabs,:host-context(.sky-responsive-container-sm) .sky-sectioned-form-tabs,:host-context(.sky-responsive-container-md) .sky-sectioned-form-tabs,:host-context(.sky-responsive-container-lg) .sky-sectioned-form-tabs{flex-basis:auto;overflow-y:visible}:host-context(.sky-responsive-container-xs) .sky-sectioned-form-tabs+.sky-sectioned-form-content,:host-context(.sky-responsive-container-sm) .sky-sectioned-form-tabs+.sky-sectioned-form-content,:host-context(.sky-responsive-container-md) .sky-sectioned-form-tabs+.sky-sectioned-form-content,:host-context(.sky-responsive-container-lg) .sky-sectioned-form-tabs+.sky-sectioned-form-content{border-left:1px solid var(--sky-border-color-neutral-medium)}:host-context(.sky-responsive-container-xs) .sky-sectioned-form-content,:host-context(.sky-responsive-container-sm) .sky-sectioned-form-content,:host-context(.sky-responsive-container-md) .sky-sectioned-form-content,:host-context(.sky-responsive-container-lg) .sky-sectioned-form-content{padding:var(--sky-padding-even-md) var(--sky-padding-even-xl)}:host-context(.sky-responsive-container-xs) .sky-sectioned-form-tabs-only,:host-context(.sky-responsive-container-sm) .sky-sectioned-form-tabs-only,:host-context(.sky-responsive-container-md) .sky-sectioned-form-tabs-only,:host-context(.sky-responsive-container-lg) .sky-sectioned-form-tabs-only{padding:var(--sky-padding-even-md)}@media (min-width: 768px){:host .sky-sectioned-form{display:flex;max-height:100%}:host .sky-sectioned-form-content{flex-basis:70%;overflow-y:auto}:host .sky-sectioned-form-tabs{flex-basis:30%;overflow-y:auto}}:host-context(.sky-responsive-container-sm) .sky-sectioned-form,:host-context(.sky-responsive-container-md) .sky-sectioned-form,:host-context(.sky-responsive-container-lg) .sky-sectioned-form{display:flex;max-height:100%}:host-context(.sky-responsive-container-sm) .sky-sectioned-form-content,:host-context(.sky-responsive-container-md) .sky-sectioned-form-content,:host-context(.sky-responsive-container-lg) .sky-sectioned-form-content{flex-basis:70%;overflow-y:auto}:host-context(.sky-responsive-container-sm) .sky-sectioned-form-tabs,:host-context(.sky-responsive-container-md) .sky-sectioned-form-tabs,:host-context(.sky-responsive-container-lg) .sky-sectioned-form-tabs{flex-basis:30%;overflow-y:auto}.sky-sectioned-form-tabs-hidden,.sky-sectioned-form-content-hidden{display:none}\n"] }]
1150
1150
  }], ctorParameters: function () { return [{ type: SkyVerticalTabsetService }, { type: i0.ChangeDetectorRef }, { type: SkyTabIdService }, { type: i1.SkyLogService }]; }, propDecorators: { maintainSectionContent: [{
1151
1151
  type: Input
1152
1152
  }], messageStream: [{
@@ -1203,19 +1203,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.1", ngImpor
1203
1203
  * @internal
1204
1204
  */
1205
1205
  class SkyTabsetService {
1206
- get activeTabUnregistered() {
1207
- return this.#activeTabUnregistered;
1208
- }
1209
- get activeTabIndex() {
1210
- return this.#activeTabIndex;
1211
- }
1212
- get focusedTabBtnIndex() {
1213
- return this.#focusedTabBtnIndex;
1214
- }
1215
- get activeTabLayout() {
1216
- return this.#activeTabLayout;
1217
- }
1218
- #activeTabIndex;
1206
+ #activeTabChange;
1219
1207
  #focusedTabBtnIndex;
1220
1208
  #activeTabUnregistered;
1221
1209
  #activeTabLayout;
@@ -1224,16 +1212,22 @@ class SkyTabsetService {
1224
1212
  constructor() {
1225
1213
  this.currentActiveTabIndex = 0;
1226
1214
  this.currentFocusedTabBtnIndex = 0;
1227
- this.#activeTabLayout = new Subject();
1228
1215
  this.#tabs = [];
1229
1216
  this.#tabCounter = 0;
1230
- this.#activeTabIndex = new BehaviorSubject(0);
1231
- this.#activeTabUnregistered =
1232
- new Subject();
1217
+ this.#activeTabChange = new BehaviorSubject({
1218
+ initial: true,
1219
+ tabIndex: 0,
1220
+ });
1221
+ this.#activeTabLayout = new Subject();
1222
+ this.#activeTabUnregistered = new Subject();
1233
1223
  this.#focusedTabBtnIndex = new Subject();
1224
+ this.activeTabChange = this.#activeTabChange.asObservable();
1225
+ this.activeTabLayout = this.#activeTabLayout.asObservable();
1226
+ this.activeTabUnregistered = this.#activeTabUnregistered.asObservable();
1227
+ this.focusedTabBtnIndex = this.#focusedTabBtnIndex.asObservable();
1234
1228
  }
1235
1229
  ngOnDestroy() {
1236
- this.#activeTabIndex.complete();
1230
+ this.#activeTabChange.complete();
1237
1231
  this.#activeTabUnregistered.complete();
1238
1232
  this.#focusedTabBtnIndex.complete();
1239
1233
  this.#activeTabLayout.complete();
@@ -1244,14 +1238,14 @@ class SkyTabsetService {
1244
1238
  setActiveTabIndex(value, config = {
1245
1239
  emitChange: true,
1246
1240
  }) {
1247
- if (value !== undefined &&
1248
- !this.tabIndexesEqual(value, this.currentActiveTabIndex)) {
1249
- this.currentActiveTabIndex = value;
1241
+ if (value.tabIndex !== undefined &&
1242
+ !this.tabIndexesEqual(value.tabIndex, this.currentActiveTabIndex)) {
1243
+ this.currentActiveTabIndex = value.tabIndex;
1250
1244
  /* istanbul ignore else */
1251
1245
  if (config.emitChange) {
1252
- this.#activeTabIndex.next(value);
1246
+ this.#activeTabChange.next(value);
1253
1247
  }
1254
- this.setFocusedTabBtnIndex(value);
1248
+ this.setFocusedTabBtnIndex(value.tabIndex);
1255
1249
  }
1256
1250
  }
1257
1251
  focusNextTabBtn(tabButtons) {
@@ -1356,7 +1350,9 @@ class SkyTabsetService {
1356
1350
  activateFirstTab() {
1357
1351
  const firstTabIndex = this.#tabs[0] && this.#tabs[0].tabIndex;
1358
1352
  if (firstTabIndex !== undefined) {
1359
- this.setActiveTabIndex(firstTabIndex);
1353
+ this.setActiveTabIndex({
1354
+ tabIndex: firstTabIndex,
1355
+ });
1360
1356
  return firstTabIndex;
1361
1357
  }
1362
1358
  return undefined;
@@ -1584,7 +1580,7 @@ class SkyTabsetPermalinkService {
1584
1580
  /**
1585
1581
  * Sets the value of a URL query param.
1586
1582
  */
1587
- setParam(name, value) {
1583
+ setParam(name, value, initial) {
1588
1584
  const params = this.#getParams();
1589
1585
  if (value === null) {
1590
1586
  delete params[name];
@@ -1605,13 +1601,20 @@ class SkyTabsetPermalinkService {
1605
1601
  if (this.#location.isCurrentPathEqualTo(url)) {
1606
1602
  return;
1607
1603
  }
1608
- this.#location.go(url);
1604
+ // Use `replaceState()` when the tabset is being initialized so an extra
1605
+ // history item isn't added to the browser's back stack.
1606
+ this.#location[initial ? 'replaceState' : 'go'](url);
1609
1607
  }
1610
1608
  /**
1611
1609
  * Removes the provided query param from the URL.
1612
1610
  */
1613
1611
  clearParam(name) {
1614
- this.setParam(name, null);
1612
+ // Don't overwrite the URL while the Angular router is in the process
1613
+ // of navigating (e.g. when the tabset is destroyed due to navigating
1614
+ // away from the current page).
1615
+ if (!this.#router.getCurrentNavigation()) {
1616
+ this.setParam(name, null);
1617
+ }
1615
1618
  }
1616
1619
  /**
1617
1620
  * Returns a relative URL that includes the provided query parameter. The value is intended to be
@@ -2127,7 +2130,7 @@ class SkyTabsetComponent {
2127
2130
  }
2128
2131
  this.#_active = value;
2129
2132
  if (this.tabs) {
2130
- this.#tabsetService.setActiveTabIndex(value);
2133
+ this.#tabsetService.setActiveTabIndex({ tabIndex: value });
2131
2134
  }
2132
2135
  else {
2133
2136
  // On init, wait for children tabs to render before broadcasting the active tab index.
@@ -2135,7 +2138,7 @@ class SkyTabsetComponent {
2135
2138
  if (this.#tabsetService.isValidTabIndex(value)) {
2136
2139
  // On init, yield to the permalink ID, if it exists.
2137
2140
  if (this.#getActiveTabIndexByPermalinkId() === undefined) {
2138
- this.#tabsetService.setActiveTabIndex(value);
2141
+ this.#tabsetService.setActiveTabIndex({ tabIndex: value });
2139
2142
  }
2140
2143
  }
2141
2144
  else {
@@ -2251,7 +2254,10 @@ class SkyTabsetComponent {
2251
2254
  ngAfterViewInit() {
2252
2255
  this.#initTabComponents();
2253
2256
  const initialTabIndex = this.#getInitialTabIndex();
2254
- this.#tabsetService.setActiveTabIndex(initialTabIndex);
2257
+ this.#tabsetService.setActiveTabIndex({
2258
+ tabIndex: initialTabIndex,
2259
+ initial: true,
2260
+ });
2255
2261
  this.#listenTabButtonsOverflowChange();
2256
2262
  this.#listenLocationPopStateChange();
2257
2263
  // If the currently active tab is getting unregistered, activate the next one.
@@ -2293,7 +2299,7 @@ class SkyTabsetComponent {
2293
2299
  tabComponent?.close.emit();
2294
2300
  }
2295
2301
  onTabButtonClick(tabButton) {
2296
- this.#tabsetService.setActiveTabIndex(tabButton.tabIndex);
2302
+ this.#tabsetService.setActiveTabIndex({ tabIndex: tabButton.tabIndex });
2297
2303
  }
2298
2304
  onNewTabClick() {
2299
2305
  this.newTab.emit();
@@ -2330,10 +2336,10 @@ class SkyTabsetComponent {
2330
2336
  return activeIndex;
2331
2337
  }
2332
2338
  #listenActiveIndexChange() {
2333
- this.#tabsetService.activeTabIndex
2339
+ this.#tabsetService.activeTabChange
2334
2340
  .pipe(distinctUntilChanged(), takeUntil(this.#ngUnsubscribe))
2335
- .subscribe((activeIndex) => {
2336
- this.#updateTabsetComponent(activeIndex);
2341
+ .subscribe((tabChange) => {
2342
+ this.#updateTabsetComponent(tabChange.tabIndex, false, tabChange.initial);
2337
2343
  const activeTab = this.#getActiveTabComponent();
2338
2344
  this.#updateLayout(activeTab?.layout);
2339
2345
  });
@@ -2354,7 +2360,7 @@ class SkyTabsetComponent {
2354
2360
  // Wait for the tab components to render changes before finding the active one.
2355
2361
  setTimeout(() => {
2356
2362
  const tabIndex = this.#getActiveTabComponent()?.tabIndex;
2357
- this.#tabsetService.setActiveTabIndex(tabIndex);
2363
+ this.#tabsetService.setActiveTabIndex({ tabIndex });
2358
2364
  });
2359
2365
  });
2360
2366
  combineLatest(this.tabs.map((tab) => tab.tabIndexChange))
@@ -2392,7 +2398,9 @@ class SkyTabsetComponent {
2392
2398
  }
2393
2399
  this.#initTabComponents();
2394
2400
  const activeIndex = this.#getActiveTabComponent()?.tabIndex;
2395
- this.#tabsetService.setActiveTabIndex(activeIndex, {
2401
+ this.#tabsetService.setActiveTabIndex({
2402
+ tabIndex: activeIndex,
2403
+ }, {
2396
2404
  emitChange: false,
2397
2405
  });
2398
2406
  this.#listenTabComponentsStateChange();
@@ -2431,7 +2439,9 @@ class SkyTabsetComponent {
2431
2439
  }
2432
2440
  #setActiveTabIndexByPermalinkId() {
2433
2441
  const activeIndex = this.#getActiveTabIndexByPermalinkId();
2434
- this.#tabsetService.setActiveTabIndex(activeIndex);
2442
+ this.#tabsetService.setActiveTabIndex({
2443
+ tabIndex: activeIndex,
2444
+ });
2435
2445
  }
2436
2446
  #getActiveTabIndexByPermalinkId() {
2437
2447
  if (this.permalinkId) {
@@ -2484,8 +2494,11 @@ class SkyTabsetComponent {
2484
2494
  * Setting this value to `false` will simply update the existing tab buttons. Setting this value
2485
2495
  * to `true` is only necessary when the underlying tab components have changed and the tab
2486
2496
  * buttons must reflect those changes.
2497
+ * @param initial Indicates whether tabs are being updated during initialization of the tabset
2498
+ * component. This is passed through to the permalink service where it prevents adding an extra
2499
+ * item to browser history when the URL is updated with the selected tab's permalink value.
2487
2500
  */
2488
- #updateTabsetComponent(activeIndex, regenerateTabButtons = false) {
2501
+ #updateTabsetComponent(activeIndex, regenerateTabButtons, initial) {
2489
2502
  // Activate/deactivate tab components.
2490
2503
  this.tabs?.forEach((tab) => {
2491
2504
  this.#tabsetService.tabIndexesEqual(tab.tabIndex, activeIndex)
@@ -2510,7 +2523,7 @@ class SkyTabsetComponent {
2510
2523
  return this.#tabsetService.tabIndexesEqual(tab.tabIndex, activeIndex);
2511
2524
  });
2512
2525
  if (activeTabComponent) {
2513
- this.#permalinkService.setParam(this.permalinkId, activeTabComponent.permalinkValueOrDefault);
2526
+ this.#permalinkService.setParam(this.permalinkId, activeTabComponent.permalinkValueOrDefault, initial);
2514
2527
  }
2515
2528
  }
2516
2529
  // Wait for tab button view models to render before gauging dimensions.