@vscode-elements/elements 2.0.0-pre.1 → 2.0.0-pre.3

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 (247) hide show
  1. package/README.md +5 -1
  2. package/custom-elements.json +3512 -1943
  3. package/dist/bundled.js +1179 -947
  4. package/dist/includes/VscElement.d.ts +9 -1
  5. package/dist/includes/VscElement.d.ts.map +1 -1
  6. package/dist/includes/VscElement.js +38 -5
  7. package/dist/includes/VscElement.js.map +1 -1
  8. package/dist/includes/form-button-widget/LabelledCheckboxOrRadio.d.ts.map +1 -1
  9. package/dist/includes/form-button-widget/base.styles.js +8 -8
  10. package/dist/includes/form-button-widget/base.styles.js.map +1 -1
  11. package/dist/includes/uniqueId.d.ts.map +1 -1
  12. package/dist/includes/vscode-select/OptionListController.d.ts +61 -0
  13. package/dist/includes/vscode-select/OptionListController.d.ts.map +1 -0
  14. package/dist/includes/vscode-select/OptionListController.js +373 -0
  15. package/dist/includes/vscode-select/OptionListController.js.map +1 -0
  16. package/dist/includes/vscode-select/helpers.d.ts +4 -2
  17. package/dist/includes/vscode-select/helpers.d.ts.map +1 -1
  18. package/dist/includes/vscode-select/helpers.js +26 -0
  19. package/dist/includes/vscode-select/helpers.js.map +1 -1
  20. package/dist/includes/vscode-select/styles.d.ts.map +1 -1
  21. package/dist/includes/vscode-select/styles.js +137 -86
  22. package/dist/includes/vscode-select/styles.js.map +1 -1
  23. package/dist/includes/vscode-select/template-elements.d.ts +1 -0
  24. package/dist/includes/vscode-select/template-elements.d.ts.map +1 -1
  25. package/dist/includes/vscode-select/template-elements.js +14 -1
  26. package/dist/includes/vscode-select/template-elements.js.map +1 -1
  27. package/dist/includes/vscode-select/types.d.ts +11 -7
  28. package/dist/includes/vscode-select/types.d.ts.map +1 -1
  29. package/dist/includes/vscode-select/types.js.map +1 -1
  30. package/dist/includes/vscode-select/vscode-select-base.d.ts +42 -31
  31. package/dist/includes/vscode-select/vscode-select-base.d.ts.map +1 -1
  32. package/dist/includes/vscode-select/vscode-select-base.js +379 -245
  33. package/dist/includes/vscode-select/vscode-select-base.js.map +1 -1
  34. package/dist/main.d.ts +4 -0
  35. package/dist/main.d.ts.map +1 -1
  36. package/dist/main.js +4 -0
  37. package/dist/main.js.map +1 -1
  38. package/dist/vscode-badge/vscode-badge.d.ts.map +1 -1
  39. package/dist/vscode-badge/vscode-badge.js +2 -2
  40. package/dist/vscode-badge/vscode-badge.js.map +1 -1
  41. package/dist/vscode-button/vscode-button.d.ts +1 -0
  42. package/dist/vscode-button/vscode-button.d.ts.map +1 -1
  43. package/dist/vscode-button/vscode-button.js +8 -2
  44. package/dist/vscode-button/vscode-button.js.map +1 -1
  45. package/dist/vscode-button/vscode-button.styles.d.ts.map +1 -1
  46. package/dist/vscode-button/vscode-button.styles.js +60 -11
  47. package/dist/vscode-button/vscode-button.styles.js.map +1 -1
  48. package/dist/vscode-button-group/index.d.ts +2 -0
  49. package/dist/vscode-button-group/index.d.ts.map +1 -0
  50. package/dist/vscode-button-group/index.js +2 -0
  51. package/dist/vscode-button-group/index.js.map +1 -0
  52. package/dist/vscode-button-group/vscode-button-group.d.ts +29 -0
  53. package/dist/vscode-button-group/vscode-button-group.d.ts.map +1 -0
  54. package/dist/vscode-button-group/vscode-button-group.js +38 -0
  55. package/dist/vscode-button-group/vscode-button-group.js.map +1 -0
  56. package/dist/vscode-button-group/vscode-button-group.styles.d.ts +4 -0
  57. package/dist/vscode-button-group/vscode-button-group.styles.d.ts.map +1 -0
  58. package/dist/vscode-button-group/vscode-button-group.styles.js +35 -0
  59. package/dist/vscode-button-group/vscode-button-group.styles.js.map +1 -0
  60. package/dist/vscode-checkbox/vscode-checkbox.d.ts +10 -10
  61. package/dist/vscode-checkbox/vscode-checkbox.d.ts.map +1 -1
  62. package/dist/vscode-checkbox/vscode-checkbox.js +12 -14
  63. package/dist/vscode-checkbox/vscode-checkbox.js.map +1 -1
  64. package/dist/vscode-checkbox/vscode-checkbox.styles.js +2 -2
  65. package/dist/vscode-checkbox/vscode-checkbox.styles.js.map +1 -1
  66. package/dist/vscode-checkbox-group/vscode-checkbox-group.d.ts.map +1 -1
  67. package/dist/vscode-checkbox-group/vscode-checkbox-group.js +2 -2
  68. package/dist/vscode-checkbox-group/vscode-checkbox-group.js.map +1 -1
  69. package/dist/vscode-collapsible/vscode-collapsible.d.ts +6 -6
  70. package/dist/vscode-collapsible/vscode-collapsible.d.ts.map +1 -1
  71. package/dist/vscode-collapsible/vscode-collapsible.js +8 -8
  72. package/dist/vscode-collapsible/vscode-collapsible.js.map +1 -1
  73. package/dist/vscode-collapsible/vscode-collapsible.styles.js +6 -6
  74. package/dist/vscode-collapsible/vscode-collapsible.styles.js.map +1 -1
  75. package/dist/vscode-context-menu/vscode-context-menu.d.ts +8 -8
  76. package/dist/vscode-context-menu/vscode-context-menu.d.ts.map +1 -1
  77. package/dist/vscode-context-menu/vscode-context-menu.js +9 -9
  78. package/dist/vscode-context-menu/vscode-context-menu.js.map +1 -1
  79. package/dist/vscode-context-menu/vscode-context-menu.styles.js +7 -7
  80. package/dist/vscode-context-menu/vscode-context-menu.styles.js.map +1 -1
  81. package/dist/vscode-context-menu-item/vscode-context-menu-item.d.ts +9 -9
  82. package/dist/vscode-context-menu-item/vscode-context-menu-item.d.ts.map +1 -1
  83. package/dist/vscode-context-menu-item/vscode-context-menu-item.js +11 -11
  84. package/dist/vscode-context-menu-item/vscode-context-menu-item.js.map +1 -1
  85. package/dist/vscode-context-menu-item/vscode-context-menu-item.styles.d.ts.map +1 -1
  86. package/dist/vscode-context-menu-item/vscode-context-menu-item.styles.js +10 -13
  87. package/dist/vscode-context-menu-item/vscode-context-menu-item.styles.js.map +1 -1
  88. package/dist/vscode-divider/vscode-divider.d.ts +2 -0
  89. package/dist/vscode-divider/vscode-divider.d.ts.map +1 -1
  90. package/dist/vscode-divider/vscode-divider.js +4 -2
  91. package/dist/vscode-divider/vscode-divider.js.map +1 -1
  92. package/dist/vscode-divider/vscode-divider.styles.js +1 -1
  93. package/dist/vscode-divider/vscode-divider.styles.js.map +1 -1
  94. package/dist/vscode-form-container/vscode-form-container.d.ts.map +1 -1
  95. package/dist/vscode-form-container/vscode-form-container.js +2 -2
  96. package/dist/vscode-form-container/vscode-form-container.js.map +1 -1
  97. package/dist/vscode-form-group/vscode-form-group.d.ts.map +1 -1
  98. package/dist/vscode-form-group/vscode-form-group.js +2 -2
  99. package/dist/vscode-form-group/vscode-form-group.js.map +1 -1
  100. package/dist/vscode-form-helper/vscode-form-helper.d.ts.map +1 -1
  101. package/dist/vscode-form-helper/vscode-form-helper.js +1 -2
  102. package/dist/vscode-form-helper/vscode-form-helper.js.map +1 -1
  103. package/dist/vscode-icon/vscode-icon.d.ts +4 -4
  104. package/dist/vscode-icon/vscode-icon.d.ts.map +1 -1
  105. package/dist/vscode-icon/vscode-icon.js +7 -6
  106. package/dist/vscode-icon/vscode-icon.js.map +1 -1
  107. package/dist/vscode-icon/vscode-icon.styles.d.ts.map +1 -1
  108. package/dist/vscode-icon/vscode-icon.styles.js +10 -4
  109. package/dist/vscode-icon/vscode-icon.styles.js.map +1 -1
  110. package/dist/vscode-label/vscode-label.d.ts +3 -3
  111. package/dist/vscode-label/vscode-label.d.ts.map +1 -1
  112. package/dist/vscode-label/vscode-label.js +14 -12
  113. package/dist/vscode-label/vscode-label.js.map +1 -1
  114. package/dist/vscode-label/vscode-label.styles.js +4 -4
  115. package/dist/vscode-label/vscode-label.styles.js.map +1 -1
  116. package/dist/vscode-multi-select/vscode-multi-select.d.ts +39 -26
  117. package/dist/vscode-multi-select/vscode-multi-select.d.ts.map +1 -1
  118. package/dist/vscode-multi-select/vscode-multi-select.js +184 -161
  119. package/dist/vscode-multi-select/vscode-multi-select.js.map +1 -1
  120. package/dist/vscode-option/vscode-option.d.ts.map +1 -1
  121. package/dist/vscode-option/vscode-option.js +2 -2
  122. package/dist/vscode-option/vscode-option.js.map +1 -1
  123. package/dist/vscode-progress-ring/vscode-progress-ring.d.ts +2 -0
  124. package/dist/vscode-progress-ring/vscode-progress-ring.d.ts.map +1 -1
  125. package/dist/vscode-progress-ring/vscode-progress-ring.js +4 -2
  126. package/dist/vscode-progress-ring/vscode-progress-ring.js.map +1 -1
  127. package/dist/vscode-progress-ring/vscode-progress-ring.styles.js +1 -1
  128. package/dist/vscode-progress-ring/vscode-progress-ring.styles.js.map +1 -1
  129. package/dist/vscode-radio/vscode-radio.d.ts +9 -8
  130. package/dist/vscode-radio/vscode-radio.d.ts.map +1 -1
  131. package/dist/vscode-radio/vscode-radio.js +11 -9
  132. package/dist/vscode-radio/vscode-radio.js.map +1 -1
  133. package/dist/vscode-radio/vscode-radio.styles.js +2 -2
  134. package/dist/vscode-radio/vscode-radio.styles.js.map +1 -1
  135. package/dist/vscode-radio-group/vscode-radio-group.d.ts.map +1 -1
  136. package/dist/vscode-radio-group/vscode-radio-group.js +2 -2
  137. package/dist/vscode-radio-group/vscode-radio-group.js.map +1 -1
  138. package/dist/vscode-scrollable/vscode-scrollable.d.ts +61 -17
  139. package/dist/vscode-scrollable/vscode-scrollable.d.ts.map +1 -1
  140. package/dist/vscode-scrollable/vscode-scrollable.js +193 -88
  141. package/dist/vscode-scrollable/vscode-scrollable.js.map +1 -1
  142. package/dist/vscode-scrollable/vscode-scrollable.styles.d.ts.map +1 -1
  143. package/dist/vscode-scrollable/vscode-scrollable.styles.js +17 -5
  144. package/dist/vscode-scrollable/vscode-scrollable.styles.js.map +1 -1
  145. package/dist/vscode-single-select/vscode-single-select.d.ts +39 -28
  146. package/dist/vscode-single-select/vscode-single-select.d.ts.map +1 -1
  147. package/dist/vscode-single-select/vscode-single-select.js +180 -125
  148. package/dist/vscode-single-select/vscode-single-select.js.map +1 -1
  149. package/dist/vscode-split-layout/vscode-split-layout.d.ts +3 -1
  150. package/dist/vscode-split-layout/vscode-split-layout.d.ts.map +1 -1
  151. package/dist/vscode-split-layout/vscode-split-layout.js +8 -3
  152. package/dist/vscode-split-layout/vscode-split-layout.js.map +1 -1
  153. package/dist/vscode-split-layout/vscode-split-layout.styles.js +3 -3
  154. package/dist/vscode-split-layout/vscode-split-layout.styles.js.map +1 -1
  155. package/dist/vscode-tab-header/vscode-tab-header.d.ts.map +1 -1
  156. package/dist/vscode-tab-header/vscode-tab-header.js +2 -2
  157. package/dist/vscode-tab-header/vscode-tab-header.js.map +1 -1
  158. package/dist/vscode-tab-panel/vscode-tab-panel.d.ts.map +1 -1
  159. package/dist/vscode-tab-panel/vscode-tab-panel.js +2 -2
  160. package/dist/vscode-tab-panel/vscode-tab-panel.js.map +1 -1
  161. package/dist/vscode-table/helpers.d.ts.map +1 -1
  162. package/dist/vscode-table/vscode-table.d.ts +1 -0
  163. package/dist/vscode-table/vscode-table.d.ts.map +1 -1
  164. package/dist/vscode-table/vscode-table.js +20 -16
  165. package/dist/vscode-table/vscode-table.js.map +1 -1
  166. package/dist/vscode-table-body/vscode-table-body.d.ts.map +1 -1
  167. package/dist/vscode-table-body/vscode-table-body.js +2 -2
  168. package/dist/vscode-table-body/vscode-table-body.js.map +1 -1
  169. package/dist/vscode-table-cell/vscode-table-cell.d.ts.map +1 -1
  170. package/dist/vscode-table-cell/vscode-table-cell.js +2 -2
  171. package/dist/vscode-table-cell/vscode-table-cell.js.map +1 -1
  172. package/dist/vscode-table-header/vscode-table-header.d.ts.map +1 -1
  173. package/dist/vscode-table-header/vscode-table-header.js +2 -2
  174. package/dist/vscode-table-header/vscode-table-header.js.map +1 -1
  175. package/dist/vscode-table-header-cell/vscode-table-header-cell.d.ts.map +1 -1
  176. package/dist/vscode-table-header-cell/vscode-table-header-cell.js +2 -2
  177. package/dist/vscode-table-header-cell/vscode-table-header-cell.js.map +1 -1
  178. package/dist/vscode-table-row/vscode-table-row.d.ts.map +1 -1
  179. package/dist/vscode-table-row/vscode-table-row.js +2 -2
  180. package/dist/vscode-table-row/vscode-table-row.js.map +1 -1
  181. package/dist/vscode-tabs/vscode-tabs.d.ts.map +1 -1
  182. package/dist/vscode-tabs/vscode-tabs.js +2 -2
  183. package/dist/vscode-tabs/vscode-tabs.js.map +1 -1
  184. package/dist/vscode-textarea/vscode-textarea.d.ts +18 -18
  185. package/dist/vscode-textarea/vscode-textarea.d.ts.map +1 -1
  186. package/dist/vscode-textarea/vscode-textarea.js +20 -20
  187. package/dist/vscode-textarea/vscode-textarea.js.map +1 -1
  188. package/dist/vscode-textarea/vscode-textarea.styles.d.ts.map +1 -1
  189. package/dist/vscode-textarea/vscode-textarea.styles.js +31 -22
  190. package/dist/vscode-textarea/vscode-textarea.styles.js.map +1 -1
  191. package/dist/vscode-textfield/vscode-textfield.d.ts.map +1 -1
  192. package/dist/vscode-textfield/vscode-textfield.js +2 -2
  193. package/dist/vscode-textfield/vscode-textfield.js.map +1 -1
  194. package/dist/vscode-toolbar-button/index.d.ts +2 -0
  195. package/dist/vscode-toolbar-button/index.d.ts.map +1 -0
  196. package/dist/vscode-toolbar-button/index.js +2 -0
  197. package/dist/vscode-toolbar-button/index.js.map +1 -0
  198. package/dist/vscode-toolbar-button/vscode-toolbar-button.d.ts +26 -0
  199. package/dist/vscode-toolbar-button/vscode-toolbar-button.d.ts.map +1 -0
  200. package/dist/vscode-toolbar-button/vscode-toolbar-button.js +83 -0
  201. package/dist/vscode-toolbar-button/vscode-toolbar-button.js.map +1 -0
  202. package/dist/vscode-toolbar-button/vscode-toolbar-button.styles.d.ts +4 -0
  203. package/dist/vscode-toolbar-button/vscode-toolbar-button.styles.d.ts.map +1 -0
  204. package/dist/vscode-toolbar-button/vscode-toolbar-button.styles.js +77 -0
  205. package/dist/vscode-toolbar-button/vscode-toolbar-button.styles.js.map +1 -0
  206. package/dist/vscode-toolbar-container/index.d.ts +2 -0
  207. package/dist/vscode-toolbar-container/index.d.ts.map +1 -0
  208. package/dist/vscode-toolbar-container/index.js +2 -0
  209. package/dist/vscode-toolbar-container/index.js.map +1 -0
  210. package/dist/vscode-toolbar-container/vscode-toolbar-container.d.ts +17 -0
  211. package/dist/vscode-toolbar-container/vscode-toolbar-container.d.ts.map +1 -0
  212. package/dist/vscode-toolbar-container/vscode-toolbar-container.js +25 -0
  213. package/dist/vscode-toolbar-container/vscode-toolbar-container.js.map +1 -0
  214. package/dist/vscode-toolbar-container/vscode-toolbar-container.styles.d.ts +4 -0
  215. package/dist/vscode-toolbar-container/vscode-toolbar-container.styles.d.ts.map +1 -0
  216. package/dist/vscode-toolbar-container/vscode-toolbar-container.styles.js +14 -0
  217. package/dist/vscode-toolbar-container/vscode-toolbar-container.styles.js.map +1 -0
  218. package/dist/vscode-tree/helpers.d.ts +9 -0
  219. package/dist/vscode-tree/helpers.d.ts.map +1 -0
  220. package/dist/vscode-tree/helpers.js +116 -0
  221. package/dist/vscode-tree/helpers.js.map +1 -0
  222. package/dist/vscode-tree/tree-context.d.ts +33 -0
  223. package/dist/vscode-tree/tree-context.d.ts.map +1 -0
  224. package/dist/vscode-tree/tree-context.js +4 -0
  225. package/dist/vscode-tree/tree-context.js.map +1 -0
  226. package/dist/vscode-tree/vscode-tree.d.ts +96 -144
  227. package/dist/vscode-tree/vscode-tree.d.ts.map +1 -1
  228. package/dist/vscode-tree/vscode-tree.js +324 -622
  229. package/dist/vscode-tree/vscode-tree.js.map +1 -1
  230. package/dist/vscode-tree/vscode-tree.styles.d.ts.map +1 -1
  231. package/dist/vscode-tree/vscode-tree.styles.js +31 -231
  232. package/dist/vscode-tree/vscode-tree.styles.js.map +1 -1
  233. package/dist/vscode-tree-item/index.d.ts +2 -0
  234. package/dist/vscode-tree-item/index.d.ts.map +1 -0
  235. package/dist/vscode-tree-item/index.js +2 -0
  236. package/dist/vscode-tree-item/index.js.map +1 -0
  237. package/dist/vscode-tree-item/vscode-tree-item.d.ts +50 -0
  238. package/dist/vscode-tree-item/vscode-tree-item.d.ts.map +1 -0
  239. package/dist/vscode-tree-item/vscode-tree-item.js +418 -0
  240. package/dist/vscode-tree-item/vscode-tree-item.js.map +1 -0
  241. package/dist/vscode-tree-item/vscode-tree-item.styles.d.ts +4 -0
  242. package/dist/vscode-tree-item/vscode-tree-item.styles.d.ts.map +1 -0
  243. package/dist/vscode-tree-item/vscode-tree-item.styles.js +140 -0
  244. package/dist/vscode-tree-item/vscode-tree-item.styles.js.map +1 -0
  245. package/package.json +40 -40
  246. package/vscode.css-custom-data.json +44 -55
  247. package/vscode.html-custom-data.json +154 -45
@@ -1 +1 @@
1
- {"version":3,"file":"vscode-tree.js","sourceRoot":"","sources":["../../src/vscode-tree/vscode-tree.ts"],"names":[],"mappings":"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","sourcesContent":["import {html, nothing, TemplateResult} from 'lit';\nimport {customElement, property, state} from 'lit/decorators.js';\nimport {classMap} from 'lit/directives/class-map.js';\nimport {ifDefined} from 'lit/directives/if-defined.js';\nimport {VscElement} from '../includes/VscElement.js';\nimport {stylePropertyMap} from '../includes/style-property-map.js';\nimport '../vscode-badge/index.js';\nimport '../vscode-icon/index.js';\nimport {VscodeIcon} from '../vscode-icon/index.js';\nimport styles from './vscode-tree.styles.js';\n\nexport type VscTreeActionEvent = CustomEvent<{\n actionId: string;\n item: TreeItem | null;\n value: string;\n}>;\n\nexport type VscTreeSelectEvent = CustomEvent<{\n icons: {\n branch?: string;\n open?: string;\n leaf?: string;\n };\n itemType: 'branch' | 'leaf';\n label: string;\n open: boolean;\n value: string;\n path: string;\n}>;\n\ntype ListenedKey = 'ArrowDown' | 'ArrowUp' | 'Enter' | 'Escape' | ' ';\n\ntype IconType = 'themeicon' | 'image';\n\ntype IconVariant = 'branch' | 'leaf' | 'open';\n\nexport interface TreeItemIconConfig {\n branch?: string;\n open?: string;\n leaf?: string;\n}\n\n/** Action icon configuration. */\nexport interface TreeItemAction {\n /** A unique name that identifies the clicked action item. */\n actionId: string;\n /** A Codicon name. */\n icon: string;\n /** Text description of the action. */\n tooltip?: string;\n}\n\n/**\n * The decoration is additional content on the right side of the tree item. It can be a short text,\n * a counter, or a small, filled circle. A color can be defined for the different states. If\n * multiple states are applied to the item, the color with higher precedence will be used. The color\n * precedence from higher to lower is selected, focused, hover, normal. Colors will not be applied\n * to the counter badge.\n */\nexport interface TreeItemDecoration {\n /** Text content of the decoration. If the appearance is `filled-circle`, it will be ignored. */\n content?: string;\n /** Appearance of the decoration. */\n appearance?: 'text' | 'counter-badge' | 'filled-circle';\n /**\n * When is decoration visible?\n * - `active`: visible when the tree item is focused, selected or hovered\n * - `normal`: visible when there is not any interaction on the tree item\n * - `always`: always visible\n */\n visibleWhen?: 'active' | 'normal' | 'always';\n /** A valid CSS property value to define a default color. */\n color?: string;\n /** A valid CSS property value to define the color for the mouse over state. */\n hoverColor?: string;\n /** A valid CSS property value to define the color for the focused state. */\n focusedColor?: string;\n /** A valid CSS property value to define the color for the selected state. */\n selectedColor?: string;\n}\n\nexport interface TreeItem {\n label: string;\n description?: string;\n tooltip?: string;\n subItems?: TreeItem[];\n actions?: TreeItemAction[];\n open?: boolean;\n selected?: boolean;\n focused?: boolean;\n hasSelectedItem?: boolean;\n hasFocusedItem?: boolean;\n icons?: TreeItemIconConfig | boolean;\n iconUrls?: TreeItemIconConfig;\n value?: string;\n path?: number[];\n decorations?: TreeItemDecoration[];\n}\n\ntype ItemType = 'branch' | 'leaf';\n\n/** Event payload of the `vsc-select` event. */\ninterface SelectEventDetail {\n /** Icon configuration of the clicked item */\n icons: TreeItemIconConfig | undefined | boolean;\n /** Is item type branch or leaf. */\n itemType: ItemType;\n /** The visible label of the item. */\n label: string;\n /** The value associated to the item. */\n value: string;\n /** Is the item opened if it's a branch. */\n open: boolean;\n /** Path represents the item place in the tree. For example 1/2/3 means:\n * `data[1].subItems[2].subItems[3]` */\n path: string; // ex.: 0/0/1\n}\n\nconst ARROW_OUTER_WIDTH = 30;\nconst ARROW_ICON_WIDTH = 16;\nconst CONTENT_PADDING = 3;\n\nconst addPath = (tree: TreeItem[], prevPath: number[] = []): TreeItem[] => {\n const nextTree: TreeItem[] = [];\n\n tree.forEach((item, index) => {\n const path = [...prevPath, index];\n const nextItem: TreeItem = {\n ...item,\n path,\n };\n\n if (item.subItems) {\n nextItem.subItems = addPath(item.subItems, path);\n }\n\n nextTree.push(nextItem);\n });\n\n return nextTree;\n};\n\nconst isBranch = (item: TreeItem) => {\n if (\n item.subItems &&\n Array.isArray(item.subItems) &&\n item?.subItems?.length > 0\n ) {\n return true;\n }\n\n return false;\n};\n\n/**\n * @tag vscode-tree\n *\n * @fires vsc-select Dispatched when an item is selected.\n * @fires {VscTreeSelectEvent} vsc-tree-select Dispatched when an item is selected.\n * @fires vsc-run-action Dispatched when an action icon is clicked.\n * @fires {VscTreeActionEvent} vsc-tree-action Dispatched when an action icon is clicked.\n *\n * @cssprop --vscode-focusBorder\n * @cssprop --vscode-font-family\n * @cssprop --vscode-font-size\n * @cssprop --vscode-font-weight\n * @cssprop --vscode-list-hoverForeground\n * @cssprop --vscode-list-hoverBackground\n * @cssprop --vscode-list-inactiveSelectionBackground\n * @cssprop --vscode-list-inactiveSelectionForeground\n * @cssprop --vscode-list-activeSelectionBackground\n * @cssprop --vscode-list-activeSelectionForeground\n * @cssprop --vscode-list-inactiveSelectionIconForeground\n * @cssprop --vscode-list-inactiveFocusBackground\n * @cssprop --vscode-list-inactiveFocusOutline\n * @cssprop --vscode-list-focusOutline\n * @cssprop --vscode-tree-inactiveIndentGuidesStroke\n * @cssprop --vscode-tree-indentGuidesStroke\n *\n * @csspart text-content\n * @csspart description\n * @csspart counter-badge-decoration\n * @csspart filled-circle-decoration\n * @csspart caption-decoration\n * @csspart decorations Container of decorations\n */\n@customElement('vscode-tree')\nexport class VscodeTree extends VscElement {\n static override styles = styles;\n\n @property({type: Array, reflect: false})\n set data(val: TreeItem[]) {\n const oldVal = this._data;\n\n this._data = addPath(val);\n this.requestUpdate('data', oldVal);\n }\n get data(): TreeItem[] {\n return this._data;\n }\n\n @property({type: Number})\n indent = 8;\n\n @property({type: Boolean, reflect: true})\n arrows = false;\n\n @property({type: Boolean, reflect: true})\n multiline = false;\n\n @property({type: Number, reflect: true})\n tabindex = 0;\n\n @property({type: Boolean, reflect: true, attribute: 'indent-guides'})\n indentGuides = false;\n\n private _data: TreeItem[] = [];\n\n @state()\n private _selectedItem: TreeItem | null = null;\n\n @state()\n private _focusedItem: TreeItem | null = null;\n\n @state()\n private _selectedBranch: TreeItem | null = null;\n\n @state()\n private _focusedBranch: TreeItem | null = null;\n\n /**\n * Closes all opened tree items recursively.\n */\n public closeAll(): void {\n this._closeSubTreeRecursively(this.data);\n this.requestUpdate();\n }\n\n /**\n * Deselects all selected items.\n */\n public deselectAll() {\n this._deselectItemsRecursively(this.data);\n this.requestUpdate();\n }\n\n /**\n * Returns a reference to a TreeItem object by path.\n * @param path\n * @returns\n */\n public getItemByPath(path: number[]): TreeItem | null {\n return this._getItemByPath(path);\n }\n\n override connectedCallback(): void {\n super.connectedCallback();\n this.addEventListener('keydown', this._handleComponentKeyDownBound);\n }\n\n override disconnectedCallback(): void {\n super.disconnectedCallback();\n this.removeEventListener('keydown', this._handleComponentKeyDownBound);\n }\n\n private _getItemByPath(path: number[]): TreeItem | null {\n let current: TreeItem[] = this._data;\n let item: TreeItem | null = null;\n\n path.forEach((el, i) => {\n if (i === path.length - 1) {\n item = current[el];\n } else {\n current = current[el].subItems as TreeItem[];\n }\n });\n\n return item;\n }\n\n private _handleActionClick(ev: MouseEvent) {\n ev.stopPropagation();\n\n const el = ev.target as VscodeIcon;\n const itemPath = el.dataset.itemPath;\n const actionIndex = el.dataset.index;\n let item: TreeItem | null = null;\n let actionId = '';\n let value = '';\n\n if (itemPath) {\n const path = itemPath.split('/').map((p) => Number(p));\n item = this._getItemByPath(path);\n\n if (item?.actions) {\n const index = Number(actionIndex);\n\n if (item.actions[index]) {\n actionId = item.actions[index].actionId;\n }\n }\n\n if (item?.value) {\n value = item.value;\n }\n }\n\n /** @deprecated Renamed to `vsc-tree-action` */\n this.dispatchEvent(\n new CustomEvent<{actionId: string; item: TreeItem | null; value: string}>(\n 'vsc-run-action',\n {\n detail: {\n actionId,\n item,\n value,\n },\n }\n )\n );\n\n /**\n * Dispatched when an action icon is clicked.\n */\n this.dispatchEvent(\n new CustomEvent<{actionId: string; item: TreeItem | null; value: string}>(\n 'vsc-tree-action',\n {\n detail: {\n actionId,\n item,\n value,\n },\n }\n ) as VscTreeActionEvent\n );\n }\n\n private _renderIconVariant(variant: {value: string; type: IconType}) {\n const {type, value} = variant;\n\n if (type === 'themeicon') {\n return html`<vscode-icon name=${value} class=\"theme-icon\"></vscode-icon>`;\n } else {\n return html`<span\n class=\"image-icon\"\n .style=${stylePropertyMap({backgroundImage: `url(${value})`})}\n ></span>`;\n }\n }\n\n private _renderIcon(item: TreeItem): TemplateResult {\n const iconVariants: Record<IconVariant, {value: string; type: IconType}> = {\n branch: {\n value: 'folder',\n type: 'themeicon',\n },\n open: {\n value: 'folder-opened',\n type: 'themeicon',\n },\n leaf: {\n value: 'file',\n type: 'themeicon',\n },\n };\n\n if (item.iconUrls) {\n if (item.iconUrls.branch) {\n iconVariants.branch = {\n value: item.iconUrls.branch,\n type: 'image',\n };\n }\n\n if (item.iconUrls.leaf) {\n iconVariants.leaf = {\n value: item.iconUrls.leaf,\n type: 'image',\n };\n }\n\n if (item.iconUrls.open) {\n iconVariants.open = {\n value: item.iconUrls.open,\n type: 'image',\n };\n }\n } else if (typeof item.icons === 'object') {\n if (item.icons.branch) {\n iconVariants.branch = {\n value: item.icons.branch,\n type: 'themeicon',\n };\n }\n\n if (item.icons.leaf) {\n iconVariants.leaf = {\n value: item.icons.leaf,\n type: 'themeicon',\n };\n }\n\n if (item.icons.open) {\n iconVariants.open = {\n value: item.icons.open,\n type: 'themeicon',\n };\n }\n } else if (!item.icons) {\n return html`${nothing}`;\n }\n\n if (isBranch(item)) {\n if (item.open) {\n return this._renderIconVariant(iconVariants.open);\n } else {\n return this._renderIconVariant(iconVariants.branch);\n }\n } else {\n return this._renderIconVariant(iconVariants.leaf);\n }\n }\n\n private _renderArrow(item: TreeItem): TemplateResult {\n if (!this.arrows || !isBranch(item)) {\n return html`${nothing}`;\n }\n\n const {open = false} = item;\n const arrowIconName = open ? 'chevron-down' : 'chevron-right';\n\n return html`\n <div class=\"arrow-container\">\n <vscode-icon name=${arrowIconName} class=\"icon-arrow\"></vscode-icon>\n </div>\n `;\n }\n\n private _renderActions(item: TreeItem): TemplateResult {\n const actionButtons: TemplateResult[] = [];\n\n if (item.actions && Array.isArray(item.actions)) {\n item.actions.forEach((action, index) => {\n if (action.icon) {\n const icon = html`<vscode-icon\n name=${action.icon}\n action-icon\n title=${ifDefined(action.tooltip)}\n data-item-path=${ifDefined(item.path?.join('/'))}\n data-index=${index}\n class=\"action-icon\"\n @click=${this._handleActionClick}\n ></vscode-icon>`;\n\n actionButtons.push(icon);\n }\n });\n }\n\n if (actionButtons.length > 0) {\n return html`<div class=\"actions\">${actionButtons}</div>`;\n } else {\n return html`${nothing}`;\n }\n }\n\n private _renderDecorations(item: TreeItem) {\n const decorations: TemplateResult[] = [];\n\n if (item.decorations && Array.isArray(item.decorations)) {\n item.decorations.forEach((decoration) => {\n const {\n appearance = 'text',\n visibleWhen = 'always',\n content = '',\n color = '',\n focusedColor = '',\n hoverColor = '',\n selectedColor = '',\n } = decoration;\n const visibleWhenClass = `visible-when-${visibleWhen}`;\n const inlineStyles: {[key: string]: string} = {};\n\n if (color) {\n inlineStyles['--color'] = color;\n }\n\n if (focusedColor) {\n inlineStyles['--focused-color'] = focusedColor;\n }\n\n if (hoverColor) {\n inlineStyles['--hover-color'] = hoverColor;\n }\n\n if (selectedColor) {\n inlineStyles['--selected-color'] = selectedColor;\n }\n\n switch (appearance) {\n case 'counter-badge':\n decorations.push(\n html`<vscode-badge\n variant=\"counter\"\n class=${['counter-badge', visibleWhenClass].join(' ')}\n part=\"counter-badge-decoration\"\n >${content}</vscode-badge\n >`\n );\n break;\n case 'filled-circle':\n decorations.push(\n html`<vscode-icon\n name=\"circle-filled\"\n size=\"14\"\n class=${['filled-circle', visibleWhenClass].join(' ')}\n part=\"filled-circle-decoration\"\n .style=${stylePropertyMap(inlineStyles)}\n ></vscode-icon>`\n );\n break;\n case 'text':\n decorations.push(\n html`<div\n class=${['decoration-text', visibleWhenClass].join(' ')}\n part=\"caption-decoration\"\n .style=${stylePropertyMap(inlineStyles)}\n >\n ${content}\n </div>`\n );\n break;\n default:\n }\n });\n }\n\n if (decorations.length > 0) {\n return html`<div class=\"decorations\" part=\"decorations\">\n ${decorations}\n </div>`;\n } else {\n return html`${nothing}`;\n }\n }\n\n private _renderTreeItem(\n item: TreeItem,\n additionalOptions: {\n path: number[];\n itemType: ItemType;\n hasFocusedItem: boolean;\n hasSelectedItem: boolean;\n }\n ) {\n const {\n open = false,\n label,\n description = '',\n tooltip,\n selected = false,\n focused = false,\n subItems = [],\n } = item;\n const {\n path,\n itemType,\n hasFocusedItem = false,\n hasSelectedItem = false,\n } = additionalOptions;\n const indentLevel = path.length - 1;\n const contentsClasses = ['contents'];\n const liClasses = open ? ['open'] : [];\n const indentSize = indentLevel * this.indent;\n const padLeft =\n this.arrows && itemType === 'leaf'\n ? ARROW_OUTER_WIDTH + indentSize\n : indentSize;\n const arrowMarkup = this._renderArrow(item);\n const iconMarkup = this._renderIcon(item);\n const indentGuidePos = this.arrows\n ? indentSize + ARROW_ICON_WIDTH\n : indentSize + CONTENT_PADDING;\n const subTreeMarkup =\n open && itemType === 'branch'\n ? html`<ul\n .style=${stylePropertyMap({\n '--indent-guide-pos': `${indentGuidePos}px`,\n })}\n class=${classMap({\n 'has-active-item': hasFocusedItem || hasSelectedItem,\n })}\n >\n ${this._renderTree(subItems, path)}\n </ul>`\n : nothing;\n const descriptionMarkup = description\n ? html`<span class=\"description\" part=\"description\">${description}</span>`\n : nothing;\n const actionsMarkup = this._renderActions(item);\n const decorationsMarkup = this._renderDecorations(item);\n\n liClasses.push(itemType);\n\n if (selected) {\n contentsClasses.push('selected');\n }\n\n if (focused) {\n contentsClasses.push('focused');\n }\n\n return html`\n <li data-path=${path.join('/')} class=${liClasses.join(' ')}>\n <div\n class=${contentsClasses.join(' ')}\n .style=${stylePropertyMap({\n paddingLeft: `${padLeft + CONTENT_PADDING}px`,\n })}\n >\n ${arrowMarkup}${iconMarkup}<span\n class=\"text-content\"\n part=\"text-content\"\n title=${ifDefined(tooltip)}\n >${label}${descriptionMarkup}</span\n >\n ${actionsMarkup} ${decorationsMarkup}\n </div>\n ${subTreeMarkup}\n </li>\n `;\n }\n\n private _renderTree(tree: TreeItem[], oldPath: number[] = []) {\n const ret: TemplateResult[] = [];\n\n if (!tree) {\n return nothing;\n }\n\n tree.forEach((item, index) => {\n const path = [...oldPath, index];\n const itemType = isBranch(item) ? 'branch' : 'leaf';\n const {\n selected = false,\n focused = false,\n hasFocusedItem = false,\n hasSelectedItem = false,\n } = item;\n\n if (selected) {\n this._selectedItem = item;\n }\n\n if (focused) {\n this._focusedItem = item;\n }\n\n ret.push(\n this._renderTreeItem(item, {\n path,\n itemType,\n hasFocusedItem,\n hasSelectedItem,\n })\n );\n });\n\n return ret;\n }\n\n private _selectItem(item: TreeItem) {\n if (this._selectedItem) {\n this._selectedItem.selected = false;\n }\n\n if (this._focusedItem) {\n this._focusedItem.focused = false;\n }\n\n this._selectedItem = item;\n item.selected = true;\n this._focusedItem = item;\n item.focused = true;\n\n if (this._selectedBranch) {\n this._selectedBranch.hasSelectedItem = false;\n }\n\n let parentBranch: TreeItem | null = null;\n\n if (item.path?.length && item.path.length > 1) {\n parentBranch = this._getItemByPath(item.path.slice(0, -1));\n }\n\n if (isBranch(item)) {\n this._selectedBranch = item;\n item.hasSelectedItem = true;\n item.open = !item.open;\n\n if (!item.open) {\n if (parentBranch) {\n this._selectedBranch = parentBranch;\n parentBranch.hasSelectedItem = true;\n }\n } else {\n this._selectedBranch = item;\n item.hasSelectedItem = true;\n }\n } else {\n if (item.path?.length && item.path.length > 1) {\n const parentBranch = this._getItemByPath(item.path.slice(0, -1));\n\n if (parentBranch) {\n this._selectedBranch = parentBranch;\n parentBranch.hasSelectedItem = true;\n }\n } else {\n this._selectedBranch = item;\n item.hasSelectedItem = true;\n }\n }\n\n this._emitSelectEvent(\n this._selectedItem as TreeItem,\n this._selectedItem.path!.join('/')\n );\n\n this.requestUpdate();\n }\n\n private _focusItem(item: TreeItem) {\n if (this._focusedItem) {\n this._focusedItem.focused = false;\n }\n\n this._focusedItem = item;\n item.focused = true;\n\n const isBranch = !!item?.subItems?.length;\n\n if (this._focusedBranch) {\n this._focusedBranch.hasFocusedItem = false;\n }\n\n let parentBranch: TreeItem | null = null;\n\n if (item.path?.length && item.path.length > 1) {\n parentBranch = this._getItemByPath(item.path.slice(0, -1));\n }\n\n if (!isBranch) {\n if (parentBranch) {\n this._focusedBranch = parentBranch;\n parentBranch.hasFocusedItem = true;\n }\n } else {\n if (item.open) {\n this._focusedBranch = item;\n item.hasFocusedItem = true;\n } else if (!item.open && parentBranch) {\n this._focusedBranch = parentBranch;\n parentBranch.hasFocusedItem = true;\n }\n }\n }\n\n private _closeSubTreeRecursively(tree: TreeItem[]) {\n tree.forEach((item) => {\n item.open = false;\n\n if (item.subItems && item.subItems.length > 0) {\n this._closeSubTreeRecursively(item.subItems);\n }\n });\n }\n\n private _deselectItemsRecursively(tree: TreeItem[]) {\n tree.forEach((item) => {\n if (item.selected) {\n item.selected = false;\n }\n\n if (item.subItems && item.subItems.length > 0) {\n this._deselectItemsRecursively(item.subItems);\n }\n });\n }\n\n private _emitSelectEvent(item: TreeItem, path: string) {\n const {icons, label, open, value} = item;\n const detail = {\n icons,\n itemType: isBranch(item) ? 'branch' : ('leaf' as ItemType),\n label,\n open: open || false,\n value: value || label,\n path,\n };\n\n /** @deprecated Renamed to `vsc-tree-select` */\n this.dispatchEvent(\n new CustomEvent<SelectEventDetail>('vsc-select', {\n bubbles: true,\n composed: true,\n detail,\n })\n );\n\n this.dispatchEvent(\n new CustomEvent('vsc-tree-select', {\n detail,\n }) as VscTreeSelectEvent\n );\n }\n\n private _focusPrevItem() {\n if (!this._focusedItem) {\n this._focusItem(this._data[0]);\n return;\n }\n\n const {path} = this._focusedItem;\n\n if (path && path?.length > 0) {\n const currentItemIndex = path[path.length - 1];\n const hasParent = path!.length > 1;\n\n if (currentItemIndex > 0) {\n const newPath = [...path];\n newPath[newPath.length - 1] = currentItemIndex - 1;\n\n const prevSibling = this._getItemByPath(newPath) as TreeItem;\n let newFocusedItem = prevSibling;\n\n if (prevSibling?.open && prevSibling.subItems?.length) {\n const {subItems} = prevSibling;\n newFocusedItem = subItems[subItems.length - 1];\n }\n\n this._focusItem(newFocusedItem);\n } else {\n if (hasParent) {\n const newPath = [...path];\n newPath.pop();\n\n this._focusItem(this._getItemByPath(newPath) as TreeItem);\n }\n }\n } else {\n this._focusItem(this._data[0]);\n }\n }\n\n private _focusNextItem() {\n if (!this._focusedItem) {\n this._focusItem(this._data[0]);\n return;\n }\n\n const {path, open} = this._focusedItem;\n\n if (\n open &&\n Array.isArray(this._focusedItem.subItems) &&\n this._focusedItem.subItems.length > 0\n ) {\n this._focusItem(this._focusedItem.subItems[0]);\n return;\n }\n\n const nextPath = [...(path as number[])];\n nextPath[nextPath.length - 1] += 1;\n\n let nextFocusedItem = this._getItemByPath(nextPath);\n\n if (nextFocusedItem) {\n this._focusItem(nextFocusedItem);\n } else {\n nextPath.pop();\n\n if (nextPath.length > 0) {\n nextPath[nextPath.length - 1] += 1;\n nextFocusedItem = this._getItemByPath(nextPath);\n\n if (nextFocusedItem) {\n this._focusItem(nextFocusedItem);\n }\n }\n }\n }\n\n private _handleClick(event: MouseEvent) {\n const composedPath = event.composedPath();\n const targetElement = composedPath.find(\n (el: EventTarget) =>\n (el as HTMLElement).tagName &&\n (el as HTMLElement).tagName.toUpperCase() === 'LI'\n );\n\n if (targetElement) {\n const pathStr = (targetElement as HTMLLIElement).dataset.path || '';\n const path = pathStr.split('/').map((el) => Number(el));\n const item = this._getItemByPath(path) as TreeItem;\n\n this._selectItem(item);\n } else {\n if (this._focusedItem) {\n this._focusedItem.focused = false;\n }\n\n this._focusedItem = null;\n }\n }\n\n private _handleComponentKeyDown(ev: KeyboardEvent) {\n const keys: ListenedKey[] = [\n ' ',\n 'ArrowDown',\n 'ArrowUp',\n 'Enter',\n 'Escape',\n ];\n const key = ev.key as ListenedKey;\n\n if (keys.includes(ev.key as ListenedKey)) {\n ev.stopPropagation();\n ev.preventDefault();\n }\n\n if (key === 'Escape') {\n this._focusedItem = null;\n }\n\n if (key === 'ArrowUp') {\n this._focusPrevItem();\n }\n\n if (key === 'ArrowDown') {\n this._focusNextItem();\n }\n\n if (key === 'Enter' || key === ' ') {\n if (this._focusedItem) {\n this._selectItem(this._focusedItem);\n }\n }\n }\n\n private _handleComponentKeyDownBound =\n this._handleComponentKeyDown.bind(this);\n\n override render(): TemplateResult {\n const classes = classMap({\n multi: this.multiline,\n single: !this.multiline,\n wrapper: true,\n 'has-not-focused-item': !this._focusedItem,\n 'selection-none': !this._selectedItem,\n 'selection-single': this._selectedItem !== null,\n });\n\n return html`\n <div @click=${this._handleClick} class=${classes}>\n <ul>\n ${this._renderTree(this._data)}\n </ul>\n </div>\n `;\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'vscode-tree': VscodeTree;\n }\n\n interface GlobalEventHandlersEventMap {\n 'vsc-tree-select': VscTreeSelectEvent;\n 'vsc-tree-action': VscTreeActionEvent;\n }\n}\n"]}
1
+ {"version":3,"file":"vscode-tree.js","sourceRoot":"","sources":["../../src/vscode-tree/vscode-tree.ts"],"names":[],"mappings":"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","sourcesContent":["import {PropertyValues, TemplateResult, html} from 'lit';\nimport {provide} from '@lit/context';\nimport {\n customElement,\n property,\n queryAssignedElements,\n} from 'lit/decorators.js';\nimport {VscElement} from '../includes/VscElement';\nimport type {VscodeTreeItem} from '../vscode-tree-item';\nimport styles from './vscode-tree.styles';\nimport {\n ConfigContext,\n configContext,\n treeContext,\n type TreeContext,\n} from './tree-context';\nimport {\n findNextItem,\n findPrevItem,\n findParentItem,\n initPathTrackerProps,\n} from './helpers.js';\n\nexport type VscTreeSelectEvent = CustomEvent<{selectedItems: VscodeTreeItem[]}>;\n\nexport const ExpandMode = {\n singleClick: 'singleClick',\n doubleClick: 'doubleClick',\n} as const;\n\nexport type ExpandMode = (typeof ExpandMode)[keyof typeof ExpandMode];\n\nexport const IndentGuides = {\n none: 'none',\n onHover: 'onHover',\n always: 'always',\n} as const;\n\nexport type IndentGuideDisplay =\n (typeof IndentGuides)[keyof typeof IndentGuides];\n\ntype ListenedKey =\n | 'ArrowDown'\n | 'ArrowUp'\n | 'ArrowLeft'\n | 'ArrowRight'\n | 'Enter'\n | 'Escape'\n | 'Shift'\n | ' ';\n\nconst listenedKeys: ListenedKey[] = [\n ' ',\n 'ArrowDown',\n 'ArrowUp',\n 'ArrowLeft',\n 'ArrowRight',\n 'Enter',\n 'Escape',\n 'Shift',\n];\nconst DEFAULT_HIDE_ARROWS = false;\nconst DEFAULT_INDENT = 8;\nconst DEFAULT_MULTI_SELECT = false;\nconst DEFAULT_EXPAND_MODE = ExpandMode.singleClick;\nconst DEFAULT_INDENT_GUIDE_DISPLAY = IndentGuides.onHover;\n\n/**\n * @tag vscode-tree\n */\n@customElement('vscode-tree')\nexport class VscodeTree extends VscElement {\n static override styles = styles;\n\n //#region properties\n\n /**\n * Although arrows are always visible in the Tree component by default in VSCode, some icon sets\n * (e.g., Material Icon Theme) allow disabling them in the file explorer view. This flag makes it\n * possible to mimic that behavior.\n *\n * @type {boolean}\n * @default false\n */\n @property({type: Boolean, reflect: true, attribute: 'hide-arrows'})\n hideArrows: boolean = DEFAULT_HIDE_ARROWS;\n\n /**\n * Controls how tree folders are expanded when clicked. This property is designed to use\n * the `workbench.tree.expandMode` setting.\n *\n * Valid options are available as constants.\n *\n * ```javascript\n * import {ExpandMode} from '@vscode-elements/elements/dist/vscode-tree/vscode-tree.js';\n *\n * document.querySelector('vscode-tree').expandMode = ExpandMode.singleClick;\n * ```\n *\n * @type {'singleClick' | 'doubleClick'}\n * @default 'singleClick'\n */\n @property({type: String, attribute: 'expand-mode'})\n expandMode: ExpandMode = DEFAULT_EXPAND_MODE;\n\n /**\n * Controls the indentation in pixels. This property is designed to use the\n * `workbench.tree.indent` setting.\n *\n * @type {number}\n * @default 8\n */\n @property({type: Number, reflect: true})\n indent: number = DEFAULT_INDENT;\n\n /**\n * Controls whether the tree should render indent guides. This property is\n * designed to use the `workbench.tree.renderIndentGuides` setting.\n *\n * Valid options are available as constants.\n *\n * ```javascript\n * import {IndentGuides} from '@vscode-elements/elements/dist/vscode-tree/vscode-tree.js';\n *\n * document.querySelector('vscode-tree').expandMode = IndentGuides.onHover;\n * ```\n *\n * @type {'none' | 'onHover' | 'always'}\n * @default 'onHover'\n */\n @property({\n type: String,\n attribute: 'indent-guides',\n useDefault: true,\n reflect: true,\n })\n indentGuides: IndentGuideDisplay = DEFAULT_INDENT_GUIDE_DISPLAY;\n\n /**\n * Allows selecting multiple items.\n *\n * @type {boolean}\n * @default false\n */\n @property({type: Boolean, reflect: true, attribute: 'multi-select'})\n multiSelect: boolean = DEFAULT_MULTI_SELECT;\n\n //#endregion\n\n //#region private variables\n\n @provide({context: treeContext})\n private _treeContextState: TreeContext = {\n isShiftPressed: false,\n activeItem: null,\n selectedItems: new Set(),\n allItems: null,\n itemListUpToDate: false,\n focusedItem: null,\n prevFocusedItem: null,\n hasBranchItem: false,\n rootElement: this,\n highlightedItems: new Set(),\n highlightIndentGuides: () => {\n this._highlightIndentGuides();\n },\n emitSelectEvent: () => {\n this._emitSelectEvent();\n },\n };\n\n @provide({context: configContext})\n private _configContext: ConfigContext = {\n hideArrows: DEFAULT_HIDE_ARROWS,\n expandMode: DEFAULT_EXPAND_MODE,\n indent: DEFAULT_INDENT,\n indentGuides: DEFAULT_INDENT_GUIDE_DISPLAY,\n multiSelect: DEFAULT_MULTI_SELECT,\n };\n\n @queryAssignedElements({selector: 'vscode-tree-item'})\n private _assignedTreeItems!: VscodeTreeItem[];\n\n //#endregion\n\n //#region lifecycle methods\n\n constructor() {\n super();\n\n this.addEventListener('keyup', this._handleComponentKeyUp);\n this.addEventListener('keydown', this._handleComponentKeyDown);\n }\n\n override connectedCallback(): void {\n super.connectedCallback();\n\n this.role = 'tree';\n }\n\n protected override willUpdate(changedProperties: PropertyValues<this>): void {\n this._updateConfigContext(changedProperties);\n\n if (changedProperties.has('multiSelect')) {\n this.ariaMultiSelectable = this.multiSelect ? 'true' : 'false';\n }\n }\n\n //#endregion\n\n //#region public methods\n\n /**\n * Expands all folders.\n */\n expandAll() {\n const children = this.querySelectorAll<VscodeTreeItem>('vscode-tree-item');\n\n children.forEach((item) => {\n if (item.branch) {\n item.open = true;\n }\n });\n }\n\n /**\n * Collapses all folders.\n */\n collapseAll() {\n const children = this.querySelectorAll<VscodeTreeItem>('vscode-tree-item');\n\n children.forEach((item) => {\n if (item.branch) {\n item.open = false;\n }\n });\n }\n\n /**\n * @internal\n * Updates `hasBranchItem` property in the context state in order to removing\n * extra padding before the leaf elements, if it is required.\n */\n updateHasBranchItemFlag() {\n const hasBranchItem = this._assignedTreeItems.some((li) => li.branch);\n this._treeContextState = {...this._treeContextState, hasBranchItem};\n }\n\n //#endregion\n\n //#region private methods\n\n private _emitSelectEvent() {\n const ev = new CustomEvent('vsc-tree-select', {\n detail: Array.from(this._treeContextState.selectedItems),\n });\n\n this.dispatchEvent(ev);\n }\n\n private _highlightIndentGuideOfItem(item: VscodeTreeItem) {\n if (item.branch && item.open) {\n item.highlightedGuides = true;\n this._treeContextState.highlightedItems?.add(item);\n } else {\n const parent = findParentItem(item);\n\n if (parent) {\n parent.highlightedGuides = true;\n this._treeContextState.highlightedItems?.add(parent);\n }\n }\n }\n\n private _highlightIndentGuides() {\n if (this.indentGuides === IndentGuides.none) {\n return;\n }\n\n this._treeContextState.highlightedItems?.forEach(\n (i) => (i.highlightedGuides = false)\n );\n this._treeContextState.highlightedItems?.clear();\n\n if (this._treeContextState.activeItem) {\n this._highlightIndentGuideOfItem(this._treeContextState.activeItem);\n }\n\n this._treeContextState.selectedItems.forEach((item) => {\n this._highlightIndentGuideOfItem(item);\n });\n }\n\n private _updateConfigContext(changedProperties: PropertyValues) {\n const {hideArrows, expandMode, indent, indentGuides, multiSelect} = this;\n\n if (changedProperties.has('hideArrows')) {\n this._configContext = {...this._configContext, hideArrows};\n }\n\n if (changedProperties.has('expandMode')) {\n this._configContext = {...this._configContext, expandMode};\n }\n\n if (changedProperties.has('indent')) {\n this._configContext = {...this._configContext, indent};\n }\n\n if (changedProperties.has('indentGuides')) {\n this._configContext = {...this._configContext, indentGuides};\n }\n\n if (changedProperties.has('multiSelect')) {\n this._configContext = {...this._configContext, multiSelect};\n }\n }\n\n private _focusItem(item: VscodeTreeItem) {\n item.active = true;\n\n item.updateComplete.then(() => {\n item.focus();\n this._highlightIndentGuides();\n });\n }\n\n private _focusPrevItem() {\n if (this._treeContextState.focusedItem) {\n const item = findPrevItem(this._treeContextState.focusedItem);\n\n if (item) {\n this._focusItem(item);\n\n if (this._treeContextState.isShiftPressed && this.multiSelect) {\n item.selected = !item.selected;\n this._emitSelectEvent();\n }\n }\n }\n }\n\n private _focusNextItem() {\n if (this._treeContextState.focusedItem) {\n const item = findNextItem(this._treeContextState.focusedItem);\n\n if (item) {\n this._focusItem(item);\n\n if (this._treeContextState.isShiftPressed && this.multiSelect) {\n item.selected = !item.selected;\n this._emitSelectEvent();\n }\n }\n }\n }\n\n //#endregion\n\n //#region event handlers\n\n private _handleArrowRightPress() {\n if (!this._treeContextState.focusedItem) {\n return;\n }\n\n const {focusedItem} = this._treeContextState;\n\n if (focusedItem.branch) {\n if (focusedItem.open) {\n this._focusNextItem();\n } else {\n focusedItem.open = true;\n }\n }\n }\n\n private _handleArrowLeftPress(ev: KeyboardEvent) {\n if (ev.ctrlKey) {\n this.collapseAll();\n return;\n }\n\n if (!this._treeContextState.focusedItem) {\n return;\n }\n\n const {focusedItem} = this._treeContextState;\n const parent = findParentItem(focusedItem);\n\n if (!focusedItem.branch) {\n if (parent && parent.branch) {\n this._focusItem(parent);\n }\n } else {\n if (focusedItem.open) {\n focusedItem.open = false;\n } else {\n if (parent && parent.branch) {\n this._focusItem(parent);\n }\n }\n }\n }\n\n private _handleArrowDownPress() {\n if (this._treeContextState.focusedItem) {\n this._focusNextItem();\n } else {\n this._focusItem(this._assignedTreeItems[0]);\n }\n }\n\n private _handleArrowUpPress() {\n if (this._treeContextState.focusedItem) {\n this._focusPrevItem();\n } else {\n this._focusItem(this._assignedTreeItems[0]);\n }\n }\n\n private _handleEnterPress() {\n const {focusedItem} = this._treeContextState;\n\n if (focusedItem) {\n this._treeContextState.selectedItems.forEach(\n (li) => (li.selected = false)\n );\n this._treeContextState.selectedItems.clear();\n this._highlightIndentGuides();\n\n focusedItem.selected = true;\n this._emitSelectEvent();\n\n if (focusedItem.branch) {\n focusedItem.open = !focusedItem.open;\n }\n }\n }\n\n private _handleShiftPress() {\n this._treeContextState.isShiftPressed = true;\n }\n\n private _handleComponentKeyDown = (ev: KeyboardEvent) => {\n const key = ev.key as ListenedKey;\n\n if (listenedKeys.includes(key)) {\n ev.stopPropagation();\n ev.preventDefault();\n }\n\n switch (key) {\n case ' ':\n case 'Enter':\n this._handleEnterPress();\n break;\n case 'ArrowDown':\n this._handleArrowDownPress();\n break;\n case 'ArrowLeft':\n this._handleArrowLeftPress(ev);\n break;\n case 'ArrowRight':\n this._handleArrowRightPress();\n break;\n case 'ArrowUp':\n this._handleArrowUpPress();\n break;\n case 'Shift':\n this._handleShiftPress();\n break;\n default:\n }\n };\n\n private _handleComponentKeyUp = (ev: KeyboardEvent) => {\n if (ev.key === 'Shift') {\n this._treeContextState.isShiftPressed = false;\n }\n };\n\n private _handleSlotChange = () => {\n this._treeContextState.itemListUpToDate = false;\n initPathTrackerProps(this, this._assignedTreeItems);\n\n this.updateComplete.then(() => {\n if (this._treeContextState.activeItem === null) {\n const firstChild = this.querySelector<VscodeTreeItem>(\n ':scope > vscode-tree-item'\n );\n\n if (firstChild) {\n firstChild.active = true;\n }\n }\n });\n };\n\n //#endregion\n\n override render(): TemplateResult {\n return html`<div>\n <slot @slotchange=${this._handleSlotChange}></slot>\n </div>`;\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'vscode-tree': VscodeTree;\n }\n\n interface GlobalEventHandlersEventMap {\n 'vsc-tree-select': VscTreeSelectEvent;\n }\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"vscode-tree.styles.d.ts","sourceRoot":"","sources":["../../src/vscode-tree/vscode-tree.styles.ts"],"names":[],"mappings":"AAAA,OAAO,EAAM,cAAc,EAAC,MAAM,KAAK,CAAC;AAGxC,QAAA,MAAM,MAAM,EAAE,cAyPb,CAAC;AAEF,eAAe,MAAM,CAAC"}
1
+ {"version":3,"file":"vscode-tree.styles.d.ts","sourceRoot":"","sources":["../../src/vscode-tree/vscode-tree.styles.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,cAAc,EAAM,MAAM,KAAK,CAAC;AAGxC,QAAA,MAAM,MAAM,EAAE,cAiDb,CAAC;AAEF,eAAe,MAAM,CAAC"}
@@ -1,252 +1,52 @@
1
1
  import { css } from 'lit';
2
- import defaultStyles from '../includes/default.styles.js';
2
+ import defaultStyles from '../includes/default.styles';
3
3
  const styles = [
4
4
  defaultStyles,
5
5
  css `
6
6
  :host {
7
- --hover-outline-color: transparent;
8
- --hover-outline-style: solid;
9
- --hover-outline-width: 0;
10
- --selected-outline-color: transparent;
11
- --selected-outline-style: solid;
12
- --selected-outline-width: 0;
13
-
14
- display: block;
15
- outline: none;
16
- user-select: none;
17
- }
18
-
19
- .wrapper {
20
- height: 100%;
21
- }
22
-
23
- li {
24
- list-style: none;
25
- }
26
-
27
- ul,
28
- li {
29
- margin: 0;
30
- padding: 0;
31
- }
32
-
33
- ul {
34
- position: relative;
35
- }
36
-
37
- :host([indent-guides]) ul ul:before {
38
- content: '';
39
- display: block;
40
- height: 100%;
41
- position: absolute;
42
- bottom: 0;
43
- left: var(--indent-guide-pos);
44
- top: 0;
45
- pointer-events: none;
46
- width: 1px;
47
- z-index: 1;
48
- }
49
-
50
- .contents {
51
- align-items: center;
52
- display: flex;
53
- font-family: var(--vscode-font-family);
54
- font-size: var(--vscode-font-size);
55
- font-weight: var(--vscode-font-weight);
56
- outline-offset: -1px;
57
- padding-right: 12px;
58
- }
59
-
60
- .multi .contents {
61
- align-items: flex-start;
62
- }
63
-
64
- .contents:hover {
65
- cursor: pointer;
66
- }
67
-
68
- .arrow-container {
69
- align-items: center;
70
- display: flex;
71
- height: 22px;
72
- justify-content: center;
73
- padding-left: 8px;
74
- padding-right: 6px;
75
- width: 16px;
76
- }
77
-
78
- .icon-arrow {
79
- color: currentColor;
80
- display: block;
81
- }
82
-
83
- .theme-icon {
84
- display: block;
85
- flex-shrink: 0;
86
- margin-right: 6px;
87
- }
88
-
89
- .image-icon {
90
- background-repeat: no-repeat;
91
- background-position: 0 center;
92
- background-size: 16px;
93
- display: block;
94
- flex-shrink: 0;
95
- margin-right: 6px;
96
- height: 22px;
97
- width: 16px;
98
- }
99
-
100
- .multi .contents .theme-icon {
101
- margin-top: 3px;
102
- }
103
-
104
- .text-content {
105
- display: flex;
106
- line-height: 22px;
107
- }
7
+ --vsc-tree-item-arrow-display: flex;
8
+ --internal-selectionBackground: var(
9
+ --vscode-list-inactiveSelectionBackground
10
+ );
11
+ --internal-selectionForeground: var(--vscode-foreground);
12
+ --internal-selectionIconForeground: var(--vscode-icon-foreground);
13
+ --internal-defaultIndentGuideDisplay: none;
14
+ --internal-highlightedIndentGuideDisplay: block;
108
15
 
109
- .single .text-content {
110
16
  display: block;
111
- overflow: hidden;
112
- text-overflow: ellipsis;
113
- white-space: nowrap;
114
- width: 100%;
115
- }
116
-
117
- .description {
118
- font-size: 0.9em;
119
- line-height: 22px;
120
- margin-left: 0.5em;
121
- opacity: 0.95;
122
- white-space: pre;
123
17
  }
124
18
 
125
- .actions {
126
- display: none;
19
+ :host(:hover) {
20
+ --internal-defaultIndentGuideDisplay: block;
21
+ --internal-highlightedIndentGuideDisplay: block;
127
22
  }
128
23
 
129
- .contents.selected > .actions,
130
- .contents.focused > .actions,
131
- .contents:hover > .actions {
132
- display: flex;
133
- }
134
-
135
- .decorations {
136
- align-items: center;
137
- display: flex;
138
- height: 22px;
139
- margin-left: 5px;
140
- }
141
-
142
- .filled-circle {
143
- margin-right: 3px;
144
- opacity: 0.4;
145
- }
146
-
147
- .decoration-text {
148
- font-size: 90%;
149
- font-weight: 600;
150
- margin-right: 3px;
151
- opacity: 0.75;
152
- }
153
-
154
- .filled-circle,
155
- .decoration-text {
156
- color: var(--color, currentColor);
157
- }
158
-
159
- .contents:hover .filled-circle,
160
- .contents:hover .decoration-text {
161
- color: var(--hover-color, var(--color));
162
- }
163
-
164
- .contents.focused .filled-circle,
165
- .contents.focused .decoration-text {
166
- color: var(--focused-color, var(--color));
167
- }
168
-
169
- .contents.selected .filled-circle,
170
- .contents.selected .decoration-text {
171
- color: var(--selected-color, var(--color));
172
- }
173
-
174
- /* Theme colors */
175
- :host(:focus) .wrapper.has-not-focused-item {
176
- outline: 1px solid var(--vscode-focusBorder);
177
- }
178
-
179
- :host(:focus) .contents.selected,
180
- :host(:focus) .contents.focused.selected {
181
- color: var(--vscode-list-activeSelectionForeground);
182
- background-color: var(--vscode-list-activeSelectionBackground);
183
- }
184
-
185
- :host(:focus) .contents.selected .icon-arrow,
186
- :host(:focus) .contents.selected.focused .icon-arrow,
187
- :host(:focus) .contents.selected .theme-icon,
188
- :host(:focus) .contents.selected.focused .theme-icon,
189
- :host(:focus) .contents.selected .action-icon,
190
- :host(:focus) .contents.selected.focused .action-icon {
191
- color: var(--vscode-list-activeSelectionIconForeground);
192
- }
193
-
194
- :host(:focus) .contents.focused {
195
- color: var(--vscode-list-focusForeground);
196
- background-color: var(--vscode-list-focusBackground);
197
- }
198
-
199
- :host(:focus) .contents.selected.focused {
200
- outline-color: var(
201
- --vscode-list-focusAndSelectionOutline,
202
- var(--vscode-list-focusOutline)
24
+ :host(:focus-within) {
25
+ --internal-selectionBackground: var(
26
+ --vscode-list-activeSelectionBackground
27
+ );
28
+ --internal-selectionForeground: var(
29
+ --vscode-list-activeSelectionForeground
30
+ );
31
+ --internal-selectionIconForeground: var(
32
+ --vscode-list-activeSelectionIconForeground
203
33
  );
204
34
  }
205
35
 
206
- .contents:hover {
207
- background-color: var(--vscode-list-hoverBackground);
208
- color: var(--vscode-list-hoverForeground);
209
- }
210
-
211
- .contents:hover,
212
- .contents.selected:hover {
213
- outline-color: var(--hover-outline-color);
214
- outline-style: var(--hover-outline-style);
215
- outline-width: var(--hover-outline-width);
216
- }
217
-
218
- .contents.selected,
219
- .contents.selected.focused {
220
- background-color: var(--vscode-list-inactiveSelectionBackground);
221
- color: var(--vscode-list-inactiveSelectionForeground);
222
- }
223
-
224
- .contents.selected,
225
- .contents.selected.focused {
226
- outline-color: var(--selected-outline-color);
227
- outline-style: var(--selected-outline-style);
228
- outline-width: var(--selected-outline-width);
229
- }
230
-
231
- .contents.selected .theme-icon {
232
- color: var(--vscode-list-inactiveSelectionIconForeground);
233
- }
234
-
235
- .contents.focused {
236
- background-color: var(--vscode-list-inactiveFocusBackground);
237
- outline: 1px dotted var(--vscode-list-inactiveFocusOutline);
238
- }
239
-
240
- :host(:focus) .contents.focused {
241
- outline: 1px solid var(--vscode-list-focusOutline);
36
+ :host([hide-arrows]) {
37
+ --vsc-tree-item-arrow-display: none;
242
38
  }
243
39
 
244
- :host([indent-guides]) ul ul:before {
245
- background-color: var(--vscode-tree-inactiveIndentGuidesStroke);
40
+ :host([indent-guides='none']),
41
+ :host([indent-guides='none']:hover) {
42
+ --internal-defaultIndentGuideDisplay: none;
43
+ --internal-highlightedIndentGuideDisplay: none;
246
44
  }
247
45
 
248
- :host([indent-guides]) ul ul.has-active-item:before {
249
- background-color: var(--vscode-tree-indentGuidesStroke);
46
+ :host([indent-guides='always']),
47
+ :host([indent-guides='always']:hover) {
48
+ --internal-defaultIndentGuideDisplay: block;
49
+ --internal-highlightedIndentGuideDisplay: block;
250
50
  }
251
51
  `,
252
52
  ];
@@ -1 +1 @@
1
- {"version":3,"file":"vscode-tree.styles.js","sourceRoot":"","sources":["../../src/vscode-tree/vscode-tree.styles.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,GAAG,EAAiB,MAAM,KAAK,CAAC;AACxC,OAAO,aAAa,MAAM,+BAA+B,CAAC;AAE1D,MAAM,MAAM,GAAmB;IAC7B,aAAa;IACb,GAAG,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAsPF;CACF,CAAC;AAEF,eAAe,MAAM,CAAC","sourcesContent":["import {css, CSSResultGroup} from 'lit';\nimport defaultStyles from '../includes/default.styles.js';\n\nconst styles: CSSResultGroup = [\n defaultStyles,\n css`\n :host {\n --hover-outline-color: transparent;\n --hover-outline-style: solid;\n --hover-outline-width: 0;\n --selected-outline-color: transparent;\n --selected-outline-style: solid;\n --selected-outline-width: 0;\n\n display: block;\n outline: none;\n user-select: none;\n }\n\n .wrapper {\n height: 100%;\n }\n\n li {\n list-style: none;\n }\n\n ul,\n li {\n margin: 0;\n padding: 0;\n }\n\n ul {\n position: relative;\n }\n\n :host([indent-guides]) ul ul:before {\n content: '';\n display: block;\n height: 100%;\n position: absolute;\n bottom: 0;\n left: var(--indent-guide-pos);\n top: 0;\n pointer-events: none;\n width: 1px;\n z-index: 1;\n }\n\n .contents {\n align-items: center;\n display: flex;\n font-family: var(--vscode-font-family);\n font-size: var(--vscode-font-size);\n font-weight: var(--vscode-font-weight);\n outline-offset: -1px;\n padding-right: 12px;\n }\n\n .multi .contents {\n align-items: flex-start;\n }\n\n .contents:hover {\n cursor: pointer;\n }\n\n .arrow-container {\n align-items: center;\n display: flex;\n height: 22px;\n justify-content: center;\n padding-left: 8px;\n padding-right: 6px;\n width: 16px;\n }\n\n .icon-arrow {\n color: currentColor;\n display: block;\n }\n\n .theme-icon {\n display: block;\n flex-shrink: 0;\n margin-right: 6px;\n }\n\n .image-icon {\n background-repeat: no-repeat;\n background-position: 0 center;\n background-size: 16px;\n display: block;\n flex-shrink: 0;\n margin-right: 6px;\n height: 22px;\n width: 16px;\n }\n\n .multi .contents .theme-icon {\n margin-top: 3px;\n }\n\n .text-content {\n display: flex;\n line-height: 22px;\n }\n\n .single .text-content {\n display: block;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n width: 100%;\n }\n\n .description {\n font-size: 0.9em;\n line-height: 22px;\n margin-left: 0.5em;\n opacity: 0.95;\n white-space: pre;\n }\n\n .actions {\n display: none;\n }\n\n .contents.selected > .actions,\n .contents.focused > .actions,\n .contents:hover > .actions {\n display: flex;\n }\n\n .decorations {\n align-items: center;\n display: flex;\n height: 22px;\n margin-left: 5px;\n }\n\n .filled-circle {\n margin-right: 3px;\n opacity: 0.4;\n }\n\n .decoration-text {\n font-size: 90%;\n font-weight: 600;\n margin-right: 3px;\n opacity: 0.75;\n }\n\n .filled-circle,\n .decoration-text {\n color: var(--color, currentColor);\n }\n\n .contents:hover .filled-circle,\n .contents:hover .decoration-text {\n color: var(--hover-color, var(--color));\n }\n\n .contents.focused .filled-circle,\n .contents.focused .decoration-text {\n color: var(--focused-color, var(--color));\n }\n\n .contents.selected .filled-circle,\n .contents.selected .decoration-text {\n color: var(--selected-color, var(--color));\n }\n\n /* Theme colors */\n :host(:focus) .wrapper.has-not-focused-item {\n outline: 1px solid var(--vscode-focusBorder);\n }\n\n :host(:focus) .contents.selected,\n :host(:focus) .contents.focused.selected {\n color: var(--vscode-list-activeSelectionForeground);\n background-color: var(--vscode-list-activeSelectionBackground);\n }\n\n :host(:focus) .contents.selected .icon-arrow,\n :host(:focus) .contents.selected.focused .icon-arrow,\n :host(:focus) .contents.selected .theme-icon,\n :host(:focus) .contents.selected.focused .theme-icon,\n :host(:focus) .contents.selected .action-icon,\n :host(:focus) .contents.selected.focused .action-icon {\n color: var(--vscode-list-activeSelectionIconForeground);\n }\n\n :host(:focus) .contents.focused {\n color: var(--vscode-list-focusForeground);\n background-color: var(--vscode-list-focusBackground);\n }\n\n :host(:focus) .contents.selected.focused {\n outline-color: var(\n --vscode-list-focusAndSelectionOutline,\n var(--vscode-list-focusOutline)\n );\n }\n\n .contents:hover {\n background-color: var(--vscode-list-hoverBackground);\n color: var(--vscode-list-hoverForeground);\n }\n\n .contents:hover,\n .contents.selected:hover {\n outline-color: var(--hover-outline-color);\n outline-style: var(--hover-outline-style);\n outline-width: var(--hover-outline-width);\n }\n\n .contents.selected,\n .contents.selected.focused {\n background-color: var(--vscode-list-inactiveSelectionBackground);\n color: var(--vscode-list-inactiveSelectionForeground);\n }\n\n .contents.selected,\n .contents.selected.focused {\n outline-color: var(--selected-outline-color);\n outline-style: var(--selected-outline-style);\n outline-width: var(--selected-outline-width);\n }\n\n .contents.selected .theme-icon {\n color: var(--vscode-list-inactiveSelectionIconForeground);\n }\n\n .contents.focused {\n background-color: var(--vscode-list-inactiveFocusBackground);\n outline: 1px dotted var(--vscode-list-inactiveFocusOutline);\n }\n\n :host(:focus) .contents.focused {\n outline: 1px solid var(--vscode-list-focusOutline);\n }\n\n :host([indent-guides]) ul ul:before {\n background-color: var(--vscode-tree-inactiveIndentGuidesStroke);\n }\n\n :host([indent-guides]) ul ul.has-active-item:before {\n background-color: var(--vscode-tree-indentGuidesStroke);\n }\n `,\n];\n\nexport default styles;\n"]}
1
+ {"version":3,"file":"vscode-tree.styles.js","sourceRoot":"","sources":["../../src/vscode-tree/vscode-tree.styles.ts"],"names":[],"mappings":"AAAA,OAAO,EAAiB,GAAG,EAAC,MAAM,KAAK,CAAC;AACxC,OAAO,aAAa,MAAM,4BAA4B,CAAC;AAEvD,MAAM,MAAM,GAAmB;IAC7B,aAAa;IACb,GAAG,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8CF;CACF,CAAC;AAEF,eAAe,MAAM,CAAC","sourcesContent":["import {CSSResultGroup, css} from 'lit';\nimport defaultStyles from '../includes/default.styles';\n\nconst styles: CSSResultGroup = [\n defaultStyles,\n css`\n :host {\n --vsc-tree-item-arrow-display: flex;\n --internal-selectionBackground: var(\n --vscode-list-inactiveSelectionBackground\n );\n --internal-selectionForeground: var(--vscode-foreground);\n --internal-selectionIconForeground: var(--vscode-icon-foreground);\n --internal-defaultIndentGuideDisplay: none;\n --internal-highlightedIndentGuideDisplay: block;\n\n display: block;\n }\n\n :host(:hover) {\n --internal-defaultIndentGuideDisplay: block;\n --internal-highlightedIndentGuideDisplay: block;\n }\n\n :host(:focus-within) {\n --internal-selectionBackground: var(\n --vscode-list-activeSelectionBackground\n );\n --internal-selectionForeground: var(\n --vscode-list-activeSelectionForeground\n );\n --internal-selectionIconForeground: var(\n --vscode-list-activeSelectionIconForeground\n );\n }\n\n :host([hide-arrows]) {\n --vsc-tree-item-arrow-display: none;\n }\n\n :host([indent-guides='none']),\n :host([indent-guides='none']:hover) {\n --internal-defaultIndentGuideDisplay: none;\n --internal-highlightedIndentGuideDisplay: none;\n }\n\n :host([indent-guides='always']),\n :host([indent-guides='always']:hover) {\n --internal-defaultIndentGuideDisplay: block;\n --internal-highlightedIndentGuideDisplay: block;\n }\n `,\n];\n\nexport default styles;\n"]}
@@ -0,0 +1,2 @@
1
+ export { VscodeTreeItem } from './vscode-tree-item.js';
2
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/vscode-tree-item/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,cAAc,EAAC,MAAM,uBAAuB,CAAC"}
@@ -0,0 +1,2 @@
1
+ export { VscodeTreeItem } from './vscode-tree-item.js';
2
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/vscode-tree-item/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,cAAc,EAAC,MAAM,uBAAuB,CAAC","sourcesContent":["export {VscodeTreeItem} from './vscode-tree-item.js';\n"]}
@@ -0,0 +1,50 @@
1
+ import { PropertyValues, TemplateResult } from 'lit';
2
+ import { VscElement } from '../includes/VscElement';
3
+ export declare class VscodeTreeItem extends VscElement {
4
+ static styles: import("lit").CSSResultGroup;
5
+ active: boolean;
6
+ branch: boolean;
7
+ hasActiveItem: boolean;
8
+ hasSelectedItem: boolean;
9
+ /** @internal */
10
+ highlightedGuides: boolean;
11
+ open: boolean;
12
+ level: number;
13
+ set selected(selected: boolean);
14
+ get selected(): boolean;
15
+ private _selected;
16
+ set path(newPath: number[]);
17
+ get path(): number[];
18
+ private _path;
19
+ private _internals;
20
+ private _hasBranchIcon;
21
+ private _hasBranchOpenedIcon;
22
+ private _hasLeafIcon;
23
+ private _treeContextState;
24
+ private _configContext;
25
+ private _initiallyAssignedTreeItems;
26
+ private _childrenTreeItems;
27
+ constructor();
28
+ connectedCallback(): void;
29
+ protected willUpdate(changedProperties: PropertyValues): void;
30
+ private _setAriaExpanded;
31
+ private _setHasActiveItemFlagOnParent;
32
+ private _toggleActiveState;
33
+ private _selectItem;
34
+ private _selectRange;
35
+ private _selectItemsAndAllVisibleDescendants;
36
+ private _mainSlotChange;
37
+ private _handleChildrenSlotChange;
38
+ private _handleMainSlotChange;
39
+ private _handleComponentFocus;
40
+ private _handleContentClick;
41
+ private _handleDoubleClick;
42
+ private _handleIconSlotChange;
43
+ render(): TemplateResult;
44
+ }
45
+ declare global {
46
+ interface HTMLElementTagNameMap {
47
+ 'vscode-tree-item': VscodeTreeItem;
48
+ }
49
+ }
50
+ //# sourceMappingURL=vscode-tree-item.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"vscode-tree-item.d.ts","sourceRoot":"","sources":["../../src/vscode-tree-item/vscode-tree-item.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,cAAc,EAAE,cAAc,EAAgB,MAAM,KAAK,CAAC;AASlE,OAAO,EAAC,UAAU,EAAC,MAAM,wBAAwB,CAAC;AAwClD,qBACa,cAAe,SAAQ,UAAU;IAC5C,OAAgB,MAAM,+BAAU;IAKhC,MAAM,UAAS;IAGf,MAAM,UAAS;IAGf,aAAa,UAAS;IAGtB,eAAe,UAAS;IAExB,gBAAgB;IAEhB,iBAAiB,UAAS;IAG1B,IAAI,UAAS;IAGb,KAAK,SAAK;IAEV,IACI,QAAQ,CAAC,QAAQ,EAAE,OAAO,EAI7B;IACD,IAAI,QAAQ,IAAI,OAAO,CAEtB;IACD,OAAO,CAAC,SAAS,CAAS;IAE1B,IAAI,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,EAEzB;IACD,IAAI,IAAI,IAAI,MAAM,EAAE,CAEnB;IAMD,OAAO,CAAC,KAAK,CAAgB;IAC7B,OAAO,CAAC,UAAU,CAAmB;IAGrC,OAAO,CAAC,cAAc,CAAS;IAG/B,OAAO,CAAC,oBAAoB,CAAS;IAGrC,OAAO,CAAC,YAAY,CAAS;IAG7B,OAAO,CAAC,iBAAiB,CAUvB;IAGF,OAAO,CAAC,cAAc,CAAiB;IAGvC,OAAO,CAAC,2BAA2B,CAAoB;IAGvD,OAAO,CAAC,kBAAkB,CAAoB;;IAarC,iBAAiB,IAAI,IAAI;cAOf,UAAU,CAAC,iBAAiB,EAAE,cAAc,GAAG,IAAI;IActE,OAAO,CAAC,gBAAgB;IAQxB,OAAO,CAAC,6BAA6B;IAWrC,OAAO,CAAC,kBAAkB;IAyB1B,OAAO,CAAC,WAAW;IAoBnB,OAAO,CAAC,YAAY;IAmCpB,OAAO,CAAC,oCAAoC;IAwB5C,OAAO,CAAC,eAAe;IAUvB,OAAO,CAAC,yBAAyB;IAQjC,OAAO,CAAC,qBAAqB,CAG3B;IAEF,OAAO,CAAC,qBAAqB,CAc3B;IAEF,OAAO,CAAC,mBAAmB;IAkC3B,OAAO,CAAC,kBAAkB;IAQ1B,OAAO,CAAC,qBAAqB;IAoBpB,MAAM,IAAI,cAAc;CAyFlC;AAED,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,qBAAqB;QAC7B,kBAAkB,EAAE,cAAc,CAAC;KACpC;CACF"}