tree-element 0.1.1 → 0.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (155) hide show
  1. package/README.md +43 -31
  2. package/lib/animation.d.ts +2 -2
  3. package/lib/animation.d.ts.map +1 -1
  4. package/lib/animation.js +16 -12
  5. package/lib/animation.js.map +1 -1
  6. package/lib/classNames.d.ts.map +1 -1
  7. package/lib/classNames.js +2 -2
  8. package/lib/classNames.js.map +1 -1
  9. package/lib/dataLoader.d.ts +1 -0
  10. package/lib/dataLoader.d.ts.map +1 -1
  11. package/lib/dataLoader.js +22 -20
  12. package/lib/dataLoader.js.map +1 -1
  13. package/lib/dragAndDropHandler/binarySearch.js +3 -3
  14. package/lib/dragAndDropHandler/binarySearch.js.map +1 -1
  15. package/lib/dragAndDropHandler/dragElement.d.ts.map +1 -1
  16. package/lib/dragAndDropHandler/dragElement.js +11 -13
  17. package/lib/dragAndDropHandler/dragElement.js.map +1 -1
  18. package/lib/dragAndDropHandler/generateHitAreas.d.ts.map +1 -1
  19. package/lib/dragAndDropHandler/generateHitAreas.js +25 -25
  20. package/lib/dragAndDropHandler/generateHitAreas.js.map +1 -1
  21. package/lib/dragAndDropHandler/index.d.ts.map +1 -1
  22. package/lib/dragAndDropHandler/index.js +125 -158
  23. package/lib/dragAndDropHandler/index.js.map +1 -1
  24. package/lib/dragAndDropHandler/iterateVisibleNodes.d.ts.map +1 -1
  25. package/lib/dragAndDropHandler/iterateVisibleNodes.js +23 -22
  26. package/lib/dragAndDropHandler/iterateVisibleNodes.js.map +1 -1
  27. package/lib/dragAndDropHandler/types.d.ts.map +1 -1
  28. package/lib/elementsRenderer.d.ts +20 -7
  29. package/lib/elementsRenderer.d.ts.map +1 -1
  30. package/lib/elementsRenderer.js +195 -136
  31. package/lib/elementsRenderer.js.map +1 -1
  32. package/lib/events.d.ts +44 -11
  33. package/lib/events.d.ts.map +1 -1
  34. package/lib/index.d.ts +36 -13
  35. package/lib/index.d.ts.map +1 -1
  36. package/lib/index.js +386 -349
  37. package/lib/index.js.map +1 -1
  38. package/lib/keyHandler.d.ts +13 -8
  39. package/lib/keyHandler.d.ts.map +1 -1
  40. package/lib/keyHandler.js +106 -51
  41. package/lib/keyHandler.js.map +1 -1
  42. package/lib/methodTypes.d.ts +3 -3
  43. package/lib/methodTypes.d.ts.map +1 -1
  44. package/lib/mouseHandler.d.ts +1 -1
  45. package/lib/mouseHandler.d.ts.map +1 -1
  46. package/lib/mouseHandler.js +36 -49
  47. package/lib/mouseHandler.js.map +1 -1
  48. package/lib/mouseUtils.d.ts.map +1 -1
  49. package/lib/mouseUtils.js +2 -2
  50. package/lib/mouseUtils.js.map +1 -1
  51. package/lib/node.d.ts +47 -16
  52. package/lib/node.d.ts.map +1 -1
  53. package/lib/node.js +169 -171
  54. package/lib/node.js.map +1 -1
  55. package/lib/nodeElement/borderDropHint.d.ts.map +1 -1
  56. package/lib/nodeElement/borderDropHint.js +4 -5
  57. package/lib/nodeElement/borderDropHint.js.map +1 -1
  58. package/lib/nodeElement/folderElement.d.ts +8 -5
  59. package/lib/nodeElement/folderElement.d.ts.map +1 -1
  60. package/lib/nodeElement/folderElement.js +75 -67
  61. package/lib/nodeElement/folderElement.js.map +1 -1
  62. package/lib/nodeElement/ghostDropHint.d.ts.map +1 -1
  63. package/lib/nodeElement/ghostDropHint.js +13 -13
  64. package/lib/nodeElement/ghostDropHint.js.map +1 -1
  65. package/lib/nodeElement/index.d.ts +2 -1
  66. package/lib/nodeElement/index.d.ts.map +1 -1
  67. package/lib/nodeElement/index.js +38 -30
  68. package/lib/nodeElement/index.js.map +1 -1
  69. package/lib/nodeUtils.d.ts.map +1 -1
  70. package/lib/nodeUtils.js +1 -1
  71. package/lib/nodeUtils.js.map +1 -1
  72. package/lib/options.d.ts +19 -3
  73. package/lib/options.d.ts.map +1 -1
  74. package/lib/positionUtils.js +3 -3
  75. package/lib/positionUtils.js.map +1 -1
  76. package/lib/requestUrl.d.ts +1 -1
  77. package/lib/requestUrl.d.ts.map +1 -1
  78. package/lib/requestUrl.js +6 -17
  79. package/lib/requestUrl.js.map +1 -1
  80. package/lib/saveStateHandler.d.ts.map +1 -1
  81. package/lib/saveStateHandler.js +59 -89
  82. package/lib/saveStateHandler.js.map +1 -1
  83. package/lib/scrollHandler/containerScrollParent.d.ts.map +1 -1
  84. package/lib/scrollHandler/containerScrollParent.js +11 -18
  85. package/lib/scrollHandler/containerScrollParent.js.map +1 -1
  86. package/lib/scrollHandler/createScrollParent.d.ts.map +1 -1
  87. package/lib/scrollHandler/createScrollParent.js +12 -13
  88. package/lib/scrollHandler/createScrollParent.js.map +1 -1
  89. package/lib/scrollHandler/documentScrollParent.d.ts.map +1 -1
  90. package/lib/scrollHandler/documentScrollParent.js +18 -27
  91. package/lib/scrollHandler/documentScrollParent.js.map +1 -1
  92. package/lib/scrollHandler/scrollParent.d.ts.map +1 -1
  93. package/lib/scrollHandler/scrollParent.js +30 -34
  94. package/lib/scrollHandler/scrollParent.js.map +1 -1
  95. package/lib/scrollHandler.d.ts.map +1 -1
  96. package/lib/scrollHandler.js +11 -14
  97. package/lib/scrollHandler.js.map +1 -1
  98. package/lib/selectNodeHandler.d.ts +4 -2
  99. package/lib/selectNodeHandler.d.ts.map +1 -1
  100. package/lib/selectNodeHandler.js +64 -83
  101. package/lib/selectNodeHandler.js.map +1 -1
  102. package/lib/setDefaultOptions.d.ts.map +1 -1
  103. package/lib/setDefaultOptions.js +34 -38
  104. package/lib/setDefaultOptions.js.map +1 -1
  105. package/lib/triggerCustomEvent.d.ts.map +1 -1
  106. package/lib/triggerCustomEvent.js +2 -2
  107. package/lib/triggerCustomEvent.js.map +1 -1
  108. package/lib/util.d.ts.map +1 -1
  109. package/lib/util.js +2 -2
  110. package/lib/util.js.map +1 -1
  111. package/lib/version.d.ts +1 -1
  112. package/lib/version.js +1 -1
  113. package/lib/version.js.map +1 -1
  114. package/package.json +43 -32
  115. package/src/animation.ts +14 -12
  116. package/src/classNames.ts +52 -52
  117. package/src/dataLoader.ts +79 -71
  118. package/src/dragAndDropHandler/binarySearch.ts +17 -17
  119. package/src/dragAndDropHandler/dragElement.ts +51 -50
  120. package/src/dragAndDropHandler/generateHitAreas.ts +156 -161
  121. package/src/dragAndDropHandler/index.ts +334 -348
  122. package/src/dragAndDropHandler/iterateVisibleNodes.ts +61 -63
  123. package/src/dragAndDropHandler/types.ts +5 -5
  124. package/src/elementsRenderer.ts +377 -294
  125. package/src/events.ts +241 -208
  126. package/src/header.txt +1 -1
  127. package/src/index.ts +259 -229
  128. package/src/keyHandler.ts +179 -115
  129. package/src/methodTypes.ts +7 -10
  130. package/src/mouseHandler.ts +316 -316
  131. package/src/mouseUtils.ts +14 -14
  132. package/src/node.ts +773 -771
  133. package/src/nodeElement/borderDropHint.ts +25 -25
  134. package/src/nodeElement/folderElement.ts +116 -102
  135. package/src/nodeElement/ghostDropHint.ts +64 -62
  136. package/src/nodeElement/index.ts +81 -73
  137. package/src/nodeUtils.ts +5 -5
  138. package/src/options.ts +25 -5
  139. package/src/requestUrl.ts +7 -14
  140. package/src/saveStateHandler.ts +191 -207
  141. package/src/scrollHandler/containerScrollParent.ts +40 -49
  142. package/src/scrollHandler/createScrollParent.ts +26 -27
  143. package/src/scrollHandler/documentScrollParent.ts +66 -72
  144. package/src/scrollHandler/scrollParent.ts +90 -86
  145. package/src/scrollHandler.ts +45 -45
  146. package/src/selectNodeHandler.ts +171 -165
  147. package/src/setDefaultOptions.ts +44 -32
  148. package/src/triggerCustomEvent.ts +7 -3
  149. package/src/util.ts +2 -3
  150. package/src/version.ts +1 -1
  151. package/tree_element.css +87 -69
  152. package/tree_element.debug.js +3866 -3831
  153. package/tree_element.debug.js.map +1 -1
  154. package/tree_element.js +2 -2
  155. package/tree_element.js.map +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"elementsRenderer.js","sources":["../src/elementsRenderer.ts"],"sourcesContent":["import type { ClassNames } from \"./classNames\";\nimport type { GetTree, IsNodeSelected } from \"./methodTypes\";\nimport type { Node } from \"./node\";\nimport type { IconElement, OnCreateLi } from \"./options\";\n\nimport { getBoolString } from \"./util\";\n\ninterface ElementsRendererParams {\n autoEscape: boolean;\n buttonLeft: boolean;\n classNames: ClassNames;\n closedIcon?: IconElement;\n dragAndDrop: boolean;\n getTree: GetTree;\n htmlElement: HTMLElement;\n isNodeSelected: IsNodeSelected;\n onCreateLi?: OnCreateLi;\n openedIcon?: IconElement;\n rtl?: boolean;\n setNodeElement: (element: HTMLElement, node: Node) => void;\n showEmptyFolder: boolean;\n tabIndex?: number;\n}\n\nexport default class ElementsRenderer {\n public closedIconElement?: HTMLElement | Text;\n public openedIconElement?: HTMLElement | Text;\n private autoEscape: boolean;\n private buttonLeft: boolean;\n private classNames: ClassNames;\n private dragAndDrop: boolean;\n private getTree: GetTree;\n private htmlElement: HTMLElement;\n private isNodeSelected: IsNodeSelected;\n private onCreateLi?: OnCreateLi;\n private rtl?: boolean;\n private setNodeElement: (element: HTMLElement, node: Node) => void;\n private showEmptyFolder: boolean;\n private tabIndex?: number;\n\n constructor({\n autoEscape,\n buttonLeft,\n classNames,\n closedIcon,\n dragAndDrop,\n getTree,\n htmlElement,\n isNodeSelected,\n onCreateLi,\n openedIcon,\n rtl,\n setNodeElement,\n showEmptyFolder,\n tabIndex,\n }: ElementsRendererParams) {\n this.autoEscape = autoEscape;\n this.buttonLeft = buttonLeft;\n this.classNames = classNames;\n this.dragAndDrop = dragAndDrop;\n this.getTree = getTree;\n this.htmlElement = htmlElement;\n this.isNodeSelected = isNodeSelected;\n this.onCreateLi = onCreateLi;\n this.rtl = rtl;\n this.setNodeElement = setNodeElement;\n this.showEmptyFolder = showEmptyFolder;\n this.tabIndex = tabIndex;\n this.openedIconElement = this.createButtonElement(openedIcon ?? \"+\");\n this.closedIconElement = this.createButtonElement(closedIcon ?? \"-\");\n }\n\n public render(fromNode: Node | null): void {\n if (fromNode?.parent) {\n this.renderFromNode(fromNode);\n } else {\n this.renderFromRoot();\n }\n }\n\n public renderFromNode(node: Node): void {\n if (!node.element) {\n return;\n }\n\n const currentLi = node.element;\n const newLi = this.createLi(node, node.getLevel());\n currentLi.replaceWith(newLi);\n\n // create children\n this.createDomElements(newLi, node.children, false, node.getLevel() + 1);\n }\n\n public renderFromRoot(): void {\n this.htmlElement.textContent = '';\n\n const tree = this.getTree();\n\n if (tree) {\n this.createDomElements(this.htmlElement, tree.children, true, 1);\n }\n }\n\n private attachNodeData(node: Node, li: HTMLElement): void {\n node.element = li;\n this.setNodeElement(li, node);\n }\n\n private createButtonElement(\n value: IconElement,\n ): HTMLElement | Text | undefined {\n if (typeof value === \"string\") {\n // convert value to html\n const div = document.createElement(\"div\");\n div.innerHTML = value;\n\n return document.createTextNode(div.innerHTML);\n } else if (value.nodeType) {\n return value;\n } else {\n return undefined;\n }\n }\n\n private createDomElements(\n element: Element,\n children: Node[],\n isRootNode: boolean,\n level: number,\n ): void {\n const ul = this.createUl(isRootNode);\n element.appendChild(ul);\n\n for (const child of children) {\n const li = this.createLi(child, level);\n ul.appendChild(li);\n\n if (child.hasChildren()) {\n this.createDomElements(li, child.children, false, level + 1);\n }\n }\n }\n\n private createFolderLi(\n node: Node,\n level: number,\n isSelected: boolean,\n ): HTMLLIElement {\n const buttonClasses = this.getButtonClasses(node);\n const folderClasses = this.getFolderClasses(node, isSelected);\n\n const iconElement = node.is_open\n ? this.openedIconElement\n : this.closedIconElement;\n\n // li\n const li = document.createElement(\"li\");\n li.className = `${this.classNames.common} ${folderClasses}`;\n li.setAttribute(\"role\", \"none\");\n\n // div\n const div = document.createElement(\"div\");\n div.className = `${this.classNames.element} ${this.classNames.common}`;\n div.setAttribute(\"role\", \"none\");\n\n li.appendChild(div);\n\n // button link\n const buttonLink = document.createElement(\"a\");\n buttonLink.className = buttonClasses;\n\n if (iconElement) {\n buttonLink.appendChild(iconElement.cloneNode(true));\n }\n\n if (this.buttonLeft) {\n div.appendChild(buttonLink);\n }\n\n // title span\n const titleSpan = this.createTitleSpan(\n node.name,\n isSelected,\n true,\n level,\n );\n titleSpan.setAttribute(\"aria-expanded\", getBoolString(node.is_open));\n div.appendChild(titleSpan);\n\n if (!this.buttonLeft) {\n div.appendChild(buttonLink);\n }\n\n return li;\n }\n\n /* Create the <li> element\n * Attach it to node.element.\n * Call onCreateLi\n */\n private createLi(node: Node, level: number): HTMLLIElement {\n const isSelected = this.isNodeSelected(node);\n\n const mustShowFolder =\n node.isFolder() || (node.isEmptyFolder && this.showEmptyFolder);\n\n const li = mustShowFolder\n ? this.createFolderLi(node, level, isSelected)\n : this.createNodeLi(node, level, isSelected);\n\n this.attachNodeData(node, li);\n\n if (this.onCreateLi) {\n this.onCreateLi(node, li, isSelected);\n }\n\n return li;\n }\n\n private createNodeLi(\n node: Node,\n level: number,\n isSelected: boolean,\n ): HTMLLIElement {\n const liClasses = [this.classNames.common];\n\n if (isSelected) {\n liClasses.push(this.classNames.selected);\n }\n\n const classString = liClasses.join(\" \");\n\n // li\n const li = document.createElement(\"li\");\n li.className = classString;\n li.setAttribute(\"role\", \"none\");\n\n // div\n const div = document.createElement(\"div\");\n div.className = `${this.classNames.element} ${this.classNames.common}`;\n div.setAttribute(\"role\", \"none\");\n\n li.appendChild(div);\n\n // title span\n const titleSpan = this.createTitleSpan(\n node.name,\n isSelected,\n false,\n level,\n );\n div.appendChild(titleSpan);\n\n return li;\n }\n\n private createTitleSpan(\n nodeName: string,\n isSelected: boolean,\n isFolder: boolean,\n level: number,\n ): HTMLSpanElement {\n const titleSpan = document.createElement(\"span\");\n\n let classes = `${this.classNames.title} ${this.classNames.common}`;\n\n if (isFolder) {\n classes += ` ${this.classNames.titleFolder}`;\n }\n\n classes += ` ${this.buttonLeft ? this.classNames.titleButtonLeft : this.classNames.titleButtonRight}`;\n\n titleSpan.className = classes;\n\n if (isSelected) {\n const tabIndex = this.tabIndex;\n\n if (tabIndex !== undefined) {\n titleSpan.setAttribute(\"tabindex\", `${tabIndex}`);\n }\n }\n\n this.setTreeItemAriaAttributes(titleSpan, nodeName, level, isSelected);\n\n if (this.autoEscape) {\n titleSpan.textContent = nodeName;\n } else {\n titleSpan.innerHTML = nodeName;\n }\n\n return titleSpan;\n }\n\n private createUl(isRootNode: boolean): HTMLUListElement {\n let classString;\n let role;\n\n if (!isRootNode) {\n classString = \"\";\n role = \"group\";\n } else {\n classString = this.classNames.tree;\n role = \"tree\";\n\n if (this.rtl) {\n classString += ` ${this.classNames.rtl}`;\n }\n }\n\n if (this.dragAndDrop) {\n classString += ` ${this.classNames.dnd}`;\n }\n\n const ul = document.createElement(\"ul\");\n ul.className = `${this.classNames.common} ${classString}`;\n\n ul.setAttribute(\"role\", role);\n\n return ul;\n }\n\n private getButtonClasses(node: Node): string {\n const classes = [this.classNames.toggler, this.classNames.common];\n\n if (!node.is_open) {\n classes.push(this.classNames.closed);\n }\n\n if (this.buttonLeft) {\n classes.push(this.classNames.togglerLeft);\n } else {\n classes.push(this.classNames.togglerRight);\n }\n\n return classes.join(\" \");\n }\n\n private getFolderClasses(node: Node, isSelected: boolean): string {\n const classes = [this.classNames.folder];\n\n if (!node.is_open) {\n classes.push(this.classNames.closed);\n }\n\n if (isSelected) {\n classes.push(this.classNames.selected);\n }\n\n if (node.is_loading) {\n classes.push(this.classNames.loading);\n }\n\n return classes.join(\" \");\n }\n\n private setTreeItemAriaAttributes(\n element: HTMLElement,\n name: string,\n level: number,\n isSelected: boolean,\n ) {\n element.setAttribute(\"aria-label\", name);\n element.setAttribute(\"aria-level\", `${level}`);\n element.setAttribute(\"aria-selected\", getBoolString(isSelected));\n element.setAttribute(\"role\", \"treeitem\");\n }\n}\n"],"names":["autoEscape","buttonLeft","classNames","dragAndDrop","getTree","htmlElement","isNodeSelected","onCreateLi","rtl","setNodeElement","showEmptyFolder","tabIndex","createButtonElement","createLi","createDomElements","attachNodeData","createUl","createFolderLi","getButtonClasses","getFolderClasses","createTitleSpan","createNodeLi","setTreeItemAriaAttributes"],"mappings":"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"}
1
+ {"version":3,"file":"elementsRenderer.js","sources":["../src/elementsRenderer.ts"],"sourcesContent":["import type { ClassNames } from \"./classNames\";\nimport type { GetTree, IsNodeSelected } from \"./methodTypes\";\nimport type { Node } from \"./node\";\nimport type { IconElement, OnCreateLi } from \"./options\";\n\nimport { getBoolString } from \"./util\";\n\ninterface ElementsRendererParams {\n ariaLabel?: string;\n ariaLabelledBy?: string;\n autoEscape: boolean;\n buttonLeft: boolean;\n classNames: ClassNames;\n closedIcon?: IconElement;\n dragAndDrop: boolean;\n getTree: GetTree;\n htmlElement: HTMLElement;\n isNodeSelected: IsNodeSelected;\n onCreateLi?: OnCreateLi;\n openedIcon?: IconElement;\n rtl?: boolean;\n setNodeElement: (element: HTMLElement, node: Node) => void;\n showEmptyFolder: boolean;\n tabIndex?: number;\n}\n\n/* Renders the tree to html.\n *\n * The children of a closed folder are not rendered. They are rendered when\n * the folder is opened, see renderChildren.\n *\n * The elements are created by cloning templates. A template is a fully\n * built <li> or <ul> with everything that is the same for every node\n * (structure, roles, static classes, the toggler icon). Per node only the\n * parts that differ are set: the title, the aria attributes and the\n * selected and loading classes.\n */\nexport default class ElementsRenderer {\n public closedIconElement?: globalThis.Node;\n public openedIconElement?: globalThis.Node;\n private ariaLabel?: string;\n private ariaLabelledBy?: string;\n private autoEscape: boolean;\n private buttonLeft: boolean;\n private classNames: ClassNames;\n private closedFolderTemplate: HTMLLIElement;\n private dragAndDrop: boolean;\n private getTree: GetTree;\n private groupUlTemplate: HTMLUListElement;\n private htmlElement: HTMLElement;\n private isNodeSelected: IsNodeSelected;\n private nodeTemplate: HTMLLIElement;\n private onCreateLi?: OnCreateLi;\n private openedFolderTemplate: HTMLLIElement;\n private rootUlTemplate: HTMLUListElement;\n private rtl?: boolean;\n private setNodeElement: (element: HTMLElement, node: Node) => void;\n private showEmptyFolder: boolean;\n private tabIndex?: number;\n\n constructor({\n ariaLabel,\n ariaLabelledBy,\n autoEscape,\n buttonLeft,\n classNames,\n closedIcon = \"-\",\n dragAndDrop,\n getTree,\n htmlElement,\n isNodeSelected,\n onCreateLi,\n openedIcon = \"+\",\n rtl,\n setNodeElement,\n showEmptyFolder,\n tabIndex,\n }: ElementsRendererParams) {\n this.ariaLabel = ariaLabel;\n this.ariaLabelledBy = ariaLabelledBy;\n this.autoEscape = autoEscape;\n this.buttonLeft = buttonLeft;\n this.classNames = classNames;\n this.dragAndDrop = dragAndDrop;\n this.getTree = getTree;\n this.htmlElement = htmlElement;\n this.isNodeSelected = isNodeSelected;\n this.onCreateLi = onCreateLi;\n this.rtl = rtl;\n this.setNodeElement = setNodeElement;\n this.showEmptyFolder = showEmptyFolder;\n this.tabIndex = tabIndex;\n this.openedIconElement = this.createButtonElement(openedIcon);\n this.closedIconElement = this.createButtonElement(closedIcon);\n\n this.rootUlTemplate = this.createUlTemplate(true);\n this.groupUlTemplate = this.createUlTemplate(false);\n this.nodeTemplate = this.createNodeTemplate();\n this.openedFolderTemplate = this.createFolderTemplate(true);\n this.closedFolderTemplate = this.createFolderTemplate(false);\n }\n\n public render(fromNode: Node | null): void {\n if (fromNode?.parent) {\n this.renderFromNode(fromNode);\n } else {\n this.renderFromRoot();\n }\n }\n\n /* Render the children of a rendered folder. Returns the new <ul>, or\n * null when the folder is not rendered or has no children.\n */\n public renderChildren(node: Node): HTMLUListElement | null {\n return !node.element || !node.hasChildren()\n ? null\n : this.createDomElements(\n node.element,\n node.children,\n false,\n node.getLevel() + 1,\n );\n }\n\n public renderFromNode(node: Node): void {\n if (!node.element) {\n return;\n }\n\n const currentLi = node.element;\n const newLi = this.createLi(node, node.getLevel());\n currentLi.replaceWith(newLi);\n\n if (this.mustRenderChildren(node)) {\n this.createDomElements(newLi, node.children, false, node.getLevel() + 1);\n }\n }\n\n public renderFromRoot(): void {\n this.htmlElement.textContent = \"\";\n\n const tree = this.getTree();\n\n if (tree) {\n this.createDomElements(this.htmlElement, tree.children, true, 1);\n }\n }\n\n private attachNodeData(node: Node, li: HTMLElement): void {\n node.element = li;\n this.setNodeElement(li, node);\n }\n\n /* Returns the template of a toggler icon; it is cloned for every folder.\n * A string is parsed as html and becomes a fragment, so it can hold\n * entities, text and elements.\n */\n private createButtonElement(value: IconElement): globalThis.Node | undefined {\n if (typeof value === \"string\") {\n const template = document.createElement(\"template\");\n // eslint-disable-next-line no-unsanitized/property -- icon options are documented to accept html\n template.innerHTML = value;\n\n return template.content;\n }\n return value.nodeType ? value : undefined;\n }\n\n private createDomElements(\n element: Element,\n children: Node[],\n isRootNode: boolean,\n level: number,\n ): HTMLUListElement {\n const template = isRootNode ? this.rootUlTemplate : this.groupUlTemplate;\n const ul = template.cloneNode() as HTMLUListElement;\n element.append(ul);\n\n for (const child of children) {\n const li = this.createLi(child, level);\n ul.append(li);\n\n if (this.mustRenderChildren(child)) {\n this.createDomElements(li, child.children, false, level + 1);\n }\n }\n\n return ul;\n }\n\n private createFolderLi(\n node: Node,\n level: number,\n isSelected: boolean,\n ): HTMLLIElement {\n const template = node.is_open\n ? this.openedFolderTemplate\n : this.closedFolderTemplate;\n const li = template.cloneNode(true) as HTMLLIElement;\n\n if (isSelected) {\n li.classList.add(this.classNames.selected);\n }\n\n // li > div > [toggler], title span, [toggler]\n const div = li.firstChild as HTMLDivElement;\n const titleSpan = div.childNodes[\n this.buttonLeft ? 1 : 0\n ] as HTMLSpanElement;\n\n this.fillTitleSpan(titleSpan, node.name, isSelected, level);\n\n if (node.is_loading) {\n li.classList.add(this.classNames.loading);\n titleSpan.setAttribute(\"aria-busy\", \"true\");\n }\n\n return li;\n }\n\n /* Template for a folder <li>:\n * li > div > [toggler], title span, [toggler]\n * The toggler icon and the aria-expanded attribute depend on the open\n * state, so there is a template for each.\n */\n private createFolderTemplate(isOpen: boolean): HTMLLIElement {\n const liClasses = [this.classNames.common, this.classNames.folder];\n\n if (!isOpen) {\n liClasses.push(this.classNames.closed);\n }\n\n const li = this.createLiTemplate(liClasses.join(\" \"));\n const div = li.firstChild as HTMLDivElement;\n\n // The toggler is hidden from screen readers: the icon is decoration, and\n // aria-expanded on the treeitem has the open state.\n const toggler = document.createElement(\"span\");\n toggler.className = this.getButtonClasses(isOpen);\n toggler.setAttribute(\"aria-hidden\", \"true\");\n\n const iconElement = isOpen\n ? this.openedIconElement\n : this.closedIconElement;\n\n if (iconElement) {\n toggler.append(iconElement.cloneNode(true));\n }\n\n if (this.buttonLeft) {\n div.append(toggler);\n }\n\n // title span\n const titleSpan = this.createTitleSpanTemplate(true);\n titleSpan.setAttribute(\"aria-expanded\", getBoolString(isOpen));\n div.append(titleSpan);\n\n if (!this.buttonLeft) {\n div.append(toggler);\n }\n\n return li;\n }\n\n /* Create the <li> element\n * Attach it to node.element.\n * Call onCreateLi\n */\n private createLi(node: Node, level: number): HTMLLIElement {\n const isSelected = this.isNodeSelected(node);\n\n const mustShowFolder =\n node.isFolder() || (node.isEmptyFolder && this.showEmptyFolder);\n\n const li = mustShowFolder\n ? this.createFolderLi(node, level, isSelected)\n : this.createNodeLi(node, level, isSelected);\n\n this.attachNodeData(node, li);\n\n if (this.onCreateLi) {\n this.onCreateLi(node, li, isSelected);\n }\n\n return li;\n }\n\n /*\n Create the outer part of a <li> template: li > div\n */\n private createLiTemplate(liClasses: string): HTMLLIElement {\n const li = document.createElement(\"li\");\n li.className = liClasses;\n li.setAttribute(\"role\", \"none\");\n\n const div = document.createElement(\"div\");\n div.className = `${this.classNames.element} ${this.classNames.common}`;\n div.setAttribute(\"role\", \"none\");\n\n li.append(div);\n\n return li;\n }\n\n private createNodeLi(\n node: Node,\n level: number,\n isSelected: boolean,\n ): HTMLLIElement {\n const li = this.nodeTemplate.cloneNode(true) as HTMLLIElement;\n\n if (isSelected) {\n li.classList.add(this.classNames.selected);\n }\n\n // li > div > title span\n const div = li.firstChild as HTMLDivElement;\n const titleSpan = div.firstChild as HTMLSpanElement;\n\n this.fillTitleSpan(titleSpan, node.name, isSelected, level);\n\n return li;\n }\n\n /*\n Template for a <li> without children: li > div > title span\n */\n private createNodeTemplate(): HTMLLIElement {\n const li = this.createLiTemplate(this.classNames.common);\n const div = li.firstChild as HTMLDivElement;\n\n div.append(this.createTitleSpanTemplate(false));\n\n return li;\n }\n\n private createTitleSpanTemplate(isFolder: boolean): HTMLSpanElement {\n const titleSpan = document.createElement(\"span\");\n\n let classes = `${this.classNames.title} ${this.classNames.common}`;\n\n if (isFolder) {\n classes += ` ${this.classNames.titleFolder}`;\n }\n\n classes += ` ${this.buttonLeft ? this.classNames.titleButtonLeft : this.classNames.titleButtonRight}`;\n\n titleSpan.className = classes;\n titleSpan.setAttribute(\"role\", \"treeitem\");\n titleSpan.setAttribute(\"aria-selected\", \"false\");\n\n // Every node is focusable, but only the tab stop is in the tab order\n if (this.tabIndex !== undefined) {\n titleSpan.setAttribute(\"tabindex\", \"-1\");\n }\n\n return titleSpan;\n }\n\n private createUlTemplate(isRootNode: boolean): HTMLUListElement {\n let classString;\n let role;\n\n if (isRootNode) {\n classString = this.classNames.tree;\n role = \"tree\";\n\n if (this.rtl) {\n classString += ` ${this.classNames.rtl}`;\n }\n } else {\n classString = \"\";\n role = \"group\";\n }\n\n if (this.dragAndDrop) {\n classString += ` ${this.classNames.dnd}`;\n }\n\n const ul = document.createElement(\"ul\");\n ul.className = `${this.classNames.common} ${classString}`;\n\n ul.setAttribute(\"role\", role);\n\n if (isRootNode) {\n if (this.ariaLabel !== undefined) {\n ul.setAttribute(\"aria-label\", this.ariaLabel);\n }\n\n if (this.ariaLabelledBy !== undefined) {\n ul.setAttribute(\"aria-labelledby\", this.ariaLabelledBy);\n }\n }\n\n return ul;\n }\n\n /*\n Set the parts of a cloned title span that differ per node\n */\n private fillTitleSpan(\n titleSpan: HTMLSpanElement,\n nodeName: string,\n isSelected: boolean,\n level: number,\n ): void {\n titleSpan.setAttribute(\"aria-level\", String(level));\n\n if (isSelected) {\n titleSpan.setAttribute(\"aria-selected\", \"true\");\n\n const tabIndex = this.tabIndex;\n\n if (tabIndex !== undefined) {\n titleSpan.setAttribute(\"tabindex\", String(tabIndex));\n }\n }\n\n if (this.autoEscape) {\n titleSpan.textContent = nodeName;\n } else {\n // eslint-disable-next-line no-unsanitized/property -- the user opted out of escaping with autoEscape: false\n titleSpan.innerHTML = nodeName;\n }\n }\n\n private getButtonClasses(isOpen: boolean): string {\n const classes = [this.classNames.toggler, this.classNames.common];\n\n if (!isOpen) {\n classes.push(this.classNames.closed);\n }\n\n if (this.buttonLeft) {\n classes.push(this.classNames.togglerLeft);\n } else {\n classes.push(this.classNames.togglerRight);\n }\n\n return classes.join(\" \");\n }\n\n /*\n The children of a closed folder are rendered when it is opened\n */\n private mustRenderChildren(node: Node): boolean {\n return node.hasChildren() && node.is_open === true;\n }\n}\n"],"names":["ariaLabel","ariaLabelledBy","autoEscape","buttonLeft","classNames","dragAndDrop","getTree","htmlElement","isNodeSelected","onCreateLi","rtl","setNodeElement","showEmptyFolder","tabIndex","openedIconElement","createButtonElement","closedIconElement","rootUlTemplate","createUlTemplate","groupUlTemplate","nodeTemplate","createNodeTemplate","openedFolderTemplate","createFolderTemplate","closedFolderTemplate","render","renderFromNode","renderFromRoot","renderChildren","createDomElements","createLi","mustRenderChildren","attachNodeData","createFolderLi","fillTitleSpan","createLiTemplate","getButtonClasses","createTitleSpanTemplate","createNodeLi"],"mappings":";;AA0BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACe,MAAM,gBAAgB,CAAC;AAuBpC,EAAA,WAAW,CAAC;IACV,UAAA,EAAA,SAAS;IACT,eAAA,EAAA,cAAc;IACd,WAAA,EAAA,UAAU;IACV,WAAA,EAAA,UAAU;IACV,WAAA,EAAA,UAAU;AACV,IAAA,WAAA,EAAA,UAAU,GAAG,GAAG;IAChB,YAAA,EAAA,WAAW;IACX,QAAA,EAAA,OAAO;IACP,YAAA,EAAA,WAAW;IACX,eAAA,EAAA,cAAc;IACd,WAAA,EAAA,UAAU;AACV,IAAA,WAAA,EAAA,UAAU,GAAG,GAAG;IAChB,IAAA,EAAA,GAAG;IACH,eAAA,EAAA,cAAc;IACd,gBAAA,EAAA,eAAe;AACf,IAAA,SAAA,EAAA;AACsB,GAAC,EAAE;IACzB,IAAI,CAACA,UAAS,GAAG,SAAS;IAC1B,IAAI,CAACC,eAAc,GAAG,cAAc;IACpC,IAAI,CAACC,WAAU,GAAG,UAAU;IAC5B,IAAI,CAACC,WAAU,GAAG,UAAU;IAC5B,IAAI,CAACC,WAAU,GAAG,UAAU;IAC5B,IAAI,CAACC,YAAW,GAAG,WAAW;IAC9B,IAAI,CAACC,QAAO,GAAG,OAAO;IACtB,IAAI,CAACC,YAAW,GAAG,WAAW;IAC9B,IAAI,CAACC,eAAc,GAAG,cAAc;IACpC,IAAI,CAACC,WAAU,GAAG,UAAU;IAC5B,IAAI,CAACC,IAAG,GAAG,GAAG;IACd,IAAI,CAACC,eAAc,GAAG,cAAc;IACpC,IAAI,CAACC,gBAAe,GAAG,eAAe;IACtC,IAAI,CAACC,SAAQ,GAAG,QAAQ;IACxB,IAAI,CAACC,kBAAiB,GAAG,IAAI,CAACC,oBAAmB,CAAC,UAAU,CAAC;IAC7D,IAAI,CAACC,kBAAiB,GAAG,IAAI,CAACD,oBAAmB,CAAC,UAAU,CAAC;IAE7D,IAAI,CAACE,eAAc,GAAG,IAAI,CAACC,iBAAgB,CAAC,IAAI,CAAC;IACjD,IAAI,CAACC,gBAAe,GAAG,IAAI,CAACD,iBAAgB,CAAC,KAAK,CAAC;AACnD,IAAA,IAAI,CAACE,aAAY,GAAG,IAAI,CAACC,mBAAkB,EAAE;IAC7C,IAAI,CAACC,qBAAoB,GAAG,IAAI,CAACC,qBAAoB,CAAC,IAAI,CAAC;IAC3D,IAAI,CAACC,qBAAoB,GAAG,IAAI,CAACD,qBAAoB,CAAC,KAAK,CAAC;AAC9D,EAAA;EAEOE,OAAMA,CAAC,QAAqB,EAAQ;IACzC,IAAI,QAAQ,EAAE,MAAM,EAAE;AACpB,MAAA,IAAI,CAACC,eAAc,CAAC,QAAQ,CAAC;AAC/B,IAAA,CAAC,MAAM;MACL,IAAI,CAACC,eAAc,EAAE;AACvB,IAAA;AACF,EAAA;;AAEA;AACF;AACA;EACSC,eAAcA,CAAC,IAAU,EAA2B;AACzD,IAAA,OAAO,CAAC,IAAI,CAAC,OAAO,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,GACvC,IAAI,GACJ,IAAI,CAACC,kBAAiB,CACpB,IAAI,CAAC,OAAO,EACZ,IAAI,CAAC,QAAQ,EACb,KAAK,EACL,IAAI,CAAC,QAAQ,EAAE,GAAG,CACpB,CAAC;AACP,EAAA;EAEOH,eAAcA,CAAC,IAAU,EAAQ;AACtC,IAAA,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE;AACjB,MAAA;AACF,IAAA;AAEA,IAAA,IAAM,SAAS,GAAG,IAAI,CAAC,OAAO;AAC9B,IAAA,IAAM,KAAK,GAAG,IAAI,CAACI,SAAQ,CAAC,IAAI,EAAE,IAAI,CAAC,QAAQ,EAAE,CAAC;AAClD,IAAA,SAAS,CAAC,WAAW,CAAC,KAAK,CAAC;AAE5B,IAAA,IAAI,IAAI,CAACC,mBAAkB,CAAC,IAAI,CAAC,EAAE;AACjC,MAAA,IAAI,CAACF,kBAAiB,CAAC,KAAK,EAAE,IAAI,CAAC,QAAQ,EAAE,KAAK,EAAE,IAAI,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC;AAC1E,IAAA;AACF,EAAA;AAEOF,EAAAA,eAAcA,GAAS;AAC5B,IAAA,IAAI,CAACpB,YAAW,CAAC,WAAW,GAAG,EAAE;AAEjC,IAAA,IAAM,IAAI,GAAG,IAAI,CAACD,QAAO,EAAE;AAE3B,IAAA,IAAI,IAAI,EAAE;AACR,MAAA,IAAI,CAACuB,kBAAiB,CAAC,IAAI,CAACtB,YAAW,EAAE,IAAI,CAAC,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC;AAClE,IAAA;AACF,EAAA;AAEQyB,EAAAA,eAAcA,CAAC,IAAU,EAAE,EAAe,EAAQ;IACxD,IAAI,CAAC,OAAO,GAAG,EAAE;AACjB,IAAA,IAAI,CAACrB,eAAc,CAAC,EAAE,EAAE,IAAI,CAAC;AAC/B,EAAA;;AAEA;AACF;AACA;AACA;EACUI,oBAAmBA,CAAC,KAAkB,EAA+B;AAC3E,IAAA,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE;AAC7B,MAAA,IAAM,QAAQ,GAAG,QAAQ,CAAC,aAAa,CAAC,UAAU,CAAC;AACnD;MACA,QAAQ,CAAC,SAAS,GAAG,KAAK;MAE1B,OAAO,QAAQ,CAAC,OAAO;AACzB,IAAA;AACA,IAAA,OAAO,KAAK,CAAC,QAAQ,GAAG,KAAK,GAAG,SAAS;AAC3C,EAAA;EAEQc,kBAAiBA,CACvB,OAAgB,EAChB,QAAgB,EAChB,UAAmB,EACnB,KAAa,EACK;IAClB,IAAM,QAAQ,GAAG,UAAU,GAAG,IAAI,CAACZ,eAAc,GAAG,IAAI,CAACE,gBAAe;AACxE,IAAA,IAAM,EAAE,GAAG,QAAQ,CAAC,SAAS,EAAsB;AACnD,IAAA,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;AAElB,IAAA,KAAK,IAAM,KAAK,IAAI,QAAQ,EAAE;MAC5B,IAAM,EAAE,GAAG,IAAI,CAACW,SAAQ,CAAC,KAAK,EAAE,KAAK,CAAC;AACtC,MAAA,EAAE,CAAC,MAAM,CAAC,EAAE,CAAC;AAEb,MAAA,IAAI,IAAI,CAACC,mBAAkB,CAAC,KAAK,CAAC,EAAE;AAClC,QAAA,IAAI,CAACF,kBAAiB,CAAC,EAAE,EAAE,KAAK,CAAC,QAAQ,EAAE,KAAK,EAAE,KAAK,GAAG,CAAC,CAAC;AAC9D,MAAA;AACF,IAAA;AAEA,IAAA,OAAO,EAAE;AACX,EAAA;AAEQI,EAAAA,eAAcA,CACpB,IAAU,EACV,KAAa,EACb,UAAmB,EACJ;AACf,IAAA,IAAM,QAAQ,GAAG,IAAI,CAAC,OAAO,GACzB,IAAI,CAACX,qBAAoB,GACzB,IAAI,CAACE,qBAAoB;AAC7B,IAAA,IAAM,EAAE,GAAG,QAAQ,CAAC,SAAS,CAAC,IAAI,CAAkB;AAEpD,IAAA,IAAI,UAAU,EAAE;MACd,EAAE,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,CAACpB,WAAU,CAAC,QAAQ,CAAC;AAC5C,IAAA;;AAEA;AACA,IAAA,IAAM,GAAG,GAAG,EAAE,CAAC,UAA4B;AAC3C,IAAA,IAAM,SAAS,GAAG,GAAG,CAAC,UAAU,CAC9B,IAAI,CAACD,WAAU,GAAG,CAAC,GAAG,CAAC,CACL;AAEpB,IAAA,IAAI,CAAC+B,cAAa,CAAC,SAAS,EAAE,IAAI,CAAC,IAAI,EAAE,UAAU,EAAE,KAAK,CAAC;IAE3D,IAAI,IAAI,CAAC,UAAU,EAAE;MACnB,EAAE,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC9B,WAAU,CAAC,OAAO,CAAC;AACzC,MAAA,SAAS,CAAC,YAAY,CAAC,WAAW,EAAE,MAAM,CAAC;AAC7C,IAAA;AAEA,IAAA,OAAO,EAAE;AACX,EAAA;;AAEA;AACF;AACA;AACA;AACA;EACUmB,qBAAoBA,CAAC,MAAe,EAAiB;AAC3D,IAAA,IAAM,SAAS,GAAG,CAAC,IAAI,CAACnB,WAAU,CAAC,MAAM,EAAE,IAAI,CAACA,WAAU,CAAC,MAAM,CAAC;IAElE,IAAI,CAAC,MAAM,EAAE;MACX,SAAS,CAAC,IAAI,CAAC,IAAI,CAACA,WAAU,CAAC,MAAM,CAAC;AACxC,IAAA;AAEA,IAAA,IAAM,EAAE,GAAG,IAAI,CAAC+B,iBAAgB,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AACrD,IAAA,IAAM,GAAG,GAAG,EAAE,CAAC,UAA4B;;AAE3C;AACA;AACA,IAAA,IAAM,OAAO,GAAG,QAAQ,CAAC,aAAa,CAAC,MAAM,CAAC;IAC9C,OAAO,CAAC,SAAS,GAAG,IAAI,CAACC,iBAAgB,CAAC,MAAM,CAAC;AACjD,IAAA,OAAO,CAAC,YAAY,CAAC,aAAa,EAAE,MAAM,CAAC;IAE3C,IAAM,WAAW,GAAG,MAAM,GACtB,IAAI,CAACtB,kBAAiB,GACtB,IAAI,CAACE,kBAAiB;AAE1B,IAAA,IAAI,WAAW,EAAE;MACf,OAAO,CAAC,MAAM,CAAC,WAAW,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;AAC7C,IAAA;IAEA,IAAI,IAAI,CAACb,WAAU,EAAE;AACnB,MAAA,GAAG,CAAC,MAAM,CAAC,OAAO,CAAC;AACrB,IAAA;;AAEA;AACA,IAAA,IAAM,SAAS,GAAG,IAAI,CAACkC,wBAAuB,CAAC,IAAI,CAAC;IACpD,SAAS,CAAC,YAAY,CAAC,eAAe,EAAE,aAAa,CAAC,MAAM,CAAC,CAAC;AAC9D,IAAA,GAAG,CAAC,MAAM,CAAC,SAAS,CAAC;AAErB,IAAA,IAAI,CAAC,IAAI,CAAClC,WAAU,EAAE;AACpB,MAAA,GAAG,CAAC,MAAM,CAAC,OAAO,CAAC;AACrB,IAAA;AAEA,IAAA,OAAO,EAAE;AACX,EAAA;;AAEA;AACF;AACA;AACA;AACU2B,EAAAA,SAAQA,CAAC,IAAU,EAAE,KAAa,EAAiB;AACzD,IAAA,IAAM,UAAU,GAAG,IAAI,CAACtB,eAAc,CAAC,IAAI,CAAC;AAE5C,IAAA,IAAM,cAAc,GAClB,IAAI,CAAC,QAAQ,EAAE,IAAK,IAAI,CAAC,aAAa,IAAI,IAAI,CAACI,gBAAgB;IAEjE,IAAM,EAAE,GAAG,cAAc,GACrB,IAAI,CAACqB,eAAc,CAAC,IAAI,EAAE,KAAK,EAAE,UAAU,CAAC,GAC5C,IAAI,CAACK,aAAY,CAAC,IAAI,EAAE,KAAK,EAAE,UAAU,CAAC;AAE9C,IAAA,IAAI,CAACN,eAAc,CAAC,IAAI,EAAE,EAAE,CAAC;IAE7B,IAAI,IAAI,CAACvB,WAAU,EAAE;MACnB,IAAI,CAACA,WAAU,CAAC,IAAI,EAAE,EAAE,EAAE,UAAU,CAAC;AACvC,IAAA;AAEA,IAAA,OAAO,EAAE;AACX,EAAA;;AAEA;AACF;AACA;EACU0B,iBAAgBA,CAAC,SAAiB,EAAiB;AACzD,IAAA,IAAM,EAAE,GAAG,QAAQ,CAAC,aAAa,CAAC,IAAI,CAAC;IACvC,EAAE,CAAC,SAAS,GAAG,SAAS;AACxB,IAAA,EAAE,CAAC,YAAY,CAAC,MAAM,EAAE,MAAM,CAAC;AAE/B,IAAA,IAAM,GAAG,GAAG,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC;AACzC,IAAA,GAAG,CAAC,SAAS,GAAG,CAAA,EAAG,IAAI,CAAC/B,WAAU,CAAC,OAAO,IAAI,IAAI,CAACA,WAAU,CAAC,MAAM,CAAA,CAAE;AACtE,IAAA,GAAG,CAAC,YAAY,CAAC,MAAM,EAAE,MAAM,CAAC;AAEhC,IAAA,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC;AAEd,IAAA,OAAO,EAAE;AACX,EAAA;AAEQkC,EAAAA,aAAYA,CAClB,IAAU,EACV,KAAa,EACb,UAAmB,EACJ;IACf,IAAM,EAAE,GAAG,IAAI,CAAClB,aAAY,CAAC,SAAS,CAAC,IAAI,CAAkB;AAE7D,IAAA,IAAI,UAAU,EAAE;MACd,EAAE,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,CAAChB,WAAU,CAAC,QAAQ,CAAC;AAC5C,IAAA;;AAEA;AACA,IAAA,IAAM,GAAG,GAAG,EAAE,CAAC,UAA4B;AAC3C,IAAA,IAAM,SAAS,GAAG,GAAG,CAAC,UAA6B;AAEnD,IAAA,IAAI,CAAC8B,cAAa,CAAC,SAAS,EAAE,IAAI,CAAC,IAAI,EAAE,UAAU,EAAE,KAAK,CAAC;AAE3D,IAAA,OAAO,EAAE;AACX,EAAA;;AAEA;AACF;AACA;AACUb,EAAAA,mBAAkBA,GAAkB;IAC1C,IAAM,EAAE,GAAG,IAAI,CAACc,iBAAgB,CAAC,IAAI,CAAC/B,WAAU,CAAC,MAAM,CAAC;AACxD,IAAA,IAAM,GAAG,GAAG,EAAE,CAAC,UAA4B;IAE3C,GAAG,CAAC,MAAM,CAAC,IAAI,CAACiC,wBAAuB,CAAC,KAAK,CAAC,CAAC;AAE/C,IAAA,OAAO,EAAE;AACX,EAAA;EAEQA,wBAAuBA,CAAC,QAAiB,EAAmB;AAClE,IAAA,IAAM,SAAS,GAAG,QAAQ,CAAC,aAAa,CAAC,MAAM,CAAC;AAEhD,IAAA,IAAI,OAAO,GAAG,CAAA,EAAG,IAAI,CAACjC,WAAU,CAAC,KAAK,CAAA,CAAA,EAAI,IAAI,CAACA,WAAU,CAAC,MAAM,CAAA,CAAE;AAElE,IAAA,IAAI,QAAQ,EAAE;AACZ,MAAA,OAAO,IAAI,CAAA,CAAA,EAAI,IAAI,CAACA,WAAU,CAAC,WAAW,CAAA,CAAE;AAC9C,IAAA;AAEA,IAAA,OAAO,IAAI,CAAA,CAAA,EAAI,IAAI,CAACD,WAAU,GAAG,IAAI,CAACC,WAAU,CAAC,eAAe,GAAG,IAAI,CAACA,WAAU,CAAC,gBAAgB,CAAA,CAAE;IAErG,SAAS,CAAC,SAAS,GAAG,OAAO;AAC7B,IAAA,SAAS,CAAC,YAAY,CAAC,MAAM,EAAE,UAAU,CAAC;AAC1C,IAAA,SAAS,CAAC,YAAY,CAAC,eAAe,EAAE,OAAO,CAAC;;AAEhD;AACA,IAAA,IAAI,IAAI,CAACS,SAAQ,KAAK,SAAS,EAAE;AAC/B,MAAA,SAAS,CAAC,YAAY,CAAC,UAAU,EAAE,IAAI,CAAC;AAC1C,IAAA;AAEA,IAAA,OAAO,SAAS;AAClB,EAAA;EAEQK,iBAAgBA,CAAC,UAAmB,EAAoB;AAC9D,IAAA,IAAI,WAAW;AACf,IAAA,IAAI,IAAI;AAER,IAAA,IAAI,UAAU,EAAE;AACd,MAAA,WAAW,GAAG,IAAI,CAACd,WAAU,CAAC,IAAI;AAClC,MAAA,IAAI,GAAG,MAAM;MAEb,IAAI,IAAI,CAACM,IAAG,EAAE;AACZ,QAAA,WAAW,IAAI,CAAA,CAAA,EAAI,IAAI,CAACN,WAAU,CAAC,GAAG,CAAA,CAAE;AAC1C,MAAA;AACF,IAAA,CAAC,MAAM;AACL,MAAA,WAAW,GAAG,EAAE;AAChB,MAAA,IAAI,GAAG,OAAO;AAChB,IAAA;IAEA,IAAI,IAAI,CAACC,YAAW,EAAE;AACpB,MAAA,WAAW,IAAI,CAAA,CAAA,EAAI,IAAI,CAACD,WAAU,CAAC,GAAG,CAAA,CAAE;AAC1C,IAAA;AAEA,IAAA,IAAM,EAAE,GAAG,QAAQ,CAAC,aAAa,CAAC,IAAI,CAAC;IACvC,EAAE,CAAC,SAAS,GAAG,CAAA,EAAG,IAAI,CAACA,WAAU,CAAC,MAAM,CAAA,CAAA,EAAI,WAAW,CAAA,CAAE;AAEzD,IAAA,EAAE,CAAC,YAAY,CAAC,MAAM,EAAE,IAAI,CAAC;AAE7B,IAAA,IAAI,UAAU,EAAE;AACd,MAAA,IAAI,IAAI,CAACJ,UAAS,KAAK,SAAS,EAAE;QAChC,EAAE,CAAC,YAAY,CAAC,YAAY,EAAE,IAAI,CAACA,UAAS,CAAC;AAC/C,MAAA;AAEA,MAAA,IAAI,IAAI,CAACC,eAAc,KAAK,SAAS,EAAE;QACrC,EAAE,CAAC,YAAY,CAAC,iBAAiB,EAAE,IAAI,CAACA,eAAc,CAAC;AACzD,MAAA;AACF,IAAA;AAEA,IAAA,OAAO,EAAE;AACX,EAAA;;AAEA;AACF;AACA;EACUiC,cAAaA,CACnB,SAA0B,EAC1B,QAAgB,EAChB,UAAmB,EACnB,KAAa,EACP;IACN,SAAS,CAAC,YAAY,CAAC,YAAY,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC;AAEnD,IAAA,IAAI,UAAU,EAAE;AACd,MAAA,SAAS,CAAC,YAAY,CAAC,eAAe,EAAE,MAAM,CAAC;AAE/C,MAAA,IAAM,QAAQ,GAAG,IAAI,CAACrB,SAAQ;MAE9B,IAAI,QAAQ,KAAK,SAAS,EAAE;QAC1B,SAAS,CAAC,YAAY,CAAC,UAAU,EAAE,MAAM,CAAC,QAAQ,CAAC,CAAC;AACtD,MAAA;AACF,IAAA;IAEA,IAAI,IAAI,CAACX,WAAU,EAAE;MACnB,SAAS,CAAC,WAAW,GAAG,QAAQ;AAClC,IAAA,CAAC,MAAM;AACL;MACA,SAAS,CAAC,SAAS,GAAG,QAAQ;AAChC,IAAA;AACF,EAAA;EAEQkC,iBAAgBA,CAAC,MAAe,EAAU;AAChD,IAAA,IAAM,OAAO,GAAG,CAAC,IAAI,CAAChC,WAAU,CAAC,OAAO,EAAE,IAAI,CAACA,WAAU,CAAC,MAAM,CAAC;IAEjE,IAAI,CAAC,MAAM,EAAE;MACX,OAAO,CAAC,IAAI,CAAC,IAAI,CAACA,WAAU,CAAC,MAAM,CAAC;AACtC,IAAA;IAEA,IAAI,IAAI,CAACD,WAAU,EAAE;MACnB,OAAO,CAAC,IAAI,CAAC,IAAI,CAACC,WAAU,CAAC,WAAW,CAAC;AAC3C,IAAA,CAAC,MAAM;MACL,OAAO,CAAC,IAAI,CAAC,IAAI,CAACA,WAAU,CAAC,YAAY,CAAC;AAC5C,IAAA;AAEA,IAAA,OAAO,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC;AAC1B,EAAA;;AAEA;AACF;AACA;EACU2B,mBAAkBA,CAAC,IAAU,EAAW;IAC9C,OAAO,IAAI,CAAC,WAAW,EAAE,IAAI,IAAI,CAAC,OAAO,KAAK,IAAI;AACpD,EAAA;AACF;;"}
package/lib/events.d.ts CHANGED
@@ -82,6 +82,23 @@ export interface TreeEvents {
82
82
  node: Node;
83
83
  originalEvent: MouseEvent;
84
84
  };
85
+ /**
86
+ * Dispatched when `Enter` is pressed on the selected node, or on the
87
+ * focused node when no node is selected. Use it for what a click on a
88
+ * link would do, like opening the edit page of the node:
89
+ *
90
+ * ```js
91
+ * element.addEventListener("tree.activate", (e) => {
92
+ * window.location.href = e.detail.node.url;
93
+ * });
94
+ * ```
95
+ *
96
+ * @group Keyboard
97
+ */
98
+ "tree.activate": {
99
+ node: Node;
100
+ originalEvent: KeyboardEvent;
101
+ };
85
102
  /**
86
103
  * Dispatched when a folder is opened, after the animation.
87
104
  *
@@ -112,15 +129,19 @@ export interface TreeEvents {
112
129
  * @group Selection
113
130
  */
114
131
  "tree.select": {
115
- /** The node that was selected before, if any. */
132
+ /**
133
+ The node that was selected before, if any.
134
+ */
116
135
  deselectedNode: Node | null;
117
- /** The node that is now selected. */
136
+ /**
137
+ The node that is now selected.
138
+ */
118
139
  node: Node;
119
140
  };
120
141
  /**
121
142
  * Dispatched when the selected node is deselected, which happens when it
122
- * is clicked again or passed to `selectNode` again. No `tree.select` is
123
- * dispatched for it.
143
+ * is clicked again or passed to `selectNode` again with
144
+ * `mustToggle: true`. No `tree.select` is dispatched for it.
124
145
  *
125
146
  * ```js
126
147
  * element.addEventListener("tree.deselect", (e) => {
@@ -130,7 +151,7 @@ export interface TreeEvents {
130
151
  *
131
152
  * Selecting another node does not dispatch it — that is a `tree.select`
132
153
  * with the previous node in `deselectedNode`. It is also not dispatched
133
- * with `mustToggle: false`, or by `selectNode(null)`,
154
+ * by `selectNode` without `mustToggle: true`, `selectNode(null)`,
134
155
  * `removeFromSelection`, `removeNode`, `loadData` and restoring a saved
135
156
  * state.
136
157
  *
@@ -158,7 +179,9 @@ export interface TreeEvents {
158
179
  * @group Drag and drop
159
180
  */
160
181
  "tree.move": {
161
- /** @hidden The fields are in the table above. */
182
+ /**
183
+ @hidden The fields are in the table above.
184
+ */
162
185
  moveInfo: MoveInfo;
163
186
  };
164
187
  /**
@@ -168,7 +191,9 @@ export interface TreeEvents {
168
191
  * @group Loading data
169
192
  */
170
193
  "tree.set_data": {
171
- /** The node whose children were replaced, if it was a subtree. */
194
+ /**
195
+ The node whose children were replaced, if it was a subtree.
196
+ */
172
197
  node?: Node;
173
198
  treeData?: NodeData[];
174
199
  };
@@ -179,7 +204,9 @@ export interface TreeEvents {
179
204
  */
180
205
  "tree.loading_data": {
181
206
  element: HTMLElement;
182
- /** The node whose children are loading, if it is a subtree. */
207
+ /**
208
+ The node whose children are loading, if it is a subtree.
209
+ */
183
210
  node?: Node;
184
211
  };
185
212
  /**
@@ -190,7 +217,9 @@ export interface TreeEvents {
190
217
  */
191
218
  "tree.loaded_data": {
192
219
  element: HTMLElement;
193
- /** The node whose children were loaded, if it was a subtree. */
220
+ /**
221
+ The node whose children were loaded, if it was a subtree.
222
+ */
194
223
  node?: Node;
195
224
  };
196
225
  /**
@@ -210,9 +239,13 @@ export interface TreeEvents {
210
239
  * @group Loading data
211
240
  */
212
241
  "tree.load_failed": {
213
- /** The error thrown by `fetch`, if the request failed with a network error. */
242
+ /**
243
+ The error thrown by `fetch`, if the request failed with a network error.
244
+ */
214
245
  error?: unknown;
215
- /** The response, if the request returned an error status. */
246
+ /**
247
+ The response, if the request returned an error status.
248
+ */
216
249
  response?: Response;
217
250
  };
218
251
  }
@@ -1 +1 @@
1
- {"version":3,"file":"events.d.ts","sourceRoot":"","sources":["../src/events.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,QAAQ,CAAC;AAEvD,MAAM,WAAW,QAAQ;IACrB,MAAM,EAAE,MAAM,IAAI,CAAC;IACnB,SAAS,EAAE,IAAI,CAAC;IAChB,aAAa,EAAE,KAAK,CAAC;IACrB,QAAQ,EAAE,QAAQ,CAAC;IACnB,cAAc,EAAE,IAAI,GAAG,IAAI,CAAC;IAC5B,UAAU,EAAE,IAAI,CAAC;CACpB;AAGD,MAAM,MAAM,SAAS,CAAC,IAAI,SAAS,aAAa,GAAG,aAAa,IAAI,WAAW,CAC3E,UAAU,CAAC,IAAI,CAAC,CACnB,CAAC;AAEF,MAAM,MAAM,aAAa,GAAG,MAAM,UAAU,CAAC;AAO7C,MAAM,WAAW,UAAU;IACvB;;;;;;;;;;;;;;;;;;;;;;;;;;;;OA4BG;IACH,WAAW,EAAE,SAAS,CAAC;IACvB;;;;OAIG;IACH,cAAc,EAAE,SAAS,CAAC;IAC1B;;;;;;;;;;;;OAYG;IACH,YAAY,EAAE;QACV,IAAI,EAAE,IAAI,CAAC;QACX,aAAa,EAAE,UAAU,CAAC;KAC7B,CAAC;IACF;;;;OAIG;IACH,eAAe,EAAE;QACb,IAAI,EAAE,IAAI,CAAC;QACX,aAAa,EAAE,UAAU,CAAC;KAC7B,CAAC;IACF;;;;;OAKG;IACH,kBAAkB,EAAE;QAChB,IAAI,EAAE,IAAI,CAAC;QACX,aAAa,EAAE,UAAU,CAAC;KAC7B,CAAC;IACF;;;;OAIG;IACH,WAAW,EAAE;QACT,IAAI,EAAE,IAAI,CAAC;KACd,CAAC;IACF;;;;OAIG;IACH,YAAY,EAAE;QACV,IAAI,EAAE,IAAI,CAAC;KACd,CAAC;IACF;;;;;;;;;;;;OAYG;IACH,aAAa,EAAE;QACX,iDAAiD;QACjD,cAAc,EAAE,IAAI,GAAG,IAAI,CAAC;QAC5B,qCAAqC;QACrC,IAAI,EAAE,IAAI,CAAC;KACd,CAAC;IACF;;;;;;;;;;;;;;;;;;OAkBG;IACH,eAAe,EAAE;QACb,IAAI,EAAE,IAAI,CAAC;KACd,CAAC;IACF;;;;;;;;;;;;;;;;;OAiBG;IACH,WAAW,EAAE;QACT,iDAAiD;QACjD,QAAQ,EAAE,QAAQ,CAAC;KACtB,CAAC;IACF;;;;;OAKG;IACH,eAAe,EAAE;QACb,kEAAkE;QAClE,IAAI,CAAC,EAAE,IAAI,CAAC;QACZ,QAAQ,CAAC,EAAE,QAAQ,EAAE,CAAC;KACzB,CAAC;IACF;;;;OAIG;IACH,mBAAmB,EAAE;QACjB,OAAO,EAAE,WAAW,CAAC;QACrB,+DAA+D;QAC/D,IAAI,CAAC,EAAE,IAAI,CAAC;KACf,CAAC;IACF;;;;;OAKG;IACH,kBAAkB,EAAE;QAChB,OAAO,EAAE,WAAW,CAAC;QACrB,gEAAgE;QAChE,IAAI,CAAC,EAAE,IAAI,CAAC;KACf,CAAC;IACF;;;;;;;;;;;;;;;OAeG;IACH,kBAAkB,EAAE;QAChB,+EAA+E;QAC/E,KAAK,CAAC,EAAE,OAAO,CAAC;QAChB,6DAA6D;QAC7D,QAAQ,CAAC,EAAE,QAAQ,CAAC;KACvB,CAAC;CACL;AAGD,KAAK,YAAY,GAAG;KACf,IAAI,IAAI,aAAa,GAAG,SAAS,CAAC,IAAI,CAAC;CAC3C,CAAC;AAGF,OAAO,CAAC,MAAM,CAAC;IACX,UAAU,gBAAiB,SAAQ,YAAY;KAAI;IAEnD,UAAU,mBAAoB,SAAQ,YAAY;KAAI;IAEtD,UAAU,cAAe,SAAQ,YAAY;KAAI;CACpD"}
1
+ {"version":3,"file":"events.d.ts","sourceRoot":"","sources":["../src/events.ts"],"names":[],"mappings":"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"}
package/lib/index.d.ts CHANGED
@@ -1,13 +1,14 @@
1
- import type { MoveInfo, TreeEvent, TreeEventName, TreeEvents } from "./events.js";
1
+ import type { TreeEventName, TreeEvents } from "./events.js";
2
2
  import type { NodeData, NodeId, Position } from "./node.js";
3
3
  import type { TreeElementOptions } from "./options.js";
4
4
  import type { SavedState } from "./saveStateHandler.js";
5
5
  import type { SelectNodeOptions } from "./selectNodeHandler.js";
6
6
  import { Node } from "./node.js";
7
- export type { MoveInfo, Node, NodeData, NodeId, Position, SavedState, SelectNodeOptions, TreeElementOptions, TreeEvent, TreeEventName, TreeEvents, };
8
7
  export type TriggerEventProvider = (element: HTMLElement, eventName: TreeEventName, values?: TreeEvents[TreeEventName]) => boolean;
9
8
  interface TreeElementParams extends Partial<TreeElementOptions> {
10
- /** The element the tree is rendered into. Its content is replaced. */
9
+ /**
10
+ The element the tree is rendered into. Its content is replaced.
11
+ */
11
12
  htmlElement: HTMLElement;
12
13
  /** Replaces how events are dispatched. It must return whether the event
13
14
  * was not cancelled. This exists for tests and for integrating with
@@ -15,11 +16,10 @@ interface TreeElementParams extends Partial<TreeElementOptions> {
15
16
  overrideTriggerEventProvider?: TriggerEventProvider;
16
17
  }
17
18
  export default class TreeElement {
18
- /** @hidden */
19
- tree: Node;
20
19
  private classNames;
21
20
  private dataLoader;
22
21
  private dndHandler;
22
+ private fallbackTabStop;
23
23
  private htmlElement;
24
24
  private isInitialized;
25
25
  private keyHandler;
@@ -30,8 +30,11 @@ export default class TreeElement {
30
30
  private saveStateHandler;
31
31
  private scrollHandler;
32
32
  private selectNodeHandler;
33
+ private tree;
33
34
  private triggerEventProvider;
34
- /** @hidden */
35
+ /**
36
+ @hidden
37
+ */
35
38
  constructor({ htmlElement, overrideTriggerEventProvider, ...options }: TreeElementParams);
36
39
  /**
37
40
  * Adds a sibling after a node.
@@ -75,12 +78,19 @@ export default class TreeElement {
75
78
  */
76
79
  appendNode(nodeData: NodeData, parentNode: Node): Node;
77
80
  /**
78
- * Closes a folder.
81
+ * Closes a folder. Await the promise when you need to know the closing
82
+ * animation has finished.
83
+ *
84
+ * @example
85
+ * ```js
86
+ * await tree.closeNode(node);
87
+ * console.log("closed");
88
+ * ```
79
89
  *
80
90
  * @param slide - Override the `slide` option for this call.
81
91
  * @group Opening and closing
82
92
  */
83
- closeNode(node: Node, slide?: boolean): void;
93
+ closeNode(node: Node, slide?: boolean): Promise<void>;
84
94
  /**
85
95
  * Empties the element and removes the tree's document-level keyboard
86
96
  * listener. Call it when you remove the tree from the page.
@@ -141,11 +151,11 @@ export default class TreeElement {
141
151
  */
142
152
  getNodesByProperty(key: string, value: unknown): Node[];
143
153
  /**
144
- * Returns the selected node, or `false` when nothing is selected.
154
+ * Returns the selected node, or `null` when nothing is selected.
145
155
  *
146
156
  * @group Selection
147
157
  */
148
- getSelectedNode(): false | Node;
158
+ getSelectedNode(): Node | null;
149
159
  /**
150
160
  * Returns the selected nodes.
151
161
  *
@@ -301,18 +311,21 @@ export default class TreeElement {
301
311
  */
302
312
  setOption(option: string, value: unknown): void;
303
313
  /**
304
- * Applies a state to the tree.
314
+ * Applies a state to the tree, and saves it to storage when `saveState` is
315
+ * enabled.
305
316
  *
306
317
  * @group State
307
318
  */
308
319
  setState(state: SavedState): void;
309
320
  /**
310
- * Closes an open node and opens a closed one.
321
+ * Closes an open node and opens a closed one. Await the promise when you
322
+ * need to know the node is really open or closed, like with `openNode` and
323
+ * `closeNode`.
311
324
  *
312
325
  * @param slide - Override the `slide` option for this call.
313
326
  * @group Opening and closing
314
327
  */
315
- toggle(node: Node, slide?: boolean | null): void;
328
+ toggle(node: Node, slide?: boolean | null): Promise<void>;
316
329
  /**
317
330
  * Returns the tree as a json string, including changes made through the
318
331
  * api.
@@ -336,15 +349,19 @@ export default class TreeElement {
336
349
  * @group Changing the tree
337
350
  */
338
351
  updateNode(node: Node, data: NodeData): void;
352
+ private autoOpenNodesOnDemand;
339
353
  private createFolderElement;
340
354
  private createNodeElement;
341
355
  private createRequestUrl;
342
356
  private deselectCurrentNode;
343
357
  private deselectNodes;
344
358
  private getAutoOpenMaxLevel;
359
+ private getFirstTitleSpan;
360
+ private getFocusedNode;
345
361
  private getNodeElement;
346
362
  private getNodeElementForNode;
347
363
  private getNodeIdToBeSelected;
364
+ private hasRenderedSelectedNode;
348
365
  private initData;
349
366
  private initTree;
350
367
  private isFocusOnTree;
@@ -363,5 +380,11 @@ export default class TreeElement {
363
380
  private setInitialStateOnDemand;
364
381
  private setNodeElement;
365
382
  private triggerEvent;
383
+ private updateTabStop;
366
384
  }
385
+ export { type MoveInfo, type TreeEvent, type TreeEventName, type TreeEvents, } from "./events.js";
386
+ export { type Node, type NodeData, type NodeId, type Position } from "./node.js";
387
+ export { type TreeElementOptions } from "./options.js";
388
+ export { type SavedState } from "./saveStateHandler.js";
389
+ export { type SelectNodeOptions } from "./selectNodeHandler.js";
367
390
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}