CngxTabsConfig
projects/common/tabs/tabs-config.ts
Import#
import { CngxTabsConfig } from '@cngx/common/tabs'
Description#
Tab-group config surface. Resolution priority:
per-instance Input → provideTabsConfigAt (viewProviders) → provideTabsConfig
(root) → library default.
Index#
Instance Properties#
App-wide default for whether the group renders an add-tab button.
Default false. Per-instance [addable] Input wins. Override via
withTabsAddable.
CngxTabsAriaLabelsApp-wide default for whether tabs render a close affordance.
Default false. Per-instance [closable] Input wins, and a
per-CngxTab [closable] override wins over both. The cascade
default lives in the organism. Override via withTabsClosable.
"optimistic" | "pessimistic"App-wide default commit mode for async tab transitions.
'optimistic' (default) activates the target tab on action
dispatch and rolls back on error; 'pessimistic' keeps the old tab
until the action resolves. Per-instance [commitMode] Input still
wins (and [cngxTabsRouteSync] pins pessimistic regardless).
Override via withTabsCommitMode.
App-wide default for whether roving-tabindex navigation wraps from
the last tab back to the first (and vice versa). Default true.
Per-instance [loop] Input still wins. Override via
withTabsRovingLoop.
"horizontal" | "vertical"App-wide default tablist orientation. Default 'horizontal'
(left-to-right strip with arrow-left/right navigation);
'vertical' stacks the tabs in a column with arrow-up/down.
Per-instance [orientation] Input still wins. Override via
withTabsDefaultOrientation.
CngxTabsFallbackLabelsApp-wide default for stretching tabs to the full strip width
(horizontal only). Default false. Per-instance [fitted] Input
wins; the cascade default lives in createTabsHostAttrs. Override
via withTabsFitted.
"fragment" | "queryParam"URL surface for CngxTabsFragmentSync deep-linking:
'fragment' (default) writes #tab=<id>, 'queryParam' writes
?tab=<id>. Has no effect unless the directive is applied. Not the
router-outlet integration ([cngxTabsRouteSync]). Override via
withTabsFragmentSync.
Key name for the fragment / query-param deep-link written by
CngxTabsFragmentSync. Default 'tab' (e.g. #tab=settings).
Override via withTabsFragmentSync.
CngxTabIconLayoutApp-wide default icon layout.
Default 'start'. Per-instance
[iconLayout] Input still wins; the cascade default lives in
createTabsHostAttrs. Override via withTabsIconLayout.
"page" | "true" | "location" | "step"App-wide aria-current token CngxTabLink publishes while
active. Default 'page'. Set 'true' when the links are sections
that stay active for URLs beneath them, which is the shape
routeMatch: 'prefix' implies - page would then claim the link is
the page being viewed. Per-link [ariaCurrent] still wins. Override
via withTabsLinkAriaCurrent.
Hard ceiling (ms) on commit deferral while IO bursts keep arriving - without it, sustained churn (momentum scroll, continuous resize) would clear the stabilize timer forever and the More counter would freeze on a stale value. Default 250ms.
Quiescence window (ms) for the overflow IO debounce. Burst emissions during strip animations collapse to one write; the More counter re-renders once IO has been quiet this long. Default 100ms. Capped by overflowMaxDeferMs.
CngxTabsPanelModeApp-wide default panel render strategy. Default 'eager'.
Per-instance [panelMode] Input still wins; the cascade default
lives in createTabsHostAttrs. Override via
withTabsPanelMode.
"suffix" | "prefix"App-wide default URL-matching mode for
CngxTabsRouteSync: 'suffix' treats a tab as a leaf route,
'prefix' treats it as a section that owns a subtree. Per-instance
[match] still wins. Unset (the default) lets each host pick from
its own flavour - 'prefix' on a nav, 'suffix' on a tablist -
which is almost always what you want; set this only to force one
mode app-wide. Override via withTabsRouteMatch.
CngxTabsSkinApp-wide default visual skin.
Default 'line'. Per-instance
[skin] Input still wins; the cascade default itself lives in
createTabsHostAttrs, not here (mirrors the stepper). Override via
withTabsSkin.
CngxTabAlignApp-wide default tab-cluster alignment (horizontal only). Default
'start'. Per-instance [tabAlign] Input wins; the cascade default
lives in createTabsHostAttrs. Override via withTabsAlign.
CngxTabsTemplatesApp-wide template overrides for <cngx-tab-overflow> regions.
Middle tier of the family-standard 3-stage cascade. See
CngxTabsTemplates.