{"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 as treeselect_style } from '@primeuix/styles/treeselect';\nimport { BaseStyle } from 'primeng/base';\n\nconst style = /*css*/ `\n    ${treeselect_style}\n\n    /* For PrimeNG */\n\n    .p-treeselect.ng-invalid.ng-dirty {\n        border-color: dt('treeselect.invalid.border.color');\n    }\n\n    p-treeselect.ng-invalid.ng-dirty.p-focus {\n        border-color: dt('treeselect.focus.border.color');\n    }\n\n    p-treeselect.ng-invalid.ng-dirty .p-treeselect-label.p-placeholder {\n        color: dt('treeselect.invalid.placeholder.color');\n    }\n\n    .p-treeselect-clear-icon.p-icon {\n        flex-shrink: 0;\n    }\n`;\n\nconst inlineStyles = {\n    root: ({ instance }) => ({ position: instance.$appendTo() === 'self' ? 'relative' : undefined, ...instance.containerStyle })\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-clearable': instance.showClear,\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 { CommonModule } from '@angular/common';\nimport {\n    booleanAttribute,\n    ChangeDetectionStrategy,\n    Component,\n    computed,\n    ContentChild,\n    ContentChildren,\n    ElementRef,\n    EventEmitter,\n    forwardRef,\n    HostListener,\n    inject,\n    InjectionToken,\n    input,\n    Input,\n    NgModule,\n    Output,\n    QueryList,\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, PrimeTemplate, 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 { ChevronDownIcon, TimesIcon } from 'primeng/icons';\nimport { Overlay } from 'primeng/overlay';\nimport { Tree, TreeFilterEvent, TreeNodeSelectEvent, TreeNodeUnSelectEvent } from 'primeng/tree';\nimport { Nullable } from 'primeng/ts-helpers';\nimport {\n    TreeSelectHeaderTemplateContext,\n    TreeSelectItemCheckboxIconTemplateContext,\n    TreeSelectItemTogglerIconTemplateContext,\n    TreeSelectNodeCollapseEvent,\n    TreeSelectNodeExpandEvent,\n    TreeSelectPassThrough,\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-treeSelect, p-treeselect, p-tree-select',\n    standalone: true,\n    imports: [CommonModule, 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]=\"$disabled() ? '' : undefined\"\n                (focus)=\"onInputFocus($event)\"\n                (blur)=\"onInputBlur($event)\"\n                (keydown)=\"onKeyDown($event)\"\n                [attr.tabindex]=\"!$disabled() ? tabindex : -1\"\n                [attr.aria-controls]=\"overlayVisible ? listId : null\"\n                [attr.aria-haspopup]=\"'tree'\"\n                [attr.aria-expanded]=\"overlayVisible ?? false\"\n                [attr.aria-labelledby]=\"ariaLabelledBy\"\n                [attr.aria-label]=\"ariaLabel || (label === 'p-emptylabel' ? undefined : label)\"\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)\" [ngStyle]=\"labelStyle\" [pBind]=\"ptm('label')\">\n                <ng-container *ngIf=\"valueTemplate || _valueTemplate; else defaultValueTemplate\">\n                    <ng-container *ngTemplateOutlet=\"valueTemplate || _valueTemplate; context: { $implicit: value, placeholder: placeholder }\"></ng-container>\n                </ng-container>\n                <ng-template #defaultValueTemplate>\n                    <ng-container *ngIf=\"display === 'comma'; else chipsValueTemplate\">\n                        {{ label || 'empty' }}\n                    </ng-container>\n                    <ng-template #chipsValueTemplate>\n                        <div *ngFor=\"let node of value\" [class]=\"cx('chipItem')\" [pBind]=\"ptm('chipItem')\">\n                            <p-chip [unstyled]=\"unstyled()\" [label]=\"node.label\" [class]=\"cx('pcChip')\" [pt]=\"ptm('pcChip')\" />\n                        </div>\n                        <ng-container *ngIf=\"emptyValue\">{{ placeholder || 'empty' }}</ng-container>\n                    </ng-template>\n                </ng-template>\n            </div>\n        </div>\n        <ng-container *ngIf=\"checkValue() && !$disabled() && showClear\">\n            <svg data-p-icon=\"times\" *ngIf=\"!clearIconTemplate && !_clearIconTemplate\" [class]=\"cx('clearIcon')\" (click)=\"clear($event)\" [pBind]=\"ptm('clearIcon')\" />\n            <span *ngIf=\"clearIconTemplate || clearIconTemplate\" [class]=\"cx('clearIcon')\" (click)=\"clear($event)\" [pBind]=\"ptm('clearIcon')\">\n                <ng-template *ngTemplateOutlet=\"clearIconTemplate || _clearIconTemplate\"></ng-template>\n            </span>\n        </ng-container>\n        <div [class]=\"cx('dropdown')\" role=\"button\" aria-haspopup=\"tree\" [attr.aria-expanded]=\"overlayVisible ?? false\" [attr.aria-label]=\"'treeselect trigger'\" [pBind]=\"ptm('dropdown')\">\n            <svg data-p-icon=\"chevron-down\" *ngIf=\"!triggerIconTemplate && !_triggerIconTemplate && !dropdownIconTemplate && !_dropdownIconTemplate\" [class]=\"cx('dropdownIcon')\" [pBind]=\"ptm('dropdownIcon')\" />\n            <span *ngIf=\"triggerIconTemplate || _triggerIconTemplate || dropdownIconTemplate || _dropdownIconTemplate\" [class]=\"cx('dropdownIcon')\" [pBind]=\"ptm('dropdownIcon')\">\n                <ng-template *ngTemplateOutlet=\"triggerIconTemplate || _triggerIconTemplate || dropdownIconTemplate || _dropdownIconTemplate\"></ng-template>\n            </span>\n        </div>\n        <p-overlay\n            #overlay\n            [hostAttrSelector]=\"$attrSelector\"\n            [(visible)]=\"overlayVisible\"\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)\" [ngStyle]=\"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                    <ng-container *ngTemplateOutlet=\"headerTemplate || _headerTemplate; context: { $implicit: value, options: options }\"></ng-container>\n                    <div [class]=\"cx('treeContainer')\" [ngStyle]=\"{ 'max-height': scrollHeight }\" [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                            [_templateMap]=\"templateMap\"\n                            [loading]=\"loading\"\n                            [filterInputAutoFocus]=\"filterInputAutoFocus\"\n                            [loadingMode]=\"loadingMode\"\n                            [pt]=\"ptm('pcTree')\"\n                            [unstyled]=\"unstyled()\"\n                        >\n                            <ng-container *ngIf=\"emptyTemplate || _emptyTemplate\">\n                                <ng-template #empty>\n                                    <ng-container *ngTemplateOutlet=\"emptyTemplate || _emptyTemplate\"></ng-container>\n                                </ng-template>\n                            </ng-container>\n                            <ng-template #togglericon let-expanded *ngIf=\"itemTogglerIconTemplate || _itemTogglerIconTemplate\">\n                                <ng-container *ngTemplateOutlet=\"itemTogglerIconTemplate || _itemTogglerIconTemplate; context: { $implicit: expanded }\"></ng-container>\n                            </ng-template>\n                            <ng-template #checkboxicon let-selected let-partialSelected=\"partialSelected\" *ngIf=\"itemCheckboxIconTemplate || _itemCheckboxIconTemplate\">\n                                <ng-container *ngTemplateOutlet=\"itemCheckboxIconTemplate || _itemCheckboxIconTemplate; context: { $implicit: selected, partialSelected: partialSelected }\"></ng-container>\n                            </ng-template>\n                            <ng-template #loadingicon *ngIf=\"itemLoadingIconTemplate || _itemLoadingIconTemplate\">\n                                <ng-container *ngTemplateOutlet=\"itemLoadingIconTemplate || _itemLoadingIconTemplate\"></ng-container>\n                            </ng-template>\n                            <ng-template #filtericon *ngIf=\"filterIconTemplate || _filterIconTemplate\">\n                                <ng-container *ngTemplateOutlet=\"filterIconTemplate || _filterIconTemplate\"></ng-container>\n                            </ng-template>\n                        </p-tree>\n                    </div>\n                    <ng-container *ngTemplateOutlet=\"footerTemplate; context: { $implicit: value, options: options }\"></ng-container>\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]': \"cn(cx('root'), containerStyleClass)\",\n        '[style]': \"sx('root')\"\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    onAfterViewChecked(): void {\n        this.bindDirectiveInstance.setAttrs(this.ptms(['host', 'root']));\n    }\n\n    /**\n     * Identifier of the underlying input element.\n     * @group Props\n     */\n    @Input() inputId: string | undefined;\n    /**\n     * Height of the viewport, a scrollbar is defined if height of list exceeds this value.\n     * @group Props\n     */\n    @Input() scrollHeight: 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    @Input({ transform: booleanAttribute }) metaKeySelection: boolean = false;\n    /**\n     * Defines how the selected items are displayed.\n     * @group Props\n     */\n    @Input() display: 'comma' | 'chip' = 'comma';\n    /**\n     * Defines the selection mode.\n     * @group Props\n     */\n    @Input() selectionMode: 'single' | 'multiple' | 'checkbox' = 'single';\n    /**\n     * Index of the element in tabbing order.\n     * @group Props\n     */\n    @Input() tabindex: string | undefined = '0';\n    /**\n     * Defines a string that labels the input for accessibility.\n     * @group Props\n     */\n    @Input() ariaLabel: string | undefined;\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    @Input() ariaLabelledBy: string | undefined;\n    /**\n     * Label to display when there are no selections.\n     * @group Props\n     */\n    @Input() placeholder: string | undefined;\n    /**\n     * Style class of the overlay panel.\n     * @group Props\n     */\n    @Input() panelClass: string | string[] | Set<string> | { [klass: string]: any } | undefined;\n    /**\n     * Inline style of the panel element.\n     * @group Props\n     */\n    @Input() panelStyle: { [klass: string]: any } | null | undefined;\n    /**\n     * Style class of the panel element.\n     * @group Props\n     */\n    @Input() panelStyleClass: string | undefined;\n    /**\n     * Inline style of the container element.\n     * @deprecated since v20.0.0, use `style` instead.\n     * @group Props\n     */\n    @Input() containerStyle: { [klass: string]: any } | null | undefined;\n    /**\n     * Style class of the container element.\n     * @deprecated since v20.0.0, use `class` instead.\n     * @group Props\n     */\n    @Input() containerStyleClass: string | undefined;\n    /**\n     * Inline style of the label element.\n     * @group Props\n     */\n    @Input() labelStyle: { [klass: string]: any } | null | undefined;\n    /**\n     * Style class of the label element.\n     * @group Props\n     */\n    @Input() labelStyleClass: string | undefined;\n    /**\n     * Specifies the options for the overlay.\n     * @group Props\n     */\n    @Input() overlayOptions: OverlayOptions | undefined;\n    /**\n     * Text to display when there are no options available. Defaults to value from PrimeNG locale configuration.\n     * @group Props\n     */\n    @Input() emptyMessage: string = '';\n    /**\n     * When specified, displays an input field to filter the items.\n     * @group Props\n     */\n    @Input({ transform: booleanAttribute }) filter: boolean = false;\n    /**\n     * When filtering is enabled, filterBy decides which field or fields (comma separated) to search against.\n     * @group Props\n     */\n    @Input() filterBy: string = 'label';\n    /**\n     * Mode for filtering valid values are \"lenient\" and \"strict\". Default is lenient.\n     * @group Props\n     */\n    @Input() filterMode: string = 'lenient';\n    /**\n     * Placeholder text to show when filter input is empty.\n     * @group Props\n     */\n    @Input() filterPlaceholder: string | undefined;\n    /**\n     * Locale to use in filtering. The default locale is the host environment's current locale.\n     * @group Props\n     */\n    @Input() filterLocale: string | undefined;\n    /**\n     * Determines whether the filter input should be automatically focused when the component is rendered.\n     * @group Props\n     */\n    @Input({ transform: booleanAttribute }) filterInputAutoFocus: boolean = true;\n    /**\n     * Whether checkbox selections propagate to descendant nodes.\n     * @group Props\n     */\n    @Input({ transform: booleanAttribute }) propagateSelectionDown: boolean = true;\n    /**\n     * Whether checkbox selections propagate to ancestor nodes.\n     * @group Props\n     */\n    @Input({ transform: booleanAttribute }) propagateSelectionUp: boolean = true;\n    /**\n     * When enabled, a clear icon is displayed to clear the value.\n     * @group Props\n     */\n    @Input({ transform: booleanAttribute }) showClear: boolean = false;\n    /**\n     * Clears the filter value when hiding the dropdown.\n     * @group Props\n     */\n    @Input({ transform: booleanAttribute }) resetFilterOnHide: boolean = true;\n    /**\n     * Whether the data should be loaded on demand during scroll.\n     * @group Props\n     */\n    @Input() virtualScroll: boolean | undefined;\n    /**\n     * Height of an item in the list for VirtualScrolling.\n     * @group Props\n     */\n    @Input() virtualScrollItemSize: number | undefined;\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    @Input() virtualScrollOptions: ScrollerOptions | undefined;\n    /**\n     * When present, it specifies that the component should automatically get focus on load.\n     * @group Props\n     */\n    @Input({ transform: booleanAttribute }) autofocus: boolean | undefined;\n    /**\n     * An array of treenodes.\n     * @defaultValue undefined\n     * @group Props\n     */\n    @Input() get options(): TreeNode[] | undefined {\n        return this._options;\n    }\n    set options(options: TreeNode[] | undefined) {\n        this._options = options;\n        this.updateTreeState();\n    }\n    /**\n     * Displays a loader to indicate data load is in progress.\n     * @group Props\n     */\n    @Input({ transform: booleanAttribute }) loading: boolean | undefined;\n    /**\n     * Loading mode display.\n     * @group Props\n     */\n    @Input() loadingMode: 'mask' | 'icon' = 'mask';\n    /**\n     * Specifies the size of the component.\n     * @defaultValue undefined\n     * @group Props\n     */\n    size = input<'large' | 'small' | undefined>();\n    /**\n     * Specifies the input variant of the component.\n     * @defaultValue undefined\n     * @group Props\n     */\n    variant = input<'filled' | 'outlined' | undefined>();\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<HTMLElement | ElementRef | TemplateRef<any> | 'self' | 'body' | null | undefined | any>(undefined);\n    /**\n     * The motion options.\n     * @group Props\n     */\n    motionOptions = input<MotionOptions | undefined>(undefined);\n    /**\n     * Callback to invoke when a node is expanded.\n     * @param {TreeSelectNodeExpandEvent} event - Custom node expand event.\n     * @group Emits\n     */\n    @Output() onNodeExpand: EventEmitter<TreeSelectNodeExpandEvent> = new EventEmitter<TreeSelectNodeExpandEvent>();\n    /**\n     * Callback to invoke when a node is collapsed.\n     * @param {TreeSelectNodeCollapseEvent} event - Custom node collapse event.\n     * @group Emits\n     */\n    @Output() onNodeCollapse: EventEmitter<TreeSelectNodeCollapseEvent> = new EventEmitter<TreeSelectNodeCollapseEvent>();\n    /**\n     * Callback to invoke when the overlay is shown.\n     * @param {Event} event - Browser event.\n     * @group Emits\n     */\n    @Output() onShow: EventEmitter<any> = new EventEmitter<any>();\n    /**\n     * Callback to invoke when the overlay is hidden.\n     * @param {Event} event - Browser event.\n     * @group Emits\n     */\n    @Output() onHide: EventEmitter<Event> = new EventEmitter<Event>();\n    /**\n     * Callback to invoke when input field is cleared.\n     * @group Emits\n     */\n    @Output() onClear: EventEmitter<any> = new EventEmitter<any>();\n    /**\n     * Callback to invoke when data is filtered.\n     * @group Emits\n     */\n    @Output() onFilter: EventEmitter<TreeFilterEvent> = new EventEmitter<TreeFilterEvent>();\n    /**\n     * Callback to invoke when treeselect gets focus.\n     * @param {Event} event - Browser event.\n     * @group Emits\n     */\n    @Output() onFocus: EventEmitter<Event> = new EventEmitter<Event>();\n    /**\n     * Callback to invoke when treeselect loses focus.\n     * @param {Event} event - Browser event.\n     * @group Emits\n     */\n    @Output() onBlur: EventEmitter<Event> = new EventEmitter<Event>();\n    /**\n     * Callback to invoke when a node is unselected.\n     * @param {TreeNodeUnSelectEvent} event - node unselect event.\n     * @group Emits\n     */\n    @Output() onNodeUnselect: EventEmitter<TreeNodeUnSelectEvent> = new EventEmitter<TreeNodeUnSelectEvent>();\n    /**\n     * Callback to invoke when a node is selected.\n     * @param {TreeNodeSelectEvent} event - node select event.\n     * @group Emits\n     */\n    @Output() onNodeSelect: EventEmitter<TreeNodeSelectEvent> = new EventEmitter<TreeNodeSelectEvent>();\n\n    $appendTo = computed(() => this.appendTo() || this.config.overlayAppendTo());\n\n    @ViewChild('focusInput') focusInput: Nullable<ElementRef>;\n\n    @ViewChild('filter') filterViewChild: Nullable<ElementRef>;\n\n    @ViewChild('tree') treeViewChild: Nullable<Tree>;\n\n    @ViewChild('panel') panelEl: Nullable<ElementRef>;\n\n    @ViewChild('overlay') overlayViewChild: Nullable<Overlay>;\n\n    @ViewChild('firstHiddenFocusableEl') firstHiddenFocusableElementOnOverlay: Nullable<ElementRef>;\n\n    @ViewChild('lastHiddenFocusableEl') lastHiddenFocusableElementOnOverlay: Nullable<ElementRef>;\n\n    $variant = computed(() => this.variant() || this.config.inputStyle() || 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     * Custom value template.\n     * @param {TreeSelectValueTemplateContext} context - value context.\n     * @see {@link TreeSelectValueTemplateContext}\n     * @group Templates\n     */\n    @ContentChild('value', { descendants: false }) valueTemplate: Nullable<TemplateRef<TreeSelectValueTemplateContext>>;\n\n    /**\n     * Custom header template.\n     * @param {TreeSelectHeaderTemplateContext} context - header context.\n     * @see {@link TreeSelectHeaderTemplateContext}\n     * @group Templates\n     */\n    @ContentChild('header', { descendants: false }) headerTemplate: Nullable<TemplateRef<TreeSelectHeaderTemplateContext>>;\n\n    /**\n     * Custom empty message template.\n     * @group Templates\n     */\n    @ContentChild('empty', { descendants: false }) emptyTemplate: Nullable<TemplateRef<void>>;\n\n    /**\n     * Custom footer template.\n     * @param {TreeSelectHeaderTemplateContext} context - footer context.\n     * @see {@link TreeSelectHeaderTemplateContext}\n     * @group Templates\n     */\n    @ContentChild('footer', { descendants: false }) footerTemplate: Nullable<TemplateRef<TreeSelectHeaderTemplateContext>>;\n\n    /**\n     * Custom clear icon template.\n     * @group Templates\n     */\n    @ContentChild('clearicon', { descendants: false }) clearIconTemplate: Nullable<TemplateRef<void>>;\n\n    /**\n     * Custom trigger icon template.\n     * @group Templates\n     */\n    @ContentChild('triggericon', { descendants: false }) triggerIconTemplate: Nullable<TemplateRef<void>>;\n\n    /**\n     * Custom dropdown icon template.\n     * @group Templates\n     */\n    @ContentChild('dropdownicon', { descendants: false }) dropdownIconTemplate: Nullable<TemplateRef<void>>;\n\n    /**\n     * Custom filter icon template.\n     * @group Templates\n     */\n    @ContentChild('filtericon', { descendants: false }) filterIconTemplate: Nullable<TemplateRef<void>>;\n\n    /**\n     * Custom close icon template.\n     * @group Templates\n     */\n    @ContentChild('closeicon', { descendants: false }) closeIconTemplate: Nullable<TemplateRef<void>>;\n\n    /**\n     * Custom item toggler icon template.\n     * @param {TreeSelectItemTogglerIconTemplateContext} context - toggler icon context.\n     * @see {@link TreeSelectItemTogglerIconTemplateContext}\n     * @group Templates\n     */\n    @ContentChild('itemtogglericon', { descendants: false }) itemTogglerIconTemplate: Nullable<TemplateRef<TreeSelectItemTogglerIconTemplateContext>>;\n\n    /**\n     * Custom item checkbox icon template.\n     * @param {TreeSelectItemCheckboxIconTemplateContext} context - checkbox icon context.\n     * @see {@link TreeSelectItemCheckboxIconTemplateContext}\n     * @group Templates\n     */\n    @ContentChild('itemcheckboxicon', { descendants: false }) itemCheckboxIconTemplate: Nullable<TemplateRef<TreeSelectItemCheckboxIconTemplateContext>>;\n\n    /**\n     * Custom item loading icon template.\n     * @group Templates\n     */\n    @ContentChild('itemloadingicon', { descendants: false }) itemLoadingIconTemplate: Nullable<TemplateRef<void>>;\n\n    @ContentChildren(PrimeTemplate) templates: Nullable<QueryList<PrimeTemplate>>;\n\n    _valueTemplate: TemplateRef<TreeSelectValueTemplateContext> | undefined;\n\n    _headerTemplate: TemplateRef<TreeSelectHeaderTemplateContext> | undefined;\n\n    _emptyTemplate: TemplateRef<void> | undefined;\n\n    _footerTemplate: TemplateRef<TreeSelectHeaderTemplateContext> | undefined;\n\n    _clearIconTemplate: TemplateRef<void> | undefined;\n\n    _triggerIconTemplate: TemplateRef<void> | undefined;\n\n    _filterIconTemplate: TemplateRef<void> | undefined;\n\n    _closeIconTemplate: TemplateRef<void> | undefined;\n\n    _itemTogglerIconTemplate: TemplateRef<TreeSelectItemTogglerIconTemplateContext> | undefined;\n\n    _itemCheckboxIconTemplate: TemplateRef<TreeSelectItemCheckboxIconTemplateContext> | undefined;\n\n    _itemLoadingIconTemplate: TemplateRef<void> | undefined;\n\n    _dropdownIconTemplate: TemplateRef<void> | undefined;\n\n    focused: Nullable<boolean>;\n\n    overlayVisible: Nullable<boolean>;\n\n    value: any | undefined;\n\n    expandedNodes: any[] = [];\n\n    _options: TreeNode[] | undefined;\n\n    public templateMap: any;\n\n    listId: string = '';\n\n    @HostListener('mousedown', ['$event'])\n    onHostClick(event: MouseEvent) {\n        this.onClick(event);\n    }\n\n    onInit() {\n        this.listId = uuid('pn_id_') + '_list';\n        this.updateTreeState();\n    }\n\n    onAfterContentInit() {\n        if ((this.templates as QueryList<PrimeTemplate>).length) {\n            this.templateMap = {};\n        }\n\n        (this.templates as QueryList<PrimeTemplate>).forEach((item) => {\n            switch (item.getType()) {\n                case 'value':\n                    this._valueTemplate = item.template;\n                    break;\n\n                case 'header':\n                    this._headerTemplate = item.template;\n                    break;\n\n                case 'empty':\n                    this._emptyTemplate = item.template;\n                    break;\n\n                case 'footer':\n                    this._footerTemplate = item.template;\n                    break;\n\n                case 'clearicon':\n                    this._clearIconTemplate = item.template;\n                    break;\n\n                case 'triggericon':\n                    this._triggerIconTemplate = item.template;\n                    break;\n\n                case 'filtericon':\n                    this._filterIconTemplate = item.template;\n                    break;\n\n                case 'closeicon':\n                    this._closeIconTemplate = item.template;\n                    break;\n\n                case 'itemtogglericon':\n                    this._itemTogglerIconTemplate = item.template;\n                    break;\n\n                case 'itemcheckboxicon':\n                    this._itemCheckboxIconTemplate = item.template;\n                    break;\n\n                case 'dropdownicon':\n                    this._dropdownIconTemplate = item.template;\n                    break;\n\n                case 'itemloadingicon':\n                    this._itemLoadingIconTemplate = item.template;\n                    break;\n\n                default: //TODO: @deprecated Use \"value\" template instead\n                    if (item.name) this.templateMap[item.name] = item.template;\n                    else this.valueTemplate = item.template;\n                    break;\n            }\n        });\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 = event;\n        this.onModelChange(this.value);\n        this.cd.markForCheck();\n    }\n\n    onClick(event: any) {\n        if (this.$disabled()) {\n            return;\n        }\n        const section = event.target?.getAttribute?.('data-pc-section');\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.focusInput?.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.focusInput?.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) {\n        const focusableEl = event.relatedTarget === this.focusInput?.nativeElement ? getFirstFocusableElement(this.overlayViewChild?.overlayViewChild?.nativeElement, ':not([data-p-hidden-focusable=\"true\"])') : this.focusInput?.nativeElement;\n\n        focus(focusableEl);\n    }\n\n    onLastHiddenFocus(event) {\n        const focusableEl = event.relatedTarget === this.focusInput?.nativeElement ? getLastFocusableElement(this.overlayViewChild?.overlayViewChild?.nativeElement, ':not([data-p-hidden-focusable=\"true\"])') : this.focusInput?.nativeElement;\n\n        focus(focusableEl);\n    }\n\n    show() {\n        this.overlayVisible = true;\n    }\n\n    hide(event?: any) {\n        this.overlayVisible = false;\n        this.resetFilter();\n\n        this.onHide.emit(event);\n        this.cd.markForCheck();\n    }\n\n    clear(event: Event) {\n        this.value = null;\n        this.resetExpandedNodes();\n        this.resetPartialSelected();\n        this.onModelChange(this.value);\n        this.onClear.emit();\n\n        event.stopPropagation();\n    }\n\n    checkValue() {\n        return this.value !== null && isNotEmpty(this.value);\n    }\n\n    onTabKey(event, 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\n        if (this.value) {\n            if (this.selectionMode === 'single') {\n                let areNodesEqual = (this.value.key && this.value.key === node.key) || this.value == node;\n                index = areNodesEqual ? 0 : -1;\n            } else {\n                for (let i = 0; i < this.value.length; i++) {\n                    let selectedNode = this.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.focusInput?.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 = true;\n        this.onFocus.emit(event);\n    }\n\n    onInputBlur(event: Event) {\n        this.focused = 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 = value;\n        this.updateTreeState();\n        this.cd.markForCheck();\n    }\n\n    get emptyValue() {\n        return !this.value || Object.keys(this.value).length === 0;\n    }\n\n    get emptyOptions() {\n        return !this.options || this.options.length === 0;\n    }\n\n    get label() {\n        let value = this.value || [];\n        return value.length ? value.map((node: TreeNode) => node.label).join(', ') : this.selectionMode === 'single' && this.value ? value.label : this.placeholder;\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":["treeselect_style"],"mappings":"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"}