{"version":3,"file":"primeng-treeselect.mjs","sources":["../../src/treeselect/style/treeselectstyle.ts","../../src/treeselect/treeselect.ts","../../src/treeselect/primeng-treeselect.ts"],"sourcesContent":["import { Injectable } from '@angular/core';\nimport { style } from '@primeuix/styles/treeselect';\nimport { BaseStyle } from 'primeng/base';\n\nconst inlineStyles = {\n    root: ({ instance }) => ({ position: instance.$appendTo() === 'self' ? 'relative' : undefined })\n};\n\nconst classes = {\n    root: ({ instance }) => [\n        'p-treeselect p-component p-inputwrapper',\n        {\n            'p-treeselect-display-chip': instance.display() === 'chip',\n            'p-disabled': instance.$disabled(),\n            'p-invalid': instance.invalid(),\n            'p-focus': instance.focused(),\n            'p-variant-filled': instance.$variant() === 'filled',\n            'p-inputwrapper-filled': !instance.emptyValue(),\n            'p-inputwrapper-focus': instance.focused() || instance.overlayVisible(),\n            'p-treeselect-open': instance.overlayVisible(),\n            'p-treeselect-fluid': instance.hasFluid,\n            'p-treeselect-sm p-inputfield-sm': instance.size() === 'small',\n            'p-treeselect-lg p-inputfield-lg': instance.size() === 'large'\n        }\n    ],\n    labelContainer: 'p-treeselect-label-container',\n    label: ({ instance }) => [\n        'p-treeselect-label',\n        {\n            'p-placeholder': instance.label() === instance.placeholder(),\n            'p-treeselect-label-empty': !instance.placeholder() && instance.emptyValue()\n        }\n    ],\n    clearIcon: 'p-treeselect-clear-icon',\n    chip: 'p-treeselect-chip-item',\n    pcChip: 'p-treeselect-chip',\n    dropdown: 'p-treeselect-dropdown',\n    dropdownIcon: 'p-treeselect-dropdown-icon',\n    panel: 'p-treeselect-overlay p-component-overlay p-component',\n    treeContainer: 'p-treeselect-tree-container',\n    emptyMessage: 'p-treeselect-empty-message'\n};\n\n@Injectable()\nexport class TreeSelectStyle extends BaseStyle {\n    name = 'treeselect';\n\n    style = style;\n\n    classes = classes;\n\n    inlineStyles = inlineStyles;\n}\n\n/**\n *\n * TreeSelect is a form component to choose from hierarchical data.\n *\n * [Live Demo](https://www.primeng.org/treeselect/)\n *\n * @module treeselectstyle\n *\n */\nexport enum TreeSelectClasses {\n    /**\n     * Class name of the root element\n     */\n    root = 'p-treeselect',\n    /**\n     * Class name of the label container element\n     */\n    labelContainer = 'p-treeselect-label-container',\n    /**\n     * Class name of the label element\n     */\n    label = 'p-treeselect-label',\n    /**\n     * Class name of the chip item element\n     */\n    chipItem = 'p-treeselect-chip-item',\n    /**\n     * Class name of the clear icon element\n     */\n    clearIcon = 'p-treeselect-clear-icon',\n    /**\n     * Class name of the chip element\n     */\n    pcChip = 'p-treeselect-chip',\n    /**\n     * Class name of the dropdown element\n     */\n    dropdown = 'p-treeselect-dropdown',\n    /**\n     * Class name of the dropdown icon element\n     */\n    dropdownIcon = 'p-treeselect-dropdown-icon',\n    /**\n     * Class name of the panel element\n     */\n    panel = 'p-treeselect-overlay',\n    /**\n     * Class name of the tree container element\n     */\n    treeContainer = 'p-treeselect-tree-container',\n    /**\n     * Class name of the empty message element\n     */\n    emptyMessage = 'p-treeselect-empty-message'\n}\n\nexport interface TreeSelectStyle extends BaseStyle {}\n","import { NgTemplateOutlet } from '@angular/common';\nimport {\n    booleanAttribute,\n    ChangeDetectionStrategy,\n    Component,\n    computed,\n    contentChild,\n    effect,\n    ElementRef,\n    forwardRef,\n    inject,\n    InjectionToken,\n    input,\n    NgModule,\n    numberAttribute,\n    output,\n    signal,\n    untracked,\n    TemplateRef,\n    viewChild,\n    ViewEncapsulation\n} from '@angular/core';\nimport { NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { MotionOptions } from '@primeuix/motion';\nimport { focus, getFirstFocusableElement, getFocusableElements, getLastFocusableElement, isNotEmpty, uuid } from '@primeuix/utils';\nimport { OverlayOptions, ScrollerOptions, SharedModule, TreeNode } from 'primeng/api';\nimport { AutoFocus } from 'primeng/autofocus';\nimport { PARENT_INSTANCE } from 'primeng/basecomponent';\nimport { BaseEditableHolder } from 'primeng/baseeditableholder';\nimport { Bind } from 'primeng/bind';\nimport { Chip } from 'primeng/chip';\nimport { Fluid } from 'primeng/fluid';\nimport { ChevronDown as ChevronDownIcon } from '@primeicons/angular/chevron-down';\nimport { Times as TimesIcon } from '@primeicons/angular/times';\nimport { Overlay } from 'primeng/overlay';\nimport { Tree, TreeFilterEvent, TreeNodeSelectEvent, TreeNodeUnSelectEvent } from 'primeng/tree';\nimport type { AppendTo, CSSProperties, InputSize, InputVariant } from 'primeng/types/shared';\nimport { Nullable } from 'primeng/ts-helpers';\nimport {\n    TreeSelectDisplay,\n    TreeSelectHeaderTemplateContext,\n    TreeSelectItemCheckboxIconTemplateContext,\n    TreeSelectItemTogglerIconTemplateContext,\n    TreeSelectLoadingMode,\n    TreeSelectNodeCollapseEvent,\n    TreeSelectNodeExpandEvent,\n    TreeSelectPassThrough,\n    TreeSelectSelectionMode,\n    TreeSelectValueTemplateContext\n} from 'primeng/types/treeselect';\nimport { TreeSelectStyle } from './style/treeselectstyle';\n\nexport const TREESELECT_VALUE_ACCESSOR: any = {\n    provide: NG_VALUE_ACCESSOR,\n    useExisting: forwardRef(() => TreeSelect),\n    multi: true\n};\n\nconst TREESELECT_INSTANCE = new InjectionToken<TreeSelect>('TREESELECT_INSTANCE');\n\n/**\n * TreeSelect is a form component to choose from hierarchical data.\n * @group Components\n */\n@Component({\n    selector: 'p-tree-select, p-treeselect',\n    standalone: true,\n    imports: [NgTemplateOutlet, Overlay, SharedModule, Tree, AutoFocus, TimesIcon, ChevronDownIcon, Chip, Bind],\n    hostDirectives: [Bind],\n    template: `\n        <div class=\"p-hidden-accessible\" [pBind]=\"ptm('hiddenInputContainer')\" [attr.data-p-hidden-accessible]=\"true\">\n            <input\n                #focusInput\n                type=\"text\"\n                role=\"combobox\"\n                [attr.id]=\"inputId()\"\n                readonly\n                [attr.disabled]=\"$inputDisabledAttr()\"\n                (focus)=\"onInputFocus($event)\"\n                (blur)=\"onInputBlur($event)\"\n                (keydown)=\"onKeyDown($event)\"\n                [attr.tabindex]=\"$inputTabindex()\"\n                [attr.aria-controls]=\"$ariaControls()\"\n                [attr.aria-haspopup]=\"'tree'\"\n                [attr.aria-expanded]=\"$ariaExpanded()\"\n                [attr.aria-labelledby]=\"ariaLabelledBy()\"\n                [attr.aria-label]=\"$inputAriaLabel()\"\n                [pAutoFocus]=\"autofocus()\"\n                [pBind]=\"ptm('hiddenInput')\"\n            />\n        </div>\n        <div [class]=\"cx('labelContainer')\" [pBind]=\"ptm('labelContainer')\">\n            <div [class]=\"cn(cx('label'), labelStyleClass())\" [style]=\"labelStyle()\" [pBind]=\"ptm('label')\">\n                @if (valueTemplate()) {\n                    <ng-container *ngTemplateOutlet=\"valueTemplate(); context: valueTemplateContext()\"></ng-container>\n                } @else {\n                    @if (display() === 'comma') {\n                        {{ $labelText() }}\n                    } @else {\n                        @for (node of _value(); track node.key || $index) {\n                            <div [class]=\"cx('chipItem')\" [pBind]=\"ptm('chipItem')\">\n                                <p-chip [unstyled]=\"unstyled()\" [label]=\"node.label\" [class]=\"cx('pcChip')\" [pt]=\"ptm('pcChip')\" />\n                            </div>\n                        }\n                        @if (emptyValue()) {\n                            {{ $placeholderText() }}\n                        }\n                    }\n                }\n            </div>\n        </div>\n        @if ($showClearIcon()) {\n            @if (!clearIconTemplate()) {\n                <svg data-p-icon=\"times\" [class]=\"cx('clearIcon')\" (click)=\"clear($event)\" [pBind]=\"ptm('clearIcon')\" [attr.data-pc-section]=\"'clearicon'\" />\n            } @else {\n                <span [class]=\"cx('clearIcon')\" (click)=\"clear($event)\" [pBind]=\"ptm('clearIcon')\" [attr.data-pc-section]=\"'clearicon'\">\n                    <ng-template *ngTemplateOutlet=\"clearIconTemplate()\"></ng-template>\n                </span>\n            }\n        }\n        <div [class]=\"cx('dropdown')\" role=\"button\" aria-haspopup=\"tree\" [attr.aria-expanded]=\"$ariaExpanded()\" [attr.aria-label]=\"'treeselect trigger'\" [pBind]=\"ptm('dropdown')\">\n            @if ($showDefaultDropdownIcon()) {\n                <svg data-p-icon=\"chevron-down\" [class]=\"cx('dropdownIcon')\" [pBind]=\"ptm('dropdownIcon')\" />\n            } @else {\n                <span [class]=\"cx('dropdownIcon')\" [pBind]=\"ptm('dropdownIcon')\">\n                    <ng-template *ngTemplateOutlet=\"$dropdownIconTemplate()\"></ng-template>\n                </span>\n            }\n        </div>\n        <p-overlay\n            #overlay\n            [hostAttrSelector]=\"$attrSelector\"\n            [visible]=\"overlayVisible()\"\n            (visibleChange)=\"overlayVisible.set($event)\"\n            [options]=\"overlayOptions()\"\n            [target]=\"'@parent'\"\n            [appendTo]=\"$appendTo()\"\n            [unstyled]=\"unstyled()\"\n            [pt]=\"ptm('pcOverlay')\"\n            [motionOptions]=\"motionOptions()\"\n            (onBeforeEnter)=\"onOverlayBeforeEnter()\"\n            (onBeforeHide)=\"onOverlayBeforeHide()\"\n            (onShow)=\"onShow.emit($event)\"\n            (onHide)=\"hide($event)\"\n        >\n            <ng-template #content>\n                <div #panel [attr.id]=\"listId\" [class]=\"cn(cx('panel'), panelStyleClass(), panelClass())\" [style]=\"panelStyle()\" [pBind]=\"ptm('panel')\">\n                    <span\n                        #firstHiddenFocusableEl\n                        role=\"presentation\"\n                        class=\"p-hidden-accessible p-hidden-focusable\"\n                        [attr.tabindex]=\"0\"\n                        (focus)=\"onFirstHiddenFocus($event)\"\n                        [attr.data-p-hidden-accessible]=\"true\"\n                        [attr.data-p-hidden-focusable]=\"true\"\n                        [pBind]=\"ptm('hiddenFirstFocusableEl')\"\n                    >\n                    </span>\n                    @if (headerTemplate()) {\n                        <ng-container *ngTemplateOutlet=\"headerTemplate(); context: headerTemplateContext()\"></ng-container>\n                    }\n                    <div [class]=\"cx('treeContainer')\" [style]=\"$treeContainerStyle()\" [pBind]=\"ptm('treeContainer')\">\n                        <p-tree\n                            #tree\n                            [value]=\"_options()\"\n                            [propagateSelectionDown]=\"propagateSelectionDown()\"\n                            [propagateSelectionUp]=\"propagateSelectionUp()\"\n                            [selectionMode]=\"selectionMode()\"\n                            (selectionChange)=\"onSelectionChange($event)\"\n                            [selection]=\"_value()\"\n                            [metaKeySelection]=\"metaKeySelection()\"\n                            (onNodeExpand)=\"nodeExpand($event)\"\n                            (onNodeCollapse)=\"nodeCollapse($event)\"\n                            (onNodeSelect)=\"onSelect($event)\"\n                            [emptyMessage]=\"emptyMessage()\"\n                            (onNodeUnselect)=\"onUnselect($event)\"\n                            [filter]=\"filter()\"\n                            [filterBy]=\"filterBy()\"\n                            [filterMode]=\"filterMode()\"\n                            [filterPlaceholder]=\"filterPlaceholder()\"\n                            [filterLocale]=\"filterLocale()\"\n                            [filteredNodes]=\"filteredNodes\"\n                            [virtualScroll]=\"virtualScroll()\"\n                            [virtualScrollItemSize]=\"virtualScrollItemSize()\"\n                            [virtualScrollOptions]=\"virtualScrollOptions()\"\n                            [loading]=\"loading()\"\n                            [filterInputAutoFocus]=\"filterInputAutoFocus()\"\n                            [loadingMode]=\"loadingMode()\"\n                            [pt]=\"ptm('pcTree')\"\n                            [unstyled]=\"unstyled()\"\n                        >\n                            @if (emptyTemplate()) {\n                                <ng-template #empty>\n                                    <ng-container *ngTemplateOutlet=\"emptyTemplate()\"></ng-container>\n                                </ng-template>\n                            }\n                            @if (itemTogglerIconTemplate()) {\n                                <ng-template #togglericon let-expanded>\n                                    <ng-container *ngTemplateOutlet=\"itemTogglerIconTemplate(); context: { $implicit: expanded }\"></ng-container>\n                                </ng-template>\n                            }\n                            @if (itemCheckboxIconTemplate()) {\n                                <ng-template #checkboxicon let-selected let-partialSelected=\"partialSelected\">\n                                    <ng-container *ngTemplateOutlet=\"itemCheckboxIconTemplate(); context: { $implicit: selected, partialSelected: partialSelected }\"></ng-container>\n                                </ng-template>\n                            }\n                            @if (itemLoadingIconTemplate()) {\n                                <ng-template #loadingicon>\n                                    <ng-container *ngTemplateOutlet=\"itemLoadingIconTemplate()\"></ng-container>\n                                </ng-template>\n                            }\n                            @if (filterIconTemplate()) {\n                                <ng-template #filtericon>\n                                    <ng-container *ngTemplateOutlet=\"filterIconTemplate()\"></ng-container>\n                                </ng-template>\n                            }\n                        </p-tree>\n                    </div>\n                    @if (footerTemplate()) {\n                        <ng-container *ngTemplateOutlet=\"footerTemplate(); context: footerTemplateContext()\"></ng-container>\n                    }\n                    <span\n                        #lastHiddenFocusableEl\n                        role=\"presentation\"\n                        class=\"p-hidden-accessible p-hidden-focusable\"\n                        [attr.tabindex]=\"0\"\n                        (focus)=\"onLastHiddenFocus($event)\"\n                        [attr.data-p-hidden-accessible]=\"true\"\n                        [attr.data-p-hidden-focusable]=\"true\"\n                        [pBind]=\"ptm('hiddenLastFocusableEl')\"\n                    ></span>\n                </div>\n            </ng-template>\n        </p-overlay>\n    `,\n    changeDetection: ChangeDetectionStrategy.OnPush,\n    providers: [\n        TREESELECT_VALUE_ACCESSOR,\n        TreeSelectStyle,\n        {\n            provide: TREESELECT_INSTANCE,\n            useExisting: TreeSelect\n        },\n        {\n            provide: PARENT_INSTANCE,\n            useExisting: TreeSelect\n        }\n    ],\n    encapsulation: ViewEncapsulation.None,\n    host: {\n        '[class]': \"cx('root')\",\n        '[style]': \"sx('root')\",\n        '(mousedown)': 'onClick($event)'\n    }\n})\nexport class TreeSelect extends BaseEditableHolder<TreeSelectPassThrough> {\n    componentName = 'TreeSelect';\n\n    $pcTreeSelect: TreeSelect | undefined = inject(TREESELECT_INSTANCE, { optional: true, skipSelf: true }) ?? undefined;\n\n    bindDirectiveInstance = inject(Bind, { self: true });\n\n    _componentStyle = inject(TreeSelectStyle);\n\n    /**\n     * Identifier of the underlying input element.\n     * @group Props\n     */\n    inputId = input<string>();\n    /**\n     * Height of the viewport, a scrollbar is defined if height of list exceeds this value.\n     * @group Props\n     */\n    scrollHeight = input<string>('400px');\n    /**\n     * Defines how multiple items can be selected, when true metaKey needs to be pressed to select or unselect an item and when set to false selection of each item can be toggled individually. On touch enabled devices, metaKeySelection is turned off automatically.\n     * @group Props\n     */\n    metaKeySelection = input(false, { transform: booleanAttribute });\n    /**\n     * Defines how the selected items are displayed.\n     * @group Props\n     */\n    display = input<TreeSelectDisplay>('comma');\n    /**\n     * Defines the selection mode.\n     * @group Props\n     */\n    selectionMode = input<TreeSelectSelectionMode>('single');\n    /**\n     * Index of the element in tabbing order.\n     * @group Props\n     */\n    tabindex = input<string>('0');\n    /**\n     * Defines a string that labels the input for accessibility.\n     * @group Props\n     */\n    ariaLabel = input<string>();\n    /**\n     * Establishes relationships between the component and label(s) where its value should be one or more element IDs.\n     * @group Props\n     */\n    ariaLabelledBy = input<string>();\n    /**\n     * Label to display when there are no selections.\n     * @group Props\n     */\n    placeholder = input<string>();\n    /**\n     * Style class of the overlay panel.\n     * @group Props\n     */\n    panelClass = input<string | string[] | Set<string> | { [klass: string]: any }>();\n    /**\n     * Inline style of the panel element.\n     * @group Props\n     */\n    panelStyle = input<CSSProperties>();\n    /**\n     * Style class of the panel element.\n     * @group Props\n     */\n    panelStyleClass = input<string>();\n    /**\n     * Inline style of the label element.\n     * @group Props\n     */\n    labelStyle = input<CSSProperties>();\n    /**\n     * Style class of the label element.\n     * @group Props\n     */\n    labelStyleClass = input<string>();\n    /**\n     * Specifies the options for the overlay.\n     * @group Props\n     */\n    overlayOptions = input<OverlayOptions>();\n    /**\n     * Text to display when there are no options available. Defaults to value from PrimeNG locale configuration.\n     * @group Props\n     */\n    emptyMessage = input<string>('');\n    /**\n     * When specified, displays an input field to filter the items.\n     * @group Props\n     */\n    filter = input(false, { transform: booleanAttribute });\n    /**\n     * When filtering is enabled, filterBy decides which field or fields (comma separated) to search against.\n     * @group Props\n     */\n    filterBy = input<string>('label');\n    /**\n     * Mode for filtering valid values are \"lenient\" and \"strict\". Default is lenient.\n     * @group Props\n     */\n    filterMode = input<string>('lenient');\n    /**\n     * Placeholder text to show when filter input is empty.\n     * @group Props\n     */\n    filterPlaceholder = input<string>();\n    /**\n     * Locale to use in filtering. The default locale is the host environment's current locale.\n     * @group Props\n     */\n    filterLocale = input<string>();\n    /**\n     * Determines whether the filter input should be automatically focused when the component is rendered.\n     * @group Props\n     */\n    filterInputAutoFocus = input(true, { transform: booleanAttribute });\n    /**\n     * Whether checkbox selections propagate to descendant nodes.\n     * @group Props\n     */\n    propagateSelectionDown = input(true, { transform: booleanAttribute });\n    /**\n     * Whether checkbox selections propagate to ancestor nodes.\n     * @group Props\n     */\n    propagateSelectionUp = input(true, { transform: booleanAttribute });\n    /**\n     * When enabled, a clear icon is displayed to clear the value.\n     * @group Props\n     */\n    showClear = input(false, { transform: booleanAttribute });\n    /**\n     * Clears the filter value when hiding the dropdown.\n     * @group Props\n     */\n    resetFilterOnHide = input(true, { transform: booleanAttribute });\n    /**\n     * Whether the data should be loaded on demand during scroll.\n     * @group Props\n     */\n    virtualScroll = input(undefined, { transform: booleanAttribute });\n    /**\n     * Height of an item in the list for VirtualScrolling.\n     * @group Props\n     */\n    virtualScrollItemSize = input(undefined, { transform: numberAttribute });\n    /**\n     * Whether to use the scroller feature. The properties of scroller component can be used like an object in it.\n     * @group Props\n     */\n    virtualScrollOptions = input<ScrollerOptions>();\n    /**\n     * When present, it specifies that the component should automatically get focus on load.\n     * @group Props\n     */\n    autofocus = input(undefined, { transform: booleanAttribute });\n    /**\n     * An array of treenodes.\n     * @defaultValue undefined\n     * @group Props\n     */\n    options = input<TreeNode[]>();\n    /**\n     * Displays a loader to indicate data load is in progress.\n     * @group Props\n     */\n    loading = input(undefined, { transform: booleanAttribute });\n    /**\n     * Loading mode display.\n     * @group Props\n     */\n    loadingMode = input<TreeSelectLoadingMode>('mask');\n    /**\n     * Specifies the size of the component.\n     * @defaultValue undefined\n     * @group Props\n     */\n    size = input<InputSize>();\n    /**\n     * Specifies the input variant of the component.\n     * @defaultValue undefined\n     * @group Props\n     */\n    variant = input<InputVariant>();\n    /**\n     * Spans 100% width of the container when enabled.\n     * @defaultValue undefined\n     * @group Props\n     */\n    fluid = input(undefined, { transform: booleanAttribute });\n    /**\n     * Target element to attach the overlay, valid values are \"body\" or a local ng-template variable of another element (note: use binding with brackets for template variables, e.g. [appendTo]=\"mydiv\" for a div element having #mydiv as variable name).\n     * @defaultValue 'self'\n     * @group Props\n     */\n    appendTo = input<AppendTo>(undefined);\n    /**\n     * The motion options.\n     * @group Props\n     */\n    motionOptions = input<MotionOptions | undefined>(undefined);\n\n    /**\n     * Callback to invoke when a node is expanded.\n     * @param {TreeSelectNodeExpandEvent} event - Custom node expand event.\n     * @group Emits\n     */\n    onNodeExpand = output<TreeSelectNodeExpandEvent>();\n    /**\n     * Callback to invoke when a node is collapsed.\n     * @param {TreeSelectNodeCollapseEvent} event - Custom node collapse event.\n     * @group Emits\n     */\n    onNodeCollapse = output<TreeSelectNodeCollapseEvent>();\n    /**\n     * Callback to invoke when the overlay is shown.\n     * @param {Event} event - Browser event.\n     * @group Emits\n     */\n    onShow = output<any>();\n    /**\n     * Callback to invoke when the overlay is hidden.\n     * @param {Event} event - Browser event.\n     * @group Emits\n     */\n    onHide = output<Event>();\n    /**\n     * Callback to invoke when input field is cleared.\n     * @group Emits\n     */\n    onClear = output<any>();\n    /**\n     * Callback to invoke when data is filtered.\n     * @group Emits\n     */\n    onFilter = output<TreeFilterEvent>();\n    /**\n     * Callback to invoke when treeselect gets focus.\n     * @param {Event} event - Browser event.\n     * @group Emits\n     */\n    onFocus = output<Event>();\n    /**\n     * Callback to invoke when treeselect loses focus.\n     * @param {Event} event - Browser event.\n     * @group Emits\n     */\n    onBlur = output<Event>();\n    /**\n     * Callback to invoke when a node is unselected.\n     * @param {TreeNodeUnSelectEvent} event - node unselect event.\n     * @group Emits\n     */\n    onNodeUnselect = output<TreeNodeUnSelectEvent>();\n    /**\n     * Callback to invoke when a node is selected.\n     * @param {TreeNodeSelectEvent} event - node select event.\n     * @group Emits\n     */\n    onNodeSelect = output<TreeNodeSelectEvent>();\n\n    $appendTo = computed(() => this.appendTo() || this.config.overlayAppendTo());\n\n    focusInputViewChild = viewChild<ElementRef>('focusInput');\n\n    filterViewChild = viewChild<ElementRef>('filter');\n\n    treeViewChild = viewChild<Tree>('tree');\n\n    panelEl = viewChild<ElementRef>('panel');\n\n    overlayViewChild = viewChild<Overlay>('overlay');\n\n    firstHiddenFocusableElementOnOverlay = viewChild<ElementRef>('firstHiddenFocusableEl');\n\n    lastHiddenFocusableElementOnOverlay = viewChild<ElementRef>('lastHiddenFocusableEl');\n\n    $variant = computed(() => this.variant() || this.config.inputVariant());\n\n    pcFluid: Fluid | null = inject(Fluid, { optional: true, host: true, skipSelf: true });\n\n    get hasFluid() {\n        return this.fluid() ?? !!this.pcFluid;\n    }\n\n    public filteredNodes: TreeNode[] | undefined | null;\n\n    filterValue: Nullable<string> = null;\n\n    serializedValue: Nullable<any[]>;\n\n    /**\n     * Custom value template.\n     * @param {TreeSelectValueTemplateContext} context - value context.\n     * @see {@link TreeSelectValueTemplateContext}\n     * @group Templates\n     */\n    valueTemplate = contentChild<TemplateRef<TreeSelectValueTemplateContext>>('value', { descendants: false });\n\n    /**\n     * Custom header template.\n     * @param {TreeSelectHeaderTemplateContext} context - header context.\n     * @see {@link TreeSelectHeaderTemplateContext}\n     * @group Templates\n     */\n    headerTemplate = contentChild<TemplateRef<TreeSelectHeaderTemplateContext>>('header', { descendants: false });\n\n    /**\n     * Custom empty message template.\n     * @group Templates\n     */\n    emptyTemplate = contentChild<TemplateRef<void>>('empty', { descendants: false });\n\n    /**\n     * Custom footer template.\n     * @param {TreeSelectHeaderTemplateContext} context - footer context.\n     * @see {@link TreeSelectHeaderTemplateContext}\n     * @group Templates\n     */\n    footerTemplate = contentChild<TemplateRef<TreeSelectHeaderTemplateContext>>('footer', { descendants: false });\n\n    /**\n     * Custom clear icon template.\n     * @group Templates\n     */\n    clearIconTemplate = contentChild<TemplateRef<void>>('clearicon', { descendants: false });\n\n    /**\n     * Custom trigger icon template.\n     * @group Templates\n     */\n    triggerIconTemplate = contentChild<TemplateRef<void>>('triggericon', { descendants: false });\n\n    /**\n     * Custom dropdown icon template.\n     * @group Templates\n     */\n    dropdownIconTemplate = contentChild<TemplateRef<void>>('dropdownicon', { descendants: false });\n\n    /**\n     * Custom filter icon template.\n     * @group Templates\n     */\n    filterIconTemplate = contentChild<TemplateRef<void>>('filtericon', { descendants: false });\n\n    /**\n     * Custom close icon template.\n     * @group Templates\n     */\n    closeIconTemplate = contentChild<TemplateRef<void>>('closeicon', { descendants: false });\n\n    /**\n     * Custom item toggler icon template.\n     * @param {TreeSelectItemTogglerIconTemplateContext} context - toggler icon context.\n     * @see {@link TreeSelectItemTogglerIconTemplateContext}\n     * @group Templates\n     */\n    itemTogglerIconTemplate = contentChild<TemplateRef<TreeSelectItemTogglerIconTemplateContext>>('itemtogglericon', { descendants: false });\n\n    /**\n     * Custom item checkbox icon template.\n     * @param {TreeSelectItemCheckboxIconTemplateContext} context - checkbox icon context.\n     * @see {@link TreeSelectItemCheckboxIconTemplateContext}\n     * @group Templates\n     */\n    itemCheckboxIconTemplate = contentChild<TemplateRef<TreeSelectItemCheckboxIconTemplateContext>>('itemcheckboxicon', { descendants: false });\n\n    /**\n     * Custom item loading icon template.\n     * @group Templates\n     */\n    itemLoadingIconTemplate = contentChild<TemplateRef<void>>('itemloadingicon', { descendants: false });\n\n    focused = signal<boolean>(false);\n\n    overlayVisible = signal<boolean>(false);\n\n    _value = signal<any>(undefined);\n\n    expandedNodes: any[] = [];\n\n    _options = signal<TreeNode[] | undefined>(undefined);\n\n    listId: string = '';\n\n    valueTemplateContext = computed(() => ({ $implicit: this._value(), placeholder: this.placeholder() }));\n\n    headerTemplateContext = computed(() => ({ $implicit: this._value(), options: this._options() }));\n\n    footerTemplateContext = computed(() => ({ $implicit: this._value(), options: this._options() }));\n\n    label = computed(() => {\n        const value = this._value() || [];\n        return value.length ? value.map((node: TreeNode) => node.label).join(', ') : this.selectionMode() === 'single' && this._value() ? this._value().label : this.placeholder();\n    });\n\n    emptyValue = computed(() => !this._value() || Object.keys(this._value()).length === 0);\n\n    emptyOptions = computed(() => !this._options() || this._options()!.length === 0);\n\n    $inputDisabledAttr = computed(() => (this.$disabled() ? '' : undefined));\n\n    $inputTabindex = computed(() => (!this.$disabled() ? this.tabindex() : '-1'));\n\n    $ariaControls = computed(() => (this.overlayVisible() ? this.listId : null));\n\n    $ariaExpanded = computed(() => this.overlayVisible() ?? false);\n\n    $inputAriaLabel = computed(() => {\n        const ariaLabel = this.ariaLabel();\n        const label = this.label();\n        return ariaLabel || (label === 'p-emptylabel' ? undefined : label);\n    });\n\n    $showClearIcon = computed(() => this.checkValue() && !this.$disabled() && this.showClear());\n\n    $showDefaultDropdownIcon = computed(() => !this.triggerIconTemplate() && !this.dropdownIconTemplate());\n\n    $dropdownIconTemplate = computed(() => this.triggerIconTemplate() || this.dropdownIconTemplate());\n\n    $labelText = computed(() => this.label() || 'empty');\n\n    $placeholderText = computed(() => this.placeholder() || 'empty');\n\n    $treeContainerStyle = computed(() => ({ 'max-height': this.scrollHeight() }));\n\n    constructor() {\n        super();\n\n        // Handle options input changes\n        effect(() => {\n            const opts = this.options();\n            untracked(() => {\n                this._options.set(opts);\n                this.updateTreeState();\n            });\n        });\n    }\n\n    onAfterViewChecked(): void {\n        this.bindDirectiveInstance.setAttrs(this.ptms(['host', 'root']));\n    }\n\n    onInit() {\n        this.listId = uuid('pn_id_') + '_list';\n        this.updateTreeState();\n    }\n\n    onOverlayBeforeEnter() {\n        if (this.filter()) {\n            isNotEmpty(this.filterValue) && this.treeViewChild()?._filter(<any>this.filterValue);\n            this.filterInputAutoFocus() && this.filterViewChild()?.nativeElement.focus();\n        } else {\n            let focusableElements = <any>getFocusableElements(this.panelEl()?.nativeElement!);\n\n            if (focusableElements && focusableElements.length > 0) {\n                focusableElements[0].focus();\n            }\n        }\n    }\n\n    onOverlayBeforeHide() {\n        let focusableElements = <any>getFocusableElements(this.el.nativeElement);\n\n        if (focusableElements && focusableElements.length > 0) {\n            focusableElements[0].focus();\n        }\n    }\n\n    onSelectionChange(event: any) {\n        this._value.set(event);\n        this.onModelChange(this._value());\n    }\n\n    onClick(event: any) {\n        if (this.$disabled()) {\n            return;\n        }\n        const section = event.target?.getAttribute?.('data-pc-section');\n        if (event.target?.closest?.('[data-pc-section=\"clearicon\"]')) {\n            return;\n        }\n        if (!this.overlayViewChild()?.el?.nativeElement?.contains(event.target) && section !== 'box' && section !== 'icon') {\n            if (this.overlayVisible()) {\n                this.hide();\n            } else {\n                this.show();\n            }\n\n            this.focusInputViewChild()?.nativeElement.focus();\n        }\n    }\n\n    onKeyDown(event: KeyboardEvent) {\n        switch (event.code) {\n            //down\n            case 'ArrowDown':\n                if (!this.overlayVisible()) {\n                    this.show();\n                    event.preventDefault();\n                }\n                this.onArrowDown(event);\n                event.preventDefault();\n                break;\n\n            //space\n            case 'Space':\n            case 'Enter':\n                if (!this.overlayVisible()) {\n                    this.show();\n                    event.preventDefault();\n                }\n                break;\n\n            //escape\n            case 'Escape':\n                if (this.overlayVisible()) {\n                    this.hide();\n                    this.focusInputViewChild()?.nativeElement.focus();\n                    event.preventDefault();\n                }\n                break;\n\n            //tab\n            case 'Tab':\n                this.onTabKey(event);\n                break;\n\n            default:\n                break;\n        }\n    }\n\n    onFilterInput(event: Event) {\n        this.filterValue = (event.target as HTMLInputElement).value;\n        this.treeViewChild()?._filter(this.filterValue);\n        this.onFilter.emit({\n            filter: this.filterValue,\n            filteredValue: this.treeViewChild()?.filteredNodes\n        });\n        setTimeout(() => {\n            this.overlayViewChild()?.alignOverlay();\n        });\n    }\n\n    onArrowDown(event: KeyboardEvent) {\n        if (this.overlayVisible() && this.panelEl()?.nativeElement) {\n            let focusableElements = <any>getFocusableElements(this.panelEl()!.nativeElement, '[data-pc-section=\"node\"]');\n            if (focusableElements && focusableElements.length > 0) {\n                focusableElements[0].focus();\n            }\n\n            event.preventDefault();\n        }\n    }\n\n    onFirstHiddenFocus(event: FocusEvent) {\n        const focusableEl =\n            event.relatedTarget === this.focusInputViewChild()?.nativeElement\n                ? getFirstFocusableElement(this.overlayViewChild()?.overlayViewChild()?.nativeElement, ':not([data-p-hidden-focusable=\"true\"])')\n                : this.focusInputViewChild()?.nativeElement;\n\n        focus(focusableEl);\n    }\n\n    onLastHiddenFocus(event: FocusEvent) {\n        const focusableEl =\n            event.relatedTarget === this.focusInputViewChild()?.nativeElement ? getLastFocusableElement(this.overlayViewChild()?.overlayViewChild()?.nativeElement, ':not([data-p-hidden-focusable=\"true\"])') : this.focusInputViewChild()?.nativeElement;\n\n        focus(focusableEl);\n    }\n\n    show() {\n        this.overlayVisible.set(true);\n    }\n\n    hide(event?: any) {\n        this.overlayVisible.set(false);\n        this.resetFilter();\n\n        this.onHide.emit(event);\n    }\n\n    clear(event: Event) {\n        this._value.set(null);\n        this.resetExpandedNodes();\n        this.resetPartialSelected();\n        this.onModelChange(this._value());\n        this.onClear.emit(null);\n\n        event.stopPropagation();\n    }\n\n    checkValue() {\n        return this._value() !== null && isNotEmpty(this._value());\n    }\n\n    onTabKey(event: KeyboardEvent, pressedInInputText = false) {\n        if (!pressedInInputText) {\n            if (this.overlayVisible() && this.hasFocusableElements()) {\n                focus(event.shiftKey ? this.lastHiddenFocusableElementOnOverlay()?.nativeElement : this.firstHiddenFocusableElementOnOverlay()?.nativeElement);\n\n                event.preventDefault();\n            } else {\n                this.overlayVisible() && this.hide(this.filter());\n            }\n        }\n    }\n\n    hasFocusableElements() {\n        return getFocusableElements(this.overlayViewChild()?.overlayViewChild()?.nativeElement, ':not([data-p-hidden-focusable=\"true\"])').length > 0;\n    }\n\n    resetFilter() {\n        if (this.filter() && !this.resetFilterOnHide()) {\n            this.filteredNodes = this.treeViewChild()?.filteredNodes;\n            this.treeViewChild()?.resetFilter();\n        } else {\n            this.filterValue = null;\n        }\n    }\n\n    updateTreeState() {\n        if (this._value()) {\n            let selectedNodes = this.selectionMode() === 'single' ? [this._value()] : [...this._value()];\n            this.resetExpandedNodes();\n            this.resetPartialSelected();\n            if (selectedNodes && this._options()) {\n                this.updateTreeBranchState(null, null, selectedNodes);\n            }\n        }\n    }\n\n    updateTreeBranchState(node: TreeNode | null, path: any, selectedNodes: TreeNode[]) {\n        if (node) {\n            if (this.isSelected(node)) {\n                this.expandPath(path);\n                selectedNodes.splice(selectedNodes.indexOf(node), 1);\n            }\n\n            if (selectedNodes.length > 0 && node.children) {\n                for (let childNode of node.children) {\n                    this.updateTreeBranchState(childNode, [...path, node], selectedNodes);\n                }\n            }\n        } else {\n            for (let childNode of this._options() as TreeNode[]) {\n                this.updateTreeBranchState(childNode, [], selectedNodes);\n            }\n        }\n    }\n\n    expandPath(expandedNodes: TreeNode[]) {\n        for (let node of expandedNodes) {\n            node.expanded = true;\n        }\n\n        this.expandedNodes = [...expandedNodes];\n    }\n\n    nodeExpand(event: { originalEvent: Event; node: TreeNode }) {\n        this.onNodeExpand.emit(event);\n        this.expandedNodes.push(event.node);\n        setTimeout(() => {\n            this.overlayViewChild()?.alignOverlay();\n        });\n    }\n\n    nodeCollapse(event: { originalEvent: Event; node: TreeNode }) {\n        this.onNodeCollapse.emit(event);\n        this.expandedNodes.splice(this.expandedNodes.indexOf(event.node), 1);\n        setTimeout(() => {\n            this.overlayViewChild()?.alignOverlay();\n        });\n    }\n\n    resetExpandedNodes() {\n        for (let node of this.expandedNodes) {\n            node.expanded = false;\n        }\n\n        this.expandedNodes = [];\n    }\n\n    resetPartialSelected(nodes = this._options()): void {\n        if (!nodes) {\n            return;\n        }\n\n        for (let node of nodes) {\n            node.partialSelected = false;\n\n            if (node.children && node.children?.length > 0) {\n                this.resetPartialSelected(node.children);\n            }\n        }\n    }\n\n    findSelectedNodes(node: TreeNode, keys: any[], selectedNodes: TreeNode[]) {\n        if (node) {\n            if (this.isSelected(node)) {\n                selectedNodes.push(node);\n                delete keys[node.key as any];\n            }\n\n            if (Object.keys(keys).length && node.children) {\n                for (let childNode of node.children) {\n                    this.findSelectedNodes(childNode, keys, selectedNodes);\n                }\n            }\n        } else {\n            for (let childNode of this._options() as TreeNode[]) {\n                this.findSelectedNodes(childNode, keys, selectedNodes);\n            }\n        }\n    }\n\n    isSelected(node: TreeNode) {\n        return this.findIndexInSelection(node) != -1;\n    }\n\n    findIndexInSelection(node: TreeNode) {\n        let index: number = -1;\n        const value = this._value();\n\n        if (value) {\n            if (this.selectionMode() === 'single') {\n                let areNodesEqual = (value.key && value.key === node.key) || value == node;\n                index = areNodesEqual ? 0 : -1;\n            } else {\n                for (let i = 0; i < value.length; i++) {\n                    let selectedNode = value[i];\n                    let areNodesEqual = (selectedNode.key && selectedNode.key === node.key) || selectedNode == node;\n                    if (areNodesEqual) {\n                        index = i;\n                        break;\n                    }\n                }\n            }\n        }\n\n        return index;\n    }\n\n    onSelect(event: TreeNodeSelectEvent) {\n        this.onNodeSelect.emit(event);\n\n        if (this.selectionMode() === 'single') {\n            this.hide();\n            this.focusInputViewChild()?.nativeElement.focus();\n        }\n    }\n\n    onUnselect(event: TreeNodeUnSelectEvent) {\n        this.onNodeUnselect.emit(event);\n    }\n\n    onInputFocus(event: Event) {\n        if (this.$disabled()) {\n            // For ScreenReaders\n            return;\n        }\n\n        this.focused.set(true);\n        this.onFocus.emit(event);\n    }\n\n    onInputBlur(event: Event) {\n        this.focused.set(false);\n        this.onBlur.emit(event);\n        this.onModelTouched();\n    }\n\n    /**\n     * @override\n     *\n     * @see {@link BaseEditableHolder.writeControlValue}\n     * Writes the value to the control.\n     */\n    writeControlValue(value: any): void {\n        this._value.set(value);\n        this.updateTreeState();\n    }\n}\n\n@NgModule({\n    imports: [TreeSelect, SharedModule],\n    exports: [TreeSelect, SharedModule]\n})\nexport class TreeSelectModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":["TimesIcon","ChevronDownIcon"],"mappings":"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"}