ContentItem & Tree Node Hierarchy

All visual elements within a Strelit layout inherit from ContentItem. The item hierarchy forms a strict tree structure:

  • RowOrColumn: Arranges children horizontally (row) or vertically (column).
  • Stack: Hosts tabbed component panels (stack).
  • ComponentItem: Leaf nodes hosting individual ComponentContainers.

Hierarchy Overview

EventEmitter
 └── ContentItem (abstract)
      ├── ComponentParentableItem (abstract)
      │    └── Stack
      ├── ComponentItem
      └── RowOrColumn

Properties

type

The type of the item: 'row' | 'column' | 'stack' | 'component' | 'ground'.

contentItems

An array of direct child ContentItem instances.

parent

The parent ContentItem node, or null for root items.

id

The string identifier assigned to this item.

isInitialised

True once the item has been initialized and bound to the DOM.

isRow / isColumn / isStack / isComponent

Boolean type discrimination flags.

layoutManager

Reference to the owning LayoutManager / StrelitLayout instance.

element

The native HTMLElement DOM wrapper for this item node.

isClosable

Whether this item can be closed by the user.

Static Type Guards

Strelit UI Kit provides static TypeScript type guards to safely discriminate item types at runtime:

import { ContentItem } from 'strelit-ui-kit';

if (ContentItem.isComponentItem(item)) {
  // item is ComponentItem
  console.log(item.componentType, item.container);
} else if (ContentItem.isStack(item)) {
  // item is Stack
  const activeComp = item.getActiveComponentItem();
}

Tree Manipulation

addChild( contentItem, index?, suspendResize? )

Adds a child ContentItem to this item node at the specified index position.

removeChild( contentItem, keepChild? )

Removes a child item. If keepChild is false (default), the child item is destroyed.

replaceChild( oldChild, newChild, destroyOldChild? )

Replaces an existing child node with a new content item in-place.

remove()

Removes this item from its parent and destroys it.

popout()

Pops this item out into a new detached BrowserPopout window.

Query Helpers

getItemsById( id )

Recursively searches the subtree for all content items matching the specified string ID.

getItemsByType( type )

Recursively returns all items matching the specified ItemType (e.g. 'stack', 'component').

getComponentItemsByType( componentType )

Recursively finds all ComponentItem leaves registered with the given component type name.

Stack API

For items where ContentItem.isStack(item) is true:

getActiveComponentItem()

Returns the currently selected / active ComponentItem tab in the stack.

setActiveComponentItem( item, focus, suppressFocusEvent? )

Switches the active tab to the specified component item and optionally sets focus.

maximise() / minimise() / toggleMaximise()

Toggles full-viewport maximization of this stack.

header

Access the Header control instance governing the stack's tabs and action buttons.

Community & Support

Need help or have architectural questions?

Whether you are building complex multi-screen trading terminals, enterprise data workspaces, or migrating from legacy layout engines, the Strelit UI Kit engineering team and community are here to help.

Open an Issue on GitHub →