primevue 4.0.1 → 4.0.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 (300) hide show
  1. package/accordion/index.mjs.map +1 -1
  2. package/accordioncontent/index.mjs.map +1 -1
  3. package/accordionheader/index.mjs.map +1 -1
  4. package/accordionpanel/index.mjs.map +1 -1
  5. package/accordionpanel/style/index.mjs.map +1 -1
  6. package/accordiontab/index.mjs.map +1 -1
  7. package/animateonscroll/index.mjs.map +1 -1
  8. package/autocomplete/AutoComplete.vue +10 -3
  9. package/autocomplete/BaseAutoComplete.vue +1 -1
  10. package/autocomplete/index.d.ts +2 -2
  11. package/autocomplete/index.mjs +12 -3
  12. package/autocomplete/index.mjs.map +1 -1
  13. package/autocomplete/style/index.mjs +1 -1
  14. package/autocomplete/style/index.mjs.map +1 -1
  15. package/avatar/index.mjs.map +1 -1
  16. package/avatar/style/index.mjs.map +1 -1
  17. package/avatargroup/index.mjs.map +1 -1
  18. package/badge/index.mjs.map +1 -1
  19. package/badge/style/index.mjs.map +1 -1
  20. package/badgedirective/index.mjs.map +1 -1
  21. package/blockui/index.mjs.map +1 -1
  22. package/breadcrumb/index.mjs.map +1 -1
  23. package/breadcrumb/style/index.mjs.map +1 -1
  24. package/button/BaseButton.vue +1 -1
  25. package/button/Button.vue +7 -0
  26. package/button/index.d.ts +2 -2
  27. package/button/index.mjs +10 -1
  28. package/button/index.mjs.map +1 -1
  29. package/button/style/index.mjs +1 -1
  30. package/button/style/index.mjs.map +1 -1
  31. package/buttongroup/index.mjs.map +1 -1
  32. package/calendar/index.mjs.map +1 -1
  33. package/card/index.mjs.map +1 -1
  34. package/carousel/index.mjs.map +1 -1
  35. package/carousel/style/index.mjs.map +1 -1
  36. package/cascadeselect/BaseCascadeSelect.vue +1 -1
  37. package/cascadeselect/CascadeSelect.vue +6 -0
  38. package/cascadeselect/index.d.ts +2 -2
  39. package/cascadeselect/index.mjs +9 -1
  40. package/cascadeselect/index.mjs.map +1 -1
  41. package/cascadeselect/style/index.mjs +1 -1
  42. package/cascadeselect/style/index.mjs.map +1 -1
  43. package/chart/index.mjs.map +1 -1
  44. package/checkbox/index.mjs.map +1 -1
  45. package/checkbox/style/index.mjs.map +1 -1
  46. package/chip/index.mjs.map +1 -1
  47. package/chips/index.mjs.map +1 -1
  48. package/colorpicker/BaseColorPicker.vue +4 -0
  49. package/colorpicker/ColorPicker.vue +1 -1
  50. package/colorpicker/index.d.ts +4 -0
  51. package/colorpicker/index.mjs +6 -1
  52. package/colorpicker/index.mjs.map +1 -1
  53. package/colorpicker/style/index.mjs.map +1 -1
  54. package/column/index.mjs.map +1 -1
  55. package/columngroup/index.mjs.map +1 -1
  56. package/confirmationservice/index.mjs.map +1 -1
  57. package/confirmdialog/ConfirmDialog.vue +4 -7
  58. package/confirmdialog/index.mjs +6 -12
  59. package/confirmdialog/index.mjs.map +1 -1
  60. package/confirmpopup/ConfirmPopup.vue +7 -10
  61. package/confirmpopup/index.mjs +8 -14
  62. package/confirmpopup/index.mjs.map +1 -1
  63. package/contextmenu/index.mjs.map +1 -1
  64. package/contextmenu/style/index.mjs.map +1 -1
  65. package/datatable/HeaderCheckbox.vue +1 -1
  66. package/datatable/index.mjs +1 -1
  67. package/datatable/index.mjs.map +1 -1
  68. package/datatable/style/index.mjs.map +1 -1
  69. package/dataview/index.mjs.map +1 -1
  70. package/dataview/style/index.mjs.map +1 -1
  71. package/datepicker/BaseDatePicker.vue +1 -1
  72. package/datepicker/DatePicker.vue +8 -1
  73. package/datepicker/index.d.ts +2 -2
  74. package/datepicker/index.mjs +12 -3
  75. package/datepicker/index.mjs.map +1 -1
  76. package/datepicker/style/index.mjs +4 -3
  77. package/datepicker/style/index.mjs.map +1 -1
  78. package/deferredcontent/index.mjs.map +1 -1
  79. package/dialog/index.mjs.map +1 -1
  80. package/dialog/style/index.mjs.map +1 -1
  81. package/dialogservice/index.mjs.map +1 -1
  82. package/divider/index.mjs.map +1 -1
  83. package/divider/style/index.mjs.map +1 -1
  84. package/dock/index.mjs.map +1 -1
  85. package/dock/style/index.mjs.map +1 -1
  86. package/drawer/index.mjs.map +1 -1
  87. package/drawer/style/index.mjs.map +1 -1
  88. package/dropdown/index.mjs.map +1 -1
  89. package/dynamicdialog/index.mjs.map +1 -1
  90. package/editor/index.mjs.map +1 -1
  91. package/fieldset/index.mjs.map +1 -1
  92. package/fieldset/style/index.mjs.map +1 -1
  93. package/fileupload/index.mjs.map +1 -1
  94. package/fileupload/style/index.mjs.map +1 -1
  95. package/floatlabel/index.d.ts +1 -1
  96. package/floatlabel/index.mjs.map +1 -1
  97. package/fluid/BaseFluid.vue +16 -0
  98. package/fluid/Fluid.vue +15 -0
  99. package/fluid/index.d.ts +130 -0
  100. package/fluid/index.mjs +32 -0
  101. package/fluid/index.mjs.map +1 -0
  102. package/fluid/package.json +11 -0
  103. package/fluid/style/index.d.ts +19 -0
  104. package/fluid/style/index.mjs +12 -0
  105. package/fluid/style/index.mjs.map +1 -0
  106. package/fluid/style/package.json +6 -0
  107. package/focustrap/index.mjs +3 -3
  108. package/focustrap/index.mjs.map +1 -1
  109. package/galleria/index.mjs.map +1 -1
  110. package/galleria/style/index.mjs.map +1 -1
  111. package/iconfield/index.mjs.map +1 -1
  112. package/iconfield/style/index.mjs +1 -1
  113. package/iconfield/style/index.mjs.map +1 -1
  114. package/image/index.mjs.map +1 -1
  115. package/image/style/index.mjs.map +1 -1
  116. package/inlinemessage/index.mjs.map +1 -1
  117. package/inlinemessage/style/index.mjs.map +1 -1
  118. package/inplace/index.mjs.map +1 -1
  119. package/inplace/style/index.mjs.map +1 -1
  120. package/inputchips/index.mjs.map +1 -1
  121. package/inputchips/style/index.mjs.map +1 -1
  122. package/inputgroup/BaseInputGroup.vue +1 -1
  123. package/inputgroup/InputGroup.vue +10 -1
  124. package/inputgroup/index.d.ts +2 -2
  125. package/inputgroup/index.mjs +13 -2
  126. package/inputgroup/index.mjs.map +1 -1
  127. package/inputgroup/style/index.mjs +2 -2
  128. package/inputgroup/style/index.mjs.map +1 -1
  129. package/inputgroupaddon/index.mjs.map +1 -1
  130. package/inputicon/index.mjs.map +1 -1
  131. package/inputmask/BaseInputMask.vue +1 -1
  132. package/inputmask/InputMask.vue +8 -1
  133. package/inputmask/index.d.ts +2 -2
  134. package/inputmask/index.mjs +11 -2
  135. package/inputmask/index.mjs.map +1 -1
  136. package/inputmask/style/index.mjs.map +1 -1
  137. package/inputnumber/BaseInputNumber.vue +1 -1
  138. package/inputnumber/InputNumber.vue +8 -2
  139. package/inputnumber/index.d.ts +2 -2
  140. package/inputnumber/index.mjs +10 -2
  141. package/inputnumber/index.mjs.map +1 -1
  142. package/inputnumber/style/index.mjs +1 -1
  143. package/inputnumber/style/index.mjs.map +1 -1
  144. package/inputotp/index.mjs.map +1 -1
  145. package/inputswitch/index.mjs.map +1 -1
  146. package/inputtext/BaseInputText.vue +1 -1
  147. package/inputtext/InputText.vue +7 -0
  148. package/inputtext/index.d.ts +2 -2
  149. package/inputtext/index.mjs +10 -1
  150. package/inputtext/index.mjs.map +1 -1
  151. package/inputtext/style/index.mjs +1 -1
  152. package/inputtext/style/index.mjs.map +1 -1
  153. package/knob/index.mjs.map +1 -1
  154. package/knob/style/index.mjs.map +1 -1
  155. package/listbox/index.mjs.map +1 -1
  156. package/listbox/style/index.mjs.map +1 -1
  157. package/megamenu/index.mjs.map +1 -1
  158. package/megamenu/style/index.mjs.map +1 -1
  159. package/menu/index.mjs.map +1 -1
  160. package/menu/style/index.mjs.map +1 -1
  161. package/menubar/index.mjs.map +1 -1
  162. package/menubar/style/index.mjs.map +1 -1
  163. package/message/index.mjs.map +1 -1
  164. package/message/style/index.mjs.map +1 -1
  165. package/metergroup/index.mjs.map +1 -1
  166. package/metergroup/style/index.mjs.map +1 -1
  167. package/multiselect/BaseMultiSelect.vue +1 -1
  168. package/multiselect/MultiSelect.vue +7 -1
  169. package/multiselect/index.d.ts +2 -2
  170. package/multiselect/index.mjs +10 -2
  171. package/multiselect/index.mjs.map +1 -1
  172. package/multiselect/style/index.mjs +1 -1
  173. package/multiselect/style/index.mjs.map +1 -1
  174. package/orderlist/index.mjs.map +1 -1
  175. package/organizationchart/index.mjs.map +1 -1
  176. package/organizationchart/style/index.mjs.map +1 -1
  177. package/overlaybadge/index.mjs.map +1 -1
  178. package/overlaypanel/index.mjs.map +1 -1
  179. package/package.json +3 -3
  180. package/paginator/index.mjs.map +1 -1
  181. package/paginator/style/index.mjs.map +1 -1
  182. package/panel/index.mjs.map +1 -1
  183. package/panel/style/index.mjs.map +1 -1
  184. package/panelmenu/index.mjs.map +1 -1
  185. package/panelmenu/style/index.mjs.map +1 -1
  186. package/password/BasePassword.vue +1 -1
  187. package/password/Password.vue +7 -0
  188. package/password/index.d.ts +2 -2
  189. package/password/index.mjs +10 -1
  190. package/password/index.mjs.map +1 -1
  191. package/password/style/index.mjs +2 -3
  192. package/password/style/index.mjs.map +1 -1
  193. package/picklist/index.mjs.map +1 -1
  194. package/popover/index.mjs.map +1 -1
  195. package/portal/index.mjs.map +1 -1
  196. package/progressbar/index.mjs.map +1 -1
  197. package/progressbar/style/index.mjs.map +1 -1
  198. package/progressspinner/index.mjs.map +1 -1
  199. package/radiobutton/index.mjs.map +1 -1
  200. package/radiobutton/style/index.mjs.map +1 -1
  201. package/rating/index.mjs.map +1 -1
  202. package/rating/style/index.mjs.map +1 -1
  203. package/ripple/index.mjs.map +1 -1
  204. package/row/index.mjs.map +1 -1
  205. package/scrollpanel/index.mjs.map +1 -1
  206. package/scrolltop/index.mjs.map +1 -1
  207. package/scrolltop/style/index.mjs.map +1 -1
  208. package/select/BaseSelect.vue +1 -1
  209. package/select/Select.vue +7 -1
  210. package/select/index.d.ts +3 -3
  211. package/select/index.mjs +10 -2
  212. package/select/index.mjs.map +1 -1
  213. package/select/style/index.mjs +1 -1
  214. package/select/style/index.mjs.map +1 -1
  215. package/selectbutton/index.mjs.map +1 -1
  216. package/selectbutton/style/index.mjs.map +1 -1
  217. package/sidebar/index.mjs.map +1 -1
  218. package/skeleton/index.mjs.map +1 -1
  219. package/skeleton/style/index.mjs.map +1 -1
  220. package/slider/index.mjs.map +1 -1
  221. package/slider/style/index.mjs.map +1 -1
  222. package/speeddial/index.mjs.map +1 -1
  223. package/speeddial/style/index.mjs.map +1 -1
  224. package/splitbutton/BaseSplitButton.vue +1 -1
  225. package/splitbutton/SplitButton.vue +7 -0
  226. package/splitbutton/index.d.ts +2 -2
  227. package/splitbutton/index.mjs +10 -1
  228. package/splitbutton/index.mjs.map +1 -1
  229. package/splitbutton/style/index.mjs +3 -2
  230. package/splitbutton/style/index.mjs.map +1 -1
  231. package/splitter/index.mjs.map +1 -1
  232. package/splitter/style/index.mjs.map +1 -1
  233. package/splitterpanel/index.mjs.map +1 -1
  234. package/splitterpanel/style/index.mjs.map +1 -1
  235. package/step/index.mjs.map +1 -1
  236. package/step/style/index.mjs.map +1 -1
  237. package/stepitem/index.mjs.map +1 -1
  238. package/stepitem/style/index.mjs.map +1 -1
  239. package/steplist/index.mjs.map +1 -1
  240. package/steppanel/index.mjs.map +1 -1
  241. package/steppanel/style/index.mjs.map +1 -1
  242. package/steppanels/index.mjs.map +1 -1
  243. package/stepper/index.mjs.map +1 -1
  244. package/stepper/style/index.mjs.map +1 -1
  245. package/stepperpanel/index.mjs.map +1 -1
  246. package/steps/index.mjs.map +1 -1
  247. package/steps/style/index.mjs.map +1 -1
  248. package/styleclass/index.mjs.map +1 -1
  249. package/tab/index.mjs.map +1 -1
  250. package/tab/style/index.mjs.map +1 -1
  251. package/tablist/index.mjs.map +1 -1
  252. package/tablist/style/index.mjs.map +1 -1
  253. package/tabmenu/index.mjs.map +1 -1
  254. package/tabmenu/style/index.mjs.map +1 -1
  255. package/tabpanel/index.mjs.map +1 -1
  256. package/tabpanel/style/index.mjs.map +1 -1
  257. package/tabpanels/index.mjs.map +1 -1
  258. package/tabs/index.mjs.map +1 -1
  259. package/tabs/style/index.mjs.map +1 -1
  260. package/tabview/index.mjs.map +1 -1
  261. package/tabview/style/index.mjs.map +1 -1
  262. package/tag/index.mjs.map +1 -1
  263. package/tag/style/index.mjs.map +1 -1
  264. package/terminal/index.mjs.map +1 -1
  265. package/textarea/BaseTextarea.vue +1 -1
  266. package/textarea/Textarea.vue +7 -0
  267. package/textarea/index.d.ts +2 -2
  268. package/textarea/index.mjs +10 -1
  269. package/textarea/index.mjs.map +1 -1
  270. package/textarea/style/index.mjs +1 -1
  271. package/textarea/style/index.mjs.map +1 -1
  272. package/tieredmenu/index.mjs.map +1 -1
  273. package/tieredmenu/style/index.mjs.map +1 -1
  274. package/timeline/index.mjs.map +1 -1
  275. package/timeline/style/index.mjs.map +1 -1
  276. package/toast/Toast.vue +2 -1
  277. package/toast/index.mjs +3 -2
  278. package/toast/index.mjs.map +1 -1
  279. package/toast/style/index.mjs.map +1 -1
  280. package/toastservice/index.mjs.map +1 -1
  281. package/togglebutton/index.mjs.map +1 -1
  282. package/togglebutton/style/index.mjs.map +1 -1
  283. package/toggleswitch/index.mjs.map +1 -1
  284. package/toggleswitch/style/index.mjs.map +1 -1
  285. package/toolbar/index.mjs.map +1 -1
  286. package/tooltip/index.mjs.map +1 -1
  287. package/tree/index.mjs.map +1 -1
  288. package/tree/style/index.mjs.map +1 -1
  289. package/treeselect/BaseTreeSelect.vue +1 -1
  290. package/treeselect/TreeSelect.vue +9 -2
  291. package/treeselect/index.d.ts +2 -2
  292. package/treeselect/index.mjs +11 -2
  293. package/treeselect/index.mjs.map +1 -1
  294. package/treeselect/style/index.mjs +1 -1
  295. package/treeselect/style/index.mjs.map +1 -1
  296. package/treetable/index.mjs.map +1 -1
  297. package/treetable/style/index.mjs.map +1 -1
  298. package/umd/primevue.min.js +1 -1
  299. package/virtualscroller/index.mjs.map +1 -1
  300. package/web-types.json +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"index.mjs","sources":["../../src/tree/BaseTree.vue","../../src/tree/TreeNode.vue","../../src/tree/TreeNode.vue?vue&type=template&id=ca8587a0&lang.js","../../src/tree/Tree.vue","../../src/tree/Tree.vue?vue&type=template&id=17d2de1e&lang.js"],"sourcesContent":["<script>\nimport BaseComponent from '@primevue/core/basecomponent';\nimport TreeStyle from 'primevue/tree/style';\n\nexport default {\n name: 'BaseTree',\n extends: BaseComponent,\n props: {\n value: {\n type: null,\n default: null\n },\n expandedKeys: {\n type: null,\n default: null\n },\n selectionKeys: {\n type: null,\n default: null\n },\n selectionMode: {\n type: String,\n default: null\n },\n metaKeySelection: {\n type: Boolean,\n default: false\n },\n loading: {\n type: Boolean,\n default: false\n },\n loadingIcon: {\n type: String,\n default: undefined\n },\n loadingMode: {\n type: String,\n default: 'mask'\n },\n filter: {\n type: Boolean,\n default: false\n },\n filterBy: {\n type: String,\n default: 'label'\n },\n filterMode: {\n type: String,\n default: 'lenient'\n },\n filterPlaceholder: {\n type: String,\n default: null\n },\n filterLocale: {\n type: String,\n default: undefined\n },\n highlightOnSelect: {\n type: Boolean,\n default: false\n },\n scrollHeight: {\n type: String,\n default: null\n },\n level: {\n type: Number,\n default: 0\n },\n ariaLabelledby: {\n type: String,\n default: null\n },\n ariaLabel: {\n type: String,\n default: null\n }\n },\n style: TreeStyle,\n provide() {\n return {\n $pcTree: this,\n $parentInstance: this\n };\n }\n};\n</script>\n","<template>\n <li\n ref=\"currentNode\"\n :class=\"cx('node')\"\n role=\"treeitem\"\n :aria-label=\"label(node)\"\n :aria-selected=\"ariaSelected\"\n :aria-expanded=\"expanded\"\n :aria-setsize=\"node.children ? node.children.length : 0\"\n :aria-posinset=\"index + 1\"\n :aria-level=\"level\"\n :aria-checked=\"ariaChecked\"\n :tabindex=\"index === 0 ? 0 : -1\"\n @keydown=\"onKeyDown\"\n v-bind=\"level === 1 ? getPTOptions('node') : ptm('nodeChildren')\"\n >\n <div :class=\"cx('nodeContent')\" @click=\"onClick\" @touchend=\"onTouchEnd\" :style=\"node.style\" v-bind=\"getPTOptions('nodeContent')\" :data-p-selected=\"checkboxMode ? checked : selected\" :data-p-selectable=\"selectable\">\n <button v-ripple type=\"button\" :class=\"cx('nodeToggleButton')\" @click=\"toggle\" tabindex=\"-1\" aria-hidden=\"true\" v-bind=\"getPTOptions('nodeToggleButton')\">\n <template v-if=\"node.loading && loadingMode === 'icon'\">\n <!-- TODO: nodetogglericon deprecated since v4.0-->\n <component v-if=\"templates['nodetoggleicon'] || templates['nodetogglericon']\" :is=\"templates['nodetoggleicon'] || templates['nodetogglericon']\" :class=\"cx('nodeToggleIcon')\" />\n <SpinnerIcon v-else spin :class=\"cx('nodetogglericon')\" v-bind=\"ptm('nodeToggleIcon')\" />\n </template>\n <template v-else>\n <!-- TODO: togglericon deprecated since v4.0-->\n <component v-if=\"templates['nodetoggleicon'] || templates['togglericon']\" :is=\"templates['nodetoggleicon'] || templates['togglericon']\" :node=\"node\" :expanded=\"expanded\" :class=\"cx('nodeToggleIcon')\" />\n <component v-else-if=\"expanded\" :is=\"node.expandedIcon ? 'span' : 'ChevronDownIcon'\" :class=\"cx('nodeToggleIcon')\" v-bind=\"getPTOptions('nodeToggleIcon')\" />\n <component v-else :is=\"node.collapsedIcon ? 'span' : 'ChevronRightIcon'\" :class=\"cx('nodeToggleIcon')\" v-bind=\"getPTOptions('nodeToggleIcon')\" />\n </template>\n </button>\n <Checkbox v-if=\"checkboxMode\" :modelValue=\"checked\" :binary=\"true\" :indeterminate=\"partialChecked\" :class=\"cx('nodeCheckbox')\" :tabindex=\"-1\" :unstyled=\"unstyled\" :pt=\"getPTOptions('nodeCheckbox')\" :data-p-partialchecked=\"partialChecked\">\n <template #icon=\"slotProps\">\n <component v-if=\"templates['checkboxicon']\" :is=\"templates['checkboxicon']\" :checked=\"slotProps.checked\" :partialChecked=\"partialChecked\" :class=\"slotProps.class\" />\n </template>\n </Checkbox>\n <component v-if=\"templates['nodeicon']\" :is=\"templates['nodeicon']\" :node=\"node\" :class=\"[cx('nodeIcon')]\" v-bind=\"getPTOptions('nodeIcon')\"></component>\n <span v-else :class=\"[cx('nodeIcon'), node.icon]\" v-bind=\"getPTOptions('nodeIcon')\"></span>\n <span :class=\"cx('nodeLabel')\" v-bind=\"getPTOptions('nodeLabel')\" @keydown.stop>\n <component v-if=\"templates[node.type] || templates['default']\" :is=\"templates[node.type] || templates['default']\" :node=\"node\" :selected=\"checkboxMode ? checked : selected\" />\n <template v-else>{{ label(node) }}</template>\n </span>\n </div>\n <ul v-if=\"hasChildren && expanded\" :class=\"cx('nodeChildren')\" role=\"group\" v-bind=\"ptm('nodeChildren')\">\n <TreeNode\n v-for=\"childNode of node.children\"\n :key=\"childNode.key\"\n :node=\"childNode\"\n :templates=\"templates\"\n :level=\"level + 1\"\n :loadingMode=\"loadingMode\"\n :expandedKeys=\"expandedKeys\"\n @node-toggle=\"onChildNodeToggle\"\n @node-click=\"onChildNodeClick\"\n :selectionMode=\"selectionMode\"\n :selectionKeys=\"selectionKeys\"\n @checkbox-change=\"propagateUp\"\n :unstyled=\"unstyled\"\n :pt=\"pt\"\n />\n </ul>\n </li>\n</template>\n\n<script>\nimport { find, findSingle, getAttribute } from '@primeuix/utils/dom';\nimport BaseComponent from '@primevue/core/basecomponent';\nimport CheckIcon from '@primevue/icons/check';\nimport ChevronDownIcon from '@primevue/icons/chevrondown';\nimport ChevronRightIcon from '@primevue/icons/chevronright';\nimport MinusIcon from '@primevue/icons/minus';\nimport SpinnerIcon from '@primevue/icons/spinner';\nimport Checkbox from 'primevue/checkbox';\nimport Ripple from 'primevue/ripple';\n\nexport default {\n name: 'TreeNode',\n hostName: 'Tree',\n extends: BaseComponent,\n emits: ['node-toggle', 'node-click', 'checkbox-change'],\n props: {\n node: {\n type: null,\n default: null\n },\n expandedKeys: {\n type: null,\n default: null\n },\n loadingMode: {\n type: String,\n default: 'mask'\n },\n selectionKeys: {\n type: null,\n default: null\n },\n selectionMode: {\n type: String,\n default: null\n },\n templates: {\n type: null,\n default: null\n },\n level: {\n type: Number,\n default: null\n },\n index: null\n },\n nodeTouched: false,\n toggleClicked: false,\n mounted() {\n this.setAllNodesTabIndexes();\n },\n methods: {\n toggle() {\n this.$emit('node-toggle', this.node);\n this.toggleClicked = true;\n },\n label(node) {\n return typeof node.label === 'function' ? node.label() : node.label;\n },\n onChildNodeToggle(node) {\n this.$emit('node-toggle', node);\n },\n getPTOptions(key) {\n return this.ptm(key, {\n context: {\n index: this.index,\n expanded: this.expanded,\n selected: this.selected,\n checked: this.checked,\n leaf: this.leaf\n }\n });\n },\n onClick(event) {\n if (this.toggleClicked || getAttribute(event.target, '[data-pc-section=\"nodetogglebutton\"]') || getAttribute(event.target.parentElement, '[data-pc-section=\"nodetogglebutton\"]')) {\n this.toggleClicked = false;\n\n return;\n }\n\n if (this.isCheckboxSelectionMode()) {\n this.toggleCheckbox();\n } else {\n this.$emit('node-click', {\n originalEvent: event,\n nodeTouched: this.nodeTouched,\n node: this.node\n });\n }\n\n this.nodeTouched = false;\n },\n onChildNodeClick(event) {\n this.$emit('node-click', event);\n },\n onTouchEnd() {\n this.nodeTouched = true;\n },\n onKeyDown(event) {\n if (!this.isSameNode(event)) return;\n\n switch (event.code) {\n case 'Tab':\n this.onTabKey(event);\n\n break;\n\n case 'ArrowDown':\n this.onArrowDown(event);\n\n break;\n\n case 'ArrowUp':\n this.onArrowUp(event);\n\n break;\n\n case 'ArrowRight':\n this.onArrowRight(event);\n\n break;\n\n case 'ArrowLeft':\n this.onArrowLeft(event);\n\n break;\n\n case 'Enter':\n case 'NumpadEnter':\n case 'Space':\n this.onEnterKey(event);\n\n break;\n\n default:\n break;\n }\n },\n onArrowDown(event) {\n const nodeElement = event.target.getAttribute('data-pc-section') === 'nodetogglebutton' ? event.target.closest('[role=\"treeitem\"]') : event.target;\n const listElement = nodeElement.children[1];\n\n if (listElement) {\n this.focusRowChange(nodeElement, listElement.children[0]);\n } else {\n if (nodeElement.nextElementSibling) {\n this.focusRowChange(nodeElement, nodeElement.nextElementSibling);\n } else {\n let nextSiblingAncestor = this.findNextSiblingOfAncestor(nodeElement);\n\n if (nextSiblingAncestor) {\n this.focusRowChange(nodeElement, nextSiblingAncestor);\n }\n }\n }\n\n event.preventDefault();\n },\n onArrowUp(event) {\n const nodeElement = event.target;\n\n if (nodeElement.previousElementSibling) {\n this.focusRowChange(nodeElement, nodeElement.previousElementSibling, this.findLastVisibleDescendant(nodeElement.previousElementSibling));\n } else {\n let parentNodeElement = this.getParentNodeElement(nodeElement);\n\n if (parentNodeElement) {\n this.focusRowChange(nodeElement, parentNodeElement);\n }\n }\n\n event.preventDefault();\n },\n onArrowRight(event) {\n if (this.leaf || this.expanded) return;\n\n event.currentTarget.tabIndex = -1;\n\n this.$emit('node-toggle', this.node);\n this.$nextTick(() => {\n this.onArrowDown(event);\n });\n },\n onArrowLeft(event) {\n const togglerElement = findSingle(event.currentTarget, '[data-pc-section=\"nodetogglebutton\"]');\n\n if (this.level === 0 && !this.expanded) {\n return false;\n }\n\n if (this.expanded && !this.leaf) {\n togglerElement.click();\n\n return false;\n }\n\n const target = this.findBeforeClickableNode(event.currentTarget);\n\n if (target) {\n this.focusRowChange(event.currentTarget, target);\n }\n },\n onEnterKey(event) {\n this.setTabIndexForSelectionMode(event, this.nodeTouched);\n this.onClick(event);\n\n event.preventDefault();\n },\n onTabKey() {\n this.setAllNodesTabIndexes();\n },\n setAllNodesTabIndexes() {\n const nodes = find(this.$refs.currentNode.closest('[data-pc-section=\"rootchildren\"]'), '[role=\"treeitem\"]');\n\n const hasSelectedNode = [...nodes].some((node) => node.getAttribute('aria-selected') === 'true' || node.getAttribute('aria-checked') === 'true');\n\n [...nodes].forEach((node) => {\n node.tabIndex = -1;\n });\n\n if (hasSelectedNode) {\n const selectedNodes = [...nodes].filter((node) => node.getAttribute('aria-selected') === 'true' || node.getAttribute('aria-checked') === 'true');\n\n selectedNodes[0].tabIndex = 0;\n\n return;\n }\n\n [...nodes][0].tabIndex = 0;\n },\n setTabIndexForSelectionMode(event, nodeTouched) {\n if (this.selectionMode !== null) {\n const elements = [...find(this.$refs.currentNode.parentElement, '[role=\"treeitem\"]')];\n\n event.currentTarget.tabIndex = nodeTouched === false ? -1 : 0;\n\n if (elements.every((element) => element.tabIndex === -1)) {\n elements[0].tabIndex = 0;\n }\n }\n },\n focusRowChange(firstFocusableRow, currentFocusedRow, lastVisibleDescendant) {\n firstFocusableRow.tabIndex = '-1';\n currentFocusedRow.tabIndex = '0';\n\n this.focusNode(lastVisibleDescendant || currentFocusedRow);\n },\n findBeforeClickableNode(node) {\n const parentListElement = node.closest('ul').closest('li');\n\n if (parentListElement) {\n const prevNodeButton = findSingle(parentListElement, 'button');\n\n if (prevNodeButton && prevNodeButton.style.visibility !== 'hidden') {\n return parentListElement;\n }\n\n return this.findBeforeClickableNode(node.previousElementSibling);\n }\n\n return null;\n },\n toggleCheckbox() {\n let _selectionKeys = this.selectionKeys ? { ...this.selectionKeys } : {};\n const _check = !this.checked;\n\n this.propagateDown(this.node, _check, _selectionKeys);\n\n this.$emit('checkbox-change', {\n node: this.node,\n check: _check,\n selectionKeys: _selectionKeys\n });\n },\n propagateDown(node, check, selectionKeys) {\n if (check) selectionKeys[node.key] = { checked: true, partialChecked: false };\n else delete selectionKeys[node.key];\n\n if (node.children && node.children.length) {\n for (let child of node.children) {\n this.propagateDown(child, check, selectionKeys);\n }\n }\n },\n propagateUp(event) {\n let check = event.check;\n let _selectionKeys = { ...event.selectionKeys };\n let checkedChildCount = 0;\n let childPartialSelected = false;\n\n for (let child of this.node.children) {\n if (_selectionKeys[child.key] && _selectionKeys[child.key].checked) checkedChildCount++;\n else if (_selectionKeys[child.key] && _selectionKeys[child.key].partialChecked) childPartialSelected = true;\n }\n\n if (check && checkedChildCount === this.node.children.length) {\n _selectionKeys[this.node.key] = { checked: true, partialChecked: false };\n } else {\n if (!check) {\n delete _selectionKeys[this.node.key];\n }\n\n if (childPartialSelected || (checkedChildCount > 0 && checkedChildCount !== this.node.children.length)) _selectionKeys[this.node.key] = { checked: false, partialChecked: true };\n else delete _selectionKeys[this.node.key];\n }\n\n this.$emit('checkbox-change', {\n node: event.node,\n check: event.check,\n selectionKeys: _selectionKeys\n });\n },\n onChildCheckboxChange(event) {\n this.$emit('checkbox-change', event);\n },\n findNextSiblingOfAncestor(nodeElement) {\n let parentNodeElement = this.getParentNodeElement(nodeElement);\n\n if (parentNodeElement) {\n if (parentNodeElement.nextElementSibling) return parentNodeElement.nextElementSibling;\n else return this.findNextSiblingOfAncestor(parentNodeElement);\n } else {\n return null;\n }\n },\n findLastVisibleDescendant(nodeElement) {\n const childrenListElement = nodeElement.children[1];\n\n if (childrenListElement) {\n const lastChildElement = childrenListElement.children[childrenListElement.children.length - 1];\n\n return this.findLastVisibleDescendant(lastChildElement);\n } else {\n return nodeElement;\n }\n },\n getParentNodeElement(nodeElement) {\n const parentNodeElement = nodeElement.parentElement.parentElement;\n\n return getAttribute(parentNodeElement, 'role') === 'treeitem' ? parentNodeElement : null;\n },\n focusNode(element) {\n element.focus();\n },\n isCheckboxSelectionMode() {\n return this.selectionMode === 'checkbox';\n },\n isSameNode(event) {\n return event.currentTarget && (event.currentTarget.isSameNode(event.target) || event.currentTarget.isSameNode(event.target.closest('[role=\"treeitem\"]')));\n }\n },\n computed: {\n hasChildren() {\n return this.node.children && this.node.children.length > 0;\n },\n expanded() {\n return this.expandedKeys && this.expandedKeys[this.node.key] === true;\n },\n leaf() {\n return this.node.leaf === false ? false : !(this.node.children && this.node.children.length);\n },\n selectable() {\n return this.node.selectable === false ? false : this.selectionMode != null;\n },\n selected() {\n return this.selectionMode && this.selectionKeys ? this.selectionKeys[this.node.key] === true : false;\n },\n checkboxMode() {\n return this.selectionMode === 'checkbox' && this.node.selectable !== false;\n },\n checked() {\n return this.selectionKeys ? this.selectionKeys[this.node.key] && this.selectionKeys[this.node.key].checked : false;\n },\n partialChecked() {\n return this.selectionKeys ? this.selectionKeys[this.node.key] && this.selectionKeys[this.node.key].partialChecked : false;\n },\n ariaChecked() {\n return this.selectionMode === 'single' || this.selectionMode === 'multiple' ? this.selected : undefined;\n },\n ariaSelected() {\n return this.checkboxMode ? this.checked : undefined;\n }\n },\n components: {\n Checkbox,\n ChevronDownIcon,\n ChevronRightIcon,\n CheckIcon,\n MinusIcon,\n SpinnerIcon\n },\n directives: {\n ripple: Ripple\n }\n};\n</script>\n","<template>\n <li\n ref=\"currentNode\"\n :class=\"cx('node')\"\n role=\"treeitem\"\n :aria-label=\"label(node)\"\n :aria-selected=\"ariaSelected\"\n :aria-expanded=\"expanded\"\n :aria-setsize=\"node.children ? node.children.length : 0\"\n :aria-posinset=\"index + 1\"\n :aria-level=\"level\"\n :aria-checked=\"ariaChecked\"\n :tabindex=\"index === 0 ? 0 : -1\"\n @keydown=\"onKeyDown\"\n v-bind=\"level === 1 ? getPTOptions('node') : ptm('nodeChildren')\"\n >\n <div :class=\"cx('nodeContent')\" @click=\"onClick\" @touchend=\"onTouchEnd\" :style=\"node.style\" v-bind=\"getPTOptions('nodeContent')\" :data-p-selected=\"checkboxMode ? checked : selected\" :data-p-selectable=\"selectable\">\n <button v-ripple type=\"button\" :class=\"cx('nodeToggleButton')\" @click=\"toggle\" tabindex=\"-1\" aria-hidden=\"true\" v-bind=\"getPTOptions('nodeToggleButton')\">\n <template v-if=\"node.loading && loadingMode === 'icon'\">\n <!-- TODO: nodetogglericon deprecated since v4.0-->\n <component v-if=\"templates['nodetoggleicon'] || templates['nodetogglericon']\" :is=\"templates['nodetoggleicon'] || templates['nodetogglericon']\" :class=\"cx('nodeToggleIcon')\" />\n <SpinnerIcon v-else spin :class=\"cx('nodetogglericon')\" v-bind=\"ptm('nodeToggleIcon')\" />\n </template>\n <template v-else>\n <!-- TODO: togglericon deprecated since v4.0-->\n <component v-if=\"templates['nodetoggleicon'] || templates['togglericon']\" :is=\"templates['nodetoggleicon'] || templates['togglericon']\" :node=\"node\" :expanded=\"expanded\" :class=\"cx('nodeToggleIcon')\" />\n <component v-else-if=\"expanded\" :is=\"node.expandedIcon ? 'span' : 'ChevronDownIcon'\" :class=\"cx('nodeToggleIcon')\" v-bind=\"getPTOptions('nodeToggleIcon')\" />\n <component v-else :is=\"node.collapsedIcon ? 'span' : 'ChevronRightIcon'\" :class=\"cx('nodeToggleIcon')\" v-bind=\"getPTOptions('nodeToggleIcon')\" />\n </template>\n </button>\n <Checkbox v-if=\"checkboxMode\" :modelValue=\"checked\" :binary=\"true\" :indeterminate=\"partialChecked\" :class=\"cx('nodeCheckbox')\" :tabindex=\"-1\" :unstyled=\"unstyled\" :pt=\"getPTOptions('nodeCheckbox')\" :data-p-partialchecked=\"partialChecked\">\n <template #icon=\"slotProps\">\n <component v-if=\"templates['checkboxicon']\" :is=\"templates['checkboxicon']\" :checked=\"slotProps.checked\" :partialChecked=\"partialChecked\" :class=\"slotProps.class\" />\n </template>\n </Checkbox>\n <component v-if=\"templates['nodeicon']\" :is=\"templates['nodeicon']\" :node=\"node\" :class=\"[cx('nodeIcon')]\" v-bind=\"getPTOptions('nodeIcon')\"></component>\n <span v-else :class=\"[cx('nodeIcon'), node.icon]\" v-bind=\"getPTOptions('nodeIcon')\"></span>\n <span :class=\"cx('nodeLabel')\" v-bind=\"getPTOptions('nodeLabel')\" @keydown.stop>\n <component v-if=\"templates[node.type] || templates['default']\" :is=\"templates[node.type] || templates['default']\" :node=\"node\" :selected=\"checkboxMode ? checked : selected\" />\n <template v-else>{{ label(node) }}</template>\n </span>\n </div>\n <ul v-if=\"hasChildren && expanded\" :class=\"cx('nodeChildren')\" role=\"group\" v-bind=\"ptm('nodeChildren')\">\n <TreeNode\n v-for=\"childNode of node.children\"\n :key=\"childNode.key\"\n :node=\"childNode\"\n :templates=\"templates\"\n :level=\"level + 1\"\n :loadingMode=\"loadingMode\"\n :expandedKeys=\"expandedKeys\"\n @node-toggle=\"onChildNodeToggle\"\n @node-click=\"onChildNodeClick\"\n :selectionMode=\"selectionMode\"\n :selectionKeys=\"selectionKeys\"\n @checkbox-change=\"propagateUp\"\n :unstyled=\"unstyled\"\n :pt=\"pt\"\n />\n </ul>\n </li>\n</template>\n\n<script>\nimport { find, findSingle, getAttribute } from '@primeuix/utils/dom';\nimport BaseComponent from '@primevue/core/basecomponent';\nimport CheckIcon from '@primevue/icons/check';\nimport ChevronDownIcon from '@primevue/icons/chevrondown';\nimport ChevronRightIcon from '@primevue/icons/chevronright';\nimport MinusIcon from '@primevue/icons/minus';\nimport SpinnerIcon from '@primevue/icons/spinner';\nimport Checkbox from 'primevue/checkbox';\nimport Ripple from 'primevue/ripple';\n\nexport default {\n name: 'TreeNode',\n hostName: 'Tree',\n extends: BaseComponent,\n emits: ['node-toggle', 'node-click', 'checkbox-change'],\n props: {\n node: {\n type: null,\n default: null\n },\n expandedKeys: {\n type: null,\n default: null\n },\n loadingMode: {\n type: String,\n default: 'mask'\n },\n selectionKeys: {\n type: null,\n default: null\n },\n selectionMode: {\n type: String,\n default: null\n },\n templates: {\n type: null,\n default: null\n },\n level: {\n type: Number,\n default: null\n },\n index: null\n },\n nodeTouched: false,\n toggleClicked: false,\n mounted() {\n this.setAllNodesTabIndexes();\n },\n methods: {\n toggle() {\n this.$emit('node-toggle', this.node);\n this.toggleClicked = true;\n },\n label(node) {\n return typeof node.label === 'function' ? node.label() : node.label;\n },\n onChildNodeToggle(node) {\n this.$emit('node-toggle', node);\n },\n getPTOptions(key) {\n return this.ptm(key, {\n context: {\n index: this.index,\n expanded: this.expanded,\n selected: this.selected,\n checked: this.checked,\n leaf: this.leaf\n }\n });\n },\n onClick(event) {\n if (this.toggleClicked || getAttribute(event.target, '[data-pc-section=\"nodetogglebutton\"]') || getAttribute(event.target.parentElement, '[data-pc-section=\"nodetogglebutton\"]')) {\n this.toggleClicked = false;\n\n return;\n }\n\n if (this.isCheckboxSelectionMode()) {\n this.toggleCheckbox();\n } else {\n this.$emit('node-click', {\n originalEvent: event,\n nodeTouched: this.nodeTouched,\n node: this.node\n });\n }\n\n this.nodeTouched = false;\n },\n onChildNodeClick(event) {\n this.$emit('node-click', event);\n },\n onTouchEnd() {\n this.nodeTouched = true;\n },\n onKeyDown(event) {\n if (!this.isSameNode(event)) return;\n\n switch (event.code) {\n case 'Tab':\n this.onTabKey(event);\n\n break;\n\n case 'ArrowDown':\n this.onArrowDown(event);\n\n break;\n\n case 'ArrowUp':\n this.onArrowUp(event);\n\n break;\n\n case 'ArrowRight':\n this.onArrowRight(event);\n\n break;\n\n case 'ArrowLeft':\n this.onArrowLeft(event);\n\n break;\n\n case 'Enter':\n case 'NumpadEnter':\n case 'Space':\n this.onEnterKey(event);\n\n break;\n\n default:\n break;\n }\n },\n onArrowDown(event) {\n const nodeElement = event.target.getAttribute('data-pc-section') === 'nodetogglebutton' ? event.target.closest('[role=\"treeitem\"]') : event.target;\n const listElement = nodeElement.children[1];\n\n if (listElement) {\n this.focusRowChange(nodeElement, listElement.children[0]);\n } else {\n if (nodeElement.nextElementSibling) {\n this.focusRowChange(nodeElement, nodeElement.nextElementSibling);\n } else {\n let nextSiblingAncestor = this.findNextSiblingOfAncestor(nodeElement);\n\n if (nextSiblingAncestor) {\n this.focusRowChange(nodeElement, nextSiblingAncestor);\n }\n }\n }\n\n event.preventDefault();\n },\n onArrowUp(event) {\n const nodeElement = event.target;\n\n if (nodeElement.previousElementSibling) {\n this.focusRowChange(nodeElement, nodeElement.previousElementSibling, this.findLastVisibleDescendant(nodeElement.previousElementSibling));\n } else {\n let parentNodeElement = this.getParentNodeElement(nodeElement);\n\n if (parentNodeElement) {\n this.focusRowChange(nodeElement, parentNodeElement);\n }\n }\n\n event.preventDefault();\n },\n onArrowRight(event) {\n if (this.leaf || this.expanded) return;\n\n event.currentTarget.tabIndex = -1;\n\n this.$emit('node-toggle', this.node);\n this.$nextTick(() => {\n this.onArrowDown(event);\n });\n },\n onArrowLeft(event) {\n const togglerElement = findSingle(event.currentTarget, '[data-pc-section=\"nodetogglebutton\"]');\n\n if (this.level === 0 && !this.expanded) {\n return false;\n }\n\n if (this.expanded && !this.leaf) {\n togglerElement.click();\n\n return false;\n }\n\n const target = this.findBeforeClickableNode(event.currentTarget);\n\n if (target) {\n this.focusRowChange(event.currentTarget, target);\n }\n },\n onEnterKey(event) {\n this.setTabIndexForSelectionMode(event, this.nodeTouched);\n this.onClick(event);\n\n event.preventDefault();\n },\n onTabKey() {\n this.setAllNodesTabIndexes();\n },\n setAllNodesTabIndexes() {\n const nodes = find(this.$refs.currentNode.closest('[data-pc-section=\"rootchildren\"]'), '[role=\"treeitem\"]');\n\n const hasSelectedNode = [...nodes].some((node) => node.getAttribute('aria-selected') === 'true' || node.getAttribute('aria-checked') === 'true');\n\n [...nodes].forEach((node) => {\n node.tabIndex = -1;\n });\n\n if (hasSelectedNode) {\n const selectedNodes = [...nodes].filter((node) => node.getAttribute('aria-selected') === 'true' || node.getAttribute('aria-checked') === 'true');\n\n selectedNodes[0].tabIndex = 0;\n\n return;\n }\n\n [...nodes][0].tabIndex = 0;\n },\n setTabIndexForSelectionMode(event, nodeTouched) {\n if (this.selectionMode !== null) {\n const elements = [...find(this.$refs.currentNode.parentElement, '[role=\"treeitem\"]')];\n\n event.currentTarget.tabIndex = nodeTouched === false ? -1 : 0;\n\n if (elements.every((element) => element.tabIndex === -1)) {\n elements[0].tabIndex = 0;\n }\n }\n },\n focusRowChange(firstFocusableRow, currentFocusedRow, lastVisibleDescendant) {\n firstFocusableRow.tabIndex = '-1';\n currentFocusedRow.tabIndex = '0';\n\n this.focusNode(lastVisibleDescendant || currentFocusedRow);\n },\n findBeforeClickableNode(node) {\n const parentListElement = node.closest('ul').closest('li');\n\n if (parentListElement) {\n const prevNodeButton = findSingle(parentListElement, 'button');\n\n if (prevNodeButton && prevNodeButton.style.visibility !== 'hidden') {\n return parentListElement;\n }\n\n return this.findBeforeClickableNode(node.previousElementSibling);\n }\n\n return null;\n },\n toggleCheckbox() {\n let _selectionKeys = this.selectionKeys ? { ...this.selectionKeys } : {};\n const _check = !this.checked;\n\n this.propagateDown(this.node, _check, _selectionKeys);\n\n this.$emit('checkbox-change', {\n node: this.node,\n check: _check,\n selectionKeys: _selectionKeys\n });\n },\n propagateDown(node, check, selectionKeys) {\n if (check) selectionKeys[node.key] = { checked: true, partialChecked: false };\n else delete selectionKeys[node.key];\n\n if (node.children && node.children.length) {\n for (let child of node.children) {\n this.propagateDown(child, check, selectionKeys);\n }\n }\n },\n propagateUp(event) {\n let check = event.check;\n let _selectionKeys = { ...event.selectionKeys };\n let checkedChildCount = 0;\n let childPartialSelected = false;\n\n for (let child of this.node.children) {\n if (_selectionKeys[child.key] && _selectionKeys[child.key].checked) checkedChildCount++;\n else if (_selectionKeys[child.key] && _selectionKeys[child.key].partialChecked) childPartialSelected = true;\n }\n\n if (check && checkedChildCount === this.node.children.length) {\n _selectionKeys[this.node.key] = { checked: true, partialChecked: false };\n } else {\n if (!check) {\n delete _selectionKeys[this.node.key];\n }\n\n if (childPartialSelected || (checkedChildCount > 0 && checkedChildCount !== this.node.children.length)) _selectionKeys[this.node.key] = { checked: false, partialChecked: true };\n else delete _selectionKeys[this.node.key];\n }\n\n this.$emit('checkbox-change', {\n node: event.node,\n check: event.check,\n selectionKeys: _selectionKeys\n });\n },\n onChildCheckboxChange(event) {\n this.$emit('checkbox-change', event);\n },\n findNextSiblingOfAncestor(nodeElement) {\n let parentNodeElement = this.getParentNodeElement(nodeElement);\n\n if (parentNodeElement) {\n if (parentNodeElement.nextElementSibling) return parentNodeElement.nextElementSibling;\n else return this.findNextSiblingOfAncestor(parentNodeElement);\n } else {\n return null;\n }\n },\n findLastVisibleDescendant(nodeElement) {\n const childrenListElement = nodeElement.children[1];\n\n if (childrenListElement) {\n const lastChildElement = childrenListElement.children[childrenListElement.children.length - 1];\n\n return this.findLastVisibleDescendant(lastChildElement);\n } else {\n return nodeElement;\n }\n },\n getParentNodeElement(nodeElement) {\n const parentNodeElement = nodeElement.parentElement.parentElement;\n\n return getAttribute(parentNodeElement, 'role') === 'treeitem' ? parentNodeElement : null;\n },\n focusNode(element) {\n element.focus();\n },\n isCheckboxSelectionMode() {\n return this.selectionMode === 'checkbox';\n },\n isSameNode(event) {\n return event.currentTarget && (event.currentTarget.isSameNode(event.target) || event.currentTarget.isSameNode(event.target.closest('[role=\"treeitem\"]')));\n }\n },\n computed: {\n hasChildren() {\n return this.node.children && this.node.children.length > 0;\n },\n expanded() {\n return this.expandedKeys && this.expandedKeys[this.node.key] === true;\n },\n leaf() {\n return this.node.leaf === false ? false : !(this.node.children && this.node.children.length);\n },\n selectable() {\n return this.node.selectable === false ? false : this.selectionMode != null;\n },\n selected() {\n return this.selectionMode && this.selectionKeys ? this.selectionKeys[this.node.key] === true : false;\n },\n checkboxMode() {\n return this.selectionMode === 'checkbox' && this.node.selectable !== false;\n },\n checked() {\n return this.selectionKeys ? this.selectionKeys[this.node.key] && this.selectionKeys[this.node.key].checked : false;\n },\n partialChecked() {\n return this.selectionKeys ? this.selectionKeys[this.node.key] && this.selectionKeys[this.node.key].partialChecked : false;\n },\n ariaChecked() {\n return this.selectionMode === 'single' || this.selectionMode === 'multiple' ? this.selected : undefined;\n },\n ariaSelected() {\n return this.checkboxMode ? this.checked : undefined;\n }\n },\n components: {\n Checkbox,\n ChevronDownIcon,\n ChevronRightIcon,\n CheckIcon,\n MinusIcon,\n SpinnerIcon\n },\n directives: {\n ripple: Ripple\n }\n};\n</script>\n","<template>\n <div :class=\"cx('root')\" v-bind=\"ptmi('root')\">\n <template v-if=\"loading && loadingMode === 'mask'\">\n <div :class=\"cx('mask')\" v-bind=\"ptm('mask')\">\n <slot name=\"loadingicon\" :class=\"cx('loadingIcon')\">\n <i v-if=\"loadingIcon\" :class=\"[cx('loadingIcon'), 'pi-spin', loadingIcon]\" v-bind=\"ptm('loadingIcon')\" />\n <SpinnerIcon v-else spin :class=\"cx('loadingIcon')\" v-bind=\"ptm('loadingIcon')\" />\n </slot>\n </div>\n </template>\n <IconField v-if=\"filter\" :unstyled=\"unstyled\" :pt=\"ptm('pcFilterContainer')\">\n <InputText v-model=\"filterValue\" autocomplete=\"off\" :class=\"cx('pcFilter')\" :placeholder=\"filterPlaceholder\" :unstyled=\"unstyled\" @keydown=\"onFilterKeydown\" :pt=\"ptm('pcFilter')\" />\n <InputIcon :unstyled=\"unstyled\" :pt=\"ptm('pcFilterIconContainer')\">\n <!--TODO: searchicon deprecated since v4.0-->\n <slot :name=\"$slots.filtericon ? 'filtericon' : 'searchicon'\" :class=\"cx('filterIcon')\">\n <SearchIcon :class=\"cx('filterIcon')\" v-bind=\"ptm('filterIcon')\" />\n </slot>\n </InputIcon>\n </IconField>\n <div :class=\"cx('wrapper')\" :style=\"{ maxHeight: scrollHeight }\" v-bind=\"ptm('wrapper')\">\n <ul :class=\"cx('rootChildren')\" role=\"tree\" :aria-labelledby=\"ariaLabelledby\" :aria-label=\"ariaLabel\" v-bind=\"ptm('rootChildren')\">\n <TreeNode\n v-for=\"(node, index) of valueToRender\"\n :key=\"node.key\"\n :node=\"node\"\n :templates=\"$slots\"\n :level=\"level + 1\"\n :index=\"index\"\n :expandedKeys=\"d_expandedKeys\"\n @node-toggle=\"onNodeToggle\"\n @node-click=\"onNodeClick\"\n :selectionMode=\"selectionMode\"\n :selectionKeys=\"selectionKeys\"\n @checkbox-change=\"onCheckboxChange\"\n :loadingMode=\"loadingMode\"\n :unstyled=\"unstyled\"\n :pt=\"pt\"\n ></TreeNode>\n </ul>\n </div>\n </div>\n</template>\n\n<script>\nimport { resolveFieldData } from '@primeuix/utils/object';\nimport SearchIcon from '@primevue/icons/search';\nimport SpinnerIcon from '@primevue/icons/spinner';\nimport IconField from 'primevue/iconfield';\nimport InputIcon from 'primevue/inputicon';\nimport InputText from 'primevue/inputtext';\nimport BaseTree from './BaseTree.vue';\nimport TreeNode from './TreeNode.vue';\n\nexport default {\n name: 'Tree',\n extends: BaseTree,\n inheritAttrs: false,\n emits: ['node-expand', 'node-collapse', 'update:expandedKeys', 'update:selectionKeys', 'node-select', 'node-unselect', 'filter'],\n data() {\n return {\n d_expandedKeys: this.expandedKeys || {},\n filterValue: null\n };\n },\n watch: {\n expandedKeys(newValue) {\n this.d_expandedKeys = newValue;\n }\n },\n methods: {\n onNodeToggle(node) {\n const key = node.key;\n\n if (this.d_expandedKeys[key]) {\n delete this.d_expandedKeys[key];\n this.$emit('node-collapse', node);\n } else {\n this.d_expandedKeys[key] = true;\n this.$emit('node-expand', node);\n }\n\n this.d_expandedKeys = { ...this.d_expandedKeys };\n this.$emit('update:expandedKeys', this.d_expandedKeys);\n },\n onNodeClick(event) {\n if (this.selectionMode != null && event.node.selectable !== false) {\n const metaSelection = event.nodeTouched ? false : this.metaKeySelection;\n const _selectionKeys = metaSelection ? this.handleSelectionWithMetaKey(event) : this.handleSelectionWithoutMetaKey(event);\n\n this.$emit('update:selectionKeys', _selectionKeys);\n }\n },\n onCheckboxChange(event) {\n this.$emit('update:selectionKeys', event.selectionKeys);\n\n if (event.check) this.$emit('node-select', event.node);\n else this.$emit('node-unselect', event.node);\n },\n handleSelectionWithMetaKey(event) {\n const originalEvent = event.originalEvent;\n const node = event.node;\n const metaKey = originalEvent.metaKey || originalEvent.ctrlKey;\n const selected = this.isNodeSelected(node);\n let _selectionKeys;\n\n if (selected && metaKey) {\n if (this.isSingleSelectionMode()) {\n _selectionKeys = {};\n } else {\n _selectionKeys = { ...this.selectionKeys };\n delete _selectionKeys[node.key];\n }\n\n this.$emit('node-unselect', node);\n } else {\n if (this.isSingleSelectionMode()) {\n _selectionKeys = {};\n } else if (this.isMultipleSelectionMode()) {\n _selectionKeys = !metaKey ? {} : this.selectionKeys ? { ...this.selectionKeys } : {};\n }\n\n _selectionKeys[node.key] = true;\n this.$emit('node-select', node);\n }\n\n return _selectionKeys;\n },\n handleSelectionWithoutMetaKey(event) {\n const node = event.node;\n const selected = this.isNodeSelected(node);\n let _selectionKeys;\n\n if (this.isSingleSelectionMode()) {\n if (selected) {\n _selectionKeys = {};\n this.$emit('node-unselect', node);\n } else {\n _selectionKeys = {};\n _selectionKeys[node.key] = true;\n this.$emit('node-select', node);\n }\n } else {\n if (selected) {\n _selectionKeys = { ...this.selectionKeys };\n delete _selectionKeys[node.key];\n\n this.$emit('node-unselect', node);\n } else {\n _selectionKeys = this.selectionKeys ? { ...this.selectionKeys } : {};\n _selectionKeys[node.key] = true;\n\n this.$emit('node-select', node);\n }\n }\n\n return _selectionKeys;\n },\n isSingleSelectionMode() {\n return this.selectionMode === 'single';\n },\n isMultipleSelectionMode() {\n return this.selectionMode === 'multiple';\n },\n isNodeSelected(node) {\n return this.selectionMode && this.selectionKeys ? this.selectionKeys[node.key] === true : false;\n },\n isChecked(node) {\n return this.selectionKeys ? this.selectionKeys[node.key] && this.selectionKeys[node.key].checked : false;\n },\n isNodeLeaf(node) {\n return node.leaf === false ? false : !(node.children && node.children.length);\n },\n onFilterKeydown(event) {\n if (event.code === 'Enter' || event.code === 'NumpadEnter') {\n event.preventDefault();\n }\n\n this.$emit('filter', { originalEvent: event, value: event.target.value });\n },\n findFilteredNodes(node, paramsWithoutNode) {\n if (node) {\n let matched = false;\n\n if (node.children) {\n let childNodes = [...node.children];\n\n node.children = [];\n\n for (let childNode of childNodes) {\n let copyChildNode = { ...childNode };\n\n if (this.isFilterMatched(copyChildNode, paramsWithoutNode)) {\n matched = true;\n node.children.push(copyChildNode);\n }\n }\n }\n\n if (matched) {\n return true;\n }\n }\n },\n isFilterMatched(node, { searchFields, filterText, strict }) {\n let matched = false;\n\n for (let field of searchFields) {\n let fieldValue = String(resolveFieldData(node, field)).toLocaleLowerCase(this.filterLocale);\n\n if (fieldValue.indexOf(filterText) > -1) {\n matched = true;\n }\n }\n\n if (!matched || (strict && !this.isNodeLeaf(node))) {\n matched = this.findFilteredNodes(node, { searchFields, filterText, strict }) || matched;\n }\n\n return matched;\n }\n },\n computed: {\n filteredValue() {\n let filteredNodes = [];\n const searchFields = this.filterBy.split(',');\n const filterText = this.filterValue.trim().toLocaleLowerCase(this.filterLocale);\n const strict = this.filterMode === 'strict';\n\n for (let node of this.value) {\n let _node = { ...node };\n let paramsWithoutNode = { searchFields, filterText, strict };\n\n if (\n (strict && (this.findFilteredNodes(_node, paramsWithoutNode) || this.isFilterMatched(_node, paramsWithoutNode))) ||\n (!strict && (this.isFilterMatched(_node, paramsWithoutNode) || this.findFilteredNodes(_node, paramsWithoutNode)))\n ) {\n filteredNodes.push(_node);\n }\n }\n\n return filteredNodes;\n },\n valueToRender() {\n if (this.filterValue && this.filterValue.trim().length > 0) return this.filteredValue;\n else return this.value;\n }\n },\n components: {\n TreeNode,\n InputText,\n InputIcon,\n IconField,\n SearchIcon,\n SpinnerIcon\n }\n};\n</script>\n","<template>\n <div :class=\"cx('root')\" v-bind=\"ptmi('root')\">\n <template v-if=\"loading && loadingMode === 'mask'\">\n <div :class=\"cx('mask')\" v-bind=\"ptm('mask')\">\n <slot name=\"loadingicon\" :class=\"cx('loadingIcon')\">\n <i v-if=\"loadingIcon\" :class=\"[cx('loadingIcon'), 'pi-spin', loadingIcon]\" v-bind=\"ptm('loadingIcon')\" />\n <SpinnerIcon v-else spin :class=\"cx('loadingIcon')\" v-bind=\"ptm('loadingIcon')\" />\n </slot>\n </div>\n </template>\n <IconField v-if=\"filter\" :unstyled=\"unstyled\" :pt=\"ptm('pcFilterContainer')\">\n <InputText v-model=\"filterValue\" autocomplete=\"off\" :class=\"cx('pcFilter')\" :placeholder=\"filterPlaceholder\" :unstyled=\"unstyled\" @keydown=\"onFilterKeydown\" :pt=\"ptm('pcFilter')\" />\n <InputIcon :unstyled=\"unstyled\" :pt=\"ptm('pcFilterIconContainer')\">\n <!--TODO: searchicon deprecated since v4.0-->\n <slot :name=\"$slots.filtericon ? 'filtericon' : 'searchicon'\" :class=\"cx('filterIcon')\">\n <SearchIcon :class=\"cx('filterIcon')\" v-bind=\"ptm('filterIcon')\" />\n </slot>\n </InputIcon>\n </IconField>\n <div :class=\"cx('wrapper')\" :style=\"{ maxHeight: scrollHeight }\" v-bind=\"ptm('wrapper')\">\n <ul :class=\"cx('rootChildren')\" role=\"tree\" :aria-labelledby=\"ariaLabelledby\" :aria-label=\"ariaLabel\" v-bind=\"ptm('rootChildren')\">\n <TreeNode\n v-for=\"(node, index) of valueToRender\"\n :key=\"node.key\"\n :node=\"node\"\n :templates=\"$slots\"\n :level=\"level + 1\"\n :index=\"index\"\n :expandedKeys=\"d_expandedKeys\"\n @node-toggle=\"onNodeToggle\"\n @node-click=\"onNodeClick\"\n :selectionMode=\"selectionMode\"\n :selectionKeys=\"selectionKeys\"\n @checkbox-change=\"onCheckboxChange\"\n :loadingMode=\"loadingMode\"\n :unstyled=\"unstyled\"\n :pt=\"pt\"\n ></TreeNode>\n </ul>\n </div>\n </div>\n</template>\n\n<script>\nimport { resolveFieldData } from '@primeuix/utils/object';\nimport SearchIcon from '@primevue/icons/search';\nimport SpinnerIcon from '@primevue/icons/spinner';\nimport IconField from 'primevue/iconfield';\nimport InputIcon from 'primevue/inputicon';\nimport InputText from 'primevue/inputtext';\nimport BaseTree from './BaseTree.vue';\nimport TreeNode from './TreeNode.vue';\n\nexport default {\n name: 'Tree',\n extends: BaseTree,\n inheritAttrs: false,\n emits: ['node-expand', 'node-collapse', 'update:expandedKeys', 'update:selectionKeys', 'node-select', 'node-unselect', 'filter'],\n data() {\n return {\n d_expandedKeys: this.expandedKeys || {},\n filterValue: null\n };\n },\n watch: {\n expandedKeys(newValue) {\n this.d_expandedKeys = newValue;\n }\n },\n methods: {\n onNodeToggle(node) {\n const key = node.key;\n\n if (this.d_expandedKeys[key]) {\n delete this.d_expandedKeys[key];\n this.$emit('node-collapse', node);\n } else {\n this.d_expandedKeys[key] = true;\n this.$emit('node-expand', node);\n }\n\n this.d_expandedKeys = { ...this.d_expandedKeys };\n this.$emit('update:expandedKeys', this.d_expandedKeys);\n },\n onNodeClick(event) {\n if (this.selectionMode != null && event.node.selectable !== false) {\n const metaSelection = event.nodeTouched ? false : this.metaKeySelection;\n const _selectionKeys = metaSelection ? this.handleSelectionWithMetaKey(event) : this.handleSelectionWithoutMetaKey(event);\n\n this.$emit('update:selectionKeys', _selectionKeys);\n }\n },\n onCheckboxChange(event) {\n this.$emit('update:selectionKeys', event.selectionKeys);\n\n if (event.check) this.$emit('node-select', event.node);\n else this.$emit('node-unselect', event.node);\n },\n handleSelectionWithMetaKey(event) {\n const originalEvent = event.originalEvent;\n const node = event.node;\n const metaKey = originalEvent.metaKey || originalEvent.ctrlKey;\n const selected = this.isNodeSelected(node);\n let _selectionKeys;\n\n if (selected && metaKey) {\n if (this.isSingleSelectionMode()) {\n _selectionKeys = {};\n } else {\n _selectionKeys = { ...this.selectionKeys };\n delete _selectionKeys[node.key];\n }\n\n this.$emit('node-unselect', node);\n } else {\n if (this.isSingleSelectionMode()) {\n _selectionKeys = {};\n } else if (this.isMultipleSelectionMode()) {\n _selectionKeys = !metaKey ? {} : this.selectionKeys ? { ...this.selectionKeys } : {};\n }\n\n _selectionKeys[node.key] = true;\n this.$emit('node-select', node);\n }\n\n return _selectionKeys;\n },\n handleSelectionWithoutMetaKey(event) {\n const node = event.node;\n const selected = this.isNodeSelected(node);\n let _selectionKeys;\n\n if (this.isSingleSelectionMode()) {\n if (selected) {\n _selectionKeys = {};\n this.$emit('node-unselect', node);\n } else {\n _selectionKeys = {};\n _selectionKeys[node.key] = true;\n this.$emit('node-select', node);\n }\n } else {\n if (selected) {\n _selectionKeys = { ...this.selectionKeys };\n delete _selectionKeys[node.key];\n\n this.$emit('node-unselect', node);\n } else {\n _selectionKeys = this.selectionKeys ? { ...this.selectionKeys } : {};\n _selectionKeys[node.key] = true;\n\n this.$emit('node-select', node);\n }\n }\n\n return _selectionKeys;\n },\n isSingleSelectionMode() {\n return this.selectionMode === 'single';\n },\n isMultipleSelectionMode() {\n return this.selectionMode === 'multiple';\n },\n isNodeSelected(node) {\n return this.selectionMode && this.selectionKeys ? this.selectionKeys[node.key] === true : false;\n },\n isChecked(node) {\n return this.selectionKeys ? this.selectionKeys[node.key] && this.selectionKeys[node.key].checked : false;\n },\n isNodeLeaf(node) {\n return node.leaf === false ? false : !(node.children && node.children.length);\n },\n onFilterKeydown(event) {\n if (event.code === 'Enter' || event.code === 'NumpadEnter') {\n event.preventDefault();\n }\n\n this.$emit('filter', { originalEvent: event, value: event.target.value });\n },\n findFilteredNodes(node, paramsWithoutNode) {\n if (node) {\n let matched = false;\n\n if (node.children) {\n let childNodes = [...node.children];\n\n node.children = [];\n\n for (let childNode of childNodes) {\n let copyChildNode = { ...childNode };\n\n if (this.isFilterMatched(copyChildNode, paramsWithoutNode)) {\n matched = true;\n node.children.push(copyChildNode);\n }\n }\n }\n\n if (matched) {\n return true;\n }\n }\n },\n isFilterMatched(node, { searchFields, filterText, strict }) {\n let matched = false;\n\n for (let field of searchFields) {\n let fieldValue = String(resolveFieldData(node, field)).toLocaleLowerCase(this.filterLocale);\n\n if (fieldValue.indexOf(filterText) > -1) {\n matched = true;\n }\n }\n\n if (!matched || (strict && !this.isNodeLeaf(node))) {\n matched = this.findFilteredNodes(node, { searchFields, filterText, strict }) || matched;\n }\n\n return matched;\n }\n },\n computed: {\n filteredValue() {\n let filteredNodes = [];\n const searchFields = this.filterBy.split(',');\n const filterText = this.filterValue.trim().toLocaleLowerCase(this.filterLocale);\n const strict = this.filterMode === 'strict';\n\n for (let node of this.value) {\n let _node = { ...node };\n let paramsWithoutNode = { searchFields, filterText, strict };\n\n if (\n (strict && (this.findFilteredNodes(_node, paramsWithoutNode) || this.isFilterMatched(_node, paramsWithoutNode))) ||\n (!strict && (this.isFilterMatched(_node, paramsWithoutNode) || this.findFilteredNodes(_node, paramsWithoutNode)))\n ) {\n filteredNodes.push(_node);\n }\n }\n\n return filteredNodes;\n },\n valueToRender() {\n if (this.filterValue && this.filterValue.trim().length > 0) return this.filteredValue;\n else return this.value;\n }\n },\n components: {\n TreeNode,\n InputText,\n InputIcon,\n IconField,\n SearchIcon,\n SpinnerIcon\n }\n};\n</script>\n"],"names":["name","BaseComponent","props","value","type","expandedKeys","selectionKeys","selectionMode","String","metaKeySelection","Boolean","loading","loadingIcon","undefined","loadingMode","filter","filterBy","filterMode","filterPlaceholder","filterLocale","highlightOnSelect","scrollHeight","level","Number","ariaLabelledby","ariaLabel","style","TreeStyle","provide","$pcTree","$parentInstance","hostName","emits","node","templates","index","nodeTouched","toggleClicked","mounted","setAllNodesTabIndexes","methods","toggle","$emit","label","onChildNodeToggle","getPTOptions","key","ptm","context","expanded","selected","checked","leaf","onClick","event","getAttribute","target","parentElement","isCheckboxSelectionMode","toggleCheckbox","originalEvent","onChildNodeClick","onTouchEnd","onKeyDown","isSameNode","code","onTabKey","onArrowDown","onArrowUp","onArrowRight","onArrowLeft","onEnterKey","nodeElement","closest","listElement","children","focusRowChange","nextElementSibling","nextSiblingAncestor","findNextSiblingOfAncestor","preventDefault","previousElementSibling","findLastVisibleDescendant","parentNodeElement","getParentNodeElement","_this","currentTarget","tabIndex","$nextTick","togglerElement","findSingle","click","findBeforeClickableNode","setTabIndexForSelectionMode","nodes","find","$refs","currentNode","hasSelectedNode","_toConsumableArray","some","forEach","selectedNodes","elements","every","element","firstFocusableRow","currentFocusedRow","lastVisibleDescendant","focusNode","parentListElement","prevNodeButton","visibility","_selectionKeys","_objectSpread","_check","propagateDown","check","partialChecked","length","_iterator","_createForOfIteratorHelper","_step","s","n","done","child","err","e","f","propagateUp","checkedChildCount","childPartialSelected","_iterator2","_step2","onChildCheckboxChange","childrenListElement","lastChildElement","focus","computed","hasChildren","selectable","checkboxMode","ariaChecked","ariaSelected","components","Checkbox","ChevronDownIcon","ChevronRightIcon","CheckIcon","MinusIcon","SpinnerIcon","directives","ripple","Ripple","_openBlock","_createElementBlock","_mergeProps","ref","_ctx","cx","role","$options","$props","tabindex","onKeydown","apply","arguments","_createElementVNode","onTouchend","_withDirectives","_Fragment","_createBlock","_resolveDynamicComponent","_component_SpinnerIcon","spin","expandedIcon","collapsedIcon","_component_Checkbox","modelValue","binary","indeterminate","unstyled","pt","icon","_withCtx","slotProps","_normalizeClass","_createTextVNode","_toDisplayString","_renderList","childNode","_component_TreeNode","onNodeToggle","onNodeClick","onCheckboxChange","BaseTree","inheritAttrs","data","d_expandedKeys","filterValue","watch","newValue","metaSelection","handleSelectionWithMetaKey","handleSelectionWithoutMetaKey","metaKey","ctrlKey","isNodeSelected","isSingleSelectionMode","isMultipleSelectionMode","isChecked","isNodeLeaf","onFilterKeydown","findFilteredNodes","paramsWithoutNode","matched","childNodes","copyChildNode","isFilterMatched","push","_ref","searchFields","filterText","strict","field","fieldValue","resolveFieldData","toLocaleLowerCase","indexOf","filteredValue","filteredNodes","split","trim","_iterator3","_step3","_node","valueToRender","TreeNode","InputText","InputIcon","IconField","SearchIcon","ptmi","_renderSlot","$slots","_component_IconField","_createVNode","_component_InputText","$data","$event","autocomplete","placeholder","_component_InputIcon","filtericon","_component_SearchIcon"],"mappings":"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"}
1
+ {"version":3,"file":"index.mjs","sources":["../../src/tree/BaseTree.vue","../../src/tree/TreeNode.vue","../../src/tree/TreeNode.vue?vue&type=template&id=ca8587a0&lang.js","../../src/tree/Tree.vue","../../src/tree/Tree.vue?vue&type=template&id=17d2de1e&lang.js"],"sourcesContent":["<script>\nimport BaseComponent from '@primevue/core/basecomponent';\nimport TreeStyle from 'primevue/tree/style';\n\nexport default {\n name: 'BaseTree',\n extends: BaseComponent,\n props: {\n value: {\n type: null,\n default: null\n },\n expandedKeys: {\n type: null,\n default: null\n },\n selectionKeys: {\n type: null,\n default: null\n },\n selectionMode: {\n type: String,\n default: null\n },\n metaKeySelection: {\n type: Boolean,\n default: false\n },\n loading: {\n type: Boolean,\n default: false\n },\n loadingIcon: {\n type: String,\n default: undefined\n },\n loadingMode: {\n type: String,\n default: 'mask'\n },\n filter: {\n type: Boolean,\n default: false\n },\n filterBy: {\n type: String,\n default: 'label'\n },\n filterMode: {\n type: String,\n default: 'lenient'\n },\n filterPlaceholder: {\n type: String,\n default: null\n },\n filterLocale: {\n type: String,\n default: undefined\n },\n highlightOnSelect: {\n type: Boolean,\n default: false\n },\n scrollHeight: {\n type: String,\n default: null\n },\n level: {\n type: Number,\n default: 0\n },\n ariaLabelledby: {\n type: String,\n default: null\n },\n ariaLabel: {\n type: String,\n default: null\n }\n },\n style: TreeStyle,\n provide() {\n return {\n $pcTree: this,\n $parentInstance: this\n };\n }\n};\n</script>\n","<template>\n <li\n ref=\"currentNode\"\n :class=\"cx('node')\"\n role=\"treeitem\"\n :aria-label=\"label(node)\"\n :aria-selected=\"ariaSelected\"\n :aria-expanded=\"expanded\"\n :aria-setsize=\"node.children ? node.children.length : 0\"\n :aria-posinset=\"index + 1\"\n :aria-level=\"level\"\n :aria-checked=\"ariaChecked\"\n :tabindex=\"index === 0 ? 0 : -1\"\n @keydown=\"onKeyDown\"\n v-bind=\"level === 1 ? getPTOptions('node') : ptm('nodeChildren')\"\n >\n <div :class=\"cx('nodeContent')\" @click=\"onClick\" @touchend=\"onTouchEnd\" :style=\"node.style\" v-bind=\"getPTOptions('nodeContent')\" :data-p-selected=\"checkboxMode ? checked : selected\" :data-p-selectable=\"selectable\">\n <button v-ripple type=\"button\" :class=\"cx('nodeToggleButton')\" @click=\"toggle\" tabindex=\"-1\" aria-hidden=\"true\" v-bind=\"getPTOptions('nodeToggleButton')\">\n <template v-if=\"node.loading && loadingMode === 'icon'\">\n <!-- TODO: nodetogglericon deprecated since v4.0-->\n <component v-if=\"templates['nodetoggleicon'] || templates['nodetogglericon']\" :is=\"templates['nodetoggleicon'] || templates['nodetogglericon']\" :class=\"cx('nodeToggleIcon')\" />\n <SpinnerIcon v-else spin :class=\"cx('nodetogglericon')\" v-bind=\"ptm('nodeToggleIcon')\" />\n </template>\n <template v-else>\n <!-- TODO: togglericon deprecated since v4.0-->\n <component v-if=\"templates['nodetoggleicon'] || templates['togglericon']\" :is=\"templates['nodetoggleicon'] || templates['togglericon']\" :node=\"node\" :expanded=\"expanded\" :class=\"cx('nodeToggleIcon')\" />\n <component v-else-if=\"expanded\" :is=\"node.expandedIcon ? 'span' : 'ChevronDownIcon'\" :class=\"cx('nodeToggleIcon')\" v-bind=\"getPTOptions('nodeToggleIcon')\" />\n <component v-else :is=\"node.collapsedIcon ? 'span' : 'ChevronRightIcon'\" :class=\"cx('nodeToggleIcon')\" v-bind=\"getPTOptions('nodeToggleIcon')\" />\n </template>\n </button>\n <Checkbox v-if=\"checkboxMode\" :modelValue=\"checked\" :binary=\"true\" :indeterminate=\"partialChecked\" :class=\"cx('nodeCheckbox')\" :tabindex=\"-1\" :unstyled=\"unstyled\" :pt=\"getPTOptions('nodeCheckbox')\" :data-p-partialchecked=\"partialChecked\">\n <template #icon=\"slotProps\">\n <component v-if=\"templates['checkboxicon']\" :is=\"templates['checkboxicon']\" :checked=\"slotProps.checked\" :partialChecked=\"partialChecked\" :class=\"slotProps.class\" />\n </template>\n </Checkbox>\n <component v-if=\"templates['nodeicon']\" :is=\"templates['nodeicon']\" :node=\"node\" :class=\"[cx('nodeIcon')]\" v-bind=\"getPTOptions('nodeIcon')\"></component>\n <span v-else :class=\"[cx('nodeIcon'), node.icon]\" v-bind=\"getPTOptions('nodeIcon')\"></span>\n <span :class=\"cx('nodeLabel')\" v-bind=\"getPTOptions('nodeLabel')\" @keydown.stop>\n <component v-if=\"templates[node.type] || templates['default']\" :is=\"templates[node.type] || templates['default']\" :node=\"node\" :selected=\"checkboxMode ? checked : selected\" />\n <template v-else>{{ label(node) }}</template>\n </span>\n </div>\n <ul v-if=\"hasChildren && expanded\" :class=\"cx('nodeChildren')\" role=\"group\" v-bind=\"ptm('nodeChildren')\">\n <TreeNode\n v-for=\"childNode of node.children\"\n :key=\"childNode.key\"\n :node=\"childNode\"\n :templates=\"templates\"\n :level=\"level + 1\"\n :loadingMode=\"loadingMode\"\n :expandedKeys=\"expandedKeys\"\n @node-toggle=\"onChildNodeToggle\"\n @node-click=\"onChildNodeClick\"\n :selectionMode=\"selectionMode\"\n :selectionKeys=\"selectionKeys\"\n @checkbox-change=\"propagateUp\"\n :unstyled=\"unstyled\"\n :pt=\"pt\"\n />\n </ul>\n </li>\n</template>\n\n<script>\nimport { find, findSingle, getAttribute } from '@primeuix/utils/dom';\nimport BaseComponent from '@primevue/core/basecomponent';\nimport CheckIcon from '@primevue/icons/check';\nimport ChevronDownIcon from '@primevue/icons/chevrondown';\nimport ChevronRightIcon from '@primevue/icons/chevronright';\nimport MinusIcon from '@primevue/icons/minus';\nimport SpinnerIcon from '@primevue/icons/spinner';\nimport Checkbox from 'primevue/checkbox';\nimport Ripple from 'primevue/ripple';\n\nexport default {\n name: 'TreeNode',\n hostName: 'Tree',\n extends: BaseComponent,\n emits: ['node-toggle', 'node-click', 'checkbox-change'],\n props: {\n node: {\n type: null,\n default: null\n },\n expandedKeys: {\n type: null,\n default: null\n },\n loadingMode: {\n type: String,\n default: 'mask'\n },\n selectionKeys: {\n type: null,\n default: null\n },\n selectionMode: {\n type: String,\n default: null\n },\n templates: {\n type: null,\n default: null\n },\n level: {\n type: Number,\n default: null\n },\n index: null\n },\n nodeTouched: false,\n toggleClicked: false,\n mounted() {\n this.setAllNodesTabIndexes();\n },\n methods: {\n toggle() {\n this.$emit('node-toggle', this.node);\n this.toggleClicked = true;\n },\n label(node) {\n return typeof node.label === 'function' ? node.label() : node.label;\n },\n onChildNodeToggle(node) {\n this.$emit('node-toggle', node);\n },\n getPTOptions(key) {\n return this.ptm(key, {\n context: {\n index: this.index,\n expanded: this.expanded,\n selected: this.selected,\n checked: this.checked,\n leaf: this.leaf\n }\n });\n },\n onClick(event) {\n if (this.toggleClicked || getAttribute(event.target, '[data-pc-section=\"nodetogglebutton\"]') || getAttribute(event.target.parentElement, '[data-pc-section=\"nodetogglebutton\"]')) {\n this.toggleClicked = false;\n\n return;\n }\n\n if (this.isCheckboxSelectionMode()) {\n this.toggleCheckbox();\n } else {\n this.$emit('node-click', {\n originalEvent: event,\n nodeTouched: this.nodeTouched,\n node: this.node\n });\n }\n\n this.nodeTouched = false;\n },\n onChildNodeClick(event) {\n this.$emit('node-click', event);\n },\n onTouchEnd() {\n this.nodeTouched = true;\n },\n onKeyDown(event) {\n if (!this.isSameNode(event)) return;\n\n switch (event.code) {\n case 'Tab':\n this.onTabKey(event);\n\n break;\n\n case 'ArrowDown':\n this.onArrowDown(event);\n\n break;\n\n case 'ArrowUp':\n this.onArrowUp(event);\n\n break;\n\n case 'ArrowRight':\n this.onArrowRight(event);\n\n break;\n\n case 'ArrowLeft':\n this.onArrowLeft(event);\n\n break;\n\n case 'Enter':\n case 'NumpadEnter':\n case 'Space':\n this.onEnterKey(event);\n\n break;\n\n default:\n break;\n }\n },\n onArrowDown(event) {\n const nodeElement = event.target.getAttribute('data-pc-section') === 'nodetogglebutton' ? event.target.closest('[role=\"treeitem\"]') : event.target;\n const listElement = nodeElement.children[1];\n\n if (listElement) {\n this.focusRowChange(nodeElement, listElement.children[0]);\n } else {\n if (nodeElement.nextElementSibling) {\n this.focusRowChange(nodeElement, nodeElement.nextElementSibling);\n } else {\n let nextSiblingAncestor = this.findNextSiblingOfAncestor(nodeElement);\n\n if (nextSiblingAncestor) {\n this.focusRowChange(nodeElement, nextSiblingAncestor);\n }\n }\n }\n\n event.preventDefault();\n },\n onArrowUp(event) {\n const nodeElement = event.target;\n\n if (nodeElement.previousElementSibling) {\n this.focusRowChange(nodeElement, nodeElement.previousElementSibling, this.findLastVisibleDescendant(nodeElement.previousElementSibling));\n } else {\n let parentNodeElement = this.getParentNodeElement(nodeElement);\n\n if (parentNodeElement) {\n this.focusRowChange(nodeElement, parentNodeElement);\n }\n }\n\n event.preventDefault();\n },\n onArrowRight(event) {\n if (this.leaf || this.expanded) return;\n\n event.currentTarget.tabIndex = -1;\n\n this.$emit('node-toggle', this.node);\n this.$nextTick(() => {\n this.onArrowDown(event);\n });\n },\n onArrowLeft(event) {\n const togglerElement = findSingle(event.currentTarget, '[data-pc-section=\"nodetogglebutton\"]');\n\n if (this.level === 0 && !this.expanded) {\n return false;\n }\n\n if (this.expanded && !this.leaf) {\n togglerElement.click();\n\n return false;\n }\n\n const target = this.findBeforeClickableNode(event.currentTarget);\n\n if (target) {\n this.focusRowChange(event.currentTarget, target);\n }\n },\n onEnterKey(event) {\n this.setTabIndexForSelectionMode(event, this.nodeTouched);\n this.onClick(event);\n\n event.preventDefault();\n },\n onTabKey() {\n this.setAllNodesTabIndexes();\n },\n setAllNodesTabIndexes() {\n const nodes = find(this.$refs.currentNode.closest('[data-pc-section=\"rootchildren\"]'), '[role=\"treeitem\"]');\n\n const hasSelectedNode = [...nodes].some((node) => node.getAttribute('aria-selected') === 'true' || node.getAttribute('aria-checked') === 'true');\n\n [...nodes].forEach((node) => {\n node.tabIndex = -1;\n });\n\n if (hasSelectedNode) {\n const selectedNodes = [...nodes].filter((node) => node.getAttribute('aria-selected') === 'true' || node.getAttribute('aria-checked') === 'true');\n\n selectedNodes[0].tabIndex = 0;\n\n return;\n }\n\n [...nodes][0].tabIndex = 0;\n },\n setTabIndexForSelectionMode(event, nodeTouched) {\n if (this.selectionMode !== null) {\n const elements = [...find(this.$refs.currentNode.parentElement, '[role=\"treeitem\"]')];\n\n event.currentTarget.tabIndex = nodeTouched === false ? -1 : 0;\n\n if (elements.every((element) => element.tabIndex === -1)) {\n elements[0].tabIndex = 0;\n }\n }\n },\n focusRowChange(firstFocusableRow, currentFocusedRow, lastVisibleDescendant) {\n firstFocusableRow.tabIndex = '-1';\n currentFocusedRow.tabIndex = '0';\n\n this.focusNode(lastVisibleDescendant || currentFocusedRow);\n },\n findBeforeClickableNode(node) {\n const parentListElement = node.closest('ul').closest('li');\n\n if (parentListElement) {\n const prevNodeButton = findSingle(parentListElement, 'button');\n\n if (prevNodeButton && prevNodeButton.style.visibility !== 'hidden') {\n return parentListElement;\n }\n\n return this.findBeforeClickableNode(node.previousElementSibling);\n }\n\n return null;\n },\n toggleCheckbox() {\n let _selectionKeys = this.selectionKeys ? { ...this.selectionKeys } : {};\n const _check = !this.checked;\n\n this.propagateDown(this.node, _check, _selectionKeys);\n\n this.$emit('checkbox-change', {\n node: this.node,\n check: _check,\n selectionKeys: _selectionKeys\n });\n },\n propagateDown(node, check, selectionKeys) {\n if (check) selectionKeys[node.key] = { checked: true, partialChecked: false };\n else delete selectionKeys[node.key];\n\n if (node.children && node.children.length) {\n for (let child of node.children) {\n this.propagateDown(child, check, selectionKeys);\n }\n }\n },\n propagateUp(event) {\n let check = event.check;\n let _selectionKeys = { ...event.selectionKeys };\n let checkedChildCount = 0;\n let childPartialSelected = false;\n\n for (let child of this.node.children) {\n if (_selectionKeys[child.key] && _selectionKeys[child.key].checked) checkedChildCount++;\n else if (_selectionKeys[child.key] && _selectionKeys[child.key].partialChecked) childPartialSelected = true;\n }\n\n if (check && checkedChildCount === this.node.children.length) {\n _selectionKeys[this.node.key] = { checked: true, partialChecked: false };\n } else {\n if (!check) {\n delete _selectionKeys[this.node.key];\n }\n\n if (childPartialSelected || (checkedChildCount > 0 && checkedChildCount !== this.node.children.length)) _selectionKeys[this.node.key] = { checked: false, partialChecked: true };\n else delete _selectionKeys[this.node.key];\n }\n\n this.$emit('checkbox-change', {\n node: event.node,\n check: event.check,\n selectionKeys: _selectionKeys\n });\n },\n onChildCheckboxChange(event) {\n this.$emit('checkbox-change', event);\n },\n findNextSiblingOfAncestor(nodeElement) {\n let parentNodeElement = this.getParentNodeElement(nodeElement);\n\n if (parentNodeElement) {\n if (parentNodeElement.nextElementSibling) return parentNodeElement.nextElementSibling;\n else return this.findNextSiblingOfAncestor(parentNodeElement);\n } else {\n return null;\n }\n },\n findLastVisibleDescendant(nodeElement) {\n const childrenListElement = nodeElement.children[1];\n\n if (childrenListElement) {\n const lastChildElement = childrenListElement.children[childrenListElement.children.length - 1];\n\n return this.findLastVisibleDescendant(lastChildElement);\n } else {\n return nodeElement;\n }\n },\n getParentNodeElement(nodeElement) {\n const parentNodeElement = nodeElement.parentElement.parentElement;\n\n return getAttribute(parentNodeElement, 'role') === 'treeitem' ? parentNodeElement : null;\n },\n focusNode(element) {\n element.focus();\n },\n isCheckboxSelectionMode() {\n return this.selectionMode === 'checkbox';\n },\n isSameNode(event) {\n return event.currentTarget && (event.currentTarget.isSameNode(event.target) || event.currentTarget.isSameNode(event.target.closest('[role=\"treeitem\"]')));\n }\n },\n computed: {\n hasChildren() {\n return this.node.children && this.node.children.length > 0;\n },\n expanded() {\n return this.expandedKeys && this.expandedKeys[this.node.key] === true;\n },\n leaf() {\n return this.node.leaf === false ? false : !(this.node.children && this.node.children.length);\n },\n selectable() {\n return this.node.selectable === false ? false : this.selectionMode != null;\n },\n selected() {\n return this.selectionMode && this.selectionKeys ? this.selectionKeys[this.node.key] === true : false;\n },\n checkboxMode() {\n return this.selectionMode === 'checkbox' && this.node.selectable !== false;\n },\n checked() {\n return this.selectionKeys ? this.selectionKeys[this.node.key] && this.selectionKeys[this.node.key].checked : false;\n },\n partialChecked() {\n return this.selectionKeys ? this.selectionKeys[this.node.key] && this.selectionKeys[this.node.key].partialChecked : false;\n },\n ariaChecked() {\n return this.selectionMode === 'single' || this.selectionMode === 'multiple' ? this.selected : undefined;\n },\n ariaSelected() {\n return this.checkboxMode ? this.checked : undefined;\n }\n },\n components: {\n Checkbox,\n ChevronDownIcon,\n ChevronRightIcon,\n CheckIcon,\n MinusIcon,\n SpinnerIcon\n },\n directives: {\n ripple: Ripple\n }\n};\n</script>\n","<template>\n <li\n ref=\"currentNode\"\n :class=\"cx('node')\"\n role=\"treeitem\"\n :aria-label=\"label(node)\"\n :aria-selected=\"ariaSelected\"\n :aria-expanded=\"expanded\"\n :aria-setsize=\"node.children ? node.children.length : 0\"\n :aria-posinset=\"index + 1\"\n :aria-level=\"level\"\n :aria-checked=\"ariaChecked\"\n :tabindex=\"index === 0 ? 0 : -1\"\n @keydown=\"onKeyDown\"\n v-bind=\"level === 1 ? getPTOptions('node') : ptm('nodeChildren')\"\n >\n <div :class=\"cx('nodeContent')\" @click=\"onClick\" @touchend=\"onTouchEnd\" :style=\"node.style\" v-bind=\"getPTOptions('nodeContent')\" :data-p-selected=\"checkboxMode ? checked : selected\" :data-p-selectable=\"selectable\">\n <button v-ripple type=\"button\" :class=\"cx('nodeToggleButton')\" @click=\"toggle\" tabindex=\"-1\" aria-hidden=\"true\" v-bind=\"getPTOptions('nodeToggleButton')\">\n <template v-if=\"node.loading && loadingMode === 'icon'\">\n <!-- TODO: nodetogglericon deprecated since v4.0-->\n <component v-if=\"templates['nodetoggleicon'] || templates['nodetogglericon']\" :is=\"templates['nodetoggleicon'] || templates['nodetogglericon']\" :class=\"cx('nodeToggleIcon')\" />\n <SpinnerIcon v-else spin :class=\"cx('nodetogglericon')\" v-bind=\"ptm('nodeToggleIcon')\" />\n </template>\n <template v-else>\n <!-- TODO: togglericon deprecated since v4.0-->\n <component v-if=\"templates['nodetoggleicon'] || templates['togglericon']\" :is=\"templates['nodetoggleicon'] || templates['togglericon']\" :node=\"node\" :expanded=\"expanded\" :class=\"cx('nodeToggleIcon')\" />\n <component v-else-if=\"expanded\" :is=\"node.expandedIcon ? 'span' : 'ChevronDownIcon'\" :class=\"cx('nodeToggleIcon')\" v-bind=\"getPTOptions('nodeToggleIcon')\" />\n <component v-else :is=\"node.collapsedIcon ? 'span' : 'ChevronRightIcon'\" :class=\"cx('nodeToggleIcon')\" v-bind=\"getPTOptions('nodeToggleIcon')\" />\n </template>\n </button>\n <Checkbox v-if=\"checkboxMode\" :modelValue=\"checked\" :binary=\"true\" :indeterminate=\"partialChecked\" :class=\"cx('nodeCheckbox')\" :tabindex=\"-1\" :unstyled=\"unstyled\" :pt=\"getPTOptions('nodeCheckbox')\" :data-p-partialchecked=\"partialChecked\">\n <template #icon=\"slotProps\">\n <component v-if=\"templates['checkboxicon']\" :is=\"templates['checkboxicon']\" :checked=\"slotProps.checked\" :partialChecked=\"partialChecked\" :class=\"slotProps.class\" />\n </template>\n </Checkbox>\n <component v-if=\"templates['nodeicon']\" :is=\"templates['nodeicon']\" :node=\"node\" :class=\"[cx('nodeIcon')]\" v-bind=\"getPTOptions('nodeIcon')\"></component>\n <span v-else :class=\"[cx('nodeIcon'), node.icon]\" v-bind=\"getPTOptions('nodeIcon')\"></span>\n <span :class=\"cx('nodeLabel')\" v-bind=\"getPTOptions('nodeLabel')\" @keydown.stop>\n <component v-if=\"templates[node.type] || templates['default']\" :is=\"templates[node.type] || templates['default']\" :node=\"node\" :selected=\"checkboxMode ? checked : selected\" />\n <template v-else>{{ label(node) }}</template>\n </span>\n </div>\n <ul v-if=\"hasChildren && expanded\" :class=\"cx('nodeChildren')\" role=\"group\" v-bind=\"ptm('nodeChildren')\">\n <TreeNode\n v-for=\"childNode of node.children\"\n :key=\"childNode.key\"\n :node=\"childNode\"\n :templates=\"templates\"\n :level=\"level + 1\"\n :loadingMode=\"loadingMode\"\n :expandedKeys=\"expandedKeys\"\n @node-toggle=\"onChildNodeToggle\"\n @node-click=\"onChildNodeClick\"\n :selectionMode=\"selectionMode\"\n :selectionKeys=\"selectionKeys\"\n @checkbox-change=\"propagateUp\"\n :unstyled=\"unstyled\"\n :pt=\"pt\"\n />\n </ul>\n </li>\n</template>\n\n<script>\nimport { find, findSingle, getAttribute } from '@primeuix/utils/dom';\nimport BaseComponent from '@primevue/core/basecomponent';\nimport CheckIcon from '@primevue/icons/check';\nimport ChevronDownIcon from '@primevue/icons/chevrondown';\nimport ChevronRightIcon from '@primevue/icons/chevronright';\nimport MinusIcon from '@primevue/icons/minus';\nimport SpinnerIcon from '@primevue/icons/spinner';\nimport Checkbox from 'primevue/checkbox';\nimport Ripple from 'primevue/ripple';\n\nexport default {\n name: 'TreeNode',\n hostName: 'Tree',\n extends: BaseComponent,\n emits: ['node-toggle', 'node-click', 'checkbox-change'],\n props: {\n node: {\n type: null,\n default: null\n },\n expandedKeys: {\n type: null,\n default: null\n },\n loadingMode: {\n type: String,\n default: 'mask'\n },\n selectionKeys: {\n type: null,\n default: null\n },\n selectionMode: {\n type: String,\n default: null\n },\n templates: {\n type: null,\n default: null\n },\n level: {\n type: Number,\n default: null\n },\n index: null\n },\n nodeTouched: false,\n toggleClicked: false,\n mounted() {\n this.setAllNodesTabIndexes();\n },\n methods: {\n toggle() {\n this.$emit('node-toggle', this.node);\n this.toggleClicked = true;\n },\n label(node) {\n return typeof node.label === 'function' ? node.label() : node.label;\n },\n onChildNodeToggle(node) {\n this.$emit('node-toggle', node);\n },\n getPTOptions(key) {\n return this.ptm(key, {\n context: {\n index: this.index,\n expanded: this.expanded,\n selected: this.selected,\n checked: this.checked,\n leaf: this.leaf\n }\n });\n },\n onClick(event) {\n if (this.toggleClicked || getAttribute(event.target, '[data-pc-section=\"nodetogglebutton\"]') || getAttribute(event.target.parentElement, '[data-pc-section=\"nodetogglebutton\"]')) {\n this.toggleClicked = false;\n\n return;\n }\n\n if (this.isCheckboxSelectionMode()) {\n this.toggleCheckbox();\n } else {\n this.$emit('node-click', {\n originalEvent: event,\n nodeTouched: this.nodeTouched,\n node: this.node\n });\n }\n\n this.nodeTouched = false;\n },\n onChildNodeClick(event) {\n this.$emit('node-click', event);\n },\n onTouchEnd() {\n this.nodeTouched = true;\n },\n onKeyDown(event) {\n if (!this.isSameNode(event)) return;\n\n switch (event.code) {\n case 'Tab':\n this.onTabKey(event);\n\n break;\n\n case 'ArrowDown':\n this.onArrowDown(event);\n\n break;\n\n case 'ArrowUp':\n this.onArrowUp(event);\n\n break;\n\n case 'ArrowRight':\n this.onArrowRight(event);\n\n break;\n\n case 'ArrowLeft':\n this.onArrowLeft(event);\n\n break;\n\n case 'Enter':\n case 'NumpadEnter':\n case 'Space':\n this.onEnterKey(event);\n\n break;\n\n default:\n break;\n }\n },\n onArrowDown(event) {\n const nodeElement = event.target.getAttribute('data-pc-section') === 'nodetogglebutton' ? event.target.closest('[role=\"treeitem\"]') : event.target;\n const listElement = nodeElement.children[1];\n\n if (listElement) {\n this.focusRowChange(nodeElement, listElement.children[0]);\n } else {\n if (nodeElement.nextElementSibling) {\n this.focusRowChange(nodeElement, nodeElement.nextElementSibling);\n } else {\n let nextSiblingAncestor = this.findNextSiblingOfAncestor(nodeElement);\n\n if (nextSiblingAncestor) {\n this.focusRowChange(nodeElement, nextSiblingAncestor);\n }\n }\n }\n\n event.preventDefault();\n },\n onArrowUp(event) {\n const nodeElement = event.target;\n\n if (nodeElement.previousElementSibling) {\n this.focusRowChange(nodeElement, nodeElement.previousElementSibling, this.findLastVisibleDescendant(nodeElement.previousElementSibling));\n } else {\n let parentNodeElement = this.getParentNodeElement(nodeElement);\n\n if (parentNodeElement) {\n this.focusRowChange(nodeElement, parentNodeElement);\n }\n }\n\n event.preventDefault();\n },\n onArrowRight(event) {\n if (this.leaf || this.expanded) return;\n\n event.currentTarget.tabIndex = -1;\n\n this.$emit('node-toggle', this.node);\n this.$nextTick(() => {\n this.onArrowDown(event);\n });\n },\n onArrowLeft(event) {\n const togglerElement = findSingle(event.currentTarget, '[data-pc-section=\"nodetogglebutton\"]');\n\n if (this.level === 0 && !this.expanded) {\n return false;\n }\n\n if (this.expanded && !this.leaf) {\n togglerElement.click();\n\n return false;\n }\n\n const target = this.findBeforeClickableNode(event.currentTarget);\n\n if (target) {\n this.focusRowChange(event.currentTarget, target);\n }\n },\n onEnterKey(event) {\n this.setTabIndexForSelectionMode(event, this.nodeTouched);\n this.onClick(event);\n\n event.preventDefault();\n },\n onTabKey() {\n this.setAllNodesTabIndexes();\n },\n setAllNodesTabIndexes() {\n const nodes = find(this.$refs.currentNode.closest('[data-pc-section=\"rootchildren\"]'), '[role=\"treeitem\"]');\n\n const hasSelectedNode = [...nodes].some((node) => node.getAttribute('aria-selected') === 'true' || node.getAttribute('aria-checked') === 'true');\n\n [...nodes].forEach((node) => {\n node.tabIndex = -1;\n });\n\n if (hasSelectedNode) {\n const selectedNodes = [...nodes].filter((node) => node.getAttribute('aria-selected') === 'true' || node.getAttribute('aria-checked') === 'true');\n\n selectedNodes[0].tabIndex = 0;\n\n return;\n }\n\n [...nodes][0].tabIndex = 0;\n },\n setTabIndexForSelectionMode(event, nodeTouched) {\n if (this.selectionMode !== null) {\n const elements = [...find(this.$refs.currentNode.parentElement, '[role=\"treeitem\"]')];\n\n event.currentTarget.tabIndex = nodeTouched === false ? -1 : 0;\n\n if (elements.every((element) => element.tabIndex === -1)) {\n elements[0].tabIndex = 0;\n }\n }\n },\n focusRowChange(firstFocusableRow, currentFocusedRow, lastVisibleDescendant) {\n firstFocusableRow.tabIndex = '-1';\n currentFocusedRow.tabIndex = '0';\n\n this.focusNode(lastVisibleDescendant || currentFocusedRow);\n },\n findBeforeClickableNode(node) {\n const parentListElement = node.closest('ul').closest('li');\n\n if (parentListElement) {\n const prevNodeButton = findSingle(parentListElement, 'button');\n\n if (prevNodeButton && prevNodeButton.style.visibility !== 'hidden') {\n return parentListElement;\n }\n\n return this.findBeforeClickableNode(node.previousElementSibling);\n }\n\n return null;\n },\n toggleCheckbox() {\n let _selectionKeys = this.selectionKeys ? { ...this.selectionKeys } : {};\n const _check = !this.checked;\n\n this.propagateDown(this.node, _check, _selectionKeys);\n\n this.$emit('checkbox-change', {\n node: this.node,\n check: _check,\n selectionKeys: _selectionKeys\n });\n },\n propagateDown(node, check, selectionKeys) {\n if (check) selectionKeys[node.key] = { checked: true, partialChecked: false };\n else delete selectionKeys[node.key];\n\n if (node.children && node.children.length) {\n for (let child of node.children) {\n this.propagateDown(child, check, selectionKeys);\n }\n }\n },\n propagateUp(event) {\n let check = event.check;\n let _selectionKeys = { ...event.selectionKeys };\n let checkedChildCount = 0;\n let childPartialSelected = false;\n\n for (let child of this.node.children) {\n if (_selectionKeys[child.key] && _selectionKeys[child.key].checked) checkedChildCount++;\n else if (_selectionKeys[child.key] && _selectionKeys[child.key].partialChecked) childPartialSelected = true;\n }\n\n if (check && checkedChildCount === this.node.children.length) {\n _selectionKeys[this.node.key] = { checked: true, partialChecked: false };\n } else {\n if (!check) {\n delete _selectionKeys[this.node.key];\n }\n\n if (childPartialSelected || (checkedChildCount > 0 && checkedChildCount !== this.node.children.length)) _selectionKeys[this.node.key] = { checked: false, partialChecked: true };\n else delete _selectionKeys[this.node.key];\n }\n\n this.$emit('checkbox-change', {\n node: event.node,\n check: event.check,\n selectionKeys: _selectionKeys\n });\n },\n onChildCheckboxChange(event) {\n this.$emit('checkbox-change', event);\n },\n findNextSiblingOfAncestor(nodeElement) {\n let parentNodeElement = this.getParentNodeElement(nodeElement);\n\n if (parentNodeElement) {\n if (parentNodeElement.nextElementSibling) return parentNodeElement.nextElementSibling;\n else return this.findNextSiblingOfAncestor(parentNodeElement);\n } else {\n return null;\n }\n },\n findLastVisibleDescendant(nodeElement) {\n const childrenListElement = nodeElement.children[1];\n\n if (childrenListElement) {\n const lastChildElement = childrenListElement.children[childrenListElement.children.length - 1];\n\n return this.findLastVisibleDescendant(lastChildElement);\n } else {\n return nodeElement;\n }\n },\n getParentNodeElement(nodeElement) {\n const parentNodeElement = nodeElement.parentElement.parentElement;\n\n return getAttribute(parentNodeElement, 'role') === 'treeitem' ? parentNodeElement : null;\n },\n focusNode(element) {\n element.focus();\n },\n isCheckboxSelectionMode() {\n return this.selectionMode === 'checkbox';\n },\n isSameNode(event) {\n return event.currentTarget && (event.currentTarget.isSameNode(event.target) || event.currentTarget.isSameNode(event.target.closest('[role=\"treeitem\"]')));\n }\n },\n computed: {\n hasChildren() {\n return this.node.children && this.node.children.length > 0;\n },\n expanded() {\n return this.expandedKeys && this.expandedKeys[this.node.key] === true;\n },\n leaf() {\n return this.node.leaf === false ? false : !(this.node.children && this.node.children.length);\n },\n selectable() {\n return this.node.selectable === false ? false : this.selectionMode != null;\n },\n selected() {\n return this.selectionMode && this.selectionKeys ? this.selectionKeys[this.node.key] === true : false;\n },\n checkboxMode() {\n return this.selectionMode === 'checkbox' && this.node.selectable !== false;\n },\n checked() {\n return this.selectionKeys ? this.selectionKeys[this.node.key] && this.selectionKeys[this.node.key].checked : false;\n },\n partialChecked() {\n return this.selectionKeys ? this.selectionKeys[this.node.key] && this.selectionKeys[this.node.key].partialChecked : false;\n },\n ariaChecked() {\n return this.selectionMode === 'single' || this.selectionMode === 'multiple' ? this.selected : undefined;\n },\n ariaSelected() {\n return this.checkboxMode ? this.checked : undefined;\n }\n },\n components: {\n Checkbox,\n ChevronDownIcon,\n ChevronRightIcon,\n CheckIcon,\n MinusIcon,\n SpinnerIcon\n },\n directives: {\n ripple: Ripple\n }\n};\n</script>\n","<template>\n <div :class=\"cx('root')\" v-bind=\"ptmi('root')\">\n <template v-if=\"loading && loadingMode === 'mask'\">\n <div :class=\"cx('mask')\" v-bind=\"ptm('mask')\">\n <slot name=\"loadingicon\" :class=\"cx('loadingIcon')\">\n <i v-if=\"loadingIcon\" :class=\"[cx('loadingIcon'), 'pi-spin', loadingIcon]\" v-bind=\"ptm('loadingIcon')\" />\n <SpinnerIcon v-else spin :class=\"cx('loadingIcon')\" v-bind=\"ptm('loadingIcon')\" />\n </slot>\n </div>\n </template>\n <IconField v-if=\"filter\" :unstyled=\"unstyled\" :pt=\"ptm('pcFilterContainer')\">\n <InputText v-model=\"filterValue\" autocomplete=\"off\" :class=\"cx('pcFilter')\" :placeholder=\"filterPlaceholder\" :unstyled=\"unstyled\" @keydown=\"onFilterKeydown\" :pt=\"ptm('pcFilter')\" />\n <InputIcon :unstyled=\"unstyled\" :pt=\"ptm('pcFilterIconContainer')\">\n <!--TODO: searchicon deprecated since v4.0-->\n <slot :name=\"$slots.filtericon ? 'filtericon' : 'searchicon'\" :class=\"cx('filterIcon')\">\n <SearchIcon :class=\"cx('filterIcon')\" v-bind=\"ptm('filterIcon')\" />\n </slot>\n </InputIcon>\n </IconField>\n <div :class=\"cx('wrapper')\" :style=\"{ maxHeight: scrollHeight }\" v-bind=\"ptm('wrapper')\">\n <ul :class=\"cx('rootChildren')\" role=\"tree\" :aria-labelledby=\"ariaLabelledby\" :aria-label=\"ariaLabel\" v-bind=\"ptm('rootChildren')\">\n <TreeNode\n v-for=\"(node, index) of valueToRender\"\n :key=\"node.key\"\n :node=\"node\"\n :templates=\"$slots\"\n :level=\"level + 1\"\n :index=\"index\"\n :expandedKeys=\"d_expandedKeys\"\n @node-toggle=\"onNodeToggle\"\n @node-click=\"onNodeClick\"\n :selectionMode=\"selectionMode\"\n :selectionKeys=\"selectionKeys\"\n @checkbox-change=\"onCheckboxChange\"\n :loadingMode=\"loadingMode\"\n :unstyled=\"unstyled\"\n :pt=\"pt\"\n ></TreeNode>\n </ul>\n </div>\n </div>\n</template>\n\n<script>\nimport { resolveFieldData } from '@primeuix/utils/object';\nimport SearchIcon from '@primevue/icons/search';\nimport SpinnerIcon from '@primevue/icons/spinner';\nimport IconField from 'primevue/iconfield';\nimport InputIcon from 'primevue/inputicon';\nimport InputText from 'primevue/inputtext';\nimport BaseTree from './BaseTree.vue';\nimport TreeNode from './TreeNode.vue';\n\nexport default {\n name: 'Tree',\n extends: BaseTree,\n inheritAttrs: false,\n emits: ['node-expand', 'node-collapse', 'update:expandedKeys', 'update:selectionKeys', 'node-select', 'node-unselect', 'filter'],\n data() {\n return {\n d_expandedKeys: this.expandedKeys || {},\n filterValue: null\n };\n },\n watch: {\n expandedKeys(newValue) {\n this.d_expandedKeys = newValue;\n }\n },\n methods: {\n onNodeToggle(node) {\n const key = node.key;\n\n if (this.d_expandedKeys[key]) {\n delete this.d_expandedKeys[key];\n this.$emit('node-collapse', node);\n } else {\n this.d_expandedKeys[key] = true;\n this.$emit('node-expand', node);\n }\n\n this.d_expandedKeys = { ...this.d_expandedKeys };\n this.$emit('update:expandedKeys', this.d_expandedKeys);\n },\n onNodeClick(event) {\n if (this.selectionMode != null && event.node.selectable !== false) {\n const metaSelection = event.nodeTouched ? false : this.metaKeySelection;\n const _selectionKeys = metaSelection ? this.handleSelectionWithMetaKey(event) : this.handleSelectionWithoutMetaKey(event);\n\n this.$emit('update:selectionKeys', _selectionKeys);\n }\n },\n onCheckboxChange(event) {\n this.$emit('update:selectionKeys', event.selectionKeys);\n\n if (event.check) this.$emit('node-select', event.node);\n else this.$emit('node-unselect', event.node);\n },\n handleSelectionWithMetaKey(event) {\n const originalEvent = event.originalEvent;\n const node = event.node;\n const metaKey = originalEvent.metaKey || originalEvent.ctrlKey;\n const selected = this.isNodeSelected(node);\n let _selectionKeys;\n\n if (selected && metaKey) {\n if (this.isSingleSelectionMode()) {\n _selectionKeys = {};\n } else {\n _selectionKeys = { ...this.selectionKeys };\n delete _selectionKeys[node.key];\n }\n\n this.$emit('node-unselect', node);\n } else {\n if (this.isSingleSelectionMode()) {\n _selectionKeys = {};\n } else if (this.isMultipleSelectionMode()) {\n _selectionKeys = !metaKey ? {} : this.selectionKeys ? { ...this.selectionKeys } : {};\n }\n\n _selectionKeys[node.key] = true;\n this.$emit('node-select', node);\n }\n\n return _selectionKeys;\n },\n handleSelectionWithoutMetaKey(event) {\n const node = event.node;\n const selected = this.isNodeSelected(node);\n let _selectionKeys;\n\n if (this.isSingleSelectionMode()) {\n if (selected) {\n _selectionKeys = {};\n this.$emit('node-unselect', node);\n } else {\n _selectionKeys = {};\n _selectionKeys[node.key] = true;\n this.$emit('node-select', node);\n }\n } else {\n if (selected) {\n _selectionKeys = { ...this.selectionKeys };\n delete _selectionKeys[node.key];\n\n this.$emit('node-unselect', node);\n } else {\n _selectionKeys = this.selectionKeys ? { ...this.selectionKeys } : {};\n _selectionKeys[node.key] = true;\n\n this.$emit('node-select', node);\n }\n }\n\n return _selectionKeys;\n },\n isSingleSelectionMode() {\n return this.selectionMode === 'single';\n },\n isMultipleSelectionMode() {\n return this.selectionMode === 'multiple';\n },\n isNodeSelected(node) {\n return this.selectionMode && this.selectionKeys ? this.selectionKeys[node.key] === true : false;\n },\n isChecked(node) {\n return this.selectionKeys ? this.selectionKeys[node.key] && this.selectionKeys[node.key].checked : false;\n },\n isNodeLeaf(node) {\n return node.leaf === false ? false : !(node.children && node.children.length);\n },\n onFilterKeydown(event) {\n if (event.code === 'Enter' || event.code === 'NumpadEnter') {\n event.preventDefault();\n }\n\n this.$emit('filter', { originalEvent: event, value: event.target.value });\n },\n findFilteredNodes(node, paramsWithoutNode) {\n if (node) {\n let matched = false;\n\n if (node.children) {\n let childNodes = [...node.children];\n\n node.children = [];\n\n for (let childNode of childNodes) {\n let copyChildNode = { ...childNode };\n\n if (this.isFilterMatched(copyChildNode, paramsWithoutNode)) {\n matched = true;\n node.children.push(copyChildNode);\n }\n }\n }\n\n if (matched) {\n return true;\n }\n }\n },\n isFilterMatched(node, { searchFields, filterText, strict }) {\n let matched = false;\n\n for (let field of searchFields) {\n let fieldValue = String(resolveFieldData(node, field)).toLocaleLowerCase(this.filterLocale);\n\n if (fieldValue.indexOf(filterText) > -1) {\n matched = true;\n }\n }\n\n if (!matched || (strict && !this.isNodeLeaf(node))) {\n matched = this.findFilteredNodes(node, { searchFields, filterText, strict }) || matched;\n }\n\n return matched;\n }\n },\n computed: {\n filteredValue() {\n let filteredNodes = [];\n const searchFields = this.filterBy.split(',');\n const filterText = this.filterValue.trim().toLocaleLowerCase(this.filterLocale);\n const strict = this.filterMode === 'strict';\n\n for (let node of this.value) {\n let _node = { ...node };\n let paramsWithoutNode = { searchFields, filterText, strict };\n\n if (\n (strict && (this.findFilteredNodes(_node, paramsWithoutNode) || this.isFilterMatched(_node, paramsWithoutNode))) ||\n (!strict && (this.isFilterMatched(_node, paramsWithoutNode) || this.findFilteredNodes(_node, paramsWithoutNode)))\n ) {\n filteredNodes.push(_node);\n }\n }\n\n return filteredNodes;\n },\n valueToRender() {\n if (this.filterValue && this.filterValue.trim().length > 0) return this.filteredValue;\n else return this.value;\n }\n },\n components: {\n TreeNode,\n InputText,\n InputIcon,\n IconField,\n SearchIcon,\n SpinnerIcon\n }\n};\n</script>\n","<template>\n <div :class=\"cx('root')\" v-bind=\"ptmi('root')\">\n <template v-if=\"loading && loadingMode === 'mask'\">\n <div :class=\"cx('mask')\" v-bind=\"ptm('mask')\">\n <slot name=\"loadingicon\" :class=\"cx('loadingIcon')\">\n <i v-if=\"loadingIcon\" :class=\"[cx('loadingIcon'), 'pi-spin', loadingIcon]\" v-bind=\"ptm('loadingIcon')\" />\n <SpinnerIcon v-else spin :class=\"cx('loadingIcon')\" v-bind=\"ptm('loadingIcon')\" />\n </slot>\n </div>\n </template>\n <IconField v-if=\"filter\" :unstyled=\"unstyled\" :pt=\"ptm('pcFilterContainer')\">\n <InputText v-model=\"filterValue\" autocomplete=\"off\" :class=\"cx('pcFilter')\" :placeholder=\"filterPlaceholder\" :unstyled=\"unstyled\" @keydown=\"onFilterKeydown\" :pt=\"ptm('pcFilter')\" />\n <InputIcon :unstyled=\"unstyled\" :pt=\"ptm('pcFilterIconContainer')\">\n <!--TODO: searchicon deprecated since v4.0-->\n <slot :name=\"$slots.filtericon ? 'filtericon' : 'searchicon'\" :class=\"cx('filterIcon')\">\n <SearchIcon :class=\"cx('filterIcon')\" v-bind=\"ptm('filterIcon')\" />\n </slot>\n </InputIcon>\n </IconField>\n <div :class=\"cx('wrapper')\" :style=\"{ maxHeight: scrollHeight }\" v-bind=\"ptm('wrapper')\">\n <ul :class=\"cx('rootChildren')\" role=\"tree\" :aria-labelledby=\"ariaLabelledby\" :aria-label=\"ariaLabel\" v-bind=\"ptm('rootChildren')\">\n <TreeNode\n v-for=\"(node, index) of valueToRender\"\n :key=\"node.key\"\n :node=\"node\"\n :templates=\"$slots\"\n :level=\"level + 1\"\n :index=\"index\"\n :expandedKeys=\"d_expandedKeys\"\n @node-toggle=\"onNodeToggle\"\n @node-click=\"onNodeClick\"\n :selectionMode=\"selectionMode\"\n :selectionKeys=\"selectionKeys\"\n @checkbox-change=\"onCheckboxChange\"\n :loadingMode=\"loadingMode\"\n :unstyled=\"unstyled\"\n :pt=\"pt\"\n ></TreeNode>\n </ul>\n </div>\n </div>\n</template>\n\n<script>\nimport { resolveFieldData } from '@primeuix/utils/object';\nimport SearchIcon from '@primevue/icons/search';\nimport SpinnerIcon from '@primevue/icons/spinner';\nimport IconField from 'primevue/iconfield';\nimport InputIcon from 'primevue/inputicon';\nimport InputText from 'primevue/inputtext';\nimport BaseTree from './BaseTree.vue';\nimport TreeNode from './TreeNode.vue';\n\nexport default {\n name: 'Tree',\n extends: BaseTree,\n inheritAttrs: false,\n emits: ['node-expand', 'node-collapse', 'update:expandedKeys', 'update:selectionKeys', 'node-select', 'node-unselect', 'filter'],\n data() {\n return {\n d_expandedKeys: this.expandedKeys || {},\n filterValue: null\n };\n },\n watch: {\n expandedKeys(newValue) {\n this.d_expandedKeys = newValue;\n }\n },\n methods: {\n onNodeToggle(node) {\n const key = node.key;\n\n if (this.d_expandedKeys[key]) {\n delete this.d_expandedKeys[key];\n this.$emit('node-collapse', node);\n } else {\n this.d_expandedKeys[key] = true;\n this.$emit('node-expand', node);\n }\n\n this.d_expandedKeys = { ...this.d_expandedKeys };\n this.$emit('update:expandedKeys', this.d_expandedKeys);\n },\n onNodeClick(event) {\n if (this.selectionMode != null && event.node.selectable !== false) {\n const metaSelection = event.nodeTouched ? false : this.metaKeySelection;\n const _selectionKeys = metaSelection ? this.handleSelectionWithMetaKey(event) : this.handleSelectionWithoutMetaKey(event);\n\n this.$emit('update:selectionKeys', _selectionKeys);\n }\n },\n onCheckboxChange(event) {\n this.$emit('update:selectionKeys', event.selectionKeys);\n\n if (event.check) this.$emit('node-select', event.node);\n else this.$emit('node-unselect', event.node);\n },\n handleSelectionWithMetaKey(event) {\n const originalEvent = event.originalEvent;\n const node = event.node;\n const metaKey = originalEvent.metaKey || originalEvent.ctrlKey;\n const selected = this.isNodeSelected(node);\n let _selectionKeys;\n\n if (selected && metaKey) {\n if (this.isSingleSelectionMode()) {\n _selectionKeys = {};\n } else {\n _selectionKeys = { ...this.selectionKeys };\n delete _selectionKeys[node.key];\n }\n\n this.$emit('node-unselect', node);\n } else {\n if (this.isSingleSelectionMode()) {\n _selectionKeys = {};\n } else if (this.isMultipleSelectionMode()) {\n _selectionKeys = !metaKey ? {} : this.selectionKeys ? { ...this.selectionKeys } : {};\n }\n\n _selectionKeys[node.key] = true;\n this.$emit('node-select', node);\n }\n\n return _selectionKeys;\n },\n handleSelectionWithoutMetaKey(event) {\n const node = event.node;\n const selected = this.isNodeSelected(node);\n let _selectionKeys;\n\n if (this.isSingleSelectionMode()) {\n if (selected) {\n _selectionKeys = {};\n this.$emit('node-unselect', node);\n } else {\n _selectionKeys = {};\n _selectionKeys[node.key] = true;\n this.$emit('node-select', node);\n }\n } else {\n if (selected) {\n _selectionKeys = { ...this.selectionKeys };\n delete _selectionKeys[node.key];\n\n this.$emit('node-unselect', node);\n } else {\n _selectionKeys = this.selectionKeys ? { ...this.selectionKeys } : {};\n _selectionKeys[node.key] = true;\n\n this.$emit('node-select', node);\n }\n }\n\n return _selectionKeys;\n },\n isSingleSelectionMode() {\n return this.selectionMode === 'single';\n },\n isMultipleSelectionMode() {\n return this.selectionMode === 'multiple';\n },\n isNodeSelected(node) {\n return this.selectionMode && this.selectionKeys ? this.selectionKeys[node.key] === true : false;\n },\n isChecked(node) {\n return this.selectionKeys ? this.selectionKeys[node.key] && this.selectionKeys[node.key].checked : false;\n },\n isNodeLeaf(node) {\n return node.leaf === false ? false : !(node.children && node.children.length);\n },\n onFilterKeydown(event) {\n if (event.code === 'Enter' || event.code === 'NumpadEnter') {\n event.preventDefault();\n }\n\n this.$emit('filter', { originalEvent: event, value: event.target.value });\n },\n findFilteredNodes(node, paramsWithoutNode) {\n if (node) {\n let matched = false;\n\n if (node.children) {\n let childNodes = [...node.children];\n\n node.children = [];\n\n for (let childNode of childNodes) {\n let copyChildNode = { ...childNode };\n\n if (this.isFilterMatched(copyChildNode, paramsWithoutNode)) {\n matched = true;\n node.children.push(copyChildNode);\n }\n }\n }\n\n if (matched) {\n return true;\n }\n }\n },\n isFilterMatched(node, { searchFields, filterText, strict }) {\n let matched = false;\n\n for (let field of searchFields) {\n let fieldValue = String(resolveFieldData(node, field)).toLocaleLowerCase(this.filterLocale);\n\n if (fieldValue.indexOf(filterText) > -1) {\n matched = true;\n }\n }\n\n if (!matched || (strict && !this.isNodeLeaf(node))) {\n matched = this.findFilteredNodes(node, { searchFields, filterText, strict }) || matched;\n }\n\n return matched;\n }\n },\n computed: {\n filteredValue() {\n let filteredNodes = [];\n const searchFields = this.filterBy.split(',');\n const filterText = this.filterValue.trim().toLocaleLowerCase(this.filterLocale);\n const strict = this.filterMode === 'strict';\n\n for (let node of this.value) {\n let _node = { ...node };\n let paramsWithoutNode = { searchFields, filterText, strict };\n\n if (\n (strict && (this.findFilteredNodes(_node, paramsWithoutNode) || this.isFilterMatched(_node, paramsWithoutNode))) ||\n (!strict && (this.isFilterMatched(_node, paramsWithoutNode) || this.findFilteredNodes(_node, paramsWithoutNode)))\n ) {\n filteredNodes.push(_node);\n }\n }\n\n return filteredNodes;\n },\n valueToRender() {\n if (this.filterValue && this.filterValue.trim().length > 0) return this.filteredValue;\n else return this.value;\n }\n },\n components: {\n TreeNode,\n InputText,\n InputIcon,\n IconField,\n SearchIcon,\n SpinnerIcon\n }\n};\n</script>\n"],"names":["name","BaseComponent","props","value","type","expandedKeys","selectionKeys","selectionMode","String","metaKeySelection","Boolean","loading","loadingIcon","undefined","loadingMode","filter","filterBy","filterMode","filterPlaceholder","filterLocale","highlightOnSelect","scrollHeight","level","Number","ariaLabelledby","ariaLabel","style","TreeStyle","provide","$pcTree","$parentInstance","hostName","emits","node","templates","index","nodeTouched","toggleClicked","mounted","setAllNodesTabIndexes","methods","toggle","$emit","label","onChildNodeToggle","getPTOptions","key","ptm","context","expanded","selected","checked","leaf","onClick","event","getAttribute","target","parentElement","isCheckboxSelectionMode","toggleCheckbox","originalEvent","onChildNodeClick","onTouchEnd","onKeyDown","isSameNode","code","onTabKey","onArrowDown","onArrowUp","onArrowRight","onArrowLeft","onEnterKey","nodeElement","closest","listElement","children","focusRowChange","nextElementSibling","nextSiblingAncestor","findNextSiblingOfAncestor","preventDefault","previousElementSibling","findLastVisibleDescendant","parentNodeElement","getParentNodeElement","_this","currentTarget","tabIndex","$nextTick","togglerElement","findSingle","click","findBeforeClickableNode","setTabIndexForSelectionMode","nodes","find","$refs","currentNode","hasSelectedNode","_toConsumableArray","some","forEach","selectedNodes","elements","every","element","firstFocusableRow","currentFocusedRow","lastVisibleDescendant","focusNode","parentListElement","prevNodeButton","visibility","_selectionKeys","_objectSpread","_check","propagateDown","check","partialChecked","length","_iterator","_createForOfIteratorHelper","_step","s","n","done","child","err","e","f","propagateUp","checkedChildCount","childPartialSelected","_iterator2","_step2","onChildCheckboxChange","childrenListElement","lastChildElement","focus","computed","hasChildren","selectable","checkboxMode","ariaChecked","ariaSelected","components","Checkbox","ChevronDownIcon","ChevronRightIcon","CheckIcon","MinusIcon","SpinnerIcon","directives","ripple","Ripple","_openBlock","_createElementBlock","_mergeProps","ref","_ctx","cx","role","$options","$props","tabindex","onKeydown","apply","arguments","_createElementVNode","onTouchend","_withDirectives","_Fragment","_createBlock","_resolveDynamicComponent","_component_SpinnerIcon","spin","expandedIcon","collapsedIcon","_component_Checkbox","modelValue","binary","indeterminate","unstyled","pt","icon","_withCtx","slotProps","_normalizeClass","_createTextVNode","_toDisplayString","_renderList","childNode","_component_TreeNode","onNodeToggle","onNodeClick","onCheckboxChange","BaseTree","inheritAttrs","data","d_expandedKeys","filterValue","watch","newValue","metaSelection","handleSelectionWithMetaKey","handleSelectionWithoutMetaKey","metaKey","ctrlKey","isNodeSelected","isSingleSelectionMode","isMultipleSelectionMode","isChecked","isNodeLeaf","onFilterKeydown","findFilteredNodes","paramsWithoutNode","matched","childNodes","copyChildNode","isFilterMatched","push","_ref","searchFields","filterText","strict","field","fieldValue","resolveFieldData","toLocaleLowerCase","indexOf","filteredValue","filteredNodes","split","trim","_iterator3","_step3","_node","valueToRender","TreeNode","InputText","InputIcon","IconField","SearchIcon","ptmi","_renderSlot","$slots","_component_IconField","_createVNode","_component_InputText","$data","$event","autocomplete","placeholder","_component_InputIcon","filtericon","_component_SearchIcon"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.mjs","sources":["../../../src/tree/style/TreeStyle.js"],"sourcesContent":["import BaseStyle from '@primevue/core/base/style';\n\nconst theme = ({ dt }) => `\n.p-tree {\n background: ${dt('tree.background')};\n color: ${dt('tree.color')};\n padding: ${dt('tree.padding')};\n}\n\n.p-tree-root-children,\n.p-tree-node-children {\n display: flex;\n list-style-type: none;\n flex-direction: column;\n margin: 0;\n gap: ${dt('tree.gap')};\n}\n\n.p-tree-root-children {\n padding: ${dt('tree.gap')} 0 0 0;\n}\n\n.p-tree-node-children {\n padding: ${dt('tree.gap')} 0 0 ${dt('tree.indent')};\n}\n\n.p-tree-node {\n padding: 0;\n outline: 0 none;\n}\n\n.p-tree-node-content {\n border-radius: ${dt('tree.node.border.radius')};\n padding: ${dt('tree.node.padding')};\n display: flex;\n align-items: center;\n outline-color: transparent;\n color: ${dt('tree.node.color')};\n gap: ${dt('tree.node.gap')};\n transition: background ${dt('tree.transition.duration')}, color ${dt('tree.transition.duration')}, outline-color ${dt('tree.transition.duration')}, box-shadow ${dt('tree.transition.duration')};\n}\n\n.p-tree-node:focus-visible > .p-tree-node-content {\n box-shadow: ${dt('tree.node.focus.ring.shadow')};\n outline: ${dt('tree.node.focus.ring.width')} ${dt('tree.node.focus.ring.style')} ${dt('tree.node.focus.ring.color')};\n outline-offset: ${dt('tree.node.focus.ring.offset')};\n}\n\n.p-tree-node-content.p-tree-node-selectable:not(.p-tree-node-selected):hover {\n background: ${dt('tree.node.hover.background')};\n color: ${dt('tree.node.hover.color')};\n}\n\n.p-tree-node-content.p-tree-node-selectable:not(.p-tree-node-selected):hover .p-tree-node-icon {\n color: ${dt('tree.node.icon.hover.color')};\n}\n\n.p-tree-node-content.p-tree-node-selected {\n background: ${dt('tree.node.selected.background')};\n color: ${dt('tree.node.selected.color')};\n}\n\n.p-tree-node-content.p-tree-node-selected .p-tree-node-toggle-button {\n color: inherit;\n}\n\n.p-tree-node-toggle-button {\n cursor: pointer;\n user-select: none;\n display: inline-flex;\n align-items: center;\n justify-content: center;\n overflow: hidden;\n position: relative;\n flex-shrink: 0;\n width: ${dt('tree.node.toggle.button.size')};\n height: ${dt('tree.node.toggle.button.size')};\n color: ${dt('tree.node.toggle.button.color')};\n border: 0 none;\n background: transparent;\n border-radius: ${dt('tree.node.toggle.button.border.radius')};\n transition: background ${dt('tree.transition.duration')}, color ${dt('tree.transition.duration')}, border-color ${dt('tree.transition.duration')}, outline-color ${dt('tree.transition.duration')}, box-shadow ${dt('tree.transition.duration')};\n outline-color: transparent;\n padding: 0;\n}\n\n.p-tree-node-toggle-button:enabled:hover {\n background: ${dt('tree.node.toggle.button.hover.background')};\n color: ${dt('tree.node.toggle.button.hover.color')};\n}\n\n.p-tree-node-content.p-tree-node-selected .p-tree-node-toggle-button:hover {\n background: ${dt('tree.node.toggle.button.selected.hover.background')};\n color: ${dt('tree.node.toggle.button.selected.hover.color')};\n}\n\n.p-tree-root {\n overflow: auto;\n}\n\n.p-tree-node-selectable {\n cursor: pointer;\n user-select: none;\n}\n\n.p-tree-node-leaf > .p-tree-node-content .p-tree-node-toggle-button {\n visibility: hidden;\n}\n\n.p-tree-node-icon {\n color: ${dt('tree.node.icon.color')};\n transition: color ${dt('tree.transition.duration')};\n}\n\n.p-tree-node-content.p-tree-node-selected .p-tree-node-icon {\n color: ${dt('tree.node.icon.selected.color')};\n}\n\n.p-tree-filter-input {\n width: 100%;\n}\n\n.p-tree-loading {\n position: relative;\n height: 100%;\n}\n\n.p-tree-loading-icon {\n font-size: ${dt('tree.loading.icon.size')};\n width: ${dt('tree.loading.icon.size')};\n height: ${dt('tree.loading.icon.size')};\n}\n\n.p-tree .p-tree-mask {\n position: absolute;\n z-index: 1;\n display: flex;\n align-items: center;\n justify-content: center;\n}\n\n.p-tree-flex-scrollable {\n display: flex;\n flex: 1;\n height: 100%;\n flex-direction: column;\n}\n\n.p-tree-flex-scrollable .p-tree-root {\n flex: 1;\n}\n`;\n\nconst classes = {\n root: ({ props }) => [\n 'p-tree p-component',\n {\n 'p-tree-selectable': props.selectionMode != null,\n 'p-tree-loading': props.loading,\n 'p-tree-flex-scrollable': props.scrollHeight === 'flex'\n }\n ],\n mask: 'p-tree-mask p-overlay-mask',\n loadingIcon: 'p-tree-loading-icon',\n pcFilterInput: 'p-tree-filter-input',\n wrapper: 'p-tree-root', //TODO: discuss\n rootChildren: 'p-tree-root-children',\n node: ({ instance }) => ['p-tree-node', { 'p-tree-node-leaf': instance.leaf }],\n nodeContent: ({ instance }) => [\n 'p-tree-node-content',\n instance.node.styleClass,\n {\n 'p-tree-node-selectable': instance.selectable,\n 'p-tree-node-selected': instance.checkboxMode && instance.$parentInstance.highlightOnSelect ? instance.checked : instance.selected\n }\n ],\n nodeToggleButton: 'p-tree-node-toggle-button',\n nodeToggleIcon: 'p-tree-node-toggle-icon',\n nodeCheckbox: 'p-tree-node-checkbox',\n nodeIcon: 'p-tree-node-icon',\n nodeLabel: 'p-tree-node-label',\n nodeChildren: 'p-tree-node-children'\n};\n\nexport default BaseStyle.extend({\n name: 'tree',\n theme,\n classes\n});\n"],"names":["theme","_ref","dt","concat","classes","root","_ref2","props","selectionMode","loading","scrollHeight","mask","loadingIcon","pcFilterInput","wrapper","rootChildren","node","_ref3","instance","leaf","nodeContent","_ref4","styleClass","selectable","checkboxMode","$parentInstance","highlightOnSelect","checked","selected","nodeToggleButton","nodeToggleIcon","nodeCheckbox","nodeIcon","nodeLabel","nodeChildren","BaseStyle","extend","name"],"mappings":"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"}
1
+ {"version":3,"file":"index.mjs","sources":["../../../src/tree/style/TreeStyle.js"],"sourcesContent":["import BaseStyle from '@primevue/core/base/style';\n\nconst theme = ({ dt }) => `\n.p-tree {\n background: ${dt('tree.background')};\n color: ${dt('tree.color')};\n padding: ${dt('tree.padding')};\n}\n\n.p-tree-root-children,\n.p-tree-node-children {\n display: flex;\n list-style-type: none;\n flex-direction: column;\n margin: 0;\n gap: ${dt('tree.gap')};\n}\n\n.p-tree-root-children {\n padding: ${dt('tree.gap')} 0 0 0;\n}\n\n.p-tree-node-children {\n padding: ${dt('tree.gap')} 0 0 ${dt('tree.indent')};\n}\n\n.p-tree-node {\n padding: 0;\n outline: 0 none;\n}\n\n.p-tree-node-content {\n border-radius: ${dt('tree.node.border.radius')};\n padding: ${dt('tree.node.padding')};\n display: flex;\n align-items: center;\n outline-color: transparent;\n color: ${dt('tree.node.color')};\n gap: ${dt('tree.node.gap')};\n transition: background ${dt('tree.transition.duration')}, color ${dt('tree.transition.duration')}, outline-color ${dt('tree.transition.duration')}, box-shadow ${dt('tree.transition.duration')};\n}\n\n.p-tree-node:focus-visible > .p-tree-node-content {\n box-shadow: ${dt('tree.node.focus.ring.shadow')};\n outline: ${dt('tree.node.focus.ring.width')} ${dt('tree.node.focus.ring.style')} ${dt('tree.node.focus.ring.color')};\n outline-offset: ${dt('tree.node.focus.ring.offset')};\n}\n\n.p-tree-node-content.p-tree-node-selectable:not(.p-tree-node-selected):hover {\n background: ${dt('tree.node.hover.background')};\n color: ${dt('tree.node.hover.color')};\n}\n\n.p-tree-node-content.p-tree-node-selectable:not(.p-tree-node-selected):hover .p-tree-node-icon {\n color: ${dt('tree.node.icon.hover.color')};\n}\n\n.p-tree-node-content.p-tree-node-selected {\n background: ${dt('tree.node.selected.background')};\n color: ${dt('tree.node.selected.color')};\n}\n\n.p-tree-node-content.p-tree-node-selected .p-tree-node-toggle-button {\n color: inherit;\n}\n\n.p-tree-node-toggle-button {\n cursor: pointer;\n user-select: none;\n display: inline-flex;\n align-items: center;\n justify-content: center;\n overflow: hidden;\n position: relative;\n flex-shrink: 0;\n width: ${dt('tree.node.toggle.button.size')};\n height: ${dt('tree.node.toggle.button.size')};\n color: ${dt('tree.node.toggle.button.color')};\n border: 0 none;\n background: transparent;\n border-radius: ${dt('tree.node.toggle.button.border.radius')};\n transition: background ${dt('tree.transition.duration')}, color ${dt('tree.transition.duration')}, border-color ${dt('tree.transition.duration')}, outline-color ${dt('tree.transition.duration')}, box-shadow ${dt('tree.transition.duration')};\n outline-color: transparent;\n padding: 0;\n}\n\n.p-tree-node-toggle-button:enabled:hover {\n background: ${dt('tree.node.toggle.button.hover.background')};\n color: ${dt('tree.node.toggle.button.hover.color')};\n}\n\n.p-tree-node-content.p-tree-node-selected .p-tree-node-toggle-button:hover {\n background: ${dt('tree.node.toggle.button.selected.hover.background')};\n color: ${dt('tree.node.toggle.button.selected.hover.color')};\n}\n\n.p-tree-root {\n overflow: auto;\n}\n\n.p-tree-node-selectable {\n cursor: pointer;\n user-select: none;\n}\n\n.p-tree-node-leaf > .p-tree-node-content .p-tree-node-toggle-button {\n visibility: hidden;\n}\n\n.p-tree-node-icon {\n color: ${dt('tree.node.icon.color')};\n transition: color ${dt('tree.transition.duration')};\n}\n\n.p-tree-node-content.p-tree-node-selected .p-tree-node-icon {\n color: ${dt('tree.node.icon.selected.color')};\n}\n\n.p-tree-filter-input {\n width: 100%;\n}\n\n.p-tree-loading {\n position: relative;\n height: 100%;\n}\n\n.p-tree-loading-icon {\n font-size: ${dt('tree.loading.icon.size')};\n width: ${dt('tree.loading.icon.size')};\n height: ${dt('tree.loading.icon.size')};\n}\n\n.p-tree .p-tree-mask {\n position: absolute;\n z-index: 1;\n display: flex;\n align-items: center;\n justify-content: center;\n}\n\n.p-tree-flex-scrollable {\n display: flex;\n flex: 1;\n height: 100%;\n flex-direction: column;\n}\n\n.p-tree-flex-scrollable .p-tree-root {\n flex: 1;\n}\n`;\n\nconst classes = {\n root: ({ props }) => [\n 'p-tree p-component',\n {\n 'p-tree-selectable': props.selectionMode != null,\n 'p-tree-loading': props.loading,\n 'p-tree-flex-scrollable': props.scrollHeight === 'flex'\n }\n ],\n mask: 'p-tree-mask p-overlay-mask',\n loadingIcon: 'p-tree-loading-icon',\n pcFilterInput: 'p-tree-filter-input',\n wrapper: 'p-tree-root', //TODO: discuss\n rootChildren: 'p-tree-root-children',\n node: ({ instance }) => ['p-tree-node', { 'p-tree-node-leaf': instance.leaf }],\n nodeContent: ({ instance }) => [\n 'p-tree-node-content',\n instance.node.styleClass,\n {\n 'p-tree-node-selectable': instance.selectable,\n 'p-tree-node-selected': instance.checkboxMode && instance.$parentInstance.highlightOnSelect ? instance.checked : instance.selected\n }\n ],\n nodeToggleButton: 'p-tree-node-toggle-button',\n nodeToggleIcon: 'p-tree-node-toggle-icon',\n nodeCheckbox: 'p-tree-node-checkbox',\n nodeIcon: 'p-tree-node-icon',\n nodeLabel: 'p-tree-node-label',\n nodeChildren: 'p-tree-node-children'\n};\n\nexport default BaseStyle.extend({\n name: 'tree',\n theme,\n classes\n});\n"],"names":["theme","_ref","dt","concat","classes","root","_ref2","props","selectionMode","loading","scrollHeight","mask","loadingIcon","pcFilterInput","wrapper","rootChildren","node","_ref3","instance","leaf","nodeContent","_ref4","styleClass","selectable","checkboxMode","$parentInstance","highlightOnSelect","checked","selected","nodeToggleButton","nodeToggleIcon","nodeCheckbox","nodeIcon","nodeLabel","nodeChildren","BaseStyle","extend","name"],"mappings":"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"}
@@ -54,7 +54,7 @@ export default {
54
54
  },
55
55
  fluid: {
56
56
  type: Boolean,
57
- default: false
57
+ default: null
58
58
  },
59
59
  inputId: {
60
60
  type: String,
@@ -111,9 +111,10 @@
111
111
  </template>
112
112
 
113
113
  <script>
114
- import { ConnectedOverlayScrollHandler, UniqueComponentId } from '@primevue/core/utils';
115
- import { focus, getFirstFocusableElement, getLastFocusableElement, find, findSingle, getFocusableElements, addStyle, relativePosition, getOuterWidth, absolutePosition, isTouchDevice } from '@primeuix/utils/dom';
114
+ import { absolutePosition, addStyle, find, findSingle, focus, getFirstFocusableElement, getFocusableElements, getLastFocusableElement, getOuterWidth, isTouchDevice, relativePosition } from '@primeuix/utils/dom';
115
+ import { isEmpty } from '@primeuix/utils/object';
116
116
  import { ZIndex } from '@primeuix/utils/zindex';
117
+ import { ConnectedOverlayScrollHandler, UniqueComponentId } from '@primevue/core/utils';
117
118
  import ChevronDownIcon from '@primevue/icons/chevrondown';
118
119
  import Chip from 'primevue/chip';
119
120
  import OverlayEventBus from 'primevue/overlayeventbus';
@@ -127,6 +128,9 @@ export default {
127
128
  extends: BaseTreeSelect,
128
129
  inheritAttrs: false,
129
130
  emits: ['update:modelValue', 'before-show', 'before-hide', 'change', 'show', 'hide', 'node-select', 'node-unselect', 'node-expand', 'node-collapse', 'focus', 'blur'],
131
+ inject: {
132
+ $pcFluid: { default: null }
133
+ },
130
134
  data() {
131
135
  return {
132
136
  id: this.$attrs.id,
@@ -502,6 +506,9 @@ export default {
502
506
  },
503
507
  listId() {
504
508
  return this.id + '_list';
509
+ },
510
+ hasFluid() {
511
+ return isEmpty(this.fluid) ? !!this.$pcFluid : this.fluid;
505
512
  }
506
513
  },
507
514
  components: {