primevue 3.15.0 → 3.16.2

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 (387) hide show
  1. package/autocomplete/AutoComplete.d.ts +182 -38
  2. package/autocomplete/AutoComplete.vue +636 -342
  3. package/autocomplete/autocomplete.cjs.js +745 -416
  4. package/autocomplete/autocomplete.cjs.min.js +1 -1
  5. package/autocomplete/autocomplete.esm.js +747 -418
  6. package/autocomplete/autocomplete.esm.min.js +1 -1
  7. package/autocomplete/autocomplete.js +745 -416
  8. package/autocomplete/autocomplete.min.js +1 -1
  9. package/button/Button.vue +4 -1
  10. package/button/button.cjs.js +5 -1
  11. package/button/button.cjs.min.js +1 -1
  12. package/button/button.esm.js +5 -1
  13. package/button/button.esm.min.js +1 -1
  14. package/button/button.js +5 -1
  15. package/button/button.min.js +1 -1
  16. package/calendar/Calendar.d.ts +51 -12
  17. package/calendar/Calendar.vue +259 -114
  18. package/calendar/calendar.cjs.js +414 -220
  19. package/calendar/calendar.cjs.min.js +1 -1
  20. package/calendar/calendar.esm.js +415 -221
  21. package/calendar/calendar.esm.min.js +1 -1
  22. package/calendar/calendar.js +414 -220
  23. package/calendar/calendar.min.js +1 -1
  24. package/carousel/Carousel.vue +25 -0
  25. package/carousel/carousel.cjs.js +25 -0
  26. package/carousel/carousel.cjs.min.js +1 -1
  27. package/carousel/carousel.esm.js +25 -0
  28. package/carousel/carousel.esm.min.js +1 -1
  29. package/carousel/carousel.js +25 -0
  30. package/carousel/carousel.min.js +1 -1
  31. package/cascadeselect/CascadeSelect.d.ts +97 -17
  32. package/cascadeselect/CascadeSelect.vue +560 -135
  33. package/cascadeselect/CascadeSelectSub.vue +48 -129
  34. package/cascadeselect/cascadeselect.cjs.js +670 -306
  35. package/cascadeselect/cascadeselect.cjs.min.js +1 -1
  36. package/cascadeselect/cascadeselect.esm.js +672 -308
  37. package/cascadeselect/cascadeselect.esm.min.js +1 -1
  38. package/cascadeselect/cascadeselect.js +670 -306
  39. package/cascadeselect/cascadeselect.min.js +1 -1
  40. package/checkbox/Checkbox.d.ts +40 -4
  41. package/checkbox/Checkbox.vue +50 -13
  42. package/checkbox/checkbox.cjs.js +64 -23
  43. package/checkbox/checkbox.cjs.min.js +1 -1
  44. package/checkbox/checkbox.esm.js +65 -24
  45. package/checkbox/checkbox.esm.min.js +1 -1
  46. package/checkbox/checkbox.js +64 -23
  47. package/checkbox/checkbox.min.js +1 -1
  48. package/chips/Chips.d.ts +36 -12
  49. package/chips/Chips.vue +116 -22
  50. package/chips/chips.cjs.js +149 -37
  51. package/chips/chips.cjs.min.js +1 -1
  52. package/chips/chips.esm.js +150 -38
  53. package/chips/chips.esm.min.js +1 -1
  54. package/chips/chips.js +150 -39
  55. package/chips/chips.min.js +1 -1
  56. package/colorpicker/ColorPicker.d.ts +3 -6
  57. package/colorpicker/ColorPicker.vue +1 -5
  58. package/colorpicker/colorpicker.cjs.js +2 -7
  59. package/colorpicker/colorpicker.cjs.min.js +1 -1
  60. package/colorpicker/colorpicker.esm.js +2 -7
  61. package/colorpicker/colorpicker.esm.min.js +1 -1
  62. package/colorpicker/colorpicker.js +2 -7
  63. package/colorpicker/colorpicker.min.js +1 -1
  64. package/column/Column.d.ts +4 -0
  65. package/column/Column.vue +4 -0
  66. package/column/column.cjs.js +4 -0
  67. package/column/column.cjs.min.js +1 -1
  68. package/column/column.esm.js +4 -0
  69. package/column/column.esm.min.js +1 -1
  70. package/column/column.js +4 -0
  71. package/column/column.min.js +1 -1
  72. package/config/PrimeVue.d.ts +42 -0
  73. package/config/config.cjs.js +35 -4
  74. package/config/config.cjs.min.js +1 -1
  75. package/config/config.esm.js +35 -4
  76. package/config/config.esm.min.js +1 -1
  77. package/config/config.js +35 -4
  78. package/config/config.min.js +1 -1
  79. package/confirmdialog/ConfirmDialog.vue +4 -1
  80. package/confirmdialog/confirmdialog.cjs.js +6 -2
  81. package/confirmdialog/confirmdialog.cjs.min.js +1 -1
  82. package/confirmdialog/confirmdialog.esm.js +6 -2
  83. package/confirmdialog/confirmdialog.esm.min.js +1 -1
  84. package/confirmdialog/confirmdialog.js +6 -2
  85. package/confirmdialog/confirmdialog.min.js +1 -1
  86. package/contextmenu/ContextMenu.d.ts +1 -1
  87. package/contextmenu/ContextMenuSub.vue +3 -3
  88. package/contextmenu/contextmenu.cjs.js +14 -8
  89. package/contextmenu/contextmenu.cjs.min.js +1 -1
  90. package/contextmenu/contextmenu.esm.js +15 -9
  91. package/contextmenu/contextmenu.esm.min.js +1 -1
  92. package/contextmenu/contextmenu.js +14 -8
  93. package/contextmenu/contextmenu.min.js +1 -1
  94. package/core/core.js +1128 -772
  95. package/core/core.min.js +12 -12
  96. package/datatable/BodyCell.vue +11 -2
  97. package/datatable/DataTable.vue +23 -2
  98. package/datatable/datatable.cjs.js +34 -4
  99. package/datatable/datatable.cjs.min.js +1 -1
  100. package/datatable/datatable.esm.js +34 -4
  101. package/datatable/datatable.esm.min.js +1 -1
  102. package/datatable/datatable.js +34 -4
  103. package/datatable/datatable.min.js +1 -1
  104. package/dialog/Dialog.d.ts +5 -1
  105. package/dropdown/Dropdown.d.ts +92 -38
  106. package/dropdown/Dropdown.vue +538 -399
  107. package/dropdown/dropdown.cjs.js +657 -486
  108. package/dropdown/dropdown.cjs.min.js +1 -1
  109. package/dropdown/dropdown.esm.js +659 -488
  110. package/dropdown/dropdown.esm.min.js +1 -1
  111. package/dropdown/dropdown.js +657 -486
  112. package/dropdown/dropdown.min.js +1 -1
  113. package/editor/Editor.d.ts +32 -0
  114. package/editor/Editor.vue +15 -1
  115. package/editor/editor.cjs.js +15 -1
  116. package/editor/editor.cjs.min.js +1 -1
  117. package/editor/editor.esm.js +15 -1
  118. package/editor/editor.esm.min.js +1 -1
  119. package/editor/editor.js +15 -1
  120. package/editor/editor.min.js +1 -1
  121. package/inputmask/InputMask.vue +9 -6
  122. package/inputmask/inputmask.cjs.js +14 -6
  123. package/inputmask/inputmask.cjs.min.js +1 -1
  124. package/inputmask/inputmask.esm.js +15 -7
  125. package/inputmask/inputmask.esm.min.js +1 -1
  126. package/inputmask/inputmask.js +14 -6
  127. package/inputmask/inputmask.min.js +1 -1
  128. package/inputnumber/InputNumber.d.ts +31 -7
  129. package/inputnumber/InputNumber.vue +53 -20
  130. package/inputnumber/inputnumber.cjs.js +75 -29
  131. package/inputnumber/inputnumber.cjs.min.js +1 -1
  132. package/inputnumber/inputnumber.esm.js +76 -30
  133. package/inputnumber/inputnumber.esm.min.js +1 -1
  134. package/inputnumber/inputnumber.js +75 -29
  135. package/inputnumber/inputnumber.min.js +1 -1
  136. package/inputswitch/InputSwitch.d.ts +24 -8
  137. package/inputswitch/InputSwitch.vue +27 -12
  138. package/inputswitch/inputswitch.cjs.js +38 -20
  139. package/inputswitch/inputswitch.cjs.min.js +1 -1
  140. package/inputswitch/inputswitch.esm.js +39 -21
  141. package/inputswitch/inputswitch.esm.min.js +1 -1
  142. package/inputswitch/inputswitch.js +38 -20
  143. package/inputswitch/inputswitch.min.js +1 -1
  144. package/inputtext/InputText.vue +1 -2
  145. package/inputtext/inputtext.cjs.js +3 -4
  146. package/inputtext/inputtext.cjs.min.js +1 -1
  147. package/inputtext/inputtext.esm.js +4 -5
  148. package/inputtext/inputtext.esm.min.js +1 -1
  149. package/inputtext/inputtext.js +3 -4
  150. package/inputtext/inputtext.min.js +1 -1
  151. package/knob/Knob.d.ts +12 -0
  152. package/knob/Knob.vue +62 -2
  153. package/knob/knob.cjs.js +73 -5
  154. package/knob/knob.cjs.min.js +1 -1
  155. package/knob/knob.esm.js +73 -5
  156. package/knob/knob.esm.min.js +1 -1
  157. package/knob/knob.js +73 -5
  158. package/knob/knob.min.js +1 -1
  159. package/listbox/Listbox.d.ts +53 -7
  160. package/listbox/Listbox.vue +500 -135
  161. package/listbox/listbox.cjs.js +597 -193
  162. package/listbox/listbox.cjs.min.js +1 -1
  163. package/listbox/listbox.esm.js +599 -195
  164. package/listbox/listbox.esm.min.js +1 -1
  165. package/listbox/listbox.js +597 -193
  166. package/listbox/listbox.min.js +1 -1
  167. package/menu/Menu.d.ts +1 -1
  168. package/menu/Menuitem.vue +2 -2
  169. package/menu/menu.cjs.js +12 -6
  170. package/menu/menu.cjs.min.js +1 -1
  171. package/menu/menu.esm.js +13 -7
  172. package/menu/menu.esm.min.js +1 -1
  173. package/menu/menu.js +12 -6
  174. package/menu/menu.min.js +1 -1
  175. package/menubar/MenubarSub.vue +3 -3
  176. package/menubar/menubar.cjs.js +14 -8
  177. package/menubar/menubar.cjs.min.js +1 -1
  178. package/menubar/menubar.esm.js +15 -9
  179. package/menubar/menubar.esm.min.js +1 -1
  180. package/menubar/menubar.js +14 -8
  181. package/menubar/menubar.min.js +1 -1
  182. package/menuitem/MenuItem.d.ts +1 -1
  183. package/multiselect/MultiSelect.d.ts +111 -51
  184. package/multiselect/MultiSelect.vue +629 -338
  185. package/multiselect/multiselect.cjs.js +748 -428
  186. package/multiselect/multiselect.cjs.min.js +1 -1
  187. package/multiselect/multiselect.esm.js +750 -430
  188. package/multiselect/multiselect.esm.min.js +1 -1
  189. package/multiselect/multiselect.js +748 -428
  190. package/multiselect/multiselect.min.js +1 -1
  191. package/overlaypanel/OverlayPanel.d.ts +1 -1
  192. package/overlaypanel/OverlayPanel.vue +14 -2
  193. package/overlaypanel/overlaypanel.cjs.js +14 -2
  194. package/overlaypanel/overlaypanel.cjs.min.js +1 -1
  195. package/overlaypanel/overlaypanel.esm.js +14 -2
  196. package/overlaypanel/overlaypanel.esm.min.js +1 -1
  197. package/overlaypanel/overlaypanel.js +14 -2
  198. package/overlaypanel/overlaypanel.min.js +1 -1
  199. package/package.json +2 -2
  200. package/paginator/Paginator.d.ts +2 -2
  201. package/password/Password.d.ts +36 -8
  202. package/password/Password.vue +50 -14
  203. package/password/password.cjs.js +69 -24
  204. package/password/password.cjs.min.js +1 -1
  205. package/password/password.esm.js +71 -26
  206. package/password/password.esm.min.js +1 -1
  207. package/password/password.js +69 -24
  208. package/password/password.min.js +1 -1
  209. package/picklist/PickList.d.ts +8 -0
  210. package/picklist/PickList.vue +10 -2
  211. package/picklist/picklist.cjs.js +68 -50
  212. package/picklist/picklist.cjs.min.js +1 -1
  213. package/picklist/picklist.esm.js +69 -51
  214. package/picklist/picklist.esm.min.js +1 -1
  215. package/picklist/picklist.js +68 -50
  216. package/picklist/picklist.min.js +1 -1
  217. package/portal/Portal.d.ts +1 -1
  218. package/radiobutton/RadioButton.d.ts +28 -4
  219. package/radiobutton/RadioButton.vue +36 -11
  220. package/radiobutton/radiobutton.cjs.js +49 -23
  221. package/radiobutton/radiobutton.cjs.min.js +1 -1
  222. package/radiobutton/radiobutton.esm.js +50 -24
  223. package/radiobutton/radiobutton.esm.min.js +1 -1
  224. package/radiobutton/radiobutton.js +49 -23
  225. package/radiobutton/radiobutton.min.js +1 -1
  226. package/rating/Rating.d.ts +4 -0
  227. package/rating/Rating.vue +61 -7
  228. package/rating/rating.cjs.js +90 -16
  229. package/rating/rating.cjs.min.js +1 -1
  230. package/rating/rating.esm.js +91 -17
  231. package/rating/rating.esm.min.js +1 -1
  232. package/rating/rating.js +90 -16
  233. package/rating/rating.min.js +1 -1
  234. package/resources/primevue.css +8 -0
  235. package/resources/primevue.min.css +1 -1
  236. package/resources/themes/arya-blue/theme.css +82 -40
  237. package/resources/themes/arya-green/theme.css +82 -40
  238. package/resources/themes/arya-orange/theme.css +82 -40
  239. package/resources/themes/arya-purple/theme.css +82 -40
  240. package/resources/themes/bootstrap4-dark-blue/theme.css +82 -40
  241. package/resources/themes/bootstrap4-dark-purple/theme.css +82 -40
  242. package/resources/themes/bootstrap4-light-blue/theme.css +82 -40
  243. package/resources/themes/bootstrap4-light-purple/theme.css +82 -40
  244. package/resources/themes/fluent-light/theme.css +82 -40
  245. package/resources/themes/lara-dark-blue/theme.css +82 -40
  246. package/resources/themes/lara-dark-indigo/theme.css +82 -40
  247. package/resources/themes/lara-dark-purple/theme.css +82 -40
  248. package/resources/themes/lara-dark-teal/theme.css +82 -40
  249. package/resources/themes/lara-light-blue/theme.css +82 -40
  250. package/resources/themes/lara-light-indigo/theme.css +82 -40
  251. package/resources/themes/lara-light-purple/theme.css +82 -40
  252. package/resources/themes/lara-light-teal/theme.css +82 -40
  253. package/resources/themes/luna-amber/theme.css +82 -40
  254. package/resources/themes/luna-blue/theme.css +82 -40
  255. package/resources/themes/luna-green/theme.css +82 -40
  256. package/resources/themes/luna-pink/theme.css +82 -40
  257. package/resources/themes/md-dark-deeppurple/theme.css +82 -40
  258. package/resources/themes/md-dark-indigo/theme.css +82 -40
  259. package/resources/themes/md-light-deeppurple/theme.css +82 -40
  260. package/resources/themes/md-light-indigo/theme.css +82 -40
  261. package/resources/themes/mdc-dark-deeppurple/theme.css +82 -40
  262. package/resources/themes/mdc-dark-indigo/theme.css +82 -40
  263. package/resources/themes/mdc-light-deeppurple/theme.css +82 -40
  264. package/resources/themes/mdc-light-indigo/theme.css +82 -40
  265. package/resources/themes/nova/theme.css +82 -40
  266. package/resources/themes/nova-accent/theme.css +82 -40
  267. package/resources/themes/nova-alt/theme.css +82 -40
  268. package/resources/themes/nova-vue/theme.css +82 -40
  269. package/resources/themes/rhea/theme.css +82 -40
  270. package/resources/themes/saga-blue/theme.css +82 -40
  271. package/resources/themes/saga-green/theme.css +82 -40
  272. package/resources/themes/saga-orange/theme.css +82 -40
  273. package/resources/themes/saga-purple/theme.css +82 -40
  274. package/resources/themes/tailwind-light/theme.css +82 -40
  275. package/resources/themes/vela-blue/theme.css +82 -40
  276. package/resources/themes/vela-green/theme.css +82 -40
  277. package/resources/themes/vela-orange/theme.css +82 -40
  278. package/resources/themes/vela-purple/theme.css +82 -40
  279. package/ripple/ripple.cjs.js +1 -0
  280. package/ripple/ripple.cjs.min.js +1 -1
  281. package/ripple/ripple.esm.js +1 -0
  282. package/ripple/ripple.esm.min.js +1 -1
  283. package/ripple/ripple.js +1 -0
  284. package/ripple/ripple.min.js +1 -1
  285. package/selectbutton/SelectButton.d.ts +6 -2
  286. package/selectbutton/SelectButton.vue +89 -12
  287. package/selectbutton/selectbutton.cjs.js +97 -22
  288. package/selectbutton/selectbutton.cjs.min.js +1 -1
  289. package/selectbutton/selectbutton.esm.js +99 -24
  290. package/selectbutton/selectbutton.esm.min.js +1 -1
  291. package/selectbutton/selectbutton.js +97 -22
  292. package/selectbutton/selectbutton.min.js +1 -1
  293. package/slider/Slider.d.ts +9 -1
  294. package/slider/Slider.vue +50 -34
  295. package/slider/slider.cjs.js +59 -38
  296. package/slider/slider.cjs.min.js +1 -1
  297. package/slider/slider.esm.js +59 -38
  298. package/slider/slider.esm.min.js +1 -1
  299. package/slider/slider.js +59 -38
  300. package/slider/slider.min.js +1 -1
  301. package/splitbutton/SplitButton.d.ts +1 -1
  302. package/splitter/Splitter.vue +30 -1
  303. package/splitter/splitter.cjs.js +30 -1
  304. package/splitter/splitter.cjs.min.js +1 -1
  305. package/splitter/splitter.esm.js +30 -1
  306. package/splitter/splitter.esm.min.js +1 -1
  307. package/splitter/splitter.js +30 -1
  308. package/splitter/splitter.min.js +1 -1
  309. package/textarea/Textarea.vue +1 -2
  310. package/textarea/textarea.cjs.js +3 -5
  311. package/textarea/textarea.cjs.min.js +1 -1
  312. package/textarea/textarea.esm.js +4 -6
  313. package/textarea/textarea.esm.min.js +1 -1
  314. package/textarea/textarea.js +3 -5
  315. package/textarea/textarea.min.js +1 -1
  316. package/tieredmenu/TieredMenu.d.ts +1 -1
  317. package/tieredmenu/TieredMenuSub.vue +3 -3
  318. package/tieredmenu/tieredmenu.cjs.js +14 -8
  319. package/tieredmenu/tieredmenu.cjs.min.js +1 -1
  320. package/tieredmenu/tieredmenu.esm.js +15 -9
  321. package/tieredmenu/tieredmenu.esm.min.js +1 -1
  322. package/tieredmenu/tieredmenu.js +14 -8
  323. package/tieredmenu/tieredmenu.min.js +1 -1
  324. package/timeline/Timeline.d.ts +10 -1
  325. package/timeline/Timeline.vue +1 -1
  326. package/timeline/timeline.cjs.js +5 -1
  327. package/timeline/timeline.cjs.min.js +1 -1
  328. package/timeline/timeline.esm.js +5 -1
  329. package/timeline/timeline.esm.min.js +1 -1
  330. package/timeline/timeline.js +5 -1
  331. package/timeline/timeline.min.js +1 -1
  332. package/togglebutton/ToggleButton.d.ts +42 -0
  333. package/togglebutton/ToggleButton.vue +44 -7
  334. package/togglebutton/togglebutton.cjs.js +59 -13
  335. package/togglebutton/togglebutton.cjs.min.js +1 -1
  336. package/togglebutton/togglebutton.esm.js +60 -14
  337. package/togglebutton/togglebutton.esm.min.js +1 -1
  338. package/togglebutton/togglebutton.js +59 -13
  339. package/togglebutton/togglebutton.min.js +1 -1
  340. package/tooltip/tooltip.cjs.js +20 -11
  341. package/tooltip/tooltip.cjs.min.js +1 -1
  342. package/tooltip/tooltip.esm.js +21 -12
  343. package/tooltip/tooltip.esm.min.js +1 -1
  344. package/tooltip/tooltip.js +20 -11
  345. package/tooltip/tooltip.min.js +1 -1
  346. package/tree/Tree.vue +5 -1
  347. package/tree/TreeNode.vue +20 -19
  348. package/tree/tree.cjs.js +47 -32
  349. package/tree/tree.cjs.min.js +1 -1
  350. package/tree/tree.esm.js +47 -32
  351. package/tree/tree.esm.min.js +1 -1
  352. package/tree/tree.js +47 -32
  353. package/tree/tree.min.js +1 -1
  354. package/treeselect/TreeSelect.d.ts +26 -10
  355. package/treeselect/TreeSelect.vue +52 -29
  356. package/treeselect/treeselect.cjs.js +74 -41
  357. package/treeselect/treeselect.cjs.min.js +1 -1
  358. package/treeselect/treeselect.esm.js +76 -43
  359. package/treeselect/treeselect.esm.min.js +1 -1
  360. package/treeselect/treeselect.js +74 -41
  361. package/treeselect/treeselect.min.js +1 -1
  362. package/tristatecheckbox/TriStateCheckbox.d.ts +20 -4
  363. package/tristatecheckbox/TriStateCheckbox.vue +52 -15
  364. package/tristatecheckbox/tristatecheckbox.cjs.js +67 -26
  365. package/tristatecheckbox/tristatecheckbox.cjs.min.js +1 -1
  366. package/tristatecheckbox/tristatecheckbox.esm.js +68 -27
  367. package/tristatecheckbox/tristatecheckbox.esm.min.js +1 -1
  368. package/tristatecheckbox/tristatecheckbox.js +67 -26
  369. package/tristatecheckbox/tristatecheckbox.min.js +1 -1
  370. package/utils/Utils.d.ts +3 -2
  371. package/utils/utils.cjs.js +239 -173
  372. package/utils/utils.cjs.min.js +1 -1
  373. package/utils/utils.esm.js +239 -173
  374. package/utils/utils.esm.min.js +1 -1
  375. package/utils/utils.js +239 -173
  376. package/utils/utils.min.js +1 -1
  377. package/vetur-attributes.json +612 -136
  378. package/vetur-tags.json +180 -59
  379. package/virtualscroller/VirtualScroller.d.ts +10 -0
  380. package/virtualscroller/VirtualScroller.vue +18 -17
  381. package/virtualscroller/virtualscroller.cjs.js +22 -20
  382. package/virtualscroller/virtualscroller.cjs.min.js +1 -1
  383. package/virtualscroller/virtualscroller.esm.js +22 -20
  384. package/virtualscroller/virtualscroller.esm.min.js +1 -1
  385. package/virtualscroller/virtualscroller.js +22 -20
  386. package/virtualscroller/virtualscroller.min.js +1 -1
  387. package/web-types.json +1745 -338
@@ -4,7 +4,7 @@ import { TreeNode } from '../tree';
4
4
 
5
5
  type TreeSelectSelectionModeType = 'single' | 'multiple' | 'checkbox' | undefined;
6
6
 
7
- type TreeSelectAppendToType = 'body' | 'self' | string | undefined;
7
+ type TreeSelectAppendToType = 'body' | 'self' | string | undefined | HTMLElement;
8
8
 
9
9
  type TreeSelectDisplayType = 'comma' | 'chip' | undefined;
10
10
 
@@ -34,14 +34,6 @@ export interface TreeSelectProps {
34
34
  * Index of the element in tabbing order.
35
35
  */
36
36
  tabindex?: string | undefined;
37
- /**
38
- * Identifier of the underlying input element.
39
- */
40
- inputId?: string | undefined;
41
- /**
42
- * Establishes relationships between the component and label(s) where its value should be one or more element IDs.
43
- */
44
- ariaLabelledBy?: string | undefined;
45
37
  /**
46
38
  * Defines the selection mode.
47
39
  * @see TreeSelectSelectionModeType
@@ -74,6 +66,30 @@ export interface TreeSelectProps {
74
66
  * Default value is true.
75
67
  */
76
68
  metaKeySelection?: boolean | undefined;
69
+ /**
70
+ * Identifier of the underlying input element.
71
+ */
72
+ inputId?: string | undefined;
73
+ /**
74
+ * Style class of the input field.
75
+ */
76
+ inputClass?: any | undefined;
77
+ /**
78
+ * Inline style of the input field.
79
+ */
80
+ inputStyle?: any | undefined;
81
+ /**
82
+ *
83
+ */
84
+ inputProps?: object | undefined;
85
+ /**
86
+ * Establishes relationships between the component and label(s) where its value should be one or more element IDs.
87
+ */
88
+ 'aria-labelledby'?: string | undefined;
89
+ /**
90
+ * Establishes a string value that labels the component.
91
+ */
92
+ 'aria-label'?: string | undefined;
77
93
  }
78
94
 
79
95
  export interface TreeSelectSlots {
@@ -113,7 +129,7 @@ export interface TreeSelectSlots {
113
129
  /**
114
130
  * Selected value
115
131
  */
116
- value: TreeNode | any;
132
+ value: TreeNode | any;
117
133
  /**
118
134
  * An array of treenodes.
119
135
  */
@@ -1,8 +1,9 @@
1
1
  <template>
2
2
  <div ref="container" :class="containerClass" @click="onClick">
3
3
  <div class="p-hidden-accessible">
4
- <input ref="focusInput" type="text" role="listbox" :id="inputId" readonly :disabled="disabled" @focus="onFocus" @blur="onBlur" @keydown="onKeyDown" :tabindex="tabindex"
5
- aria-haspopup="true" :aria-expanded="overlayVisible" :aria-labelledby="ariaLabelledBy"/>
4
+ <input ref="focusInput" type="text" role="combobox" :id="inputId" :class="inputClass" :style="inputStyle" readonly :disabled="disabled" :tabindex="!disabled ? tabindex : -1"
5
+ :aria-labelledby="ariaLabelledby" :aria-label="ariaLabel" aria-haspopup="tree" :aria-expanded="overlayVisible" :aria-controls="listId"
6
+ @focus="onFocus($event)" @blur="onBlur($event)" @keydown="onKeyDown($event)" v-bind="inputProps" />
6
7
  </div>
7
8
  <div class="p-treeselect-label-container">
8
9
  <div :class="labelClass">
@@ -19,20 +20,20 @@
19
20
  </slot>
20
21
  </div>
21
22
  </div>
22
- <div class="p-treeselect-trigger">
23
+ <div class="p-treeselect-trigger" role="button" aria-haspopup="tree" :aria-expanded="overlayVisible">
23
24
  <slot name="indicator">
24
25
  <span class="p-treeselect-trigger-icon pi pi-chevron-down"></span>
25
26
  </slot>
26
27
  </div>
27
28
  <Portal :appendTo="appendTo">
28
29
  <transition name="p-connected-overlay" @enter="onOverlayEnter" @leave="onOverlayLeave" @after-leave="onOverlayAfterLeave">
29
- <div :ref="overlayRef" v-if="overlayVisible" @click="onOverlayClick" :class="panelStyleClass">
30
+ <div :ref="overlayRef" v-if="overlayVisible" @click="onOverlayClick" :class="panelStyleClass" v-bind="panelProps">
30
31
  <slot name="header" :value="modelValue" :options="options"></slot>
31
32
  <div class="p-treeselect-items-wrapper" :style="{'max-height': scrollHeight}">
32
- <TSTree :value="options" :selectionMode="selectionMode" @update:selectionKeys="onSelectionChange" :selectionKeys="modelValue"
33
+ <TSTree :id="listId" :value="options" :selectionMode="selectionMode" @update:selectionKeys="onSelectionChange" :selectionKeys="modelValue"
33
34
  :expandedKeys="expandedKeys" @update:expandedKeys="onNodeToggle" :metaKeySelection="metaKeySelection"
34
35
  @node-expand="$emit('node-expand', $event)" @node-collapse="$emit('node-collapse', $event)"
35
- @node-select="onNodeSelect" @node-unselect="onNodeUnselect" />
36
+ @node-select="onNodeSelect" @node-unselect="onNodeUnselect" :level="0" />
36
37
  <div v-if="emptyOptions" class="p-treeselect-empty-message">
37
38
  <slot name="empty">{{emptyMessageText}}</slot>
38
39
  </div>
@@ -45,7 +46,7 @@
45
46
  </template>
46
47
 
47
48
  <script>
48
- import {ConnectedOverlayScrollHandler,DomHandler,ZIndexUtils} from 'primevue/utils';
49
+ import {ConnectedOverlayScrollHandler,DomHandler,ZIndexUtils,UniqueComponentId} from 'primevue/utils';
49
50
  import OverlayEventBus from 'primevue/overlayeventbus';
50
51
  import Tree from 'primevue/tree';
51
52
  import Ripple from 'primevue/ripple';
@@ -53,7 +54,7 @@ import Portal from 'primevue/portal';
53
54
 
54
55
  export default {
55
56
  name: 'TreeSelect',
56
- emits: ['update:modelValue', 'before-show', 'before-hide', 'change', 'show', 'hide', 'node-select', 'node-unselect', 'node-expand', 'node-collapse'],
57
+ emits: ['update:modelValue', 'before-show', 'before-hide', 'change', 'show', 'hide', 'node-select', 'node-unselect', 'node-expand', 'node-collapse', 'focus', 'blur'],
57
58
  props: {
58
59
  modelValue: null,
59
60
  options: Array,
@@ -64,8 +65,6 @@ export default {
64
65
  placeholder: String,
65
66
  disabled: Boolean,
66
67
  tabindex: String,
67
- inputId: String,
68
- ariaLabelledBy: null,
69
68
  selectionMode: {
70
69
  type: String,
71
70
  default: 'single'
@@ -74,6 +73,7 @@ export default {
74
73
  type: String,
75
74
  default: null
76
75
  },
76
+ panelProps: null,
77
77
  appendTo: {
78
78
  type: String,
79
79
  default: 'body'
@@ -89,6 +89,18 @@ export default {
89
89
  metaKeySelection: {
90
90
  type: Boolean,
91
91
  default: true
92
+ },
93
+ inputId: String,
94
+ inputClass: String,
95
+ inputStyle: null,
96
+ inputProps: null,
97
+ 'aria-labelledby': {
98
+ type: String,
99
+ default: null
100
+ },
101
+ 'aria-label': {
102
+ type: String,
103
+ default: null
92
104
  }
93
105
  },
94
106
  watch: {
@@ -142,12 +154,15 @@ export default {
142
154
  hide() {
143
155
  this.$emit('before-hide');
144
156
  this.overlayVisible = false;
157
+ this.$refs.focusInput.focus();
145
158
  },
146
- onFocus() {
159
+ onFocus(event) {
147
160
  this.focused = true;
161
+ this.$emit('focus', event);
148
162
  },
149
- onBlur() {
163
+ onBlur(event) {
150
164
  this.focused = false;
165
+ this.$emit('blur', event);
151
166
  },
152
167
  onClick(event) {
153
168
  if (!this.disabled && (!this.overlay || !this.overlay.contains(event.target)) && !DomHandler.hasClass(event.target, 'p-treeselect-close')) {
@@ -178,37 +193,42 @@ export default {
178
193
  this.expandedKeys = keys;
179
194
  },
180
195
  onKeyDown(event) {
181
- switch(event.which) {
182
- //down
183
- case 40:
184
- if (!this.overlayVisible && event.altKey) {
196
+ switch(event.code) {
197
+ case 'Down':
198
+ case 'ArrowDown':
199
+ if (this.overlayVisible) {
200
+ if (DomHandler.findSingle(this.overlay, '.p-highlight')) {
201
+ DomHandler.findSingle(this.overlay, '.p-highlight').focus();
202
+ }
203
+ else DomHandler.findSingle(this.overlay, '.p-treenode').children[0].focus();
204
+ }
205
+ else {
185
206
  this.show();
186
- event.preventDefault();
187
207
  }
208
+
209
+ event.preventDefault();
188
210
  break;
189
211
 
190
- //space
191
- case 32:
192
- if (!this.overlayVisible) {
212
+ case 'Space':
213
+ case 'Enter':
214
+ if (this.overlayVisible) {
215
+ this.hide();
216
+ }
217
+ else {
193
218
  this.show();
194
- event.preventDefault();
195
219
  }
220
+
221
+ event.preventDefault();
196
222
  break;
197
223
 
198
- //enter and escape
199
- case 13:
200
- case 27:
224
+ case 'Escape':
225
+ case 'Tab':
201
226
  if (this.overlayVisible) {
202
227
  this.hide();
203
228
  event.preventDefault();
204
229
  }
205
230
  break;
206
231
 
207
- //tab
208
- case 9:
209
- this.hide();
210
- break;
211
-
212
232
  default:
213
233
  break;
214
234
  }
@@ -415,6 +435,9 @@ export default {
415
435
  },
416
436
  emptyOptions() {
417
437
  return !this.options || this.options.length === 0;
438
+ },
439
+ listId() {
440
+ return UniqueComponentId() + '_list';
418
441
  }
419
442
  },
420
443
  components: {
@@ -16,7 +16,7 @@ var Portal__default = /*#__PURE__*/_interopDefaultLegacy(Portal);
16
16
 
17
17
  var script = {
18
18
  name: 'TreeSelect',
19
- emits: ['update:modelValue', 'before-show', 'before-hide', 'change', 'show', 'hide', 'node-select', 'node-unselect', 'node-expand', 'node-collapse'],
19
+ emits: ['update:modelValue', 'before-show', 'before-hide', 'change', 'show', 'hide', 'node-select', 'node-unselect', 'node-expand', 'node-collapse', 'focus', 'blur'],
20
20
  props: {
21
21
  modelValue: null,
22
22
  options: Array,
@@ -27,8 +27,6 @@ var script = {
27
27
  placeholder: String,
28
28
  disabled: Boolean,
29
29
  tabindex: String,
30
- inputId: String,
31
- ariaLabelledBy: null,
32
30
  selectionMode: {
33
31
  type: String,
34
32
  default: 'single'
@@ -37,6 +35,7 @@ var script = {
37
35
  type: String,
38
36
  default: null
39
37
  },
38
+ panelProps: null,
40
39
  appendTo: {
41
40
  type: String,
42
41
  default: 'body'
@@ -52,6 +51,18 @@ var script = {
52
51
  metaKeySelection: {
53
52
  type: Boolean,
54
53
  default: true
54
+ },
55
+ inputId: String,
56
+ inputClass: String,
57
+ inputStyle: null,
58
+ inputProps: null,
59
+ 'aria-labelledby': {
60
+ type: String,
61
+ default: null
62
+ },
63
+ 'aria-label': {
64
+ type: String,
65
+ default: null
55
66
  }
56
67
  },
57
68
  watch: {
@@ -105,12 +116,15 @@ var script = {
105
116
  hide() {
106
117
  this.$emit('before-hide');
107
118
  this.overlayVisible = false;
119
+ this.$refs.focusInput.focus();
108
120
  },
109
- onFocus() {
121
+ onFocus(event) {
110
122
  this.focused = true;
123
+ this.$emit('focus', event);
111
124
  },
112
- onBlur() {
125
+ onBlur(event) {
113
126
  this.focused = false;
127
+ this.$emit('blur', event);
114
128
  },
115
129
  onClick(event) {
116
130
  if (!this.disabled && (!this.overlay || !this.overlay.contains(event.target)) && !utils.DomHandler.hasClass(event.target, 'p-treeselect-close')) {
@@ -141,36 +155,41 @@ var script = {
141
155
  this.expandedKeys = keys;
142
156
  },
143
157
  onKeyDown(event) {
144
- switch(event.which) {
145
- //down
146
- case 40:
147
- if (!this.overlayVisible && event.altKey) {
158
+ switch(event.code) {
159
+ case 'Down':
160
+ case 'ArrowDown':
161
+ if (this.overlayVisible) {
162
+ if (utils.DomHandler.findSingle(this.overlay, '.p-highlight')) {
163
+ utils.DomHandler.findSingle(this.overlay, '.p-highlight').focus();
164
+ }
165
+ else utils.DomHandler.findSingle(this.overlay, '.p-treenode').children[0].focus();
166
+ }
167
+ else {
148
168
  this.show();
149
- event.preventDefault();
150
169
  }
170
+
171
+ event.preventDefault();
151
172
  break;
152
173
 
153
- //space
154
- case 32:
155
- if (!this.overlayVisible) {
174
+ case 'Space':
175
+ case 'Enter':
176
+ if (this.overlayVisible) {
177
+ this.hide();
178
+ }
179
+ else {
156
180
  this.show();
157
- event.preventDefault();
158
181
  }
182
+
183
+ event.preventDefault();
159
184
  break;
160
185
 
161
- //enter and escape
162
- case 13:
163
- case 27:
186
+ case 'Escape':
187
+ case 'Tab':
164
188
  if (this.overlayVisible) {
165
189
  this.hide();
166
190
  event.preventDefault();
167
191
  }
168
192
  break;
169
-
170
- //tab
171
- case 9:
172
- this.hide();
173
- break;
174
193
  }
175
194
  },
176
195
  onOverlayEnter(el) {
@@ -375,6 +394,9 @@ var script = {
375
394
  },
376
395
  emptyOptions() {
377
396
  return !this.options || this.options.length === 0;
397
+ },
398
+ listId() {
399
+ return utils.UniqueComponentId() + '_list';
378
400
  }
379
401
  },
380
402
  components: {
@@ -387,10 +409,10 @@ var script = {
387
409
  };
388
410
 
389
411
  const _hoisted_1 = { class: "p-hidden-accessible" };
390
- const _hoisted_2 = ["id", "disabled", "tabindex", "aria-expanded", "aria-labelledby"];
412
+ const _hoisted_2 = ["id", "disabled", "tabindex", "aria-labelledby", "aria-label", "aria-expanded", "aria-controls"];
391
413
  const _hoisted_3 = { class: "p-treeselect-label-container" };
392
414
  const _hoisted_4 = { class: "p-treeselect-token-label" };
393
- const _hoisted_5 = { class: "p-treeselect-trigger" };
415
+ const _hoisted_5 = ["aria-expanded"];
394
416
  const _hoisted_6 = /*#__PURE__*/vue.createElementVNode("span", { class: "p-treeselect-trigger-icon pi pi-chevron-down" }, null, -1);
395
417
  const _hoisted_7 = {
396
418
  key: 0,
@@ -407,21 +429,25 @@ function render(_ctx, _cache, $props, $setup, $data, $options) {
407
429
  onClick: _cache[6] || (_cache[6] = (...args) => ($options.onClick && $options.onClick(...args)))
408
430
  }, [
409
431
  vue.createElementVNode("div", _hoisted_1, [
410
- vue.createElementVNode("input", {
432
+ vue.createElementVNode("input", vue.mergeProps({
411
433
  ref: "focusInput",
412
434
  type: "text",
413
- role: "listbox",
435
+ role: "combobox",
414
436
  id: $props.inputId,
437
+ class: $props.inputClass,
438
+ style: $props.inputStyle,
415
439
  readonly: "",
416
440
  disabled: $props.disabled,
417
- onFocus: _cache[0] || (_cache[0] = (...args) => ($options.onFocus && $options.onFocus(...args))),
418
- onBlur: _cache[1] || (_cache[1] = (...args) => ($options.onBlur && $options.onBlur(...args))),
419
- onKeydown: _cache[2] || (_cache[2] = (...args) => ($options.onKeyDown && $options.onKeyDown(...args))),
420
- tabindex: $props.tabindex,
421
- "aria-haspopup": "true",
441
+ tabindex: !$props.disabled ? $props.tabindex : -1,
442
+ "aria-labelledby": _ctx.ariaLabelledby,
443
+ "aria-label": _ctx.ariaLabel,
444
+ "aria-haspopup": "tree",
422
445
  "aria-expanded": $data.overlayVisible,
423
- "aria-labelledby": $props.ariaLabelledBy
424
- }, null, 40, _hoisted_2)
446
+ "aria-controls": $options.listId,
447
+ onFocus: _cache[0] || (_cache[0] = $event => ($options.onFocus($event))),
448
+ onBlur: _cache[1] || (_cache[1] = $event => ($options.onBlur($event))),
449
+ onKeydown: _cache[2] || (_cache[2] = $event => ($options.onKeyDown($event)))
450
+ }, $props.inputProps), null, 16, _hoisted_2)
425
451
  ]),
426
452
  vue.createElementVNode("div", _hoisted_3, [
427
453
  vue.createElementVNode("div", {
@@ -455,11 +481,16 @@ function render(_ctx, _cache, $props, $setup, $data, $options) {
455
481
  ])
456
482
  ], 2)
457
483
  ]),
458
- vue.createElementVNode("div", _hoisted_5, [
484
+ vue.createElementVNode("div", {
485
+ class: "p-treeselect-trigger",
486
+ role: "button",
487
+ "aria-haspopup": "tree",
488
+ "aria-expanded": $data.overlayVisible
489
+ }, [
459
490
  vue.renderSlot(_ctx.$slots, "indicator", {}, () => [
460
491
  _hoisted_6
461
492
  ])
462
- ]),
493
+ ], 8, _hoisted_5),
463
494
  vue.createVNode(_component_Portal, { appendTo: $props.appendTo }, {
464
495
  default: vue.withCtx(() => [
465
496
  vue.createVNode(vue.Transition, {
@@ -470,12 +501,12 @@ function render(_ctx, _cache, $props, $setup, $data, $options) {
470
501
  }, {
471
502
  default: vue.withCtx(() => [
472
503
  ($data.overlayVisible)
473
- ? (vue.openBlock(), vue.createElementBlock("div", {
504
+ ? (vue.openBlock(), vue.createElementBlock("div", vue.mergeProps({
474
505
  key: 0,
475
506
  ref: $options.overlayRef,
476
507
  onClick: _cache[5] || (_cache[5] = (...args) => ($options.onOverlayClick && $options.onOverlayClick(...args))),
477
- class: vue.normalizeClass($options.panelStyleClass)
478
- }, [
508
+ class: $options.panelStyleClass
509
+ }, $props.panelProps), [
479
510
  vue.renderSlot(_ctx.$slots, "header", {
480
511
  value: $props.modelValue,
481
512
  options: $props.options
@@ -485,6 +516,7 @@ function render(_ctx, _cache, $props, $setup, $data, $options) {
485
516
  style: vue.normalizeStyle({'max-height': $props.scrollHeight})
486
517
  }, [
487
518
  vue.createVNode(_component_TSTree, {
519
+ id: $options.listId,
488
520
  value: $props.options,
489
521
  selectionMode: $props.selectionMode,
490
522
  "onUpdate:selectionKeys": $options.onSelectionChange,
@@ -495,8 +527,9 @@ function render(_ctx, _cache, $props, $setup, $data, $options) {
495
527
  onNodeExpand: _cache[3] || (_cache[3] = $event => (_ctx.$emit('node-expand', $event))),
496
528
  onNodeCollapse: _cache[4] || (_cache[4] = $event => (_ctx.$emit('node-collapse', $event))),
497
529
  onNodeSelect: $options.onNodeSelect,
498
- onNodeUnselect: $options.onNodeUnselect
499
- }, null, 8, ["value", "selectionMode", "onUpdate:selectionKeys", "selectionKeys", "expandedKeys", "onUpdate:expandedKeys", "metaKeySelection", "onNodeSelect", "onNodeUnselect"]),
530
+ onNodeUnselect: $options.onNodeUnselect,
531
+ level: 0
532
+ }, null, 8, ["id", "value", "selectionMode", "onUpdate:selectionKeys", "selectionKeys", "expandedKeys", "onUpdate:expandedKeys", "metaKeySelection", "onNodeSelect", "onNodeUnselect"]),
500
533
  ($options.emptyOptions)
501
534
  ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_7, [
502
535
  vue.renderSlot(_ctx.$slots, "empty", {}, () => [
@@ -509,7 +542,7 @@ function render(_ctx, _cache, $props, $setup, $data, $options) {
509
542
  value: $props.modelValue,
510
543
  options: $props.options
511
544
  })
512
- ], 2))
545
+ ], 16))
513
546
  : vue.createCommentVNode("", true)
514
547
  ]),
515
548
  _: 3
@@ -1 +1 @@
1
- "use strict";var e=require("primevue/utils"),t=require("primevue/overlayeventbus"),l=require("primevue/tree"),i=require("primevue/ripple"),n=require("primevue/portal"),s=require("vue");function o(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var r=o(t),a=o(l),d=o(i),c=o(n),p={name:"TreeSelect",emits:["update:modelValue","before-show","before-hide","change","show","hide","node-select","node-unselect","node-expand","node-collapse"],props:{modelValue:null,options:Array,scrollHeight:{type:String,default:"400px"},placeholder:String,disabled:Boolean,tabindex:String,inputId:String,ariaLabelledBy:null,selectionMode:{type:String,default:"single"},panelClass:{type:String,default:null},appendTo:{type:String,default:"body"},emptyMessage:{type:String,default:null},display:{type:String,default:"comma"},metaKeySelection:{type:Boolean,default:!0}},watch:{modelValue:{handler:function(){this.selfChange||this.updateTreeState(),this.selfChange=!1},immediate:!0},options(){this.updateTreeState()}},data:()=>({focused:!1,overlayVisible:!1,expandedKeys:{}}),outsideClickListener:null,resizeListener:null,scrollHandler:null,overlay:null,selfChange:!1,beforeUnmount(){this.unbindOutsideClickListener(),this.unbindResizeListener(),this.scrollHandler&&(this.scrollHandler.destroy(),this.scrollHandler=null),this.overlay&&(e.ZIndexUtils.clear(this.overlay),this.overlay=null)},mounted(){this.updateTreeState()},methods:{show(){this.$emit("before-show"),this.overlayVisible=!0},hide(){this.$emit("before-hide"),this.overlayVisible=!1},onFocus(){this.focused=!0},onBlur(){this.focused=!1},onClick(t){this.disabled||this.overlay&&this.overlay.contains(t.target)||e.DomHandler.hasClass(t.target,"p-treeselect-close")||(this.overlayVisible?this.hide():this.show(),this.$refs.focusInput.focus())},onSelectionChange(e){this.selfChange=!0,this.$emit("update:modelValue",e),this.$emit("change",e)},onNodeSelect(e){this.$emit("node-select",e),"single"===this.selectionMode&&this.hide()},onNodeUnselect(e){this.$emit("node-unselect",e)},onNodeToggle(e){this.expandedKeys=e},onKeyDown(e){switch(e.which){case 40:!this.overlayVisible&&e.altKey&&(this.show(),e.preventDefault());break;case 32:this.overlayVisible||(this.show(),e.preventDefault());break;case 13:case 27:this.overlayVisible&&(this.hide(),e.preventDefault());break;case 9:this.hide()}},onOverlayEnter(t){e.ZIndexUtils.set("overlay",t,this.$primevue.config.zIndex.overlay),this.alignOverlay(),this.bindOutsideClickListener(),this.bindScrollListener(),this.bindResizeListener(),this.scrollValueInView(),this.$emit("show")},onOverlayLeave(){this.unbindOutsideClickListener(),this.unbindScrollListener(),this.unbindResizeListener(),this.$emit("hide"),this.overlay=null},onOverlayAfterLeave(t){e.ZIndexUtils.clear(t)},alignOverlay(){"self"===this.appendTo?e.DomHandler.relativePosition(this.overlay,this.$el):(this.overlay.style.minWidth=e.DomHandler.getOuterWidth(this.$el)+"px",e.DomHandler.absolutePosition(this.overlay,this.$el))},bindOutsideClickListener(){this.outsideClickListener||(this.outsideClickListener=e=>{this.overlayVisible&&this.isOutsideClicked(e)&&this.hide()},document.addEventListener("click",this.outsideClickListener))},unbindOutsideClickListener(){this.outsideClickListener&&(document.removeEventListener("click",this.outsideClickListener),this.outsideClickListener=null)},bindScrollListener(){this.scrollHandler||(this.scrollHandler=new e.ConnectedOverlayScrollHandler(this.$refs.container,(()=>{this.overlayVisible&&this.hide()}))),this.scrollHandler.bindScrollListener()},unbindScrollListener(){this.scrollHandler&&this.scrollHandler.unbindScrollListener()},bindResizeListener(){this.resizeListener||(this.resizeListener=()=>{this.overlayVisible&&!e.DomHandler.isTouchDevice()&&this.hide()},window.addEventListener("resize",this.resizeListener))},unbindResizeListener(){this.resizeListener&&(window.removeEventListener("resize",this.resizeListener),this.resizeListener=null)},isOutsideClicked(e){return!(this.$el.isSameNode(e.target)||this.$el.contains(e.target)||this.overlay&&this.overlay.contains(e.target))},overlayRef(e){this.overlay=e},onOverlayClick(e){r.default.emit("overlay-click",{originalEvent:e,target:this.$el})},findSelectedNodes(e,t,l){if(e){if(this.isSelected(e,t)&&(l.push(e),delete t[e.key]),Object.keys(t).length&&e.children)for(let i of e.children)this.findSelectedNodes(i,t,l)}else for(let e of this.options)this.findSelectedNodes(e,t,l)},isSelected(e,t){return"checkbox"===this.selectionMode?t[e.key]&&t[e.key].checked:t[e.key]},updateTreeState(){let e={...this.modelValue};this.expandedKeys={},e&&this.options&&this.updateTreeBranchState(null,null,e)},updateTreeBranchState(e,t,l){if(e){if(this.isSelected(e,l)&&(this.expandPath(t),delete l[e.key]),Object.keys(l).length&&e.children)for(let i of e.children)t.push(e.key),this.updateTreeBranchState(i,t,l)}else for(let e of this.options)this.updateTreeBranchState(e,[],l)},expandPath(e){if(e.length>0)for(let t of e)this.expandedKeys[t]=!0},scrollValueInView(){if(this.overlay){let t=e.DomHandler.findSingle(this.overlay,"li.p-highlight");t&&t.scrollIntoView({block:"nearest",inline:"start"})}}},computed:{containerClass(){return["p-treeselect p-component p-inputwrapper",{"p-treeselect-chip":"chip"===this.display,"p-disabled":this.disabled,"p-focus":this.focused,"p-inputwrapper-filled":!this.emptyValue,"p-inputwrapper-focus":this.focused||this.overlayVisible}]},labelClass(){return["p-treeselect-label",{"p-placeholder":this.label===this.placeholder,"p-treeselect-label-empty":!this.placeholder&&this.emptyValue}]},panelStyleClass(){return["p-treeselect-panel p-component",this.panelClass,{"p-input-filled":"filled"===this.$primevue.config.inputStyle,"p-ripple-disabled":!1===this.$primevue.config.ripple}]},selectedNodes(){let e=[];if(this.modelValue&&this.options){let t={...this.modelValue};this.findSelectedNodes(null,t,e)}return e},label(){let e=this.selectedNodes;return e.length?e.map((e=>e.label)).join(", "):this.placeholder},emptyMessageText(){return this.emptyMessage||this.$primevue.config.locale.emptyMessage},emptyValue(){return!this.modelValue||0===Object.keys(this.modelValue).length},emptyOptions(){return!this.options||0===this.options.length}},components:{TSTree:a.default,Portal:c.default},directives:{ripple:d.default}};const h={class:"p-hidden-accessible"},u=["id","disabled","tabindex","aria-expanded","aria-labelledby"],y={class:"p-treeselect-label-container"},m={class:"p-treeselect-token-label"},f={class:"p-treeselect-trigger"},v=s.createElementVNode("span",{class:"p-treeselect-trigger-icon pi pi-chevron-down"},null,-1),b={key:0,class:"p-treeselect-empty-message"};!function(e,t){void 0===t&&(t={});var l=t.insertAt;if(e&&"undefined"!=typeof document){var i=document.head||document.getElementsByTagName("head")[0],n=document.createElement("style");n.type="text/css","top"===l&&i.firstChild?i.insertBefore(n,i.firstChild):i.appendChild(n),n.styleSheet?n.styleSheet.cssText=e:n.appendChild(document.createTextNode(e))}}("\n.p-treeselect {\n display: -webkit-inline-box;\n display: -ms-inline-flexbox;\n display: inline-flex;\n cursor: pointer;\n position: relative;\n -webkit-user-select: none;\n -moz-user-select: none;\n -ms-user-select: none;\n user-select: none;\n}\n.p-treeselect-trigger {\n display: -webkit-box;\n display: -ms-flexbox;\n display: flex;\n -webkit-box-align: center;\n -ms-flex-align: center;\n align-items: center;\n -webkit-box-pack: center;\n -ms-flex-pack: center;\n justify-content: center;\n -ms-flex-negative: 0;\n flex-shrink: 0;\n}\n.p-treeselect-label-container {\n overflow: hidden;\n -webkit-box-flex: 1;\n -ms-flex: 1 1 auto;\n flex: 1 1 auto;\n cursor: pointer;\n}\n.p-treeselect-label {\n display: block;\n white-space: nowrap;\n cursor: pointer;\n overflow: hidden;\n text-overflow: ellipsis;\n}\n.p-treeselect-label-empty {\n overflow: hidden;\n visibility: hidden;\n}\n.p-treeselect-token {\n cursor: default;\n display: -webkit-inline-box;\n display: -ms-inline-flexbox;\n display: inline-flex;\n -webkit-box-align: center;\n -ms-flex-align: center;\n align-items: center;\n -webkit-box-flex: 0;\n -ms-flex: 0 0 auto;\n flex: 0 0 auto;\n}\n.p-treeselect .p-treeselect-panel {\n min-width: 100%;\n}\n.p-treeselect-panel {\n position: absolute;\n top: 0;\n left: 0;\n}\n.p-treeselect-items-wrapper {\n overflow: auto;\n}\n.p-fluid .p-treeselect {\n display: -webkit-box;\n display: -ms-flexbox;\n display: flex;\n}\n"),p.render=function(e,t,l,i,n,o){const r=s.resolveComponent("TSTree"),a=s.resolveComponent("Portal");return s.openBlock(),s.createElementBlock("div",{ref:"container",class:s.normalizeClass(o.containerClass),onClick:t[6]||(t[6]=(...e)=>o.onClick&&o.onClick(...e))},[s.createElementVNode("div",h,[s.createElementVNode("input",{ref:"focusInput",type:"text",role:"listbox",id:l.inputId,readonly:"",disabled:l.disabled,onFocus:t[0]||(t[0]=(...e)=>o.onFocus&&o.onFocus(...e)),onBlur:t[1]||(t[1]=(...e)=>o.onBlur&&o.onBlur(...e)),onKeydown:t[2]||(t[2]=(...e)=>o.onKeyDown&&o.onKeyDown(...e)),tabindex:l.tabindex,"aria-haspopup":"true","aria-expanded":n.overlayVisible,"aria-labelledby":l.ariaLabelledBy},null,40,u)]),s.createElementVNode("div",y,[s.createElementVNode("div",{class:s.normalizeClass(o.labelClass)},[s.renderSlot(e.$slots,"value",{value:o.selectedNodes,placeholder:l.placeholder},(()=>["comma"===l.display?(s.openBlock(),s.createElementBlock(s.Fragment,{key:0},[s.createTextVNode(s.toDisplayString(o.label||"empty"),1)],64)):"chip"===l.display?(s.openBlock(),s.createElementBlock(s.Fragment,{key:1},[(s.openBlock(!0),s.createElementBlock(s.Fragment,null,s.renderList(o.selectedNodes,(e=>(s.openBlock(),s.createElementBlock("div",{class:"p-treeselect-token",key:e.key},[s.createElementVNode("span",m,s.toDisplayString(e.label),1)])))),128)),o.emptyValue?(s.openBlock(),s.createElementBlock(s.Fragment,{key:0},[s.createTextVNode(s.toDisplayString(l.placeholder||"empty"),1)],64)):s.createCommentVNode("",!0)],64)):s.createCommentVNode("",!0)]))],2)]),s.createElementVNode("div",f,[s.renderSlot(e.$slots,"indicator",{},(()=>[v]))]),s.createVNode(a,{appendTo:l.appendTo},{default:s.withCtx((()=>[s.createVNode(s.Transition,{name:"p-connected-overlay",onEnter:o.onOverlayEnter,onLeave:o.onOverlayLeave,onAfterLeave:o.onOverlayAfterLeave},{default:s.withCtx((()=>[n.overlayVisible?(s.openBlock(),s.createElementBlock("div",{key:0,ref:o.overlayRef,onClick:t[5]||(t[5]=(...e)=>o.onOverlayClick&&o.onOverlayClick(...e)),class:s.normalizeClass(o.panelStyleClass)},[s.renderSlot(e.$slots,"header",{value:l.modelValue,options:l.options}),s.createElementVNode("div",{class:"p-treeselect-items-wrapper",style:s.normalizeStyle({"max-height":l.scrollHeight})},[s.createVNode(r,{value:l.options,selectionMode:l.selectionMode,"onUpdate:selectionKeys":o.onSelectionChange,selectionKeys:l.modelValue,expandedKeys:n.expandedKeys,"onUpdate:expandedKeys":o.onNodeToggle,metaKeySelection:l.metaKeySelection,onNodeExpand:t[3]||(t[3]=t=>e.$emit("node-expand",t)),onNodeCollapse:t[4]||(t[4]=t=>e.$emit("node-collapse",t)),onNodeSelect:o.onNodeSelect,onNodeUnselect:o.onNodeUnselect},null,8,["value","selectionMode","onUpdate:selectionKeys","selectionKeys","expandedKeys","onUpdate:expandedKeys","metaKeySelection","onNodeSelect","onNodeUnselect"]),o.emptyOptions?(s.openBlock(),s.createElementBlock("div",b,[s.renderSlot(e.$slots,"empty",{},(()=>[s.createTextVNode(s.toDisplayString(o.emptyMessageText),1)]))])):s.createCommentVNode("",!0)],4),s.renderSlot(e.$slots,"footer",{value:l.modelValue,options:l.options})],2)):s.createCommentVNode("",!0)])),_:3},8,["onEnter","onLeave","onAfterLeave"])])),_:3},8,["appendTo"])],2)},module.exports=p;
1
+ "use strict";var e=require("primevue/utils"),t=require("primevue/overlayeventbus"),l=require("primevue/tree"),i=require("primevue/ripple"),n=require("primevue/portal"),s=require("vue");function o(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var r=o(t),a=o(l),d=o(i),c=o(n),p={name:"TreeSelect",emits:["update:modelValue","before-show","before-hide","change","show","hide","node-select","node-unselect","node-expand","node-collapse","focus","blur"],props:{modelValue:null,options:Array,scrollHeight:{type:String,default:"400px"},placeholder:String,disabled:Boolean,tabindex:String,selectionMode:{type:String,default:"single"},panelClass:{type:String,default:null},panelProps:null,appendTo:{type:String,default:"body"},emptyMessage:{type:String,default:null},display:{type:String,default:"comma"},metaKeySelection:{type:Boolean,default:!0},inputId:String,inputClass:String,inputStyle:null,inputProps:null,"aria-labelledby":{type:String,default:null},"aria-label":{type:String,default:null}},watch:{modelValue:{handler:function(){this.selfChange||this.updateTreeState(),this.selfChange=!1},immediate:!0},options(){this.updateTreeState()}},data:()=>({focused:!1,overlayVisible:!1,expandedKeys:{}}),outsideClickListener:null,resizeListener:null,scrollHandler:null,overlay:null,selfChange:!1,beforeUnmount(){this.unbindOutsideClickListener(),this.unbindResizeListener(),this.scrollHandler&&(this.scrollHandler.destroy(),this.scrollHandler=null),this.overlay&&(e.ZIndexUtils.clear(this.overlay),this.overlay=null)},mounted(){this.updateTreeState()},methods:{show(){this.$emit("before-show"),this.overlayVisible=!0},hide(){this.$emit("before-hide"),this.overlayVisible=!1,this.$refs.focusInput.focus()},onFocus(e){this.focused=!0,this.$emit("focus",e)},onBlur(e){this.focused=!1,this.$emit("blur",e)},onClick(t){this.disabled||this.overlay&&this.overlay.contains(t.target)||e.DomHandler.hasClass(t.target,"p-treeselect-close")||(this.overlayVisible?this.hide():this.show(),this.$refs.focusInput.focus())},onSelectionChange(e){this.selfChange=!0,this.$emit("update:modelValue",e),this.$emit("change",e)},onNodeSelect(e){this.$emit("node-select",e),"single"===this.selectionMode&&this.hide()},onNodeUnselect(e){this.$emit("node-unselect",e)},onNodeToggle(e){this.expandedKeys=e},onKeyDown(t){switch(t.code){case"Down":case"ArrowDown":this.overlayVisible?e.DomHandler.findSingle(this.overlay,".p-highlight")?e.DomHandler.findSingle(this.overlay,".p-highlight").focus():e.DomHandler.findSingle(this.overlay,".p-treenode").children[0].focus():this.show(),t.preventDefault();break;case"Space":case"Enter":this.overlayVisible?this.hide():this.show(),t.preventDefault();break;case"Escape":case"Tab":this.overlayVisible&&(this.hide(),t.preventDefault())}},onOverlayEnter(t){e.ZIndexUtils.set("overlay",t,this.$primevue.config.zIndex.overlay),this.alignOverlay(),this.bindOutsideClickListener(),this.bindScrollListener(),this.bindResizeListener(),this.scrollValueInView(),this.$emit("show")},onOverlayLeave(){this.unbindOutsideClickListener(),this.unbindScrollListener(),this.unbindResizeListener(),this.$emit("hide"),this.overlay=null},onOverlayAfterLeave(t){e.ZIndexUtils.clear(t)},alignOverlay(){"self"===this.appendTo?e.DomHandler.relativePosition(this.overlay,this.$el):(this.overlay.style.minWidth=e.DomHandler.getOuterWidth(this.$el)+"px",e.DomHandler.absolutePosition(this.overlay,this.$el))},bindOutsideClickListener(){this.outsideClickListener||(this.outsideClickListener=e=>{this.overlayVisible&&this.isOutsideClicked(e)&&this.hide()},document.addEventListener("click",this.outsideClickListener))},unbindOutsideClickListener(){this.outsideClickListener&&(document.removeEventListener("click",this.outsideClickListener),this.outsideClickListener=null)},bindScrollListener(){this.scrollHandler||(this.scrollHandler=new e.ConnectedOverlayScrollHandler(this.$refs.container,(()=>{this.overlayVisible&&this.hide()}))),this.scrollHandler.bindScrollListener()},unbindScrollListener(){this.scrollHandler&&this.scrollHandler.unbindScrollListener()},bindResizeListener(){this.resizeListener||(this.resizeListener=()=>{this.overlayVisible&&!e.DomHandler.isTouchDevice()&&this.hide()},window.addEventListener("resize",this.resizeListener))},unbindResizeListener(){this.resizeListener&&(window.removeEventListener("resize",this.resizeListener),this.resizeListener=null)},isOutsideClicked(e){return!(this.$el.isSameNode(e.target)||this.$el.contains(e.target)||this.overlay&&this.overlay.contains(e.target))},overlayRef(e){this.overlay=e},onOverlayClick(e){r.default.emit("overlay-click",{originalEvent:e,target:this.$el})},findSelectedNodes(e,t,l){if(e){if(this.isSelected(e,t)&&(l.push(e),delete t[e.key]),Object.keys(t).length&&e.children)for(let i of e.children)this.findSelectedNodes(i,t,l)}else for(let e of this.options)this.findSelectedNodes(e,t,l)},isSelected(e,t){return"checkbox"===this.selectionMode?t[e.key]&&t[e.key].checked:t[e.key]},updateTreeState(){let e={...this.modelValue};this.expandedKeys={},e&&this.options&&this.updateTreeBranchState(null,null,e)},updateTreeBranchState(e,t,l){if(e){if(this.isSelected(e,l)&&(this.expandPath(t),delete l[e.key]),Object.keys(l).length&&e.children)for(let i of e.children)t.push(e.key),this.updateTreeBranchState(i,t,l)}else for(let e of this.options)this.updateTreeBranchState(e,[],l)},expandPath(e){if(e.length>0)for(let t of e)this.expandedKeys[t]=!0},scrollValueInView(){if(this.overlay){let t=e.DomHandler.findSingle(this.overlay,"li.p-highlight");t&&t.scrollIntoView({block:"nearest",inline:"start"})}}},computed:{containerClass(){return["p-treeselect p-component p-inputwrapper",{"p-treeselect-chip":"chip"===this.display,"p-disabled":this.disabled,"p-focus":this.focused,"p-inputwrapper-filled":!this.emptyValue,"p-inputwrapper-focus":this.focused||this.overlayVisible}]},labelClass(){return["p-treeselect-label",{"p-placeholder":this.label===this.placeholder,"p-treeselect-label-empty":!this.placeholder&&this.emptyValue}]},panelStyleClass(){return["p-treeselect-panel p-component",this.panelClass,{"p-input-filled":"filled"===this.$primevue.config.inputStyle,"p-ripple-disabled":!1===this.$primevue.config.ripple}]},selectedNodes(){let e=[];if(this.modelValue&&this.options){let t={...this.modelValue};this.findSelectedNodes(null,t,e)}return e},label(){let e=this.selectedNodes;return e.length?e.map((e=>e.label)).join(", "):this.placeholder},emptyMessageText(){return this.emptyMessage||this.$primevue.config.locale.emptyMessage},emptyValue(){return!this.modelValue||0===Object.keys(this.modelValue).length},emptyOptions(){return!this.options||0===this.options.length},listId:()=>e.UniqueComponentId()+"_list"},components:{TSTree:a.default,Portal:c.default},directives:{ripple:d.default}};const h={class:"p-hidden-accessible"},u=["id","disabled","tabindex","aria-labelledby","aria-label","aria-expanded","aria-controls"],y={class:"p-treeselect-label-container"},m={class:"p-treeselect-token-label"},f=["aria-expanded"],b=s.createElementVNode("span",{class:"p-treeselect-trigger-icon pi pi-chevron-down"},null,-1),v={key:0,class:"p-treeselect-empty-message"};!function(e,t){void 0===t&&(t={});var l=t.insertAt;if(e&&"undefined"!=typeof document){var i=document.head||document.getElementsByTagName("head")[0],n=document.createElement("style");n.type="text/css","top"===l&&i.firstChild?i.insertBefore(n,i.firstChild):i.appendChild(n),n.styleSheet?n.styleSheet.cssText=e:n.appendChild(document.createTextNode(e))}}("\n.p-treeselect {\n display: -webkit-inline-box;\n display: -ms-inline-flexbox;\n display: inline-flex;\n cursor: pointer;\n position: relative;\n -webkit-user-select: none;\n -moz-user-select: none;\n -ms-user-select: none;\n user-select: none;\n}\n.p-treeselect-trigger {\n display: -webkit-box;\n display: -ms-flexbox;\n display: flex;\n -webkit-box-align: center;\n -ms-flex-align: center;\n align-items: center;\n -webkit-box-pack: center;\n -ms-flex-pack: center;\n justify-content: center;\n -ms-flex-negative: 0;\n flex-shrink: 0;\n}\n.p-treeselect-label-container {\n overflow: hidden;\n -webkit-box-flex: 1;\n -ms-flex: 1 1 auto;\n flex: 1 1 auto;\n cursor: pointer;\n}\n.p-treeselect-label {\n display: block;\n white-space: nowrap;\n cursor: pointer;\n overflow: hidden;\n text-overflow: ellipsis;\n}\n.p-treeselect-label-empty {\n overflow: hidden;\n visibility: hidden;\n}\n.p-treeselect-token {\n cursor: default;\n display: -webkit-inline-box;\n display: -ms-inline-flexbox;\n display: inline-flex;\n -webkit-box-align: center;\n -ms-flex-align: center;\n align-items: center;\n -webkit-box-flex: 0;\n -ms-flex: 0 0 auto;\n flex: 0 0 auto;\n}\n.p-treeselect .p-treeselect-panel {\n min-width: 100%;\n}\n.p-treeselect-panel {\n position: absolute;\n top: 0;\n left: 0;\n}\n.p-treeselect-items-wrapper {\n overflow: auto;\n}\n.p-fluid .p-treeselect {\n display: -webkit-box;\n display: -ms-flexbox;\n display: flex;\n}\n"),p.render=function(e,t,l,i,n,o){const r=s.resolveComponent("TSTree"),a=s.resolveComponent("Portal");return s.openBlock(),s.createElementBlock("div",{ref:"container",class:s.normalizeClass(o.containerClass),onClick:t[6]||(t[6]=(...e)=>o.onClick&&o.onClick(...e))},[s.createElementVNode("div",h,[s.createElementVNode("input",s.mergeProps({ref:"focusInput",type:"text",role:"combobox",id:l.inputId,class:l.inputClass,style:l.inputStyle,readonly:"",disabled:l.disabled,tabindex:l.disabled?-1:l.tabindex,"aria-labelledby":e.ariaLabelledby,"aria-label":e.ariaLabel,"aria-haspopup":"tree","aria-expanded":n.overlayVisible,"aria-controls":o.listId,onFocus:t[0]||(t[0]=e=>o.onFocus(e)),onBlur:t[1]||(t[1]=e=>o.onBlur(e)),onKeydown:t[2]||(t[2]=e=>o.onKeyDown(e))},l.inputProps),null,16,u)]),s.createElementVNode("div",y,[s.createElementVNode("div",{class:s.normalizeClass(o.labelClass)},[s.renderSlot(e.$slots,"value",{value:o.selectedNodes,placeholder:l.placeholder},(()=>["comma"===l.display?(s.openBlock(),s.createElementBlock(s.Fragment,{key:0},[s.createTextVNode(s.toDisplayString(o.label||"empty"),1)],64)):"chip"===l.display?(s.openBlock(),s.createElementBlock(s.Fragment,{key:1},[(s.openBlock(!0),s.createElementBlock(s.Fragment,null,s.renderList(o.selectedNodes,(e=>(s.openBlock(),s.createElementBlock("div",{class:"p-treeselect-token",key:e.key},[s.createElementVNode("span",m,s.toDisplayString(e.label),1)])))),128)),o.emptyValue?(s.openBlock(),s.createElementBlock(s.Fragment,{key:0},[s.createTextVNode(s.toDisplayString(l.placeholder||"empty"),1)],64)):s.createCommentVNode("",!0)],64)):s.createCommentVNode("",!0)]))],2)]),s.createElementVNode("div",{class:"p-treeselect-trigger",role:"button","aria-haspopup":"tree","aria-expanded":n.overlayVisible},[s.renderSlot(e.$slots,"indicator",{},(()=>[b]))],8,f),s.createVNode(a,{appendTo:l.appendTo},{default:s.withCtx((()=>[s.createVNode(s.Transition,{name:"p-connected-overlay",onEnter:o.onOverlayEnter,onLeave:o.onOverlayLeave,onAfterLeave:o.onOverlayAfterLeave},{default:s.withCtx((()=>[n.overlayVisible?(s.openBlock(),s.createElementBlock("div",s.mergeProps({key:0,ref:o.overlayRef,onClick:t[5]||(t[5]=(...e)=>o.onOverlayClick&&o.onOverlayClick(...e)),class:o.panelStyleClass},l.panelProps),[s.renderSlot(e.$slots,"header",{value:l.modelValue,options:l.options}),s.createElementVNode("div",{class:"p-treeselect-items-wrapper",style:s.normalizeStyle({"max-height":l.scrollHeight})},[s.createVNode(r,{id:o.listId,value:l.options,selectionMode:l.selectionMode,"onUpdate:selectionKeys":o.onSelectionChange,selectionKeys:l.modelValue,expandedKeys:n.expandedKeys,"onUpdate:expandedKeys":o.onNodeToggle,metaKeySelection:l.metaKeySelection,onNodeExpand:t[3]||(t[3]=t=>e.$emit("node-expand",t)),onNodeCollapse:t[4]||(t[4]=t=>e.$emit("node-collapse",t)),onNodeSelect:o.onNodeSelect,onNodeUnselect:o.onNodeUnselect,level:0},null,8,["id","value","selectionMode","onUpdate:selectionKeys","selectionKeys","expandedKeys","onUpdate:expandedKeys","metaKeySelection","onNodeSelect","onNodeUnselect"]),o.emptyOptions?(s.openBlock(),s.createElementBlock("div",v,[s.renderSlot(e.$slots,"empty",{},(()=>[s.createTextVNode(s.toDisplayString(o.emptyMessageText),1)]))])):s.createCommentVNode("",!0)],4),s.renderSlot(e.$slots,"footer",{value:l.modelValue,options:l.options})],16)):s.createCommentVNode("",!0)])),_:3},8,["onEnter","onLeave","onAfterLeave"])])),_:3},8,["appendTo"])],2)},module.exports=p;