OGE logoOGE

Splitter API

Full surface of the oge-splitter container, the declarative <oge-splitter-pane> child with its two-way collapsed model, and the config provider.

Properties Methods Events Types

OgeSplitter

oge-splitter

Properties 13

Panes & sizing

Name Type DefaultDescription
panesreadonly OgeSplitterPaneData[] | undefined—Data-driven panes rendered after the projected <oge-splitter-pane> children.
dataSourceDataSource<OgeSplitterPaneData> | undefined—Remote pane list, loaded through @oge-ui/core’s DataSource contract and merged after panes. A source that publishes changes triggers a reload.
itemHoldTimeoutnumber750Milliseconds a pointer must rest on a pane before paneHold fires.
sizesreadonly OgeSplitterSize[] | undefined—Current pane sizes — two-way, and the whole persistable state. Setting it overrides the per-pane size inputs. Numbers are ratios; '240px' pins a pane.
orientation'horizontal' | 'vertical''horizontal'Axis the panes are laid out along. Also drives which arrow keys move a separator.
separatorSizenumber6Thickness of each separator in pixels — a real grid track, so it never eats into a pane.

Interaction

Name Type DefaultDescription
resizablebooleantruePins every separator when false.
stepnumber5Share points one arrow-key press moves a separator.
keyboardNavigationbooleantrueEnables Arrow / Home / End / Enter / Ctrl+Arrow on the separators. While off they also leave the Tab sequence.
showCollapseGripsbooleantrueRenders an aria-hidden chevron on the separator for each collapsible neighbour — one for the pane before it, one for the pane after. The keyboard paths (Enter, Ctrl+Arrow) stay available either way.
disabledbooleanfalseDisables the whole splitter — no dragging, no keyboard, no collapsing.

Accessibility & text

Name Type DefaultDescription
ariaLabelstring | undefined—Accessible name of the splitter container.
messagesPartial<OgeSplitterMessages>{}Per-instance overrides of the config strings, including the separators’ accessible names.

Methods 6

Name Type Description
collapse(target)(target: number | string) => booleanCollapses a pane by index or key. Returns false when the pane is not collapsible or paneCollapsing vetoed it.
expand(target)(target: number | string) => booleanExpands a collapsed pane, restoring the size it had when it collapsed and scaling its siblings back down to fit.
toggle(target)(target: number | string) => booleanCollapses the pane if expanded, expands it otherwise.
isCollapsed(target)(target: number | string) => booleanWhether a pane is currently collapsed.
resize(separatorIndex, delta)(separatorIndex: number, delta: number) => booleanMoves a separator by delta share points — the programmatic equivalent of an arrow key. false when that separator cannot move.
focus(separatorIndex?)(separatorIndex?: number) => voidFocuses a separator, the first one by default.

Events 11

Name Type Description
resizeStartedOgeSplitterResizeStartEventEmitted once when a drag or keyboard resize begins. The reference onResizeStart.
resizedOgeSplitterResizeEventEmitted every time the sizes change during a resize — once per pointer move. The reference onResize.
resizeEndedOgeSplitterResizeEventEmitted once when the gesture finishes, after the sizes model has been published. The reference onResizeEnd.
paneCollapsingOgeSplitterPaneCollapsingEventCancelable pre-event of a pane collapsing — set cancel = true to block it.
paneExpandingOgeSplitterPaneCollapsingEventCancelable pre-event of a pane expanding.
paneCollapsedOgeSplitterPaneCollapsedEventEmitted after a pane collapsed.
paneExpandedOgeSplitterPaneCollapsedEventEmitted after a pane expanded.
paneClickOgeSplitterPaneClickEventEmitted when a pane is clicked. A nested splitter reports its own panes — the event does not surface on the parent.
paneHoldOgeSplitterPaneHoldEventA pane was held for itemHoldTimeout — a touch long-press or a mouse hold.
paneContextMenuOgeSplitterPaneHoldEventA pane was right-clicked or long-pressed for a menu.
sizesChangereadonly OgeSplitterSize[] | undefinedTwo-way model output of sizes.

Types 11

Types

Name Type Description
OgeSplitterOrientation'horizontal' | 'vertical'Axis the panes are laid out along.
OgeSplitterGripSide'start' | 'end'Which neighbour a separator's collapse grip acts on: 'start' is the pane before it (the APG primary pane), 'end' the one after.
OgeSplitterSizenumber | stringA number (or '<n>%') is a ratio of the space the flexible panes share, so [30, 30] lays out like [50, 50]. '<n>px' pins the pane to a fixed track. Any other string is ignored with a dev-mode warning.
OgeSplitterPaneDatainterfaceData-driven counterpart of a declarative pane: key, size, minSize, maxSize, collapsible, collapsed, collapsedSize, resizable, scrollable, disabled, visible, text, cssClass, htmlAttributes, panes, orientation.
OgeSplitterPaneTemplateContextinterfaceContext of [ogeSplitterPaneTemplate]: $implicit (the pane entry), index, collapsed.
OgeSplitterResizeStartEventinterfaceseparatorIndex, sizes at the start of the gesture, and the originating event (absent for a keyboard resize).
OgeSplitterResizeEventinterfaceseparatorIndex, current sizes, previousSizes from the start of the gesture, and the originating event.
OgeSplitterPaneCollapsingEventinterfaceindex, key, item, event, and a mutable cancel flag.
OgeSplitterPaneCollapsedEventinterfaceindex, key, item, event.
OgeSplitterPaneHoldEventinterfacePayload of paneHold and paneContextMenu: index, key?, item?, event.
OgeSplitterPaneClickEventinterfaceindex, key, item and the originating event.

OgeSplitterPane

oge-splitter-pane

Properties 14

Name Type DefaultDescription
keystring | undefined—Stable identity used by DOM ids and by the collapse API’s string targets.
sizeOgeSplitterSize | undefined—Initial size — a ratio number, '40%' or '240px'. Panes without one split whatever the sized ones leave.
minSizeOgeSplitterSize | undefined—Smallest size a resize may leave this pane at. A pixel value also becomes the grid track’s floor.
maxSizeOgeSplitterSize | undefined—Largest size a resize may grow this pane to.
collapsiblebooleanfalseAllows the pane to be collapsed from its separator — Enter, the grip, or a double click.
collapsedbooleanfalseCollapsed state — two-way. Writes run the splitter’s pipeline, so a vetoed change reverts the binding.
collapsedSizeOgeSplitterSize | undefined0Size the pane keeps while collapsed.
resizablebooleantruePins the pane — both of its separators refuse to drag and report aria-disabled.
scrollablebooleantrueClips overflowing content instead of scrolling it when false.
disabledbooleanfalseDisabled panes cannot be collapsed and their separators are inert.
visiblebooleantrueRemoves the pane entirely when false.
textstring | undefined—Plain-text body, rendered when the pane has no projected content.
htmlAttributesReadonly<Record<string, string>> | undefined—Extra attributes on the pane element. Keys removed from the bag are removed from the DOM, so clearing it clears the element.
cssClassstring | undefined—Extra class on the pane element.

Methods 3

Name Type Description
collapse()() => voidCollapses this pane, subject to the splitter’s pipeline.
expand()() => voidExpands this pane, subject to the splitter’s pipeline.
toggle()() => voidCollapses the pane if expanded, expands it otherwise.

Events 1

Name Type Description
collapsedChangebooleanTwo-way model output of collapsed.

Types 1

Directives

Name Type Description
OgeSplitterPaneTemplate[ogeSplitterPaneTemplate]Structural directive rendering the body of every data-driven panes entry. Declarative children use their projected content instead.

Splitter configuration

Properties 5

Name Type DefaultDescription
provideOgeSplitterConfig(config)(config: OgeSplitterConfigInput) => Provider—Application- or component-scoped defaults. messages is shallow-merged over the built-in strings.
separatorSizenumber | undefined6Default for the separatorSize input.
stepnumber | undefined5Default for the step input.
showCollapseGripsboolean | undefinedtrueDefault for the showCollapseGrips input.
messagesOgeSplitterMessages—Every user-facing string: separator (with {{first}} / {{second}} placeholders), collapsed, collapsePane, expandPane, noData.

Types 6

Types

Name Type Description
OgeSplitterConfiginterfaceShape held by OGE_SPLITTER_CONFIG: messages plus the optional input defaults.
OgeSplitterConfigInputinterfaceArgument of provideOgeSplitterConfig() — every field optional, messages partial.
OgeSplitterMessagesinterfaceEvery user-facing string in the splitter, including the separators’ accessible names.
OGE_SPLITTER_CONFIGInjectionToken<OgeSplitterConfig>The token itself — inject it to read the effective defaults.
OGE_DEFAULT_SPLITTER_CONFIGOgeSplitterConfigThe built-in defaults, exported for composition.
OGE_DEFAULT_SPLITTER_MESSAGESOgeSplitterMessagesThe built-in English strings.