@aquera/nile-elements 0.1.35-beta-1.5 → 0.1.35-beta-1.6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (129) hide show
  1. package/README.md +4 -0
  2. package/demo/filenames.txt +1 -1
  3. package/dist/index.cjs.js +1 -1
  4. package/dist/index.esm.js +1 -1
  5. package/dist/nile-avatar/nile-avatar.test.cjs.js +1 -1
  6. package/dist/nile-avatar/nile-avatar.test.cjs.js.map +1 -1
  7. package/dist/nile-avatar/nile-avatar.test.esm.js +1 -1
  8. package/dist/nile-badge/index.cjs.js +1 -1
  9. package/dist/nile-badge/index.esm.js +1 -1
  10. package/dist/nile-badge/nile-badge.cjs.js +1 -1
  11. package/dist/nile-badge/nile-badge.cjs.js.map +1 -1
  12. package/dist/nile-badge/nile-badge.esm.js +1 -1
  13. package/dist/nile-badge/nile-badge.test.cjs.js +1 -1
  14. package/dist/nile-badge/nile-badge.test.cjs.js.map +1 -1
  15. package/dist/nile-badge/nile-badge.test.esm.js +1 -1
  16. package/dist/nile-button/index.cjs.js +1 -1
  17. package/dist/nile-button/index.esm.js +1 -1
  18. package/dist/nile-button/nile-button.cjs.js +1 -1
  19. package/dist/nile-button/nile-button.cjs.js.map +1 -1
  20. package/dist/nile-button/nile-button.esm.js +1 -1
  21. package/dist/nile-button/nile-button.test.cjs.js +1 -1
  22. package/dist/nile-button/nile-button.test.cjs.js.map +1 -1
  23. package/dist/nile-button/nile-button.test.esm.js +1 -1
  24. package/dist/nile-calendar/nile-calendar.test.cjs.js +1 -1
  25. package/dist/nile-calendar/nile-calendar.test.cjs.js.map +1 -1
  26. package/dist/nile-calendar/nile-calendar.test.esm.js +1 -1
  27. package/dist/nile-chip/nile-chip.test.cjs.js +1 -1
  28. package/dist/nile-chip/nile-chip.test.cjs.js.map +1 -1
  29. package/dist/nile-chip/nile-chip.test.esm.js +1 -1
  30. package/dist/nile-dialog/index.cjs.js +1 -1
  31. package/dist/nile-dialog/index.esm.js +1 -1
  32. package/dist/nile-dialog/nile-dialog.cjs.js +1 -1
  33. package/dist/nile-dialog/nile-dialog.cjs.js.map +1 -1
  34. package/dist/nile-dialog/nile-dialog.esm.js +1 -1
  35. package/dist/nile-dialog/nile-dialog.test.cjs.js +1 -1
  36. package/dist/nile-dialog/nile-dialog.test.cjs.js.map +1 -1
  37. package/dist/nile-dialog/nile-dialog.test.esm.js +1 -1
  38. package/dist/nile-drawer/index.cjs.js +1 -1
  39. package/dist/nile-drawer/index.esm.js +1 -1
  40. package/dist/nile-drawer/nile-drawer.cjs.js +1 -1
  41. package/dist/nile-drawer/nile-drawer.cjs.js.map +1 -1
  42. package/dist/nile-drawer/nile-drawer.esm.js +2 -2
  43. package/dist/nile-drawer/nile-drawer.test.cjs.js +1 -1
  44. package/dist/nile-drawer/nile-drawer.test.cjs.js.map +1 -1
  45. package/dist/nile-drawer/nile-drawer.test.esm.js +1 -1
  46. package/dist/nile-icon/icons/svg/chevron-up.cjs.js +1 -1
  47. package/dist/nile-icon/icons/svg/chevron-up.cjs.js.map +1 -1
  48. package/dist/nile-icon/icons/svg/chevron-up.esm.js +1 -1
  49. package/dist/nile-icon/icons/svg/index.cjs.js +1 -1
  50. package/dist/nile-icon/icons/svg/index.esm.js +1 -1
  51. package/dist/nile-icon/icons/svg/refresh.cjs.js +1 -1
  52. package/dist/nile-icon/icons/svg/refresh.cjs.js.map +1 -1
  53. package/dist/nile-icon/icons/svg/refresh.esm.js +1 -1
  54. package/dist/nile-icon/index.cjs.js +1 -1
  55. package/dist/nile-icon/index.cjs.js.map +1 -1
  56. package/dist/nile-icon/index.esm.js +1 -1
  57. package/dist/nile-icon/nile-icon.test.cjs.js +1 -1
  58. package/dist/nile-icon/nile-icon.test.cjs.js.map +1 -1
  59. package/dist/nile-icon/nile-icon.test.esm.js +1 -1
  60. package/dist/nile-icon-button/index.cjs.js +1 -1
  61. package/dist/nile-icon-button/index.esm.js +1 -1
  62. package/dist/nile-icon-button/nile-icon-button.cjs.js +1 -1
  63. package/dist/nile-icon-button/nile-icon-button.cjs.js.map +1 -1
  64. package/dist/nile-icon-button/nile-icon-button.esm.js +1 -1
  65. package/dist/nile-input/index.cjs.js +1 -1
  66. package/dist/nile-input/index.esm.js +1 -1
  67. package/dist/nile-input/nile-input.cjs.js +1 -1
  68. package/dist/nile-input/nile-input.cjs.js.map +1 -1
  69. package/dist/nile-input/nile-input.esm.js +1 -1
  70. package/dist/nile-input/nile-input.test.cjs.js +1 -1
  71. package/dist/nile-input/nile-input.test.cjs.js.map +1 -1
  72. package/dist/nile-input/nile-input.test.esm.js +1 -1
  73. package/dist/nile-menu-item/index.cjs.js +1 -1
  74. package/dist/nile-menu-item/index.esm.js +1 -1
  75. package/dist/nile-menu-item/nile-menu-item.cjs.js +1 -1
  76. package/dist/nile-menu-item/nile-menu-item.cjs.js.map +1 -1
  77. package/dist/nile-menu-item/nile-menu-item.esm.js +1 -1
  78. package/dist/nile-option/index.cjs.js +1 -1
  79. package/dist/nile-option/index.esm.js +1 -1
  80. package/dist/nile-option/nile-option.cjs.js +1 -1
  81. package/dist/nile-option/nile-option.cjs.js.map +1 -1
  82. package/dist/nile-option/nile-option.esm.js +1 -1
  83. package/dist/nile-select/index.cjs.js +1 -1
  84. package/dist/nile-select/index.esm.js +1 -1
  85. package/dist/nile-select/nile-select.cjs.js +1 -1
  86. package/dist/nile-select/nile-select.cjs.js.map +1 -1
  87. package/dist/nile-select/nile-select.esm.js +1 -1
  88. package/dist/nile-select/nile-select.test.cjs.js +1 -1
  89. package/dist/nile-select/nile-select.test.cjs.js.map +1 -1
  90. package/dist/nile-select/nile-select.test.esm.js +1 -1
  91. package/dist/nile-tab/index.cjs.js +1 -1
  92. package/dist/nile-tab/index.esm.js +1 -1
  93. package/dist/nile-tab/nile-tab.cjs.js +1 -1
  94. package/dist/nile-tab/nile-tab.cjs.js.map +1 -1
  95. package/dist/nile-tab/nile-tab.esm.js +1 -1
  96. package/dist/nile-tab-group/index.cjs.js +1 -1
  97. package/dist/nile-tab-group/index.esm.js +1 -1
  98. package/dist/nile-tab-group/nile-tab-group.cjs.js +1 -1
  99. package/dist/nile-tab-group/nile-tab-group.cjs.js.map +1 -1
  100. package/dist/nile-tab-group/nile-tab-group.esm.js +1 -1
  101. package/dist/nile-tab-group/nile-tab-group.test.cjs.js +1 -1
  102. package/dist/nile-tab-group/nile-tab-group.test.cjs.js.map +1 -1
  103. package/dist/nile-tab-group/nile-tab-group.test.esm.js +1 -1
  104. package/dist/nile-tag/index.cjs.js +1 -1
  105. package/dist/nile-tag/index.esm.js +1 -1
  106. package/dist/nile-tag/nile-tag.cjs.js +1 -1
  107. package/dist/nile-tag/nile-tag.cjs.js.map +1 -1
  108. package/dist/nile-tag/nile-tag.esm.js +1 -1
  109. package/dist/nile-toast/index.cjs.js +1 -1
  110. package/dist/nile-toast/index.esm.js +1 -1
  111. package/dist/nile-toast/nile-toast.cjs.js +1 -1
  112. package/dist/nile-toast/nile-toast.cjs.js.map +1 -1
  113. package/dist/nile-toast/nile-toast.esm.js +1 -1
  114. package/dist/nile-tree/index.cjs.js +1 -1
  115. package/dist/nile-tree/index.esm.js +1 -1
  116. package/dist/nile-tree/nile-tree.cjs.js +1 -1
  117. package/dist/nile-tree/nile-tree.cjs.js.map +1 -1
  118. package/dist/nile-tree/nile-tree.esm.js +1 -1
  119. package/dist/nile-tree-item/index.cjs.js +1 -1
  120. package/dist/nile-tree-item/index.esm.js +1 -1
  121. package/dist/nile-tree-item/nile-tree-item.cjs.js +1 -1
  122. package/dist/nile-tree-item/nile-tree-item.cjs.js.map +1 -1
  123. package/dist/nile-tree-item/nile-tree-item.esm.js +4 -4
  124. package/dist/src/nile-icon/icons/svg/index.d.ts +2 -0
  125. package/dist/src/nile-icon/icons/svg/index.js +2 -0
  126. package/dist/src/nile-icon/icons/svg/index.js.map +1 -1
  127. package/dist/tsconfig.tsbuildinfo +1 -1
  128. package/package.json +1 -1
  129. package/src/nile-icon/icons/svg/index.ts +2 -0
@@ -1 +1 @@
1
- {"version":3,"file":"nile-tree.cjs.js","sources":["../../../src/nile-tree/nile-tree.ts"],"sourcesContent":["/**\n * Copyright Aquera Inc 2023\n *\n * This source code is licensed under the BSD-3-Clause license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nimport {LitElement, CSSResultArray, TemplateResult} from 'lit';\nimport {styles} from './nile-tree.css';\nimport NileElement from '../internal/nile-element';\nimport { clamp } from '../internal/math';\nimport { customElement, property, query } from 'lit/decorators.js';\nimport { html } from 'lit';\nimport { watch } from '../internal/watch';\nimport NileTreeItem from '../nile-tree-item/nile-tree-item';\nimport type { CSSResultGroup } from 'lit';\n\nfunction syncCheckboxes(changedTreeItem: NileTreeItem, initialSync = false) {\n function syncParentItem(treeItem: NileTreeItem) {\n const children = treeItem.getChildrenItems({ includeDisabled: false });\n\n if (children.length) {\n const allChecked = children.every(item => item.selected);\n const allUnchecked = children.every(item => !item.selected && !item.indeterminate);\n\n treeItem.selected = allChecked;\n treeItem.indeterminate = !allChecked && !allUnchecked;\n }\n }\n\n function syncAncestors(treeItem: NileTreeItem) {\n const parentItem: NileTreeItem | null = treeItem.parentElement as NileTreeItem;\n\n if (NileTreeItem.isTreeItem(parentItem)) {\n syncParentItem(parentItem);\n syncAncestors(parentItem);\n }\n }\n\n function syncDescendants(treeItem: NileTreeItem) {\n for (const childItem of treeItem.getChildrenItems()) {\n childItem.selected = initialSync\n ? treeItem.selected || childItem.selected\n : !childItem.disabled && treeItem.selected;\n\n syncDescendants(childItem);\n }\n\n if (initialSync) {\n syncParentItem(treeItem);\n }\n }\n\n syncDescendants(changedTreeItem);\n syncAncestors(changedTreeItem);\n}\n\n\n/**\n * @summary Trees allow you to display a hierarchical list of selectable [tree items](/components/tree-item). Items with children can be expanded and collapsed as desired by the user.\n *\n * @event {{ selection: NileTreeItem[] }} nile-selection-change - Emitted when a tree item is selected or deselected.\n *\n * @slot - The default slot.\n * @slot expand-icon - The icon to show when the tree item is expanded. Works best with `<nile-icon>`.\n * @slot collapse-icon - The icon to show when the tree item is collapsed. Works best with `<nile-icon>`.\n *\n * @csspart base - The component's base wrapper.\n *\n * @cssproperty [--indent-size=var(--nile-spacing-medium)] - The size of the indentation for nested items.\n * @cssproperty [--indent-guide-color=var(--nile-color-neutral-200)] - The color of the indentation line.\n * @cssproperty [--indent-guide-offset=0] - The amount of vertical spacing to leave between the top and bottom of the\n * indentation line's starting position.\n * @cssproperty [--indent-guide-style=solid] - The style of the indentation line, e.g. solid, dotted, dashed.\n * @cssproperty [--indent-guide-width=0] - The width of the indentation line.\n */\n\n@customElement('nile-tree')\nexport class NileTree extends NileElement {\n\n\tstatic styles: CSSResultGroup = styles;\n\n @query('slot:not([name])') defaultSlot: HTMLSlotElement;\n @query('slot[name=expand-icon]') expandedIconSlot: HTMLSlotElement;\n @query('slot[name=collapse-icon]') collapsedIconSlot: HTMLSlotElement;\n\n /**\n * The selection behavior of the tree. Single selection allows only one node to be selected at a time. Multiple\n * displays checkboxes and allows more than one node to be selected. Leaf allows only leaf nodes to be selected.\n */\n @property() selection: 'single' | 'multiple' | 'leaf' = 'leaf';\n\n //\n // A collection of all the items in the tree, in the order they appear. The collection is live, meaning it is\n // automatically updated when the underlying document is changed.\n //\n private lastFocusedItem: NileTreeItem;\n private mutationObserver: MutationObserver;\n private clickTarget: NileTreeItem | null = null;\n\n async connectedCallback() {\n super.connectedCallback();\n this.handleTreeChanged = this.handleTreeChanged.bind(this);\n this.handleFocusIn = this.handleFocusIn.bind(this);\n this.handleFocusOut = this.handleFocusOut.bind(this);\n\n this.setAttribute('role', 'tree');\n this.setAttribute('tabindex', '0');\n\n this.addEventListener('focusin', this.handleFocusIn);\n this.addEventListener('focusout', this.handleFocusOut);\n this.addEventListener('nile-lazy-change', this.handleSlotChange);\n\n await this.updateComplete;\n\n this.mutationObserver = new MutationObserver(this.handleTreeChanged);\n this.mutationObserver.observe(this, { childList: true, subtree: true });\n }\n\n disconnectedCallback() {\n super.disconnectedCallback();\n\n this.mutationObserver.disconnect();\n\n this.removeEventListener('focusin', this.handleFocusIn);\n this.removeEventListener('focusout', this.handleFocusOut);\n this.removeEventListener('nile-lazy-change', this.handleSlotChange);\n }\n\n // Generates a clone of the expand icon element to use for each tree item\n private getExpandButtonIcon(status: 'expand' | 'collapse') {\n const slot = status === 'expand' ? this.expandedIconSlot : this.collapsedIconSlot;\n const icon = slot.assignedElements({ flatten: true })[0] as HTMLElement;\n\n // Clone it, remove ids, and slot it\n if (icon) {\n const clone = icon.cloneNode(true) as HTMLElement;\n [clone, ...clone.querySelectorAll('[id]')].forEach(el => el.removeAttribute('id'));\n clone.setAttribute('data-default', '');\n clone.slot = `${status}-icon`;\n\n return clone;\n }\n\n return null;\n }\n\n // Initializes new items by setting the `selectable` property and the expanded/collapsed icons if any\n private initTreeItem = (item: NileTreeItem) => {\n item.selectable = this.selection === 'multiple';\n\n ['expand', 'collapse']\n .filter(status => !!this.querySelector(`[slot=\"${status}-icon\"]`))\n .forEach((status: 'expand' | 'collapse') => {\n const existingIcon = item.querySelector(`[slot=\"${status}-icon\"]`);\n\n if (existingIcon === null) {\n // No separator exists, add one\n item.append(this.getExpandButtonIcon(status)!);\n } else if (existingIcon.hasAttribute('data-default')) {\n // A default separator exists, replace it\n existingIcon.replaceWith(this.getExpandButtonIcon(status)!);\n } else {\n // The user provided a custom icon, leave it alone\n }\n });\n };\n\n private handleTreeChanged(mutations: MutationRecord[]) {\n for (const mutation of mutations) {\n const addedNodes: NileTreeItem[] = [...mutation.addedNodes].filter(NileTreeItem.isTreeItem) as NileTreeItem[];\n const removedNodes = [...mutation.removedNodes].filter(NileTreeItem.isTreeItem) as NileTreeItem[];\n\n addedNodes.forEach(this.initTreeItem);\n\n // If the focused item has been removed form the DOM, move the focus to the first focusable item\n if (removedNodes.includes(this.lastFocusedItem)) {\n this.focusItem(this.getFocusableItems()[0]);\n }\n }\n }\n\n private syncTreeItems(selectedItem: NileTreeItem) {\n const items = this.getAllTreeItems();\n\n if (this.selection === 'multiple') {\n syncCheckboxes(selectedItem);\n } else {\n for (const item of items) {\n if (item !== selectedItem) {\n item.selected = false;\n }\n }\n }\n }\n\n private selectItem(selectedItem: NileTreeItem) {\n const previousSelection = [...this.selectedItems];\n\n if (this.selection === 'multiple') {\n selectedItem.selected = !selectedItem.selected;\n if (selectedItem.lazy) {\n selectedItem.expanded = true;\n }\n this.syncTreeItems(selectedItem);\n } else if (this.selection === 'single' || selectedItem.isLeaf) {\n selectedItem.expanded = !selectedItem.expanded;\n selectedItem.selected = true;\n\n this.syncTreeItems(selectedItem);\n } else if (this.selection === 'leaf') {\n selectedItem.expanded = !selectedItem.expanded;\n }\n\n const nextSelection = this.selectedItems;\n\n if (\n previousSelection.length !== nextSelection.length ||\n nextSelection.some(item => !previousSelection.includes(item))\n ) {\n // Wait for the tree items' DOM to update before emitting\n Promise.all(nextSelection.map(el => el.updateComplete)).then(() => {\n this.emit('nile-selection-change', { detail: { selection: nextSelection } });\n });\n }\n }\n\n private getAllTreeItems() {\n return [...this.querySelectorAll<NileTreeItem>('nile-tree-item')];\n }\n\n private focusItem(item?: NileTreeItem | null) {\n item?.focus();\n }\n\n private handleKeyDown(event: KeyboardEvent) {\n if (!['ArrowDown', 'ArrowUp', 'ArrowRight', 'ArrowLeft', 'Home', 'End', 'Enter', ' '].includes(event.key)) {\n return;\n }\n\n const items = this.getFocusableItems();\n const isLtr = true;\n const isRtl = false;\n\n if (items.length > 0) {\n event.preventDefault();\n const activeItemIndex = items.findIndex(item => item.matches(':focus'));\n const activeItem: NileTreeItem | undefined = items[activeItemIndex];\n\n const focusItemAt = (index: number) => {\n const item = items[clamp(index, 0, items.length - 1)];\n this.focusItem(item);\n };\n const toggleExpand = (expanded: boolean) => {\n activeItem.expanded = expanded;\n };\n\n if (event.key === 'ArrowDown') {\n // Moves focus to the next node that is focusable without opening or closing a node.\n focusItemAt(activeItemIndex + 1);\n } else if (event.key === 'ArrowUp') {\n // Moves focus to the next node that is focusable without opening or closing a node.\n focusItemAt(activeItemIndex - 1);\n } else if ((isLtr && event.key === 'ArrowRight') || (isRtl && event.key === 'ArrowLeft')) {\n //\n // When focus is on a closed node, opens the node; focus does not move.\n // When focus is on a open node, moves focus to the first child node.\n // When focus is on an end node (a tree item with no children), does nothing.\n //\n if (!activeItem || activeItem.disabled || activeItem.expanded || (activeItem.isLeaf && !activeItem.lazy)) {\n focusItemAt(activeItemIndex + 1);\n } else {\n toggleExpand(true);\n }\n } else if ((isLtr && event.key === 'ArrowLeft') || (isRtl && event.key === 'ArrowRight')) {\n //\n // When focus is on an open node, closes the node.\n // When focus is on a child node that is also either an end node or a closed node, moves focus to its parent node.\n // When focus is on a closed `tree`, does nothing.\n //\n if (!activeItem || activeItem.disabled || activeItem.isLeaf || !activeItem.expanded) {\n focusItemAt(activeItemIndex - 1);\n } else {\n toggleExpand(false);\n }\n } else if (event.key === 'Home') {\n // Moves focus to the first node in the tree without opening or closing a node.\n focusItemAt(0);\n } else if (event.key === 'End') {\n // Moves focus to the last node in the tree that is focusable without opening the node.\n focusItemAt(items.length - 1);\n } else if (event.key === 'Enter' || event.key === ' ') {\n // Selects the focused node.\n if (!activeItem.disabled) {\n this.selectItem(activeItem);\n }\n }\n }\n }\n\n private handleClick(event: Event) {\n const target = event.target as NileTreeItem;\n const treeItem = target.closest('nile-tree-item')!;\n const isExpandButton = event\n .composedPath()\n .some((el: HTMLElement) => el?.classList?.contains('tree-item__expand-button'));\n\n //\n // Don't Do anything if there's no tree item, if it's disabled, or if the click doesn't match the initial target\n // from mousedown. The latter case prevents the user from starting a click on one item and ending it on another,\n // causing the parent node to collapse.\n //\n if (!treeItem || treeItem.disabled || target !== this.clickTarget) {\n return;\n }\n\n if (this.selection === 'multiple' && isExpandButton) {\n treeItem.expanded = !treeItem.expanded;\n } else {\n this.selectItem(treeItem);\n }\n }\n\n handleMouseDown(event: MouseEvent) {\n // Record the click target so we know which item the click initially targeted\n this.clickTarget = event.target as NileTreeItem;\n }\n\n private handleFocusOut(event: FocusEvent) {\n const relatedTarget = event.relatedTarget as HTMLElement;\n\n // If the element that got the focus is not in the tree\n if (!relatedTarget || !this.contains(relatedTarget)) {\n this.tabIndex = 0;\n }\n }\n\n private handleFocusIn(event: FocusEvent) {\n const target = event.target as NileTreeItem;\n\n // If the tree has been focused, move the focus to the last focused item\n if (event.target === this) {\n this.focusItem(this.lastFocusedItem || this.getAllTreeItems()[0]);\n }\n\n // If the target is a tree item, update the tabindex\n if (NileTreeItem.isTreeItem(target) && !target.disabled) {\n if (this.lastFocusedItem) {\n this.lastFocusedItem.tabIndex = -1;\n }\n this.lastFocusedItem = target;\n this.tabIndex = -1;\n\n target.tabIndex = 0;\n }\n }\n\n private handleSlotChange() {\n const items = this.getAllTreeItems();\n items.forEach(this.initTreeItem);\n }\n\n @watch('selection')\n async handleSelectionChange() {\n const isSelectionMultiple = this.selection === 'multiple';\n const items = this.getAllTreeItems();\n\n this.setAttribute('aria-multiselectable', isSelectionMultiple ? 'true' : 'false');\n\n for (const item of items) {\n item.selectable = isSelectionMultiple;\n }\n\n if (isSelectionMultiple) {\n await this.updateComplete;\n\n [...this.querySelectorAll(':scope > nile-tree-item')].forEach((treeItem: NileTreeItem) =>\n syncCheckboxes(treeItem, true)\n );\n }\n }\n\n /** @internal Returns the list of tree items that are selected in the tree. */\n get selectedItems(): NileTreeItem[] {\n const items = this.getAllTreeItems();\n const isSelected = (item: NileTreeItem) => item.selected;\n\n return items.filter(isSelected);\n }\n\n /** @internal Gets focusable tree items in the tree. */\n getFocusableItems() {\n const items = this.getAllTreeItems();\n const collapsedItems = new Set();\n\n return items.filter(item => {\n // Exclude disabled elements\n if (item.disabled) return false;\n\n // Exclude those whose parent is collapsed or loading\n const parent: NileTreeItem | null | undefined = item.parentElement?.closest('[role=treeitem]');\n if (parent && (!parent.expanded || parent.loading || collapsedItems.has(parent))) {\n collapsedItems.add(item);\n }\n\n return !collapsedItems.has(item);\n });\n }\n\n render() {\n return html`\n <div\n part=\"base\"\n class=\"tree\"\n @click=${this.handleClick}\n @keydown=${this.handleKeyDown}\n @mousedown=${this.handleMouseDown}\n >\n <slot @slotchange=${this.handleSlotChange}></slot>\n <slot name=\"expand-icon\" hidden aria-hidden=\"true\"> </slot>\n <slot name=\"collapse-icon\" hidden aria-hidden=\"true\"> </slot>\n </div>\n `;\n }\n}\n\nexport default NileTree;\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'nile-tree': NileTree;\n }\n}\n"],"names":["syncCheckboxes","changedTreeItem","initialSync","syncParentItem","treeItem","children","getChildrenItems","includeDisabled","length","allChecked","every","item","selected","allUnchecked","indeterminate","syncDescendants","_iterator","_createForOfIteratorHelper","childItem","s","_step","n","done","disabled","syncAncestors","parentItem","parentElement","NileTreeItem","isTreeItem","setters","_tslib","NileTree","_o3","m","this","selection","clickTarget","initTreeItem","selectable","filter","status","querySelector","forEach","existingIcon","append","getExpandButtonIcon","hasAttribute","replaceWith","_this","_inherits","_createClass","key","value","_connectedCallback","_asyncToGenerator","_regeneratorRuntime","mark","_callee","wrap","_callee$","_context2","prev","next","_superPropGet","handleTreeChanged","bind","handleFocusIn","handleFocusOut","setAttribute","addEventListener","handleSlotChange","updateComplete","mutationObserver","MutationObserver","observe","childList","subtree","stop","connectedCallback","disconnectedCallback","super","disconnect","removeEventListener","icon","expandedIconSlot","collapsedIconSlot","assignedElements","flatten","clone","cloneNode","querySelectorAll","el","removeAttribute","slot","mutations","_step2","_iterator2","mutation","addedNodes","_toConsumableArray","removedNodes","includes","lastFocusedItem","focusItem","getFocusableItems","err","e","f","syncTreeItems","selectedItem","items","getAllTreeItems","_iterator3","_step3","selectItem","_this2","previousSelection","selectedItems","lazy","expanded","isLeaf","nextSelection","some","Promise","all","map","then","emit","detail","focus","handleKeyDown","event","preventDefault","activeItemIndex","findIndex","matches","activeItem","focusItemAt","index","clamp","toggleExpand","handleClick","target","closest","isExpandButton","composedPath","classList","contains","handleMouseDown","relatedTarget","tabIndex","_handleSelectionChange","_callee2","i","_iterator4","_step4","_o8","_callee2$","_context3","isSelectionMultiple","handleSelectionChange","get","collapsedItems","Set","parent","loading","has","add","render","html","_templateObject","_taggedTemplateLiteral","NileElement","styles","__decorate","query","prototype","property","watch","_export","customElement"],"mappings":"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"}
1
+ {"version":3,"file":"nile-tree.cjs.js","sources":["../../../src/nile-tree/nile-tree.ts"],"sourcesContent":["/**\n * Copyright Aquera Inc 2023\n *\n * This source code is licensed under the BSD-3-Clause license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nimport {LitElement, CSSResultArray, TemplateResult} from 'lit';\nimport {styles} from './nile-tree.css';\nimport NileElement from '../internal/nile-element';\nimport { clamp } from '../internal/math';\nimport { customElement, property, query } from 'lit/decorators.js';\nimport { html } from 'lit';\nimport { watch } from '../internal/watch';\nimport NileTreeItem from '../nile-tree-item/nile-tree-item';\nimport type { CSSResultGroup } from 'lit';\n\nfunction syncCheckboxes(changedTreeItem: NileTreeItem, initialSync = false) {\n function syncParentItem(treeItem: NileTreeItem) {\n const children = treeItem.getChildrenItems({ includeDisabled: false });\n\n if (children.length) {\n const allChecked = children.every(item => item.selected);\n const allUnchecked = children.every(item => !item.selected && !item.indeterminate);\n\n treeItem.selected = allChecked;\n treeItem.indeterminate = !allChecked && !allUnchecked;\n }\n }\n\n function syncAncestors(treeItem: NileTreeItem) {\n const parentItem: NileTreeItem | null = treeItem.parentElement as NileTreeItem;\n\n if (NileTreeItem.isTreeItem(parentItem)) {\n syncParentItem(parentItem);\n syncAncestors(parentItem);\n }\n }\n\n function syncDescendants(treeItem: NileTreeItem) {\n for (const childItem of treeItem.getChildrenItems()) {\n childItem.selected = initialSync\n ? treeItem.selected || childItem.selected\n : !childItem.disabled && treeItem.selected;\n\n syncDescendants(childItem);\n }\n\n if (initialSync) {\n syncParentItem(treeItem);\n }\n }\n\n syncDescendants(changedTreeItem);\n syncAncestors(changedTreeItem);\n}\n\n\n/**\n * @summary Trees allow you to display a hierarchical list of selectable [tree items](/components/tree-item). Items with children can be expanded and collapsed as desired by the user.\n *\n * @event {{ selection: NileTreeItem[] }} nile-selection-change - Emitted when a tree item is selected or deselected.\n *\n * @slot - The default slot.\n * @slot expand-icon - The icon to show when the tree item is expanded. Works best with `<nile-icon>`.\n * @slot collapse-icon - The icon to show when the tree item is collapsed. Works best with `<nile-icon>`.\n *\n * @csspart base - The component's base wrapper.\n *\n * @cssproperty [--indent-size=var(--nile-spacing-medium)] - The size of the indentation for nested items.\n * @cssproperty [--indent-guide-color=var(--nile-color-neutral-200)] - The color of the indentation line.\n * @cssproperty [--indent-guide-offset=0] - The amount of vertical spacing to leave between the top and bottom of the\n * indentation line's starting position.\n * @cssproperty [--indent-guide-style=solid] - The style of the indentation line, e.g. solid, dotted, dashed.\n * @cssproperty [--indent-guide-width=0] - The width of the indentation line.\n */\n\n@customElement('nile-tree')\nexport class NileTree extends NileElement {\n\n\tstatic styles: CSSResultGroup = styles;\n\n @query('slot:not([name])') defaultSlot: HTMLSlotElement;\n @query('slot[name=expand-icon]') expandedIconSlot: HTMLSlotElement;\n @query('slot[name=collapse-icon]') collapsedIconSlot: HTMLSlotElement;\n\n /**\n * The selection behavior of the tree. Single selection allows only one node to be selected at a time. Multiple\n * displays checkboxes and allows more than one node to be selected. Leaf allows only leaf nodes to be selected.\n */\n @property() selection: 'single' | 'multiple' | 'leaf' = 'leaf';\n\n //\n // A collection of all the items in the tree, in the order they appear. The collection is live, meaning it is\n // automatically updated when the underlying document is changed.\n //\n private lastFocusedItem: NileTreeItem;\n private mutationObserver: MutationObserver;\n private clickTarget: NileTreeItem | null = null;\n\n async connectedCallback() {\n super.connectedCallback();\n this.handleTreeChanged = this.handleTreeChanged.bind(this);\n this.handleFocusIn = this.handleFocusIn.bind(this);\n this.handleFocusOut = this.handleFocusOut.bind(this);\n\n this.setAttribute('role', 'tree');\n this.setAttribute('tabindex', '0');\n\n this.addEventListener('focusin', this.handleFocusIn);\n this.addEventListener('focusout', this.handleFocusOut);\n this.addEventListener('nile-lazy-change', this.handleSlotChange);\n\n await this.updateComplete;\n\n this.mutationObserver = new MutationObserver(this.handleTreeChanged);\n this.mutationObserver.observe(this, { childList: true, subtree: true });\n }\n\n disconnectedCallback() {\n super.disconnectedCallback();\n\n this.mutationObserver.disconnect();\n\n this.removeEventListener('focusin', this.handleFocusIn);\n this.removeEventListener('focusout', this.handleFocusOut);\n this.removeEventListener('nile-lazy-change', this.handleSlotChange);\n }\n\n // Generates a clone of the expand icon element to use for each tree item\n private getExpandButtonIcon(status: 'expand' | 'collapse') {\n const slot = status === 'expand' ? this.expandedIconSlot : this.collapsedIconSlot;\n const icon = slot.assignedElements({ flatten: true })[0] as HTMLElement;\n\n // Clone it, remove ids, and slot it\n if (icon) {\n const clone = icon.cloneNode(true) as HTMLElement;\n [clone, ...clone.querySelectorAll('[id]')].forEach(el => el.removeAttribute('id'));\n clone.setAttribute('data-default', '');\n clone.slot = `${status}-icon`;\n\n return clone;\n }\n\n return null;\n }\n\n // Initializes new items by setting the `selectable` property and the expanded/collapsed icons if any\n private initTreeItem = (item: NileTreeItem) => {\n item.selectable = this.selection === 'multiple';\n\n ['expand', 'collapse']\n .filter(status => !!this.querySelector(`[slot=\"${status}-icon\"]`))\n .forEach((status: 'expand' | 'collapse') => {\n const existingIcon = item.querySelector(`[slot=\"${status}-icon\"]`);\n\n if (existingIcon === null) {\n // No separator exists, add one\n item.append(this.getExpandButtonIcon(status)!);\n } else if (existingIcon.hasAttribute('data-default')) {\n // A default separator exists, replace it\n existingIcon.replaceWith(this.getExpandButtonIcon(status)!);\n } else {\n // The user provided a custom icon, leave it alone\n }\n });\n };\n\n private handleTreeChanged(mutations: MutationRecord[]) {\n for (const mutation of mutations) {\n const addedNodes: NileTreeItem[] = [...mutation.addedNodes].filter(NileTreeItem.isTreeItem) as NileTreeItem[];\n const removedNodes = [...mutation.removedNodes].filter(NileTreeItem.isTreeItem) as NileTreeItem[];\n\n addedNodes.forEach(this.initTreeItem);\n\n // If the focused item has been removed form the DOM, move the focus to the first focusable item\n if (removedNodes.includes(this.lastFocusedItem)) {\n this.focusItem(this.getFocusableItems()[0]);\n }\n }\n }\n\n private syncTreeItems(selectedItem: NileTreeItem) {\n const items = this.getAllTreeItems();\n\n if (this.selection === 'multiple') {\n syncCheckboxes(selectedItem);\n } else {\n for (const item of items) {\n if (item !== selectedItem) {\n item.selected = false;\n }\n }\n }\n }\n\n private selectItem(selectedItem: NileTreeItem) {\n const previousSelection = [...this.selectedItems];\n\n if (this.selection === 'multiple') {\n selectedItem.selected = !selectedItem.selected;\n if (selectedItem.lazy) {\n selectedItem.expanded = true;\n }\n this.syncTreeItems(selectedItem);\n } else if (this.selection === 'single' || selectedItem.isLeaf) {\n selectedItem.expanded = !selectedItem.expanded;\n selectedItem.selected = true;\n\n this.syncTreeItems(selectedItem);\n } else if (this.selection === 'leaf') {\n selectedItem.expanded = !selectedItem.expanded;\n }\n\n const nextSelection = this.selectedItems;\n\n if (\n previousSelection.length !== nextSelection.length ||\n nextSelection.some(item => !previousSelection.includes(item))\n ) {\n // Wait for the tree items' DOM to update before emitting\n Promise.all(nextSelection.map(el => el.updateComplete)).then(() => {\n this.emit('nile-selection-change', { detail: { selection: nextSelection } });\n });\n }\n }\n\n private getAllTreeItems() {\n return [...this.querySelectorAll<NileTreeItem>('nile-tree-item')];\n }\n\n private focusItem(item?: NileTreeItem | null) {\n item?.focus();\n }\n\n private handleKeyDown(event: KeyboardEvent) {\n if (!['ArrowDown', 'ArrowUp', 'ArrowRight', 'ArrowLeft', 'Home', 'End', 'Enter', ' '].includes(event.key)) {\n return;\n }\n\n const items = this.getFocusableItems();\n const isLtr = true;\n const isRtl = false;\n\n if (items.length > 0) {\n event.preventDefault();\n const activeItemIndex = items.findIndex(item => item.matches(':focus'));\n const activeItem: NileTreeItem | undefined = items[activeItemIndex];\n\n const focusItemAt = (index: number) => {\n const item = items[clamp(index, 0, items.length - 1)];\n this.focusItem(item);\n };\n const toggleExpand = (expanded: boolean) => {\n activeItem.expanded = expanded;\n };\n\n if (event.key === 'ArrowDown') {\n // Moves focus to the next node that is focusable without opening or closing a node.\n focusItemAt(activeItemIndex + 1);\n } else if (event.key === 'ArrowUp') {\n // Moves focus to the next node that is focusable without opening or closing a node.\n focusItemAt(activeItemIndex - 1);\n } else if ((isLtr && event.key === 'ArrowRight') || (isRtl && event.key === 'ArrowLeft')) {\n //\n // When focus is on a closed node, opens the node; focus does not move.\n // When focus is on a open node, moves focus to the first child node.\n // When focus is on an end node (a tree item with no children), does nothing.\n //\n if (!activeItem || activeItem.disabled || activeItem.expanded || (activeItem.isLeaf && !activeItem.lazy)) {\n focusItemAt(activeItemIndex + 1);\n } else {\n toggleExpand(true);\n }\n } else if ((isLtr && event.key === 'ArrowLeft') || (isRtl && event.key === 'ArrowRight')) {\n //\n // When focus is on an open node, closes the node.\n // When focus is on a child node that is also either an end node or a closed node, moves focus to its parent node.\n // When focus is on a closed `tree`, does nothing.\n //\n if (!activeItem || activeItem.disabled || activeItem.isLeaf || !activeItem.expanded) {\n focusItemAt(activeItemIndex - 1);\n } else {\n toggleExpand(false);\n }\n } else if (event.key === 'Home') {\n // Moves focus to the first node in the tree without opening or closing a node.\n focusItemAt(0);\n } else if (event.key === 'End') {\n // Moves focus to the last node in the tree that is focusable without opening the node.\n focusItemAt(items.length - 1);\n } else if (event.key === 'Enter' || event.key === ' ') {\n // Selects the focused node.\n if (!activeItem.disabled) {\n this.selectItem(activeItem);\n }\n }\n }\n }\n\n private handleClick(event: Event) {\n const target = event.target as NileTreeItem;\n const treeItem = target.closest('nile-tree-item')!;\n const isExpandButton = event\n .composedPath()\n .some((el: HTMLElement) => el?.classList?.contains('tree-item__expand-button'));\n\n //\n // Don't Do anything if there's no tree item, if it's disabled, or if the click doesn't match the initial target\n // from mousedown. The latter case prevents the user from starting a click on one item and ending it on another,\n // causing the parent node to collapse.\n //\n if (!treeItem || treeItem.disabled || target !== this.clickTarget) {\n return;\n }\n\n if (this.selection === 'multiple' && isExpandButton) {\n treeItem.expanded = !treeItem.expanded;\n } else {\n this.selectItem(treeItem);\n }\n }\n\n handleMouseDown(event: MouseEvent) {\n // Record the click target so we know which item the click initially targeted\n this.clickTarget = event.target as NileTreeItem;\n }\n\n private handleFocusOut(event: FocusEvent) {\n const relatedTarget = event.relatedTarget as HTMLElement;\n\n // If the element that got the focus is not in the tree\n if (!relatedTarget || !this.contains(relatedTarget)) {\n this.tabIndex = 0;\n }\n }\n\n private handleFocusIn(event: FocusEvent) {\n const target = event.target as NileTreeItem;\n\n // If the tree has been focused, move the focus to the last focused item\n if (event.target === this) {\n this.focusItem(this.lastFocusedItem || this.getAllTreeItems()[0]);\n }\n\n // If the target is a tree item, update the tabindex\n if (NileTreeItem.isTreeItem(target) && !target.disabled) {\n if (this.lastFocusedItem) {\n this.lastFocusedItem.tabIndex = -1;\n }\n this.lastFocusedItem = target;\n this.tabIndex = -1;\n\n target.tabIndex = 0;\n }\n }\n\n private handleSlotChange() {\n const items = this.getAllTreeItems();\n items.forEach(this.initTreeItem);\n }\n\n @watch('selection')\n async handleSelectionChange() {\n const isSelectionMultiple = this.selection === 'multiple';\n const items = this.getAllTreeItems();\n\n this.setAttribute('aria-multiselectable', isSelectionMultiple ? 'true' : 'false');\n\n for (const item of items) {\n item.selectable = isSelectionMultiple;\n }\n\n if (isSelectionMultiple) {\n await this.updateComplete;\n\n [...this.querySelectorAll(':scope > nile-tree-item')].forEach((treeItem: NileTreeItem) =>\n syncCheckboxes(treeItem, true)\n );\n }\n }\n\n /** @internal Returns the list of tree items that are selected in the tree. */\n get selectedItems(): NileTreeItem[] {\n const items = this.getAllTreeItems();\n const isSelected = (item: NileTreeItem) => item.selected;\n\n return items.filter(isSelected);\n }\n\n /** @internal Gets focusable tree items in the tree. */\n getFocusableItems() {\n const items = this.getAllTreeItems();\n const collapsedItems = new Set();\n\n return items.filter(item => {\n // Exclude disabled elements\n if (item.disabled) return false;\n\n // Exclude those whose parent is collapsed or loading\n const parent: NileTreeItem | null | undefined = item.parentElement?.closest('[role=treeitem]');\n if (parent && (!parent.expanded || parent.loading || collapsedItems.has(parent))) {\n collapsedItems.add(item);\n }\n\n return !collapsedItems.has(item);\n });\n }\n\n render() {\n return html`\n <div\n part=\"base\"\n class=\"tree\"\n @click=${this.handleClick}\n @keydown=${this.handleKeyDown}\n @mousedown=${this.handleMouseDown}\n >\n <slot @slotchange=${this.handleSlotChange}></slot>\n <slot name=\"expand-icon\" hidden aria-hidden=\"true\"> </slot>\n <slot name=\"collapse-icon\" hidden aria-hidden=\"true\"> </slot>\n </div>\n `;\n }\n}\n\nexport default NileTree;\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'nile-tree': NileTree;\n }\n}\n"],"names":["syncCheckboxes","changedTreeItem","initialSync","arguments","length","undefined","syncParentItem","treeItem","children","getChildrenItems","includeDisabled","allChecked","every","item","selected","allUnchecked","indeterminate","syncDescendants","_iterator","s","_step","n","done","childItem","disabled","syncAncestors","parentItem","parentElement","NileTreeItem","isTreeItem","setters","_tslib","NileTree","m","this","selection","clickTarget","initTreeItem","selectable","filter","status","querySelector","forEach","existingIcon","concat","append","getExpandButtonIcon","hasAttribute","replaceWith","_this","_inherits","_o3","_createClass","key","value","_connectedCallback","_asyncToGenerator","_regeneratorRuntime","mark","_callee","wrap","_callee$","_context2","prev","next","_superPropGet","handleTreeChanged","bind","handleFocusIn","handleFocusOut","setAttribute","addEventListener","handleSlotChange","updateComplete","mutationObserver","MutationObserver","observe","childList","subtree","stop","connectedCallback","disconnectedCallback","super","disconnect","removeEventListener","icon","expandedIconSlot","collapsedIconSlot","assignedElements","flatten","clone","cloneNode","querySelectorAll","el","removeAttribute","slot","mutations","_iterator2","_step2","mutation","addedNodes","_toConsumableArray","removedNodes","includes","lastFocusedItem","focusItem","getFocusableItems","err","e","f","syncTreeItems","selectedItem","items","getAllTreeItems","_iterator3","_step3","selectItem","previousSelection","selectedItems","lazy","expanded","isLeaf","nextSelection","some","Promise","all","map","then","emit","detail","focus","handleKeyDown","event","_this3","preventDefault","activeItemIndex","findIndex","matches","activeItem","focusItemAt","index","clamp","toggleExpand","handleClick","target","closest","isExpandButton","composedPath","classList","contains","handleMouseDown","relatedTarget","tabIndex","_handleSelectionChange","_callee2","i","_iterator4","_step4","_o8","_callee2$","_context3","isSelectionMultiple","_createForOfIteratorHelper","handleSelectionChange","get","collapsedItems","Set","parent","loading","has","add","render","html","_templateObject","_taggedTemplateLiteral","NileElement","styles","__decorate","query","prototype","property","watch","_export","customElement"],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import{__decorate as i}from"tslib";import{s}from"./nile-tree.css.esm.js";import{N as o}from"../internal/nile-element.esm.js";import{c as n}from"../internal/math.esm.js";import{query as e,property as c,customElement as m}from"lit/decorators.js";import{html as t}from"lit";import{w as r}from"../internal/watch.esm.js";import{N as l}from"../nile-tree-item/nile-tree-item.esm.js";import"../internal/animate.esm.js";import"lit/directives/class-map.js";import"../utilities/animation-registry.esm.js";import"lit/directives/live.js";import"lit/directives/when.js";import"../nile-tree-item/nile-tree-item.css.esm.js";import"../nile-checkbox/nile-checkbox.esm.js";import"../nile-checkbox/nile-checkbox.css.esm.js";import"../internal/default-value.esm.js";import"lit/directives/if-defined.js";import"../nile-icon/index.esm.js";import"lit/directives/unsafe-svg.js";import"../nile-icon/icons/svg/index.esm.js";import"../nile-icon/icons/svg/access-request.esm.js";import"../nile-icon/icons/svg/accessreview.esm.js";import"../nile-icon/icons/svg/action.esm.js";import"../nile-icon/icons/svg/activity-logs.esm.js";import"../nile-icon/icons/svg/address.esm.js";import"../nile-icon/icons/svg/admin-users.esm.js";import"../nile-icon/icons/svg/agent.esm.js";import"../nile-icon/icons/svg/aggregation.esm.js";import"../nile-icon/icons/svg/alert-circle.esm.js";import"../nile-icon/icons/svg/alert.esm.js";import"../nile-icon/icons/svg/allapplication.esm.js";import"../nile-icon/icons/svg/allsearch.esm.js";import"../nile-icon/icons/svg/analytics.esm.js";import"../nile-icon/icons/svg/api.esm.js";import"../nile-icon/icons/svg/applications-2.esm.js";import"../nile-icon/icons/svg/apply-filter.esm.js";import"../nile-icon/icons/svg/apps.esm.js";import"../nile-icon/icons/svg/aquera.esm.js";import"../nile-icon/icons/svg/aquerasupport.esm.js";import"../nile-icon/icons/svg/array-loop.esm.js";import"../nile-icon/icons/svg/array-of-boolean.esm.js";import"../nile-icon/icons/svg/array-of-integer.esm.js";import"../nile-icon/icons/svg/array-of-string.esm.js";import"../nile-icon/icons/svg/array.esm.js";import"../nile-icon/icons/svg/arrayofobject.esm.js";import"../nile-icon/icons/svg/arrow-narrow-left.esm.js";import"../nile-icon/icons/svg/arrow.esm.js";import"../nile-icon/icons/svg/arrowdown.esm.js";import"../nile-icon/icons/svg/arrowdropdown.esm.js";import"../nile-icon/icons/svg/arrowdropup.esm.js";import"../nile-icon/icons/svg/arrowleft.esm.js";import"../nile-icon/icons/svg/arrowright.esm.js";import"../nile-icon/icons/svg/arrowup.esm.js";import"../nile-icon/icons/svg/attribute-map-analysis-icon.esm.js";import"../nile-icon/icons/svg/attributemap.esm.js";import"../nile-icon/icons/svg/automation-details.esm.js";import"../nile-icon/icons/svg/back.esm.js";import"../nile-icon/icons/svg/bar-and-line-chart.esm.js";import"../nile-icon/icons/svg/bar-chart-square-02.esm.js";import"../nile-icon/icons/svg/bar-chart.esm.js";import"../nile-icon/icons/svg/bargraph.esm.js";import"../nile-icon/icons/svg/block.esm.js";import"../nile-icon/icons/svg/bluedot.esm.js";import"../nile-icon/icons/svg/book-closed.esm.js";import"../nile-icon/icons/svg/boolean.esm.js";import"../nile-icon/icons/svg/border_all.esm.js";import"../nile-icon/icons/svg/box.esm.js";import"../nile-icon/icons/svg/bubble-chart.esm.js";import"../nile-icon/icons/svg/bulk-sync.esm.js";import"../nile-icon/icons/svg/button-loading-black.esm.js";import"../nile-icon/icons/svg/button-loading-blue-animated.esm.js";import"../nile-icon/icons/svg/button-loading-blue.esm.js";import"../nile-icon/icons/svg/button-loading-white.esm.js";import"../nile-icon/icons/svg/calendar.esm.js";import"../nile-icon/icons/svg/cases.esm.js";import"../nile-icon/icons/svg/cell-loader.esm.js";import"../nile-icon/icons/svg/certification.esm.js";import"../nile-icon/icons/svg/check-circle.esm.js";import"../nile-icon/icons/svg/check-done-01.esm.js";import"../nile-icon/icons/svg/check-done-02.esm.js";import"../nile-icon/icons/svg/chevron-left-double.esm.js";import"../nile-icon/icons/svg/clock-check.esm.js";import"../nile-icon/icons/svg/clock-rewind.esm.js";import"../nile-icon/icons/svg/clock.esm.js";import"../nile-icon/icons/svg/close.esm.js";import"../nile-icon/icons/svg/cloud-01.esm.js";import"../nile-icon/icons/svg/code-generator.esm.js";import"../nile-icon/icons/svg/collapse-1.esm.js";import"../nile-icon/icons/svg/collapse.esm.js";import"../nile-icon/icons/svg/color.esm.js";import"../nile-icon/icons/svg/column-02.esm.js";import"../nile-icon/icons/svg/columns-03.esm.js";import"../nile-icon/icons/svg/combo1.esm.js";import"../nile-icon/icons/svg/comment.esm.js";import"../nile-icon/icons/svg/compact.esm.js";import"../nile-icon/icons/svg/compare-tiles.esm.js";import"../nile-icon/icons/svg/compare.esm.js";import"../nile-icon/icons/svg/component-menu.esm.js";import"../nile-icon/icons/svg/component.esm.js";import"../nile-icon/icons/svg/components-icon.esm.js";import"../nile-icon/icons/svg/componenttext.esm.js";import"../nile-icon/icons/svg/condition.esm.js";import"../nile-icon/icons/svg/conditions.esm.js";import"../nile-icon/icons/svg/connect.esm.js";import"../nile-icon/icons/svg/connectivitymap.esm.js";import"../nile-icon/icons/svg/connectorrightarrow.esm.js";import"../nile-icon/icons/svg/copy-06.esm.js";import"../nile-icon/icons/svg/copy.esm.js";import"../nile-icon/icons/svg/cor-analysis.esm.js";import"../nile-icon/icons/svg/correlation.esm.js";import"../nile-icon/icons/svg/cost-analytics.esm.js";import"../nile-icon/icons/svg/create.esm.js";import"../nile-icon/icons/svg/createuser.esm.js";import"../nile-icon/icons/svg/dashboard.esm.js";import"../nile-icon/icons/svg/data-insight.esm.js";import"../nile-icon/icons/svg/data-type-array.esm.js";import"../nile-icon/icons/svg/data-type-boolean.esm.js";import"../nile-icon/icons/svg/data-type-json.esm.js";import"../nile-icon/icons/svg/data-type-null.esm.js";import"../nile-icon/icons/svg/data-type-number.esm.js";import"../nile-icon/icons/svg/data-type-string.esm.js";import"../nile-icon/icons/svg/data-type-unknown.esm.js";import"../nile-icon/icons/svg/database.esm.js";import"../nile-icon/icons/svg/databaseview.esm.js";import"../nile-icon/icons/svg/dataflow-03.esm.js";import"../nile-icon/icons/svg/dataflow-04.esm.js";import"../nile-icon/icons/svg/default-cursor.esm.js";import"../nile-icon/icons/svg/default.esm.js";import"../nile-icon/icons/svg/delegate.esm.js";import"../nile-icon/icons/svg/delete.esm.js";import"../nile-icon/icons/svg/deligateduser.esm.js";import"../nile-icon/icons/svg/directory.esm.js";import"../nile-icon/icons/svg/disabled.esm.js";import"../nile-icon/icons/svg/dock-to-right.esm.js";import"../nile-icon/icons/svg/document-new.esm.js";import"../nile-icon/icons/svg/done-02.esm.js";import"../nile-icon/icons/svg/done.esm.js";import"../nile-icon/icons/svg/dontmap.esm.js";import"../nile-icon/icons/svg/donut.esm.js";import"../nile-icon/icons/svg/dotpoints-02.esm.js";import"../nile-icon/icons/svg/dots-grid.esm.js";import"../nile-icon/icons/svg/doublearrowleft.esm.js";import"../nile-icon/icons/svg/doublearrowright.esm.js";import"../nile-icon/icons/svg/dowhileloop.esm.js";import"../nile-icon/icons/svg/downgrade.esm.js";import"../nile-icon/icons/svg/download.esm.js";import"../nile-icon/icons/svg/drag.esm.js";import"../nile-icon/icons/svg/edit-write.esm.js";import"../nile-icon/icons/svg/else.esm.js";import"../nile-icon/icons/svg/email.esm.js";import"../nile-icon/icons/svg/enable.esm.js";import"../nile-icon/icons/svg/entities.esm.js";import"../nile-icon/icons/svg/entitlement.esm.js";import"../nile-icon/icons/svg/error.esm.js";import"../nile-icon/icons/svg/escalate.esm.js";import"../nile-icon/icons/svg/exactmatch.esm.js";import"../nile-icon/icons/svg/execute.esm.js";import"../nile-icon/icons/svg/expand-03.esm.js";import"../nile-icon/icons/svg/expand-06.esm.js";import"../nile-icon/icons/svg/expand-2.esm.js";import"../nile-icon/icons/svg/expand.esm.js";import"../nile-icon/icons/svg/eye-off.esm.js";import"../nile-icon/icons/svg/eye.esm.js";import"../nile-icon/icons/svg/eyeclosed.esm.js";import"../nile-icon/icons/svg/featured-icon.esm.js";import"../nile-icon/icons/svg/file-06.esm.js";import"../nile-icon/icons/svg/file-check-02.esm.js";import"../nile-icon/icons/svg/file-shield-01.esm.js";import"../nile-icon/icons/svg/file-shield-02.esm.js";import"../nile-icon/icons/svg/file-type-icon.esm.js";import"../nile-icon/icons/svg/file.esm.js";import"../nile-icon/icons/svg/filter-1.esm.js";import"../nile-icon/icons/svg/filter.esm.js";import"../nile-icon/icons/svg/fingerprint-03.esm.js";import"../nile-icon/icons/svg/firewall.esm.js";import"../nile-icon/icons/svg/firewallagent.esm.js";import"../nile-icon/icons/svg/flow.esm.js";import"../nile-icon/icons/svg/flowmap-agent.esm.js";import"../nile-icon/icons/svg/flowmap-application.esm.js";import"../nile-icon/icons/svg/flowmap-colorpalatte.esm.js";import"../nile-icon/icons/svg/flowmap-firewall-agent.esm.js";import"../nile-icon/icons/svg/flowmap-firewall.esm.js";import"../nile-icon/icons/svg/flowmap-gateway.esm.js";import"../nile-icon/icons/svg/flowmap-orchestration.esm.js";import"../nile-icon/icons/svg/flowmap-undo.esm.js";import"../nile-icon/icons/svg/flowmap-workflow.esm.js";import"../nile-icon/icons/svg/flowmap.esm.js";import"../nile-icon/icons/svg/folder.esm.js";import"../nile-icon/icons/svg/foreach.esm.js";import"../nile-icon/icons/svg/frequency.esm.js";import"../nile-icon/icons/svg/full-union.esm.js";import"../nile-icon/icons/svg/fullscreen.esm.js";import"../nile-icon/icons/svg/fullscreenexit.esm.js";import"../nile-icon/icons/svg/fullscreenshrink.esm.js";import"../nile-icon/icons/svg/funnel-02.esm.js";import"../nile-icon/icons/svg/funnel.esm.js";import"../nile-icon/icons/svg/gateway.esm.js";import"../nile-icon/icons/svg/gauge.esm.js";import"../nile-icon/icons/svg/general.esm.js";import"../nile-icon/icons/svg/generationphase.esm.js";import"../nile-icon/icons/svg/global-search.esm.js";import"../nile-icon/icons/svg/globe-03.esm.js";import"../nile-icon/icons/svg/globe.esm.js";import"../nile-icon/icons/svg/goto.esm.js";import"../nile-icon/icons/svg/graph.esm.js";import"../nile-icon/icons/svg/graphedit.esm.js";import"../nile-icon/icons/svg/greendot.esm.js";import"../nile-icon/icons/svg/greydot.esm.js";import"../nile-icon/icons/svg/greylightdot.esm.js";import"../nile-icon/icons/svg/grid-01.esm.js";import"../nile-icon/icons/svg/group-analysis-icon.esm.js";import"../nile-icon/icons/svg/group.esm.js";import"../nile-icon/icons/svg/groupby.esm.js";import"../nile-icon/icons/svg/groups.esm.js";import"../nile-icon/icons/svg/guide-01.esm.js";import"../nile-icon/icons/svg/guide.esm.js";import"../nile-icon/icons/svg/handtool.esm.js";import"../nile-icon/icons/svg/header-child-workflow.esm.js";import"../nile-icon/icons/svg/header-flows.esm.js";import"../nile-icon/icons/svg/header-tasks.esm.js";import"../nile-icon/icons/svg/headphones-01.esm.js";import"../nile-icon/icons/svg/help.esm.js";import"../nile-icon/icons/svg/helpandsupport.esm.js";import"../nile-icon/icons/svg/helpers.esm.js";import"../nile-icon/icons/svg/helpsupport.esm.js";import"../nile-icon/icons/svg/history.esm.js";import"../nile-icon/icons/svg/identitygraph.esm.js";import"../nile-icon/icons/svg/identityledger.esm.js";import"../nile-icon/icons/svg/ifelse.esm.js";import"../nile-icon/icons/svg/ifelsenew.esm.js";import"../nile-icon/icons/svg/image.esm.js";import"../nile-icon/icons/svg/immutable.esm.js";import"../nile-icon/icons/svg/info-icon.esm.js";import"../nile-icon/icons/svg/info.esm.js";import"../nile-icon/icons/svg/inner-union.esm.js";import"../nile-icon/icons/svg/inprogress.esm.js";import"../nile-icon/icons/svg/insert-at-cursor.esm.js";import"../nile-icon/icons/svg/integer.esm.js";import"../nile-icon/icons/svg/intersection.esm.js";import"../nile-icon/icons/svg/js.esm.js";import"../nile-icon/icons/svg/key-performance-indicator.esm.js";import"../nile-icon/icons/svg/keyboard-01.esm.js";import"../nile-icon/icons/svg/kill.esm.js";import"../nile-icon/icons/svg/laptop-01.esm.js";import"../nile-icon/icons/svg/layers-three-02.esm.js";import"../nile-icon/icons/svg/layout-alt-02.esm.js";import"../nile-icon/icons/svg/layout-alt-03.esm.js";import"../nile-icon/icons/svg/left-join.esm.js";import"../nile-icon/icons/svg/left-union.esm.js";import"../nile-icon/icons/svg/leftpointarrow.esm.js";import"../nile-icon/icons/svg/life-buoy-01.esm.js";import"../nile-icon/icons/svg/line.esm.js";import"../nile-icon/icons/svg/link.esm.js";import"../nile-icon/icons/svg/list-attribute.esm.js";import"../nile-icon/icons/svg/list.esm.js";import"../nile-icon/icons/svg/loader.esm.js";import"../nile-icon/icons/svg/loading.esm.js";import"../nile-icon/icons/svg/loading2.esm.js";import"../nile-icon/icons/svg/lock.esm.js";import"../nile-icon/icons/svg/log-info.esm.js";import"../nile-icon/icons/svg/log.esm.js";import"../nile-icon/icons/svg/logo-white.esm.js";import"../nile-icon/icons/svg/logout.esm.js";import"../nile-icon/icons/svg/logs.esm.js";import"../nile-icon/icons/svg/loop.esm.js";import"../nile-icon/icons/svg/manage.esm.js";import"../nile-icon/icons/svg/map.esm.js";import"../nile-icon/icons/svg/mapcreate.esm.js";import"../nile-icon/icons/svg/mapdont.esm.js";import"../nile-icon/icons/svg/maponcreate.esm.js";import"../nile-icon/icons/svg/maponupdate.esm.js";import"../nile-icon/icons/svg/mapper.esm.js";import"../nile-icon/icons/svg/mapupdate.esm.js";import"../nile-icon/icons/svg/marker-pin-01.esm.js";import"../nile-icon/icons/svg/maximize.esm.js";import"../nile-icon/icons/svg/menu.esm.js";import"../nile-icon/icons/svg/message-notification-square.esm.js";import"../nile-icon/icons/svg/minus.esm.js";import"../nile-icon/icons/svg/monitor-01.esm.js";import"../nile-icon/icons/svg/mouse.esm.js";import"../nile-icon/icons/svg/move-application.esm.js";import"../nile-icon/icons/svg/moveleft.esm.js";import"../nile-icon/icons/svg/moveright.esm.js";import"../nile-icon/icons/svg/mute.esm.js";import"../nile-icon/icons/svg/my-integration.esm.js";import"../nile-icon/icons/svg/new-calendar.esm.js";import"../nile-icon/icons/svg/nightingale-chart.esm.js";import"../nile-icon/icons/svg/nlp.esm.js";import"../nile-icon/icons/svg/nomatch.esm.js";import"../nile-icon/icons/svg/note.esm.js";import"../nile-icon/icons/svg/notification.esm.js";import"../nile-icon/icons/svg/notificationadd.esm.js";import"../nile-icon/icons/svg/notificationadded.esm.js";import"../nile-icon/icons/svg/null.esm.js";import"../nile-icon/icons/svg/number.esm.js";import"../nile-icon/icons/svg/numberinput.esm.js";import"../nile-icon/icons/svg/numbers.esm.js";import"../nile-icon/icons/svg/object.esm.js";import"../nile-icon/icons/svg/operators.esm.js";import"../nile-icon/icons/svg/options.esm.js";import"../nile-icon/icons/svg/orchestration-solid.esm.js";import"../nile-icon/icons/svg/orchestration.esm.js";import"../nile-icon/icons/svg/organization.esm.js";import"../nile-icon/icons/svg/other.esm.js";import"../nile-icon/icons/svg/otherdetails.esm.js";import"../nile-icon/icons/svg/override.esm.js";import"../nile-icon/icons/svg/palletemenu.esm.js";import"../nile-icon/icons/svg/paperclip.esm.js";import"../nile-icon/icons/svg/partner.esm.js";import"../nile-icon/icons/svg/partners.esm.js";import"../nile-icon/icons/svg/pause.esm.js";import"../nile-icon/icons/svg/pencil.esm.js";import"../nile-icon/icons/svg/peopletask.esm.js";import"../nile-icon/icons/svg/persistent-variable.esm.js";import"../nile-icon/icons/svg/persistentdata.esm.js";import"../nile-icon/icons/svg/phone.esm.js";import"../nile-icon/icons/svg/pie.esm.js";import"../nile-icon/icons/svg/pin.esm.js";import"../nile-icon/icons/svg/play.esm.js";import"../nile-icon/icons/svg/play_pause.esm.js";import"../nile-icon/icons/svg/plus.esm.js";import"../nile-icon/icons/svg/pluscircle.esm.js";import"../nile-icon/icons/svg/plussquare.esm.js";import"../nile-icon/icons/svg/policy.esm.js";import"../nile-icon/icons/svg/potentialmatch.esm.js";import"../nile-icon/icons/svg/poweron.esm.js";import"../nile-icon/icons/svg/predefined.esm.js";import"../nile-icon/icons/svg/preview.esm.js";import"../nile-icon/icons/svg/printer.esm.js";import"../nile-icon/icons/svg/priority-high.esm.js";import"../nile-icon/icons/svg/priority-highest.esm.js";import"../nile-icon/icons/svg/priority-low.esm.js";import"../nile-icon/icons/svg/priority-medium.esm.js";import"../nile-icon/icons/svg/privilage.esm.js";import"../nile-icon/icons/svg/privilege.esm.js";import"../nile-icon/icons/svg/privilegeobject.esm.js";import"../nile-icon/icons/svg/process.esm.js";import"../nile-icon/icons/svg/professionaldetails.esm.js";import"../nile-icon/icons/svg/question.esm.js";import"../nile-icon/icons/svg/radar.esm.js";import"../nile-icon/icons/svg/radio.esm.js";import"../nile-icon/icons/svg/radioactive.esm.js";import"../nile-icon/icons/svg/radiodone.esm.js";import"../nile-icon/icons/svg/read.esm.js";import"../nile-icon/icons/svg/readexpression.esm.js";import"../nile-icon/icons/svg/readonly.esm.js";import"../nile-icon/icons/svg/readonlyuser.esm.js";import"../nile-icon/icons/svg/readuser.esm.js";import"../nile-icon/icons/svg/reddot.esm.js";import"../nile-icon/icons/svg/redo-02.esm.js";import"../nile-icon/icons/svg/redo.esm.js";import"../nile-icon/icons/svg/reminder.esm.js";import"../nile-icon/icons/svg/resize.esm.js";import"../nile-icon/icons/svg/resource.esm.js";import"../nile-icon/icons/svg/resource_analysis.esm.js";import"../nile-icon/icons/svg/resource_graph.esm.js";import"../nile-icon/icons/svg/restart_alt.esm.js";import"../nile-icon/icons/svg/revocation-cycle.esm.js";import"../nile-icon/icons/svg/right-join.esm.js";import"../nile-icon/icons/svg/right-union.esm.js";import"../nile-icon/icons/svg/rocket-02.esm.js";import"../nile-icon/icons/svg/role.esm.js";import"../nile-icon/icons/svg/run.esm.js";import"../nile-icon/icons/svg/sankey.esm.js";import"../nile-icon/icons/svg/save.esm.js";import"../nile-icon/icons/svg/scatter-plot.esm.js";import"../nile-icon/icons/svg/schedule.esm.js";import"../nile-icon/icons/svg/schema.esm.js";import"../nile-icon/icons/svg/script.esm.js";import"../nile-icon/icons/svg/search-steps-icon.esm.js";import"../nile-icon/icons/svg/search.esm.js";import"../nile-icon/icons/svg/section.esm.js";import"../nile-icon/icons/svg/select-02.esm.js";import"../nile-icon/icons/svg/select.esm.js";import"../nile-icon/icons/svg/selectapplication.esm.js";import"../nile-icon/icons/svg/selectattributes.esm.js";import"../nile-icon/icons/svg/semi-circle-donut-chart.esm.js";import"../nile-icon/icons/svg/send.esm.js";import"../nile-icon/icons/svg/sendemail.esm.js";import"../nile-icon/icons/svg/sendescalation.esm.js";import"../nile-icon/icons/svg/sendreminder.esm.js";import"../nile-icon/icons/svg/server-03.esm.js";import"../nile-icon/icons/svg/settings-02.esm.js";import"../nile-icon/icons/svg/settings.esm.js";import"../nile-icon/icons/svg/share.esm.js";import"../nile-icon/icons/svg/shield-01.esm.js";import"../nile-icon/icons/svg/smartcode.esm.js";import"../nile-icon/icons/svg/sort.esm.js";import"../nile-icon/icons/svg/sort_ascending.esm.js";import"../nile-icon/icons/svg/sort_descending.esm.js";import"../nile-icon/icons/svg/sortascending.esm.js";import"../nile-icon/icons/svg/sortdescending.esm.js";import"../nile-icon/icons/svg/sortdown.esm.js";import"../nile-icon/icons/svg/sortup.esm.js";import"../nile-icon/icons/svg/stacked-bar-chart.esm.js";import"../nile-icon/icons/svg/step_into.esm.js";import"../nile-icon/icons/svg/step_out.esm.js";import"../nile-icon/icons/svg/step_over.esm.js";import"../nile-icon/icons/svg/stop.esm.js";import"../nile-icon/icons/svg/storybook.esm.js";import"../nile-icon/icons/svg/string.esm.js";import"../nile-icon/icons/svg/stringinput.esm.js";import"../nile-icon/icons/svg/stringletters.esm.js";import"../nile-icon/icons/svg/support.esm.js";import"../nile-icon/icons/svg/swap.esm.js";import"../nile-icon/icons/svg/switch.esm.js";import"../nile-icon/icons/svg/sync.esm.js";import"../nile-icon/icons/svg/table.esm.js";import"../nile-icon/icons/svg/tag.esm.js";import"../nile-icon/icons/svg/test.esm.js";import"../nile-icon/icons/svg/text-02.esm.js";import"../nile-icon/icons/svg/text.esm.js";import"../nile-icon/icons/svg/textarea-expander.esm.js";import"../nile-icon/icons/svg/thumbsdown.esm.js";import"../nile-icon/icons/svg/thumbsup.esm.js";import"../nile-icon/icons/svg/thumsup.esm.js";import"../nile-icon/icons/svg/tick.esm.js";import"../nile-icon/icons/svg/timeupdate.esm.js";import"../nile-icon/icons/svg/timezone.esm.js";import"../nile-icon/icons/svg/transaction_monitor.esm.js";import"../nile-icon/icons/svg/trend-up-02.esm.js";import"../nile-icon/icons/svg/trigger.esm.js";import"../nile-icon/icons/svg/undo-02.esm.js";import"../nile-icon/icons/svg/undo.esm.js";import"../nile-icon/icons/svg/union.esm.js";import"../nile-icon/icons/svg/unmute.esm.js";import"../nile-icon/icons/svg/update.esm.js";import"../nile-icon/icons/svg/updown.esm.js";import"../nile-icon/icons/svg/upgrade.esm.js";import"../nile-icon/icons/svg/upload.esm.js";import"../nile-icon/icons/svg/user-group.esm.js";import"../nile-icon/icons/svg/user.esm.js";import"../nile-icon/icons/svg/useractive.esm.js";import"../nile-icon/icons/svg/useradd.esm.js";import"../nile-icon/icons/svg/useraddgroup.esm.js";import"../nile-icon/icons/svg/userfind.esm.js";import"../nile-icon/icons/svg/userimport.esm.js";import"../nile-icon/icons/svg/userimportgroup.esm.js";import"../nile-icon/icons/svg/usermixed.esm.js";import"../nile-icon/icons/svg/userremove.esm.js";import"../nile-icon/icons/svg/userremovegroup.esm.js";import"../nile-icon/icons/svg/users-plus.esm.js";import"../nile-icon/icons/svg/users-up.esm.js";import"../nile-icon/icons/svg/users.esm.js";import"../nile-icon/icons/svg/userupdate.esm.js";import"../nile-icon/icons/svg/validationexpression.esm.js";import"../nile-icon/icons/svg/variable-global.esm.js";import"../nile-icon/icons/svg/variable-local.esm.js";import"../nile-icon/icons/svg/variable-new.esm.js";import"../nile-icon/icons/svg/variable.esm.js";import"../nile-icon/icons/svg/video.esm.js";import"../nile-icon/icons/svg/view.esm.js";import"../nile-icon/icons/svg/virtualserver.esm.js";import"../nile-icon/icons/svg/virtualservergroup.esm.js";import"../nile-icon/icons/svg/visibility.esm.js";import"../nile-icon/icons/svg/visibilityoff.esm.js";import"../nile-icon/icons/svg/wait.esm.js";import"../nile-icon/icons/svg/warning-01.esm.js";import"../nile-icon/icons/svg/warning.esm.js";import"../nile-icon/icons/svg/whileloop.esm.js";import"../nile-icon/icons/svg/workflow-application.esm.js";import"../nile-icon/icons/svg/workflow-text.esm.js";import"../nile-icon/icons/svg/workflow.esm.js";import"../nile-icon/icons/svg/writeexpression.esm.js";import"../nile-icon/aliasmap.esm.js";import"../nile-spinner/nile-spinner.esm.js";import"../nile-spinner/nile-spinner.css.esm.js";function p(i,s=!1){function o(i){const s=i.getChildrenItems({includeDisabled:!1});if(s.length){const o=s.every((i=>i.selected)),n=s.every((i=>!i.selected&&!i.indeterminate));i.selected=o,i.indeterminate=!o&&!n}}!function i(n){for(const o of n.getChildrenItems())o.selected=s?n.selected||o.selected:!o.disabled&&n.selected,i(o);s&&o(n)}(i),function i(s){const n=s.parentElement;l.isTreeItem(n)&&(o(n),i(n))}(i)}let g=class extends o{constructor(){super(...arguments),this.selection="leaf",this.clickTarget=null,this.initTreeItem=i=>{i.selectable="multiple"===this.selection,["expand","collapse"].filter((i=>!!this.querySelector(`[slot="${i}-icon"]`))).forEach((s=>{const o=i.querySelector(`[slot="${s}-icon"]`);null===o?i.append(this.getExpandButtonIcon(s)):o.hasAttribute("data-default")&&o.replaceWith(this.getExpandButtonIcon(s))}))}}async connectedCallback(){super.connectedCallback(),this.handleTreeChanged=this.handleTreeChanged.bind(this),this.handleFocusIn=this.handleFocusIn.bind(this),this.handleFocusOut=this.handleFocusOut.bind(this),this.setAttribute("role","tree"),this.setAttribute("tabindex","0"),this.addEventListener("focusin",this.handleFocusIn),this.addEventListener("focusout",this.handleFocusOut),this.addEventListener("nile-lazy-change",this.handleSlotChange),await this.updateComplete,this.mutationObserver=new MutationObserver(this.handleTreeChanged),this.mutationObserver.observe(this,{childList:!0,subtree:!0})}disconnectedCallback(){super.disconnectedCallback(),this.mutationObserver.disconnect(),this.removeEventListener("focusin",this.handleFocusIn),this.removeEventListener("focusout",this.handleFocusOut),this.removeEventListener("nile-lazy-change",this.handleSlotChange)}getExpandButtonIcon(i){const s=("expand"===i?this.expandedIconSlot:this.collapsedIconSlot).assignedElements({flatten:!0})[0];if(s){const o=s.cloneNode(!0);return[o,...o.querySelectorAll("[id]")].forEach((i=>i.removeAttribute("id"))),o.setAttribute("data-default",""),o.slot=`${i}-icon`,o}return null}handleTreeChanged(i){for(const s of i){const i=[...s.addedNodes].filter(l.isTreeItem),o=[...s.removedNodes].filter(l.isTreeItem);i.forEach(this.initTreeItem),o.includes(this.lastFocusedItem)&&this.focusItem(this.getFocusableItems()[0])}}syncTreeItems(i){const s=this.getAllTreeItems();if("multiple"===this.selection)p(i);else for(const o of s)o!==i&&(o.selected=!1)}selectItem(i){const s=[...this.selectedItems];"multiple"===this.selection?(i.selected=!i.selected,i.lazy&&(i.expanded=!0),this.syncTreeItems(i)):"single"===this.selection||i.isLeaf?(i.expanded=!i.expanded,i.selected=!0,this.syncTreeItems(i)):"leaf"===this.selection&&(i.expanded=!i.expanded);const o=this.selectedItems;(s.length!==o.length||o.some((i=>!s.includes(i))))&&Promise.all(o.map((i=>i.updateComplete))).then((()=>{this.emit("nile-selection-change",{detail:{selection:o}})}))}getAllTreeItems(){return[...this.querySelectorAll("nile-tree-item")]}focusItem(i){i?.focus()}handleKeyDown(i){if(!["ArrowDown","ArrowUp","ArrowRight","ArrowLeft","Home","End","Enter"," "].includes(i.key))return;const s=this.getFocusableItems();if(s.length>0){i.preventDefault();const o=s.findIndex((i=>i.matches(":focus"))),e=s[o],c=i=>{const o=s[n(i,0,s.length-1)];this.focusItem(o)},m=i=>{e.expanded=i};"ArrowDown"===i.key?c(o+1):"ArrowUp"===i.key?c(o-1):"ArrowRight"===i.key?!e||e.disabled||e.expanded||e.isLeaf&&!e.lazy?c(o+1):m(!0):"ArrowLeft"===i.key?!e||e.disabled||e.isLeaf||!e.expanded?c(o-1):m(!1):"Home"===i.key?c(0):"End"===i.key?c(s.length-1):"Enter"!==i.key&&" "!==i.key||e.disabled||this.selectItem(e)}}handleClick(i){const s=i.target,o=s.closest("nile-tree-item"),n=i.composedPath().some((i=>i?.classList?.contains("tree-item__expand-button")));o&&!o.disabled&&s===this.clickTarget&&("multiple"===this.selection&&n?o.expanded=!o.expanded:this.selectItem(o))}handleMouseDown(i){this.clickTarget=i.target}handleFocusOut(i){const s=i.relatedTarget;s&&this.contains(s)||(this.tabIndex=0)}handleFocusIn(i){const s=i.target;i.target===this&&this.focusItem(this.lastFocusedItem||this.getAllTreeItems()[0]),l.isTreeItem(s)&&!s.disabled&&(this.lastFocusedItem&&(this.lastFocusedItem.tabIndex=-1),this.lastFocusedItem=s,this.tabIndex=-1,s.tabIndex=0)}handleSlotChange(){this.getAllTreeItems().forEach(this.initTreeItem)}async handleSelectionChange(){const i="multiple"===this.selection,s=this.getAllTreeItems();this.setAttribute("aria-multiselectable",i?"true":"false");for(const o of s)o.selectable=i;i&&(await this.updateComplete,[...this.querySelectorAll(":scope > nile-tree-item")].forEach((i=>p(i,!0))))}get selectedItems(){return this.getAllTreeItems().filter((i=>i.selected))}getFocusableItems(){const i=this.getAllTreeItems(),s=new Set;return i.filter((i=>{if(i.disabled)return!1;const o=i.parentElement?.closest("[role=treeitem]");return o&&(!o.expanded||o.loading||s.has(o))&&s.add(i),!s.has(i)}))}render(){return t`
1
+ import{__decorate as i}from"tslib";import{s}from"./nile-tree.css.esm.js";import{N as o}from"../internal/nile-element.esm.js";import{c as n}from"../internal/math.esm.js";import{query as e,property as c,customElement as m}from"lit/decorators.js";import{html as t}from"lit";import{w as r}from"../internal/watch.esm.js";import{N as l}from"../nile-tree-item/nile-tree-item.esm.js";import"../internal/animate.esm.js";import"lit/directives/class-map.js";import"../utilities/animation-registry.esm.js";import"lit/directives/live.js";import"lit/directives/when.js";import"../nile-tree-item/nile-tree-item.css.esm.js";import"../nile-checkbox/nile-checkbox.esm.js";import"../nile-checkbox/nile-checkbox.css.esm.js";import"../internal/default-value.esm.js";import"lit/directives/if-defined.js";import"../nile-icon/index.esm.js";import"lit/directives/unsafe-svg.js";import"../nile-icon/icons/svg/index.esm.js";import"../nile-icon/icons/svg/access-request.esm.js";import"../nile-icon/icons/svg/accessreview.esm.js";import"../nile-icon/icons/svg/action.esm.js";import"../nile-icon/icons/svg/activity-logs.esm.js";import"../nile-icon/icons/svg/address.esm.js";import"../nile-icon/icons/svg/admin-users.esm.js";import"../nile-icon/icons/svg/agent.esm.js";import"../nile-icon/icons/svg/aggregation.esm.js";import"../nile-icon/icons/svg/alert-circle.esm.js";import"../nile-icon/icons/svg/alert.esm.js";import"../nile-icon/icons/svg/allapplication.esm.js";import"../nile-icon/icons/svg/allsearch.esm.js";import"../nile-icon/icons/svg/analytics.esm.js";import"../nile-icon/icons/svg/api.esm.js";import"../nile-icon/icons/svg/applications-2.esm.js";import"../nile-icon/icons/svg/apply-filter.esm.js";import"../nile-icon/icons/svg/apps.esm.js";import"../nile-icon/icons/svg/aquera.esm.js";import"../nile-icon/icons/svg/aquerasupport.esm.js";import"../nile-icon/icons/svg/array-loop.esm.js";import"../nile-icon/icons/svg/array-of-boolean.esm.js";import"../nile-icon/icons/svg/array-of-integer.esm.js";import"../nile-icon/icons/svg/array-of-string.esm.js";import"../nile-icon/icons/svg/array.esm.js";import"../nile-icon/icons/svg/arrayofobject.esm.js";import"../nile-icon/icons/svg/arrow-narrow-left.esm.js";import"../nile-icon/icons/svg/arrow.esm.js";import"../nile-icon/icons/svg/arrowdown.esm.js";import"../nile-icon/icons/svg/arrowdropdown.esm.js";import"../nile-icon/icons/svg/arrowdropup.esm.js";import"../nile-icon/icons/svg/arrowleft.esm.js";import"../nile-icon/icons/svg/arrowright.esm.js";import"../nile-icon/icons/svg/arrowup.esm.js";import"../nile-icon/icons/svg/attribute-map-analysis-icon.esm.js";import"../nile-icon/icons/svg/attributemap.esm.js";import"../nile-icon/icons/svg/automation-details.esm.js";import"../nile-icon/icons/svg/back.esm.js";import"../nile-icon/icons/svg/bar-and-line-chart.esm.js";import"../nile-icon/icons/svg/bar-chart-square-02.esm.js";import"../nile-icon/icons/svg/bar-chart.esm.js";import"../nile-icon/icons/svg/bargraph.esm.js";import"../nile-icon/icons/svg/block.esm.js";import"../nile-icon/icons/svg/bluedot.esm.js";import"../nile-icon/icons/svg/book-closed.esm.js";import"../nile-icon/icons/svg/boolean.esm.js";import"../nile-icon/icons/svg/border_all.esm.js";import"../nile-icon/icons/svg/box.esm.js";import"../nile-icon/icons/svg/bubble-chart.esm.js";import"../nile-icon/icons/svg/bulk-sync.esm.js";import"../nile-icon/icons/svg/button-loading-black.esm.js";import"../nile-icon/icons/svg/button-loading-blue-animated.esm.js";import"../nile-icon/icons/svg/button-loading-blue.esm.js";import"../nile-icon/icons/svg/button-loading-white.esm.js";import"../nile-icon/icons/svg/calendar.esm.js";import"../nile-icon/icons/svg/cases.esm.js";import"../nile-icon/icons/svg/cell-loader.esm.js";import"../nile-icon/icons/svg/certification.esm.js";import"../nile-icon/icons/svg/check-circle.esm.js";import"../nile-icon/icons/svg/check-done-01.esm.js";import"../nile-icon/icons/svg/check-done-02.esm.js";import"../nile-icon/icons/svg/chevron-left-double.esm.js";import"../nile-icon/icons/svg/chevron-up.esm.js";import"../nile-icon/icons/svg/clock-check.esm.js";import"../nile-icon/icons/svg/clock-rewind.esm.js";import"../nile-icon/icons/svg/clock.esm.js";import"../nile-icon/icons/svg/close.esm.js";import"../nile-icon/icons/svg/cloud-01.esm.js";import"../nile-icon/icons/svg/code-generator.esm.js";import"../nile-icon/icons/svg/collapse-1.esm.js";import"../nile-icon/icons/svg/collapse.esm.js";import"../nile-icon/icons/svg/color.esm.js";import"../nile-icon/icons/svg/column-02.esm.js";import"../nile-icon/icons/svg/columns-03.esm.js";import"../nile-icon/icons/svg/combo1.esm.js";import"../nile-icon/icons/svg/comment.esm.js";import"../nile-icon/icons/svg/compact.esm.js";import"../nile-icon/icons/svg/compare-tiles.esm.js";import"../nile-icon/icons/svg/compare.esm.js";import"../nile-icon/icons/svg/component-menu.esm.js";import"../nile-icon/icons/svg/component.esm.js";import"../nile-icon/icons/svg/components-icon.esm.js";import"../nile-icon/icons/svg/componenttext.esm.js";import"../nile-icon/icons/svg/condition.esm.js";import"../nile-icon/icons/svg/conditions.esm.js";import"../nile-icon/icons/svg/connect.esm.js";import"../nile-icon/icons/svg/connectivitymap.esm.js";import"../nile-icon/icons/svg/connectorrightarrow.esm.js";import"../nile-icon/icons/svg/copy-06.esm.js";import"../nile-icon/icons/svg/copy.esm.js";import"../nile-icon/icons/svg/cor-analysis.esm.js";import"../nile-icon/icons/svg/correlation.esm.js";import"../nile-icon/icons/svg/cost-analytics.esm.js";import"../nile-icon/icons/svg/create.esm.js";import"../nile-icon/icons/svg/createuser.esm.js";import"../nile-icon/icons/svg/dashboard.esm.js";import"../nile-icon/icons/svg/data-insight.esm.js";import"../nile-icon/icons/svg/data-type-array.esm.js";import"../nile-icon/icons/svg/data-type-boolean.esm.js";import"../nile-icon/icons/svg/data-type-json.esm.js";import"../nile-icon/icons/svg/data-type-null.esm.js";import"../nile-icon/icons/svg/data-type-number.esm.js";import"../nile-icon/icons/svg/data-type-string.esm.js";import"../nile-icon/icons/svg/data-type-unknown.esm.js";import"../nile-icon/icons/svg/database.esm.js";import"../nile-icon/icons/svg/databaseview.esm.js";import"../nile-icon/icons/svg/dataflow-03.esm.js";import"../nile-icon/icons/svg/dataflow-04.esm.js";import"../nile-icon/icons/svg/default-cursor.esm.js";import"../nile-icon/icons/svg/default.esm.js";import"../nile-icon/icons/svg/delegate.esm.js";import"../nile-icon/icons/svg/delete.esm.js";import"../nile-icon/icons/svg/deligateduser.esm.js";import"../nile-icon/icons/svg/directory.esm.js";import"../nile-icon/icons/svg/disabled.esm.js";import"../nile-icon/icons/svg/dock-to-right.esm.js";import"../nile-icon/icons/svg/document-new.esm.js";import"../nile-icon/icons/svg/done-02.esm.js";import"../nile-icon/icons/svg/done.esm.js";import"../nile-icon/icons/svg/dontmap.esm.js";import"../nile-icon/icons/svg/donut.esm.js";import"../nile-icon/icons/svg/dotpoints-02.esm.js";import"../nile-icon/icons/svg/dots-grid.esm.js";import"../nile-icon/icons/svg/doublearrowleft.esm.js";import"../nile-icon/icons/svg/doublearrowright.esm.js";import"../nile-icon/icons/svg/dowhileloop.esm.js";import"../nile-icon/icons/svg/downgrade.esm.js";import"../nile-icon/icons/svg/download.esm.js";import"../nile-icon/icons/svg/drag.esm.js";import"../nile-icon/icons/svg/edit-write.esm.js";import"../nile-icon/icons/svg/else.esm.js";import"../nile-icon/icons/svg/email.esm.js";import"../nile-icon/icons/svg/enable.esm.js";import"../nile-icon/icons/svg/entities.esm.js";import"../nile-icon/icons/svg/entitlement.esm.js";import"../nile-icon/icons/svg/error.esm.js";import"../nile-icon/icons/svg/escalate.esm.js";import"../nile-icon/icons/svg/exactmatch.esm.js";import"../nile-icon/icons/svg/execute.esm.js";import"../nile-icon/icons/svg/expand-03.esm.js";import"../nile-icon/icons/svg/expand-06.esm.js";import"../nile-icon/icons/svg/expand-2.esm.js";import"../nile-icon/icons/svg/expand.esm.js";import"../nile-icon/icons/svg/eye-off.esm.js";import"../nile-icon/icons/svg/eye.esm.js";import"../nile-icon/icons/svg/eyeclosed.esm.js";import"../nile-icon/icons/svg/featured-icon.esm.js";import"../nile-icon/icons/svg/file-06.esm.js";import"../nile-icon/icons/svg/file-check-02.esm.js";import"../nile-icon/icons/svg/file-shield-01.esm.js";import"../nile-icon/icons/svg/file-shield-02.esm.js";import"../nile-icon/icons/svg/file-type-icon.esm.js";import"../nile-icon/icons/svg/file.esm.js";import"../nile-icon/icons/svg/filter-1.esm.js";import"../nile-icon/icons/svg/filter.esm.js";import"../nile-icon/icons/svg/fingerprint-03.esm.js";import"../nile-icon/icons/svg/firewall.esm.js";import"../nile-icon/icons/svg/firewallagent.esm.js";import"../nile-icon/icons/svg/flow.esm.js";import"../nile-icon/icons/svg/flowmap-agent.esm.js";import"../nile-icon/icons/svg/flowmap-application.esm.js";import"../nile-icon/icons/svg/flowmap-colorpalatte.esm.js";import"../nile-icon/icons/svg/flowmap-firewall-agent.esm.js";import"../nile-icon/icons/svg/flowmap-firewall.esm.js";import"../nile-icon/icons/svg/flowmap-gateway.esm.js";import"../nile-icon/icons/svg/flowmap-orchestration.esm.js";import"../nile-icon/icons/svg/flowmap-undo.esm.js";import"../nile-icon/icons/svg/flowmap-workflow.esm.js";import"../nile-icon/icons/svg/flowmap.esm.js";import"../nile-icon/icons/svg/folder.esm.js";import"../nile-icon/icons/svg/foreach.esm.js";import"../nile-icon/icons/svg/frequency.esm.js";import"../nile-icon/icons/svg/full-union.esm.js";import"../nile-icon/icons/svg/fullscreen.esm.js";import"../nile-icon/icons/svg/fullscreenexit.esm.js";import"../nile-icon/icons/svg/fullscreenshrink.esm.js";import"../nile-icon/icons/svg/funnel-02.esm.js";import"../nile-icon/icons/svg/funnel.esm.js";import"../nile-icon/icons/svg/gateway.esm.js";import"../nile-icon/icons/svg/gauge.esm.js";import"../nile-icon/icons/svg/general.esm.js";import"../nile-icon/icons/svg/generationphase.esm.js";import"../nile-icon/icons/svg/global-search.esm.js";import"../nile-icon/icons/svg/globe-03.esm.js";import"../nile-icon/icons/svg/globe.esm.js";import"../nile-icon/icons/svg/goto.esm.js";import"../nile-icon/icons/svg/graph.esm.js";import"../nile-icon/icons/svg/graphedit.esm.js";import"../nile-icon/icons/svg/greendot.esm.js";import"../nile-icon/icons/svg/greydot.esm.js";import"../nile-icon/icons/svg/greylightdot.esm.js";import"../nile-icon/icons/svg/grid-01.esm.js";import"../nile-icon/icons/svg/group-analysis-icon.esm.js";import"../nile-icon/icons/svg/group.esm.js";import"../nile-icon/icons/svg/groupby.esm.js";import"../nile-icon/icons/svg/groups.esm.js";import"../nile-icon/icons/svg/guide-01.esm.js";import"../nile-icon/icons/svg/guide.esm.js";import"../nile-icon/icons/svg/handtool.esm.js";import"../nile-icon/icons/svg/header-child-workflow.esm.js";import"../nile-icon/icons/svg/header-flows.esm.js";import"../nile-icon/icons/svg/header-tasks.esm.js";import"../nile-icon/icons/svg/headphones-01.esm.js";import"../nile-icon/icons/svg/help.esm.js";import"../nile-icon/icons/svg/helpandsupport.esm.js";import"../nile-icon/icons/svg/helpers.esm.js";import"../nile-icon/icons/svg/helpsupport.esm.js";import"../nile-icon/icons/svg/history.esm.js";import"../nile-icon/icons/svg/identitygraph.esm.js";import"../nile-icon/icons/svg/identityledger.esm.js";import"../nile-icon/icons/svg/ifelse.esm.js";import"../nile-icon/icons/svg/ifelsenew.esm.js";import"../nile-icon/icons/svg/image.esm.js";import"../nile-icon/icons/svg/immutable.esm.js";import"../nile-icon/icons/svg/info-icon.esm.js";import"../nile-icon/icons/svg/info.esm.js";import"../nile-icon/icons/svg/inner-union.esm.js";import"../nile-icon/icons/svg/inprogress.esm.js";import"../nile-icon/icons/svg/insert-at-cursor.esm.js";import"../nile-icon/icons/svg/integer.esm.js";import"../nile-icon/icons/svg/intersection.esm.js";import"../nile-icon/icons/svg/js.esm.js";import"../nile-icon/icons/svg/key-performance-indicator.esm.js";import"../nile-icon/icons/svg/keyboard-01.esm.js";import"../nile-icon/icons/svg/kill.esm.js";import"../nile-icon/icons/svg/laptop-01.esm.js";import"../nile-icon/icons/svg/layers-three-02.esm.js";import"../nile-icon/icons/svg/layout-alt-02.esm.js";import"../nile-icon/icons/svg/layout-alt-03.esm.js";import"../nile-icon/icons/svg/left-join.esm.js";import"../nile-icon/icons/svg/left-union.esm.js";import"../nile-icon/icons/svg/leftpointarrow.esm.js";import"../nile-icon/icons/svg/life-buoy-01.esm.js";import"../nile-icon/icons/svg/line.esm.js";import"../nile-icon/icons/svg/link.esm.js";import"../nile-icon/icons/svg/list-attribute.esm.js";import"../nile-icon/icons/svg/list.esm.js";import"../nile-icon/icons/svg/loader.esm.js";import"../nile-icon/icons/svg/loading.esm.js";import"../nile-icon/icons/svg/loading2.esm.js";import"../nile-icon/icons/svg/lock.esm.js";import"../nile-icon/icons/svg/log-info.esm.js";import"../nile-icon/icons/svg/log.esm.js";import"../nile-icon/icons/svg/logo-white.esm.js";import"../nile-icon/icons/svg/logout.esm.js";import"../nile-icon/icons/svg/logs.esm.js";import"../nile-icon/icons/svg/loop.esm.js";import"../nile-icon/icons/svg/manage.esm.js";import"../nile-icon/icons/svg/map.esm.js";import"../nile-icon/icons/svg/mapcreate.esm.js";import"../nile-icon/icons/svg/mapdont.esm.js";import"../nile-icon/icons/svg/maponcreate.esm.js";import"../nile-icon/icons/svg/maponupdate.esm.js";import"../nile-icon/icons/svg/mapper.esm.js";import"../nile-icon/icons/svg/mapupdate.esm.js";import"../nile-icon/icons/svg/marker-pin-01.esm.js";import"../nile-icon/icons/svg/maximize.esm.js";import"../nile-icon/icons/svg/menu.esm.js";import"../nile-icon/icons/svg/message-notification-square.esm.js";import"../nile-icon/icons/svg/minus.esm.js";import"../nile-icon/icons/svg/monitor-01.esm.js";import"../nile-icon/icons/svg/mouse.esm.js";import"../nile-icon/icons/svg/move-application.esm.js";import"../nile-icon/icons/svg/moveleft.esm.js";import"../nile-icon/icons/svg/moveright.esm.js";import"../nile-icon/icons/svg/mute.esm.js";import"../nile-icon/icons/svg/my-integration.esm.js";import"../nile-icon/icons/svg/new-calendar.esm.js";import"../nile-icon/icons/svg/nightingale-chart.esm.js";import"../nile-icon/icons/svg/nlp.esm.js";import"../nile-icon/icons/svg/nomatch.esm.js";import"../nile-icon/icons/svg/note.esm.js";import"../nile-icon/icons/svg/notification.esm.js";import"../nile-icon/icons/svg/notificationadd.esm.js";import"../nile-icon/icons/svg/notificationadded.esm.js";import"../nile-icon/icons/svg/null.esm.js";import"../nile-icon/icons/svg/number.esm.js";import"../nile-icon/icons/svg/numberinput.esm.js";import"../nile-icon/icons/svg/numbers.esm.js";import"../nile-icon/icons/svg/object.esm.js";import"../nile-icon/icons/svg/operators.esm.js";import"../nile-icon/icons/svg/options.esm.js";import"../nile-icon/icons/svg/orchestration-solid.esm.js";import"../nile-icon/icons/svg/orchestration.esm.js";import"../nile-icon/icons/svg/organization.esm.js";import"../nile-icon/icons/svg/other.esm.js";import"../nile-icon/icons/svg/otherdetails.esm.js";import"../nile-icon/icons/svg/override.esm.js";import"../nile-icon/icons/svg/palletemenu.esm.js";import"../nile-icon/icons/svg/paperclip.esm.js";import"../nile-icon/icons/svg/partner.esm.js";import"../nile-icon/icons/svg/partners.esm.js";import"../nile-icon/icons/svg/pause.esm.js";import"../nile-icon/icons/svg/pencil.esm.js";import"../nile-icon/icons/svg/peopletask.esm.js";import"../nile-icon/icons/svg/persistent-variable.esm.js";import"../nile-icon/icons/svg/persistentdata.esm.js";import"../nile-icon/icons/svg/phone.esm.js";import"../nile-icon/icons/svg/pie.esm.js";import"../nile-icon/icons/svg/pin.esm.js";import"../nile-icon/icons/svg/play.esm.js";import"../nile-icon/icons/svg/play_pause.esm.js";import"../nile-icon/icons/svg/plus.esm.js";import"../nile-icon/icons/svg/pluscircle.esm.js";import"../nile-icon/icons/svg/plussquare.esm.js";import"../nile-icon/icons/svg/policy.esm.js";import"../nile-icon/icons/svg/potentialmatch.esm.js";import"../nile-icon/icons/svg/poweron.esm.js";import"../nile-icon/icons/svg/predefined.esm.js";import"../nile-icon/icons/svg/preview.esm.js";import"../nile-icon/icons/svg/printer.esm.js";import"../nile-icon/icons/svg/priority-high.esm.js";import"../nile-icon/icons/svg/priority-highest.esm.js";import"../nile-icon/icons/svg/priority-low.esm.js";import"../nile-icon/icons/svg/priority-medium.esm.js";import"../nile-icon/icons/svg/privilage.esm.js";import"../nile-icon/icons/svg/privilege.esm.js";import"../nile-icon/icons/svg/privilegeobject.esm.js";import"../nile-icon/icons/svg/process.esm.js";import"../nile-icon/icons/svg/professionaldetails.esm.js";import"../nile-icon/icons/svg/question.esm.js";import"../nile-icon/icons/svg/radar.esm.js";import"../nile-icon/icons/svg/radio.esm.js";import"../nile-icon/icons/svg/radioactive.esm.js";import"../nile-icon/icons/svg/radiodone.esm.js";import"../nile-icon/icons/svg/read.esm.js";import"../nile-icon/icons/svg/readexpression.esm.js";import"../nile-icon/icons/svg/readonly.esm.js";import"../nile-icon/icons/svg/readonlyuser.esm.js";import"../nile-icon/icons/svg/readuser.esm.js";import"../nile-icon/icons/svg/reddot.esm.js";import"../nile-icon/icons/svg/redo-02.esm.js";import"../nile-icon/icons/svg/redo.esm.js";import"../nile-icon/icons/svg/refresh.esm.js";import"../nile-icon/icons/svg/reminder.esm.js";import"../nile-icon/icons/svg/resize.esm.js";import"../nile-icon/icons/svg/resource.esm.js";import"../nile-icon/icons/svg/resource_analysis.esm.js";import"../nile-icon/icons/svg/resource_graph.esm.js";import"../nile-icon/icons/svg/restart_alt.esm.js";import"../nile-icon/icons/svg/revocation-cycle.esm.js";import"../nile-icon/icons/svg/right-join.esm.js";import"../nile-icon/icons/svg/right-union.esm.js";import"../nile-icon/icons/svg/rocket-02.esm.js";import"../nile-icon/icons/svg/role.esm.js";import"../nile-icon/icons/svg/run.esm.js";import"../nile-icon/icons/svg/sankey.esm.js";import"../nile-icon/icons/svg/save.esm.js";import"../nile-icon/icons/svg/scatter-plot.esm.js";import"../nile-icon/icons/svg/schedule.esm.js";import"../nile-icon/icons/svg/schema.esm.js";import"../nile-icon/icons/svg/script.esm.js";import"../nile-icon/icons/svg/search-steps-icon.esm.js";import"../nile-icon/icons/svg/search.esm.js";import"../nile-icon/icons/svg/section.esm.js";import"../nile-icon/icons/svg/select-02.esm.js";import"../nile-icon/icons/svg/select.esm.js";import"../nile-icon/icons/svg/selectapplication.esm.js";import"../nile-icon/icons/svg/selectattributes.esm.js";import"../nile-icon/icons/svg/semi-circle-donut-chart.esm.js";import"../nile-icon/icons/svg/send.esm.js";import"../nile-icon/icons/svg/sendemail.esm.js";import"../nile-icon/icons/svg/sendescalation.esm.js";import"../nile-icon/icons/svg/sendreminder.esm.js";import"../nile-icon/icons/svg/server-03.esm.js";import"../nile-icon/icons/svg/settings-02.esm.js";import"../nile-icon/icons/svg/settings.esm.js";import"../nile-icon/icons/svg/share.esm.js";import"../nile-icon/icons/svg/shield-01.esm.js";import"../nile-icon/icons/svg/smartcode.esm.js";import"../nile-icon/icons/svg/sort.esm.js";import"../nile-icon/icons/svg/sort_ascending.esm.js";import"../nile-icon/icons/svg/sort_descending.esm.js";import"../nile-icon/icons/svg/sortascending.esm.js";import"../nile-icon/icons/svg/sortdescending.esm.js";import"../nile-icon/icons/svg/sortdown.esm.js";import"../nile-icon/icons/svg/sortup.esm.js";import"../nile-icon/icons/svg/stacked-bar-chart.esm.js";import"../nile-icon/icons/svg/step_into.esm.js";import"../nile-icon/icons/svg/step_out.esm.js";import"../nile-icon/icons/svg/step_over.esm.js";import"../nile-icon/icons/svg/stop.esm.js";import"../nile-icon/icons/svg/storybook.esm.js";import"../nile-icon/icons/svg/string.esm.js";import"../nile-icon/icons/svg/stringinput.esm.js";import"../nile-icon/icons/svg/stringletters.esm.js";import"../nile-icon/icons/svg/support.esm.js";import"../nile-icon/icons/svg/swap.esm.js";import"../nile-icon/icons/svg/switch.esm.js";import"../nile-icon/icons/svg/sync.esm.js";import"../nile-icon/icons/svg/table.esm.js";import"../nile-icon/icons/svg/tag.esm.js";import"../nile-icon/icons/svg/test.esm.js";import"../nile-icon/icons/svg/text-02.esm.js";import"../nile-icon/icons/svg/text.esm.js";import"../nile-icon/icons/svg/textarea-expander.esm.js";import"../nile-icon/icons/svg/thumbsdown.esm.js";import"../nile-icon/icons/svg/thumbsup.esm.js";import"../nile-icon/icons/svg/thumsup.esm.js";import"../nile-icon/icons/svg/tick.esm.js";import"../nile-icon/icons/svg/timeupdate.esm.js";import"../nile-icon/icons/svg/timezone.esm.js";import"../nile-icon/icons/svg/transaction_monitor.esm.js";import"../nile-icon/icons/svg/trend-up-02.esm.js";import"../nile-icon/icons/svg/trigger.esm.js";import"../nile-icon/icons/svg/undo-02.esm.js";import"../nile-icon/icons/svg/undo.esm.js";import"../nile-icon/icons/svg/union.esm.js";import"../nile-icon/icons/svg/unmute.esm.js";import"../nile-icon/icons/svg/update.esm.js";import"../nile-icon/icons/svg/updown.esm.js";import"../nile-icon/icons/svg/upgrade.esm.js";import"../nile-icon/icons/svg/upload.esm.js";import"../nile-icon/icons/svg/user-group.esm.js";import"../nile-icon/icons/svg/user.esm.js";import"../nile-icon/icons/svg/useractive.esm.js";import"../nile-icon/icons/svg/useradd.esm.js";import"../nile-icon/icons/svg/useraddgroup.esm.js";import"../nile-icon/icons/svg/userfind.esm.js";import"../nile-icon/icons/svg/userimport.esm.js";import"../nile-icon/icons/svg/userimportgroup.esm.js";import"../nile-icon/icons/svg/usermixed.esm.js";import"../nile-icon/icons/svg/userremove.esm.js";import"../nile-icon/icons/svg/userremovegroup.esm.js";import"../nile-icon/icons/svg/users-plus.esm.js";import"../nile-icon/icons/svg/users-up.esm.js";import"../nile-icon/icons/svg/users.esm.js";import"../nile-icon/icons/svg/userupdate.esm.js";import"../nile-icon/icons/svg/validationexpression.esm.js";import"../nile-icon/icons/svg/variable-global.esm.js";import"../nile-icon/icons/svg/variable-local.esm.js";import"../nile-icon/icons/svg/variable-new.esm.js";import"../nile-icon/icons/svg/variable.esm.js";import"../nile-icon/icons/svg/video.esm.js";import"../nile-icon/icons/svg/view.esm.js";import"../nile-icon/icons/svg/virtualserver.esm.js";import"../nile-icon/icons/svg/virtualservergroup.esm.js";import"../nile-icon/icons/svg/visibility.esm.js";import"../nile-icon/icons/svg/visibilityoff.esm.js";import"../nile-icon/icons/svg/wait.esm.js";import"../nile-icon/icons/svg/warning-01.esm.js";import"../nile-icon/icons/svg/warning.esm.js";import"../nile-icon/icons/svg/whileloop.esm.js";import"../nile-icon/icons/svg/workflow-application.esm.js";import"../nile-icon/icons/svg/workflow-text.esm.js";import"../nile-icon/icons/svg/workflow.esm.js";import"../nile-icon/icons/svg/writeexpression.esm.js";import"../nile-icon/aliasmap.esm.js";import"../nile-spinner/nile-spinner.esm.js";import"../nile-spinner/nile-spinner.css.esm.js";function p(i,s=!1){function o(i){const s=i.getChildrenItems({includeDisabled:!1});if(s.length){const o=s.every((i=>i.selected)),n=s.every((i=>!i.selected&&!i.indeterminate));i.selected=o,i.indeterminate=!o&&!n}}!function i(n){for(const o of n.getChildrenItems())o.selected=s?n.selected||o.selected:!o.disabled&&n.selected,i(o);s&&o(n)}(i),function i(s){const n=s.parentElement;l.isTreeItem(n)&&(o(n),i(n))}(i)}let g=class extends o{constructor(){super(...arguments),this.selection="leaf",this.clickTarget=null,this.initTreeItem=i=>{i.selectable="multiple"===this.selection,["expand","collapse"].filter((i=>!!this.querySelector(`[slot="${i}-icon"]`))).forEach((s=>{const o=i.querySelector(`[slot="${s}-icon"]`);null===o?i.append(this.getExpandButtonIcon(s)):o.hasAttribute("data-default")&&o.replaceWith(this.getExpandButtonIcon(s))}))}}async connectedCallback(){super.connectedCallback(),this.handleTreeChanged=this.handleTreeChanged.bind(this),this.handleFocusIn=this.handleFocusIn.bind(this),this.handleFocusOut=this.handleFocusOut.bind(this),this.setAttribute("role","tree"),this.setAttribute("tabindex","0"),this.addEventListener("focusin",this.handleFocusIn),this.addEventListener("focusout",this.handleFocusOut),this.addEventListener("nile-lazy-change",this.handleSlotChange),await this.updateComplete,this.mutationObserver=new MutationObserver(this.handleTreeChanged),this.mutationObserver.observe(this,{childList:!0,subtree:!0})}disconnectedCallback(){super.disconnectedCallback(),this.mutationObserver.disconnect(),this.removeEventListener("focusin",this.handleFocusIn),this.removeEventListener("focusout",this.handleFocusOut),this.removeEventListener("nile-lazy-change",this.handleSlotChange)}getExpandButtonIcon(i){const s=("expand"===i?this.expandedIconSlot:this.collapsedIconSlot).assignedElements({flatten:!0})[0];if(s){const o=s.cloneNode(!0);return[o,...o.querySelectorAll("[id]")].forEach((i=>i.removeAttribute("id"))),o.setAttribute("data-default",""),o.slot=`${i}-icon`,o}return null}handleTreeChanged(i){for(const s of i){const i=[...s.addedNodes].filter(l.isTreeItem),o=[...s.removedNodes].filter(l.isTreeItem);i.forEach(this.initTreeItem),o.includes(this.lastFocusedItem)&&this.focusItem(this.getFocusableItems()[0])}}syncTreeItems(i){const s=this.getAllTreeItems();if("multiple"===this.selection)p(i);else for(const o of s)o!==i&&(o.selected=!1)}selectItem(i){const s=[...this.selectedItems];"multiple"===this.selection?(i.selected=!i.selected,i.lazy&&(i.expanded=!0),this.syncTreeItems(i)):"single"===this.selection||i.isLeaf?(i.expanded=!i.expanded,i.selected=!0,this.syncTreeItems(i)):"leaf"===this.selection&&(i.expanded=!i.expanded);const o=this.selectedItems;(s.length!==o.length||o.some((i=>!s.includes(i))))&&Promise.all(o.map((i=>i.updateComplete))).then((()=>{this.emit("nile-selection-change",{detail:{selection:o}})}))}getAllTreeItems(){return[...this.querySelectorAll("nile-tree-item")]}focusItem(i){i?.focus()}handleKeyDown(i){if(!["ArrowDown","ArrowUp","ArrowRight","ArrowLeft","Home","End","Enter"," "].includes(i.key))return;const s=this.getFocusableItems();if(s.length>0){i.preventDefault();const o=s.findIndex((i=>i.matches(":focus"))),e=s[o],c=i=>{const o=s[n(i,0,s.length-1)];this.focusItem(o)},m=i=>{e.expanded=i};"ArrowDown"===i.key?c(o+1):"ArrowUp"===i.key?c(o-1):"ArrowRight"===i.key?!e||e.disabled||e.expanded||e.isLeaf&&!e.lazy?c(o+1):m(!0):"ArrowLeft"===i.key?!e||e.disabled||e.isLeaf||!e.expanded?c(o-1):m(!1):"Home"===i.key?c(0):"End"===i.key?c(s.length-1):"Enter"!==i.key&&" "!==i.key||e.disabled||this.selectItem(e)}}handleClick(i){const s=i.target,o=s.closest("nile-tree-item"),n=i.composedPath().some((i=>i?.classList?.contains("tree-item__expand-button")));o&&!o.disabled&&s===this.clickTarget&&("multiple"===this.selection&&n?o.expanded=!o.expanded:this.selectItem(o))}handleMouseDown(i){this.clickTarget=i.target}handleFocusOut(i){const s=i.relatedTarget;s&&this.contains(s)||(this.tabIndex=0)}handleFocusIn(i){const s=i.target;i.target===this&&this.focusItem(this.lastFocusedItem||this.getAllTreeItems()[0]),l.isTreeItem(s)&&!s.disabled&&(this.lastFocusedItem&&(this.lastFocusedItem.tabIndex=-1),this.lastFocusedItem=s,this.tabIndex=-1,s.tabIndex=0)}handleSlotChange(){this.getAllTreeItems().forEach(this.initTreeItem)}async handleSelectionChange(){const i="multiple"===this.selection,s=this.getAllTreeItems();this.setAttribute("aria-multiselectable",i?"true":"false");for(const o of s)o.selectable=i;i&&(await this.updateComplete,[...this.querySelectorAll(":scope > nile-tree-item")].forEach((i=>p(i,!0))))}get selectedItems(){return this.getAllTreeItems().filter((i=>i.selected))}getFocusableItems(){const i=this.getAllTreeItems(),s=new Set;return i.filter((i=>{if(i.disabled)return!1;const o=i.parentElement?.closest("[role=treeitem]");return o&&(!o.expanded||o.loading||s.has(o))&&s.add(i),!s.has(i)}))}render(){return t`
2
2
  <div
3
3
  part="base"
4
4
  class="tree"