Skip to content

FilterNodeComponent

Recursive component for rendering and manipulating a single filter-tree node.

new FilterNodeComponent(): FilterNodeComponent

FilterNodeComponent

allDropListIds: InputSignal<string[]>


canClearAll: InputSignal<boolean>

Whether clear-all is available — only used by the root branch header.


canRedo: InputSignal<boolean>

Whether redo is available — only used by the root branch header.


canUndo: InputSignal<boolean>

Whether undo is available — only used by the root branch header.


clearAllClick: OutputEmitterRef<void>

Emitted when the root clear-all button is clicked.


conjunctionAriaLabel: Signal<string>


conjunctionLabel: Signal<string>


conjunctionToggle: OutputEmitterRef<string>


readonly dragState: FilterTreeDragStateService


dropListId: Signal<string>


isActiveBranch: Signal<boolean>

True only when THIS branch is the active drop target. Computed from the service’s single activeDropZone signal.


isBranch: Signal<boolean>


isDragging: WritableSignal<boolean>


isDropTarget: InputSignal<boolean>

True when this node is the active item-center drop target in its parent branch. Used to highlight the chip or branch header. Passed in by the parent’s

loop via isItemActive(i).


isLeaf: Signal<boolean>


isRoot: InputSignal<boolean>


isSelfDragging: Signal<boolean>

True when THIS node is the one currently being dragged.


leafLabel: Signal<string>


node: InputSignal<FilterNode>


nodeDelete: OutputEmitterRef<string>

Emitted when the user clicks the delete button on a node.


nodeDrop: OutputEmitterRef<{ dragId: string; position: DropPosition; }>

Final resolved drop — emitted after the root resolves the position.


redoClick: OutputEmitterRef<void>

Emitted when the root redo button is clicked.


root: InputSignal<FilterNode>


undoClick: OutputEmitterRef<void>

Emitted when the root undo button is clicked.

isGapActive(i): boolean

Is the gap at index i (before child i) currently active?

number

boolean


isItemActive(i): boolean

Is the item-center merge zone for child[i] currently active?

number

boolean


isTrailingGapActive(): boolean

Is the trailing gap (after the last child) currently active?

boolean


onChildConjunctionToggle(branchId): void

unknown

void


onChildDelete(nodeId): void

unknown

void


onChildDrop(event): void

unknown

void


onDeleteNode(): void

void


onDragEnded(): void

void


onDragMoved(event): void

Forward pointer position to the service on every drag-move tick.

CdkDragMove

void


onDragStarted(): void

void


onDrop(event): void

CDK fires this when an item is dropped into THIS branch’s drop list.

Resolves the drop position by running findDeepestBranchZone fresh at the drop coordinates — the same geometry used for hover highlighting — then emits nodeDrop with the fully resolved position. The root FilterTreeComponent applies the mutation.

CdkDragDrop<FilterNode[]>

void


onToggleConjunction(): void

void