import { ChangeDetectorRef, EventEmitter, OnChanges, OnInit, SimpleChanges } from '@angular/core'; import { FolderNode, ModularLabels } from '../modular-table-template.models'; import * as i0 from "@angular/core"; interface FlatFolderRow { id: number | null; name: string; depth: number; disabled: boolean; hasChildren: boolean; expanded: boolean; } /** * Folder-picker body used inside the Move-to-Folder dialog. * * This component is designed to be usable two ways: * * 1. **From inside the library** via `DialogService.open({ content: { type: 'component', component: MoveToFolderDialogComponent, inputs: {...} } })`. * The outer `cqa-dialog` provides the title, description, Cancel and "Move here" * buttons; the Move button reads `pickedFolderId` via `dialogRef.getComponentInstance()`. * * 2. **From the host/UI layer directly** once API ownership moves up. The host * renders `` inside its own modal shell and * listens to `(folderPicked)` (fires on every pick) to drive its own "Move here" * button. All visual state lives on `pickedFolderId` so hosts can also two-way * bind if they prefer. */ export declare class MoveToFolderDialogComponent implements OnInit, OnChanges { private cdr; /** Folder tree to pick from. */ folders: FolderNode[]; /** Label overrides. */ labels: ModularLabels; /** The folder the tests currently live in — rendered as disabled (can't move into itself). */ currentFolderId: number | null; /** Controls which folder is visually selected. Two-way-bind friendly via `pickedFolderIdChange`. */ pickedFolderId: number | null; /** Folder ids to expand by default. If not provided, ancestors of `currentFolderId` (or * `pickedFolderId`, when no current context exists) are expanded. */ initialExpandedIds?: number[]; /** Disables the top-level "Unorganized / no folder" row. Decoupled from `currentFolderId` * so consumers that reuse this picker for non-move flows (e.g. parent-folder selection * inside the New Folder dialog) can keep the root option clickable. The move flows wire * this to `currentFolderId == null`. */ rootDisabled: boolean; /** CSS height for the scrollable picker container. Lets embedders shrink the picker when * it shares space with other fields (e.g. inside the New Folder dialog). */ pickerHeight: string; /** Fires whenever the user picks a destination. */ folderPicked: EventEmitter; /** Companion output for banana-in-the-box `[(pickedFolderId)]` binding. */ pickedFolderIdChange: EventEmitter; private expandedIds; constructor(cdr: ChangeDetectorRef); ngOnInit(): void; ngOnChanges(changes: SimpleChanges): void; private seedExpandedIds; private collectAncestors; get flatRows(): FlatFolderRow[]; isPicked(id: number | null): boolean; get isUnorganizedDisabled(): boolean; pick(id: number | null): void; toggleExpanded(id: number, event: Event): void; trackById: (_: number, row: FlatFolderRow) => number; static ɵfac: i0.ɵɵFactoryDeclaration; static ɵcmp: i0.ɵɵComponentDeclaration; } export {};