@skyux/tabs 12.3.0 → 12.5.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.
@@ -534,7 +534,6 @@ class SkyVerticalTabsetGroupHarness extends SkyComponentHarness {
534
534
  }
535
535
  /**
536
536
  * Whether the group is expanded.
537
- * todo ask other engineers if checking for a class or property is better. my vote is property.
538
537
  */
539
538
  async isOpen() {
540
539
  return ((await (await this.#button()).getAttribute('aria-expanded')) === 'true');
@@ -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/modules/tabs/tab-content-harness.ts","../../../../../libs/components/tabs/testing/src/modules/tabs/tab-button-harness.ts","../../../../../libs/components/tabs/testing/src/modules/tabs/tabset-harness.ts","../../../../../libs/components/tabs/testing/src/modules/vertical-tabset/vertical-tab-content-harness.ts","../../../../../libs/components/tabs/testing/src/modules/vertical-tabset/vertical-tab-button-harness.ts","../../../../../libs/components/tabs/testing/src/modules/vertical-tabset/vertical-tabset-group-harness.ts","../../../../../libs/components/tabs/testing/src/modules/vertical-tabset/vertical-tabset-harness.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","import { HarnessPredicate } from '@angular/cdk/testing';\nimport { SkyQueryableComponentHarness } from '@skyux/core/testing';\n\nimport { SkyTabContentHarnessFilters } from './tab-content-harness-filters';\n\n/**\n * Harness for interacting with a tab component in tests.\n */\nexport class SkyTabContentHarness extends SkyQueryableComponentHarness {\n /**\n * @internal\n */\n public static hostSelector = 'sky-tab';\n\n #getTab = this.locatorFor('.sky-tab');\n\n /**\n * Gets a `HarnessPredicate` that can be used to search for a\n * `SkyTabContentHarness` that meets certain criteria.\n * @internal\n */\n public static with(\n filters: SkyTabContentHarnessFilters,\n ): HarnessPredicate<SkyTabContentHarness> {\n return new HarnessPredicate(SkyTabContentHarness, filters).addOption(\n 'tabId',\n filters.tabId,\n async (harness, tabId) => {\n const harnessId = await harness.getTabId();\n return await HarnessPredicate.stringMatches(harnessId, tabId);\n },\n );\n }\n\n /**\n * Gets the tab's layout.\n */\n public async getLayout(): Promise<string> {\n return (await (await this.host()).getAttribute('layout')) || 'none';\n }\n\n /**\n * @internal\n */\n public async getTabId(): Promise<string | null> {\n return await (await this.#getTab()).getAttribute('id');\n }\n\n /**\n * Whether the tab content is visible.\n */\n public async isVisible(): Promise<boolean> {\n return !(await (await this.#getTab()).getProperty<boolean>('hidden'));\n }\n}\n","import { HarnessPredicate } from '@angular/cdk/testing';\nimport { SkyComponentHarness } from '@skyux/core/testing';\n\nimport { SkyTabButtonHarnessFilters } from './tab-button-harness-filters';\nimport { SkyTabContentHarness } from './tab-content-harness';\n\n/**\n * Harness for interacting with a tab button component in tests.\n */\nexport class SkyTabButtonHarness extends SkyComponentHarness {\n /**\n * @internal\n */\n public static hostSelector = 'sky-tab-button';\n\n #getTabButton = this.locatorFor('a.sky-btn-tab');\n\n /**\n * Gets a `HarnessPredicate` that can be used to search for a\n * `SkyTabButtonHarness` that meets certain criteria.\n */\n public static with(\n filters: SkyTabButtonHarnessFilters,\n ): HarnessPredicate<SkyTabButtonHarness> {\n return new HarnessPredicate(SkyTabButtonHarness, filters).addOption(\n 'tabHeading',\n filters.tabHeading,\n async (harness, tabHeading) => {\n const harnessTabHeading = await harness.getTabHeading();\n return await HarnessPredicate.stringMatches(\n harnessTabHeading,\n tabHeading,\n );\n },\n );\n }\n\n /**\n * Clicks the tab button.\n */\n public async click(): Promise<void> {\n return await (await this.#getTabButton()).click();\n }\n\n /**\n * Clicks the remove tab button if it is visible.\n */\n public async clickRemoveButton(): Promise<void> {\n const button = await this.locatorForOptional('.sky-btn-tab-close')();\n if (!button) {\n throw new Error('Unable to find remove tab button.');\n }\n return await button.click();\n }\n\n /**\n * Gets the permalink that the page routes to when the tab is clicked.\n */\n public async getPermalink(): Promise<string | null> {\n return await (await this.#getTabButton()).getAttribute('href');\n }\n\n /**\n * Gets the `SkyTabContentHarness` controlled by this tab button.\n */\n public async getTabContentHarness(): Promise<SkyTabContentHarness> {\n return await this.documentRootLocatorFactory().locatorFor(\n SkyTabContentHarness.with({ tabId: await this.getTabId() }),\n )();\n }\n\n /**\n * Gets the tab heading.\n */\n public async getTabHeading(): Promise<string> {\n return (\n // eslint-disable-next-line @cspell/spellchecker\n await (await this.locatorFor('.sky-tab-heading > span[skyid]')()).text()\n );\n }\n\n /**\n * Gets whether the tab button is active.\n */\n public async isActive(): Promise<boolean> {\n return await (await this.#getTabButton()).hasClass('sky-btn-tab-selected');\n }\n\n /**\n * Gets whether the tab button is disabled.\n */\n public async isDisabled(): Promise<boolean> {\n return await (await this.#getTabButton()).hasClass('sky-btn-tab-disabled');\n }\n\n /**\n * Gets the id of the content controlled by this tab.\n * @internal\n */\n public async getTabId(): Promise<string> {\n return (\n (await (await this.#getTabButton()).getAttribute('aria-controls')) ||\n /* istanbul ignore next */\n ''\n );\n }\n}\n","import { HarnessPredicate } from '@angular/cdk/testing';\nimport { SkyComponentHarness } from '@skyux/core/testing';\nimport {\n SkyDropdownHarness,\n SkyDropdownMenuHarness,\n} from '@skyux/popovers/testing';\nimport { SkyTabsetButtonsDisplayMode } from '@skyux/tabs';\n\nimport { SkyTabButtonHarness } from './tab-button-harness';\nimport { SkyTabContentHarness } from './tab-content-harness';\nimport { SkyTabsetHarnessFilters } from './tabset-harness-filters';\n\n/**\n * Harness for interacting with a tabset component in tests.\n */\nexport class SkyTabsetHarness extends SkyComponentHarness {\n /**\n * @internal\n */\n public static hostSelector = 'sky-tabset';\n\n #getTabset = this.locatorFor('.sky-tabset');\n #getTabButtons = this.locatorForAll(SkyTabButtonHarness);\n #getTabDropdown = this.locatorFor(SkyDropdownHarness);\n\n /**\n * Gets a `HarnessPredicate` that can be used to search for a\n * `SkyTabsetHarness` that meets certain criteria.\n */\n public static with(\n filters: SkyTabsetHarnessFilters,\n ): HarnessPredicate<SkyTabsetHarness> {\n return SkyTabsetHarness.getDataSkyIdPredicate(filters);\n }\n\n /**\n * In `dropdown` mode, clicks the dropdown tab to open the tab dropdown menu.\n */\n public async clickDropdownTab(): Promise<void> {\n if (!((await this.getMode()) === 'dropdown')) {\n throw new Error(\n 'Cannot click dropdown tab button, tab is not in dropdown mode.',\n );\n }\n const button = await this.locatorFor(SkyDropdownHarness)();\n return await button.clickDropdownButton();\n }\n\n /**\n * Clicks the new tab button if visible.\n */\n public async clickNewTabButton(): Promise<void> {\n const newTabButton = await this.locatorForOptional(\n 'button.sky-tabset-btn-new',\n )();\n\n if (!newTabButton) {\n throw new Error('Unable to find the new tab button.');\n }\n\n return await newTabButton.click();\n }\n\n /**\n * Clicks the open tab button if visible.\n */\n public async clickOpenTabButton(): Promise<void> {\n const openTabButton = await this.locatorForOptional(\n 'button.sky-tabset-btn-open',\n )();\n\n if (!openTabButton) {\n throw new Error('Unable to find the open tab button.');\n }\n\n return await openTabButton.click();\n }\n\n /**\n * Clicks a tab button with a `tabHeading` matching the input.\n */\n public async clickTabButton(tabHeading: string): Promise<void> {\n const tabButton = await this.getTabButtonHarness(tabHeading);\n return await tabButton.click();\n }\n\n /**\n * Gets the active tab button harness.\n */\n public async getActiveTabButton(): Promise<SkyTabButtonHarness | null> {\n const tabButtonHarnesses = await this.getTabButtonHarnesses();\n\n for (const harness of tabButtonHarnesses) {\n if (await harness.isActive()) {\n return harness;\n }\n }\n\n /* istanbul ignore next */\n return null;\n }\n\n /**\n * Gets the tabset aria-label value.\n */\n public async getAriaLabel(): Promise<string | null> {\n return await (await this.#getTabset()).getAttribute('aria-label');\n }\n\n /**\n * Gets the tabset aria-labelledby value.\n */\n public async getAriaLabelledBy(): Promise<string | null> {\n return await (await this.#getTabset()).getAttribute('aria-labelledby');\n }\n\n /**\n * Gets the tabset's display mode.\n */\n public async getMode(): Promise<SkyTabsetButtonsDisplayMode> {\n if (await (await this.#getTabset()).hasClass('sky-tabset-mode-tabs')) {\n return 'tabs';\n }\n return 'dropdown';\n }\n\n /**\n * Gets a tab button harness with the given `tabHeading`\n */\n public async getTabButtonHarness(\n tabHeading: string,\n ): Promise<SkyTabButtonHarness> {\n if ((await this.getMode()) === 'dropdown') {\n const menu = await this.#getDropdownMenu();\n return await menu.queryHarness(\n SkyTabButtonHarness.with({ tabHeading: tabHeading }),\n );\n }\n return await this.locatorFor(\n SkyTabButtonHarness.with({ tabHeading: tabHeading }),\n )();\n }\n\n /**\n * Gets an array of all tab button harnesses.\n */\n public async getTabButtonHarnesses(): Promise<SkyTabButtonHarness[]> {\n if ((await this.getMode()) === 'dropdown') {\n const menu = await this.#getDropdownMenu();\n return await menu.queryHarnesses(SkyTabButtonHarness);\n }\n return await this.#getTabButtons();\n }\n\n /**\n * Gets a tab content harness for the tab with the given `tabHeading`.\n */\n public async getTabContentHarness(\n tabHeading: string,\n ): Promise<SkyTabContentHarness> {\n const tabButton = await this.getTabButtonHarness(tabHeading);\n const id = await tabButton.getTabId();\n return await this.locatorFor(SkyTabContentHarness.with({ tabId: id }))();\n }\n\n async #getDropdownMenu(): Promise<SkyDropdownMenuHarness> {\n const dropdown = await this.#getTabDropdown();\n if (!(await dropdown?.isOpen())) {\n throw new Error(\n 'Cannot get tab button when tabs is in dropdown mode and is closed.',\n );\n }\n return await dropdown.getDropdownMenu();\n }\n}\n","import { HarnessPredicate } from '@angular/cdk/testing';\nimport { SkyQueryableComponentHarness } from '@skyux/core/testing';\n\nimport { SkyVerticalTabContentHarnessFilters } from './vertical-tab-content-harness-filters';\n\n/**\n * Harness for interacting with a vertical tab content in tests.\n */\nexport class SkyVerticalTabContentHarness extends SkyQueryableComponentHarness {\n /**\n * @internal\n */\n public static hostSelector = '.sky-vertical-tab-content-pane';\n\n /**\n * Gets a `HarnessPredicate` that can be used to search for a\n * `SkyVerticalTabContentHarness` that meets certain criteria.\n */\n public static with(\n filters: SkyVerticalTabContentHarnessFilters,\n ): HarnessPredicate<SkyVerticalTabContentHarness> {\n return SkyVerticalTabContentHarness.getDataSkyIdPredicate(\n filters,\n ).addOption('tabId', filters.tabId, async (harness, tabId) => {\n const harnessId = await harness.getTabId();\n return await HarnessPredicate.stringMatches(harnessId, tabId);\n });\n }\n\n /**\n * Gets the tab content's id.\n * @internal\n */\n public async getTabId(): Promise<string | null> {\n return await (await this.host()).getAttribute('id');\n }\n\n /**\n * Whether the tab content is visible.\n */\n public async isVisible(): Promise<boolean> {\n return !(await (await this.host()).hasClass('sky-vertical-tab-hidden'));\n }\n}\n","import { HarnessPredicate } from '@angular/cdk/testing';\nimport { SkyComponentHarness } from '@skyux/core/testing';\n\nimport { SkyVerticalTabButtonHarnessFilters } from './vertical-tab-button-harness-filters';\nimport { SkyVerticalTabContentHarness } from './vertical-tab-content-harness';\n\n/**\n * Harness for interacting with a vertical tab button in tests.\n */\nexport class SkyVerticalTabButtonHarness extends SkyComponentHarness {\n /**\n * @internal\n */\n public static hostSelector = 'sky-vertical-tab';\n\n #tabButton = this.locatorFor('a.sky-vertical-tab');\n\n /**\n * Gets a `HarnessPredicate` that can be used to search for a\n * `SkyVerticalTabButtonHarness` that meets certain criteria.\n */\n public static with(\n filters: SkyVerticalTabButtonHarnessFilters,\n ): HarnessPredicate<SkyVerticalTabButtonHarness> {\n return new HarnessPredicate(SkyVerticalTabButtonHarness, filters).addOption(\n 'tabHeading',\n filters.tabHeading,\n async (harness, heading) => {\n const tabHeading = await harness.getTabHeading();\n return tabHeading === heading;\n },\n );\n }\n\n /**\n * Clicks the tab button to activate the tab.\n */\n public async click(): Promise<void> {\n return await (await this.#tabButton()).click();\n }\n\n /**\n * Gets the `SkyVerticalTabContentHarness` for this tab.\n */\n public async getTabContent(): Promise<SkyVerticalTabContentHarness> {\n return await this.documentRootLocatorFactory().locatorFor(\n SkyVerticalTabContentHarness.with({ tabId: await this.getTabId() }),\n )();\n }\n\n /**\n * Gets the tab header count.\n */\n public async getTabHeaderCount(): Promise<number> {\n const value = (\n await (await this.locatorFor('.sky-vertical-tab-count')()).text()\n ).trim();\n\n // get value between parentheses\n const rx = /\\(([^)]+)\\)/;\n\n return Number(value.match(rx)?.[1]);\n }\n\n /**\n * Gets the tab heading text.\n */\n public async getTabHeading(): Promise<string> {\n return (\n await (await this.locatorFor('.sky-vertical-tab-heading-value')()).text()\n ).trim();\n }\n\n /**\n * Gets the id of the content controlled by this tab.\n * @internal\n */\n public async getTabId(): Promise<string> {\n return (\n (await (await this.#tabButton()).getAttribute('aria-controls')) ||\n /* istanbul ignore next */\n ''\n );\n }\n\n /**\n * Whether the tab is active.\n */\n public async isActive(): Promise<boolean> {\n return await (await this.#tabButton()).hasClass('sky-vertical-tab-active');\n }\n\n /**\n * Whether the tab is disabled.\n */\n public async isDisabled(): Promise<boolean> {\n return await (\n await this.#tabButton()\n ).hasClass('sky-vertical-tabset-button-disabled');\n }\n}\n","import { HarnessPredicate } from '@angular/cdk/testing';\nimport { SkyComponentHarness } from '@skyux/core/testing';\n\nimport { SkyVerticalTabButtonHarness } from './vertical-tab-button-harness';\nimport { SkyVerticalTabButtonHarnessFilters } from './vertical-tab-button-harness-filters';\nimport { SkyVerticalTabsetGroupHarnessFilters } from './vertical-tabset-group-harness-filters';\n\n/**\n * Harness for interacting with a vertical tabset group in tests.\n */\nexport class SkyVerticalTabsetGroupHarness extends SkyComponentHarness {\n /**\n * @internal\n */\n public static hostSelector = 'sky-vertical-tabset-group';\n\n #button = this.locatorFor('button.sky-vertical-tabset-button');\n #header = this.locatorFor('.sky-vertical-tabset-group-header');\n\n /**\n * Gets a `HarnessPredicate` that can be used to search for a\n * `SkyVerticalTabsetGroupHarness` that meets certain criteria.\n */\n public static with(\n filters: SkyVerticalTabsetGroupHarnessFilters,\n ): HarnessPredicate<SkyVerticalTabsetGroupHarness> {\n return new HarnessPredicate(\n SkyVerticalTabsetGroupHarness,\n filters,\n ).addOption(\n 'groupHeading',\n filters.groupHeading,\n async (harness, heading) => {\n return (await harness.getGroupHeading()) === heading;\n },\n );\n }\n\n /**\n * Clicks the group button to toggle its expanded state.\n */\n public async click(): Promise<void> {\n return await (await this.#button()).click();\n }\n\n /**\n * Gets the group heading text.\n */\n public async getGroupHeading(): Promise<string> {\n return (await (await this.#button()).text()).trim();\n }\n\n /**\n * Gets the `SkyVerticalTabButtonHarness` for a specific tab under this group based on filters.\n */\n public async getVerticalTab(\n filters: SkyVerticalTabButtonHarnessFilters,\n ): Promise<SkyVerticalTabButtonHarness> {\n return await this.locatorFor(SkyVerticalTabButtonHarness.with(filters))();\n }\n\n /**\n * Gets the `SkyVerticalTabButtonHarness` for all tabs under this group.\n */\n public async getVerticalTabs(): Promise<SkyVerticalTabButtonHarness[]> {\n return await this.locatorForAll(SkyVerticalTabButtonHarness)();\n }\n\n /**\n * Whether a tab under this group is active.\n */\n public async isActive(): Promise<boolean> {\n return await (\n await this.#header()\n ).hasClass('sky-vertical-tabset-group-header-active');\n }\n\n /**\n * Whether the group is disabled.\n */\n public async isDisabled(): Promise<boolean> {\n return await (\n await this.#button()\n ).hasClass('sky-vertical-tabset-button-disabled');\n }\n\n /**\n * Whether the group is expanded.\n * todo ask other engineers if checking for a class or property is better. my vote is property.\n */\n public async isOpen(): Promise<boolean> {\n return (\n (await (await this.#button()).getAttribute('aria-expanded')) === 'true'\n );\n }\n}\n","import { HarnessPredicate } from '@angular/cdk/testing';\nimport { SkyComponentHarness } from '@skyux/core/testing';\n\nimport { SkyVerticalTabButtonHarness } from './vertical-tab-button-harness';\nimport { SkyVerticalTabButtonHarnessFilters } from './vertical-tab-button-harness-filters';\nimport { SkyVerticalTabContentHarness } from './vertical-tab-content-harness';\nimport { SkyVerticalTabsetGroupHarness } from './vertical-tabset-group-harness';\nimport { SkyVerticalTabsetGroupHarnessFilters } from './vertical-tabset-group-harness-filters';\nimport { SkyVerticalTabsetHarnessFilters } from './vertical-tabset-harness-filters';\n\n/**\n * Harness for interacting with the vertical tabset component in tests.\n */\nexport class SkyVerticalTabsetHarness extends SkyComponentHarness {\n /**\n * @internal\n */\n public static hostSelector = 'sky-vertical-tabset';\n\n #showTabsButton = this.locatorForOptional(\n '.sky-vertical-tabset-content > button.sky-vertical-tabset-show-tabs-btn',\n );\n\n /**\n * Gets a `HarnessPredicate` that can be used to search for a\n * `SkyVerticalTabsetHarness` that meets certain criteria.\n */\n public static with(\n filters: SkyVerticalTabsetHarnessFilters,\n ): HarnessPredicate<SkyVerticalTabsetHarness> {\n return SkyVerticalTabsetHarness.getDataSkyIdPredicate(filters);\n }\n\n /**\n * Click the show tabs button in mobile view.\n */\n public async clickShowTabsButton(): Promise<void> {\n const showTabsButton = await this.#showTabsButton();\n if (showTabsButton) {\n await showTabsButton.click();\n }\n }\n\n /**\n * Gets the `SkyVerticalTabButtonHarness` of the currently active tab.\n */\n public async getActiveTab(): Promise<\n SkyVerticalTabButtonHarness | undefined\n > {\n const tabs = await this.getTabs();\n if (tabs) {\n for (const tab of tabs) {\n if (await tab.isActive()) {\n return tab;\n }\n }\n }\n return undefined;\n }\n\n /**\n * Gets the `SkyVerticalTabContentHarness` for the currently active tab.\n */\n public async getActiveTabContent(): Promise<\n SkyVerticalTabContentHarness | undefined\n > {\n // in mobile view tabs are not rendered.\n if (!(await this.isTabsVisible())) {\n const contents = await this.locatorForAll(SkyVerticalTabContentHarness)();\n for (const content of contents) {\n if (await content.isVisible()) {\n return content;\n }\n }\n }\n\n const activeTab = await this.getActiveTab();\n if (activeTab) {\n return await activeTab.getTabContent();\n }\n return undefined;\n }\n\n /**\n * Gets the aria-label.\n */\n public async getAriaLabel(): Promise<string | null> {\n return await (\n await this.locatorFor('span.sky-vertical-tabset-tablist')()\n ).getAttribute('aria-label');\n }\n\n /**\n * Gets the aria-labelledby.\n */\n public async getAriaLabelledBy(): Promise<string | null> {\n return await (\n await this.locatorFor('span.sky-vertical-tabset-tablist')()\n ).getAttribute('aria-labelledby');\n }\n\n /**\n * Get the vertical tabset group by `SkyVerticalTabsetGroupHarnessFilters`\n */\n public async getGroup(\n filters: SkyVerticalTabsetGroupHarnessFilters,\n ): Promise<SkyVerticalTabsetGroupHarness | undefined> {\n return await this.locatorFor(SkyVerticalTabsetGroupHarness.with(filters))();\n }\n\n /**\n * Gets an array of `SkyVerticalTabsetGroupHarness` in this tabset.\n */\n public async getGroups(): Promise<SkyVerticalTabsetGroupHarness[]> {\n // open tablist if in mobile view\n if (!(await this.isTabsVisible())) {\n await this.clickShowTabsButton();\n }\n\n return await this.locatorForAll(SkyVerticalTabsetGroupHarness)();\n }\n\n /**\n * Gets the text in the show tabs button in mobile view.\n */\n public async getShowTabsText(): Promise<string | undefined> {\n const showTabsButton = await this.#showTabsButton();\n\n // check if it is in mobile view\n if (showTabsButton) {\n return (await await showTabsButton.text()).trim();\n }\n\n return undefined;\n }\n\n /**\n * Gets a `SkyVerticalTabButtonHarness` that matches the filter.\n */\n public async getTab(\n filters: SkyVerticalTabButtonHarnessFilters,\n ): Promise<SkyVerticalTabButtonHarness> {\n return await this.locatorFor(SkyVerticalTabButtonHarness.with(filters))();\n }\n\n /**\n * Gets an array of `SkyVerticalTabButtonHarness` in this tabset.\n */\n public async getTabs(): Promise<SkyVerticalTabButtonHarness[]> {\n // open tablist if in mobile view\n if (!(await this.isTabsVisible())) {\n await this.clickShowTabsButton();\n }\n\n return await this.locatorForAll(SkyVerticalTabButtonHarness)();\n }\n\n /**\n * Whether the tabs are visible.\n * In mobile view, vertical tabsets collapse to just the content pane\n * with a button to show the tabs.\n */\n public async isTabsVisible(): Promise<boolean> {\n const showTabsButton = await this.#showTabsButton();\n if (showTabsButton) {\n return false;\n }\n return true;\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/modules/tabs/tab-content-harness.ts","../../../../../libs/components/tabs/testing/src/modules/tabs/tab-button-harness.ts","../../../../../libs/components/tabs/testing/src/modules/tabs/tabset-harness.ts","../../../../../libs/components/tabs/testing/src/modules/vertical-tabset/vertical-tab-content-harness.ts","../../../../../libs/components/tabs/testing/src/modules/vertical-tabset/vertical-tab-button-harness.ts","../../../../../libs/components/tabs/testing/src/modules/vertical-tabset/vertical-tabset-group-harness.ts","../../../../../libs/components/tabs/testing/src/modules/vertical-tabset/vertical-tabset-harness.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","import { HarnessPredicate } from '@angular/cdk/testing';\nimport { SkyQueryableComponentHarness } from '@skyux/core/testing';\n\nimport { SkyTabContentHarnessFilters } from './tab-content-harness-filters';\n\n/**\n * Harness for interacting with a tab component in tests.\n */\nexport class SkyTabContentHarness extends SkyQueryableComponentHarness {\n /**\n * @internal\n */\n public static hostSelector = 'sky-tab';\n\n #getTab = this.locatorFor('.sky-tab');\n\n /**\n * Gets a `HarnessPredicate` that can be used to search for a\n * `SkyTabContentHarness` that meets certain criteria.\n * @internal\n */\n public static with(\n filters: SkyTabContentHarnessFilters,\n ): HarnessPredicate<SkyTabContentHarness> {\n return new HarnessPredicate(SkyTabContentHarness, filters).addOption(\n 'tabId',\n filters.tabId,\n async (harness, tabId) => {\n const harnessId = await harness.getTabId();\n return await HarnessPredicate.stringMatches(harnessId, tabId);\n },\n );\n }\n\n /**\n * Gets the tab's layout.\n */\n public async getLayout(): Promise<string> {\n return (await (await this.host()).getAttribute('layout')) || 'none';\n }\n\n /**\n * @internal\n */\n public async getTabId(): Promise<string | null> {\n return await (await this.#getTab()).getAttribute('id');\n }\n\n /**\n * Whether the tab content is visible.\n */\n public async isVisible(): Promise<boolean> {\n return !(await (await this.#getTab()).getProperty<boolean>('hidden'));\n }\n}\n","import { HarnessPredicate } from '@angular/cdk/testing';\nimport { SkyComponentHarness } from '@skyux/core/testing';\n\nimport { SkyTabButtonHarnessFilters } from './tab-button-harness-filters';\nimport { SkyTabContentHarness } from './tab-content-harness';\n\n/**\n * Harness for interacting with a tab button component in tests.\n */\nexport class SkyTabButtonHarness extends SkyComponentHarness {\n /**\n * @internal\n */\n public static hostSelector = 'sky-tab-button';\n\n #getTabButton = this.locatorFor('a.sky-btn-tab');\n\n /**\n * Gets a `HarnessPredicate` that can be used to search for a\n * `SkyTabButtonHarness` that meets certain criteria.\n */\n public static with(\n filters: SkyTabButtonHarnessFilters,\n ): HarnessPredicate<SkyTabButtonHarness> {\n return new HarnessPredicate(SkyTabButtonHarness, filters).addOption(\n 'tabHeading',\n filters.tabHeading,\n async (harness, tabHeading) => {\n const harnessTabHeading = await harness.getTabHeading();\n return await HarnessPredicate.stringMatches(\n harnessTabHeading,\n tabHeading,\n );\n },\n );\n }\n\n /**\n * Clicks the tab button.\n */\n public async click(): Promise<void> {\n return await (await this.#getTabButton()).click();\n }\n\n /**\n * Clicks the remove tab button if it is visible.\n */\n public async clickRemoveButton(): Promise<void> {\n const button = await this.locatorForOptional('.sky-btn-tab-close')();\n if (!button) {\n throw new Error('Unable to find remove tab button.');\n }\n return await button.click();\n }\n\n /**\n * Gets the permalink that the page routes to when the tab is clicked.\n */\n public async getPermalink(): Promise<string | null> {\n return await (await this.#getTabButton()).getAttribute('href');\n }\n\n /**\n * Gets the `SkyTabContentHarness` controlled by this tab button.\n */\n public async getTabContentHarness(): Promise<SkyTabContentHarness> {\n return await this.documentRootLocatorFactory().locatorFor(\n SkyTabContentHarness.with({ tabId: await this.getTabId() }),\n )();\n }\n\n /**\n * Gets the tab heading.\n */\n public async getTabHeading(): Promise<string> {\n return (\n // eslint-disable-next-line @cspell/spellchecker\n await (await this.locatorFor('.sky-tab-heading > span[skyid]')()).text()\n );\n }\n\n /**\n * Gets whether the tab button is active.\n */\n public async isActive(): Promise<boolean> {\n return await (await this.#getTabButton()).hasClass('sky-btn-tab-selected');\n }\n\n /**\n * Gets whether the tab button is disabled.\n */\n public async isDisabled(): Promise<boolean> {\n return await (await this.#getTabButton()).hasClass('sky-btn-tab-disabled');\n }\n\n /**\n * Gets the id of the content controlled by this tab.\n * @internal\n */\n public async getTabId(): Promise<string> {\n return (\n (await (await this.#getTabButton()).getAttribute('aria-controls')) ||\n /* istanbul ignore next */\n ''\n );\n }\n}\n","import { HarnessPredicate } from '@angular/cdk/testing';\nimport { SkyComponentHarness } from '@skyux/core/testing';\nimport {\n SkyDropdownHarness,\n SkyDropdownMenuHarness,\n} from '@skyux/popovers/testing';\nimport { SkyTabsetButtonsDisplayMode } from '@skyux/tabs';\n\nimport { SkyTabButtonHarness } from './tab-button-harness';\nimport { SkyTabContentHarness } from './tab-content-harness';\nimport { SkyTabsetHarnessFilters } from './tabset-harness-filters';\n\n/**\n * Harness for interacting with a tabset component in tests.\n */\nexport class SkyTabsetHarness extends SkyComponentHarness {\n /**\n * @internal\n */\n public static hostSelector = 'sky-tabset';\n\n #getTabset = this.locatorFor('.sky-tabset');\n #getTabButtons = this.locatorForAll(SkyTabButtonHarness);\n #getTabDropdown = this.locatorFor(SkyDropdownHarness);\n\n /**\n * Gets a `HarnessPredicate` that can be used to search for a\n * `SkyTabsetHarness` that meets certain criteria.\n */\n public static with(\n filters: SkyTabsetHarnessFilters,\n ): HarnessPredicate<SkyTabsetHarness> {\n return SkyTabsetHarness.getDataSkyIdPredicate(filters);\n }\n\n /**\n * In `dropdown` mode, clicks the dropdown tab to open the tab dropdown menu.\n */\n public async clickDropdownTab(): Promise<void> {\n if (!((await this.getMode()) === 'dropdown')) {\n throw new Error(\n 'Cannot click dropdown tab button, tab is not in dropdown mode.',\n );\n }\n const button = await this.locatorFor(SkyDropdownHarness)();\n return await button.clickDropdownButton();\n }\n\n /**\n * Clicks the new tab button if visible.\n */\n public async clickNewTabButton(): Promise<void> {\n const newTabButton = await this.locatorForOptional(\n 'button.sky-tabset-btn-new',\n )();\n\n if (!newTabButton) {\n throw new Error('Unable to find the new tab button.');\n }\n\n return await newTabButton.click();\n }\n\n /**\n * Clicks the open tab button if visible.\n */\n public async clickOpenTabButton(): Promise<void> {\n const openTabButton = await this.locatorForOptional(\n 'button.sky-tabset-btn-open',\n )();\n\n if (!openTabButton) {\n throw new Error('Unable to find the open tab button.');\n }\n\n return await openTabButton.click();\n }\n\n /**\n * Clicks a tab button with a `tabHeading` matching the input.\n */\n public async clickTabButton(tabHeading: string): Promise<void> {\n const tabButton = await this.getTabButtonHarness(tabHeading);\n return await tabButton.click();\n }\n\n /**\n * Gets the active tab button harness.\n */\n public async getActiveTabButton(): Promise<SkyTabButtonHarness | null> {\n const tabButtonHarnesses = await this.getTabButtonHarnesses();\n\n for (const harness of tabButtonHarnesses) {\n if (await harness.isActive()) {\n return harness;\n }\n }\n\n /* istanbul ignore next */\n return null;\n }\n\n /**\n * Gets the tabset aria-label value.\n */\n public async getAriaLabel(): Promise<string | null> {\n return await (await this.#getTabset()).getAttribute('aria-label');\n }\n\n /**\n * Gets the tabset aria-labelledby value.\n */\n public async getAriaLabelledBy(): Promise<string | null> {\n return await (await this.#getTabset()).getAttribute('aria-labelledby');\n }\n\n /**\n * Gets the tabset's display mode.\n */\n public async getMode(): Promise<SkyTabsetButtonsDisplayMode> {\n if (await (await this.#getTabset()).hasClass('sky-tabset-mode-tabs')) {\n return 'tabs';\n }\n return 'dropdown';\n }\n\n /**\n * Gets a tab button harness with the given `tabHeading`\n */\n public async getTabButtonHarness(\n tabHeading: string,\n ): Promise<SkyTabButtonHarness> {\n if ((await this.getMode()) === 'dropdown') {\n const menu = await this.#getDropdownMenu();\n return await menu.queryHarness(\n SkyTabButtonHarness.with({ tabHeading: tabHeading }),\n );\n }\n return await this.locatorFor(\n SkyTabButtonHarness.with({ tabHeading: tabHeading }),\n )();\n }\n\n /**\n * Gets an array of all tab button harnesses.\n */\n public async getTabButtonHarnesses(): Promise<SkyTabButtonHarness[]> {\n if ((await this.getMode()) === 'dropdown') {\n const menu = await this.#getDropdownMenu();\n return await menu.queryHarnesses(SkyTabButtonHarness);\n }\n return await this.#getTabButtons();\n }\n\n /**\n * Gets a tab content harness for the tab with the given `tabHeading`.\n */\n public async getTabContentHarness(\n tabHeading: string,\n ): Promise<SkyTabContentHarness> {\n const tabButton = await this.getTabButtonHarness(tabHeading);\n const id = await tabButton.getTabId();\n return await this.locatorFor(SkyTabContentHarness.with({ tabId: id }))();\n }\n\n async #getDropdownMenu(): Promise<SkyDropdownMenuHarness> {\n const dropdown = await this.#getTabDropdown();\n if (!(await dropdown?.isOpen())) {\n throw new Error(\n 'Cannot get tab button when tabs is in dropdown mode and is closed.',\n );\n }\n return await dropdown.getDropdownMenu();\n }\n}\n","import { HarnessPredicate } from '@angular/cdk/testing';\nimport { SkyQueryableComponentHarness } from '@skyux/core/testing';\n\nimport { SkyVerticalTabContentHarnessFilters } from './vertical-tab-content-harness-filters';\n\n/**\n * Harness for interacting with a vertical tab content in tests.\n */\nexport class SkyVerticalTabContentHarness extends SkyQueryableComponentHarness {\n /**\n * @internal\n */\n public static hostSelector = '.sky-vertical-tab-content-pane';\n\n /**\n * Gets a `HarnessPredicate` that can be used to search for a\n * `SkyVerticalTabContentHarness` that meets certain criteria.\n */\n public static with(\n filters: SkyVerticalTabContentHarnessFilters,\n ): HarnessPredicate<SkyVerticalTabContentHarness> {\n return SkyVerticalTabContentHarness.getDataSkyIdPredicate(\n filters,\n ).addOption('tabId', filters.tabId, async (harness, tabId) => {\n const harnessId = await harness.getTabId();\n return await HarnessPredicate.stringMatches(harnessId, tabId);\n });\n }\n\n /**\n * Gets the tab content's id.\n * @internal\n */\n public async getTabId(): Promise<string | null> {\n return await (await this.host()).getAttribute('id');\n }\n\n /**\n * Whether the tab content is visible.\n */\n public async isVisible(): Promise<boolean> {\n return !(await (await this.host()).hasClass('sky-vertical-tab-hidden'));\n }\n}\n","import { HarnessPredicate } from '@angular/cdk/testing';\nimport { SkyComponentHarness } from '@skyux/core/testing';\n\nimport { SkyVerticalTabButtonHarnessFilters } from './vertical-tab-button-harness-filters';\nimport { SkyVerticalTabContentHarness } from './vertical-tab-content-harness';\n\n/**\n * Harness for interacting with a vertical tab button in tests.\n */\nexport class SkyVerticalTabButtonHarness extends SkyComponentHarness {\n /**\n * @internal\n */\n public static hostSelector = 'sky-vertical-tab';\n\n #tabButton = this.locatorFor('a.sky-vertical-tab');\n\n /**\n * Gets a `HarnessPredicate` that can be used to search for a\n * `SkyVerticalTabButtonHarness` that meets certain criteria.\n */\n public static with(\n filters: SkyVerticalTabButtonHarnessFilters,\n ): HarnessPredicate<SkyVerticalTabButtonHarness> {\n return new HarnessPredicate(SkyVerticalTabButtonHarness, filters).addOption(\n 'tabHeading',\n filters.tabHeading,\n async (harness, heading) => {\n const tabHeading = await harness.getTabHeading();\n return tabHeading === heading;\n },\n );\n }\n\n /**\n * Clicks the tab button to activate the tab.\n */\n public async click(): Promise<void> {\n return await (await this.#tabButton()).click();\n }\n\n /**\n * Gets the `SkyVerticalTabContentHarness` for this tab.\n */\n public async getTabContent(): Promise<SkyVerticalTabContentHarness> {\n return await this.documentRootLocatorFactory().locatorFor(\n SkyVerticalTabContentHarness.with({ tabId: await this.getTabId() }),\n )();\n }\n\n /**\n * Gets the tab header count.\n */\n public async getTabHeaderCount(): Promise<number> {\n const value = (\n await (await this.locatorFor('.sky-vertical-tab-count')()).text()\n ).trim();\n\n // get value between parentheses\n const rx = /\\(([^)]+)\\)/;\n\n return Number(value.match(rx)?.[1]);\n }\n\n /**\n * Gets the tab heading text.\n */\n public async getTabHeading(): Promise<string> {\n return (\n await (await this.locatorFor('.sky-vertical-tab-heading-value')()).text()\n ).trim();\n }\n\n /**\n * Gets the id of the content controlled by this tab.\n * @internal\n */\n public async getTabId(): Promise<string> {\n return (\n (await (await this.#tabButton()).getAttribute('aria-controls')) ||\n /* istanbul ignore next */\n ''\n );\n }\n\n /**\n * Whether the tab is active.\n */\n public async isActive(): Promise<boolean> {\n return await (await this.#tabButton()).hasClass('sky-vertical-tab-active');\n }\n\n /**\n * Whether the tab is disabled.\n */\n public async isDisabled(): Promise<boolean> {\n return await (\n await this.#tabButton()\n ).hasClass('sky-vertical-tabset-button-disabled');\n }\n}\n","import { HarnessPredicate } from '@angular/cdk/testing';\nimport { SkyComponentHarness } from '@skyux/core/testing';\n\nimport { SkyVerticalTabButtonHarness } from './vertical-tab-button-harness';\nimport { SkyVerticalTabButtonHarnessFilters } from './vertical-tab-button-harness-filters';\nimport { SkyVerticalTabsetGroupHarnessFilters } from './vertical-tabset-group-harness-filters';\n\n/**\n * Harness for interacting with a vertical tabset group in tests.\n */\nexport class SkyVerticalTabsetGroupHarness extends SkyComponentHarness {\n /**\n * @internal\n */\n public static hostSelector = 'sky-vertical-tabset-group';\n\n #button = this.locatorFor('button.sky-vertical-tabset-button');\n #header = this.locatorFor('.sky-vertical-tabset-group-header');\n\n /**\n * Gets a `HarnessPredicate` that can be used to search for a\n * `SkyVerticalTabsetGroupHarness` that meets certain criteria.\n */\n public static with(\n filters: SkyVerticalTabsetGroupHarnessFilters,\n ): HarnessPredicate<SkyVerticalTabsetGroupHarness> {\n return new HarnessPredicate(\n SkyVerticalTabsetGroupHarness,\n filters,\n ).addOption(\n 'groupHeading',\n filters.groupHeading,\n async (harness, heading) => {\n return (await harness.getGroupHeading()) === heading;\n },\n );\n }\n\n /**\n * Clicks the group button to toggle its expanded state.\n */\n public async click(): Promise<void> {\n return await (await this.#button()).click();\n }\n\n /**\n * Gets the group heading text.\n */\n public async getGroupHeading(): Promise<string> {\n return (await (await this.#button()).text()).trim();\n }\n\n /**\n * Gets the `SkyVerticalTabButtonHarness` for a specific tab under this group based on filters.\n */\n public async getVerticalTab(\n filters: SkyVerticalTabButtonHarnessFilters,\n ): Promise<SkyVerticalTabButtonHarness> {\n return await this.locatorFor(SkyVerticalTabButtonHarness.with(filters))();\n }\n\n /**\n * Gets the `SkyVerticalTabButtonHarness` for all tabs under this group.\n */\n public async getVerticalTabs(): Promise<SkyVerticalTabButtonHarness[]> {\n return await this.locatorForAll(SkyVerticalTabButtonHarness)();\n }\n\n /**\n * Whether a tab under this group is active.\n */\n public async isActive(): Promise<boolean> {\n return await (\n await this.#header()\n ).hasClass('sky-vertical-tabset-group-header-active');\n }\n\n /**\n * Whether the group is disabled.\n */\n public async isDisabled(): Promise<boolean> {\n return await (\n await this.#button()\n ).hasClass('sky-vertical-tabset-button-disabled');\n }\n\n /**\n * Whether the group is expanded.\n */\n public async isOpen(): Promise<boolean> {\n return (\n (await (await this.#button()).getAttribute('aria-expanded')) === 'true'\n );\n }\n}\n","import { HarnessPredicate } from '@angular/cdk/testing';\nimport { SkyComponentHarness } from '@skyux/core/testing';\n\nimport { SkyVerticalTabButtonHarness } from './vertical-tab-button-harness';\nimport { SkyVerticalTabButtonHarnessFilters } from './vertical-tab-button-harness-filters';\nimport { SkyVerticalTabContentHarness } from './vertical-tab-content-harness';\nimport { SkyVerticalTabsetGroupHarness } from './vertical-tabset-group-harness';\nimport { SkyVerticalTabsetGroupHarnessFilters } from './vertical-tabset-group-harness-filters';\nimport { SkyVerticalTabsetHarnessFilters } from './vertical-tabset-harness-filters';\n\n/**\n * Harness for interacting with the vertical tabset component in tests.\n */\nexport class SkyVerticalTabsetHarness extends SkyComponentHarness {\n /**\n * @internal\n */\n public static hostSelector = 'sky-vertical-tabset';\n\n #showTabsButton = this.locatorForOptional(\n '.sky-vertical-tabset-content > button.sky-vertical-tabset-show-tabs-btn',\n );\n\n /**\n * Gets a `HarnessPredicate` that can be used to search for a\n * `SkyVerticalTabsetHarness` that meets certain criteria.\n */\n public static with(\n filters: SkyVerticalTabsetHarnessFilters,\n ): HarnessPredicate<SkyVerticalTabsetHarness> {\n return SkyVerticalTabsetHarness.getDataSkyIdPredicate(filters);\n }\n\n /**\n * Click the show tabs button in mobile view.\n */\n public async clickShowTabsButton(): Promise<void> {\n const showTabsButton = await this.#showTabsButton();\n if (showTabsButton) {\n await showTabsButton.click();\n }\n }\n\n /**\n * Gets the `SkyVerticalTabButtonHarness` of the currently active tab.\n */\n public async getActiveTab(): Promise<\n SkyVerticalTabButtonHarness | undefined\n > {\n const tabs = await this.getTabs();\n if (tabs) {\n for (const tab of tabs) {\n if (await tab.isActive()) {\n return tab;\n }\n }\n }\n return undefined;\n }\n\n /**\n * Gets the `SkyVerticalTabContentHarness` for the currently active tab.\n */\n public async getActiveTabContent(): Promise<\n SkyVerticalTabContentHarness | undefined\n > {\n // in mobile view tabs are not rendered.\n if (!(await this.isTabsVisible())) {\n const contents = await this.locatorForAll(SkyVerticalTabContentHarness)();\n for (const content of contents) {\n if (await content.isVisible()) {\n return content;\n }\n }\n }\n\n const activeTab = await this.getActiveTab();\n if (activeTab) {\n return await activeTab.getTabContent();\n }\n return undefined;\n }\n\n /**\n * Gets the aria-label.\n */\n public async getAriaLabel(): Promise<string | null> {\n return await (\n await this.locatorFor('span.sky-vertical-tabset-tablist')()\n ).getAttribute('aria-label');\n }\n\n /**\n * Gets the aria-labelledby.\n */\n public async getAriaLabelledBy(): Promise<string | null> {\n return await (\n await this.locatorFor('span.sky-vertical-tabset-tablist')()\n ).getAttribute('aria-labelledby');\n }\n\n /**\n * Get the vertical tabset group by `SkyVerticalTabsetGroupHarnessFilters`\n */\n public async getGroup(\n filters: SkyVerticalTabsetGroupHarnessFilters,\n ): Promise<SkyVerticalTabsetGroupHarness | undefined> {\n return await this.locatorFor(SkyVerticalTabsetGroupHarness.with(filters))();\n }\n\n /**\n * Gets an array of `SkyVerticalTabsetGroupHarness` in this tabset.\n */\n public async getGroups(): Promise<SkyVerticalTabsetGroupHarness[]> {\n // open tablist if in mobile view\n if (!(await this.isTabsVisible())) {\n await this.clickShowTabsButton();\n }\n\n return await this.locatorForAll(SkyVerticalTabsetGroupHarness)();\n }\n\n /**\n * Gets the text in the show tabs button in mobile view.\n */\n public async getShowTabsText(): Promise<string | undefined> {\n const showTabsButton = await this.#showTabsButton();\n\n // check if it is in mobile view\n if (showTabsButton) {\n return (await await showTabsButton.text()).trim();\n }\n\n return undefined;\n }\n\n /**\n * Gets a `SkyVerticalTabButtonHarness` that matches the filter.\n */\n public async getTab(\n filters: SkyVerticalTabButtonHarnessFilters,\n ): Promise<SkyVerticalTabButtonHarness> {\n return await this.locatorFor(SkyVerticalTabButtonHarness.with(filters))();\n }\n\n /**\n * Gets an array of `SkyVerticalTabButtonHarness` in this tabset.\n */\n public async getTabs(): Promise<SkyVerticalTabButtonHarness[]> {\n // open tablist if in mobile view\n if (!(await this.isTabsVisible())) {\n await this.clickShowTabsButton();\n }\n\n return await this.locatorForAll(SkyVerticalTabButtonHarness)();\n }\n\n /**\n * Whether the tabs are visible.\n * In mobile view, vertical tabsets collapse to just the content pane\n * with a button to show the tabs.\n */\n public async isTabsVisible(): Promise<boolean> {\n const showTabsButton = await this.#showTabsButton();\n if (showTabsButton) {\n return false;\n }\n return true;\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
@@ -70,11 +70,11 @@ SkyLibResourcesService.addResources(RESOURCES);
70
70
  * Import into any component library module that needs to use resource strings.
71
71
  */
72
72
  class SkyTabsResourcesModule {
73
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.1", ngImport: i0, type: SkyTabsResourcesModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
74
- static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "19.2.1", ngImport: i0, type: SkyTabsResourcesModule, exports: [SkyI18nModule] }); }
75
- static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "19.2.1", ngImport: i0, type: SkyTabsResourcesModule, imports: [SkyI18nModule] }); }
73
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.7", ngImport: i0, type: SkyTabsResourcesModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
74
+ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "19.2.7", ngImport: i0, type: SkyTabsResourcesModule, exports: [SkyI18nModule] }); }
75
+ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "19.2.7", ngImport: i0, type: SkyTabsResourcesModule, imports: [SkyI18nModule] }); }
76
76
  }
77
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.1", ngImport: i0, type: SkyTabsResourcesModule, decorators: [{
77
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.7", ngImport: i0, type: SkyTabsResourcesModule, decorators: [{
78
78
  type: NgModule,
79
79
  args: [{
80
80
  exports: [SkyI18nModule],
@@ -88,10 +88,10 @@ class SkyVerticalTabsetGroupService {
88
88
  constructor() {
89
89
  this.messageStream = new Subject();
90
90
  }
91
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.1", ngImport: i0, type: SkyVerticalTabsetGroupService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
92
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.2.1", ngImport: i0, type: SkyVerticalTabsetGroupService }); }
91
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.7", ngImport: i0, type: SkyVerticalTabsetGroupService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
92
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.2.7", ngImport: i0, type: SkyVerticalTabsetGroupService }); }
93
93
  }
94
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.1", ngImport: i0, type: SkyVerticalTabsetGroupService, decorators: [{
94
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.7", ngImport: i0, type: SkyVerticalTabsetGroupService, decorators: [{
95
95
  type: Injectable
96
96
  }] });
97
97
 
@@ -152,10 +152,10 @@ class SkyVerticalTabsetAdapterService {
152
152
  #elHasFocus(el) {
153
153
  return !!el && el === this.#document.activeElement;
154
154
  }
155
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.1", ngImport: i0, type: SkyVerticalTabsetAdapterService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
156
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.2.1", ngImport: i0, type: SkyVerticalTabsetAdapterService }); }
155
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.7", ngImport: i0, type: SkyVerticalTabsetAdapterService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
156
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.2.7", ngImport: i0, type: SkyVerticalTabsetAdapterService }); }
157
157
  }
158
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.1", ngImport: i0, type: SkyVerticalTabsetAdapterService, decorators: [{
158
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.7", ngImport: i0, type: SkyVerticalTabsetAdapterService, decorators: [{
159
159
  type: Injectable
160
160
  }] });
161
161
 
@@ -346,10 +346,10 @@ class SkyVerticalTabsetService {
346
346
  }
347
347
  this.indexChanged.next(this.activeIndex);
348
348
  }
349
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.1", ngImport: i0, type: SkyVerticalTabsetService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
350
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.2.1", ngImport: i0, type: SkyVerticalTabsetService }); }
349
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.7", ngImport: i0, type: SkyVerticalTabsetService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
350
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.2.7", ngImport: i0, type: SkyVerticalTabsetService }); }
351
351
  }
352
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.1", ngImport: i0, type: SkyVerticalTabsetService, decorators: [{
352
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.7", ngImport: i0, type: SkyVerticalTabsetService, decorators: [{
353
353
  type: Injectable
354
354
  }], ctorParameters: () => [] });
355
355
 
@@ -393,10 +393,10 @@ class SkyTabIdService {
393
393
  #emitIds() {
394
394
  this.#ids$.next(Array.from(this.#ids.values()));
395
395
  }
396
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.1", ngImport: i0, type: SkyTabIdService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
397
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.2.1", ngImport: i0, type: SkyTabIdService }); }
396
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.7", ngImport: i0, type: SkyTabIdService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
397
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.2.7", ngImport: i0, type: SkyTabIdService }); }
398
398
  }
399
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.1", ngImport: i0, type: SkyTabIdService, decorators: [{
399
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.7", ngImport: i0, type: SkyTabIdService, decorators: [{
400
400
  type: Injectable
401
401
  }], ctorParameters: () => [] });
402
402
 
@@ -543,10 +543,10 @@ class SkyVerticalTabComponent {
543
543
  tabDeactivated() {
544
544
  this.#changeRef.markForCheck();
545
545
  }
546
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.1", ngImport: i0, type: SkyVerticalTabComponent, deps: [{ token: SkyVerticalTabsetAdapterService }, { token: i0.ChangeDetectorRef }, { token: SkyVerticalTabsetService }, { token: SkyTabIdService, optional: true }], target: i0.ɵɵFactoryTarget.Component }); }
547
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.1", type: SkyVerticalTabComponent, isStandalone: false, selector: "sky-vertical-tab", inputs: { active: "active", ariaControls: "ariaControls", ariaRole: "ariaRole", disabled: "disabled", errorIndicator: "errorIndicator", requiredIndicator: "requiredIndicator", tabHeaderCount: "tabHeaderCount", tabHeading: "tabHeading", showTabRightArrow: "showTabRightArrow", tabId: "tabId" }, viewQueries: [{ propertyName: "tabButton", first: true, predicate: ["tabButton"], descendants: true }, { propertyName: "tabContent", first: true, predicate: ["tabContentWrapper"], descendants: true }], ngImport: i0, template: "<a\n #tabButton\n class=\"sky-vertical-tab sky-vertical-tabset-button\"\n [attr.aria-controls]=\"\n isMobile ? undefined : ariaControls || tabContentPane.id\n \"\n [attr.aria-disabled]=\"isMobile ? undefined : disabled || undefined\"\n [attr.aria-selected]=\"isMobile ? undefined : active\"\n [attr.id]=\"tabId\"\n [attr.role]=\"isMobile ? undefined : ariaRole\"\n [ngClass]=\"{\n 'sky-vertical-tab-active': active,\n 'sky-vertical-tabset-button-disabled': disabled,\n 'sky-font-deemphasized': disabled\n }\"\n [tabIndex]=\"-1\"\n (click)=\"activateTab()\"\n (keyup.arrowleft)=\"tabButtonArrowLeft($event)\"\n (keyup.enter)=\"tabButtonActivate($event)\"\n (keyup.space)=\"tabButtonActivate($event)\"\n>\n <div class=\"sky-vertical-tab-display\">\n <div\n class=\"sky-vertical-tab-heading\"\n [ngClass]=\"{ 'sky-control-label-required': requiredIndicator }\"\n >\n <span class=\"sky-vertical-tab-heading-value\">{{ tabHeading }}</span>\n @if (tabHeaderCount || tabHeaderCount === 0) {\n <span class=\"sky-vertical-tab-count\"> ({{ tabHeaderCount }}) </span>\n }\n </div>\n @if (errorIndicator) {\n <sky-status-indicator\n class=\"sky-vertical-tab-heading-error\"\n descriptionType=\"error\"\n indicatorType=\"danger\"\n />\n }\n @if (isMobile && showTabRightArrow) {\n <sky-icon class=\"sky-vertical-tab-right-arrow\" iconName=\"chevron-right\" />\n }\n </div>\n</a>\n\n<div #tabContentWrapper skyResponsiveHost>\n <div\n #tabContentPane\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 >\n <ng-content />\n </div>\n</div>\n", styles: [".sky-vertical-tab:not(.sky-theme-modern *){--sky-override-vertical-tab-background-color: transparent;--sky-override-vertical-tab-background-color-active: #eeeeef;--sky-override-vertical-tab-background-color-focus: transparent;--sky-override-vertical-tab-background-color-hover: #eeeeef;--sky-override-vertical-tab-background-color-selected: #eeeeef;--sky-override-vertical-tab-border-left-active: none;--sky-override-vertical-tab-border-left-hover: none;--sky-override-vertical-tab-border-left-selected: 4px solid #00b4f1;--sky-override-vertical-tab-box-shadow-focus: none;--sky-override-vertical-tab-count-margin-left: 5px;--sky-override-vertical-tab-display-align-items: normal;--sky-override-vertical-tab-font-color: #212327;--sky-override-vertical-tab-font-color-disabled: var( --sky-text-color-deemphasized );--sky-override-vertical-tab-font-selected-color: #212327;--sky-override-vertical-tab-gap: 5px;--sky-override-vertical-tab-heading-error-line-height: normal;--sky-override-vertical-tab-heading-error-padding-left: 5px;--sky-override-vertical-tab-hover-font-color: #212327;--sky-override-vertical-tab-margin: 5px 0 5px 10px;--sky-override-vertical-tab-outline-focus: auto;--sky-override-vertical-tab-padding: 7px 0 7px 10px;--sky-override-vertical-tab-padding-left-active: 10px;--sky-override-vertical-tab-padding-left-selected: 6px;--sky-override-vertical-tab-padding-left-hover: 10px;--sky-override-vertical-tab-right-arrow-color: #686c73;--sky-override-vertical-tab-right-arrow-color-active: #686c73;--sky-override-vertical-tab-right-arrow-color-hover: color.adjust( #686c73, $lightness: -20% );--sky-override-vertical-tab-right-arrow-color-selected: #686c73;--sky-override-vertical-tab-right-arrow-padding: 3px 10px 0 0}:host-context(.sky-theme-modern:not(.sky-theme-brand-base)) .sky-vertical-tab{--sky-override-vertical-tab-background-color-disabled: transparent;--sky-override-vertical-tab-background-color-selected: transparent;--sky-override-vertical-tab-border-left-active: var(--modern-size-4) solid var(--modern-color-blue-50);--sky-override-vertical-tab-border-left-hover: var(--modern-size-1) solid var(--modern-color-blue-50);--sky-override-vertical-tab-content-pane-margin-bottom: 0;--sky-override-vertical-tab-display-align-items: normal;--sky-override-vertical-tab-gap: var(--modern-size-15);--sky-override-vertical-tab-heading-error-margin-right: calc( var(--modern-size-10) * -1 );--sky-override-vertical-tab-heading-error-line-height: normal;--sky-override-vertical-tab-heading-error-padding-left: var(--modern-size-10);--sky-override-vertical-tab-heading-error-position: relative;--sky-override-vertical-tab-margin: var(--modern-size-15) 0 var(--modern-size-15) var(--modern-size-10);--sky-override-vertical-tab-padding: var(--modern-size-10) var(--modern-size-10) var(--modern-size-10) var(--modern-size-15);--sky-override-vertical-tab-right-arrow-color: var(--modern-color-gray-20);--sky-override-vertical-tab-right-arrow-color-active: var( --modern-color-gray-20 );--sky-override-vertical-tab-right-arrow-color-hover: #979ba2;--sky-override-vertical-tab-right-arrow-color-selected: var( --modern-color-gray-20 );--sky-override-vertical-tab-right-arrow-padding: var(--modern-size-3) 0 0 0}:host:has(~sky-vertical-tab) .sky-vertical-tab{margin-bottom:var(--sky-override-vertical-tab-gap, var(--sky-space-gap-action_group-l))}:host:has(.sky-vertical-tabset-button-disabled){cursor:not-allowed}.sky-vertical-tab{cursor:pointer;background-color:var(--sky-override-vertical-tab-background-color, var(--sky-color-background-nav-base));padding:var(--sky-override-vertical-tab-padding, var(--sky-space-inset-pillarbox-2_3-top-m) var(--sky-space-inset-pillarbox-2_3-right-m) var(--sky-space-inset-pillarbox-2_3-bottom-m) var(--sky-space-inset-pillarbox-2_3-left-m));margin:var(--sky-override-vertical-tab-margin, 0 0 0 var(--sky-space-inline-s));display:flex;text-decoration:none;color:var(--sky-override-vertical-tab-font-color, var(--sky-color-text-deemphasized));border-radius:var(--sky-border-radius-0)}.sky-vertical-tab:hover{color:var(--sky-override-vertical-tab-hover-font-color, var(--sky-color-text-default));background-color:var(--sky-override-vertical-tab-background-color-hover, var(--sky-color-background-nav-hover))}.sky-vertical-tab:hover .sky-vertical-tab-right-arrow{color:var(--sky-override-vertical-tab-right-arrow-color-hover, var(--sky-color-icon-default))}.sky-vertical-tab:active{background-color:var(--sky-override-vertical-tab-background-color-active, var(--sky-color-background-nav-active));border-left:var(--sky-override-vertical-tab-border-left-active, var(--sky-border-width-selected-l) solid var(--sky-color-border-selected));color:var(--sky-override-vertical-tab-active-font-color, var(--sky-color-text-default));padding-left:var(--sky-override-vertical-tab-padding-left-active, calc(var(--sky-space-inset-pillarbox-2_3-left-m) - var(--sky-border-width-selected-l)))}.sky-vertical-tab:active .sky-vertical-tab-right-arrow{color:var(--sky-override-vertical-tab-right-arrow-color-active, var(--sky-color-icon-default))}.sky-vertical-tab:not(:active):focus-visible{background-color:var(--sky-override-vertical-tab-background-color-focus, var(--sky-color-background-nav-focus));outline:var(--sky-override-vertical-tab-outline-focus, var(--sky-border-width-selected-m) solid var(--sky-color-border-selected));outline-offset:var(--sky-override-vertical-tab-outline-focus-offset, calc(var(--sky-border-width-selected-m) * -1));box-shadow:var(--sky-override-vertical-tab-box-shadow-focus, var(--sky-elevation-focus))}.sky-vertical-tab:not(:active):focus-visible.sky-vertical-tab-active{background-color:var(--sky-override-vertical-tab-background-color-selected, var(--sky-color-background-selected-soft));color:var(--sky-override-vertical-tab-selected-font-color, var(--sky-color-text-default))}.sky-vertical-tab:not(:active):focus-visible.sky-vertical-tab-active .sky-vertical-tab-right-arrow{color:var(--sky-override-vertical-tab-right-arrow-color-selected, var(--sky-color-icon-default))}.sky-vertical-tab:not(.sky-vertical-tab-active):not(:active):hover{padding-left:var(--sky-override-vertical-tab-padding-left-hover, calc(var(--sky-space-inset-pillarbox-2_3-left-m) - var(--sky-border-width-selected-s)));border-left:var(--sky-override-vertical-tab-border-left-hover, var(--sky-border-width-selected-s) solid var(--sky-color-border-selected))}.sky-vertical-tab-active{background-color:var(--sky-override-vertical-tab-background-color-selected, var(--sky-color-background-selected-soft));color:var(--sky-override-vertical-tab-selected-font-color, var(--sky-color-text-default));padding-left:var(--sky-override-vertical-tab-padding-left-selected, calc(var(--sky-space-inset-pillarbox-2_3-left-m) - var(--sky-border-width-selected-l)));border-left:var(--sky-override-vertical-tab-border-left-selected, var(--sky-border-width-selected-l) solid var(--sky-color-border-selected))}.sky-vertical-tab-active .sky-vertical-tab-right-arrow{color:var(--sky-override-vertical-tab-right-arrow-color-selected, var(--sky-color-icon-default))}.sky-vertical-tab-hidden{display:none}.sky-vertical-tab-display{display:flex;justify-content:space-between;flex-grow:1;align-items:var(--sky-override-vertical-tab-display-align-items, center)}.sky-vertical-tab-heading-error{padding-left:var(--sky-override-vertical-tab-heading-error-padding-left, var(--sky-space-gap-text_action-s));margin-right:var(--sky-override-vertical-tab-heading-error-margin-right);position:var(--sky-override-vertical-tab-heading-error-position);top:-2px;line-height:var(--sky-override-vertical-tab-heading-error-line-height, 1)}.sky-vertical-tab-count{margin-left:var(--sky-override-vertical-tab-count-margin-left, var(--sky-space-gap-label-s))}.sky-vertical-tabset-button-disabled{background-color:var(--sky-override-vertical-tab-background-color-disabled, var(--sky-color-background-nav-disabled));color:var(--sky-override-vertical-tab-font-color-disabled, var(--sky-color-text-deemphasized));pointer-events:none}.sky-vertical-tab-right-arrow{padding:var(--sky-override-vertical-tab-right-arrow-padding, 0);color:var(--sky-override-vertical-tab-right-arrow-color, var(--sky-color-icon-deemphasized))}.sky-vertical-tab-content-pane{margin-bottom:0}.sky-vertical-tab-content-pane:focus-visible{outline:none;border:none}.sky-responsive-container-xs .sky-vertical-tab-content-pane{margin-bottom:var(--sky-override-vertical-tab-content-pane-margin-bottom, var(--sky-space-stacked-s))}: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: "component", type: i6.λ1, selector: "sky-icon", inputs: ["icon", "iconName", "iconType", "size", "fixedWidth", "variant", "iconSize"] }, { kind: "directive", type: i3.λ2, selector: "[skyId]", exportAs: ["skyId"] }, { kind: "directive", type: i3.SkyResponsiveHostDirective, selector: "[skyResponsiveHost]", exportAs: ["skyResponsiveHost"] }, { kind: "component", type: i7.λ10, selector: "sky-status-indicator", inputs: ["indicatorType", "descriptionType", "customDescription", "helpPopoverContent", "helpPopoverTitle", "helpKey"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
546
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.7", ngImport: i0, type: SkyVerticalTabComponent, deps: [{ token: SkyVerticalTabsetAdapterService }, { token: i0.ChangeDetectorRef }, { token: SkyVerticalTabsetService }, { token: SkyTabIdService, optional: true }], target: i0.ɵɵFactoryTarget.Component }); }
547
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.7", type: SkyVerticalTabComponent, isStandalone: false, selector: "sky-vertical-tab", inputs: { active: "active", ariaControls: "ariaControls", ariaRole: "ariaRole", disabled: "disabled", errorIndicator: "errorIndicator", requiredIndicator: "requiredIndicator", tabHeaderCount: "tabHeaderCount", tabHeading: "tabHeading", showTabRightArrow: "showTabRightArrow", tabId: "tabId" }, viewQueries: [{ propertyName: "tabButton", first: true, predicate: ["tabButton"], descendants: true }, { propertyName: "tabContent", first: true, predicate: ["tabContentWrapper"], descendants: true }], ngImport: i0, template: "<a\n #tabButton\n class=\"sky-vertical-tab sky-vertical-tabset-button\"\n [attr.aria-controls]=\"\n isMobile ? undefined : ariaControls || tabContentPane.id\n \"\n [attr.aria-disabled]=\"isMobile ? undefined : disabled || undefined\"\n [attr.aria-selected]=\"isMobile ? undefined : active\"\n [attr.id]=\"tabId\"\n [attr.role]=\"isMobile ? undefined : ariaRole\"\n [ngClass]=\"{\n 'sky-vertical-tab-active': active,\n 'sky-vertical-tabset-button-disabled': disabled,\n 'sky-font-deemphasized': disabled\n }\"\n [tabIndex]=\"-1\"\n (click)=\"activateTab()\"\n (keyup.arrowleft)=\"tabButtonArrowLeft($event)\"\n (keyup.enter)=\"tabButtonActivate($event)\"\n (keyup.space)=\"tabButtonActivate($event)\"\n>\n <div class=\"sky-vertical-tab-display\">\n <div\n class=\"sky-vertical-tab-heading\"\n [ngClass]=\"{ 'sky-control-label-required': requiredIndicator }\"\n >\n <span class=\"sky-vertical-tab-heading-value\">{{ tabHeading }}</span>\n @if (tabHeaderCount || tabHeaderCount === 0) {\n <span class=\"sky-vertical-tab-count\"> ({{ tabHeaderCount }}) </span>\n }\n </div>\n @if (errorIndicator) {\n <sky-status-indicator\n class=\"sky-vertical-tab-heading-error\"\n descriptionType=\"error\"\n indicatorType=\"danger\"\n />\n }\n @if (isMobile && showTabRightArrow) {\n <sky-icon class=\"sky-vertical-tab-right-arrow\" iconName=\"chevron-right\" />\n }\n </div>\n</a>\n\n<div #tabContentWrapper skyResponsiveHost>\n <div\n #tabContentPane\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 >\n <ng-content />\n </div>\n</div>\n", styles: [".sky-vertical-tab:not(.sky-theme-modern *){--sky-override-vertical-tab-background-color: transparent;--sky-override-vertical-tab-background-color-active: #eeeeef;--sky-override-vertical-tab-background-color-focus: transparent;--sky-override-vertical-tab-background-color-hover: #eeeeef;--sky-override-vertical-tab-background-color-selected: #eeeeef;--sky-override-vertical-tab-border-left-active: none;--sky-override-vertical-tab-border-left-hover: none;--sky-override-vertical-tab-border-left-selected: 4px solid #00b4f1;--sky-override-vertical-tab-box-shadow-focus: none;--sky-override-vertical-tab-count-margin-left: 5px;--sky-override-vertical-tab-display-align-items: normal;--sky-override-vertical-tab-font-color: #212327;--sky-override-vertical-tab-font-color-disabled: var( --sky-text-color-deemphasized );--sky-override-vertical-tab-font-selected-color: #212327;--sky-override-vertical-tab-gap: 5px;--sky-override-vertical-tab-heading-error-line-height: normal;--sky-override-vertical-tab-heading-error-padding-left: 5px;--sky-override-vertical-tab-hover-font-color: #212327;--sky-override-vertical-tab-margin: 5px 0 5px 10px;--sky-override-vertical-tab-outline-focus: auto;--sky-override-vertical-tab-padding: 7px 0 7px 10px;--sky-override-vertical-tab-padding-left-active: 10px;--sky-override-vertical-tab-padding-left-selected: 6px;--sky-override-vertical-tab-padding-left-hover: 10px;--sky-override-vertical-tab-right-arrow-color: #686c73;--sky-override-vertical-tab-right-arrow-color-active: #686c73;--sky-override-vertical-tab-right-arrow-color-hover: color.adjust( #686c73, $lightness: -20% );--sky-override-vertical-tab-right-arrow-color-selected: #686c73;--sky-override-vertical-tab-right-arrow-padding: 3px 10px 0 0}:host-context(.sky-theme-modern:not(.sky-theme-brand-base)) .sky-vertical-tab{--sky-override-vertical-tab-background-color-disabled: transparent;--sky-override-vertical-tab-background-color-selected: transparent;--sky-override-vertical-tab-border-left-active: var(--modern-size-4) solid var(--modern-color-blue-50);--sky-override-vertical-tab-border-left-hover: var(--modern-size-1) solid var(--modern-color-blue-50);--sky-override-vertical-tab-content-pane-margin-bottom: 0;--sky-override-vertical-tab-display-align-items: normal;--sky-override-vertical-tab-gap: var(--modern-size-15);--sky-override-vertical-tab-heading-error-margin-right: calc( var(--modern-size-10) * -1 );--sky-override-vertical-tab-heading-error-line-height: normal;--sky-override-vertical-tab-heading-error-padding-left: var(--modern-size-10);--sky-override-vertical-tab-heading-error-position: relative;--sky-override-vertical-tab-margin: var(--modern-size-15) 0 var(--modern-size-15) var(--modern-size-10);--sky-override-vertical-tab-padding: var(--modern-size-10) var(--modern-size-10) var(--modern-size-10) var(--modern-size-15);--sky-override-vertical-tab-right-arrow-color: var(--modern-color-gray-20);--sky-override-vertical-tab-right-arrow-color-active: var( --modern-color-gray-20 );--sky-override-vertical-tab-right-arrow-color-hover: #979ba2;--sky-override-vertical-tab-right-arrow-color-selected: var( --modern-color-gray-20 );--sky-override-vertical-tab-right-arrow-padding: var(--modern-size-3) 0 0 0}:host:has(~sky-vertical-tab) .sky-vertical-tab{margin-bottom:var(--sky-override-vertical-tab-gap, var(--sky-space-gap-action_group-l))}:host:has(.sky-vertical-tabset-button-disabled){cursor:not-allowed}.sky-vertical-tab{cursor:pointer;background-color:var(--sky-override-vertical-tab-background-color, var(--sky-color-background-nav-base));padding:var(--sky-override-vertical-tab-padding, var(--sky-space-inset-pillarbox-2_3-top-m) var(--sky-space-inset-pillarbox-2_3-right-m) var(--sky-space-inset-pillarbox-2_3-bottom-m) var(--sky-space-inset-pillarbox-2_3-left-m));margin:var(--sky-override-vertical-tab-margin, 0 0 0 var(--sky-space-inline-s));display:flex;text-decoration:none;color:var(--sky-override-vertical-tab-font-color, var(--sky-color-text-deemphasized));border-radius:var(--sky-border-radius-0)}.sky-vertical-tab:hover{color:var(--sky-override-vertical-tab-hover-font-color, var(--sky-color-text-default));background-color:var(--sky-override-vertical-tab-background-color-hover, var(--sky-color-background-nav-hover))}.sky-vertical-tab:hover .sky-vertical-tab-right-arrow{color:var(--sky-override-vertical-tab-right-arrow-color-hover, var(--sky-color-icon-default))}.sky-vertical-tab:active{background-color:var(--sky-override-vertical-tab-background-color-active, var(--sky-color-background-nav-active));border-left:var(--sky-override-vertical-tab-border-left-active, var(--sky-border-width-selected-l) solid var(--sky-color-border-selected));color:var(--sky-override-vertical-tab-active-font-color, var(--sky-color-text-default));padding-left:var(--sky-override-vertical-tab-padding-left-active, calc(var(--sky-space-inset-pillarbox-2_3-left-m) - var(--sky-border-width-selected-l)))}.sky-vertical-tab:active .sky-vertical-tab-right-arrow{color:var(--sky-override-vertical-tab-right-arrow-color-active, var(--sky-color-icon-default))}.sky-vertical-tab:not(:active):focus-visible{background-color:var(--sky-override-vertical-tab-background-color-focus, var(--sky-color-background-nav-focus));outline:var(--sky-override-vertical-tab-outline-focus, var(--sky-border-width-selected-m) solid var(--sky-color-border-selected));outline-offset:var(--sky-override-vertical-tab-outline-focus-offset, calc(var(--sky-border-width-selected-m) * -1));box-shadow:var(--sky-override-vertical-tab-box-shadow-focus, var(--sky-elevation-focus))}.sky-vertical-tab:not(:active):focus-visible.sky-vertical-tab-active{background-color:var(--sky-override-vertical-tab-background-color-selected, var(--sky-color-background-selected-soft));color:var(--sky-override-vertical-tab-selected-font-color, var(--sky-color-text-default))}.sky-vertical-tab:not(:active):focus-visible.sky-vertical-tab-active .sky-vertical-tab-right-arrow{color:var(--sky-override-vertical-tab-right-arrow-color-selected, var(--sky-color-icon-default))}.sky-vertical-tab:not(.sky-vertical-tab-active):not(:active):hover{padding-left:var(--sky-override-vertical-tab-padding-left-hover, calc(var(--sky-space-inset-pillarbox-2_3-left-m) - var(--sky-border-width-selected-s)));border-left:var(--sky-override-vertical-tab-border-left-hover, var(--sky-border-width-selected-s) solid var(--sky-color-border-selected))}.sky-vertical-tab-active{background-color:var(--sky-override-vertical-tab-background-color-selected, var(--sky-color-background-selected-soft));color:var(--sky-override-vertical-tab-selected-font-color, var(--sky-color-text-default));padding-left:var(--sky-override-vertical-tab-padding-left-selected, calc(var(--sky-space-inset-pillarbox-2_3-left-m) - var(--sky-border-width-selected-l)));border-left:var(--sky-override-vertical-tab-border-left-selected, var(--sky-border-width-selected-l) solid var(--sky-color-border-selected))}.sky-vertical-tab-active .sky-vertical-tab-right-arrow{color:var(--sky-override-vertical-tab-right-arrow-color-selected, var(--sky-color-icon-default))}.sky-vertical-tab-hidden{display:none}.sky-vertical-tab-display{display:flex;justify-content:space-between;flex-grow:1;align-items:var(--sky-override-vertical-tab-display-align-items, center)}.sky-vertical-tab-heading-error{padding-left:var(--sky-override-vertical-tab-heading-error-padding-left, var(--sky-space-gap-text_action-s));margin-right:var(--sky-override-vertical-tab-heading-error-margin-right);position:var(--sky-override-vertical-tab-heading-error-position);top:-2px;line-height:var(--sky-override-vertical-tab-heading-error-line-height, 1)}.sky-vertical-tab-count{margin-left:var(--sky-override-vertical-tab-count-margin-left, var(--sky-space-gap-label-s))}.sky-vertical-tabset-button-disabled{background-color:var(--sky-override-vertical-tab-background-color-disabled, var(--sky-color-background-nav-disabled));color:var(--sky-override-vertical-tab-font-color-disabled, var(--sky-color-text-deemphasized));pointer-events:none}.sky-vertical-tab-right-arrow{padding:var(--sky-override-vertical-tab-right-arrow-padding, 0);color:var(--sky-override-vertical-tab-right-arrow-color, var(--sky-color-icon-deemphasized))}.sky-vertical-tab-content-pane{margin-bottom:0}.sky-vertical-tab-content-pane:focus-visible{outline:none;border:none}.sky-responsive-container-xs .sky-vertical-tab-content-pane{margin-bottom:var(--sky-override-vertical-tab-content-pane-margin-bottom, var(--sky-space-stacked-s))}: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: "component", type: i6.λ1, selector: "sky-icon", inputs: ["icon", "iconName", "iconType", "size", "fixedWidth", "variant", "iconSize"] }, { kind: "directive", type: i3.λ2, selector: "[skyId]", exportAs: ["skyId"] }, { kind: "directive", type: i3.SkyResponsiveHostDirective, selector: "[skyResponsiveHost]", exportAs: ["skyResponsiveHost"] }, { kind: "component", type: i7.λ10, selector: "sky-status-indicator", inputs: ["indicatorType", "descriptionType", "customDescription", "helpPopoverContent", "helpPopoverTitle", "helpKey"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
548
548
  }
549
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.1", ngImport: i0, type: SkyVerticalTabComponent, decorators: [{
549
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.7", ngImport: i0, type: SkyVerticalTabComponent, decorators: [{
550
550
  type: Component,
551
551
  args: [{ selector: 'sky-vertical-tab', changeDetection: ChangeDetectionStrategy.OnPush, standalone: false, template: "<a\n #tabButton\n class=\"sky-vertical-tab sky-vertical-tabset-button\"\n [attr.aria-controls]=\"\n isMobile ? undefined : ariaControls || tabContentPane.id\n \"\n [attr.aria-disabled]=\"isMobile ? undefined : disabled || undefined\"\n [attr.aria-selected]=\"isMobile ? undefined : active\"\n [attr.id]=\"tabId\"\n [attr.role]=\"isMobile ? undefined : ariaRole\"\n [ngClass]=\"{\n 'sky-vertical-tab-active': active,\n 'sky-vertical-tabset-button-disabled': disabled,\n 'sky-font-deemphasized': disabled\n }\"\n [tabIndex]=\"-1\"\n (click)=\"activateTab()\"\n (keyup.arrowleft)=\"tabButtonArrowLeft($event)\"\n (keyup.enter)=\"tabButtonActivate($event)\"\n (keyup.space)=\"tabButtonActivate($event)\"\n>\n <div class=\"sky-vertical-tab-display\">\n <div\n class=\"sky-vertical-tab-heading\"\n [ngClass]=\"{ 'sky-control-label-required': requiredIndicator }\"\n >\n <span class=\"sky-vertical-tab-heading-value\">{{ tabHeading }}</span>\n @if (tabHeaderCount || tabHeaderCount === 0) {\n <span class=\"sky-vertical-tab-count\"> ({{ tabHeaderCount }}) </span>\n }\n </div>\n @if (errorIndicator) {\n <sky-status-indicator\n class=\"sky-vertical-tab-heading-error\"\n descriptionType=\"error\"\n indicatorType=\"danger\"\n />\n }\n @if (isMobile && showTabRightArrow) {\n <sky-icon class=\"sky-vertical-tab-right-arrow\" iconName=\"chevron-right\" />\n }\n </div>\n</a>\n\n<div #tabContentWrapper skyResponsiveHost>\n <div\n #tabContentPane\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 >\n <ng-content />\n </div>\n</div>\n", styles: [".sky-vertical-tab:not(.sky-theme-modern *){--sky-override-vertical-tab-background-color: transparent;--sky-override-vertical-tab-background-color-active: #eeeeef;--sky-override-vertical-tab-background-color-focus: transparent;--sky-override-vertical-tab-background-color-hover: #eeeeef;--sky-override-vertical-tab-background-color-selected: #eeeeef;--sky-override-vertical-tab-border-left-active: none;--sky-override-vertical-tab-border-left-hover: none;--sky-override-vertical-tab-border-left-selected: 4px solid #00b4f1;--sky-override-vertical-tab-box-shadow-focus: none;--sky-override-vertical-tab-count-margin-left: 5px;--sky-override-vertical-tab-display-align-items: normal;--sky-override-vertical-tab-font-color: #212327;--sky-override-vertical-tab-font-color-disabled: var( --sky-text-color-deemphasized );--sky-override-vertical-tab-font-selected-color: #212327;--sky-override-vertical-tab-gap: 5px;--sky-override-vertical-tab-heading-error-line-height: normal;--sky-override-vertical-tab-heading-error-padding-left: 5px;--sky-override-vertical-tab-hover-font-color: #212327;--sky-override-vertical-tab-margin: 5px 0 5px 10px;--sky-override-vertical-tab-outline-focus: auto;--sky-override-vertical-tab-padding: 7px 0 7px 10px;--sky-override-vertical-tab-padding-left-active: 10px;--sky-override-vertical-tab-padding-left-selected: 6px;--sky-override-vertical-tab-padding-left-hover: 10px;--sky-override-vertical-tab-right-arrow-color: #686c73;--sky-override-vertical-tab-right-arrow-color-active: #686c73;--sky-override-vertical-tab-right-arrow-color-hover: color.adjust( #686c73, $lightness: -20% );--sky-override-vertical-tab-right-arrow-color-selected: #686c73;--sky-override-vertical-tab-right-arrow-padding: 3px 10px 0 0}:host-context(.sky-theme-modern:not(.sky-theme-brand-base)) .sky-vertical-tab{--sky-override-vertical-tab-background-color-disabled: transparent;--sky-override-vertical-tab-background-color-selected: transparent;--sky-override-vertical-tab-border-left-active: var(--modern-size-4) solid var(--modern-color-blue-50);--sky-override-vertical-tab-border-left-hover: var(--modern-size-1) solid var(--modern-color-blue-50);--sky-override-vertical-tab-content-pane-margin-bottom: 0;--sky-override-vertical-tab-display-align-items: normal;--sky-override-vertical-tab-gap: var(--modern-size-15);--sky-override-vertical-tab-heading-error-margin-right: calc( var(--modern-size-10) * -1 );--sky-override-vertical-tab-heading-error-line-height: normal;--sky-override-vertical-tab-heading-error-padding-left: var(--modern-size-10);--sky-override-vertical-tab-heading-error-position: relative;--sky-override-vertical-tab-margin: var(--modern-size-15) 0 var(--modern-size-15) var(--modern-size-10);--sky-override-vertical-tab-padding: var(--modern-size-10) var(--modern-size-10) var(--modern-size-10) var(--modern-size-15);--sky-override-vertical-tab-right-arrow-color: var(--modern-color-gray-20);--sky-override-vertical-tab-right-arrow-color-active: var( --modern-color-gray-20 );--sky-override-vertical-tab-right-arrow-color-hover: #979ba2;--sky-override-vertical-tab-right-arrow-color-selected: var( --modern-color-gray-20 );--sky-override-vertical-tab-right-arrow-padding: var(--modern-size-3) 0 0 0}:host:has(~sky-vertical-tab) .sky-vertical-tab{margin-bottom:var(--sky-override-vertical-tab-gap, var(--sky-space-gap-action_group-l))}:host:has(.sky-vertical-tabset-button-disabled){cursor:not-allowed}.sky-vertical-tab{cursor:pointer;background-color:var(--sky-override-vertical-tab-background-color, var(--sky-color-background-nav-base));padding:var(--sky-override-vertical-tab-padding, var(--sky-space-inset-pillarbox-2_3-top-m) var(--sky-space-inset-pillarbox-2_3-right-m) var(--sky-space-inset-pillarbox-2_3-bottom-m) var(--sky-space-inset-pillarbox-2_3-left-m));margin:var(--sky-override-vertical-tab-margin, 0 0 0 var(--sky-space-inline-s));display:flex;text-decoration:none;color:var(--sky-override-vertical-tab-font-color, var(--sky-color-text-deemphasized));border-radius:var(--sky-border-radius-0)}.sky-vertical-tab:hover{color:var(--sky-override-vertical-tab-hover-font-color, var(--sky-color-text-default));background-color:var(--sky-override-vertical-tab-background-color-hover, var(--sky-color-background-nav-hover))}.sky-vertical-tab:hover .sky-vertical-tab-right-arrow{color:var(--sky-override-vertical-tab-right-arrow-color-hover, var(--sky-color-icon-default))}.sky-vertical-tab:active{background-color:var(--sky-override-vertical-tab-background-color-active, var(--sky-color-background-nav-active));border-left:var(--sky-override-vertical-tab-border-left-active, var(--sky-border-width-selected-l) solid var(--sky-color-border-selected));color:var(--sky-override-vertical-tab-active-font-color, var(--sky-color-text-default));padding-left:var(--sky-override-vertical-tab-padding-left-active, calc(var(--sky-space-inset-pillarbox-2_3-left-m) - var(--sky-border-width-selected-l)))}.sky-vertical-tab:active .sky-vertical-tab-right-arrow{color:var(--sky-override-vertical-tab-right-arrow-color-active, var(--sky-color-icon-default))}.sky-vertical-tab:not(:active):focus-visible{background-color:var(--sky-override-vertical-tab-background-color-focus, var(--sky-color-background-nav-focus));outline:var(--sky-override-vertical-tab-outline-focus, var(--sky-border-width-selected-m) solid var(--sky-color-border-selected));outline-offset:var(--sky-override-vertical-tab-outline-focus-offset, calc(var(--sky-border-width-selected-m) * -1));box-shadow:var(--sky-override-vertical-tab-box-shadow-focus, var(--sky-elevation-focus))}.sky-vertical-tab:not(:active):focus-visible.sky-vertical-tab-active{background-color:var(--sky-override-vertical-tab-background-color-selected, var(--sky-color-background-selected-soft));color:var(--sky-override-vertical-tab-selected-font-color, var(--sky-color-text-default))}.sky-vertical-tab:not(:active):focus-visible.sky-vertical-tab-active .sky-vertical-tab-right-arrow{color:var(--sky-override-vertical-tab-right-arrow-color-selected, var(--sky-color-icon-default))}.sky-vertical-tab:not(.sky-vertical-tab-active):not(:active):hover{padding-left:var(--sky-override-vertical-tab-padding-left-hover, calc(var(--sky-space-inset-pillarbox-2_3-left-m) - var(--sky-border-width-selected-s)));border-left:var(--sky-override-vertical-tab-border-left-hover, var(--sky-border-width-selected-s) solid var(--sky-color-border-selected))}.sky-vertical-tab-active{background-color:var(--sky-override-vertical-tab-background-color-selected, var(--sky-color-background-selected-soft));color:var(--sky-override-vertical-tab-selected-font-color, var(--sky-color-text-default));padding-left:var(--sky-override-vertical-tab-padding-left-selected, calc(var(--sky-space-inset-pillarbox-2_3-left-m) - var(--sky-border-width-selected-l)));border-left:var(--sky-override-vertical-tab-border-left-selected, var(--sky-border-width-selected-l) solid var(--sky-color-border-selected))}.sky-vertical-tab-active .sky-vertical-tab-right-arrow{color:var(--sky-override-vertical-tab-right-arrow-color-selected, var(--sky-color-icon-default))}.sky-vertical-tab-hidden{display:none}.sky-vertical-tab-display{display:flex;justify-content:space-between;flex-grow:1;align-items:var(--sky-override-vertical-tab-display-align-items, center)}.sky-vertical-tab-heading-error{padding-left:var(--sky-override-vertical-tab-heading-error-padding-left, var(--sky-space-gap-text_action-s));margin-right:var(--sky-override-vertical-tab-heading-error-margin-right);position:var(--sky-override-vertical-tab-heading-error-position);top:-2px;line-height:var(--sky-override-vertical-tab-heading-error-line-height, 1)}.sky-vertical-tab-count{margin-left:var(--sky-override-vertical-tab-count-margin-left, var(--sky-space-gap-label-s))}.sky-vertical-tabset-button-disabled{background-color:var(--sky-override-vertical-tab-background-color-disabled, var(--sky-color-background-nav-disabled));color:var(--sky-override-vertical-tab-font-color-disabled, var(--sky-color-text-deemphasized));pointer-events:none}.sky-vertical-tab-right-arrow{padding:var(--sky-override-vertical-tab-right-arrow-padding, 0);color:var(--sky-override-vertical-tab-right-arrow-color, var(--sky-color-icon-deemphasized))}.sky-vertical-tab-content-pane{margin-bottom:0}.sky-vertical-tab-content-pane:focus-visible{outline:none;border:none}.sky-responsive-container-xs .sky-vertical-tab-content-pane{margin-bottom:var(--sky-override-vertical-tab-content-pane-margin-bottom, var(--sky-space-stacked-s))}:host-context(.sky-sectioned-form-tabs-only) .sky-vertical-tab{margin-left:0}\n"] }]
552
552
  }], ctorParameters: () => [{ type: SkyVerticalTabsetAdapterService }, { type: i0.ChangeDetectorRef }, { type: SkyVerticalTabsetService }, { type: SkyTabIdService, decorators: [{
@@ -698,10 +698,10 @@ class SkyVerticalTabsetGroupComponent {
698
698
  #focusButton() {
699
699
  this.#adapterService.focusButton(this.groupHeadingButton);
700
700
  }
701
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.1", ngImport: i0, type: SkyVerticalTabsetGroupComponent, deps: [{ token: SkyVerticalTabsetService }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); }
702
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.1", type: SkyVerticalTabsetGroupComponent, isStandalone: false, selector: "sky-vertical-tabset-group", inputs: { disabled: "disabled", groupHeading: "groupHeading", open: "open" }, providers: [SkyVerticalTabsetGroupService], queries: [{ propertyName: "tabs", predicate: SkyVerticalTabComponent }], viewQueries: [{ propertyName: "groupHeadingButton", first: true, predicate: ["groupHeadingButton"], descendants: true }], ngImport: i0, template: "<div class=\"sky-vertical-tabset-group\">\n <!-- [ngClass] includes font classes for both modern and default styles -->\n <div\n class=\"sky-vertical-tabset-group-header\"\n [ngClass]=\"{\n 'sky-vertical-tabset-group-header-active sky-font-emphasized': isActive(),\n 'sky-vertical-tabset-group-header-sub-open': open,\n 'sky-font-deemphasized': disabled\n }\"\n >\n <button\n #groupHeadingButton\n class=\"sky-vertical-tabset-button\"\n role=\"tab\"\n type=\"button\"\n [attr.aria-controls]=\"groupContent.id\"\n [attr.aria-disabled]=\"disabled || undefined\"\n [attr.aria-expanded]=\"!disabled && open\"\n [id]=\"groupId\"\n [ngClass]=\"{\n 'sky-vertical-tabset-button-disabled': disabled\n }\"\n [tabIndex]=\"-1\"\n (click)=\"toggleMenuOpen()\"\n (keyup.arrowleft)=\"groupButtonArrowLeft($event)\"\n (keyup.arrowright)=\"groupButtonArrowRight($event)\"\n >\n {{ groupHeading }}\n <sky-expansion-indicator\n class=\"sky-vertical-tabset-group-expansion-indicator\"\n [direction]=\"!disabled && open ? 'up' : 'down'\"\n />\n </button>\n </div>\n <div\n #groupContent\n class=\"sky-vertical-tabset-group-content\"\n skyId\n [attr.labelledby]=\"groupId\"\n [@.disabled]=\"animationDisabled\"\n [@skyAnimationSlide]=\"slideDirection\"\n (@skyAnimationSlide.done)=\"updateSlideDirection($event)\"\n >\n <ng-content />\n </div>\n</div>\n", styles: [".sky-vertical-tabset-group:not(.sky-theme-modern *){--sky-override-vertical-tabset-button-disabled-font-color: buttontext;--sky-override-vertical-tabset-group-border: 1px solid #e2e3e4;--sky-override-vertical-tabset-group-button-font-color: buttontext;--sky-override-vertical-tabset-group-button-padding: 10px;--sky-override-vertical-tabset-group-content-padding-left: 0;--sky-override-vertical-tabset-group-gap: 5px;--sky-override-vertical-tabset-group-header-align-items: flex-start;--sky-override-vertical-tabset-group-header-background-color: transparent;--sky-override-vertical-tabset-group-margin: 5px 0 5px 5px}:host-context(.sky-theme-modern:not(.sky-theme-brand-base)) .sky-vertical-tabset-group{--sky-override-tabset-group-expansion-indicator-position: absolute;--sky-override-tabset-group-header-position: relative;--sky-override-vertical-tabset-button-disabled-font-color: buttontext;--sky-override-vertical-tabset-group-button-font-color: buttontext;--sky-override-vertical-tabset-group-gap: var(--modern-size-15);--sky-override-vertical-tabset-group-margin: var(--modern-size-15) 0}.sky-vertical-tabset-group{border-bottom:var(--sky-override-vertical-tabset-group-border, none);margin:var(--sky-override-vertical-tabset-group-margin)}:host:has(~sky-vertical-tabset-group) .sky-vertical-tabset-group{margin-bottom:var(--sky-override-vertical-tabset-group-gap, var(--sky-space-gap-action_group-l))}.sky-vertical-tabset-group-header{position:var(--sky-override-tabset-group-header-position, initial)}.sky-vertical-tabset-group-header button{color:var(--sky-override-vertical-tabset-group-button-font-color, var(--sky-color-text-default));padding:var(--sky-override-vertical-tabset-group-button-padding, var(--sky-space-inset-balanced-s));cursor:pointer;display:flex;justify-content:space-between;border:none;width:100%;text-align:left;align-items:var(--sky-override-vertical-tabset-group-header-align-items, center);background-color:var(--sky-override-vertical-tabset-group-header-background-color, var(--sky-color-background-nav-base))}.sky-vertical-tabset-group-header button.sky-vertical-tabset-button-disabled{pointer-events:none;color:var(--sky-override-vertical-tabset-button-disabled-font-color, var(--sky-color-text-deemphasized))}.sky-vertical-tabset-group-header .sky-vertical-tabset-group-expansion-indicator{position:var(--sky-override-tabset-group-expansion-indicator-position, initial);top:6px;right:5px}.sky-vertical-tabset-group-header:has(.sky-vertical-tabset-button-disabled){cursor:not-allowed}.sky-vertical-tabset-group-content{overflow:hidden;border-top:var(--sky-override-vertical-tabset-group-border, none);padding-left:var(--sky-override-vertical-tabset-group-content-padding-left, var(--sky-space-inline-s))}\n"], dependencies: [{ kind: "directive", type: i4.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i3.λ2, selector: "[skyId]", exportAs: ["skyId"] }, { kind: "component", type: i7.λ15, selector: "sky-expansion-indicator", inputs: ["direction"] }], animations: [skyAnimationSlide], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
701
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.7", ngImport: i0, type: SkyVerticalTabsetGroupComponent, deps: [{ token: SkyVerticalTabsetService }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); }
702
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.7", type: SkyVerticalTabsetGroupComponent, isStandalone: false, selector: "sky-vertical-tabset-group", inputs: { disabled: "disabled", groupHeading: "groupHeading", open: "open" }, providers: [SkyVerticalTabsetGroupService], queries: [{ propertyName: "tabs", predicate: SkyVerticalTabComponent }], viewQueries: [{ propertyName: "groupHeadingButton", first: true, predicate: ["groupHeadingButton"], descendants: true }], ngImport: i0, template: "<div class=\"sky-vertical-tabset-group\">\n <!-- [ngClass] includes font classes for both modern and default styles -->\n <div\n class=\"sky-vertical-tabset-group-header\"\n [ngClass]=\"{\n 'sky-vertical-tabset-group-header-active sky-font-emphasized': isActive(),\n 'sky-vertical-tabset-group-header-sub-open': open,\n 'sky-font-deemphasized': disabled\n }\"\n >\n <button\n #groupHeadingButton\n class=\"sky-vertical-tabset-button\"\n role=\"tab\"\n type=\"button\"\n [attr.aria-controls]=\"groupContent.id\"\n [attr.aria-disabled]=\"disabled || undefined\"\n [attr.aria-expanded]=\"!disabled && open\"\n [id]=\"groupId\"\n [ngClass]=\"{\n 'sky-vertical-tabset-button-disabled': disabled\n }\"\n [tabIndex]=\"-1\"\n (click)=\"toggleMenuOpen()\"\n (keyup.arrowleft)=\"groupButtonArrowLeft($event)\"\n (keyup.arrowright)=\"groupButtonArrowRight($event)\"\n >\n {{ groupHeading }}\n <sky-expansion-indicator\n class=\"sky-vertical-tabset-group-expansion-indicator\"\n [direction]=\"!disabled && open ? 'up' : 'down'\"\n />\n </button>\n </div>\n <div\n #groupContent\n class=\"sky-vertical-tabset-group-content\"\n skyId\n [attr.labelledby]=\"groupId\"\n [@.disabled]=\"animationDisabled\"\n [@skyAnimationSlide]=\"slideDirection\"\n (@skyAnimationSlide.done)=\"updateSlideDirection($event)\"\n >\n <ng-content />\n </div>\n</div>\n", styles: [".sky-vertical-tabset-group:not(.sky-theme-modern *){--sky-override-vertical-tabset-button-disabled-font-color: buttontext;--sky-override-vertical-tabset-group-border: 1px solid #e2e3e4;--sky-override-vertical-tabset-group-button-font-color: buttontext;--sky-override-vertical-tabset-group-button-padding: 10px;--sky-override-vertical-tabset-group-content-padding-left: 0;--sky-override-vertical-tabset-group-gap: 5px;--sky-override-vertical-tabset-group-header-align-items: flex-start;--sky-override-vertical-tabset-group-header-background-color: transparent;--sky-override-vertical-tabset-group-margin: 5px 0 5px 5px}:host-context(.sky-theme-modern:not(.sky-theme-brand-base)) .sky-vertical-tabset-group{--sky-override-tabset-group-expansion-indicator-position: absolute;--sky-override-tabset-group-header-position: relative;--sky-override-vertical-tabset-button-disabled-font-color: buttontext;--sky-override-vertical-tabset-group-button-font-color: buttontext;--sky-override-vertical-tabset-group-gap: var(--modern-size-15);--sky-override-vertical-tabset-group-margin: var(--modern-size-15) 0}.sky-vertical-tabset-group{border-bottom:var(--sky-override-vertical-tabset-group-border, none);margin:var(--sky-override-vertical-tabset-group-margin)}:host:has(~sky-vertical-tabset-group) .sky-vertical-tabset-group{margin-bottom:var(--sky-override-vertical-tabset-group-gap, var(--sky-space-gap-action_group-l))}.sky-vertical-tabset-group-header{position:var(--sky-override-tabset-group-header-position, initial)}.sky-vertical-tabset-group-header button{color:var(--sky-override-vertical-tabset-group-button-font-color, var(--sky-color-text-default));padding:var(--sky-override-vertical-tabset-group-button-padding, var(--sky-space-inset-balanced-s));cursor:pointer;display:flex;justify-content:space-between;border:none;width:100%;text-align:left;align-items:var(--sky-override-vertical-tabset-group-header-align-items, center);background-color:var(--sky-override-vertical-tabset-group-header-background-color, var(--sky-color-background-nav-base))}.sky-vertical-tabset-group-header button.sky-vertical-tabset-button-disabled{pointer-events:none;color:var(--sky-override-vertical-tabset-button-disabled-font-color, var(--sky-color-text-deemphasized))}.sky-vertical-tabset-group-header .sky-vertical-tabset-group-expansion-indicator{position:var(--sky-override-tabset-group-expansion-indicator-position, initial);top:6px;right:5px}.sky-vertical-tabset-group-header:has(.sky-vertical-tabset-button-disabled){cursor:not-allowed}.sky-vertical-tabset-group-content{overflow:hidden;border-top:var(--sky-override-vertical-tabset-group-border, none);padding-left:var(--sky-override-vertical-tabset-group-content-padding-left, var(--sky-space-inline-s))}\n"], dependencies: [{ kind: "directive", type: i4.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i3.λ2, selector: "[skyId]", exportAs: ["skyId"] }, { kind: "component", type: i7.λ15, selector: "sky-expansion-indicator", inputs: ["direction"] }], animations: [skyAnimationSlide], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
703
703
  }
704
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.1", ngImport: i0, type: SkyVerticalTabsetGroupComponent, decorators: [{
704
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.7", ngImport: i0, type: SkyVerticalTabsetGroupComponent, decorators: [{
705
705
  type: Component,
706
706
  args: [{ selector: 'sky-vertical-tabset-group', changeDetection: ChangeDetectionStrategy.OnPush, animations: [skyAnimationSlide], providers: [SkyVerticalTabsetGroupService], standalone: false, template: "<div class=\"sky-vertical-tabset-group\">\n <!-- [ngClass] includes font classes for both modern and default styles -->\n <div\n class=\"sky-vertical-tabset-group-header\"\n [ngClass]=\"{\n 'sky-vertical-tabset-group-header-active sky-font-emphasized': isActive(),\n 'sky-vertical-tabset-group-header-sub-open': open,\n 'sky-font-deemphasized': disabled\n }\"\n >\n <button\n #groupHeadingButton\n class=\"sky-vertical-tabset-button\"\n role=\"tab\"\n type=\"button\"\n [attr.aria-controls]=\"groupContent.id\"\n [attr.aria-disabled]=\"disabled || undefined\"\n [attr.aria-expanded]=\"!disabled && open\"\n [id]=\"groupId\"\n [ngClass]=\"{\n 'sky-vertical-tabset-button-disabled': disabled\n }\"\n [tabIndex]=\"-1\"\n (click)=\"toggleMenuOpen()\"\n (keyup.arrowleft)=\"groupButtonArrowLeft($event)\"\n (keyup.arrowright)=\"groupButtonArrowRight($event)\"\n >\n {{ groupHeading }}\n <sky-expansion-indicator\n class=\"sky-vertical-tabset-group-expansion-indicator\"\n [direction]=\"!disabled && open ? 'up' : 'down'\"\n />\n </button>\n </div>\n <div\n #groupContent\n class=\"sky-vertical-tabset-group-content\"\n skyId\n [attr.labelledby]=\"groupId\"\n [@.disabled]=\"animationDisabled\"\n [@skyAnimationSlide]=\"slideDirection\"\n (@skyAnimationSlide.done)=\"updateSlideDirection($event)\"\n >\n <ng-content />\n </div>\n</div>\n", styles: [".sky-vertical-tabset-group:not(.sky-theme-modern *){--sky-override-vertical-tabset-button-disabled-font-color: buttontext;--sky-override-vertical-tabset-group-border: 1px solid #e2e3e4;--sky-override-vertical-tabset-group-button-font-color: buttontext;--sky-override-vertical-tabset-group-button-padding: 10px;--sky-override-vertical-tabset-group-content-padding-left: 0;--sky-override-vertical-tabset-group-gap: 5px;--sky-override-vertical-tabset-group-header-align-items: flex-start;--sky-override-vertical-tabset-group-header-background-color: transparent;--sky-override-vertical-tabset-group-margin: 5px 0 5px 5px}:host-context(.sky-theme-modern:not(.sky-theme-brand-base)) .sky-vertical-tabset-group{--sky-override-tabset-group-expansion-indicator-position: absolute;--sky-override-tabset-group-header-position: relative;--sky-override-vertical-tabset-button-disabled-font-color: buttontext;--sky-override-vertical-tabset-group-button-font-color: buttontext;--sky-override-vertical-tabset-group-gap: var(--modern-size-15);--sky-override-vertical-tabset-group-margin: var(--modern-size-15) 0}.sky-vertical-tabset-group{border-bottom:var(--sky-override-vertical-tabset-group-border, none);margin:var(--sky-override-vertical-tabset-group-margin)}:host:has(~sky-vertical-tabset-group) .sky-vertical-tabset-group{margin-bottom:var(--sky-override-vertical-tabset-group-gap, var(--sky-space-gap-action_group-l))}.sky-vertical-tabset-group-header{position:var(--sky-override-tabset-group-header-position, initial)}.sky-vertical-tabset-group-header button{color:var(--sky-override-vertical-tabset-group-button-font-color, var(--sky-color-text-default));padding:var(--sky-override-vertical-tabset-group-button-padding, var(--sky-space-inset-balanced-s));cursor:pointer;display:flex;justify-content:space-between;border:none;width:100%;text-align:left;align-items:var(--sky-override-vertical-tabset-group-header-align-items, center);background-color:var(--sky-override-vertical-tabset-group-header-background-color, var(--sky-color-background-nav-base))}.sky-vertical-tabset-group-header button.sky-vertical-tabset-button-disabled{pointer-events:none;color:var(--sky-override-vertical-tabset-button-disabled-font-color, var(--sky-color-text-deemphasized))}.sky-vertical-tabset-group-header .sky-vertical-tabset-group-expansion-indicator{position:var(--sky-override-tabset-group-expansion-indicator-position, initial);top:6px;right:5px}.sky-vertical-tabset-group-header:has(.sky-vertical-tabset-button-disabled){cursor:not-allowed}.sky-vertical-tabset-group-content{overflow:hidden;border-top:var(--sky-override-vertical-tabset-group-border, none);padding-left:var(--sky-override-vertical-tabset-group-content-padding-left, var(--sky-space-inline-s))}\n"] }]
707
707
  }], ctorParameters: () => [{ type: SkyVerticalTabsetService }, { type: i0.ChangeDetectorRef }], propDecorators: { disabled: [{
@@ -823,8 +823,8 @@ class SkyVerticalTabsetComponent {
823
823
  tabGroupsArrowUp() {
824
824
  this.adapterService.focusPreviousButton(this.tabGroups);
825
825
  }
826
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.1", ngImport: i0, type: SkyVerticalTabsetComponent, deps: [{ token: SkyVerticalTabsetAdapterService }, { token: SkyVerticalTabsetService }, { token: i3$1.SkyLibResourcesService }, { token: i0.ChangeDetectorRef }, { token: SkyTabIdService }], target: i0.ɵɵFactoryTarget.Component }); }
827
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.1", type: SkyVerticalTabsetComponent, isStandalone: false, selector: "sky-vertical-tabset", inputs: { showTabsText: "showTabsText", ariaLabel: "ariaLabel", ariaLabelledBy: "ariaLabelledBy", ariaRole: "ariaRole", maintainTabContent: "maintainTabContent" }, outputs: { activeChange: "activeChange" }, providers: [SkyTabIdService, SkyVerticalTabsetService], viewQueries: [{ propertyName: "tabGroups", first: true, predicate: ["groupContainerWrapper"], descendants: true }, { propertyName: "content", first: true, predicate: ["skySideContent"], descendants: true }, { propertyName: "contentWrapper", first: true, predicate: ["contentContainerWrapper"], descendants: true }], ngImport: i0, template: "<div\n class=\"sky-vertical-tabset\"\n [tabIndex]=\"tablistHasFocus ? -1 : 0\"\n (focus)=\"tabsetFocus()\"\n>\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 class=\"sky-vertical-tabset-tablist\"\n [attr.aria-label]=\"ariaLabel\"\n [attr.aria-labelledby]=\"ariaLabelledBy\"\n [attr.aria-orientation]=\"isMobile ? undefined : 'vertical'\"\n [attr.aria-owns]=\"\n isMobile ? undefined : (tabIdSvc.ids | async)?.join(' ') || undefined\n \"\n [attr.role]=\"isMobile ? undefined : ariaRole\"\n ></span>\n @if (maintainTabContent || tabService.tabsVisible()) {\n <div\n #groupContainerWrapper\n class=\"sky-vertical-tabset-group-container\"\n [@tabGroupEnter]=\"tabService.animationTabsVisibleState\"\n [ngClass]=\"{ 'sky-vertical-tabset-hidden': !tabService.tabsVisible() }\"\n [tabIndex]=\"tablistHasFocus ? -1 : 0\"\n (@tabGroupEnter.done)=\"tabsetFocus()\"\n (keydown.arrowDown)=\"tabGroupsArrowDown(); $event.preventDefault()\"\n (keydown.arrowUp)=\"tabGroupsArrowUp(); $event.preventDefault()\"\n (focusin)=\"trapFocusInTablist()\"\n (focusout)=\"resetTabIndex()\"\n >\n <ng-content />\n </div>\n }\n @if (maintainTabContent || tabService.contentVisible()) {\n <div\n #contentContainerWrapper\n class=\"sky-vertical-tabset-content\"\n [ngClass]=\"{\n 'sky-vertical-tabset-content-hidden': !tabService.contentVisible()\n }\"\n [@contentEnter]=\"tabService.animationContentVisibleState\"\n (focusin)=\"resetTabIndex()\"\n >\n <div #skySideContent></div>\n @if (!tabService.tabsVisible()) {\n <button\n class=\"sky-btn sky-btn-primary sky-vertical-tabset-show-tabs-btn\"\n type=\"button\"\n (click)=\"tabService.showTabs()\"\n >\n <sky-icon iconName=\"chevron-left\" />\n {{ showTabsText }}\n </button>\n }\n </div>\n }\n</div>\n", styles: [".sky-vertical-tabset:not(.sky-theme-modern *){--sky-override-vertical-tab-content-pane-margin-bottom: 0;--sky-override-vertical-tabset-content-margin-sm-lg: 10px 0 0 10px;--sky-override-vertical-tabset-content-margin-xs: 10px 0 0 10px;--sky-override-vertical-tabset-group-container-border-right: 1px solid #cdcfd2;--sky-override-vertical-tabset-group-container-padding: 0;--sky-override-vertical-tabset-modal-margin-adjustment: -15px;--sky-override-vertical-tabset-modal-margin-adjustment-with-group: -15px;--sky-override-vertical-tabset-show-tabs-margin-top: 10px}:host-context(.sky-theme-modern:not(.sky-theme-brand-base)) .sky-vertical-tabset{--sky-override-vertical-tab-content-pane-margin-bottom: 0;--sky-override-vertical-tabset-content-margin-sm-lg: var(--modern-size-20) var(--modern-size-30);--sky-override-vertical-tabset-content-margin-xs: var(--modern-size-15);--sky-override-vertical-tabset-group-container-padding: 0;--sky-override-vertical-tabset-modal-margin-adjustment: calc( var(--modern-size-15) * -1 );--sky-override-vertical-tabset-modal-margin-adjustment-with-group: calc( var(--modern-size-15) * -1 );--sky-override-vertical-tabset-show-tabs-margin-top: var(--modern-size-10)}:host .sky-vertical-tabset{display:block;height:auto}:host .sky-vertical-tabset-group-container{border-right:none}:host-context(.sky-responsive-container-xs) .sky-vertical-tabset,:host-context(.sky-responsive-container-sm) .sky-vertical-tabset,:host-context(.sky-responsive-container-md) .sky-vertical-tabset,:host-context(.sky-responsive-container-lg) .sky-vertical-tabset{display:block;height:auto}:host-context(.sky-responsive-container-xs) .sky-vertical-tabset-group-container,:host-context(.sky-responsive-container-sm) .sky-vertical-tabset-group-container,:host-context(.sky-responsive-container-md) .sky-vertical-tabset-group-container,:host-context(.sky-responsive-container-lg) .sky-vertical-tabset-group-container{border-right:none}@media (min-width: 768px){:host .sky-vertical-tabset{display:flex;height:100%}:host .sky-vertical-tabset-group-container{border-right:var(--sky-override-vertical-tabset-group-container-border-right, var(--sky-border-width-divider) var(--sky-border-style-divider) var(--sky-color-border-divider))}}:host-context(.sky-responsive-container-sm) .sky-vertical-tabset,:host-context(.sky-responsive-container-md) .sky-vertical-tabset,:host-context(.sky-responsive-container-lg) .sky-vertical-tabset{display:flex;height:100%}:host-context(.sky-responsive-container-sm) .sky-vertical-tabset-group-container,:host-context(.sky-responsive-container-md) .sky-vertical-tabset-group-container,:host-context(.sky-responsive-container-lg) .sky-vertical-tabset-group-container{border-right:var(--sky-override-vertical-tabset-group-container-border-right, var(--sky-border-width-divider) var(--sky-border-style-divider) var(--sky-color-border-divider))}.sky-vertical-tabset-hidden{display:none}.sky-vertical-tabset-content{margin:var(--sky-override-vertical-tabset-content-margin-xs, var(--sky-space-inset-balanced-m));flex-basis:75%;overflow-y:auto}.sky-vertical-tabset-content-hidden{display:none}.sky-vertical-tabset-show-tabs-btn{margin-top:var(--sky-override-vertical-tabset-show-tabs-margin-top, 0)}.sky-vertical-tabset-group-container{flex-basis:25%;overflow-y:auto;padding:var(--sky-override-vertical-tabset-group-container-padding, var(--sky-space-inset-vertical-top-m) 0 var(--sky-space-inset-vertical-bottom-m))}:host-context(sky-modal-content)>:host .sky-vertical-tabset{margin:var(--sky-override-vertical-tabset-modal-margin-adjustment, calc(var(--sky-space-inset-floated-top-m) * -1) calc(var(--sky-space-inset-floated-right-m) * -1) calc(var(--sky-space-inset-floated-bottom-m) * -1) calc((var(--sky-space-inset-pillarbox-2_3-left-m) + var(--sky-space-inline-s)) * -1))}:host-context(sky-modal-content)>:host .sky-vertical-tabset:has(sky-vertical-tabset-group){margin-left:var(--sky-override-vertical-tabset-modal-margin-adjustment-with-group, calc(var(--sky-space-inset-balanced-s) * -1))}@media (min-width: 768px){:host .sky-vertical-tabset-content{margin:var(--sky-override-vertical-tabset-content-margin-sm-lg, var(--sky-space-inset-pillarbox-2_3-top-m) var(--sky-space-inset-pillarbox-2_3-right-m) var(--sky-space-inset-pillarbox-2_3-bottom-m) var(--sky-space-inset-pillarbox-2_3-left-m))}}:host-context(.sky-responsive-container-sm) .sky-vertical-tabset-content,:host-context(.sky-responsive-container-md) .sky-vertical-tabset-content,:host-context(.sky-responsive-container-lg) .sky-vertical-tabset-content{margin:var(--sky-override-vertical-tabset-content-margin-sm-lg, var(--sky-space-inset-pillarbox-2_3-top-m) var(--sky-space-inset-pillarbox-2_3-right-m) var(--sky-space-inset-pillarbox-2_3-bottom-m) var(--sky-space-inset-pillarbox-2_3-left-m))}\n"], dependencies: [{ kind: "directive", type: i4.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "component", type: i6.λ1, selector: "sky-icon", inputs: ["icon", "iconName", "iconType", "size", "fixedWidth", "variant", "iconSize"] }, { kind: "pipe", type: i4.AsyncPipe, name: "async" }], animations: [
826
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.7", ngImport: i0, type: SkyVerticalTabsetComponent, deps: [{ token: SkyVerticalTabsetAdapterService }, { token: SkyVerticalTabsetService }, { token: i3$1.SkyLibResourcesService }, { token: i0.ChangeDetectorRef }, { token: SkyTabIdService }], target: i0.ɵɵFactoryTarget.Component }); }
827
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.7", type: SkyVerticalTabsetComponent, isStandalone: false, selector: "sky-vertical-tabset", inputs: { showTabsText: "showTabsText", ariaLabel: "ariaLabel", ariaLabelledBy: "ariaLabelledBy", ariaRole: "ariaRole", maintainTabContent: "maintainTabContent" }, outputs: { activeChange: "activeChange" }, providers: [SkyTabIdService, SkyVerticalTabsetService], viewQueries: [{ propertyName: "tabGroups", first: true, predicate: ["groupContainerWrapper"], descendants: true }, { propertyName: "content", first: true, predicate: ["skySideContent"], descendants: true }, { propertyName: "contentWrapper", first: true, predicate: ["contentContainerWrapper"], descendants: true }], ngImport: i0, template: "<div\n class=\"sky-vertical-tabset\"\n [tabIndex]=\"tablistHasFocus ? -1 : 0\"\n (focus)=\"tabsetFocus()\"\n>\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 class=\"sky-vertical-tabset-tablist\"\n [attr.aria-label]=\"ariaLabel\"\n [attr.aria-labelledby]=\"ariaLabelledBy\"\n [attr.aria-orientation]=\"isMobile ? undefined : 'vertical'\"\n [attr.aria-owns]=\"\n isMobile ? undefined : (tabIdSvc.ids | async)?.join(' ') || undefined\n \"\n [attr.role]=\"isMobile ? undefined : ariaRole\"\n ></span>\n @if (maintainTabContent || tabService.tabsVisible()) {\n <div\n #groupContainerWrapper\n class=\"sky-vertical-tabset-group-container\"\n [@tabGroupEnter]=\"tabService.animationTabsVisibleState\"\n [ngClass]=\"{ 'sky-vertical-tabset-hidden': !tabService.tabsVisible() }\"\n [tabIndex]=\"tablistHasFocus ? -1 : 0\"\n (@tabGroupEnter.done)=\"tabsetFocus()\"\n (keydown.arrowDown)=\"tabGroupsArrowDown(); $event.preventDefault()\"\n (keydown.arrowUp)=\"tabGroupsArrowUp(); $event.preventDefault()\"\n (focusin)=\"trapFocusInTablist()\"\n (focusout)=\"resetTabIndex()\"\n >\n <ng-content />\n </div>\n }\n @if (maintainTabContent || tabService.contentVisible()) {\n <div\n #contentContainerWrapper\n class=\"sky-vertical-tabset-content\"\n [ngClass]=\"{\n 'sky-vertical-tabset-content-hidden': !tabService.contentVisible()\n }\"\n [@contentEnter]=\"tabService.animationContentVisibleState\"\n (focusin)=\"resetTabIndex()\"\n >\n <div #skySideContent></div>\n @if (!tabService.tabsVisible()) {\n <button\n class=\"sky-btn sky-btn-primary sky-vertical-tabset-show-tabs-btn\"\n type=\"button\"\n (click)=\"tabService.showTabs()\"\n >\n <sky-icon iconName=\"chevron-left\" />\n {{ showTabsText }}\n </button>\n }\n </div>\n }\n</div>\n", styles: [".sky-vertical-tabset:not(.sky-theme-modern *){--sky-override-vertical-tab-content-pane-margin-bottom: 0;--sky-override-vertical-tabset-content-margin-sm-lg: 10px 0 0 10px;--sky-override-vertical-tabset-content-margin-xs: 10px 0 0 10px;--sky-override-vertical-tabset-group-container-border-right: 1px solid #cdcfd2;--sky-override-vertical-tabset-group-container-padding: 0;--sky-override-vertical-tabset-modal-margin-adjustment: -15px;--sky-override-vertical-tabset-modal-margin-adjustment-with-group: -15px;--sky-override-vertical-tabset-show-tabs-margin-top: 10px}:host-context(.sky-theme-modern:not(.sky-theme-brand-base)) .sky-vertical-tabset{--sky-override-vertical-tab-content-pane-margin-bottom: 0;--sky-override-vertical-tabset-content-margin-sm-lg: var(--modern-size-20) var(--modern-size-30);--sky-override-vertical-tabset-content-margin-xs: var(--modern-size-15);--sky-override-vertical-tabset-group-container-padding: 0;--sky-override-vertical-tabset-modal-margin-adjustment: calc( var(--modern-size-15) * -1 );--sky-override-vertical-tabset-modal-margin-adjustment-with-group: calc( var(--modern-size-15) * -1 );--sky-override-vertical-tabset-show-tabs-margin-top: var(--modern-size-10)}:host .sky-vertical-tabset{display:block;height:auto}:host .sky-vertical-tabset-group-container{border-right:none}:host-context(.sky-responsive-container-xs) .sky-vertical-tabset,:host-context(.sky-responsive-container-sm) .sky-vertical-tabset,:host-context(.sky-responsive-container-md) .sky-vertical-tabset,:host-context(.sky-responsive-container-lg) .sky-vertical-tabset{display:block;height:auto}:host-context(.sky-responsive-container-xs) .sky-vertical-tabset-group-container,:host-context(.sky-responsive-container-sm) .sky-vertical-tabset-group-container,:host-context(.sky-responsive-container-md) .sky-vertical-tabset-group-container,:host-context(.sky-responsive-container-lg) .sky-vertical-tabset-group-container{border-right:none}@media (min-width: 768px){:host .sky-vertical-tabset{display:flex;height:100%}:host .sky-vertical-tabset-group-container{border-right:var(--sky-override-vertical-tabset-group-container-border-right, var(--sky-border-width-divider) var(--sky-border-style-divider) var(--sky-color-border-divider))}}:host-context(.sky-responsive-container-sm) .sky-vertical-tabset,:host-context(.sky-responsive-container-md) .sky-vertical-tabset,:host-context(.sky-responsive-container-lg) .sky-vertical-tabset{display:flex;height:100%}:host-context(.sky-responsive-container-sm) .sky-vertical-tabset-group-container,:host-context(.sky-responsive-container-md) .sky-vertical-tabset-group-container,:host-context(.sky-responsive-container-lg) .sky-vertical-tabset-group-container{border-right:var(--sky-override-vertical-tabset-group-container-border-right, var(--sky-border-width-divider) var(--sky-border-style-divider) var(--sky-color-border-divider))}.sky-vertical-tabset-hidden{display:none}.sky-vertical-tabset-content{margin:var(--sky-override-vertical-tabset-content-margin-xs, var(--sky-space-inset-balanced-m));flex-basis:75%;overflow-y:auto}.sky-vertical-tabset-content-hidden{display:none}.sky-vertical-tabset-show-tabs-btn{margin-top:var(--sky-override-vertical-tabset-show-tabs-margin-top, 0)}.sky-vertical-tabset-group-container{flex-basis:25%;overflow-y:auto;padding:var(--sky-override-vertical-tabset-group-container-padding, var(--sky-space-inset-vertical-top-m) 0 var(--sky-space-inset-vertical-bottom-m))}:host-context(sky-modal-content)>:host .sky-vertical-tabset{margin:var(--sky-override-vertical-tabset-modal-margin-adjustment, calc(var(--sky-space-inset-floated-top-m) * -1) calc(var(--sky-space-inset-floated-right-m) * -1) calc(var(--sky-space-inset-floated-bottom-m) * -1) calc((var(--sky-space-inset-pillarbox-2_3-left-m) + var(--sky-space-inline-s)) * -1))}:host-context(sky-modal-content)>:host .sky-vertical-tabset:has(sky-vertical-tabset-group){margin-left:var(--sky-override-vertical-tabset-modal-margin-adjustment-with-group, calc(var(--sky-space-inset-balanced-s) * -1))}@media (min-width: 768px){:host .sky-vertical-tabset-content{margin:var(--sky-override-vertical-tabset-content-margin-sm-lg, var(--sky-space-inset-pillarbox-2_3-top-m) var(--sky-space-inset-pillarbox-2_3-right-m) var(--sky-space-inset-pillarbox-2_3-bottom-m) var(--sky-space-inset-pillarbox-2_3-left-m))}}:host-context(.sky-responsive-container-sm) .sky-vertical-tabset-content,:host-context(.sky-responsive-container-md) .sky-vertical-tabset-content,:host-context(.sky-responsive-container-lg) .sky-vertical-tabset-content{margin:var(--sky-override-vertical-tabset-content-margin-sm-lg, var(--sky-space-inset-pillarbox-2_3-top-m) var(--sky-space-inset-pillarbox-2_3-right-m) var(--sky-space-inset-pillarbox-2_3-bottom-m) var(--sky-space-inset-pillarbox-2_3-left-m))}\n"], dependencies: [{ kind: "directive", type: i4.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "component", type: i6.λ1, selector: "sky-icon", inputs: ["icon", "iconName", "iconType", "size", "fixedWidth", "variant", "iconSize"] }, { kind: "pipe", type: i4.AsyncPipe, name: "async" }], animations: [
828
828
  trigger('tabGroupEnter', [
829
829
  transition(`${HIDDEN_STATE} => ${VISIBLE_STATE}`, [
830
830
  style({ transform: 'translate(-100%)' }),
@@ -839,7 +839,7 @@ class SkyVerticalTabsetComponent {
839
839
  ]),
840
840
  ], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
841
841
  }
842
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.1", ngImport: i0, type: SkyVerticalTabsetComponent, decorators: [{
842
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.7", ngImport: i0, type: SkyVerticalTabsetComponent, decorators: [{
843
843
  type: Component,
844
844
  args: [{ selector: 'sky-vertical-tabset', providers: [SkyTabIdService, SkyVerticalTabsetService], changeDetection: ChangeDetectionStrategy.OnPush, animations: [
845
845
  trigger('tabGroupEnter', [
@@ -879,8 +879,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.1", ngImpor
879
879
  }] } });
880
880
 
881
881
  class SkyVerticalTabsetModule {
882
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.1", ngImport: i0, type: SkyVerticalTabsetModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
883
- static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "19.2.1", ngImport: i0, type: SkyVerticalTabsetModule, declarations: [SkyVerticalTabsetComponent,
882
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.7", ngImport: i0, type: SkyVerticalTabsetModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
883
+ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "19.2.7", ngImport: i0, type: SkyVerticalTabsetModule, declarations: [SkyVerticalTabsetComponent,
884
884
  SkyVerticalTabsetGroupComponent,
885
885
  SkyVerticalTabComponent], imports: [CommonModule,
886
886
  SkyIconModule,
@@ -892,7 +892,7 @@ class SkyVerticalTabsetModule {
892
892
  SkyThemeModule], exports: [SkyVerticalTabsetComponent,
893
893
  SkyVerticalTabsetGroupComponent,
894
894
  SkyVerticalTabComponent] }); }
895
- static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "19.2.1", ngImport: i0, type: SkyVerticalTabsetModule, providers: [SkyVerticalTabsetAdapterService], imports: [CommonModule,
895
+ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "19.2.7", ngImport: i0, type: SkyVerticalTabsetModule, providers: [SkyVerticalTabsetAdapterService], imports: [CommonModule,
896
896
  SkyIconModule,
897
897
  SkyIdModule,
898
898
  SkyExpansionIndicatorModule,
@@ -900,7 +900,7 @@ class SkyVerticalTabsetModule {
900
900
  SkyTabsResourcesModule,
901
901
  SkyThemeModule] }); }
902
902
  }
903
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.1", ngImport: i0, type: SkyVerticalTabsetModule, decorators: [{
903
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.7", ngImport: i0, type: SkyVerticalTabsetModule, decorators: [{
904
904
  type: NgModule,
905
905
  args: [{
906
906
  declarations: [
@@ -952,10 +952,10 @@ class SkySectionedFormService {
952
952
  requiredFieldChanged(isRequired) {
953
953
  this.requiredChange.next(isRequired);
954
954
  }
955
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.1", ngImport: i0, type: SkySectionedFormService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
956
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.2.1", ngImport: i0, type: SkySectionedFormService }); }
955
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.7", ngImport: i0, type: SkySectionedFormService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
956
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.2.7", ngImport: i0, type: SkySectionedFormService }); }
957
957
  }
958
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.1", ngImport: i0, type: SkySectionedFormService, decorators: [{
958
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.7", ngImport: i0, type: SkySectionedFormService, decorators: [{
959
959
  type: Injectable
960
960
  }] });
961
961
 
@@ -997,10 +997,10 @@ class SkySectionedFormSectionComponent {
997
997
  this.#ngUnsubscribe.next();
998
998
  this.#ngUnsubscribe.complete();
999
999
  }
1000
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.1", ngImport: i0, type: SkySectionedFormSectionComponent, deps: [{ token: SkySectionedFormService }, { token: SkyVerticalTabsetService }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); }
1001
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.1", type: SkySectionedFormSectionComponent, isStandalone: false, selector: "sky-sectioned-form-section", inputs: { heading: "heading", itemCount: "itemCount", active: "active" }, providers: [SkySectionedFormService], viewQueries: [{ propertyName: "tab", first: true, predicate: SkyVerticalTabComponent, descendants: true }], ngImport: i0, template: "<sky-vertical-tab\n [active]=\"active\"\n [errorIndicator]=\"fieldInvalid\"\n [requiredIndicator]=\"fieldRequired\"\n [showTabRightArrow]=\"true\"\n [tabHeaderCount]=\"itemCount\"\n [tabHeading]=\"heading\"\n [tabId]=\"sectionTabId\"\n>\n <ng-content />\n</sky-vertical-tab>\n", dependencies: [{ kind: "component", type: SkyVerticalTabComponent, selector: "sky-vertical-tab", inputs: ["active", "ariaControls", "ariaRole", "disabled", "errorIndicator", "requiredIndicator", "tabHeaderCount", "tabHeading", "showTabRightArrow", "tabId"] }] }); }
1000
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.7", ngImport: i0, type: SkySectionedFormSectionComponent, deps: [{ token: SkySectionedFormService }, { token: SkyVerticalTabsetService }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); }
1001
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.7", type: SkySectionedFormSectionComponent, isStandalone: false, selector: "sky-sectioned-form-section", inputs: { heading: "heading", itemCount: "itemCount", active: "active" }, providers: [SkySectionedFormService], viewQueries: [{ propertyName: "tab", first: true, predicate: SkyVerticalTabComponent, descendants: true }], ngImport: i0, template: "<sky-vertical-tab\n [active]=\"active\"\n [errorIndicator]=\"fieldInvalid\"\n [requiredIndicator]=\"fieldRequired\"\n [showTabRightArrow]=\"true\"\n [tabHeaderCount]=\"itemCount\"\n [tabHeading]=\"heading\"\n [tabId]=\"sectionTabId\"\n>\n <ng-content />\n</sky-vertical-tab>\n", dependencies: [{ kind: "component", type: SkyVerticalTabComponent, selector: "sky-vertical-tab", inputs: ["active", "ariaControls", "ariaRole", "disabled", "errorIndicator", "requiredIndicator", "tabHeaderCount", "tabHeading", "showTabRightArrow", "tabId"] }] }); }
1002
1002
  }
1003
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.1", ngImport: i0, type: SkySectionedFormSectionComponent, decorators: [{
1003
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.7", ngImport: i0, type: SkySectionedFormSectionComponent, decorators: [{
1004
1004
  type: Component,
1005
1005
  args: [{ selector: 'sky-sectioned-form-section', providers: [SkySectionedFormService], standalone: false, template: "<sky-vertical-tab\n [active]=\"active\"\n [errorIndicator]=\"fieldInvalid\"\n [requiredIndicator]=\"fieldRequired\"\n [showTabRightArrow]=\"true\"\n [tabHeaderCount]=\"itemCount\"\n [tabHeading]=\"heading\"\n [tabId]=\"sectionTabId\"\n>\n <ng-content />\n</sky-vertical-tab>\n" }]
1006
1006
  }], ctorParameters: () => [{ type: SkySectionedFormService }, { type: SkyVerticalTabsetService }, { type: i0.ChangeDetectorRef }], propDecorators: { heading: [{
@@ -1149,8 +1149,8 @@ class SkySectionedFormComponent {
1149
1149
  }
1150
1150
  });
1151
1151
  }
1152
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.1", ngImport: i0, type: SkySectionedFormComponent, deps: [{ token: SkyVerticalTabsetService }, { token: i0.ChangeDetectorRef }, { token: SkyTabIdService }, { token: i3.SkyLogService }], target: i0.ɵɵFactoryTarget.Component }); }
1153
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.1", type: SkySectionedFormComponent, isStandalone: false, 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 [attr.aria-orientation]=\"ariaRole ? 'vertical' : undefined\"\n [attr.aria-owns]=\"ariaRole ? ariaOwns : undefined\"\n [attr.role]=\"ariaRole\"\n ></span>\n @if (maintainSectionContent || tabsVisible()) {\n <div\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 />\n </div>\n }\n @if (maintainSectionContent || tabService.contentVisible()) {\n <div\n #skySectionSideContent\n class=\"sky-sectioned-form-content\"\n [ngClass]=\"{\n 'sky-sectioned-form-content-hidden': !tabService.contentVisible()\n }\"\n [@contentEnter]=\"tabService.animationContentVisibleState\"\n ></div>\n }\n</div>\n", styles: [".sky-sectioned-form:not(.sky-theme-modern *){--sky-override-sectioned-form-content-border-left: 1px solid var(--sky-border-color-neutral-medium);--sky-override-sectioned-form-content-padding: var(--sky-padding-even-md) var(--sky-padding-even-xl);--sky-override-sectioned-form-modal-margin-adjustment: -15px;--sky-override-sectioned-form-tabs-only-padding: var(--sky-padding-even-md);--sky-override-sectioned-form-tabs-padding: 0}:host-context(.sky-theme-modern:not(.sky-theme-brand-base)) .sky-sectioned-form{--sky-override-sectioned-form-content-padding: var(--sky-padding-even-md) var(--sky-padding-even-xl);--sky-override-sectioned-form-tabs-padding: 0}:host .sky-sectioned-form{display:block;max-height:none}:host .sky-sectioned-form-content{flex-basis:auto;overflow-y:visible;padding:var(--sky-override-sectioned-form-content-padding, var(--sky-space-inset-floated-top-m) var(--sky-space-inset-floated-right-m) var(--sky-space-inset-floated-bottom-m) var(--sky-space-inset-floated-left-m))}:host .sky-sectioned-form-tabs{flex-basis:auto;overflow-y:visible;padding:var(--sky-override-sectioned-form-tabs-padding, var(--sky-space-inset-vertical-top-m) 0 var(--sky-space-inset-vertical-bottom-m))}:host .sky-sectioned-form-tabs+.sky-sectioned-form-content{border-left:var(--sky-override-sectioned-form-content-border-left, var(--sky-border-width-divider) solid var(--sky-color-border-divider))}:host .sky-sectioned-form-tabs-only{padding:var(--sky-override-sectioned-form-tabs-only-padding, var(--sky-space-inset-balanced-m))}: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;padding:var(--sky-override-sectioned-form-content-padding, var(--sky-space-inset-floated-top-m) var(--sky-space-inset-floated-right-m) var(--sky-space-inset-floated-bottom-m) var(--sky-space-inset-floated-left-m))}: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;padding:var(--sky-override-sectioned-form-tabs-padding, var(--sky-space-inset-vertical-top-m) 0 var(--sky-space-inset-vertical-bottom-m))}: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:var(--sky-override-sectioned-form-content-border-left, var(--sky-border-width-divider) solid var(--sky-color-border-divider))}: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-override-sectioned-form-tabs-only-padding, var(--sky-space-inset-balanced-m))}@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}:host-context(sky-modal) .sky-sectioned-form{min-height:460px}:host-context(sky-modal-content)>:host .sky-sectioned-form,:host-context(sky-modal-content)>form :host .sky-sectioned-form{margin:var(--sky-override-sectioned-form-modal-margin-adjustment, calc(var(--sky-space-inset-floated-top-m) * -1) calc(var(--sky-space-inset-floated-right-m) * -1) calc(var(--sky-space-inset-floated-bottom-m) * -1) calc(var(--sky-space-inset-floated-left-m) * -1))}.sky-sectioned-form-tabs-hidden,.sky-sectioned-form-content-hidden{display:none}\n"], dependencies: [{ kind: "directive", type: i4.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }], animations: [
1152
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.7", ngImport: i0, type: SkySectionedFormComponent, deps: [{ token: SkyVerticalTabsetService }, { token: i0.ChangeDetectorRef }, { token: SkyTabIdService }, { token: i3.SkyLogService }], target: i0.ɵɵFactoryTarget.Component }); }
1153
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.7", type: SkySectionedFormComponent, isStandalone: false, 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 [attr.aria-orientation]=\"ariaRole ? 'vertical' : undefined\"\n [attr.aria-owns]=\"ariaRole ? ariaOwns : undefined\"\n [attr.role]=\"ariaRole\"\n ></span>\n @if (maintainSectionContent || tabsVisible()) {\n <div\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 />\n </div>\n }\n @if (maintainSectionContent || tabService.contentVisible()) {\n <div\n #skySectionSideContent\n class=\"sky-sectioned-form-content\"\n [ngClass]=\"{\n 'sky-sectioned-form-content-hidden': !tabService.contentVisible()\n }\"\n [@contentEnter]=\"tabService.animationContentVisibleState\"\n ></div>\n }\n</div>\n", styles: [".sky-sectioned-form:not(.sky-theme-modern *){--sky-override-sectioned-form-content-border-left: 1px solid var(--sky-border-color-neutral-medium);--sky-override-sectioned-form-content-padding: var(--sky-padding-even-md) var(--sky-padding-even-xl);--sky-override-sectioned-form-modal-margin-adjustment: -15px;--sky-override-sectioned-form-tabs-only-padding: var(--sky-padding-even-md);--sky-override-sectioned-form-tabs-padding: 0}:host-context(.sky-theme-modern:not(.sky-theme-brand-base)) .sky-sectioned-form{--sky-override-sectioned-form-content-padding: var(--sky-padding-even-md) var(--sky-padding-even-xl);--sky-override-sectioned-form-tabs-padding: 0}:host .sky-sectioned-form{display:block;max-height:none}:host .sky-sectioned-form-content{flex-basis:auto;overflow-y:visible;padding:var(--sky-override-sectioned-form-content-padding, var(--sky-space-inset-floated-top-m) var(--sky-space-inset-floated-right-m) var(--sky-space-inset-floated-bottom-m) var(--sky-space-inset-floated-left-m))}:host .sky-sectioned-form-tabs{flex-basis:auto;overflow-y:visible;padding:var(--sky-override-sectioned-form-tabs-padding, var(--sky-space-inset-vertical-top-m) 0 var(--sky-space-inset-vertical-bottom-m))}:host .sky-sectioned-form-tabs+.sky-sectioned-form-content{border-left:var(--sky-override-sectioned-form-content-border-left, var(--sky-border-width-divider) solid var(--sky-color-border-divider))}:host .sky-sectioned-form-tabs-only{padding:var(--sky-override-sectioned-form-tabs-only-padding, var(--sky-space-inset-balanced-m))}: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;padding:var(--sky-override-sectioned-form-content-padding, var(--sky-space-inset-floated-top-m) var(--sky-space-inset-floated-right-m) var(--sky-space-inset-floated-bottom-m) var(--sky-space-inset-floated-left-m))}: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;padding:var(--sky-override-sectioned-form-tabs-padding, var(--sky-space-inset-vertical-top-m) 0 var(--sky-space-inset-vertical-bottom-m))}: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:var(--sky-override-sectioned-form-content-border-left, var(--sky-border-width-divider) solid var(--sky-color-border-divider))}: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-override-sectioned-form-tabs-only-padding, var(--sky-space-inset-balanced-m))}@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}:host-context(sky-modal) .sky-sectioned-form{min-height:460px}:host-context(sky-modal-content)>:host .sky-sectioned-form,:host-context(sky-modal-content)>form :host .sky-sectioned-form{margin:var(--sky-override-sectioned-form-modal-margin-adjustment, calc(var(--sky-space-inset-floated-top-m) * -1) calc(var(--sky-space-inset-floated-right-m) * -1) calc(var(--sky-space-inset-floated-bottom-m) * -1) calc(var(--sky-space-inset-floated-left-m) * -1))}.sky-sectioned-form-tabs-hidden,.sky-sectioned-form-content-hidden{display:none}\n"], dependencies: [{ kind: "directive", type: i4.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }], animations: [
1154
1154
  trigger('tabEnter', [
1155
1155
  transition(`${HIDDEN_STATE} => ${VISIBLE_STATE}`, [
1156
1156
  style({ transform: 'translate(-100%)' }),
@@ -1165,7 +1165,7 @@ class SkySectionedFormComponent {
1165
1165
  ]),
1166
1166
  ], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
1167
1167
  }
1168
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.1", ngImport: i0, type: SkySectionedFormComponent, decorators: [{
1168
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.7", ngImport: i0, type: SkySectionedFormComponent, decorators: [{
1169
1169
  type: Component,
1170
1170
  args: [{ selector: 'sky-sectioned-form', providers: [SkyTabIdService, SkyVerticalTabsetService], changeDetection: ChangeDetectionStrategy.OnPush, animations: [
1171
1171
  trigger('tabEnter', [
@@ -1195,17 +1195,17 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.1", ngImpor
1195
1195
  }] } });
1196
1196
 
1197
1197
  class SkySectionedFormModule {
1198
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.1", ngImport: i0, type: SkySectionedFormModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
1199
- static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "19.2.1", ngImport: i0, type: SkySectionedFormModule, declarations: [SkySectionedFormComponent, SkySectionedFormSectionComponent], imports: [CommonModule,
1198
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.7", ngImport: i0, type: SkySectionedFormModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
1199
+ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "19.2.7", ngImport: i0, type: SkySectionedFormModule, declarations: [SkySectionedFormComponent, SkySectionedFormSectionComponent], imports: [CommonModule,
1200
1200
  SkyCheckboxModule,
1201
1201
  SkyThemeModule,
1202
1202
  SkyVerticalTabsetModule], exports: [SkySectionedFormComponent, SkySectionedFormSectionComponent] }); }
1203
- static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "19.2.1", ngImport: i0, type: SkySectionedFormModule, imports: [CommonModule,
1203
+ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "19.2.7", ngImport: i0, type: SkySectionedFormModule, imports: [CommonModule,
1204
1204
  SkyCheckboxModule,
1205
1205
  SkyThemeModule,
1206
1206
  SkyVerticalTabsetModule] }); }
1207
1207
  }
1208
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.1", ngImport: i0, type: SkySectionedFormModule, decorators: [{
1208
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.7", ngImport: i0, type: SkySectionedFormModule, decorators: [{
1209
1209
  type: NgModule,
1210
1210
  args: [{
1211
1211
  declarations: [SkySectionedFormComponent, SkySectionedFormSectionComponent],
@@ -1226,10 +1226,10 @@ class SkyTabButtonAdapterService {
1226
1226
  focusButtonLink(buttonEl) {
1227
1227
  buttonEl.nativeElement.querySelector('a').focus();
1228
1228
  }
1229
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.1", ngImport: i0, type: SkyTabButtonAdapterService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
1230
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.2.1", ngImport: i0, type: SkyTabButtonAdapterService }); }
1229
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.7", ngImport: i0, type: SkyTabButtonAdapterService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
1230
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.2.7", ngImport: i0, type: SkyTabButtonAdapterService }); }
1231
1231
  }
1232
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.1", ngImport: i0, type: SkyTabButtonAdapterService, decorators: [{
1232
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.7", ngImport: i0, type: SkyTabButtonAdapterService, decorators: [{
1233
1233
  type: Injectable
1234
1234
  }] });
1235
1235
 
@@ -1416,10 +1416,10 @@ class SkyTabsetService {
1416
1416
  }
1417
1417
  return prevIndex;
1418
1418
  }
1419
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.1", ngImport: i0, type: SkyTabsetService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
1420
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.2.1", ngImport: i0, type: SkyTabsetService }); }
1419
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.7", ngImport: i0, type: SkyTabsetService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
1420
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.2.7", ngImport: i0, type: SkyTabsetService }); }
1421
1421
  }
1422
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.1", ngImport: i0, type: SkyTabsetService, decorators: [{
1422
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.7", ngImport: i0, type: SkyTabsetService, decorators: [{
1423
1423
  type: Injectable
1424
1424
  }], ctorParameters: () => [] });
1425
1425
 
@@ -1539,10 +1539,10 @@ class SkyTabButtonComponent {
1539
1539
  }
1540
1540
  this.#changeDetectorRef.markForCheck();
1541
1541
  }
1542
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.1", ngImport: i0, type: SkyTabButtonComponent, deps: [{ token: i0.ElementRef }, { token: SkyTabButtonAdapterService }, { token: i0.ChangeDetectorRef }, { token: SkyTabsetService }], target: i0.ɵɵFactoryTarget.Component }); }
1543
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.1", type: SkyTabButtonComponent, isStandalone: false, selector: "sky-tab-button", inputs: { active: "active", ariaControls: "ariaControls", buttonHref: "buttonHref", buttonId: "buttonId", buttonText: "buttonText", buttonTextCount: "buttonTextCount", closeable: "closeable", disabled: "disabled", tabIndex: "tabIndex", tabNumber: "tabNumber", totalTabsCount: "totalTabsCount", tabStyle: "tabStyle" }, outputs: { buttonClick: "buttonClick", closeClick: "closeClick" }, providers: [SkyTabButtonAdapterService], ngImport: i0, template: "<div\n class=\"sky-btn-tab-wrapper\"\n [ngClass]=\"{\n 'sky-btn-tab-wrapper-selected': active,\n 'sky-btn-tab-wrapper-disabled': disabled\n }\"\n>\n <a\n #tabButtonEl\n class=\"sky-btn-tab\"\n role=\"tab\"\n [attr.aria-controls]=\"ariaControls\"\n [attr.aria-disabled]=\"disabled\"\n [attr.aria-selected]=\"active\"\n [attr.href]=\"buttonHref\"\n [attr.aria-label]=\"\n tabStyle === 'wizard'\n ? ('skyux_wizard_sr_step_' + wizardStepState\n | skyLibResources: tabNumber : totalTabsCount : buttonText)\n : null\n \"\n [attr.aria-labelledby]=\"tabStyle === 'wizard' ? null : tabHeading.id\"\n [id]=\"buttonId\"\n [ngClass]=\"{\n 'sky-btn-tab-wizard': tabStyle === 'wizard',\n 'sky-btn-tab-selected': active,\n 'sky-btn-tab-disabled': disabled,\n 'sky-tab-btn-closeable': closeable\n }\"\n [tabindex]=\"active ? '0' : '-1'\"\n (click)=\"onButtonClick($event)\"\n (keydown)=\"onTabButtonKeyDown($event)\"\n (focus)=\"onFocus()\"\n >\n <span class=\"sky-tab-heading\" [attr.aria-hidden]=\"true\">\n <span #tabHeading=\"skyId\" skyId>\n {{ buttonText }}\n @if (buttonTextCount !== undefined) {\n <span class=\"sky-tab-header-count\">\n {{ buttonTextCount }}\n </span>\n }\n </span>\n @if (closeable) {\n <span\n class=\"sky-btn-tab-close\"\n [tabindex]=\"closeBtnTabIndex\"\n [attr.aria-label]=\"'skyux_tab_close' | skyLibResources: buttonText\"\n [ngClass]=\"{\n 'sky-btn-tab-close-disabled': disabled\n }\"\n (click)=\"onCloseClick($event)\"\n (keydown.enter)=\"onCloseClick($event)\"\n >\n <sky-icon iconName=\"close\" />\n </span>\n }\n </span>\n </a>\n</div>\n", styles: ["sky-tab-button:not(.sky-theme-modern *){--sky-override-closeable-tab-padding-right: 43px;--sky-override-tab-close-active-hover-color: #fff;--sky-override-tab-close-color: #686c73;--sky-override-tab-close-hover-color: #212327;--sky-override-tab-close-padding: 1px 6px;--sky-override-tab-close-position-right: 10px;--sky-override-tab-close-position-top: 10px;--sky-override-tab-margin-right: 5px}.sky-theme-modern:not(.sky-theme-brand-base) sky-tab-button{--sky-override-closeable-tab-padding-right: 44px;--sky-override-tab-close-padding: var(--modern-size-1) var(--modern-size-6);--sky-override-tab-close-position-right: var(--modern-size-10);--sky-override-tab-close-position-top: var(--modern-size-12)}.sky-btn-tab-wrapper{display:inline-block;position:relative;margin-right:var(--sky-override-tab-margin-right, var(--sky-space-gap-action_group-m))}.sky-btn-tab-wrapper .sky-btn-tab-close{position:absolute;top:var(--sky-override-tab-close-position-top, var(--sky-space-gap-icon-m));right:var(--sky-override-tab-close-position-right, var(--sky-space-gap-icon-m));color:var(--sky-override-tab-close-color, var(--sky-color-icon-deemphasized));padding:var(--sky-override-tab-close-padding, 0 var(--sky-space-inset-balanced-xs))}.sky-btn-tab-wrapper .sky-btn-tab-close:hover{color:var(--sky-override-tab-close-hover-color, var(--sky-color-icon-default));transition:color .15s}.sky-btn-tab-wrapper.sky-btn-tab-wrapper-selected:not(.sky-btn-tab-wrapper-disabled) .sky-btn-tab-close{color:var(--sky-override-tab-close-active-hover-color, var(--sky-color-icon-deemphasized))}.sky-btn-tab-wrapper.sky-btn-tab-wrapper-disabled{cursor:not-allowed}.sky-btn-tab-wrapper .sky-tab-btn-closeable{padding-right:var(--sky-override-closeable-tab-padding-right, calc(var(--sky-space-inset-pillarbox-2_3-right-m) + var(--sky-space-gap-text_action-xs) + var(--sky-space-inset-balanced-xs) + var(--sky-space-inset-balanced-xs) + var(--sky-font-size-body-m)))}\n"], dependencies: [{ kind: "directive", type: i4.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "component", type: i6.λ1, selector: "sky-icon", inputs: ["icon", "iconName", "iconType", "size", "fixedWidth", "variant", "iconSize"] }, { kind: "directive", type: i3.λ2, selector: "[skyId]", exportAs: ["skyId"] }, { kind: "pipe", type: i3$1.SkyLibResourcesPipe, name: "skyLibResources" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
1542
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.7", ngImport: i0, type: SkyTabButtonComponent, deps: [{ token: i0.ElementRef }, { token: SkyTabButtonAdapterService }, { token: i0.ChangeDetectorRef }, { token: SkyTabsetService }], target: i0.ɵɵFactoryTarget.Component }); }
1543
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.7", type: SkyTabButtonComponent, isStandalone: false, selector: "sky-tab-button", inputs: { active: "active", ariaControls: "ariaControls", buttonHref: "buttonHref", buttonId: "buttonId", buttonText: "buttonText", buttonTextCount: "buttonTextCount", closeable: "closeable", disabled: "disabled", tabIndex: "tabIndex", tabNumber: "tabNumber", totalTabsCount: "totalTabsCount", tabStyle: "tabStyle" }, outputs: { buttonClick: "buttonClick", closeClick: "closeClick" }, providers: [SkyTabButtonAdapterService], ngImport: i0, template: "<div\n class=\"sky-btn-tab-wrapper\"\n [ngClass]=\"{\n 'sky-btn-tab-wrapper-selected': active,\n 'sky-btn-tab-wrapper-disabled': disabled\n }\"\n>\n <a\n #tabButtonEl\n class=\"sky-btn-tab\"\n role=\"tab\"\n [attr.aria-controls]=\"ariaControls\"\n [attr.aria-disabled]=\"disabled\"\n [attr.aria-selected]=\"active\"\n [attr.href]=\"buttonHref\"\n [attr.aria-label]=\"\n tabStyle === 'wizard'\n ? ('skyux_wizard_sr_step_' + wizardStepState\n | skyLibResources: tabNumber : totalTabsCount : buttonText)\n : null\n \"\n [attr.aria-labelledby]=\"tabStyle === 'wizard' ? null : tabHeading.id\"\n [id]=\"buttonId\"\n [ngClass]=\"{\n 'sky-btn-tab-wizard': tabStyle === 'wizard',\n 'sky-btn-tab-selected': active,\n 'sky-btn-tab-disabled': disabled,\n 'sky-tab-btn-closeable': closeable\n }\"\n [tabindex]=\"active ? '0' : '-1'\"\n (click)=\"onButtonClick($event)\"\n (keydown)=\"onTabButtonKeyDown($event)\"\n (focus)=\"onFocus()\"\n >\n <span class=\"sky-tab-heading\" [attr.aria-hidden]=\"true\">\n <span #tabHeading=\"skyId\" skyId>\n {{ buttonText }}\n @if (buttonTextCount !== undefined) {\n <span class=\"sky-tab-header-count\">\n {{ buttonTextCount }}\n </span>\n }\n </span>\n @if (closeable) {\n <span\n class=\"sky-btn-tab-close\"\n [tabindex]=\"closeBtnTabIndex\"\n [attr.aria-label]=\"'skyux_tab_close' | skyLibResources: buttonText\"\n [ngClass]=\"{\n 'sky-btn-tab-close-disabled': disabled\n }\"\n (click)=\"onCloseClick($event)\"\n (keydown.enter)=\"onCloseClick($event)\"\n >\n <sky-icon iconName=\"close\" />\n </span>\n }\n </span>\n </a>\n</div>\n", styles: ["sky-tab-button:not(.sky-theme-modern *){--sky-override-closeable-tab-padding-right: 43px;--sky-override-tab-close-active-hover-color: #fff;--sky-override-tab-close-color: #686c73;--sky-override-tab-close-hover-color: #212327;--sky-override-tab-close-padding: 1px 6px;--sky-override-tab-close-position-right: 10px;--sky-override-tab-close-position-top: 10px;--sky-override-tab-margin-right: 5px}.sky-theme-modern:not(.sky-theme-brand-base) sky-tab-button{--sky-override-closeable-tab-padding-right: 44px;--sky-override-tab-close-padding: var(--modern-size-1) var(--modern-size-6);--sky-override-tab-close-position-right: var(--modern-size-10);--sky-override-tab-close-position-top: var(--modern-size-12)}.sky-btn-tab-wrapper{display:inline-block;position:relative;margin-right:var(--sky-override-tab-margin-right, var(--sky-space-gap-action_group-m))}.sky-btn-tab-wrapper .sky-btn-tab-close{position:absolute;top:var(--sky-override-tab-close-position-top, var(--sky-space-gap-icon-m));right:var(--sky-override-tab-close-position-right, var(--sky-space-gap-icon-m));color:var(--sky-override-tab-close-color, var(--sky-color-icon-deemphasized));padding:var(--sky-override-tab-close-padding, 0 var(--sky-space-inset-balanced-xs))}.sky-btn-tab-wrapper .sky-btn-tab-close:hover{color:var(--sky-override-tab-close-hover-color, var(--sky-color-icon-default));transition:color .15s}.sky-btn-tab-wrapper.sky-btn-tab-wrapper-selected:not(.sky-btn-tab-wrapper-disabled) .sky-btn-tab-close{color:var(--sky-override-tab-close-active-hover-color, var(--sky-color-icon-deemphasized))}.sky-btn-tab-wrapper.sky-btn-tab-wrapper-disabled{cursor:not-allowed}.sky-btn-tab-wrapper .sky-tab-btn-closeable{padding-right:var(--sky-override-closeable-tab-padding-right, calc(var(--sky-space-inset-pillarbox-2_3-right-m) + var(--sky-space-gap-text_action-xs) + var(--sky-space-inset-balanced-xs) + var(--sky-space-inset-balanced-xs) + var(--sky-font-size-body-m)))}\n"], dependencies: [{ kind: "directive", type: i4.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "component", type: i6.λ1, selector: "sky-icon", inputs: ["icon", "iconName", "iconType", "size", "fixedWidth", "variant", "iconSize"] }, { kind: "directive", type: i3.λ2, selector: "[skyId]", exportAs: ["skyId"] }, { kind: "pipe", type: i3$1.SkyLibResourcesPipe, name: "skyLibResources" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
1544
1544
  }
1545
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.1", ngImport: i0, type: SkyTabButtonComponent, decorators: [{
1545
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.7", ngImport: i0, type: SkyTabButtonComponent, decorators: [{
1546
1546
  type: Component,
1547
1547
  args: [{ selector: 'sky-tab-button', providers: [SkyTabButtonAdapterService], changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, standalone: false, template: "<div\n class=\"sky-btn-tab-wrapper\"\n [ngClass]=\"{\n 'sky-btn-tab-wrapper-selected': active,\n 'sky-btn-tab-wrapper-disabled': disabled\n }\"\n>\n <a\n #tabButtonEl\n class=\"sky-btn-tab\"\n role=\"tab\"\n [attr.aria-controls]=\"ariaControls\"\n [attr.aria-disabled]=\"disabled\"\n [attr.aria-selected]=\"active\"\n [attr.href]=\"buttonHref\"\n [attr.aria-label]=\"\n tabStyle === 'wizard'\n ? ('skyux_wizard_sr_step_' + wizardStepState\n | skyLibResources: tabNumber : totalTabsCount : buttonText)\n : null\n \"\n [attr.aria-labelledby]=\"tabStyle === 'wizard' ? null : tabHeading.id\"\n [id]=\"buttonId\"\n [ngClass]=\"{\n 'sky-btn-tab-wizard': tabStyle === 'wizard',\n 'sky-btn-tab-selected': active,\n 'sky-btn-tab-disabled': disabled,\n 'sky-tab-btn-closeable': closeable\n }\"\n [tabindex]=\"active ? '0' : '-1'\"\n (click)=\"onButtonClick($event)\"\n (keydown)=\"onTabButtonKeyDown($event)\"\n (focus)=\"onFocus()\"\n >\n <span class=\"sky-tab-heading\" [attr.aria-hidden]=\"true\">\n <span #tabHeading=\"skyId\" skyId>\n {{ buttonText }}\n @if (buttonTextCount !== undefined) {\n <span class=\"sky-tab-header-count\">\n {{ buttonTextCount }}\n </span>\n }\n </span>\n @if (closeable) {\n <span\n class=\"sky-btn-tab-close\"\n [tabindex]=\"closeBtnTabIndex\"\n [attr.aria-label]=\"'skyux_tab_close' | skyLibResources: buttonText\"\n [ngClass]=\"{\n 'sky-btn-tab-close-disabled': disabled\n }\"\n (click)=\"onCloseClick($event)\"\n (keydown.enter)=\"onCloseClick($event)\"\n >\n <sky-icon iconName=\"close\" />\n </span>\n }\n </span>\n </a>\n</div>\n", styles: ["sky-tab-button:not(.sky-theme-modern *){--sky-override-closeable-tab-padding-right: 43px;--sky-override-tab-close-active-hover-color: #fff;--sky-override-tab-close-color: #686c73;--sky-override-tab-close-hover-color: #212327;--sky-override-tab-close-padding: 1px 6px;--sky-override-tab-close-position-right: 10px;--sky-override-tab-close-position-top: 10px;--sky-override-tab-margin-right: 5px}.sky-theme-modern:not(.sky-theme-brand-base) sky-tab-button{--sky-override-closeable-tab-padding-right: 44px;--sky-override-tab-close-padding: var(--modern-size-1) var(--modern-size-6);--sky-override-tab-close-position-right: var(--modern-size-10);--sky-override-tab-close-position-top: var(--modern-size-12)}.sky-btn-tab-wrapper{display:inline-block;position:relative;margin-right:var(--sky-override-tab-margin-right, var(--sky-space-gap-action_group-m))}.sky-btn-tab-wrapper .sky-btn-tab-close{position:absolute;top:var(--sky-override-tab-close-position-top, var(--sky-space-gap-icon-m));right:var(--sky-override-tab-close-position-right, var(--sky-space-gap-icon-m));color:var(--sky-override-tab-close-color, var(--sky-color-icon-deemphasized));padding:var(--sky-override-tab-close-padding, 0 var(--sky-space-inset-balanced-xs))}.sky-btn-tab-wrapper .sky-btn-tab-close:hover{color:var(--sky-override-tab-close-hover-color, var(--sky-color-icon-default));transition:color .15s}.sky-btn-tab-wrapper.sky-btn-tab-wrapper-selected:not(.sky-btn-tab-wrapper-disabled) .sky-btn-tab-close{color:var(--sky-override-tab-close-active-hover-color, var(--sky-color-icon-deemphasized))}.sky-btn-tab-wrapper.sky-btn-tab-wrapper-disabled{cursor:not-allowed}.sky-btn-tab-wrapper .sky-tab-btn-closeable{padding-right:var(--sky-override-closeable-tab-padding-right, calc(var(--sky-space-inset-pillarbox-2_3-right-m) + var(--sky-space-gap-text_action-xs) + var(--sky-space-inset-balanced-xs) + var(--sky-space-inset-balanced-xs) + var(--sky-font-size-body-m)))}\n"] }]
1548
1548
  }], ctorParameters: () => [{ type: i0.ElementRef }, { type: SkyTabButtonAdapterService }, { type: i0.ChangeDetectorRef }, { type: SkyTabsetService }], propDecorators: { active: [{
@@ -1695,10 +1695,10 @@ class SkyTabsetPermalinkService {
1695
1695
  });
1696
1696
  return params;
1697
1697
  }
1698
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.1", ngImport: i0, type: SkyTabsetPermalinkService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
1699
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.2.1", ngImport: i0, type: SkyTabsetPermalinkService }); }
1698
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.7", ngImport: i0, type: SkyTabsetPermalinkService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
1699
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.2.7", ngImport: i0, type: SkyTabsetPermalinkService }); }
1700
1700
  }
1701
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.1", ngImport: i0, type: SkyTabsetPermalinkService, decorators: [{
1701
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.7", ngImport: i0, type: SkyTabsetPermalinkService, decorators: [{
1702
1702
  type: Injectable
1703
1703
  }] });
1704
1704
 
@@ -1867,10 +1867,10 @@ class SkyTabComponent {
1867
1867
  this.#permalinkService.urlify(this.permalinkValue) ||
1868
1868
  this.#permalinkService.urlify(this.tabHeading);
1869
1869
  }
1870
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.1", ngImport: i0, type: SkyTabComponent, deps: [{ token: i0.ChangeDetectorRef }, { token: SkyTabsetPermalinkService }, { token: SkyTabsetService }], target: i0.ɵɵFactoryTarget.Component }); }
1871
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.1", type: SkyTabComponent, isStandalone: false, selector: "sky-tab", inputs: { active: "active", disabled: "disabled", permalinkValue: "permalinkValue", tabHeaderCount: "tabHeaderCount", tabHeading: "tabHeading", tabIndexValue: "tabIndexValue", layout: "layout" }, outputs: { close: "close" }, host: { properties: { "class": "this.cssClass" } }, usesOnChanges: true, hostDirectives: [{ directive: i3.SkyResponsiveHostDirective }], ngImport: i0, template: "<div\n class=\"sky-tab\"\n role=\"tabpanel\"\n [attr.aria-labelledby]=\"tabButtonId\"\n [hidden]=\"!showContent\"\n [id]=\"tabPanelId\"\n>\n <ng-content />\n</div>\n", styles: [":host{display:block}:host.sky-layout-host-fit{display:flex;flex-grow:1;position:static}:host.sky-layout-host-fit .sky-tab{flex-grow:1;position:relative}.sky-tab{flex-grow:var(--sky-layout-host-content-flex-grow, 0);overflow:var(--sky-layout-host-content-overflow, visible);padding:var(--sky-layout-host-content-spacing, 0);position:var(--sky-layout-host-content-position, static)}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
1870
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.7", ngImport: i0, type: SkyTabComponent, deps: [{ token: i0.ChangeDetectorRef }, { token: SkyTabsetPermalinkService }, { token: SkyTabsetService }], target: i0.ɵɵFactoryTarget.Component }); }
1871
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.7", type: SkyTabComponent, isStandalone: false, selector: "sky-tab", inputs: { active: "active", disabled: "disabled", permalinkValue: "permalinkValue", tabHeaderCount: "tabHeaderCount", tabHeading: "tabHeading", tabIndexValue: "tabIndexValue", layout: "layout" }, outputs: { close: "close" }, host: { properties: { "class": "this.cssClass" } }, usesOnChanges: true, hostDirectives: [{ directive: i3.SkyResponsiveHostDirective }], ngImport: i0, template: "<div\n class=\"sky-tab\"\n role=\"tabpanel\"\n [attr.aria-labelledby]=\"tabButtonId\"\n [hidden]=\"!showContent\"\n [id]=\"tabPanelId\"\n>\n <ng-content />\n</div>\n", styles: [":host{display:block}:host.sky-layout-host-fit{display:flex;flex-grow:1;position:static}:host.sky-layout-host-fit .sky-tab{flex-grow:1;position:relative}.sky-tab{flex-grow:var(--sky-layout-host-content-flex-grow, 0);overflow:var(--sky-layout-host-content-overflow, visible);padding:var(--sky-layout-host-content-spacing, 0);position:var(--sky-layout-host-content-position, static)}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
1872
1872
  }
1873
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.1", ngImport: i0, type: SkyTabComponent, decorators: [{
1873
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.7", ngImport: i0, type: SkyTabComponent, decorators: [{
1874
1874
  type: Component,
1875
1875
  args: [{ hostDirectives: [SkyResponsiveHostDirective], selector: 'sky-tab', changeDetection: ChangeDetectionStrategy.OnPush, standalone: false, template: "<div\n class=\"sky-tab\"\n role=\"tabpanel\"\n [attr.aria-labelledby]=\"tabButtonId\"\n [hidden]=\"!showContent\"\n [id]=\"tabPanelId\"\n>\n <ng-content />\n</div>\n", styles: [":host{display:block}:host.sky-layout-host-fit{display:flex;flex-grow:1;position:static}:host.sky-layout-host-fit .sky-tab{flex-grow:1;position:relative}.sky-tab{flex-grow:var(--sky-layout-host-content-flex-grow, 0);overflow:var(--sky-layout-host-content-overflow, visible);padding:var(--sky-layout-host-content-spacing, 0);position:var(--sky-layout-host-content-position, static)}\n"] }]
1876
1876
  }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: SkyTabsetPermalinkService }, { type: SkyTabsetService }], propDecorators: { active: [{
@@ -1904,10 +1904,10 @@ class SkyTabsetNavButtonDisabledPipe {
1904
1904
  }
1905
1905
  return !tabToSelectExists || !!tabToSelectIsDisabled;
1906
1906
  }
1907
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.1", ngImport: i0, type: SkyTabsetNavButtonDisabledPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe }); }
1908
- static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "19.2.1", ngImport: i0, type: SkyTabsetNavButtonDisabledPipe, isStandalone: false, name: "skyTabsetNavButtonDisabled" }); }
1907
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.7", ngImport: i0, type: SkyTabsetNavButtonDisabledPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe }); }
1908
+ static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "19.2.7", ngImport: i0, type: SkyTabsetNavButtonDisabledPipe, isStandalone: false, name: "skyTabsetNavButtonDisabled" }); }
1909
1909
  }
1910
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.1", ngImport: i0, type: SkyTabsetNavButtonDisabledPipe, decorators: [{
1910
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.7", ngImport: i0, type: SkyTabsetNavButtonDisabledPipe, decorators: [{
1911
1911
  type: Pipe,
1912
1912
  args: [{
1913
1913
  name: 'skyTabsetNavButtonDisabled',
@@ -2040,10 +2040,10 @@ class SkyTabsetNavButtonComponent {
2040
2040
  }
2041
2041
  }
2042
2042
  }
2043
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.1", ngImport: i0, type: SkyTabsetNavButtonComponent, deps: [{ token: i3.SkyLogService }], target: i0.ɵɵFactoryTarget.Component }); }
2044
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.1", type: SkyTabsetNavButtonComponent, isStandalone: false, selector: "sky-tabset-nav-button", inputs: { tabset: "tabset", buttonType: "buttonType", buttonText: "buttonText", disabled: "disabled" }, ngImport: i0, template: "@if (isVisible) {\n <button\n class=\"sky-btn sky-margin-inline-sm\"\n [attr.aria-controls]=\"ariaControls\"\n [disabled]=\"\n disabled\n | skyTabsetNavButtonDisabled\n : buttonType\n : !!tabToSelect\n : tabToSelect?.disabled\n \"\n [ngClass]=\"buttonClassName\"\n [type]=\"type\"\n (click)=\"buttonType === 'finish' ? null : buttonClick()\"\n >\n {{ buttonText || ('skyux_tabs_navigator_' + buttonType | skyLibResources) }}\n </button>\n}\n", dependencies: [{ kind: "directive", type: i4.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "pipe", type: i3$1.SkyLibResourcesPipe, name: "skyLibResources" }, { kind: "pipe", type: SkyTabsetNavButtonDisabledPipe, name: "skyTabsetNavButtonDisabled" }] }); }
2043
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.7", ngImport: i0, type: SkyTabsetNavButtonComponent, deps: [{ token: i3.SkyLogService }], target: i0.ɵɵFactoryTarget.Component }); }
2044
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.7", type: SkyTabsetNavButtonComponent, isStandalone: false, selector: "sky-tabset-nav-button", inputs: { tabset: "tabset", buttonType: "buttonType", buttonText: "buttonText", disabled: "disabled" }, ngImport: i0, template: "@if (isVisible) {\n <button\n class=\"sky-btn sky-margin-inline-sm\"\n [attr.aria-controls]=\"ariaControls\"\n [disabled]=\"\n disabled\n | skyTabsetNavButtonDisabled\n : buttonType\n : !!tabToSelect\n : tabToSelect?.disabled\n \"\n [ngClass]=\"buttonClassName\"\n [type]=\"type\"\n (click)=\"buttonType === 'finish' ? null : buttonClick()\"\n >\n {{ buttonText || ('skyux_tabs_navigator_' + buttonType | skyLibResources) }}\n </button>\n}\n", dependencies: [{ kind: "directive", type: i4.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "pipe", type: i3$1.SkyLibResourcesPipe, name: "skyLibResources" }, { kind: "pipe", type: SkyTabsetNavButtonDisabledPipe, name: "skyTabsetNavButtonDisabled" }] }); }
2045
2045
  }
2046
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.1", ngImport: i0, type: SkyTabsetNavButtonComponent, decorators: [{
2046
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.7", ngImport: i0, type: SkyTabsetNavButtonComponent, decorators: [{
2047
2047
  type: Component,
2048
2048
  args: [{ selector: 'sky-tabset-nav-button', standalone: false, template: "@if (isVisible) {\n <button\n class=\"sky-btn sky-margin-inline-sm\"\n [attr.aria-controls]=\"ariaControls\"\n [disabled]=\"\n disabled\n | skyTabsetNavButtonDisabled\n : buttonType\n : !!tabToSelect\n : tabToSelect?.disabled\n \"\n [ngClass]=\"buttonClassName\"\n [type]=\"type\"\n (click)=\"buttonType === 'finish' ? null : buttonClick()\"\n >\n {{ buttonText || ('skyux_tabs_navigator_' + buttonType | skyLibResources) }}\n </button>\n}\n" }]
2049
2049
  }], ctorParameters: () => [{ type: i3.SkyLogService }], propDecorators: { tabset: [{
@@ -2114,10 +2114,10 @@ class SkyTabsetAdapterService {
2114
2114
  }
2115
2115
  return firstTabRect.left - tabsetRect.left;
2116
2116
  }
2117
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.1", ngImport: i0, type: SkyTabsetAdapterService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
2118
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.2.1", ngImport: i0, type: SkyTabsetAdapterService }); }
2117
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.7", ngImport: i0, type: SkyTabsetAdapterService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
2118
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.2.7", ngImport: i0, type: SkyTabsetAdapterService }); }
2119
2119
  }
2120
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.1", ngImport: i0, type: SkyTabsetAdapterService, decorators: [{
2120
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.7", ngImport: i0, type: SkyTabsetAdapterService, decorators: [{
2121
2121
  type: Injectable
2122
2122
  }], ctorParameters: () => [] });
2123
2123
 
@@ -2542,14 +2542,14 @@ class SkyTabsetComponent {
2542
2542
  this.activeChange.emit(activeIndex);
2543
2543
  }
2544
2544
  }
2545
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.1", ngImport: i0, type: SkyTabsetComponent, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: SkyTabsetAdapterService }, { token: SkyTabsetPermalinkService }, { token: SkyTabsetService }], target: i0.ɵɵFactoryTarget.Component }); }
2546
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.1", type: SkyTabsetComponent, isStandalone: false, selector: "sky-tabset", inputs: { active: "active", ariaLabel: "ariaLabel", ariaLabelledBy: "ariaLabelledBy", permalinkId: "permalinkId", tabStyle: "tabStyle" }, outputs: { activeChange: "activeChange", newTab: "newTab", openTab: "openTab", tabIndexesChange: "tabIndexesChange" }, host: { properties: { "class": "this.cssClass" } }, providers: [
2545
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.7", ngImport: i0, type: SkyTabsetComponent, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: SkyTabsetAdapterService }, { token: SkyTabsetPermalinkService }, { token: SkyTabsetService }], target: i0.ɵɵFactoryTarget.Component }); }
2546
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.7", type: SkyTabsetComponent, isStandalone: false, selector: "sky-tabset", inputs: { active: "active", ariaLabel: "ariaLabel", ariaLabelledBy: "ariaLabelledBy", permalinkId: "permalinkId", tabStyle: "tabStyle" }, outputs: { activeChange: "activeChange", newTab: "newTab", openTab: "openTab", tabIndexesChange: "tabIndexesChange" }, host: { properties: { "class": "this.cssClass" } }, providers: [
2547
2547
  SkyTabsetAdapterService,
2548
2548
  SkyTabsetPermalinkService,
2549
2549
  SkyTabsetService,
2550
2550
  ], queries: [{ propertyName: "tabs", predicate: SkyTabComponent }], ngImport: i0, template: "<!-- eslint-disable @angular-eslint/template/interactive-supports-focus -->\n<div\n class=\"sky-tabset\"\n role=\"tablist\"\n [attr.aria-label]=\"ariaLabel\"\n [attr.aria-labelledby]=\"ariaLabelledBy\"\n [ngClass]=\"\n 'sky-tabset-mode-' + tabDisplayMode + ' sky-tabset-style-' + tabStyle\n \"\n (window:resize)=\"onWindowResize()\"\n (keydown.arrowright)=\"onRightKeyDown()\"\n (keydown.arrowleft)=\"onLeftKeyDown()\"\n (keydown.home)=\"onHomeKeyDown()\"\n (keydown.end)=\"onEndKeyDown()\"\n>\n <span class=\"sky-tabset-dropdown\">\n @if (tabDisplayMode === 'dropdown') {\n <sky-dropdown buttonType=\"tab\">\n <sky-dropdown-button>\n {{ dropdownTriggerButtonText }}\n </sky-dropdown-button>\n <sky-dropdown-menu>\n @for (tabButton of tabButtons; track tabButton.buttonId) {\n <sky-dropdown-item class=\"sky-tab-dropdown-menu-item\">\n <div\n class=\"sky-tab-dropdown-item\"\n [ngClass]=\"{\n 'sky-tab-dropdown-item-selected': tabButton.active\n }\"\n >\n <ng-container\n *ngTemplateOutlet=\"\n tabButtonTemplate;\n context: {\n $implicit: tabButton\n }\n \"\n />\n </div>\n </sky-dropdown-item>\n }\n </sky-dropdown-menu>\n </sky-dropdown>\n }\n </span>\n <span class=\"sky-tabset-tabs\">\n @for (tabButton of tabButtons; track tabButton.buttonId) {\n <ng-container\n *ngTemplateOutlet=\"\n tabButtonTemplate;\n context: {\n $implicit: tabButton\n }\n \"\n />\n }\n </span>\n <span class=\"sky-tabset-btns\">\n @if (newTab.observers.length > 0) {\n <button\n class=\"sky-btn sky-btn-icon sky-tabset-btn-new\"\n type=\"button\"\n [attr.aria-label]=\"'skyux_tab_add' | skyLibResources\"\n [skyThemeClass]=\"{\n 'sky-margin-inline-compact': 'default'\n }\"\n (click)=\"onNewTabClick()\"\n >\n <sky-icon iconName=\"add\" />\n </button>\n }\n @if (openTab.observers.length > 0) {\n <button\n class=\"sky-btn sky-btn-icon sky-tabset-btn-open\"\n type=\"button\"\n [attr.aria-label]=\"'skyux_tab_open' | skyLibResources\"\n [skyThemeClass]=\"{\n 'sky-margin-inline-compact': 'default'\n }\"\n (click)=\"onOpenTabClick()\"\n >\n <sky-icon iconName=\"folder-open\" />\n </button>\n }\n </span>\n</div>\n<ng-content />\n\n<ng-template #tabButtonTemplate let-tabButton>\n <sky-tab-button\n [active]=\"tabButton.active\"\n [ariaControls]=\"tabButton.ariaControls\"\n [buttonHref]=\"tabButton.buttonHref\"\n [buttonId]=\"tabButton.buttonId\"\n [buttonText]=\"tabButton.buttonText\"\n [buttonTextCount]=\"tabButton.buttonTextCount\"\n [closeable]=\"tabButton.closeable\"\n [disabled]=\"tabButton.disabled\"\n [tabIndex]=\"tabButton.tabIndex\"\n [tabStyle]=\"tabStyle\"\n [tabNumber]=\"tabButton.tabNumber\"\n [totalTabsCount]=\"tabButton.totalTabsCount\"\n (buttonClick)=\"onTabButtonClick(tabButton)\"\n (closeClick)=\"onTabCloseClick(tabButton)\"\n />\n</ng-template>\n", styles: ["sky-tabset:not(.sky-theme-modern *){--sky-override-tabset-border-bottom: 2px solid #0974a1;--sky-override-tabset-button-color: #0974a1;--sky-override-tabset-button-group-padding-left: 10px;--sky-override-tabset-button-margin-right: 5px;--sky-override-tabset-modal-margin: 0 -15px 20px;--sky-override-tabset-modal-padding-left: 15px;--sky-override-tabset-modal-padding-none: 0;--sky-override-tabset-overflow: hidden;--sky-override-tabset-padding: 0 0 0 var(--sky-layout-host-tab-content-spacing, 15px);--sky-override-tabset-wizard-border-bottom: none;--sky-override-tabset-wizard-modal-margin: 0 0 20px}.sky-theme-modern.sky-theme-brand-base sky-tabset .sky-tabset-btn-new,.sky-theme-modern.sky-theme-brand-base sky-tabset .sky-tabset-btn-open{height:36px}sky-tabset.sky-tabset-layout-fit{position:absolute;inset:0;display:flex;flex-direction:column}sky-tabset.sky-tabset-layout-fit .sky-tabset{flex-grow:0}.sky-tabset{--sky-tabset-margin: 0;align-items:center;border-bottom:var(--sky-override-tabset-border-bottom, var(--sky-border-width-divider) var(--sky-border-style-divider) var(--sky-color-border-divider));display:flex;list-style-type:none;margin:var(--sky-tabset-margin);padding:var(--sky-override-tabset-padding, 0 0 0 var(--sky-layout-host-tab-content-spacing, var(--sky-space-inset-tabs-m)));white-space:nowrap;flex-grow:var(--sky-layout-host-content-flex-grow, 0);overflow:var(--sky-layout-host-content-overflow, var(--sky-override-tabset-overflow, visible));position:var(--sky-layout-host-content-position, static)}.sky-tabset.sky-tabset-style-wizard{border-bottom:var(--sky-override-tabset-wizard-border-bottom-style, var(--sky-border-width-divider) var(--sky-border-style-divider) var(--sky-color-border-divider))}.sky-modal-content .sky-tabset-style-tabs{--sky-tabset-margin: var( --sky-override-tabset-modal-margin, calc(var(--sky-space-inset-floated-top-m) * -1) calc(var(--sky-space-inset-floated-right-m) * -1) var(--sky-space-inset-floated-bottom-m) calc(var(--sky-space-inset-floated-left-m) * -1) );padding-left:var(--sky-override-tabset-modal-padding-left, var(--sky-space-inset-floated-left-m));padding-right:var(--sky-override-tabset-modal-padding-none, var(--sky-space-inset-floated-right-m))}.sky-modal-content .sky-tabset-style-wizard{--sky-tabset-margin: var( --sky-override-tabset-wizard-modal-margin, calc(var(--sky-space-inset-floated-top-m) * -1) calc(var(--sky-space-inset-floated-right-m) * -1) var(--sky-space-inset-floated-left-m) calc(var(--sky-space-inset-floated-left-m) * -1) );padding-left:var(--sky-override-tabset-modal-padding-none, var(--sky-space-inset-floated-left-m));padding-right:var(--sky-override-tabset-modal-padding-none, var(--sky-space-inset-floated-right-m))}.sky-tabset-btns{order:1;padding-left:var(--sky-override-tabset-button-group-padding-left, var(--sky-space-gap-action_group-m))}.sky-tabset-btns .sky-tabset-btn-new,.sky-tabset-btns .sky-tabset-btn-open{margin-right:var(--sky-override-tabset-button-margin-right, var(--sky-space-gap-action_group-m))}.sky-tabset-dropdown{order:0;max-width:100%}.sky-tabset.sky-tabset-mode-dropdown{overflow:hidden}.sky-tabset-mode-dropdown .sky-tabset-tabs{visibility:hidden;order:2}.sky-tab-dropdown-menu-item sky-tab-button{display:flex;min-width:300px}.sky-tab-dropdown-menu-item .sky-dropdown-item{margin:0}.sky-tab-dropdown-menu-item .sky-dropdown-item .sky-btn-tab-wrapper{width:100%;margin-right:0}.sky-tab-dropdown-menu-item .sky-btn-tab{margin:0;border-radius:0;width:100%;display:flex}.sky-tab-dropdown-menu-item .sky-btn-tab>.sky-tab-heading{flex:1 1 auto}.sky-tab-dropdown-menu-item .sky-btn-tab>.sky-btn-tab-close{flex:0 1 auto}.sky-tabset-tabs{order:0;white-space:nowrap}.sky-tabset-btn-new,.sky-tabset-btn-open{color:var(--sky-override-tabset-button-color, --sky-color-text-default)}\n"], dependencies: [{ kind: "directive", type: i4.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i4.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: i5.λ2, selector: "sky-dropdown-button" }, { kind: "component", type: i5.λ3, selector: "sky-dropdown", inputs: ["buttonStyle", "buttonType", "disabled", "label", "horizontalAlignment", "messageStream", "title", "trigger"] }, { kind: "component", type: i5.λ1, selector: "sky-dropdown-item", inputs: ["ariaRole"] }, { kind: "component", type: i5.λ4, selector: "sky-dropdown-menu", inputs: ["ariaLabelledBy", "ariaRole", "useNativeFocus"], outputs: ["menuChanges"] }, { kind: "component", type: i6.λ1, selector: "sky-icon", inputs: ["icon", "iconName", "iconType", "size", "fixedWidth", "variant", "iconSize"] }, { kind: "directive", type: i7$1.λ2, selector: "[skyThemeClass]", inputs: ["class", "skyThemeClass"] }, { kind: "component", type: SkyTabButtonComponent, selector: "sky-tab-button", inputs: ["active", "ariaControls", "buttonHref", "buttonId", "buttonText", "buttonTextCount", "closeable", "disabled", "tabIndex", "tabNumber", "totalTabsCount", "tabStyle"], outputs: ["buttonClick", "closeClick"] }, { kind: "pipe", type: i3$1.SkyLibResourcesPipe, name: "skyLibResources" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
2551
2551
  }
2552
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.1", ngImport: i0, type: SkyTabsetComponent, decorators: [{
2552
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.7", ngImport: i0, type: SkyTabsetComponent, decorators: [{
2553
2553
  type: Component,
2554
2554
  args: [{ selector: 'sky-tabset', providers: [
2555
2555
  SkyTabsetAdapterService,
@@ -2583,8 +2583,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.1", ngImpor
2583
2583
  }] } });
2584
2584
 
2585
2585
  class SkyTabsModule {
2586
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.1", ngImport: i0, type: SkyTabsModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
2587
- static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "19.2.1", ngImport: i0, type: SkyTabsModule, declarations: [SkyTabButtonComponent,
2586
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.7", ngImport: i0, type: SkyTabsModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
2587
+ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "19.2.7", ngImport: i0, type: SkyTabsModule, declarations: [SkyTabButtonComponent,
2588
2588
  SkyTabComponent,
2589
2589
  SkyTabsetComponent,
2590
2590
  SkyTabsetNavButtonComponent,
@@ -2595,14 +2595,14 @@ class SkyTabsModule {
2595
2595
  SkyIdModule,
2596
2596
  SkyTabsResourcesModule,
2597
2597
  SkyThemeModule], exports: [SkyTabComponent, SkyTabsetComponent, SkyTabsetNavButtonComponent] }); }
2598
- static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "19.2.1", ngImport: i0, type: SkyTabsModule, imports: [CommonModule,
2598
+ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "19.2.7", ngImport: i0, type: SkyTabsModule, imports: [CommonModule,
2599
2599
  SkyDropdownModule,
2600
2600
  SkyIconModule,
2601
2601
  SkyIdModule,
2602
2602
  SkyTabsResourcesModule,
2603
2603
  SkyThemeModule] }); }
2604
2604
  }
2605
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.1", ngImport: i0, type: SkyTabsModule, decorators: [{
2605
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.7", ngImport: i0, type: SkyTabsModule, decorators: [{
2606
2606
  type: NgModule,
2607
2607
  args: [{
2608
2608
  declarations: [
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@skyux/tabs",
3
- "version": "12.3.0",
3
+ "version": "12.5.0",
4
4
  "author": "Blackbaud, Inc.",
5
5
  "keywords": [
6
6
  "blackbaud",
@@ -16,21 +16,21 @@
16
16
  },
17
17
  "homepage": "https://github.com/blackbaud/skyux#readme",
18
18
  "peerDependencies": {
19
- "@angular/animations": "^19.2.1",
20
- "@angular/cdk": "^19.2.2",
21
- "@angular/common": "^19.2.1",
22
- "@angular/core": "^19.2.1",
23
- "@angular/platform-browser": "^19.2.1",
24
- "@angular/router": "^19.2.1",
25
- "@skyux-sdk/testing": "12.3.0",
26
- "@skyux/animations": "12.3.0",
27
- "@skyux/core": "12.3.0",
28
- "@skyux/forms": "12.3.0",
29
- "@skyux/i18n": "12.3.0",
30
- "@skyux/icon": "12.3.0",
31
- "@skyux/indicators": "12.3.0",
32
- "@skyux/popovers": "12.3.0",
33
- "@skyux/theme": "12.3.0"
19
+ "@angular/animations": "^19.2.7",
20
+ "@angular/cdk": "^19.2.10",
21
+ "@angular/common": "^19.2.7",
22
+ "@angular/core": "^19.2.7",
23
+ "@angular/platform-browser": "^19.2.7",
24
+ "@angular/router": "^19.2.7",
25
+ "@skyux-sdk/testing": "12.5.0",
26
+ "@skyux/animations": "12.5.0",
27
+ "@skyux/core": "12.5.0",
28
+ "@skyux/forms": "12.5.0",
29
+ "@skyux/i18n": "12.5.0",
30
+ "@skyux/icon": "12.5.0",
31
+ "@skyux/indicators": "12.5.0",
32
+ "@skyux/popovers": "12.5.0",
33
+ "@skyux/theme": "12.5.0"
34
34
  },
35
35
  "dependencies": {
36
36
  "tslib": "^2.8.1"
@@ -43,7 +43,6 @@ export declare class SkyVerticalTabsetGroupHarness extends SkyComponentHarness {
43
43
  isDisabled(): Promise<boolean>;
44
44
  /**
45
45
  * Whether the group is expanded.
46
- * todo ask other engineers if checking for a class or property is better. my vote is property.
47
46
  */
48
47
  isOpen(): Promise<boolean>;
49
48
  }