@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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"}
|
package/fesm2022/skyux-tabs.mjs
CHANGED
|
@@ -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.
|
|
74
|
-
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "19.2.
|
|
75
|
-
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "19.2.
|
|
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.
|
|
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.
|
|
92
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.2.
|
|
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.
|
|
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.
|
|
156
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.2.
|
|
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.
|
|
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.
|
|
350
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.2.
|
|
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.
|
|
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.
|
|
397
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.2.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
702
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.
|
|
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.
|
|
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.
|
|
827
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.
|
|
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.
|
|
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.
|
|
883
|
-
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "19.2.
|
|
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.
|
|
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.
|
|
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.
|
|
956
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.2.
|
|
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.
|
|
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.
|
|
1001
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.
|
|
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.
|
|
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.
|
|
1153
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.
|
|
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.
|
|
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.
|
|
1199
|
-
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "19.2.
|
|
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.
|
|
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.
|
|
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.
|
|
1230
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.2.
|
|
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.
|
|
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.
|
|
1420
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.2.
|
|
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.
|
|
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.
|
|
1543
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.
|
|
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.
|
|
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.
|
|
1699
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.2.
|
|
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.
|
|
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.
|
|
1871
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.
|
|
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.
|
|
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.
|
|
1908
|
-
static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "19.2.
|
|
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.
|
|
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.
|
|
2044
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.
|
|
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.
|
|
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.
|
|
2118
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.2.
|
|
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.
|
|
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.
|
|
2546
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.
|
|
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.
|
|
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.
|
|
2587
|
-
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "19.2.
|
|
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.
|
|
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.
|
|
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
|
+
"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.
|
|
20
|
-
"@angular/cdk": "^19.2.
|
|
21
|
-
"@angular/common": "^19.2.
|
|
22
|
-
"@angular/core": "^19.2.
|
|
23
|
-
"@angular/platform-browser": "^19.2.
|
|
24
|
-
"@angular/router": "^19.2.
|
|
25
|
-
"@skyux-sdk/testing": "12.
|
|
26
|
-
"@skyux/animations": "12.
|
|
27
|
-
"@skyux/core": "12.
|
|
28
|
-
"@skyux/forms": "12.
|
|
29
|
-
"@skyux/i18n": "12.
|
|
30
|
-
"@skyux/icon": "12.
|
|
31
|
-
"@skyux/indicators": "12.
|
|
32
|
-
"@skyux/popovers": "12.
|
|
33
|
-
"@skyux/theme": "12.
|
|
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
|
}
|