{"version":3,"file":"primeng-organizationchart.mjs","sources":["../../src/organizationchart/organizationchart-token.ts","../../src/organizationchart/style/organizationchartstyle.ts","../../src/organizationchart/organizationchart-node.ts","../../src/organizationchart/organizationchart.ts","../../src/organizationchart/primeng-organizationchart.ts"],"sourcesContent":["import { InjectionToken } from '@angular/core';\n\nexport const ORGANIZATIONCHART_INSTANCE = new InjectionToken<any>('ORGANIZATIONCHART_INSTANCE');\n","import { Injectable } from '@angular/core';\nimport { style } from '@primeuix/styles/organizationchart';\nimport { BaseStyle } from 'primeng/base';\n\nconst extendedStyle = /*css*/ `\n    ${style}\n\n    /* For PrimeNG */\n    .p-organizationchart-node-content {\n        gap: 0.5rem;\n    }\n`;\n\nconst classes = {\n    root: 'p-organizationchart p-component',\n    subtree: ({ root }) => ['p-organizationchart-subtree', { 'p-organizationchart-subtree-root': root }],\n    tree: 'p-organizationchart-tree',\n    node: 'p-organizationchart-node',\n    nodeContent: 'p-organizationchart-node-content',\n    label: 'p-organizationchart-node-label',\n    collapseButton: 'p-organizationchart-node-toggle-button',\n    collapseButtonIcon: 'p-organizationchart-node-toggle-button-icon'\n};\n\n@Injectable()\nexport class OrganizationChartStyle extends BaseStyle {\n    name = 'organizationchart';\n\n    style = extendedStyle;\n\n    classes = classes;\n}\n\n/**\n *\n * OrganizationChart visualizes hierarchical organization data.\n *\n * [Live Demo](https://www.primeng.org/organizationchart)\n *\n * @module organizationchartstyle\n *\n */\nexport enum OrganizationChartClasses {\n    /**\n     * Class name of the root element\n     */\n    root = 'p-organizationchart',\n    /**\n     * Class name of the subtree element\n     */\n    subtree = 'p-organizationchart-subtree',\n    /**\n     * Class name of the tree element\n     */\n    tree = 'p-organizationchart-tree',\n    /**\n     * Class name of the node element\n     */\n    node = 'p-organizationchart-node',\n    /**\n     * Class name of the node content element\n     */\n    nodeContent = 'p-organizationchart-node-content',\n    /**\n     * Class name of the node label element\n     */\n    label = 'p-organizationchart-node-label',\n    /**\n     * Class name of the collapse button element\n     */\n    collapseButton = 'p-organizationchart-node-toggle-button',\n    /**\n     * Class name of the collapse button icon element\n     */\n    collapseButtonIcon = 'p-organizationchart-node-toggle-button-icon'\n}\n\nexport interface OrganizationChartStyle extends BaseStyle {}\n","import { NgTemplateOutlet } from '@angular/common';\nimport { booleanAttribute, ChangeDetectionStrategy, Component, computed, inject, input, ViewEncapsulation } from '@angular/core';\nimport { BaseComponent, PARENT_INSTANCE } from 'primeng/basecomponent';\nimport { BindModule } from 'primeng/bind';\nimport { FormsModule } from '@angular/forms';\nimport { Checkbox } from 'primeng/checkbox';\nimport { OrgChartNode } from 'primeng/types/organizationchart';\nimport { ChevronDown as ChevronDownIcon } from '@primeicons/angular/chevron-down';\nimport { ChevronUp as ChevronUpIcon } from '@primeicons/angular/chevron-up';\nimport type { OrganizationChart } from './organizationchart';\nimport { ORGANIZATIONCHART_INSTANCE } from './organizationchart-token';\nimport { OrganizationChartStyle } from './style/organizationchartstyle';\n\n@Component({\n    selector: '[pOrganizationChartNode]',\n    standalone: true,\n    imports: [NgTemplateOutlet, FormsModule, Checkbox, ChevronDownIcon, ChevronUpIcon, BindModule],\n    template: `\n        @if (node()) {\n            <div\n                [class]=\"cn(cx('node'), node()!.styleClass)\"\n                [style]=\"node()!.style\"\n                [attr.data-selectable]=\"dataSelectable()\"\n                [attr.data-selected]=\"dataSelected()\"\n                [attr.data-partial-selected]=\"dataPartialSelected()\"\n                [attr.data-collapsible]=\"dataCollapsible()\"\n                [attr.data-collapsed]=\"dataCollapsed()\"\n                [attr.tabindex]=\"nodeTabIndex()\"\n                (click)=\"onNodeClick($event, node()!)\"\n                (keydown.enter)=\"onNodeKeyDown($event, node()!)\"\n                (keydown.space)=\"onNodeKeyDown($event, node()!)\"\n                [pBind]=\"getPTOptions('node')\"\n            >\n                <div [class]=\"cx('nodeContent')\" [pBind]=\"ptm('nodeContent')\">\n                    @if (checkboxMode()) {\n                        <p-checkbox\n                            [binary]=\"true\"\n                            [ngModel]=\"selected()\"\n                            [indeterminate]=\"partialSelected()\"\n                            size=\"small\"\n                            [tabindex]=\"-1\"\n                            [readonly]=\"true\"\n                            [unstyled]=\"unstyled()\"\n                            [pt]=\"ptm('pcCheckbox')\"\n                            [attr.data-p-partialchecked]=\"partialSelected()\"\n                        >\n                            @if (chart.checkboxIconTemplate()) {\n                                <ng-template #icon let-checked>\n                                    <ng-container *ngTemplateOutlet=\"chart.checkboxIconTemplate()!; context: { $implicit: checked, partialChecked: partialSelected() }\"></ng-container>\n                                </ng-template>\n                            }\n                        </p-checkbox>\n                    }\n                    @if (!chart.getTemplateForNode(node()!)) {\n                        <span [class]=\"cx('label')\" [pBind]=\"ptm('label')\">{{ node()!.label }}</span>\n                    } @else {\n                        <ng-container *ngTemplateOutlet=\"chart.getTemplateForNode(node()!); context: { $implicit: node() }\"></ng-container>\n                    }\n                </div>\n                @if (isCollapsible()) {\n                    @if (chart.collapseButtonTemplate()) {\n                        <ng-container *ngTemplateOutlet=\"chart.collapseButtonTemplate()!; context: getCollapseButtonContext()\"></ng-container>\n                    } @else {\n                        <button\n                            type=\"button\"\n                            [class]=\"cx('collapseButton')\"\n                            [attr.aria-expanded]=\"!collapsed()\"\n                            [attr.aria-label]=\"toggleButtonAriaLabel()\"\n                            (click)=\"toggleNode($event, node()!)\"\n                            (keydown.enter)=\"toggleNode($event, node()!)\"\n                            (keydown.space)=\"toggleNode($event, node()!)\"\n                            [pBind]=\"getPTOptions('collapseButton')\"\n                        >\n                            <span [class]=\"cx('collapseButtonIcon')\" [pBind]=\"ptm('collapseButtonIcon')\">\n                                @if (!chart.togglerIconTemplate()) {\n                                    @if (collapsed()) {\n                                        <svg data-p-icon=\"chevron-down\" />\n                                    } @else {\n                                        <svg data-p-icon=\"chevron-up\" />\n                                    }\n                                } @else {\n                                    <ng-template *ngTemplateOutlet=\"chart.togglerIconTemplate()!; context: { $implicit: !collapsed() }\"></ng-template>\n                                }\n                            </span>\n                        </button>\n                    }\n                }\n            </div>\n            @if (hasChildren() && !collapsed()) {\n                <ul [class]=\"cx('subtree')\" role=\"group\" [pBind]=\"ptm('subtree')\">\n                    @for (child of children(); track child.key ?? $index) {\n                        <li\n                            [class]=\"cx('tree')\"\n                            role=\"treeitem\"\n                            [attr.data-level]=\"level() + 1\"\n                            [attr.aria-level]=\"level() + 1\"\n                            [attr.aria-expanded]=\"chart.getAriaExpanded(child)\"\n                            [attr.aria-selected]=\"chart.getAriaSelected(child)\"\n                            pOrganizationChartNode\n                            [node]=\"child\"\n                            [level]=\"level() + 1\"\n                            [unstyled]=\"unstyled()\"\n                            [pt]=\"pt\"\n                            [pBind]=\"ptm('tree')\"\n                        ></li>\n                    }\n                </ul>\n            }\n        }\n    `,\n    encapsulation: ViewEncapsulation.None,\n    changeDetection: ChangeDetectionStrategy.Default,\n    providers: [OrganizationChartStyle, { provide: PARENT_INSTANCE, useExisting: OrganizationChartNode }]\n})\nexport class OrganizationChartNode extends BaseComponent {\n    node = input<OrgChartNode<any>>();\n\n    root = input(undefined, { transform: booleanAttribute });\n\n    level = input(1);\n\n    chart = inject<OrganizationChart>(ORGANIZATIONCHART_INSTANCE);\n\n    _componentStyle = inject(OrganizationChartStyle);\n\n    children = computed(() => this.node()?.children ?? []);\n\n    hasChildren = computed(() => this.children().length > 0);\n\n    toggleNodeFn = this.toggleNode.bind(this);\n\n    isSelectable = computed(() => {\n        if (!this.chart.selectionMode()) return false;\n        const flag = this.node()?.selectable;\n        if (flag === false) return false;\n        if (flag === true) return true;\n        return !!this.chart.selectable();\n    });\n\n    isCollapsible = computed(() => {\n        if (!this.hasChildren()) return false;\n        const flag = this.node()?.collapsible;\n        if (flag === false) return false;\n        if (flag === true) return true;\n        return !!this.chart.collapsible();\n    });\n\n    checkboxMode = computed(() => this.chart.selectionMode() === 'checkbox');\n\n    selected = computed(() => this.chart.isSelected(this.node()!));\n\n    partialSelected = computed(() => this.chart.isPartialSelected(this.node()!));\n\n    collapsed = computed(() => this.isCollapsible() && this.chart.isCollapsed(this.node()!));\n\n    dataSelectable = computed(() => this.isSelectable() || null);\n\n    dataSelected = computed(() => this.selected() || null);\n\n    dataPartialSelected = computed(() => this.partialSelected() || null);\n\n    dataCollapsible = computed(() => this.isCollapsible() || null);\n\n    dataCollapsed = computed(() => this.collapsed() || null);\n\n    nodeTabIndex = computed(() => (this.isSelectable() ? 0 : -1));\n\n    toggleButtonAriaLabel = computed(() => {\n        const aria = this.config?.translation?.aria;\n        return this.collapsed() ? (aria?.expand ?? 'Expand') : (aria?.collapse ?? 'Collapse');\n    });\n\n    getCollapseButtonContext() {\n        return {\n            $implicit: this.node(),\n            expanded: !this.collapsed(),\n            collapsed: this.collapsed(),\n            childCount: this.children().length,\n            toggle: this.toggleNodeFn\n        };\n    }\n\n    getPTOptions(key: string) {\n        return this.ptm(key, {\n            context: {\n                expanded: !this.collapsed(),\n                selectable: this.isSelectable(),\n                selected: this.selected(),\n                toggleable: this.isCollapsible(),\n                collapsed: this.collapsed(),\n                active: this.selected()\n            }\n        });\n    }\n\n    onNodeClick(event: Event, node: OrgChartNode) {\n        if (!this.isSelectable()) {\n            return;\n        }\n        this.chart.onNodeClick(event, node);\n    }\n\n    onNodeKeyDown(event: Event, node: OrgChartNode) {\n        if (!this.isSelectable()) {\n            return;\n        }\n        event.preventDefault();\n        this.chart.onNodeClick(event, node);\n    }\n\n    toggleNode(event: Event, node: OrgChartNode) {\n        this.chart.onNodeToggle(event, node);\n        event.preventDefault();\n        event.stopPropagation();\n    }\n}\n","import { booleanAttribute, ChangeDetectionStrategy, Component, computed, contentChild, effect, inject, input, model, NgModule, output, TemplateRef, untracked } from '@angular/core';\nimport { BaseComponent, PARENT_INSTANCE } from 'primeng/basecomponent';\nimport { Bind, BindModule } from 'primeng/bind';\nimport {\n    OrganizationChartCheckboxValue,\n    OrganizationChartNodeCollapseEvent,\n    OrganizationChartNodeExpandEvent,\n    OrganizationChartNodeKeys,\n    OrganizationChartNodeSelectEvent,\n    OrganizationChartNodeUnSelectEvent,\n    OrganizationChartPassThrough,\n    OrganizationChartSelectionMode,\n    OrgChartNode\n} from 'primeng/types/organizationchart';\nimport { OrganizationChartNode } from './organizationchart-node';\nimport { ORGANIZATIONCHART_INSTANCE } from './organizationchart-token';\nimport { OrganizationChartStyle } from './style/organizationchartstyle';\n\n/**\n * OrganizationChart visualizes hierarchical organization data.\n * @group Components\n */\n@Component({\n    selector: 'p-organization-chart, p-organizationchart',\n    standalone: true,\n    imports: [OrganizationChartNode, BindModule],\n    template: `\n        @if (root()) {\n            <ul [class]=\"cx('subtree', { root: true })\" role=\"tree\" [attr.aria-multiselectable]=\"selectionMode() === 'multiple' || selectionMode() === 'checkbox' ? true : undefined\" [pBind]=\"ptm('subtree')\">\n                <li\n                    [class]=\"cx('tree')\"\n                    role=\"treeitem\"\n                    [attr.data-level]=\"1\"\n                    [attr.aria-level]=\"1\"\n                    [attr.aria-expanded]=\"getAriaExpanded(root()!)\"\n                    [attr.aria-selected]=\"getAriaSelected(root()!)\"\n                    pOrganizationChartNode\n                    [node]=\"root()\"\n                    [root]=\"true\"\n                    [level]=\"1\"\n                    [pt]=\"pt\"\n                    [unstyled]=\"unstyled()\"\n                    [pBind]=\"ptm('tree')\"\n                ></li>\n            </ul>\n        }\n    `,\n    changeDetection: ChangeDetectionStrategy.Default,\n    providers: [OrganizationChartStyle, { provide: ORGANIZATIONCHART_INSTANCE, useExisting: OrganizationChart }, { provide: PARENT_INSTANCE, useExisting: OrganizationChart }],\n    host: {\n        '[class]': \"cx('root')\",\n        '[style.--px-gap-x.px]': 'gapX()',\n        '[style.--px-gap-y.px]': 'gapY()'\n    },\n    hostDirectives: [Bind]\n})\nexport class OrganizationChart extends BaseComponent<OrganizationChartPassThrough> {\n    componentName = 'OrganizationChart';\n\n    /**\n     * An array of nested OrgChartNodes.\n     * @group Props\n     */\n    value = input<OrgChartNode[]>();\n    /**\n     * Defines the selection mode.\n     * @group Props\n     */\n    selectionMode = input<OrganizationChartSelectionMode | null>();\n    /**\n     * Whether the nodes can be expanded or toggled.\n     * @defaultValue false\n     * @group Props\n     */\n    collapsible = input(false, { transform: booleanAttribute });\n    /**\n     * Whether the nodes can be selected when a `selectionMode` is defined. Can be overridden per node with `OrgChartNode.selectable`.\n     * @defaultValue true\n     * @group Props\n     */\n    selectable = input(true, { transform: booleanAttribute });\n    /**\n     * Defines the gap between nodes. Can be a single number or a tuple [gapX, gapY].\n     * @group Props\n     */\n    gap = input<number | [number, number]>(40);\n    /**\n     * A map of node keys whose values are `true` for the selected nodes. Two-way bindable.\n     * When omitted, it is seeded from each node's `selectedByDefault` flag.\n     * @group Props\n     */\n    selectionKeys = model<OrganizationChartNodeKeys | null>(null);\n    /**\n     * A map of node keys whose values are `true` for the collapsed nodes. Two-way bindable.\n     * When omitted, it is seeded from each node's `collapsedByDefault` flag.\n     * @group Props\n     */\n    collapsedKeys = model<OrganizationChartNodeKeys | null>(null);\n    /**\n     * Callback to invoke when a node is selected.\n     * @param {OrganizationChartNodeSelectEvent} event - custom node select event.\n     * @group Emits\n     */\n    onNodeSelect = output<OrganizationChartNodeSelectEvent>();\n    /**\n     * Callback to invoke when a node is unselected.\n     * @param {OrganizationChartNodeUnSelectEvent} event - custom node unselect event.\n     * @group Emits\n     */\n    onNodeUnselect = output<OrganizationChartNodeUnSelectEvent>();\n    /**\n     * Callback to invoke when a node is expanded.\n     * @param {OrganizationChartNodeExpandEvent} event - custom node expand event.\n     * @group Emits\n     */\n    onNodeExpand = output<OrganizationChartNodeExpandEvent>();\n    /**\n     * Callback to invoke when a node is collapsed.\n     * @param {OrganizationChartNodeCollapseEvent} event - custom node collapse event.\n     * @group Emits\n     */\n    onNodeCollapse = output<OrganizationChartNodeCollapseEvent>();\n\n    /**\n     * Custom toggler icon template.\n     * @param {Object} context - item data.\n     * @group Templates\n     */\n    togglerIconTemplate = contentChild<TemplateRef<any>>('togglericon', { descendants: false });\n\n    /**\n     * Custom collapse button template.\n     * @param {Object} context - collapse button data.\n     * @group Templates\n     */\n    collapseButtonTemplate = contentChild<TemplateRef<any>>('collapsebutton', { descendants: false });\n\n    /**\n     * Custom checkbox icon template for `checkbox` selection mode.\n     * @param {Object} context - checkbox icon data.\n     * @group Templates\n     */\n    checkboxIconTemplate = contentChild<TemplateRef<any>>('checkboxicon', { descendants: false });\n\n    /**\n     * Custom node template.\n     * @group Templates\n     */\n    nodeTemplate = contentChild<TemplateRef<any>>('node', { descendants: false });\n\n    _componentStyle = inject(OrganizationChartStyle);\n\n    bindDirectiveInstance = inject(Bind, { self: true });\n\n    $pcOrganizationChart = inject(ORGANIZATIONCHART_INSTANCE, { optional: true, skipSelf: true }) ?? undefined;\n\n    /**\n     * The active selection map, normalized so consumers never deal with `null`.\n     */\n    _selectionKeys = computed<OrganizationChartNodeKeys>(() => this.selectionKeys() ?? {});\n\n    /**\n     * The active collapsed map, normalized so consumers never deal with `null`.\n     */\n    _collapsedKeys = computed<OrganizationChartNodeKeys>(() => this.collapsedKeys() ?? {});\n\n    constructor() {\n        super();\n        effect(() => {\n            const value = this.value();\n            if (!value || !value.length) {\n                return;\n            }\n            // Seed the key maps from the deprecated node defaults; reads of the key signals are untracked\n            // so the effect only re-runs on value changes (and never loops when seeding writes the maps).\n            untracked(() => this.syncDefaultKeyState(value));\n        });\n    }\n\n    ngAfterViewChecked() {\n        this.bindDirectiveInstance.setAttrs(this.ptms(['host', 'root']));\n    }\n\n    root = computed(() => {\n        const value = this.value();\n        return value && value.length ? value[0] : null;\n    });\n\n    gapX = computed(() => {\n        const g = this.gap();\n        return Array.isArray(g) ? g[0] : g;\n    });\n\n    gapY = computed(() => {\n        const g = this.gap();\n        return Array.isArray(g) ? (g.length > 1 ? g[1] : g[0]) : g;\n    });\n\n    getTemplateForNode(_node: OrgChartNode): TemplateRef<any> | null {\n        return this.nodeTemplate() ?? null;\n    }\n\n    isSelected(node: OrgChartNode): boolean {\n        const key = node?.key as string;\n        if (key == null) {\n            return false;\n        }\n\n        const value = this._selectionKeys()[key];\n\n        if (this.selectionMode() === 'checkbox') {\n            return (value as OrganizationChartCheckboxValue)?.checked === true;\n        }\n\n        return value === true;\n    }\n\n    isPartialSelected(node: OrgChartNode): boolean {\n        if (this.selectionMode() !== 'checkbox') {\n            return false;\n        }\n\n        const key = node?.key as string;\n        if (key == null) {\n            return false;\n        }\n\n        return (this._selectionKeys()[key] as OrganizationChartCheckboxValue)?.partialChecked === true;\n    }\n\n    isCollapsed(node: OrgChartNode): boolean {\n        const key = node?.key as string;\n        return key != null && this._collapsedKeys()[key] === true;\n    }\n\n    getAriaExpanded(node: OrgChartNode): boolean | undefined {\n        return node.children && node.children.length > 0 ? !this.isCollapsed(node) : undefined;\n    }\n\n    getAriaSelected(node: OrgChartNode): boolean | undefined {\n        return this.selectionMode() ? this.isSelected(node) : undefined;\n    }\n\n    onNodeClick(event: Event, node: OrgChartNode) {\n        const selectionMode = this.selectionMode();\n        if (!selectionMode || node.key == null) {\n            return;\n        }\n\n        const selectable = node.selectable === true || (node.selectable !== false && this.selectable());\n        if (!selectable) {\n            return;\n        }\n\n        if (selectionMode === 'checkbox') {\n            this.onCheckboxNodeClick(event, node);\n            return;\n        }\n\n        const key = node.key as string;\n        const current = this._selectionKeys();\n        const selected = current[key] === true;\n        let next: OrganizationChartNodeKeys;\n\n        if (selected) {\n            next = selectionMode === 'single' ? {} : { ...current };\n            if (selectionMode !== 'single') {\n                delete next[key];\n            }\n            this.onNodeUnselect.emit({ originalEvent: event, node });\n        } else {\n            next = selectionMode === 'single' ? {} : { ...current };\n            next[key] = true;\n            this.onNodeSelect.emit({ originalEvent: event, node });\n        }\n\n        this.selectionKeys.set(next);\n    }\n\n    private onCheckboxNodeClick(event: Event, node: OrgChartNode) {\n        const key = node.key as string;\n        const next: OrganizationChartNodeKeys = { ...this._selectionKeys() };\n        const selecting = (next[key] as OrganizationChartCheckboxValue)?.checked !== true;\n\n        const descendantKeys = [key, ...this.getDescendantKeys(node)];\n        for (const descendantKey of descendantKeys) {\n            if (selecting) {\n                next[descendantKey] = { checked: true, partialChecked: false };\n            } else {\n                delete next[descendantKey];\n            }\n        }\n\n        const ancestorKeys = this.getAncestorKeys(key) ?? [];\n        for (const ancestorKey of [...ancestorKeys].reverse()) {\n            const ancestor = this.findNodeByKey(ancestorKey);\n            const childKeys = ancestor?.children?.map((child) => child.key as string) ?? [];\n            const allChecked = childKeys.length > 0 && childKeys.every((childKey) => (next[childKey] as OrganizationChartCheckboxValue)?.checked === true);\n            const someChecked = childKeys.some((childKey) => {\n                const value = next[childKey] as OrganizationChartCheckboxValue;\n                return value?.checked === true || value?.partialChecked === true;\n            });\n\n            if (allChecked) {\n                next[ancestorKey] = { checked: true, partialChecked: false };\n            } else if (someChecked) {\n                next[ancestorKey] = { checked: false, partialChecked: true };\n            } else {\n                delete next[ancestorKey];\n            }\n        }\n\n        this.selectionKeys.set(next);\n\n        if (selecting) {\n            this.onNodeSelect.emit({ originalEvent: event, node });\n        } else {\n            this.onNodeUnselect.emit({ originalEvent: event, node });\n        }\n    }\n\n    private findNodeByKey(key: string, nodes: OrgChartNode[] | undefined | null = this.value()): OrgChartNode | null {\n        if (!nodes) {\n            return null;\n        }\n\n        for (const node of nodes) {\n            if (node.key === key) {\n                return node;\n            }\n\n            const match = node.children ? this.findNodeByKey(key, node.children) : null;\n            if (match) {\n                return match;\n            }\n        }\n\n        return null;\n    }\n\n    private getDescendantKeys(node: OrgChartNode): string[] {\n        return (node.children ?? []).flatMap((child) => [child.key as string, ...this.getDescendantKeys(child)]);\n    }\n\n    private getAncestorKeys(key: string, nodes: OrgChartNode[] | undefined | null = this.value(), trail: string[] = []): string[] | null {\n        if (!nodes) {\n            return null;\n        }\n\n        for (const node of nodes) {\n            if (node.key === key) {\n                return trail;\n            }\n\n            const path = node.children ? this.getAncestorKeys(key, node.children, [...trail, node.key as string]) : null;\n            if (path) {\n                return path;\n            }\n        }\n\n        return null;\n    }\n\n    onNodeToggle(event: Event, node: OrgChartNode) {\n        if (node.key == null) {\n            return;\n        }\n\n        const key = node.key as string;\n        const next: OrganizationChartNodeKeys = { ...this._collapsedKeys() };\n\n        if (next[key]) {\n            delete next[key];\n            this.onNodeExpand.emit({ originalEvent: event, node });\n        } else {\n            next[key] = true;\n            this.onNodeCollapse.emit({ originalEvent: event, node });\n        }\n\n        this.collapsedKeys.set(next);\n    }\n\n    private syncDefaultKeyState(value: OrgChartNode[]) {\n        const nodes = this.flattenNodes(value);\n\n        if (this.collapsedKeys() == null) {\n            const seeded = this.resolveCollapsedKeys(nodes);\n            if (!this.isSameKeyState(this._collapsedKeys(), seeded)) {\n                this.collapsedKeys.set(seeded);\n            }\n        }\n\n        if (this.selectionKeys() == null) {\n            const seeded = this.resolveSelectionKeys(nodes);\n            if (!this.isSameKeyState(this._selectionKeys(), seeded)) {\n                this.selectionKeys.set(seeded);\n            }\n        }\n    }\n\n    private flattenNodes(nodes: OrgChartNode[] | undefined | null): OrgChartNode[] {\n        const result: OrgChartNode[] = [];\n        const walk = (list?: OrgChartNode[] | null) => {\n            if (!list) return;\n            for (const node of list) {\n                result.push(node);\n                if (node.children?.length) {\n                    walk(node.children);\n                }\n            }\n        };\n        walk(nodes);\n        return result;\n    }\n\n    private resolveCollapsedKeys(nodes: OrgChartNode[]): OrganizationChartNodeKeys {\n        const seeded: OrganizationChartNodeKeys = {};\n        const chartCollapsible = this.collapsible();\n\n        for (const node of nodes) {\n            if (!node.collapsedByDefault || node.key == null) continue;\n\n            const hasChildren = !!node.children?.length;\n            const collapsible = node.collapsible === true || (node.collapsible !== false && chartCollapsible);\n\n            if (hasChildren && collapsible) {\n                seeded[node.key as string] = true;\n            }\n        }\n\n        return seeded;\n    }\n\n    private resolveSelectionKeys(nodes: OrgChartNode[]): OrganizationChartNodeKeys {\n        const seeded: OrganizationChartNodeKeys = {};\n        const chartSelectable = this.selectable();\n        const single = this.selectionMode() === 'single';\n        const checkbox = this.selectionMode() === 'checkbox';\n\n        for (const node of nodes) {\n            if (!node.selectedByDefault || node.key == null) continue;\n\n            const selectable = node.selectable === true || (node.selectable !== false && chartSelectable);\n            if (!selectable) continue;\n\n            seeded[node.key as string] = checkbox ? { checked: true, partialChecked: false } : true;\n\n            if (single) break;\n        }\n\n        return seeded;\n    }\n\n    private isSameKeyState(current: OrganizationChartNodeKeys, next: OrganizationChartNodeKeys): boolean {\n        const currentKeys = Object.keys(current || {});\n        const nextKeys = Object.keys(next || {});\n\n        if (currentKeys.length !== nextKeys.length) {\n            return false;\n        }\n\n        return currentKeys.every((key) => current[key] === next[key]);\n    }\n}\n\n@NgModule({\n    imports: [OrganizationChart],\n    exports: [OrganizationChart]\n})\nexport class OrganizationChartModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":["ChevronDownIcon","ChevronUpIcon","i2","i1"],"mappings":"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"}