@skyux/tabs 11.32.0 → 11.34.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -41,4 +41,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
41
41
  exports: [SkyI18nModule],
42
42
  }]
43
43
  }] });
44
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2t5LXRhYnMtcmVzb3VyY2VzLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tcG9uZW50cy90YWJzL3NyYy9saWIvbW9kdWxlcy9zaGFyZWQvc2t5LXRhYnMtcmVzb3VyY2VzLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSwwQkFBMEI7QUFFMUI7Ozs7O0dBS0c7QUFDSCxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3pDLE9BQU8sRUFDTCxhQUFhLEVBRWIsc0JBQXNCLEdBQ3ZCLE1BQU0sYUFBYSxDQUFDOztBQUVyQixNQUFNLFNBQVMsR0FBb0M7SUFDakQsT0FBTyxFQUFFO1FBQ1AsYUFBYSxFQUFFLEVBQUUsT0FBTyxFQUFFLFNBQVMsRUFBRTtRQUNyQyxlQUFlLEVBQUUsRUFBRSxPQUFPLEVBQUUsZUFBZSxFQUFFO1FBQzdDLDJCQUEyQixFQUFFLEVBQUUsT0FBTyxFQUFFLFFBQVEsRUFBRTtRQUNsRCx5QkFBeUIsRUFBRSxFQUFFLE9BQU8sRUFBRSxNQUFNLEVBQUU7UUFDOUMsNkJBQTZCLEVBQUUsRUFBRSxPQUFPLEVBQUUsVUFBVSxFQUFFO1FBQ3RELGNBQWMsRUFBRSxFQUFFLE9BQU8sRUFBRSxVQUFVLEVBQUU7UUFDdkMsa0NBQWtDLEVBQUUsRUFBRSxPQUFPLEVBQUUsVUFBVSxFQUFFO1FBQzNELDRCQUE0QixFQUFFLEVBQUUsT0FBTyxFQUFFLCtCQUErQixFQUFFO1FBQzFFLDhCQUE4QixFQUFFO1lBQzlCLE9BQU8sRUFBRSxpQ0FBaUM7U0FDM0M7UUFDRCxnQ0FBZ0MsRUFBRTtZQUNoQyxPQUFPLEVBQUUsbUNBQW1DO1NBQzdDO0tBQ0Y7Q0FDRixDQUFDO0FBRUYsc0JBQXNCLENBQUMsWUFBWSxDQUFDLFNBQVMsQ0FBQyxDQUFDO0FBRS9DOztHQUVHO0FBSUgsTUFBTSxPQUFPLHNCQUFzQjsrR0FBdEIsc0JBQXNCO2dIQUF0QixzQkFBc0IsWUFGdkIsYUFBYTtnSEFFWixzQkFBc0IsWUFGdkIsYUFBYTs7NEZBRVosc0JBQXNCO2tCQUhsQyxRQUFRO21CQUFDO29CQUNSLE9BQU8sRUFBRSxDQUFDLGFBQWEsQ0FBQztpQkFDekIiLCJzb3VyY2VzQ29udGVudCI6WyIvKiBpc3RhbmJ1bCBpZ25vcmUgZmlsZSAqL1xuXG4vKipcbiAqIE5PVElDRTogRE8gTk9UIE1PRElGWSBUSElTIEZJTEUhXG4gKiBUaGUgY29udGVudHMgb2YgdGhpcyBmaWxlIHdlcmUgYXV0b21hdGljYWxseSBnZW5lcmF0ZWQgYnlcbiAqIHRoZSAnbmcgZ2VuZXJhdGUgQHNreXV4L2kxOG46bGliLXJlc291cmNlcy1tb2R1bGUgbGliL21vZHVsZXMvc2hhcmVkL3NreS10YWJzJyBzY2hlbWF0aWMuXG4gKiBUbyB1cGRhdGUgdGhpcyBmaWxlLCBzaW1wbHkgcmVydW4gdGhlIGNvbW1hbmQuXG4gKi9cbmltcG9ydCB7IE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1xuICBTa3lJMThuTW9kdWxlLFxuICBTa3lMaWJSZXNvdXJjZXMsXG4gIFNreUxpYlJlc291cmNlc1NlcnZpY2UsXG59IGZyb20gJ0Bza3l1eC9pMThuJztcblxuY29uc3QgUkVTT1VSQ0VTOiBSZWNvcmQ8c3RyaW5nLCBTa3lMaWJSZXNvdXJjZXM+ID0ge1xuICAnRU4tVVMnOiB7XG4gICAgc2t5dXhfdGFiX2FkZDogeyBtZXNzYWdlOiAnQWRkIHRhYicgfSxcbiAgICBza3l1eF90YWJfY2xvc2U6IHsgbWVzc2FnZTogJ0Nsb3NlIHswfSB0YWInIH0sXG4gICAgc2t5dXhfdGFic19uYXZpZ2F0b3JfZmluaXNoOiB7IG1lc3NhZ2U6ICdGaW5pc2gnIH0sXG4gICAgc2t5dXhfdGFic19uYXZpZ2F0b3JfbmV4dDogeyBtZXNzYWdlOiAnTmV4dCcgfSxcbiAgICBza3l1eF90YWJzX25hdmlnYXRvcl9wcmV2aW91czogeyBtZXNzYWdlOiAnUHJldmlvdXMnIH0sXG4gICAgc2t5dXhfdGFiX29wZW46IHsgbWVzc2FnZTogJ09wZW4gdGFiJyB9LFxuICAgIHNreXV4X3ZlcnRpY2FsX3RhYnNfc2hvd190YWJzX3RleHQ6IHsgbWVzc2FnZTogJ1RhYiBsaXN0JyB9LFxuICAgIHNreXV4X3dpemFyZF9zcl9zdGVwX2N1cnJlbnQ6IHsgbWVzc2FnZTogJ1N0ZXAgezB9IG9mIHsxfSwgY3VycmVudDogezJ9JyB9LFxuICAgIHNreXV4X3dpemFyZF9zcl9zdGVwX2NvbXBsZXRlZDoge1xuICAgICAgbWVzc2FnZTogJ1N0ZXAgezB9IG9mIHsxfSwgY29tcGxldGVkOiB7Mn0nLFxuICAgIH0sXG4gICAgc2t5dXhfd2l6YXJkX3NyX3N0ZXBfdW5hdmFpbGFibGU6IHtcbiAgICAgIG1lc3NhZ2U6ICdTdGVwIHswfSBvZiB7MX0sIHVuYXZhaWxhYmxlOiB7Mn0nLFxuICAgIH0sXG4gIH0sXG59O1xuXG5Ta3lMaWJSZXNvdXJjZXNTZXJ2aWNlLmFkZFJlc291cmNlcyhSRVNPVVJDRVMpO1xuXG4vKipcbiAqIEltcG9ydCBpbnRvIGFueSBjb21wb25lbnQgbGlicmFyeSBtb2R1bGUgdGhhdCBuZWVkcyB0byB1c2UgcmVzb3VyY2Ugc3RyaW5ncy5cbiAqL1xuQE5nTW9kdWxlKHtcbiAgZXhwb3J0czogW1NreUkxOG5Nb2R1bGVdLFxufSlcbmV4cG9ydCBjbGFzcyBTa3lUYWJzUmVzb3VyY2VzTW9kdWxlIHt9XG4iXX0=
44
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2t5LXRhYnMtcmVzb3VyY2VzLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tcG9uZW50cy90YWJzL3NyYy9saWIvbW9kdWxlcy9zaGFyZWQvc2t5LXRhYnMtcmVzb3VyY2VzLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSwwQkFBMEI7QUFDMUI7Ozs7O0dBS0c7QUFDSCxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3pDLE9BQU8sRUFDTCxhQUFhLEVBRWIsc0JBQXNCLEdBQ3ZCLE1BQU0sYUFBYSxDQUFDOztBQUVyQixNQUFNLFNBQVMsR0FBb0M7SUFDakQsT0FBTyxFQUFFO1FBQ1AsYUFBYSxFQUFFLEVBQUUsT0FBTyxFQUFFLFNBQVMsRUFBRTtRQUNyQyxlQUFlLEVBQUUsRUFBRSxPQUFPLEVBQUUsZUFBZSxFQUFFO1FBQzdDLDJCQUEyQixFQUFFLEVBQUUsT0FBTyxFQUFFLFFBQVEsRUFBRTtRQUNsRCx5QkFBeUIsRUFBRSxFQUFFLE9BQU8sRUFBRSxNQUFNLEVBQUU7UUFDOUMsNkJBQTZCLEVBQUUsRUFBRSxPQUFPLEVBQUUsVUFBVSxFQUFFO1FBQ3RELGNBQWMsRUFBRSxFQUFFLE9BQU8sRUFBRSxVQUFVLEVBQUU7UUFDdkMsa0NBQWtDLEVBQUUsRUFBRSxPQUFPLEVBQUUsVUFBVSxFQUFFO1FBQzNELDRCQUE0QixFQUFFLEVBQUUsT0FBTyxFQUFFLCtCQUErQixFQUFFO1FBQzFFLDhCQUE4QixFQUFFO1lBQzlCLE9BQU8sRUFBRSxpQ0FBaUM7U0FDM0M7UUFDRCxnQ0FBZ0MsRUFBRTtZQUNoQyxPQUFPLEVBQUUsbUNBQW1DO1NBQzdDO0tBQ0Y7Q0FDRixDQUFDO0FBRUYsc0JBQXNCLENBQUMsWUFBWSxDQUFDLFNBQVMsQ0FBQyxDQUFDO0FBRS9DOztHQUVHO0FBSUgsTUFBTSxPQUFPLHNCQUFzQjsrR0FBdEIsc0JBQXNCO2dIQUF0QixzQkFBc0IsWUFGdkIsYUFBYTtnSEFFWixzQkFBc0IsWUFGdkIsYUFBYTs7NEZBRVosc0JBQXNCO2tCQUhsQyxRQUFRO21CQUFDO29CQUNSLE9BQU8sRUFBRSxDQUFDLGFBQWEsQ0FBQztpQkFDekIiLCJzb3VyY2VzQ29udGVudCI6WyIvKiBpc3RhbmJ1bCBpZ25vcmUgZmlsZSAqL1xuLyoqXG4gKiBOT1RJQ0U6IERPIE5PVCBNT0RJRlkgVEhJUyBGSUxFIVxuICogVGhlIGNvbnRlbnRzIG9mIHRoaXMgZmlsZSB3ZXJlIGF1dG9tYXRpY2FsbHkgZ2VuZXJhdGVkIGJ5XG4gKiB0aGUgJ25nIGdlbmVyYXRlIEBza3l1eC9pMThuOmxpYi1yZXNvdXJjZXMtbW9kdWxlIGxpYi9tb2R1bGVzL3NoYXJlZC9za3ktdGFicycgc2NoZW1hdGljLlxuICogVG8gdXBkYXRlIHRoaXMgZmlsZSwgc2ltcGx5IHJlcnVuIHRoZSBjb21tYW5kLlxuICovXG5pbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtcbiAgU2t5STE4bk1vZHVsZSxcbiAgU2t5TGliUmVzb3VyY2VzLFxuICBTa3lMaWJSZXNvdXJjZXNTZXJ2aWNlLFxufSBmcm9tICdAc2t5dXgvaTE4bic7XG5cbmNvbnN0IFJFU09VUkNFUzogUmVjb3JkPHN0cmluZywgU2t5TGliUmVzb3VyY2VzPiA9IHtcbiAgJ0VOLVVTJzoge1xuICAgIHNreXV4X3RhYl9hZGQ6IHsgbWVzc2FnZTogJ0FkZCB0YWInIH0sXG4gICAgc2t5dXhfdGFiX2Nsb3NlOiB7IG1lc3NhZ2U6ICdDbG9zZSB7MH0gdGFiJyB9LFxuICAgIHNreXV4X3RhYnNfbmF2aWdhdG9yX2ZpbmlzaDogeyBtZXNzYWdlOiAnRmluaXNoJyB9LFxuICAgIHNreXV4X3RhYnNfbmF2aWdhdG9yX25leHQ6IHsgbWVzc2FnZTogJ05leHQnIH0sXG4gICAgc2t5dXhfdGFic19uYXZpZ2F0b3JfcHJldmlvdXM6IHsgbWVzc2FnZTogJ1ByZXZpb3VzJyB9LFxuICAgIHNreXV4X3RhYl9vcGVuOiB7IG1lc3NhZ2U6ICdPcGVuIHRhYicgfSxcbiAgICBza3l1eF92ZXJ0aWNhbF90YWJzX3Nob3dfdGFic190ZXh0OiB7IG1lc3NhZ2U6ICdUYWIgbGlzdCcgfSxcbiAgICBza3l1eF93aXphcmRfc3Jfc3RlcF9jdXJyZW50OiB7IG1lc3NhZ2U6ICdTdGVwIHswfSBvZiB7MX0sIGN1cnJlbnQ6IHsyfScgfSxcbiAgICBza3l1eF93aXphcmRfc3Jfc3RlcF9jb21wbGV0ZWQ6IHtcbiAgICAgIG1lc3NhZ2U6ICdTdGVwIHswfSBvZiB7MX0sIGNvbXBsZXRlZDogezJ9JyxcbiAgICB9LFxuICAgIHNreXV4X3dpemFyZF9zcl9zdGVwX3VuYXZhaWxhYmxlOiB7XG4gICAgICBtZXNzYWdlOiAnU3RlcCB7MH0gb2YgezF9LCB1bmF2YWlsYWJsZTogezJ9JyxcbiAgICB9LFxuICB9LFxufTtcblxuU2t5TGliUmVzb3VyY2VzU2VydmljZS5hZGRSZXNvdXJjZXMoUkVTT1VSQ0VTKTtcblxuLyoqXG4gKiBJbXBvcnQgaW50byBhbnkgY29tcG9uZW50IGxpYnJhcnkgbW9kdWxlIHRoYXQgbmVlZHMgdG8gdXNlIHJlc291cmNlIHN0cmluZ3MuXG4gKi9cbkBOZ01vZHVsZSh7XG4gIGV4cG9ydHM6IFtTa3lJMThuTW9kdWxlXSxcbn0pXG5leHBvcnQgY2xhc3MgU2t5VGFic1Jlc291cmNlc01vZHVsZSB7fVxuIl19
@@ -1 +1 @@
1
- {"version":3,"file":"skyux-tabs-testing.mjs","sources":["../../../../../libs/components/tabs/testing/src/legacy/tabs/tabset-fixture.ts","../../../../../libs/components/tabs/testing/src/skyux-tabs-testing.ts"],"sourcesContent":["import { DebugElement } from '@angular/core';\nimport { ComponentFixture } from '@angular/core/testing';\nimport { By } from '@angular/platform-browser';\nimport { SkyAppTestUtility } from '@skyux-sdk/testing';\n\nimport { SkyTabsetFixtureTab } from './tab-fixture-tab';\n\n/**\n * Allows interaction with a SKY UX tabset component.\n * @internal\n */\nexport class SkyTabsetFixture {\n /**\n * The tabset component's ARIA label.\n */\n public get ariaLabel(): string | undefined {\n const tabsetEl = this.#getTabsetEl();\n return tabsetEl.getAttribute('aria-label') || undefined;\n }\n\n /**\n * The tabset component's ARIA labelled by attribute.\n */\n public get ariaLabelledBy(): string | undefined {\n const tabsetEl = this.#getTabsetEl();\n return tabsetEl.getAttribute('aria-labelledby') || undefined;\n }\n\n /**\n * The index of the currently selected tab.\n */\n public get activeTabIndex(): number {\n const tabLinkEls = this.#getTabLinkEls();\n\n for (let i = 0, n = tabLinkEls.length; i < n; i++) {\n if (tabLinkEls.item(i).classList.contains('sky-btn-tab-selected')) {\n return i;\n }\n }\n\n /* safety check */\n /* istanbul ignore next */\n return -1;\n }\n\n #debugEl: DebugElement;\n #fixture: ComponentFixture<unknown>;\n\n constructor(fixture: ComponentFixture<unknown>, skyTestId: string) {\n this.#fixture = fixture;\n this.#debugEl = SkyAppTestUtility.getDebugElementByTestId(\n fixture,\n skyTestId,\n 'sky-tabset',\n );\n }\n\n /**\n * Retrieves information about the tab at the specified index.\n * @param tabIndex The index of the tab.\n */\n public getTab(tabIndex: number): SkyTabsetFixtureTab {\n const tabLinkEl = this.#getTabLinkEl(tabIndex);\n\n const active = this.activeTabIndex === tabIndex;\n const disabled = tabLinkEl.classList.contains('sky-btn-tab-disabled');\n const tabHeading = this.#getTextContent(\n tabLinkEl.querySelector('.sky-tab-heading span')?.childNodes[0],\n );\n const tabHeaderCount = this.#getTextContent(\n tabLinkEl.querySelector('.sky-tab-header-count'),\n );\n\n let permalinkValue: string | undefined;\n\n if (tabLinkEl.href) {\n const permalink = tabLinkEl.href.split('?')[1];\n if (permalink) {\n const permalinkParts = permalink.split('=');\n\n permalinkValue = decodeURIComponent(permalinkParts[1]);\n }\n }\n\n return {\n active,\n disabled,\n permalinkValue,\n tabHeaderCount,\n tabHeading,\n };\n }\n\n /**\n * Clicks the tabset's \"new\" button.\n */\n public async clickNewButton(): Promise<void> {\n await this.#clickButton('sky-tabset-btn-new');\n }\n\n /**\n * Clicks the tabset's \"open\" button.\n */\n public async clickOpenButton(): Promise<void> {\n await this.#clickButton('sky-tabset-btn-open');\n }\n\n /**\n * Clicks the tab button at the specified index.\n * @param tabIndex The index of the tab.\n */\n public async clickTab(tabIndex: number): Promise<void> {\n const tabLinkEl = this.#getTabLinkEl(tabIndex);\n\n tabLinkEl.click();\n\n this.#fixture.detectChanges();\n await this.#fixture.whenStable();\n }\n\n /**\n * Click's the tab's close button at the specified index.\n * @param tabIndex The index of the tab.\n */\n public async clickTabClose(tabIndex: number): Promise<void> {\n const tabWrapperEl = this.#getTabsetEl().querySelectorAll(\n `.sky-tabset-tabs .sky-btn-tab-wrapper`,\n )[tabIndex];\n\n const closeBtnEl = tabWrapperEl.querySelector(\n '.sky-btn-tab-close',\n ) as HTMLButtonElement;\n\n if (!closeBtnEl) {\n throw new Error('The specified tab does not have a close button.');\n }\n\n closeBtnEl.click();\n\n this.#fixture.detectChanges();\n await this.#fixture.whenStable();\n }\n\n async #clickButton(buttonCls: string): Promise<void> {\n const tabsetEl = this.#getTabsetEl();\n\n const newButtonEl = tabsetEl.querySelector(\n `.sky-tabset-btns .${buttonCls}`,\n ) as HTMLButtonElement;\n\n newButtonEl.click();\n\n this.#fixture.detectChanges();\n await this.#fixture.whenStable();\n }\n\n #getTabsetEl(): HTMLDivElement {\n const tabsetEl = this.#debugEl.query(By.css('.sky-tabset')).nativeElement;\n\n return tabsetEl;\n }\n\n #getTabLinkEls(): NodeListOf<HTMLAnchorElement> {\n return this.#getTabsetEl().querySelectorAll(\n `.sky-tabset-tabs .sky-btn-tab`,\n );\n }\n\n #getTabLinkEl(tabIndex: number): HTMLAnchorElement {\n const tabLinkEl = this.#getTabLinkEls().item(tabIndex);\n\n if (!tabLinkEl) {\n throw new Error(`There is no tab at index ${tabIndex}.`);\n }\n\n return tabLinkEl;\n }\n\n #getTextContent(el: Element | Node | undefined | null): string | undefined {\n return (el && el.textContent?.trim()) || undefined;\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"skyux-tabs-testing.mjs","sources":["../../../../../libs/components/tabs/testing/src/legacy/tabs/tabset-fixture.ts","../../../../../libs/components/tabs/testing/src/skyux-tabs-testing.ts"],"sourcesContent":["import { DebugElement } from '@angular/core';\nimport { ComponentFixture } from '@angular/core/testing';\nimport { By } from '@angular/platform-browser';\nimport { SkyAppTestUtility } from '@skyux-sdk/testing';\n\nimport { SkyTabsetFixtureTab } from './tab-fixture-tab';\n\n/**\n * Allows interaction with a SKY UX tabset component.\n * @internal\n */\nexport class SkyTabsetFixture {\n /**\n * The tabset component's ARIA label.\n */\n public get ariaLabel(): string | undefined {\n const tabsetEl = this.#getTabsetEl();\n return tabsetEl.getAttribute('aria-label') || undefined;\n }\n\n /**\n * The tabset component's ARIA labelled by attribute.\n */\n public get ariaLabelledBy(): string | undefined {\n const tabsetEl = this.#getTabsetEl();\n return tabsetEl.getAttribute('aria-labelledby') || undefined;\n }\n\n /**\n * The index of the currently selected tab.\n */\n public get activeTabIndex(): number {\n const tabLinkEls = this.#getTabLinkEls();\n\n for (let i = 0, n = tabLinkEls.length; i < n; i++) {\n if (tabLinkEls.item(i).classList.contains('sky-btn-tab-selected')) {\n return i;\n }\n }\n\n /* safety check */\n /* istanbul ignore next */\n return -1;\n }\n\n #debugEl: DebugElement;\n #fixture: ComponentFixture<unknown>;\n\n constructor(fixture: ComponentFixture<unknown>, skyTestId: string) {\n this.#fixture = fixture;\n this.#debugEl = SkyAppTestUtility.getDebugElementByTestId(\n fixture,\n skyTestId,\n 'sky-tabset',\n );\n }\n\n /**\n * Retrieves information about the tab at the specified index.\n * @param tabIndex The index of the tab.\n */\n public getTab(tabIndex: number): SkyTabsetFixtureTab {\n const tabLinkEl = this.#getTabLinkEl(tabIndex);\n\n const active = this.activeTabIndex === tabIndex;\n const disabled = tabLinkEl.classList.contains('sky-btn-tab-disabled');\n const tabHeading = this.#getTextContent(\n tabLinkEl.querySelector('.sky-tab-heading span')?.childNodes[0],\n );\n const tabHeaderCount = this.#getTextContent(\n tabLinkEl.querySelector('.sky-tab-header-count'),\n );\n\n let permalinkValue: string | undefined;\n\n if (tabLinkEl.href) {\n const permalink = tabLinkEl.href.split('?')[1];\n if (permalink) {\n const permalinkParts = permalink.split('=');\n\n permalinkValue = decodeURIComponent(permalinkParts[1]);\n }\n }\n\n return {\n active,\n disabled,\n permalinkValue,\n tabHeaderCount,\n tabHeading,\n };\n }\n\n /**\n * Clicks the tabset's \"new\" button.\n */\n public async clickNewButton(): Promise<void> {\n await this.#clickButton('sky-tabset-btn-new');\n }\n\n /**\n * Clicks the tabset's \"open\" button.\n */\n public async clickOpenButton(): Promise<void> {\n await this.#clickButton('sky-tabset-btn-open');\n }\n\n /**\n * Clicks the tab button at the specified index.\n * @param tabIndex The index of the tab.\n */\n public async clickTab(tabIndex: number): Promise<void> {\n const tabLinkEl = this.#getTabLinkEl(tabIndex);\n\n tabLinkEl.click();\n\n this.#fixture.detectChanges();\n await this.#fixture.whenStable();\n }\n\n /**\n * Click's the tab's close button at the specified index.\n * @param tabIndex The index of the tab.\n */\n public async clickTabClose(tabIndex: number): Promise<void> {\n const tabWrapperEl = this.#getTabsetEl().querySelectorAll(\n `.sky-tabset-tabs .sky-btn-tab-wrapper`,\n )[tabIndex];\n\n const closeBtnEl = tabWrapperEl.querySelector(\n '.sky-btn-tab-close',\n ) as HTMLButtonElement;\n\n if (!closeBtnEl) {\n throw new Error('The specified tab does not have a close button.');\n }\n\n closeBtnEl.click();\n\n this.#fixture.detectChanges();\n await this.#fixture.whenStable();\n }\n\n async #clickButton(buttonCls: string): Promise<void> {\n const tabsetEl = this.#getTabsetEl();\n\n const newButtonEl = tabsetEl.querySelector(\n `.sky-tabset-btns .${buttonCls}`,\n ) as HTMLButtonElement;\n\n newButtonEl.click();\n\n this.#fixture.detectChanges();\n await this.#fixture.whenStable();\n }\n\n #getTabsetEl(): HTMLDivElement {\n const tabsetEl = this.#debugEl.query(By.css('.sky-tabset')).nativeElement;\n\n return tabsetEl;\n }\n\n #getTabLinkEls(): NodeListOf<HTMLAnchorElement> {\n return this.#getTabsetEl().querySelectorAll(\n `.sky-tabset-tabs .sky-btn-tab`,\n );\n }\n\n #getTabLinkEl(tabIndex: number): HTMLAnchorElement {\n const tabLinkEl = this.#getTabLinkEls().item(tabIndex);\n\n if (!tabLinkEl) {\n throw new Error(`There is no tab at index ${tabIndex}.`);\n }\n\n return tabLinkEl;\n }\n\n #getTextContent(el: Element | Node | undefined | null): string | undefined {\n return (el && el.textContent?.trim()) || undefined;\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}