@aquera/nile-elements 0.1.39-beta-1.0 → 0.1.39-beta-1.1
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.
- package/demo/filenames.txt +1 -1
- package/dist/index.cjs.js +1 -1
- package/dist/index.esm.js +1 -1
- package/dist/index.js +618 -636
- package/dist/internal/animate.cjs.js +1 -1
- package/dist/internal/animate.cjs.js.map +1 -1
- package/dist/internal/animate.esm.js +1 -1
- package/dist/nile-avatar/nile-avatar.test.cjs.js +1 -1
- package/dist/nile-avatar/nile-avatar.test.cjs.js.map +1 -1
- package/dist/nile-avatar/nile-avatar.test.esm.js +1 -1
- package/dist/nile-badge/index.cjs.js +1 -1
- package/dist/nile-badge/index.esm.js +1 -1
- package/dist/nile-badge/nile-badge.cjs.js +1 -1
- package/dist/nile-badge/nile-badge.cjs.js.map +1 -1
- package/dist/nile-badge/nile-badge.esm.js +1 -1
- package/dist/nile-badge/nile-badge.test.cjs.js +1 -1
- package/dist/nile-badge/nile-badge.test.cjs.js.map +1 -1
- package/dist/nile-badge/nile-badge.test.esm.js +1 -1
- package/dist/nile-button/index.cjs.js +1 -1
- package/dist/nile-button/index.esm.js +1 -1
- package/dist/nile-button/nile-button.cjs.js +1 -1
- package/dist/nile-button/nile-button.cjs.js.map +1 -1
- package/dist/nile-button/nile-button.esm.js +1 -1
- package/dist/nile-button/nile-button.test.cjs.js +1 -1
- package/dist/nile-button/nile-button.test.cjs.js.map +1 -1
- package/dist/nile-button/nile-button.test.esm.js +1 -1
- package/dist/nile-calendar/nile-calendar.test.cjs.js +1 -1
- package/dist/nile-calendar/nile-calendar.test.cjs.js.map +1 -1
- package/dist/nile-calendar/nile-calendar.test.esm.js +1 -1
- package/dist/nile-chip/nile-chip.test.cjs.js +1 -1
- package/dist/nile-chip/nile-chip.test.cjs.js.map +1 -1
- package/dist/nile-chip/nile-chip.test.esm.js +1 -1
- package/dist/nile-dialog/index.cjs.js +1 -1
- package/dist/nile-dialog/index.esm.js +1 -1
- package/dist/nile-dialog/nile-dialog.cjs.js +1 -1
- package/dist/nile-dialog/nile-dialog.cjs.js.map +1 -1
- package/dist/nile-dialog/nile-dialog.esm.js +1 -1
- package/dist/nile-dialog/nile-dialog.test.cjs.js +1 -1
- package/dist/nile-dialog/nile-dialog.test.cjs.js.map +1 -1
- package/dist/nile-dialog/nile-dialog.test.esm.js +1 -1
- package/dist/nile-drawer/index.cjs.js +1 -1
- package/dist/nile-drawer/index.esm.js +1 -1
- package/dist/nile-drawer/nile-drawer.cjs.js +1 -1
- package/dist/nile-drawer/nile-drawer.cjs.js.map +1 -1
- package/dist/nile-drawer/nile-drawer.esm.js +1 -1
- package/dist/nile-drawer/nile-drawer.test.cjs.js +1 -1
- package/dist/nile-drawer/nile-drawer.test.cjs.js.map +1 -1
- package/dist/nile-drawer/nile-drawer.test.esm.js +1 -1
- package/dist/nile-icon/icons/svg/index.cjs.js +1 -1
- package/dist/nile-icon/icons/svg/index.esm.js +1 -1
- package/dist/nile-icon/icons/svg/savings.cjs.js +2 -0
- package/dist/nile-icon/icons/svg/savings.cjs.js.map +1 -0
- package/dist/nile-icon/icons/svg/savings.esm.js +1 -0
- package/dist/nile-icon/index.cjs.js +1 -1
- package/dist/nile-icon/index.cjs.js.map +1 -1
- package/dist/nile-icon/index.esm.js +1 -1
- package/dist/nile-icon/nile-icon.test.cjs.js +1 -1
- package/dist/nile-icon/nile-icon.test.cjs.js.map +1 -1
- package/dist/nile-icon/nile-icon.test.esm.js +1 -1
- package/dist/nile-icon-button/index.cjs.js +1 -1
- package/dist/nile-icon-button/index.esm.js +1 -1
- package/dist/nile-icon-button/nile-icon-button.cjs.js +1 -1
- package/dist/nile-icon-button/nile-icon-button.cjs.js.map +1 -1
- package/dist/nile-icon-button/nile-icon-button.esm.js +1 -1
- package/dist/nile-input/index.cjs.js +1 -1
- package/dist/nile-input/index.esm.js +1 -1
- package/dist/nile-input/nile-input.cjs.js +1 -1
- package/dist/nile-input/nile-input.cjs.js.map +1 -1
- package/dist/nile-input/nile-input.css.cjs.js +1 -1
- package/dist/nile-input/nile-input.css.cjs.js.map +1 -1
- package/dist/nile-input/nile-input.css.esm.js +12 -4
- package/dist/nile-input/nile-input.esm.js +1 -1
- package/dist/nile-input/nile-input.test.cjs.js +1 -1
- package/dist/nile-input/nile-input.test.cjs.js.map +1 -1
- package/dist/nile-input/nile-input.test.esm.js +1 -1
- package/dist/nile-menu-item/index.cjs.js +1 -1
- package/dist/nile-menu-item/index.esm.js +1 -1
- package/dist/nile-menu-item/nile-menu-item.cjs.js +1 -1
- package/dist/nile-menu-item/nile-menu-item.cjs.js.map +1 -1
- package/dist/nile-menu-item/nile-menu-item.esm.js +1 -1
- package/dist/nile-option/index.cjs.js +1 -1
- package/dist/nile-option/index.esm.js +1 -1
- package/dist/nile-option/nile-option.cjs.js +1 -1
- package/dist/nile-option/nile-option.cjs.js.map +1 -1
- package/dist/nile-option/nile-option.esm.js +1 -1
- package/dist/nile-select/index.cjs.js +1 -1
- package/dist/nile-select/index.esm.js +1 -1
- package/dist/nile-select/nile-select.cjs.js +1 -1
- package/dist/nile-select/nile-select.cjs.js.map +1 -1
- package/dist/nile-select/nile-select.css.cjs.js +1 -1
- package/dist/nile-select/nile-select.css.cjs.js.map +1 -1
- package/dist/nile-select/nile-select.css.esm.js +3 -3
- package/dist/nile-select/nile-select.esm.js +1 -1
- package/dist/nile-select/nile-select.test.cjs.js +1 -1
- package/dist/nile-select/nile-select.test.cjs.js.map +1 -1
- package/dist/nile-select/nile-select.test.esm.js +1 -1
- package/dist/nile-tab/index.cjs.js +1 -1
- package/dist/nile-tab/index.esm.js +1 -1
- package/dist/nile-tab/nile-tab.cjs.js +1 -1
- package/dist/nile-tab/nile-tab.cjs.js.map +1 -1
- package/dist/nile-tab/nile-tab.esm.js +1 -1
- package/dist/nile-tab-group/index.cjs.js +1 -1
- package/dist/nile-tab-group/index.esm.js +1 -1
- package/dist/nile-tab-group/nile-tab-group.cjs.js +1 -1
- package/dist/nile-tab-group/nile-tab-group.cjs.js.map +1 -1
- package/dist/nile-tab-group/nile-tab-group.esm.js +1 -1
- package/dist/nile-tab-group/nile-tab-group.test.cjs.js +1 -1
- package/dist/nile-tab-group/nile-tab-group.test.cjs.js.map +1 -1
- package/dist/nile-tab-group/nile-tab-group.test.esm.js +1 -1
- package/dist/nile-tag/index.cjs.js +1 -1
- package/dist/nile-tag/index.esm.js +1 -1
- package/dist/nile-tag/nile-tag.cjs.js +1 -1
- package/dist/nile-tag/nile-tag.cjs.js.map +1 -1
- package/dist/nile-tag/nile-tag.esm.js +1 -1
- package/dist/nile-toast/index.cjs.js +1 -1
- package/dist/nile-toast/index.esm.js +1 -1
- package/dist/nile-toast/nile-toast.cjs.js +1 -1
- package/dist/nile-toast/nile-toast.cjs.js.map +1 -1
- package/dist/nile-toast/nile-toast.esm.js +1 -1
- package/dist/nile-tooltip/index.cjs.js +1 -1
- package/dist/nile-tooltip/index.esm.js +1 -1
- package/dist/nile-tooltip/nile-tooltip.cjs.js +1 -1
- package/dist/nile-tooltip/nile-tooltip.cjs.js.map +1 -1
- package/dist/nile-tooltip/nile-tooltip.css.cjs.js +1 -1
- package/dist/nile-tooltip/nile-tooltip.css.cjs.js.map +1 -1
- package/dist/nile-tooltip/nile-tooltip.css.esm.js +48 -79
- package/dist/nile-tooltip/nile-tooltip.esm.js +28 -23
- package/dist/nile-tree/index.cjs.js +1 -1
- package/dist/nile-tree/index.esm.js +1 -1
- package/dist/nile-tree/nile-tree.cjs.js +1 -1
- package/dist/nile-tree/nile-tree.cjs.js.map +1 -1
- package/dist/nile-tree/nile-tree.esm.js +1 -1
- package/dist/nile-tree-item/index.cjs.js +1 -1
- package/dist/nile-tree-item/index.esm.js +1 -1
- package/dist/nile-tree-item/nile-tree-item.cjs.js +1 -1
- package/dist/nile-tree-item/nile-tree-item.cjs.js.map +1 -1
- package/dist/nile-tree-item/nile-tree-item.esm.js +1 -1
- package/dist/src/nile-icon/icons/svg/index.d.ts +1 -0
- package/dist/src/nile-icon/icons/svg/index.js +1 -0
- package/dist/src/nile-icon/icons/svg/index.js.map +1 -1
- package/dist/src/nile-icon/icons/svg/savings.d.ts +5 -0
- package/dist/src/nile-icon/icons/svg/savings.js +5 -0
- package/dist/src/nile-icon/icons/svg/savings.js.map +1 -0
- package/dist/src/nile-input/nile-input.css.js +10 -2
- package/dist/src/nile-input/nile-input.css.js.map +1 -1
- package/dist/src/nile-select/nile-select.css.js +3 -3
- package/dist/src/nile-select/nile-select.css.js.map +1 -1
- package/dist/src/nile-tooltip/nile-tooltip.css.js +46 -77
- package/dist/src/nile-tooltip/nile-tooltip.css.js.map +1 -1
- package/dist/src/nile-tooltip/nile-tooltip.d.ts +46 -24
- package/dist/src/nile-tooltip/nile-tooltip.js +232 -235
- package/dist/src/nile-tooltip/nile-tooltip.js.map +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +1 -1
- package/src/nile-icon/icons/svg/index.ts +1 -0
- package/src/nile-icon/icons/svg/savings.ts +5 -0
- package/src/nile-input/nile-input.css.ts +10 -2
- package/src/nile-select/nile-select.css.ts +3 -3
- package/src/nile-tooltip/nile-tooltip.css.ts +46 -77
- package/src/nile-tooltip/nile-tooltip.ts +231 -269
- package/vscode-html-custom-data.json +91 -79
- package/dist/nile-tooltip/nile-tooltip-utils.cjs.js +0 -2
- package/dist/nile-tooltip/nile-tooltip-utils.cjs.js.map +0 -1
- package/dist/nile-tooltip/nile-tooltip-utils.esm.js +0 -1
- package/dist/nile-tooltip/nile-tooltip.test.cjs.js +0 -2
- package/dist/nile-tooltip/nile-tooltip.test.cjs.js.map +0 -1
- package/dist/nile-tooltip/nile-tooltip.test.esm.js +0 -47
- package/dist/src/nile-tooltip/nile-tooltip-utils.d.ts +0 -18
- package/dist/src/nile-tooltip/nile-tooltip-utils.js +0 -216
- package/dist/src/nile-tooltip/nile-tooltip-utils.js.map +0 -1
- package/dist/src/nile-tooltip/nile-tooltip.test.d.ts +0 -1
- package/dist/src/nile-tooltip/nile-tooltip.test.js +0 -148
- package/dist/src/nile-tooltip/nile-tooltip.test.js.map +0 -1
- package/src/nile-tooltip/nile-tooltip-utils.ts +0 -271
- package/src/nile-tooltip/nile-tooltip.test.ts +0 -168
@@ -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","g","this","selection","clickTarget","initTreeItem","selectable","filter","status","querySelector","concat","forEach","existingIcon","append","getExpandButtonIcon","hasAttribute","replaceWith","_this","_inherits","_n3","_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","preventDefault","activeItemIndex","findIndex","matches","activeItem","focusItemAt","index","clamp","toggleExpand","handleClick","target","closest","isExpandButton","composedPath","classList","contains","handleMouseDown","relatedTarget","tabIndex","_handleSelectionChange","_callee2","i","_iterator4","_step4","_n8","_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","g","this","selection","clickTarget","initTreeItem","selectable","filter","status","querySelector","concat","forEach","existingIcon","append","getExpandButtonIcon","hasAttribute","replaceWith","_this","_inherits","_n3","_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","_createForOfIteratorHelper","_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","preventDefault","activeItemIndex","findIndex","matches","activeItem","focusItemAt","index","clamp","toggleExpand","handleClick","target","closest","isExpandButton","composedPath","classList","contains","handleMouseDown","relatedTarget","tabIndex","_handleSelectionChange","_callee2","i","_iterator4","_step4","_n8","_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,4 +1,4 @@
|
|
1
|
-
import{__decorate as i}from"tslib";import{s}from"./nile-tree.css.esm.js";import{N as n}from"../internal/nile-element.esm.js";import{c as o}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/ng-activity.esm.js";import"../nile-icon/icons/svg/ng-align-center.esm.js";import"../nile-icon/icons/svg/ng-annotation-x.esm.js";import"../nile-icon/icons/svg/ng-bell-01.esm.js";import"../nile-icon/icons/svg/ng-bell-ringing-04.esm.js";import"../nile-icon/icons/svg/ng-bold-01.esm.js";import"../nile-icon/icons/svg/ng-calendar-plus-02.esm.js";import"../nile-icon/icons/svg/ng-calendar.esm.js";import"../nile-icon/icons/svg/ng-check-circle.esm.js";import"../nile-icon/icons/svg/ng-check-square-broken.esm.js";import"../nile-icon/icons/svg/ng-chevron-down.esm.js";import"../nile-icon/icons/svg/ng-chevron-left.esm.js";import"../nile-icon/icons/svg/ng-chevron-right.esm.js";import"../nile-icon/icons/svg/ng-chevron-selector-vertical.esm.js";import"../nile-icon/icons/svg/ng-chevron-up-double.esm.js";import"../nile-icon/icons/svg/ng-chevron-up.esm.js";import"../nile-icon/icons/svg/ng-copy-03.esm.js";import"../nile-icon/icons/svg/ng-dots-grid.esm.js";import"../nile-icon/icons/svg/ng-dots-vertical.esm.js";import"../nile-icon/icons/svg/ng-download-01.esm.js";import"../nile-icon/icons/svg/ng-dropdown.esm.js";import"../nile-icon/icons/svg/ng-edit-02.esm.js";import"../nile-icon/icons/svg/ng-edit-05.esm.js";import"../nile-icon/icons/svg/ng-expand-06.esm.js";import"../nile-icon/icons/svg/ng-file-check-02.esm.js";import"../nile-icon/icons/svg/ng-file-question-03.esm.js";import"../nile-icon/icons/svg/ng-filter-lines.esm.js";import"../nile-icon/icons/svg/ng-grid-01.esm.js";import"../nile-icon/icons/svg/ng-help-circle.esm.js";import"../nile-icon/icons/svg/ng-image-user-left.esm.js";import"../nile-icon/icons/svg/ng-info-circle.esm.js";import"../nile-icon/icons/svg/ng-italic-01.esm.js";import"../nile-icon/icons/svg/ng-list.esm.js";import"../nile-icon/icons/svg/ng-mail-01.esm.js";import"../nile-icon/icons/svg/ng-mail-04.esm.js";import"../nile-icon/icons/svg/ng-menu-05.esm.js";import"../nile-icon/icons/svg/ng-minimize-02.esm.js";import"../nile-icon/icons/svg/ng-plus.esm.js";import"../nile-icon/icons/svg/ng-rocket-02.esm.js";import"../nile-icon/icons/svg/ng-search-lg.esm.js";import"../nile-icon/icons/svg/ng-send-01.esm.js";import"../nile-icon/icons/svg/ng-settings-01.esm.js";import"../nile-icon/icons/svg/ng-share-06.esm.js";import"../nile-icon/icons/svg/ng-stars-02.esm.js";import"../nile-icon/icons/svg/ng-trash-01.esm.js";import"../nile-icon/icons/svg/ng-trash-03.esm.js";import"../nile-icon/icons/svg/ng-trend-up-01.esm.js";import"../nile-icon/icons/svg/ng-underline-01.esm.js";import"../nile-icon/icons/svg/ng-upload-01.esm.js";import"../nile-icon/icons/svg/ng-user-01.esm.js";import"../nile-icon/icons/svg/ng-user-check-02-1.esm.js";import"../nile-icon/icons/svg/ng-user-check-02.esm.js";import"../nile-icon/icons/svg/ng-user-plus-02.esm.js";import"../nile-icon/icons/svg/ng-user-right-01.esm.js";import"../nile-icon/icons/svg/ng-x-close.esm.js";import"../nile-icon/icons/svg/ng-x-square.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 n(i){const s=i.getChildrenItems({includeDisabled:!1});if(s.length){const n=s.every((i=>i.selected)),o=s.every((i=>!i.selected&&!i.indeterminate));i.selected=n,i.indeterminate=!n&&!o}}!function i(o){for(const n of o.getChildrenItems())n.selected=s?o.selected||n.selected:!n.disabled&&o.selected,i(n);s&&n(o)}(i),function i(s){const o=s.parentElement;l.isTreeItem(o)&&(n(o),i(o))}(i)}let g=class extends n{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 n=i.querySelector(`[slot="${s}-icon"]`);null===n?i.append(this.getExpandButtonIcon(s)):n.hasAttribute("data-default")&&n.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 n=s.cloneNode(!0);return[n,...n.querySelectorAll("[id]")].forEach((i=>i.removeAttribute("id"))),n.setAttribute("data-default",""),n.slot=`${i}-icon`,n}return null}handleTreeChanged(i){for(const s of i){const i=[...s.addedNodes].filter(l.isTreeItem),n=[...s.removedNodes].filter(l.isTreeItem);i.forEach(this.initTreeItem),n.includes(this.lastFocusedItem)&&this.focusItem(this.getFocusableItems()[0])}}syncTreeItems(i){const s=this.getAllTreeItems();if("multiple"===this.selection)p(i);else for(const n of s)n!==i&&(n.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 n=this.selectedItems;(s.length!==n.length||n.some((i=>!s.includes(i))))&&Promise.all(n.map((i=>i.updateComplete))).then((()=>{this.emit("nile-selection-change",{detail:{selection:n}})}))}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 n=s.findIndex((i=>i.matches(":focus"))),e=s[n],c=i=>{const n=s[o(i,0,s.length-1)];this.focusItem(n)},m=i=>{e.expanded=i};"ArrowDown"===i.key?c(n+1):"ArrowUp"===i.key?c(n-1):"ArrowRight"===i.key?!e||e.disabled||e.expanded||e.isLeaf&&!e.lazy?c(n+1):m(!0):"ArrowLeft"===i.key?!e||e.disabled||e.isLeaf||!e.expanded?c(n-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,n=s.closest("nile-tree-item"),o=i.composedPath().some((i=>i?.classList?.contains("tree-item__expand-button")));n&&!n.disabled&&s===this.clickTarget&&("multiple"===this.selection&&o?n.expanded=!n.expanded:this.selectItem(n))}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 n of s)n.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 n=i.parentElement?.closest("[role=treeitem]");return n&&(!n.expanded||n.loading||s.has(n))&&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 n}from"../internal/nile-element.esm.js";import{c as o}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/ng-activity.esm.js";import"../nile-icon/icons/svg/ng-align-center.esm.js";import"../nile-icon/icons/svg/ng-annotation-x.esm.js";import"../nile-icon/icons/svg/ng-bell-01.esm.js";import"../nile-icon/icons/svg/ng-bell-ringing-04.esm.js";import"../nile-icon/icons/svg/ng-bold-01.esm.js";import"../nile-icon/icons/svg/ng-calendar-plus-02.esm.js";import"../nile-icon/icons/svg/ng-calendar.esm.js";import"../nile-icon/icons/svg/ng-check-circle.esm.js";import"../nile-icon/icons/svg/ng-check-square-broken.esm.js";import"../nile-icon/icons/svg/ng-chevron-down.esm.js";import"../nile-icon/icons/svg/ng-chevron-left.esm.js";import"../nile-icon/icons/svg/ng-chevron-right.esm.js";import"../nile-icon/icons/svg/ng-chevron-selector-vertical.esm.js";import"../nile-icon/icons/svg/ng-chevron-up-double.esm.js";import"../nile-icon/icons/svg/ng-chevron-up.esm.js";import"../nile-icon/icons/svg/ng-copy-03.esm.js";import"../nile-icon/icons/svg/ng-dots-grid.esm.js";import"../nile-icon/icons/svg/ng-dots-vertical.esm.js";import"../nile-icon/icons/svg/ng-download-01.esm.js";import"../nile-icon/icons/svg/ng-dropdown.esm.js";import"../nile-icon/icons/svg/ng-edit-02.esm.js";import"../nile-icon/icons/svg/ng-edit-05.esm.js";import"../nile-icon/icons/svg/ng-expand-06.esm.js";import"../nile-icon/icons/svg/ng-file-check-02.esm.js";import"../nile-icon/icons/svg/ng-file-question-03.esm.js";import"../nile-icon/icons/svg/ng-filter-lines.esm.js";import"../nile-icon/icons/svg/ng-grid-01.esm.js";import"../nile-icon/icons/svg/ng-help-circle.esm.js";import"../nile-icon/icons/svg/ng-image-user-left.esm.js";import"../nile-icon/icons/svg/ng-info-circle.esm.js";import"../nile-icon/icons/svg/ng-italic-01.esm.js";import"../nile-icon/icons/svg/ng-list.esm.js";import"../nile-icon/icons/svg/ng-mail-01.esm.js";import"../nile-icon/icons/svg/ng-mail-04.esm.js";import"../nile-icon/icons/svg/ng-menu-05.esm.js";import"../nile-icon/icons/svg/ng-minimize-02.esm.js";import"../nile-icon/icons/svg/ng-plus.esm.js";import"../nile-icon/icons/svg/ng-rocket-02.esm.js";import"../nile-icon/icons/svg/ng-search-lg.esm.js";import"../nile-icon/icons/svg/ng-send-01.esm.js";import"../nile-icon/icons/svg/ng-settings-01.esm.js";import"../nile-icon/icons/svg/ng-share-06.esm.js";import"../nile-icon/icons/svg/ng-stars-02.esm.js";import"../nile-icon/icons/svg/ng-trash-01.esm.js";import"../nile-icon/icons/svg/ng-trash-03.esm.js";import"../nile-icon/icons/svg/ng-trend-up-01.esm.js";import"../nile-icon/icons/svg/ng-underline-01.esm.js";import"../nile-icon/icons/svg/ng-upload-01.esm.js";import"../nile-icon/icons/svg/ng-user-01.esm.js";import"../nile-icon/icons/svg/ng-user-check-02-1.esm.js";import"../nile-icon/icons/svg/ng-user-check-02.esm.js";import"../nile-icon/icons/svg/ng-user-plus-02.esm.js";import"../nile-icon/icons/svg/ng-user-right-01.esm.js";import"../nile-icon/icons/svg/ng-x-close.esm.js";import"../nile-icon/icons/svg/ng-x-square.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/savings.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 n(i){const s=i.getChildrenItems({includeDisabled:!1});if(s.length){const n=s.every((i=>i.selected)),o=s.every((i=>!i.selected&&!i.indeterminate));i.selected=n,i.indeterminate=!n&&!o}}!function i(o){for(const n of o.getChildrenItems())n.selected=s?o.selected||n.selected:!n.disabled&&o.selected,i(n);s&&n(o)}(i),function i(s){const o=s.parentElement;l.isTreeItem(o)&&(n(o),i(o))}(i)}let g=class extends n{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 n=i.querySelector(`[slot="${s}-icon"]`);null===n?i.append(this.getExpandButtonIcon(s)):n.hasAttribute("data-default")&&n.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 n=s.cloneNode(!0);return[n,...n.querySelectorAll("[id]")].forEach((i=>i.removeAttribute("id"))),n.setAttribute("data-default",""),n.slot=`${i}-icon`,n}return null}handleTreeChanged(i){for(const s of i){const i=[...s.addedNodes].filter(l.isTreeItem),n=[...s.removedNodes].filter(l.isTreeItem);i.forEach(this.initTreeItem),n.includes(this.lastFocusedItem)&&this.focusItem(this.getFocusableItems()[0])}}syncTreeItems(i){const s=this.getAllTreeItems();if("multiple"===this.selection)p(i);else for(const n of s)n!==i&&(n.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 n=this.selectedItems;(s.length!==n.length||n.some((i=>!s.includes(i))))&&Promise.all(n.map((i=>i.updateComplete))).then((()=>{this.emit("nile-selection-change",{detail:{selection:n}})}))}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 n=s.findIndex((i=>i.matches(":focus"))),e=s[n],c=i=>{const n=s[o(i,0,s.length-1)];this.focusItem(n)},m=i=>{e.expanded=i};"ArrowDown"===i.key?c(n+1):"ArrowUp"===i.key?c(n-1):"ArrowRight"===i.key?!e||e.disabled||e.expanded||e.isLeaf&&!e.lazy?c(n+1):m(!0):"ArrowLeft"===i.key?!e||e.disabled||e.isLeaf||!e.expanded?c(n-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,n=s.closest("nile-tree-item"),o=i.composedPath().some((i=>i?.classList?.contains("tree-item__expand-button")));n&&!n.disabled&&s===this.clickTarget&&("multiple"===this.selection&&o?n.expanded=!n.expanded:this.selectItem(n))}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 n of s)n.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 n=i.parentElement?.closest("[role=treeitem]");return n&&(!n.expanded||n.loading||s.has(n))&&s.add(i),!s.has(i)}))}render(){return t`
|
2
2
|
<div
|
3
3
|
part="base"
|
4
4
|
class="tree"
|