UNPKG

primeng

Version:

PrimeNG is a premium UI library for Angular featuring a rich set of 90+ components, a theme designer, various theme alternatives such as Material, Bootstrap, Tailwind, premium templates and professional support. In addition, it integrates with PrimeBlock,

1 lines 52 kB
{"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":";;;;;;;;;;;;;;;AAEO,MAAM,0BAA0B,GAAG,IAAI,cAAc,CAAM,4BAA4B,CAAC;;ACE/F,MAAM,aAAa,WAAW;MACxB,KAAK;;;;;;CAMV;AAED,MAAM,OAAO,GAAG;AACZ,IAAA,IAAI,EAAE,iCAAiC;AACvC,IAAA,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,KAAK,CAAC,6BAA6B,EAAE,EAAE,kCAAkC,EAAE,IAAI,EAAE,CAAC;AACpG,IAAA,IAAI,EAAE,0BAA0B;AAChC,IAAA,IAAI,EAAE,0BAA0B;AAChC,IAAA,WAAW,EAAE,kCAAkC;AAC/C,IAAA,KAAK,EAAE,gCAAgC;AACvC,IAAA,cAAc,EAAE,wCAAwC;AACxD,IAAA,kBAAkB,EAAE;CACvB;AAGK,MAAO,sBAAuB,SAAQ,SAAS,CAAA;IACjD,IAAI,GAAG,mBAAmB;IAE1B,KAAK,GAAG,aAAa;IAErB,OAAO,GAAG,OAAO;uGALR,sBAAsB,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA;2GAAtB,sBAAsB,EAAA,CAAA;;2FAAtB,sBAAsB,EAAA,UAAA,EAAA,CAAA;kBADlC;;AASD;;;;;;;;AAQG;IACS;AAAZ,CAAA,UAAY,wBAAwB,EAAA;AAChC;;AAEG;AACH,IAAA,wBAAA,CAAA,MAAA,CAAA,GAAA,qBAA4B;AAC5B;;AAEG;AACH,IAAA,wBAAA,CAAA,SAAA,CAAA,GAAA,6BAAuC;AACvC;;AAEG;AACH,IAAA,wBAAA,CAAA,MAAA,CAAA,GAAA,0BAAiC;AACjC;;AAEG;AACH,IAAA,wBAAA,CAAA,MAAA,CAAA,GAAA,0BAAiC;AACjC;;AAEG;AACH,IAAA,wBAAA,CAAA,aAAA,CAAA,GAAA,kCAAgD;AAChD;;AAEG;AACH,IAAA,wBAAA,CAAA,OAAA,CAAA,GAAA,gCAAwC;AACxC;;AAEG;AACH,IAAA,wBAAA,CAAA,gBAAA,CAAA,GAAA,wCAAyD;AACzD;;AAEG;AACH,IAAA,wBAAA,CAAA,oBAAA,CAAA,GAAA,6CAAkE;AACtE,CAAC,EAjCW,wBAAwB,KAAxB,wBAAwB,GAAA,EAAA,CAAA,CAAA;;ACwE9B,MAAO,qBAAsB,SAAQ,aAAa,CAAA;AACpD,IAAA,IAAI,GAAG,KAAK;wFAAqB;IAEjC,IAAI,GAAG,KAAK,CAAC,SAAS,4EAAI,SAAS,EAAE,gBAAgB,EAAA,CAAG;IAExD,KAAK,GAAG,KAAK,CAAC,CAAC;8EAAC;AAEhB,IAAA,KAAK,GAAG,MAAM,CAAoB,0BAA0B,CAAC;AAE7D,IAAA,eAAe,GAAG,MAAM,CAAC,sBAAsB,CAAC;AAEhD,IAAA,QAAQ,GAAG,QAAQ,CAAC,MAAM,IAAI,CAAC,IAAI,EAAE,EAAE,QAAQ,IAAI,EAAE;iFAAC;AAEtD,IAAA,WAAW,GAAG,QAAQ,CAAC,MAAM,IAAI,CAAC,QAAQ,EAAE,CAAC,MAAM,GAAG,CAAC;oFAAC;IAExD,YAAY,GAAG,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC;AAEzC,IAAA,YAAY,GAAG,QAAQ,CAAC,MAAK;AACzB,QAAA,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,aAAa,EAAE;AAAE,YAAA,OAAO,KAAK;QAC7C,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,EAAE,EAAE,UAAU;QACpC,IAAI,IAAI,KAAK,KAAK;AAAE,YAAA,OAAO,KAAK;QAChC,IAAI,IAAI,KAAK,IAAI;AAAE,YAAA,OAAO,IAAI;QAC9B,OAAO,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,UAAU,EAAE;IACpC,CAAC;qFAAC;AAEF,IAAA,aAAa,GAAG,QAAQ,CAAC,MAAK;AAC1B,QAAA,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE;AAAE,YAAA,OAAO,KAAK;QACrC,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,EAAE,EAAE,WAAW;QACrC,IAAI,IAAI,KAAK,KAAK;AAAE,YAAA,OAAO,KAAK;QAChC,IAAI,IAAI,KAAK,IAAI;AAAE,YAAA,OAAO,IAAI;QAC9B,OAAO,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,WAAW,EAAE;IACrC,CAAC;sFAAC;AAEF,IAAA,YAAY,GAAG,QAAQ,CAAC,MAAM,IAAI,CAAC,KAAK,CAAC,aAAa,EAAE,KAAK,UAAU;qFAAC;AAExE,IAAA,QAAQ,GAAG,QAAQ,CAAC,MAAM,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,EAAG,CAAC;iFAAC;AAE9D,IAAA,eAAe,GAAG,QAAQ,CAAC,MAAM,IAAI,CAAC,KAAK,CAAC,iBAAiB,CAAC,IAAI,CAAC,IAAI,EAAG,CAAC;wFAAC;IAE5E,SAAS,GAAG,QAAQ,CAAC,MAAM,IAAI,CAAC,aAAa,EAAE,IAAI,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,EAAG,CAAC;kFAAC;IAExF,cAAc,GAAG,QAAQ,CAAC,MAAM,IAAI,CAAC,YAAY,EAAE,IAAI,IAAI;uFAAC;IAE5D,YAAY,GAAG,QAAQ,CAAC,MAAM,IAAI,CAAC,QAAQ,EAAE,IAAI,IAAI;qFAAC;IAEtD,mBAAmB,GAAG,QAAQ,CAAC,MAAM,IAAI,CAAC,eAAe,EAAE,IAAI,IAAI;4FAAC;IAEpE,eAAe,GAAG,QAAQ,CAAC,MAAM,IAAI,CAAC,aAAa,EAAE,IAAI,IAAI;wFAAC;IAE9D,aAAa,GAAG,QAAQ,CAAC,MAAM,IAAI,CAAC,SAAS,EAAE,IAAI,IAAI;sFAAC;IAExD,YAAY,GAAG,QAAQ,CAAC,OAAO,IAAI,CAAC,YAAY,EAAE,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;qFAAC;AAE7D,IAAA,qBAAqB,GAAG,QAAQ,CAAC,MAAK;QAClC,MAAM,IAAI,GAAG,IAAI,CAAC,MAAM,EAAE,WAAW,EAAE,IAAI;QAC3C,OAAO,IAAI,CAAC,SAAS,EAAE,IAAI,IAAI,EAAE,MAAM,IAAI,QAAQ,KAAK,IAAI,EAAE,QAAQ,IAAI,UAAU,CAAC;IACzF,CAAC;8FAAC;IAEF,wBAAwB,GAAA;QACpB,OAAO;AACH,YAAA,SAAS,EAAE,IAAI,CAAC,IAAI,EAAE;AACtB,YAAA,QAAQ,EAAE,CAAC,IAAI,CAAC,SAAS,EAAE;AAC3B,YAAA,SAAS,EAAE,IAAI,CAAC,SAAS,EAAE;AAC3B,YAAA,UAAU,EAAE,IAAI,CAAC,QAAQ,EAAE,CAAC,MAAM;YAClC,MAAM,EAAE,IAAI,CAAC;SAChB;IACL;AAEA,IAAA,YAAY,CAAC,GAAW,EAAA;AACpB,QAAA,OAAO,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE;AACjB,YAAA,OAAO,EAAE;AACL,gBAAA,QAAQ,EAAE,CAAC,IAAI,CAAC,SAAS,EAAE;AAC3B,gBAAA,UAAU,EAAE,IAAI,CAAC,YAAY,EAAE;AAC/B,gBAAA,QAAQ,EAAE,IAAI,CAAC,QAAQ,EAAE;AACzB,gBAAA,UAAU,EAAE,IAAI,CAAC,aAAa,EAAE;AAChC,gBAAA,SAAS,EAAE,IAAI,CAAC,SAAS,EAAE;AAC3B,gBAAA,MAAM,EAAE,IAAI,CAAC,QAAQ;AACxB;AACJ,SAAA,CAAC;IACN;IAEA,WAAW,CAAC,KAAY,EAAE,IAAkB,EAAA;AACxC,QAAA,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,EAAE;YACtB;QACJ;QACA,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,KAAK,EAAE,IAAI,CAAC;IACvC;IAEA,aAAa,CAAC,KAAY,EAAE,IAAkB,EAAA;AAC1C,QAAA,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,EAAE;YACtB;QACJ;QACA,KAAK,CAAC,cAAc,EAAE;QACtB,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,KAAK,EAAE,IAAI,CAAC;IACvC;IAEA,UAAU,CAAC,KAAY,EAAE,IAAkB,EAAA;QACvC,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,KAAK,EAAE,IAAI,CAAC;QACpC,KAAK,CAAC,cAAc,EAAE;QACtB,KAAK,CAAC,eAAe,EAAE;IAC3B;uGApGS,qBAAqB,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;AAArB,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,qBAAqB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,0BAAA,EAAA,MAAA,EAAA,EAAA,IAAA,EAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,UAAA,EAAA,MAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,IAAA,EAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,UAAA,EAAA,MAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,KAAA,EAAA,EAAA,iBAAA,EAAA,OAAA,EAAA,UAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,EAAA,SAAA,EAFnB,CAAC,sBAAsB,EAAE,EAAE,OAAO,EAAE,eAAe,EAAE,WAAW,EAAE,qBAAqB,EAAE,CAAC,EAAA,eAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EA/F3F;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA4FT,IAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAKQ,qBAAqB,EAAA,QAAA,EAAA,0BAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,MAAA,EAAA,OAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAlGpB,gBAAgB,EAAA,QAAA,EAAA,oBAAA,EAAA,MAAA,EAAA,CAAA,yBAAA,EAAA,kBAAA,EAAA,0BAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAE,WAAW,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,eAAA,EAAA,QAAA,EAAA,2CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,qDAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,SAAA,EAAA,gBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,eAAA,CAAA,EAAA,QAAA,EAAA,CAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAE,QAAQ,EAAA,QAAA,EAAA,yBAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,WAAA,EAAA,UAAA,EAAA,SAAA,EAAA,YAAA,EAAA,YAAA,EAAA,eAAA,EAAA,aAAA,EAAA,cAAA,EAAA,UAAA,EAAA,WAAA,EAAA,WAAA,EAAA,YAAA,EAAA,SAAA,EAAA,MAAA,CAAA,EAAA,OAAA,EAAA,CAAA,UAAA,EAAA,SAAA,EAAA,QAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAEA,WAAe,EAAA,QAAA,EAAA,mCAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAEC,SAAa,EAAA,QAAA,EAAA,iCAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAE,UAAU,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,IAAA,CAAA,IAAA,EAAA,QAAA,EAAA,SAAA,EAAA,MAAA,EAAA,CAAA,OAAA,CAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,KAAA,EAAA,aAAA,EAAA,EAAA,CAAA,iBAAA,CAAA,IAAA,EAAA,CAAA;;2FAkGpF,qBAAqB,EAAA,UAAA,EAAA,CAAA;kBArGjC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACP,oBAAA,QAAQ,EAAE,0BAA0B;AACpC,oBAAA,UAAU,EAAE,IAAI;AAChB,oBAAA,OAAO,EAAE,CAAC,gBAAgB,EAAE,WAAW,EAAE,QAAQ,EAAEF,WAAe,EAAEC,SAAa,EAAE,UAAU,CAAC;AAC9F,oBAAA,QAAQ,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA4FT,IAAA,CAAA;oBACD,aAAa,EAAE,iBAAiB,CAAC,IAAI;oBACrC,eAAe,EAAE,uBAAuB,CAAC,OAAO;AAChD,oBAAA,SAAS,EAAE,CAAC,sBAAsB,EAAE,EAAE,OAAO,EAAE,eAAe,EAAE,WAAW,EAAA,qBAAuB,EAAE;AACvG,iBAAA;;;AC/FD;;;AAGG;AAmCG,MAAO,iBAAkB,SAAQ,aAA2C,CAAA;IAC9E,aAAa,GAAG,mBAAmB;AAEnC;;;AAGG;AACH,IAAA,KAAK,GAAG,KAAK;yFAAkB;AAC/B;;;AAGG;AACH,IAAA,aAAa,GAAG,KAAK;iGAAyC;AAC9D;;;;AAIG;IACH,WAAW,GAAG,KAAK,CAAC,KAAK,mFAAI,SAAS,EAAE,gBAAgB,EAAA,CAAG;AAC3D;;;;AAIG;IACH,UAAU,GAAG,KAAK,CAAC,IAAI,kFAAI,SAAS,EAAE,gBAAgB,EAAA,CAAG;AACzD;;;AAGG;IACH,GAAG,GAAG,KAAK,CAA4B,EAAE;4EAAC;AAC1C;;;;AAIG;IACH,aAAa,GAAG,KAAK,CAAmC,IAAI;sFAAC;AAC7D;;;;AAIG;IACH,aAAa,GAAG,KAAK,CAAmC,IAAI;sFAAC;AAC7D;;;;AAIG;IACH,YAAY,GAAG,MAAM,EAAoC;AACzD;;;;AAIG;IACH,cAAc,GAAG,MAAM,EAAsC;AAC7D;;;;AAIG;IACH,YAAY,GAAG,MAAM,EAAoC;AACzD;;;;AAIG;IACH,cAAc,GAAG,MAAM,EAAsC;AAE7D;;;;AAIG;IACH,mBAAmB,GAAG,YAAY,CAAmB,aAAa,2FAAI,WAAW,EAAE,KAAK,EAAA,CAAG;AAE3F;;;;AAIG;IACH,sBAAsB,GAAG,YAAY,CAAmB,gBAAgB,8FAAI,WAAW,EAAE,KAAK,EAAA,CAAG;AAEjG;;;;AAIG;IACH,oBAAoB,GAAG,YAAY,CAAmB,cAAc,4FAAI,WAAW,EAAE,KAAK,EAAA,CAAG;AAE7F;;;AAGG;IACH,YAAY,GAAG,YAAY,CAAmB,MAAM,oFAAI,WAAW,EAAE,KAAK,EAAA,CAAG;AAE7E,IAAA,eAAe,GAAG,MAAM,CAAC,sBAAsB,CAAC;IAEhD,qBAAqB,GAAG,MAAM,CAAC,IAAI,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;AAEpD,IAAA,oBAAoB,GAAG,MAAM,CAAC,0BAA0B,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,IAAI,SAAS;AAE1G;;AAEG;IACH,cAAc,GAAG,QAAQ,CAA4B,MAAM,IAAI,CAAC,aAAa,EAAE,IAAI,EAAE;uFAAC;AAEtF;;AAEG;IACH,cAAc,GAAG,QAAQ,CAA4B,MAAM,IAAI,CAAC,aAAa,EAAE,IAAI,EAAE;uFAAC;AAEtF,IAAA,WAAA,GAAA;AACI,QAAA,KAAK,EAAE;QACP,MAAM,CAAC,MAAK;AACR,YAAA,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,EAAE;YAC1B,IAAI,CAAC,KAAK,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE;gBACzB;YACJ;;;YAGA,SAAS,CAAC,MAAM,IAAI,CAAC,mBAAmB,CAAC,KAAK,CAAC,CAAC;AACpD,QAAA,CAAC,CAAC;IACN;IAEA,kBAAkB,GAAA;AACd,QAAA,IAAI,CAAC,qBAAqB,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;IACpE;AAEA,IAAA,IAAI,GAAG,QAAQ,CAAC,MAAK;AACjB,QAAA,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,EAAE;AAC1B,QAAA,OAAO,KAAK,IAAI,KAAK,CAAC,MAAM,GAAG,KAAK,CAAC,CAAC,CAAC,GAAG,IAAI;IAClD,CAAC;6EAAC;AAEF,IAAA,IAAI,GAAG,QAAQ,CAAC,MAAK;AACjB,QAAA,MAAM,CAAC,GAAG,IAAI,CAAC,GAAG,EAAE;AACpB,QAAA,OAAO,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC;IACtC,CAAC;6EAAC;AAEF,IAAA,IAAI,GAAG,QAAQ,CAAC,MAAK;AACjB,QAAA,MAAM,CAAC,GAAG,IAAI,CAAC,GAAG,EAAE;AACpB,QAAA,OAAO,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;IAC9D,CAAC;6EAAC;AAEF,IAAA,kBAAkB,CAAC,KAAmB,EAAA;AAClC,QAAA,OAAO,IAAI,CAAC,YAAY,EAAE,IAAI,IAAI;IACtC;AAEA,IAAA,UAAU,CAAC,IAAkB,EAAA;AACzB,QAAA,MAAM,GAAG,GAAG,IAAI,EAAE,GAAa;AAC/B,QAAA,IAAI,GAAG,IAAI,IAAI,EAAE;AACb,YAAA,OAAO,KAAK;QAChB;QAEA,MAAM,KAAK,GAAG,IAAI,CAAC,cAAc,EAAE,CAAC,GAAG,CAAC;AAExC,QAAA,IAAI,IAAI,CAAC,aAAa,EAAE,KAAK,UAAU,EAAE;AACrC,YAAA,OAAQ,KAAwC,EAAE,OAAO,KAAK,IAAI;QACtE;QAEA,OAAO,KAAK,KAAK,IAAI;IACzB;AAEA,IAAA,iBAAiB,CAAC,IAAkB,EAAA;AAChC,QAAA,IAAI,IAAI,CAAC,aAAa,EAAE,KAAK,UAAU,EAAE;AACrC,YAAA,OAAO,KAAK;QAChB;AAEA,QAAA,MAAM,GAAG,GAAG,IAAI,EAAE,GAAa;AAC/B,QAAA,IAAI,GAAG,IAAI,IAAI,EAAE;AACb,YAAA,OAAO,KAAK;QAChB;QAEA,OAAQ,IAAI,CAAC,cAAc,EAAE,CAAC,GAAG,CAAoC,EAAE,cAAc,KAAK,IAAI;IAClG;AAEA,IAAA,WAAW,CAAC,IAAkB,EAAA;AAC1B,QAAA,MAAM,GAAG,GAAG,IAAI,EAAE,GAAa;AAC/B,QAAA,OAAO,GAAG,IAAI,IAAI,IAAI,IAAI,CAAC,cAAc,EAAE,CAAC,GAAG,CAAC,KAAK,IAAI;IAC7D;AAEA,IAAA,eAAe,CAAC,IAAkB,EAAA;QAC9B,OAAO,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,GAAG,SAAS;IAC1F;AAEA,IAAA,eAAe,CAAC,IAAkB,EAAA;AAC9B,QAAA,OAAO,IAAI,CAAC,aAAa,EAAE,GAAG,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,GAAG,SAAS;IACnE;IAEA,WAAW,CAAC,KAAY,EAAE,IAAkB,EAAA;AACxC,QAAA,MAAM,aAAa,GAAG,IAAI,CAAC,aAAa,EAAE;QAC1C,IAAI,CAAC,aAAa,IAAI,IAAI,CAAC,GAAG,IAAI,IAAI,EAAE;YACpC;QACJ;QAEA,MAAM,UAAU,GAAG,IAAI,CAAC,UAAU,KAAK,IAAI,KAAK,IAAI,CAAC,UAAU,KAAK,KAAK,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;QAC/F,IAAI,CAAC,UAAU,EAAE;YACb;QACJ;AAEA,QAAA,IAAI,aAAa,KAAK,UAAU,EAAE;AAC9B,YAAA,IAAI,CAAC,mBAAmB,CAAC,KAAK,EAAE,IAAI,CAAC;YACrC;QACJ;AAEA,QAAA,MAAM,GAAG,GAAG,IAAI,CAAC,GAAa;AAC9B,QAAA,MAAM,OAAO,GAAG,IAAI,CAAC,cAAc,EAAE;QACrC,MAAM,QAAQ,GAAG,OAAO,CAAC,GAAG,CAAC,KAAK,IAAI;AACtC,QAAA,IAAI,IAA+B;QAEnC,IAAI,QAAQ,EAAE;AACV,YAAA,IAAI,GAAG,aAAa,KAAK,QAAQ,GAAG,EAAE,GAAG,EAAE,GAAG,OAAO,EAAE;AACvD,YAAA,IAAI,aAAa,KAAK,QAAQ,EAAE;AAC5B,gBAAA,OAAO,IAAI,CAAC,GAAG,CAAC;YACpB;AACA,YAAA,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,EAAE,aAAa,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;QAC5D;aAAO;AACH,YAAA,IAAI,GAAG,aAAa,KAAK,QAAQ,GAAG,EAAE,GAAG,EAAE,GAAG,OAAO,EAAE;AACvD,YAAA,IAAI,CAAC,GAAG,CAAC,GAAG,IAAI;AAChB,YAAA,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,EAAE,aAAa,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;QAC1D;AAEA,QAAA,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,IAAI,CAAC;IAChC;IAEQ,mBAAmB,CAAC,KAAY,EAAE,IAAkB,EAAA;AACxD,QAAA,MAAM,GAAG,GAAG,IAAI,CAAC,GAAa;QAC9B,MAAM,IAAI,GAA8B,EAAE,GAAG,IAAI,CAAC,cAAc,EAAE,EAAE;QACpE,MAAM,SAAS,GAAI,IAAI,CAAC,GAAG,CAAoC,EAAE,OAAO,KAAK,IAAI;AAEjF,QAAA,MAAM,cAAc,GAAG,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC;AAC7D,QAAA,KAAK,MAAM,aAAa,IAAI,cAAc,EAAE;YACxC,IAAI,SAAS,EAAE;AACX,gBAAA,IAAI,CAAC,aAAa,CAAC,GAAG,EAAE,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,KAAK,EAAE;YAClE;iBAAO;AACH,gBAAA,OAAO,IAAI,CAAC,aAAa,CAAC;YAC9B;QACJ;QAEA,MAAM,YAAY,GAAG,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,IAAI,EAAE;QACpD,KAAK,MAAM,WAAW,IAAI,CAAC,GAAG,YAAY,CAAC,CAAC,OAAO,EAAE,EAAE;YACnD,MAAM,QAAQ,GAAG,IAAI,CAAC,aAAa,CAAC,WAAW,CAAC;AAChD,YAAA,MAAM,SAAS,GAAG,QAAQ,EAAE,QAAQ,EAAE,GAAG,CAAC,CAAC,KAAK,KAAK,KAAK,CAAC,GAAa,CAAC,IAAI,EAAE;YAC/E,MAAM,UAAU,GAAG,SAAS,CAAC,MAAM,GAAG,CAAC,IAAI,SAAS,CAAC,KAAK,CAAC,CAAC,QAAQ,KAAM,IAAI,CAAC,QAAQ,CAAoC,EAAE,OAAO,KAAK,IAAI,CAAC;YAC9I,MAAM,WAAW,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC,QAAQ,KAAI;AAC5C,gBAAA,MAAM,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAmC;gBAC9D,OAAO,KAAK,EAAE,OAAO,KAAK,IAAI,IAAI,KAAK,EAAE,cAAc,KAAK,IAAI;AACpE,YAAA,CAAC,CAAC;YAEF,IAAI,UAAU,EAAE;AACZ,gBAAA,IAAI,CAAC,WAAW,CAAC,GAAG,EAAE,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,KAAK,EAAE;YAChE;iBAAO,IAAI,WAAW,EAAE;AACpB,gBAAA,IAAI,CAAC,WAAW,CAAC,GAAG,EAAE,OAAO,EAAE,KAAK,EAAE,cAAc,EAAE,IAAI,EAAE;YAChE;iBAAO;AACH,gBAAA,OAAO,IAAI,CAAC,WAAW,CAAC;YAC5B;QACJ;AAEA,QAAA,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,IAAI,CAAC;QAE5B,IAAI,SAAS,EAAE;AACX,YAAA,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,EAAE,aAAa,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;QAC1D;aAAO;AACH,YAAA,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,EAAE,aAAa,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;QAC5D;IACJ;AAEQ,IAAA,aAAa,CAAC,GAAW,EAAE,QAA2C,IAAI,CAAC,KAAK,EAAE,EAAA;QACtF,IAAI,CAAC,KAAK,EAAE;AACR,YAAA,OAAO,IAAI;QACf;AAEA,QAAA,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE;AACtB,YAAA,IAAI,IAAI,CAAC,GAAG,KAAK,GAAG,EAAE;AAClB,gBAAA,OAAO,IAAI;YACf;YAEA,MAAM,KAAK,GAAG,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,aAAa,CAAC,GAAG,EAAE,IAAI,CAAC,QAAQ,CAAC,GAAG,IAAI;YAC3E,IAAI,KAAK,EAAE;AACP,gBAAA,OAAO,KAAK;YAChB;QACJ;AAEA,QAAA,OAAO,IAAI;IACf;AAEQ,IAAA,iBAAiB,CAAC,IAAkB,EAAA;AACxC,QAAA,OAAO,CAAC,IAAI,CAAC,QAAQ,IAAI,EAAE,EAAE,OAAO,CAAC,CAAC,KAAK,KAAK,CAAC,KAAK,CAAC,GAAa,EAAE,GAAG,IAAI,CAAC,iBAAiB,CAAC,KAAK,CAAC,CAAC,CAAC;IAC5G;IAEQ,eAAe,CAAC,GAAW,EAAE,KAAA,GAA2C,IAAI,CAAC,KAAK,EAAE,EAAE,KAAA,GAAkB,EAAE,EAAA;QAC9G,IAAI,CAAC,KAAK,EAAE;AACR,YAAA,OAAO,IAAI;QACf;AAEA,QAAA,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE;AACtB,YAAA,IAAI,IAAI,CAAC,GAAG,KAAK,GAAG,EAAE;AAClB,gBAAA,OAAO,KAAK;YAChB;AAEA,YAAA,MAAM,IAAI,GAAG,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,eAAe,CAAC,GAAG,EAAE,IAAI,CAAC,QAAQ,EAAE,CAAC,GAAG,KAAK,EAAE,IAAI,CAAC,GAAa,CAAC,CAAC,GAAG,IAAI;YAC5G,IAAI,IAAI,EAAE;AACN,gBAAA,OAAO,IAAI;YACf;QACJ;AAEA,QAAA,OAAO,IAAI;IACf;IAEA,YAAY,CAAC,KAAY,EAAE,IAAkB,EAAA;AACzC,QAAA,IAAI,IAAI,CAAC,GAAG,IAAI,IAAI,EAAE;YAClB;QACJ;AAEA,QAAA,MAAM,GAAG,GAAG,IAAI,CAAC,GAAa;QAC9B,MAAM,IAAI,GAA8B,EAAE,GAAG,IAAI,CAAC,cAAc,EAAE,EAAE;AAEpE,QAAA,IAAI,IAAI,CAAC,GAAG,CAAC,EAAE;AACX,YAAA,OAAO,IAAI,CAAC,GAAG,CAAC;AAChB,YAAA,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,EAAE,aAAa,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;QAC1D;aAAO;AACH,YAAA,IAAI,CAAC,GAAG,CAAC,GAAG,IAAI;AAChB,YAAA,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,EAAE,aAAa,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;QAC5D;AAEA,QAAA,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,IAAI,CAAC;IAChC;AAEQ,IAAA,mBAAmB,CAAC,KAAqB,EAAA;QAC7C,MAAM,KAAK,GAAG,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC;AAEtC,QAAA,IAAI,IAAI,CAAC,aAAa,EAAE,IAAI,IAAI,EAAE;YAC9B,MAAM,MAAM,GAAG,IAAI,CAAC,oBAAoB,CAAC,KAAK,CAAC;AAC/C,YAAA,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,cAAc,EAAE,EAAE,MAAM,CAAC,EAAE;AACrD,gBAAA,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,MAAM,CAAC;YAClC;QACJ;AAEA,QAAA,IAAI,IAAI,CAAC,aAAa,EAAE,IAAI,IAAI,EAAE;YAC9B,MAAM,MAAM,GAAG,IAAI,CAAC,oBAAoB,CAAC,KAAK,CAAC;AAC/C,YAAA,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,cAAc,EAAE,EAAE,MAAM,CAAC,EAAE;AACrD,gBAAA,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,MAAM,CAAC;YAClC;QACJ;IACJ;AAEQ,IAAA,YAAY,CAAC,KAAwC,EAAA;QACzD,MAAM,MAAM,GAAmB,EAAE;AACjC,QAAA,MAAM,IAAI,GAAG,CAAC,IAA4B,KAAI;AAC1C,YAAA,IAAI,CAAC,IAAI;gBAAE;AACX,YAAA,KAAK,MAAM,IAAI,IAAI,IAAI,EAAE;AACrB,gBAAA,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC;AACjB,gBAAA,IAAI,IAAI,CAAC,QAAQ,EAAE,MAAM,EAAE;AACvB,oBAAA,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC;gBACvB;YACJ;AACJ,QAAA,CAAC;QACD,IAAI,CAAC,KAAK,CAAC;AACX,QAAA,OAAO,MAAM;IACjB;AAEQ,IAAA,oBAAoB,CAAC,KAAqB,EAAA;QAC9C,MAAM,MAAM,GAA8B,EAAE;AAC5C,QAAA,MAAM,gBAAgB,GAAG,IAAI,CAAC,WAAW,EAAE;AAE3C,QAAA,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE;YACtB,IAAI,CAAC,IAAI,CAAC,kBAAkB,IAAI,IAAI,CAAC,GAAG,IAAI,IAAI;gBAAE;YAElD,MAAM,WAAW,GAAG,CAAC,CAAC,IAAI,CAAC,QAAQ,EAAE,MAAM;AAC3C,YAAA,MAAM,WAAW,GAAG,IAAI,CAAC,WAAW,KAAK,IAAI,KAAK,IAAI,CAAC,WAAW,KAAK,KAAK,IAAI,gBAAgB,CAAC;AAEjG,YAAA,IAAI,WAAW,IAAI,WAAW,EAAE;AAC5B,gBAAA,MAAM,CAAC,IAAI,CAAC,GAAa,CAAC,GAAG,IAAI;YACrC;QACJ;AAEA,QAAA,OAAO,MAAM;IACjB;AAEQ,IAAA,oBAAoB,CAAC,KAAqB,EAAA;QAC9C,MAAM,MAAM,GAA8B,EAAE;AAC5C,QAAA,MAAM,eAAe,GAAG,IAAI,CAAC,UAAU,EAAE;QACzC,MAAM,MAAM,GAAG,IAAI,CAAC,aAAa,EAAE,KAAK,QAAQ;QAChD,MAAM,QAAQ,GAAG,IAAI,CAAC,aAAa,EAAE,KAAK,UAAU;AAEpD,QAAA,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE;YACtB,IAAI,CAAC,IAAI,CAAC,iBAAiB,IAAI,IAAI,CAAC,GAAG,IAAI,IAAI;gBAAE;AAEjD,YAAA,MAAM,UAAU,GAAG,IAAI,CAAC,UAAU,KAAK,IAAI,KAAK,IAAI,CAAC,UAAU,KAAK,KAAK,IAAI,eAAe,CAAC;AAC7F,YAAA,IAAI,CAAC,UAAU;gBAAE;YAEjB,MAAM,CAAC,IAAI,CAAC,GAAa,CAAC,GAAG,QAAQ,GAAG,EAAE,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,KAAK,EAAE,GAAG,IAAI;AAEvF,YAAA,IAAI,MAAM;gBAAE;QAChB;AAEA,QAAA,OAAO,MAAM;IACjB;IAEQ,cAAc,CAAC,OAAkC,EAAE,IAA+B,EAAA;QACtF,MAAM,WAAW,GAAG,MAAM,CAAC,IAAI,CAAC,OAAO,IAAI,EAAE,CAAC;QAC9C,MAAM,QAAQ,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,IAAI,EAAE,CAAC;QAExC,IAAI,WAAW,CAAC,MAAM,KAAK,QAAQ,CAAC,MAAM,EAAE;AACxC,YAAA,OAAO,KAAK;QAChB;AAEA,QAAA,OAAO,WAAW,CAAC,KAAK,CAAC,CAAC,GAAG,KAAK,OAAO,CAAC,GAAG,CAAC,KAAK,IAAI,CAAC,GAAG,CAAC,CAAC;IACjE;uGAtZS,iBAAiB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;2FAAjB,iBAAiB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,2CAAA,EAAA,MAAA,EAAA,EAAA,KAAA,EAAA,EAAA,iBAAA,EAAA,OAAA,EAAA,UAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,aAAA,EAAA,EAAA,iBAAA,EAAA,eAAA,EAAA,UAAA,EAAA,eAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,WAAA,EAAA,EAAA,iBAAA,EAAA,aAAA,EAAA,UAAA,EAAA,aAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,iBAAA,EAAA,YAAA,EAAA,UAAA,EAAA,YAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,GAAA,EAAA,EAAA,iBAAA,EAAA,KAAA,EAAA,UAAA,EAAA,KAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,aAAA,EAAA,EAAA,iBAAA,EAAA,eAAA,EAAA,UAAA,EAAA,eAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,aAAA,EAAA,EAAA,iBAAA,EAAA,eAAA,EAAA,UAAA,EAAA,eAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,EAAA,OAAA,EAAA,EAAA,aAAA,EAAA,qBAAA,EAAA,aAAA,EAAA,qBAAA,EAAA,YAAA,EAAA,cAAA,EAAA,cAAA,EAAA,gBAAA,EAAA,YAAA,EAAA,cAAA,EAAA,cAAA,EAAA,gBAAA,EAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,OAAA,EAAA,YAAA,EAAA,qBAAA,EAAA,QAAA,EAAA,qBAAA,EAAA,QAAA,EAAA,EAAA,EAAA,SAAA,EARf,CAAC,sBAAsB,EAAE,EAAE,OAAO,EAAE,0BAA0B,EAAE,WAAW,EAAE,iBAAiB,EAAE,EAAE,EAAE,OAAO,EAAE,eAAe,EAAE,WAAW,EAAE,iBAAiB,EAAE,CAAC,EAAA,OAAA,EAAA,CAAA,EAAA,YAAA,EAAA,qBAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,aAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,EAAA,EAAA,YAAA,EAAA,wBAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,gBAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,EAAA,EAAA,YAAA,EAAA,sBAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,cAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,EAAA,EAAA,YAAA,EAAA,cAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,MAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,EAAA,eAAA,EAAA,IAAA,EAAA,cAAA,EAAA,CAAA,EAAA,SAAA,EAAAE,IAAA,CAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAtBhK;;;;;;;;;;;;;;;;;;;;KAoBT,EAAA,QAAA,EAAA,IAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EArBS,qBAAqB,uGAAE,UAAU,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,IAAA,EAAA,QAAA,EAAA,SAAA,EAAA,MAAA,EAAA,CAAA,OAAA,CAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,KAAA,EAAA,CAAA;;2FA+BlC,iBAAiB,EAAA,UAAA,EAAA,CAAA;kBAlC7B,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACP,oBAAA,QAAQ,EAAE,2CAA2C;AACrD,oBAAA,UAAU,EAAE,IAAI;AAChB,oBAAA,OAAO,EAAE,CAAC,qBAAqB,EAAE,UAAU,CAAC;AAC5C,oBAAA,QAAQ,EAAE;;;;;;;;;;;;;;;;;;;;AAoBT,IAAA,CAAA;oBACD,eAAe,EAAE,uBAAuB,CAAC,OAAO;oBAChD,SAAS,EAAE,CAAC,sBAAsB,EAAE,EAAE,OAAO,EAAE,0BAA0B,EAAE,WAAW,mBAAmB,EAAE,EAAE,EAAE,OAAO,EAAE,eAAe,EAAE,WAAW,EAAA,iBAAmB,EAAE,CAAC;AAC1K,oBAAA,IAAI,EAAE;AACF,wBAAA,SAAS,EAAE,YAAY;AACvB,wBAAA,uBAAuB,EAAE,QAAQ;AACjC,wBAAA,uBAAuB,EAAE;AAC5B,qBAAA;oBACD,cAAc,EAAE,CAAC,IAAI;AACxB,iBAAA;AAyEwD,SAAA,CAAA,EAAA,cAAA,EAAA,MAAA,EAAA,EAAA,cAAA,EAAA,EAAA,KAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,KAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,KAAA,EAAA,OAAA,EAAA,QAAA,EAAA,KAAA,EAAA,CAAA,EAAA,CAAA,EAAA,aAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,KAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,KAAA,EAAA,eAAA,EAAA,QAAA,EAAA,KAAA,EAAA,CAAA,EAAA,CAAA,EAAA,WAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,KAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,KAAA,EAAA,aAAA,EAAA,QAAA,EAAA,KAAA,EAAA,CAAA,EAAA,CAAA,EAAA,UAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,KAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,KAAA,EAAA,YAAA,EAAA,QAAA,EAAA,KAAA,EAAA,CAAA,EAAA,CAAA,EAAA,GAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,KAAA,EAAA,IAAA,EAAA,CAAA,E