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
@@ -10,144 +10,64 @@ this.primevue.cascadeselect = (function (utils, OverlayEventBus, Ripple, vue, Po
10
10
 
11
11
  var script$1 = {
12
12
  name: 'CascadeSelectSub',
13
- emits: ['option-select','optiongroup-select'],
13
+ emits: ['option-change'],
14
14
  props: {
15
- selectionPath: Array,
16
- level: Number,
15
+ selectId: String,
16
+ focusedOptionId: String,
17
17
  options: Array,
18
18
  optionLabel: String,
19
19
  optionValue: String,
20
+ optionDisabled: null,
20
21
  optionGroupLabel: String,
21
22
  optionGroupChildren: Array,
22
- parentActive: Boolean,
23
- dirty: Boolean,
24
- templates: null,
25
- root: Boolean
26
- },
27
- data() {
28
- return {
29
- activeOption: null
30
- }
23
+ activeOptionPath: Array,
24
+ level: Number,
25
+ templates: null
31
26
  },
32
27
  mounted() {
33
- if (this.selectionPath && this.options && !this.dirty) {
34
- for (let option of this.options) {
35
- if (this.selectionPath.includes(option)) {
36
- this.activeOption = option;
37
- break;
38
- }
39
- }
40
- }
41
-
42
- if (!this.root) {
28
+ if (utils.ObjectUtils.isNotEmpty(this.parentKey)) {
43
29
  this.position();
44
30
  }
45
31
  },
46
- watch: {
47
- parentActive(newValue) {
48
- if (!newValue) {
49
- this.activeOption = null;
50
- }
51
- }
52
- },
53
32
  methods: {
54
- onOptionClick(event, option) {
55
- if (this.isOptionGroup(option)) {
56
- this.activeOption = (this.activeOption === option) ? null : option;
57
-
58
- this.$emit('optiongroup-select', {
59
- originalEvent: event,
60
- value: option
61
- });
62
- }
63
- else {
64
- this.$emit('option-select', {
65
- originalEvent: event,
66
- value: this.getOptionValue(option)
67
- });
68
- }
33
+ getOptionId(processedOption) {
34
+ return `${this.selectId}_${processedOption.key}`;
69
35
  },
70
- onOptionSelect(event) {
71
- this.$emit('option-select', event);
36
+ getOptionLabel(processedOption) {
37
+ return this.optionLabel ? utils.ObjectUtils.resolveFieldData(processedOption.option, this.optionLabel) : processedOption.option;
72
38
  },
73
- onOptionGroupSelect(event) {
74
- this.$emit('optiongroup-select', event);
39
+ getOptionValue(processedOption) {
40
+ return this.optionValue ? utils.ObjectUtils.resolveFieldData(processedOption.option, this.optionValue) : processedOption.option;
75
41
  },
76
- getOptionLabel(option) {
77
- return this.optionLabel ? utils.ObjectUtils.resolveFieldData(option, this.optionLabel) : option;
42
+ isOptionDisabled(processedOption) {
43
+ return this.optionDisabled ? utils.ObjectUtils.resolveFieldData(processedOption.option, this.optionDisabled) : false;
78
44
  },
79
- getOptionValue(option) {
80
- return this.optionValue ? utils.ObjectUtils.resolveFieldData(option, this.optionValue) : option;
45
+ getOptionGroupLabel(processedOption) {
46
+ return this.optionGroupLabel ? utils.ObjectUtils.resolveFieldData(processedOption.option, this.optionGroupLabel) : null;
81
47
  },
82
- getOptionGroupLabel(optionGroup) {
83
- return this.optionGroupLabel ? utils.ObjectUtils.resolveFieldData(optionGroup, this.optionGroupLabel) : null;
48
+ getOptionGroupChildren(processedOption) {
49
+ return processedOption.children;
84
50
  },
85
- getOptionGroupChildren(optionGroup) {
86
- return utils.ObjectUtils.resolveFieldData(optionGroup, this.optionGroupChildren[this.level]);
51
+ isOptionGroup(processedOption) {
52
+ return utils.ObjectUtils.isNotEmpty(processedOption.children);
87
53
  },
88
- isOptionGroup(option) {
89
- return Object.prototype.hasOwnProperty.call(option, this.optionGroupChildren[this.level]);
54
+ isOptionSelected(processedOption) {
55
+ return !this.isOptionGroup(processedOption) && this.isOptionActive(processedOption);
90
56
  },
91
- getOptionLabelToRender(option) {
92
- return this.isOptionGroup(option) ? this.getOptionGroupLabel(option) : this.getOptionLabel(option);
57
+ isOptionActive(processedOption) {
58
+ return this.activeOptionPath.some(path => path.key === processedOption.key);
93
59
  },
94
- getItemClass(option) {
95
- return [
96
- 'p-cascadeselect-item', {
97
- 'p-cascadeselect-item-group': this.isOptionGroup(option),
98
- 'p-cascadeselect-item-active p-highlight': this.isOptionActive(option)
99
- }
100
- ]
60
+ isOptionFocused(processedOption) {
61
+ return this.focusedOptionId === this.getOptionId(processedOption);
101
62
  },
102
- isOptionActive(option) {
103
- return this.activeOption === option;
63
+ getOptionLabelToRender(processedOption) {
64
+ return this.isOptionGroup(processedOption) ? this.getOptionGroupLabel(processedOption) : this.getOptionLabel(processedOption);
104
65
  },
105
- onKeyDown(event, option, index) {
106
- switch (event.key) {
107
- case 'Down':
108
- case 'ArrowDown':
109
- var nextItem = this.$el.children[index + 1];
110
- if (nextItem) {
111
- nextItem.children[0].focus();
112
- }
113
- break;
114
-
115
- case 'Up':
116
- case 'ArrowUp':
117
- var prevItem = this.$el.children[index - 1];
118
- if (prevItem) {
119
- prevItem.children[0].focus();
120
- }
121
- break;
122
-
123
- case 'Right':
124
- case 'ArrowRight':
125
- if (this.isOptionGroup(option)) {
126
- if (this.isOptionActive(option)) {
127
- event.currentTarget.nextElementSibling.children[0].children[0].focus();
128
- }
129
- else {
130
- this.activeOption = option;
131
- }
132
- }
133
- break;
134
-
135
- case 'Left':
136
- case 'ArrowLeft':
137
- this.activeOption = null;
138
-
139
- var parentList = event.currentTarget.parentElement.parentElement.previousElementSibling;
140
- if (parentList) {
141
- parentList.focus();
142
- }
143
- break;
144
-
145
- case 'Enter':
146
- this.onOptionClick(event, option);
147
- break;
148
- }
149
-
150
- event.preventDefault();
66
+ onOptionClick(event, processedOption) {
67
+ this.$emit('option-change', { originalEvent: event, processedOption, isFocus: true });
68
+ },
69
+ onOptionChange(event) {
70
+ this.$emit('option-change', event);
151
71
  },
152
72
  position() {
153
73
  const parentItem = this.$el.parentElement;
@@ -166,19 +86,17 @@ this.primevue.cascadeselect = (function (utils, OverlayEventBus, Ripple, vue, Po
166
86
  }
167
87
  };
168
88
 
169
- const _hoisted_1$1 = {
170
- class: "p-cascadeselect-panel p-cascadeselect-items",
171
- role: "listbox",
172
- "aria-orientation": "horizontal"
173
- };
174
- const _hoisted_2$1 = ["onClick", "onKeydown"];
175
- const _hoisted_3$1 = {
89
+ const _hoisted_1$1 = { class: "p-cascadeselect-panel p-cascadeselect-items" };
90
+ const _hoisted_2$1 = ["id", "aria-label", "aria-selected", "aria-expanded", "aria-setsize", "aria-posinset", "aria-level"];
91
+ const _hoisted_3$1 = ["onClick"];
92
+ const _hoisted_4$1 = {
176
93
  key: 1,
177
94
  class: "p-cascadeselect-item-text"
178
95
  };
179
- const _hoisted_4$1 = {
96
+ const _hoisted_5$1 = {
180
97
  key: 2,
181
- class: "p-cascadeselect-group-icon pi pi-angle-right"
98
+ class: "p-cascadeselect-group-icon pi pi-angle-right",
99
+ "aria-hidden": "true"
182
100
  };
183
101
 
184
102
  function render$1(_ctx, _cache, $props, $setup, $data, $options) {
@@ -186,49 +104,55 @@ this.primevue.cascadeselect = (function (utils, OverlayEventBus, Ripple, vue, Po
186
104
  const _directive_ripple = vue.resolveDirective("ripple");
187
105
 
188
106
  return (vue.openBlock(), vue.createElementBlock("ul", _hoisted_1$1, [
189
- (vue.openBlock(true), vue.createElementBlock(vue.Fragment, null, vue.renderList($props.options, (option, i) => {
107
+ (vue.openBlock(true), vue.createElementBlock(vue.Fragment, null, vue.renderList($props.options, (processedOption, index) => {
190
108
  return (vue.openBlock(), vue.createElementBlock("li", {
191
- key: $options.getOptionLabelToRender(option),
192
- class: vue.normalizeClass($options.getItemClass(option)),
193
- role: "none"
109
+ key: $options.getOptionLabelToRender(processedOption),
110
+ id: $options.getOptionId(processedOption),
111
+ class: vue.normalizeClass(['p-cascadeselect-item', {'p-cascadeselect-item-group': $options.isOptionGroup(processedOption), 'p-cascadeselect-item-active p-highlight': $options.isOptionActive(processedOption), 'p-focus': $options.isOptionFocused(processedOption), 'p-disabled': $options.isOptionDisabled(processedOption)}]),
112
+ role: "treeitem",
113
+ "aria-label": $options.getOptionLabelToRender(processedOption),
114
+ "aria-selected": $options.isOptionGroup(processedOption) ? undefined : $options.isOptionSelected(processedOption),
115
+ "aria-expanded": $options.isOptionGroup(processedOption) ? $options.isOptionActive(processedOption) : undefined,
116
+ "aria-setsize": processedOption.length,
117
+ "aria-posinset": index + 1,
118
+ "aria-level": $props.level + 1
194
119
  }, [
195
120
  vue.withDirectives((vue.openBlock(), vue.createElementBlock("div", {
196
121
  class: "p-cascadeselect-item-content",
197
- onClick: $event => ($options.onOptionClick($event, option)),
198
- tabindex: "0",
199
- onKeydown: $event => ($options.onKeyDown($event, option, i))
122
+ onClick: $event => ($options.onOptionClick($event, processedOption))
200
123
  }, [
201
124
  ($props.templates['option'])
202
125
  ? (vue.openBlock(), vue.createBlock(vue.resolveDynamicComponent($props.templates['option']), {
203
126
  key: 0,
204
- option: option
127
+ option: processedOption.option
205
128
  }, null, 8, ["option"]))
206
- : (vue.openBlock(), vue.createElementBlock("span", _hoisted_3$1, vue.toDisplayString($options.getOptionLabelToRender(option)), 1)),
207
- ($options.isOptionGroup(option))
208
- ? (vue.openBlock(), vue.createElementBlock("span", _hoisted_4$1))
129
+ : (vue.openBlock(), vue.createElementBlock("span", _hoisted_4$1, vue.toDisplayString($options.getOptionLabelToRender(processedOption)), 1)),
130
+ ($options.isOptionGroup(processedOption))
131
+ ? (vue.openBlock(), vue.createElementBlock("span", _hoisted_5$1))
209
132
  : vue.createCommentVNode("", true)
210
- ], 40, _hoisted_2$1)), [
133
+ ], 8, _hoisted_3$1)), [
211
134
  [_directive_ripple]
212
135
  ]),
213
- ($options.isOptionGroup(option) && $options.isOptionActive(option))
136
+ ($options.isOptionGroup(processedOption) && $options.isOptionActive(processedOption))
214
137
  ? (vue.openBlock(), vue.createBlock(_component_CascadeSelectSub, {
215
138
  key: 0,
139
+ role: "group",
216
140
  class: "p-cascadeselect-sublist",
217
- selectionPath: $props.selectionPath,
218
- options: $options.getOptionGroupChildren(option),
141
+ selectId: $props.selectId,
142
+ focusedOptionId: $props.focusedOptionId,
143
+ options: $options.getOptionGroupChildren(processedOption),
144
+ activeOptionPath: $props.activeOptionPath,
145
+ level: $props.level + 1,
146
+ templates: $props.templates,
219
147
  optionLabel: $props.optionLabel,
220
148
  optionValue: $props.optionValue,
221
- level: $props.level + 1,
222
- onOptionSelect: $options.onOptionSelect,
223
- onOptiongroupSelect: $options.onOptionGroupSelect,
149
+ optionDisabled: $props.optionDisabled,
224
150
  optionGroupLabel: $props.optionGroupLabel,
225
151
  optionGroupChildren: $props.optionGroupChildren,
226
- parentActive: $options.isOptionActive(option),
227
- dirty: $props.dirty,
228
- templates: $props.templates
229
- }, null, 8, ["selectionPath", "options", "optionLabel", "optionValue", "level", "onOptionSelect", "onOptiongroupSelect", "optionGroupLabel", "optionGroupChildren", "parentActive", "dirty", "templates"]))
152
+ onOptionChange: $options.onOptionChange
153
+ }, null, 8, ["selectId", "focusedOptionId", "options", "activeOptionPath", "level", "templates", "optionLabel", "optionValue", "optionDisabled", "optionGroupLabel", "optionGroupChildren", "onOptionChange"]))
230
154
  : vue.createCommentVNode("", true)
231
- ], 2))
155
+ ], 10, _hoisted_2$1))
232
156
  }), 128))
233
157
  ]))
234
158
  }
@@ -237,33 +161,29 @@ this.primevue.cascadeselect = (function (utils, OverlayEventBus, Ripple, vue, Po
237
161
 
238
162
  var script = {
239
163
  name: 'CascadeSelect',
240
- emits: ['update:modelValue','change','group-change', 'before-show','before-hide','hide','show'],
241
- data() {
242
- return {
243
- selectionPath: null,
244
- focused: false,
245
- overlayVisible: false,
246
- dirty: false
247
- };
248
- },
164
+ emits: ['update:modelValue', 'change', 'focus', 'blur', 'click', 'group-change', 'before-show', 'before-hide', 'hide', 'show'],
249
165
  props: {
250
166
  modelValue: null,
251
167
  options: Array,
252
- optionLabel: String,
253
- optionValue: String,
254
- optionGroupLabel: String,
255
- optionGroupChildren: Array,
168
+ optionLabel: null,
169
+ optionValue: null,
170
+ optionDisabled: null,
171
+ optionGroupLabel: null,
172
+ optionGroupChildren: null,
256
173
  placeholder: String,
257
174
  disabled: Boolean,
258
175
  dataKey: null,
259
- inputId: String,
260
- tabindex: String,
261
- ariaLabelledBy: null,
176
+ inputId: null,
177
+ inputStyle: null,
178
+ inputClass: null,
179
+ inputProps: null,
180
+ panelStyle: null,
181
+ panelClass: null,
182
+ panelProps: null,
262
183
  appendTo: {
263
184
  type: String,
264
185
  default: 'body'
265
186
  },
266
- panelClass: null,
267
187
  loading: {
268
188
  type: Boolean,
269
189
  default: false
@@ -271,12 +191,74 @@ this.primevue.cascadeselect = (function (utils, OverlayEventBus, Ripple, vue, Po
271
191
  loadingIcon: {
272
192
  type: String,
273
193
  default: 'pi pi-spinner pi-spin'
194
+ },
195
+ autoOptionFocus: {
196
+ type: Boolean,
197
+ default: true
198
+ },
199
+ searchLocale: {
200
+ type: String,
201
+ default: undefined
202
+ },
203
+ searchMessage: {
204
+ type: String,
205
+ default: null
206
+ },
207
+ selectionMessage: {
208
+ type: String,
209
+ default: null
210
+ },
211
+ emptySelectionMessage: {
212
+ type: String,
213
+ default: null
214
+ },
215
+ emptySearchMessage: {
216
+ type: String,
217
+ default: null
218
+ },
219
+ emptyMessage: {
220
+ type: String,
221
+ default: null
222
+ },
223
+ tabindex: {
224
+ type: Number,
225
+ default: 0
226
+ },
227
+ 'aria-labelledby': {
228
+ type: String,
229
+ default: null
230
+ },
231
+ 'aria-label': {
232
+ type: String,
233
+ default: null
274
234
  }
275
235
  },
276
236
  outsideClickListener: null,
277
237
  scrollHandler: null,
278
238
  resizeListener: null,
279
239
  overlay: null,
240
+ searchTimeout: null,
241
+ searchValue: null,
242
+ selectOnFocus: false,
243
+ focusOnHover: false,
244
+ data() {
245
+ return {
246
+ id: utils.UniqueComponentId(),
247
+ focused: false,
248
+ focusedOptionInfo: { index: -1, level: 0, parentKey: '' },
249
+ activeOptionPath: [],
250
+ overlayVisible: false,
251
+ dirty: false
252
+ }
253
+ },
254
+ watch: {
255
+ options() {
256
+ this.autoUpdateModel();
257
+ }
258
+ },
259
+ mounted() {
260
+ this.id = this.$attrs.id || this.id;
261
+ },
280
262
  beforeUnmount() {
281
263
  this.unbindOutsideClickListener();
282
264
  this.unbindResizeListener();
@@ -291,107 +273,314 @@ this.primevue.cascadeselect = (function (utils, OverlayEventBus, Ripple, vue, Po
291
273
  this.overlay = null;
292
274
  }
293
275
  },
294
- mounted() {
295
- this.updateSelectionPath();
296
- },
297
- watch: {
298
- modelValue() {
299
- this.updateSelectionPath();
300
- }
301
- },
302
276
  methods: {
303
- onOptionSelect(event) {
304
- this.$emit('update:modelValue', event.value);
305
- this.$emit('change', event);
306
- this.hide();
307
- this.$refs.focusInput.focus();
308
- },
309
- onOptionGroupSelect(event) {
310
- this.dirty = true;
311
- this.$emit('group-change', event);
312
- },
313
277
  getOptionLabel(option) {
314
278
  return this.optionLabel ? utils.ObjectUtils.resolveFieldData(option, this.optionLabel) : option;
315
279
  },
316
280
  getOptionValue(option) {
317
281
  return this.optionValue ? utils.ObjectUtils.resolveFieldData(option, this.optionValue) : option;
318
282
  },
283
+ isOptionDisabled(option) {
284
+ return this.optionDisabled ? utils.ObjectUtils.resolveFieldData(option, this.optionDisabled) : false;
285
+ },
286
+ getOptionGroupLabel(optionGroup) {
287
+ return this.optionGroupLabel ? utils.ObjectUtils.resolveFieldData(optionGroup, this.optionGroupLabel) : null;
288
+ },
319
289
  getOptionGroupChildren(optionGroup, level) {
320
290
  return utils.ObjectUtils.resolveFieldData(optionGroup, this.optionGroupChildren[level]);
321
291
  },
322
292
  isOptionGroup(option, level) {
323
293
  return Object.prototype.hasOwnProperty.call(option, this.optionGroupChildren[level]);
324
294
  },
325
- updateSelectionPath() {
326
- let path;
327
- if (this.modelValue != null && this.options) {
328
- for (let option of this.options) {
329
- path = this.findModelOptionInGroup(option, 0);
330
- if (path) {
331
- break;
332
- }
333
- }
334
- }
335
-
336
- this.selectionPath = path;
295
+ getProccessedOptionLabel(processedOption) {
296
+ const grouped = this.isProccessedOptionGroup(processedOption);
297
+ return grouped ? this.getOptionGroupLabel(processedOption.option, processedOption.level) : this.getOptionLabel(processedOption.option);
337
298
  },
338
- findModelOptionInGroup(option, level) {
339
- if (this.isOptionGroup(option, level)) {
340
- let selectedOption;
341
- for (let childOption of this.getOptionGroupChildren(option, level)) {
342
- selectedOption = this.findModelOptionInGroup(childOption, level + 1);
343
- if (selectedOption) {
344
- selectedOption.unshift(option);
345
- return selectedOption;
346
- }
347
- }
348
- }
349
- else if ((utils.ObjectUtils.equals(this.modelValue, this.getOptionValue(option), this.dataKey))) {
350
- return [option];
351
- }
352
-
353
- return null;
299
+ isProccessedOptionGroup(processedOption) {
300
+ return utils.ObjectUtils.isNotEmpty(processedOption.children);
354
301
  },
355
- show() {
302
+ show(isFocus) {
356
303
  this.$emit('before-show');
357
304
  this.overlayVisible = true;
305
+ this.activeOptionPath = this.findOptionPathByValue(this.modelValue);
306
+
307
+ if (this.hasSelectedOption && utils.ObjectUtils.isNotEmpty(this.activeOptionPath)) {
308
+ const processedOption = this.activeOptionPath[this.activeOptionPath.length - 1];
309
+ this.focusedOptionInfo = { index: (this.autoOptionFocus ? processedOption.index : -1), level: processedOption.level, parentKey: processedOption.parentKey };
310
+ }
311
+ else {
312
+ this.focusedOptionInfo = { index: (this.autoOptionFocus ? this.findFirstFocusedOptionIndex() : -1), level: 0, parentKey: '' };
313
+ }
314
+
315
+ isFocus && this.$refs.focusInput.focus();
358
316
  },
359
- hide() {
360
- this.$emit('before-hide');
361
- this.overlayVisible = false;
317
+ hide(isFocus) {
318
+ const _hide = () => {
319
+ this.$emit('before-hide');
320
+ this.overlayVisible = false;
321
+ this.activeOptionPath = [];
322
+ this.focusedOptionInfo = { index: -1, level: 0, parentKey: '' };
323
+
324
+ isFocus && this.$refs.focusInput.focus();
325
+ };
326
+
327
+ setTimeout(() => { _hide(); }, 0); // For ScreenReaders
362
328
  },
363
- onFocus() {
329
+ onFocus(event) {
364
330
  this.focused = true;
331
+ this.$emit('focus', event);
365
332
  },
366
- onBlur() {
333
+ onBlur(event) {
367
334
  this.focused = false;
335
+ this.focusedOptionInfo = { index: -1, level: 0, parentKey: '' };
336
+ this.searchValue = '';
337
+ this.$emit('blur', event);
368
338
  },
369
- onClick(event) {
339
+ onKeyDown(event) {
370
340
  if (this.disabled || this.loading) {
341
+ event.preventDefault();
371
342
  return;
372
343
  }
373
344
 
374
- if (!this.overlay || !this.overlay.contains(event.target)) {
375
- if (this.overlayVisible)
376
- this.hide();
377
- else
378
- this.show();
345
+ switch (event.code) {
346
+ case 'ArrowDown':
347
+ this.onArrowDownKey(event);
348
+ break;
349
+
350
+ case 'ArrowUp':
351
+ this.onArrowUpKey(event);
352
+ break;
353
+
354
+ case 'ArrowLeft':
355
+ this.onArrowLeftKey(event);
356
+ break;
357
+
358
+ case 'ArrowRight':
359
+ this.onArrowRightKey(event);
360
+ break;
361
+
362
+ case 'Home':
363
+ this.onHomeKey(event);
364
+ break;
365
+
366
+ case 'End':
367
+ this.onEndKey(event);
368
+ break;
369
+
370
+ case 'Space':
371
+ this.onSpaceKey(event);
372
+ break;
373
+
374
+ case 'Enter':
375
+ this.onEnterKey(event);
376
+ break;
377
+
378
+ case 'Escape':
379
+ this.onEscapeKey(event);
380
+ break;
381
+
382
+ case 'Tab':
383
+ this.onTabKey(event);
384
+ break;
385
+
386
+ case 'PageDown':
387
+ case 'PageUp':
388
+ case 'Backspace':
389
+ case 'ShiftLeft':
390
+ case 'ShiftRight':
391
+ //NOOP
392
+ break;
393
+
394
+ default:
395
+ if (utils.ObjectUtils.isPrintableCharacter(event.key)) {
396
+ !this.overlayVisible && this.show();
397
+ this.searchOptions(event, event.key);
398
+ }
399
+
400
+ break;
401
+ }
402
+ },
403
+ onOptionChange(event) {
404
+ const { originalEvent, processedOption, isFocus } = event;
405
+ const { index, level, parentKey, children } = processedOption;
406
+ const grouped = utils.ObjectUtils.isNotEmpty(children);
407
+
408
+ const activeOptionPath = this.activeOptionPath.filter(p => p.parentKey !== parentKey);
409
+ activeOptionPath.push(processedOption);
410
+
411
+ this.focusedOptionInfo = { index, level, parentKey };
412
+ this.activeOptionPath = activeOptionPath;
413
+
414
+ grouped ? this.onOptionGroupSelect(originalEvent, processedOption) : this.onOptionSelect(originalEvent, processedOption);
415
+ isFocus && this.$refs.focusInput.focus();
416
+ },
417
+ onOptionSelect(event, processedOption) {
418
+ const value = this.getOptionValue(processedOption.option);
419
+
420
+ this.activeOptionPath.forEach(p => p.selected = true);
421
+ this.updateModel(event, value);
422
+ this.hide(true);
423
+ },
424
+ onOptionGroupSelect(event, processedOption) {
425
+ this.dirty = true;
426
+ this.$emit('group-change', { originalEvent: event, value: processedOption.option });
427
+ },
428
+ onContainerClick(event) {
429
+ if (this.disabled || this.loading) {
430
+ return;
431
+ }
379
432
 
433
+ if (!this.overlay || !this.overlay.contains(event.target)) {
434
+ this.overlayVisible ? this.hide() : this.show();
380
435
  this.$refs.focusInput.focus();
381
436
  }
437
+
438
+ this.$emit('click', event);
439
+ },
440
+ onOverlayClick(event) {
441
+ OverlayEventBus__default["default"].emit('overlay-click', {
442
+ originalEvent: event,
443
+ target: this.$el
444
+ });
445
+ },
446
+ onOverlayKeyDown(event) {
447
+ switch (event.code) {
448
+ case 'Escape':
449
+ this.onEscapeKey(event);
450
+ break;
451
+ }
452
+ },
453
+ onArrowDownKey(event) {
454
+ const optionIndex = this.focusedOptionInfo.index !== -1 ? this.findNextOptionIndex(this.focusedOptionInfo.index) : this.findFirstFocusedOptionIndex();
455
+
456
+ this.changeFocusedOptionIndex(event, optionIndex);
457
+
458
+ !this.overlayVisible && this.show();
459
+ event.preventDefault();
460
+ },
461
+ onArrowUpKey(event) {
462
+ if (event.altKey) {
463
+ if (this.focusedOptionInfo.index !== -1) {
464
+ const processedOption = this.visibleOptions[this.focusedOptionInfo.index];
465
+ const grouped = this.isProccessedOptionGroup(processedOption);
466
+ !grouped && this.onOptionChange({ originalEvent: event, processedOption });
467
+ }
468
+
469
+ this.overlayVisible && this.hide();
470
+ event.preventDefault();
471
+ }
472
+ else {
473
+ const optionIndex = this.focusedOptionInfo.index !== -1 ? this.findPrevOptionIndex(this.focusedOptionInfo.index) : this.findLastFocusedOptionIndex();
474
+
475
+ this.changeFocusedOptionIndex(event, optionIndex);
476
+
477
+ !this.overlayVisible && this.show();
478
+ event.preventDefault();
479
+ }
480
+ },
481
+ onArrowLeftKey(event) {
482
+ if (this.overlayVisible) {
483
+ const processedOption = this.visibleOptions[this.focusedOptionInfo.index];
484
+ const parentOption = this.activeOptionPath.find(p => p.key === processedOption.parentKey);
485
+ const matched = this.focusedOptionInfo.parentKey === '' || (parentOption && parentOption.key === this.focusedOptionInfo.parentKey);
486
+ const root = utils.ObjectUtils.isEmpty(processedOption.parent);
487
+
488
+ if (matched) {
489
+ this.activeOptionPath = this.activeOptionPath.filter(p => p.parentKey !== this.focusedOptionInfo.parentKey);
490
+ }
491
+
492
+ if (!root) {
493
+ this.focusedOptionInfo = { index: -1, parentKey: parentOption ? parentOption.parentKey : '' };
494
+ this.searchValue = '';
495
+ this.onArrowDownKey(event);
496
+ }
497
+
498
+ event.preventDefault();
499
+ }
500
+ },
501
+ onArrowRightKey(event) {
502
+ if (this.overlayVisible) {
503
+ const processedOption = this.visibleOptions[this.focusedOptionInfo.index];
504
+ const grouped = this.isProccessedOptionGroup(processedOption);
505
+
506
+ if (grouped) {
507
+ const matched = this.activeOptionPath.some(p => processedOption.key === p.key);
508
+
509
+ if (matched) {
510
+ this.focusedOptionInfo = { index: -1, parentKey: processedOption.key };
511
+ this.searchValue = '';
512
+ this.onArrowDownKey(event);
513
+ }
514
+ else {
515
+ this.onOptionChange({ originalEvent: event, processedOption });
516
+ }
517
+ }
518
+
519
+ event.preventDefault();
520
+ }
521
+ },
522
+ onHomeKey(event) {
523
+ this.changeFocusedOptionIndex(event, this.findFirstOptionIndex());
524
+
525
+ !this.overlayVisible && this.show();
526
+ event.preventDefault();
527
+ },
528
+ onEndKey(event) {
529
+ this.changeFocusedOptionIndex(event, this.findLastOptionIndex());
530
+
531
+ !this.overlayVisible && this.show();
532
+ event.preventDefault();
533
+ },
534
+ onEnterKey(event) {
535
+ if (!this.overlayVisible) {
536
+ this.onArrowDownKey(event);
537
+ }
538
+ else {
539
+ if (this.focusedOptionInfo.index !== -1) {
540
+ const processedOption = this.visibleOptions[this.focusedOptionInfo.index];
541
+ const grouped = this.isProccessedOptionGroup(processedOption);
542
+
543
+ this.onOptionChange({ originalEvent: event, processedOption });
544
+ !grouped && this.hide();
545
+ }
546
+ }
547
+
548
+ event.preventDefault();
549
+ },
550
+ onSpaceKey(event) {
551
+ this.onEnterKey(event);
552
+ },
553
+ onEscapeKey(event) {
554
+ this.overlayVisible && this.hide(true);
555
+ event.preventDefault();
556
+ },
557
+ onTabKey(event) {
558
+ if (this.focusedOptionInfo.index !== -1) {
559
+ const processedOption = this.visibleOptions[this.focusedOptionInfo.index];
560
+ const grouped = this.isProccessedOptionGroup(processedOption);
561
+
562
+ !grouped && this.onOptionChange({ originalEvent: event, processedOption });
563
+ }
564
+
565
+ this.overlayVisible && this.hide();
382
566
  },
383
567
  onOverlayEnter(el) {
384
568
  utils.ZIndexUtils.set('overlay', el, this.$primevue.config.zIndex.overlay);
385
569
  this.alignOverlay();
570
+ this.scrollInView();
571
+ },
572
+ onOverlayAfterEnter() {
386
573
  this.bindOutsideClickListener();
387
574
  this.bindScrollListener();
388
575
  this.bindResizeListener();
576
+
389
577
  this.$emit('show');
390
578
  },
391
579
  onOverlayLeave() {
392
580
  this.unbindOutsideClickListener();
393
581
  this.unbindScrollListener();
394
582
  this.unbindResizeListener();
583
+
395
584
  this.$emit('hide');
396
585
  this.overlay = null;
397
586
  this.dirty = false;
@@ -456,67 +645,168 @@ this.primevue.cascadeselect = (function (utils, OverlayEventBus, Ripple, vue, Po
456
645
  this.resizeListener = null;
457
646
  }
458
647
  },
459
- overlayRef(el) {
460
- this.overlay = el;
648
+ isOptionMatched(processedOption) {
649
+ return this.isValidOption(processedOption) && this.getProccessedOptionLabel(processedOption).toLocaleLowerCase(this.searchLocale).startsWith(this.searchValue.toLocaleLowerCase(this.searchLocale));
461
650
  },
462
- onKeyDown(event) {
463
- switch(event.key) {
464
- case 'Down':
465
- case 'ArrowDown':
466
- if (this.overlayVisible) {
467
- utils.DomHandler.findSingle(this.overlay, '.p-cascadeselect-item').children[0].focus();
468
- }
469
- else if (event.altKey && this.options && this.options.length) {
470
- this.show();
471
- }
472
- event.preventDefault();
473
- break;
651
+ isValidOption(processedOption) {
652
+ return !!processedOption && !this.isOptionDisabled(processedOption.option);
653
+ },
654
+ isValidSelectedOption(processedOption) {
655
+ return this.isValidOption(processedOption) && this.isSelected(processedOption);
656
+ },
657
+ isSelected(processedOption) {
658
+ return this.activeOptionPath.some(p => p.key === processedOption.key);
659
+ },
660
+ findFirstOptionIndex() {
661
+ return this.visibleOptions.findIndex(processedOption => this.isValidOption(processedOption));
662
+ },
663
+ findLastOptionIndex() {
664
+ return utils.ObjectUtils.findLastIndex(this.visibleOptions, processedOption => this.isValidOption(processedOption));
665
+ },
666
+ findNextOptionIndex(index) {
667
+ const matchedOptionIndex = index < (this.visibleOptions.length - 1) ? this.visibleOptions.slice(index + 1).findIndex(processedOption => this.isValidOption(processedOption)) : -1;
668
+ return matchedOptionIndex > -1 ? matchedOptionIndex + index + 1 : index;
669
+ },
670
+ findPrevOptionIndex(index) {
671
+ const matchedOptionIndex = index > 0 ? utils.ObjectUtils.findLastIndex(this.visibleOptions.slice(0, index), processedOption => this.isValidOption(processedOption)) : -1;
672
+ return matchedOptionIndex > -1 ? matchedOptionIndex : index;
673
+ },
674
+ findSelectedOptionIndex() {
675
+ return this.visibleOptions.findIndex(processedOption => this.isValidSelectedOption(processedOption));
676
+ },
677
+ findFirstFocusedOptionIndex() {
678
+ const selectedIndex = this.findSelectedOptionIndex();
679
+ return selectedIndex < 0 ? this.findFirstOptionIndex() : selectedIndex;
680
+ },
681
+ findLastFocusedOptionIndex() {
682
+ const selectedIndex = this.findSelectedOptionIndex();
683
+ return selectedIndex < 0 ? this.findLastOptionIndex() : selectedIndex;
684
+ },
685
+ findOptionPathByValue(value, processedOptions, level = 0) {
686
+ processedOptions = processedOptions || (level === 0 && this.processedOptions);
474
687
 
475
- case 'Escape':
476
- if (this.overlayVisible) {
477
- this.hide();
478
- event.preventDefault();
479
- }
480
- break;
688
+ if (!processedOptions) return null;
689
+ if (utils.ObjectUtils.isEmpty(value)) return [];
481
690
 
482
- case 'Tab':
483
- this.hide();
484
- break;
691
+ for (let i = 0; i < processedOptions.length; i++) {
692
+ const processedOption = processedOptions[i];
693
+
694
+ if (utils.ObjectUtils.equals(value, this.getOptionValue(processedOption.option), this.equalityKey)) {
695
+ return [processedOption];
696
+ }
697
+
698
+ const matchedOptions = this.findOptionPathByValue(value, processedOption.children, level + 1);
699
+ if (matchedOptions) {
700
+ matchedOptions.unshift(processedOption);
701
+
702
+ return matchedOptions;
703
+ }
485
704
  }
486
705
  },
487
- onOverlayClick(event) {
488
- OverlayEventBus__default["default"].emit('overlay-click', {
489
- originalEvent: event,
490
- target: this.$el
706
+ searchOptions(event, char) {
707
+ this.searchValue = (this.searchValue || '') + char;
708
+
709
+ let optionIndex = -1;
710
+ let matched = false;
711
+
712
+ if (this.focusedOptionInfo.index !== -1) {
713
+ optionIndex = this.visibleOptions.slice(this.focusedOptionInfo.index).findIndex(processedOption => this.isOptionMatched(processedOption));
714
+ optionIndex = optionIndex === -1 ? this.visibleOptions.slice(0, this.focusedOptionInfo.index).findIndex(processedOption => this.isOptionMatched(processedOption)) : optionIndex + this.focusedOptionInfo.index;
715
+ }
716
+ else {
717
+ optionIndex = this.visibleOptions.findIndex(processedOption => this.isOptionMatched(processedOption));
718
+ }
719
+
720
+ if (optionIndex !== -1) {
721
+ matched = true;
722
+ }
723
+
724
+ if (optionIndex === -1 && this.focusedOptionInfo.index === -1) {
725
+ optionIndex = this.findFirstFocusedOptionIndex();
726
+ }
727
+
728
+ if (optionIndex !== -1) {
729
+ this.changeFocusedOptionIndex(event, optionIndex);
730
+ }
731
+
732
+ if (this.searchTimeout) {
733
+ clearTimeout(this.searchTimeout);
734
+ }
735
+
736
+ this.searchTimeout = setTimeout(() => {
737
+ this.searchValue = '';
738
+ this.searchTimeout = null;
739
+ }, 500);
740
+
741
+ return matched;
742
+ },
743
+ changeFocusedOptionIndex(event, index) {
744
+ if (this.focusedOptionInfo.index !== index) {
745
+ this.focusedOptionInfo.index = index;
746
+ this.scrollInView();
747
+
748
+ if (this.selectOnFocus) {
749
+ this.updateModel(event, this.getOptionValue(this.visibleOptions[index]));
750
+ }
751
+ }
752
+ },
753
+ scrollInView(index = -1) {
754
+ const id = index !== -1 ? `${this.id}_${index}` : this.focusedOptionId;
755
+ const element = utils.DomHandler.findSingle(this.list, `li[id="${id}"]`);
756
+ if (element) {
757
+ element.scrollIntoView && element.scrollIntoView({ block: 'nearest', inline: 'start' });
758
+ }
759
+ },
760
+ autoUpdateModel() {
761
+ if (this.selectOnFocus && this.autoOptionFocus && !this.hasSelectedOption) {
762
+ this.focusedOptionInfo.index = this.findFirstFocusedOptionIndex();
763
+ const value = this.getOptionValue(this.visibleOptions[this.focusedOptionInfo.index]);
764
+ this.updateModel(null, value);
765
+ }
766
+ },
767
+ updateModel(event, value) {
768
+ this.$emit('update:modelValue', value);
769
+ this.$emit('change', { originalEvent: event, value });
770
+ },
771
+ createProcessedOptions(options, level = 0, parent = {}, parentKey = '') {
772
+ const processedOptions = [];
773
+
774
+ options && options.forEach((option, index) => {
775
+ const key = (parentKey !== '' ? parentKey + '_' : '') + index;
776
+ const newOption = {
777
+ option,
778
+ index,
779
+ level,
780
+ key,
781
+ parent,
782
+ parentKey
783
+ };
784
+
785
+ newOption['children'] = this.createProcessedOptions(this.getOptionGroupChildren(option, level), level + 1, newOption, key);
786
+ processedOptions.push(newOption);
491
787
  });
788
+
789
+ return processedOptions;
790
+ },
791
+ overlayRef(el) {
792
+ this.overlay = el;
492
793
  }
493
794
  },
494
795
  computed: {
495
796
  containerClass() {
496
- return [
497
- 'p-cascadeselect p-component p-inputwrapper',
498
- {
499
- 'p-disabled': this.disabled,
500
- 'p-focus': this.focused,
501
- 'p-inputwrapper-filled': this.modelValue,
502
- 'p-inputwrapper-focus': this.focused || this.overlayVisible
503
- }
504
- ];
797
+ return ['p-cascadeselect p-component p-inputwrapper', {
798
+ 'p-disabled': this.disabled,
799
+ 'p-focus': this.focused,
800
+ 'p-inputwrapper-filled': this.modelValue,
801
+ 'p-inputwrapper-focus': this.focused || this.overlayVisible,
802
+ 'p-overlay-open': this.overlayVisible
803
+ }];
505
804
  },
506
805
  labelClass() {
507
- return [
508
- 'p-cascadeselect-label',
509
- {
510
- 'p-placeholder': this.label === this.placeholder,
511
- 'p-cascadeselect-label-empty': !this.$slots['value'] && (this.label === 'p-emptylabel' || this.label.length === 0)
512
- }
513
- ];
514
- },
515
- label() {
516
- if (this.selectionPath)
517
- return this.getOptionLabel(this.selectionPath[this.selectionPath.length - 1]);
518
- else
519
- return this.placeholder||'p-emptylabel';
806
+ return ['p-cascadeselect-label', {
807
+ 'p-placeholder': this.label === this.placeholder,
808
+ 'p-cascadeselect-label-empty': !this.$slots['value'] && (this.label === 'p-emptylabel' || this.label.length === 0)
809
+ }];
520
810
  },
521
811
  panelStyleClass() {
522
812
  return ['p-cascadeselect-panel p-component', this.panelClass, {
@@ -526,6 +816,55 @@ this.primevue.cascadeselect = (function (utils, OverlayEventBus, Ripple, vue, Po
526
816
  },
527
817
  dropdownIconClass() {
528
818
  return ['p-cascadeselect-trigger-icon', this.loading ? this.loadingIcon : 'pi pi-chevron-down'];
819
+ },
820
+ hasSelectedOption() {
821
+ return utils.ObjectUtils.isNotEmpty(this.modelValue);
822
+ },
823
+ label() {
824
+ const label = this.placeholder || 'p-emptylabel';
825
+
826
+ if (this.hasSelectedOption) {
827
+ const activeOptionPath = this.findOptionPathByValue(this.modelValue);
828
+ const processedOption = activeOptionPath.length ? activeOptionPath[activeOptionPath.length - 1] : null;
829
+
830
+ return processedOption ? this.getOptionLabel(processedOption.option) : label;
831
+ }
832
+
833
+ return label;
834
+ },
835
+ processedOptions() {
836
+ return this.createProcessedOptions(this.options || []);
837
+ },
838
+ visibleOptions() {
839
+ const processedOption = this.activeOptionPath.find(p => p.key === this.focusedOptionInfo.parentKey);
840
+ return processedOption ? processedOption.children : this.processedOptions;
841
+ },
842
+ equalityKey() {
843
+ return this.optionValue ? null : this.dataKey;
844
+ },
845
+ searchResultMessageText() {
846
+ return utils.ObjectUtils.isNotEmpty(this.visibleOptions) ? this.searchMessageText.replaceAll('{0}', this.visibleOptions.length) : this.emptySearchMessageText;
847
+ },
848
+ searchMessageText() {
849
+ return this.searchMessage || this.$primevue.config.locale.searchMessage || '';
850
+ },
851
+ emptySearchMessageText() {
852
+ return this.emptySearchMessage || this.$primevue.config.locale.emptySearchMessage || '';
853
+ },
854
+ emptyMessageText() {
855
+ return this.emptyMessage || this.$primevue.config.locale.emptyMessage || '';
856
+ },
857
+ selectionMessageText() {
858
+ return this.selectionMessage || this.$primevue.config.locale.selectionMessage || '';
859
+ },
860
+ emptySelectionMessageText() {
861
+ return this.emptySelectionMessage || this.$primevue.config.locale.emptySelectionMessage || '';
862
+ },
863
+ selectedMessageText() {
864
+ return this.hasSelectedOption ? this.selectionMessageText.replaceAll('{0}', '1') : this.emptySelectionMessageText;
865
+ },
866
+ focusedOptionId() {
867
+ return this.focusedOptionInfo.index !== -1 ? `${this.id}${utils.ObjectUtils.isNotEmpty(this.focusedOptionInfo.parentKey) ? '_' + this.focusedOptionInfo.parentKey : ''}_${this.focusedOptionInfo.index}` : null;
529
868
  }
530
869
  },
531
870
  components: {
@@ -535,9 +874,24 @@ this.primevue.cascadeselect = (function (utils, OverlayEventBus, Ripple, vue, Po
535
874
  };
536
875
 
537
876
  const _hoisted_1 = { class: "p-hidden-accessible" };
538
- const _hoisted_2 = ["id", "disabled", "tabindex", "aria-expanded", "aria-labelledby"];
539
- const _hoisted_3 = ["aria-expanded"];
540
- const _hoisted_4 = { class: "p-cascadeselect-items-wrapper" };
877
+ const _hoisted_2 = ["id", "disabled", "placeholder", "tabindex", "aria-label", "aria-labelledby", "aria-expanded", "aria-controls", "aria-activedescendant"];
878
+ const _hoisted_3 = {
879
+ class: "p-cascadeselect-trigger",
880
+ role: "button",
881
+ tabindex: "-1",
882
+ "aria-hidden": "true"
883
+ };
884
+ const _hoisted_4 = {
885
+ role: "status",
886
+ "aria-live": "polite",
887
+ class: "p-hidden-accessible"
888
+ };
889
+ const _hoisted_5 = { class: "p-cascadeselect-items-wrapper" };
890
+ const _hoisted_6 = {
891
+ role: "status",
892
+ "aria-live": "polite",
893
+ class: "p-hidden-accessible"
894
+ };
541
895
 
542
896
  function render(_ctx, _cache, $props, $setup, $data, $options) {
543
897
  const _component_CascadeSelectSub = vue.resolveComponent("CascadeSelectSub");
@@ -546,23 +900,30 @@ this.primevue.cascadeselect = (function (utils, OverlayEventBus, Ripple, vue, Po
546
900
  return (vue.openBlock(), vue.createElementBlock("div", {
547
901
  ref: "container",
548
902
  class: vue.normalizeClass($options.containerClass),
549
- onClick: _cache[4] || (_cache[4] = $event => ($options.onClick($event)))
903
+ onClick: _cache[5] || (_cache[5] = $event => ($options.onContainerClick($event)))
550
904
  }, [
551
905
  vue.createElementVNode("div", _hoisted_1, [
552
- vue.createElementVNode("input", {
906
+ vue.createElementVNode("input", vue.mergeProps({
553
907
  ref: "focusInput",
554
- type: "text",
555
908
  id: $props.inputId,
909
+ type: "text",
910
+ style: $props.inputStyle,
911
+ class: $props.inputClass,
556
912
  readonly: "",
557
913
  disabled: $props.disabled,
914
+ placeholder: $props.placeholder,
915
+ tabindex: !$props.disabled ? $props.tabindex : -1,
916
+ role: "combobox",
917
+ "aria-label": _ctx.ariaLabel,
918
+ "aria-labelledby": _ctx.ariaLabelledby,
919
+ "aria-haspopup": "tree",
920
+ "aria-expanded": $data.overlayVisible,
921
+ "aria-controls": $data.id + '_tree',
922
+ "aria-activedescendant": $data.focused ? $options.focusedOptionId : undefined,
558
923
  onFocus: _cache[0] || (_cache[0] = (...args) => ($options.onFocus && $options.onFocus(...args))),
559
924
  onBlur: _cache[1] || (_cache[1] = (...args) => ($options.onBlur && $options.onBlur(...args))),
560
- onKeydown: _cache[2] || (_cache[2] = (...args) => ($options.onKeyDown && $options.onKeyDown(...args))),
561
- tabindex: $props.tabindex,
562
- "aria-haspopup": "listbox",
563
- "aria-expanded": $data.overlayVisible,
564
- "aria-labelledby": $props.ariaLabelledBy
565
- }, null, 40, _hoisted_2)
925
+ onKeydown: _cache[2] || (_cache[2] = (...args) => ($options.onKeyDown && $options.onKeyDown(...args)))
926
+ }, $props.inputProps), null, 16, _hoisted_2)
566
927
  ]),
567
928
  vue.createElementVNode("span", {
568
929
  class: vue.normalizeClass($options.labelClass)
@@ -574,55 +935,58 @@ this.primevue.cascadeselect = (function (utils, OverlayEventBus, Ripple, vue, Po
574
935
  vue.createTextVNode(vue.toDisplayString($options.label), 1)
575
936
  ])
576
937
  ], 2),
577
- vue.createElementVNode("div", {
578
- class: "p-cascadeselect-trigger",
579
- role: "button",
580
- "aria-haspopup": "listbox",
581
- "aria-expanded": $data.overlayVisible
582
- }, [
938
+ vue.createElementVNode("div", _hoisted_3, [
583
939
  vue.renderSlot(_ctx.$slots, "indicator", {}, () => [
584
940
  vue.createElementVNode("span", {
585
941
  class: vue.normalizeClass($options.dropdownIconClass)
586
942
  }, null, 2)
587
943
  ])
588
- ], 8, _hoisted_3),
944
+ ]),
945
+ vue.createElementVNode("span", _hoisted_4, vue.toDisplayString($options.searchResultMessageText), 1),
589
946
  vue.createVNode(_component_Portal, { appendTo: $props.appendTo }, {
590
947
  default: vue.withCtx(() => [
591
948
  vue.createVNode(vue.Transition, {
592
949
  name: "p-connected-overlay",
593
950
  onEnter: $options.onOverlayEnter,
951
+ onAfterEnter: $options.onOverlayAfterEnter,
594
952
  onLeave: $options.onOverlayLeave,
595
953
  onAfterLeave: $options.onOverlayAfterLeave
596
954
  }, {
597
955
  default: vue.withCtx(() => [
598
956
  ($data.overlayVisible)
599
- ? (vue.openBlock(), vue.createElementBlock("div", {
957
+ ? (vue.openBlock(), vue.createElementBlock("div", vue.mergeProps({
600
958
  key: 0,
601
959
  ref: $options.overlayRef,
602
- class: vue.normalizeClass($options.panelStyleClass),
603
- onClick: _cache[3] || (_cache[3] = (...args) => ($options.onOverlayClick && $options.onOverlayClick(...args)))
604
- }, [
605
- vue.createElementVNode("div", _hoisted_4, [
960
+ style: $props.panelStyle,
961
+ class: $options.panelStyleClass,
962
+ onClick: _cache[3] || (_cache[3] = (...args) => ($options.onOverlayClick && $options.onOverlayClick(...args))),
963
+ onKeydown: _cache[4] || (_cache[4] = (...args) => ($options.onOverlayKeyDown && $options.onOverlayKeyDown(...args)))
964
+ }, $props.panelProps), [
965
+ vue.createElementVNode("div", _hoisted_5, [
606
966
  vue.createVNode(_component_CascadeSelectSub, {
607
- options: $props.options,
608
- selectionPath: $data.selectionPath,
609
- optionLabel: $props.optionLabel,
610
- optionValue: $props.optionValue,
967
+ id: $data.id + '_tree',
968
+ role: "tree",
969
+ "aria-orientation": "horizontal",
970
+ selectId: $data.id,
971
+ focusedOptionId: $data.focused ? $options.focusedOptionId : undefined,
972
+ options: $options.processedOptions,
973
+ activeOptionPath: $data.activeOptionPath,
611
974
  level: 0,
612
975
  templates: _ctx.$slots,
976
+ optionLabel: $props.optionLabel,
977
+ optionValue: $props.optionValue,
978
+ optionDisabled: $props.optionDisabled,
613
979
  optionGroupLabel: $props.optionGroupLabel,
614
980
  optionGroupChildren: $props.optionGroupChildren,
615
- onOptionSelect: $options.onOptionSelect,
616
- onOptiongroupSelect: $options.onOptionGroupSelect,
617
- dirty: $data.dirty,
618
- root: true
619
- }, null, 8, ["options", "selectionPath", "optionLabel", "optionValue", "templates", "optionGroupLabel", "optionGroupChildren", "onOptionSelect", "onOptiongroupSelect", "dirty"])
981
+ onOptionChange: $options.onOptionChange
982
+ }, null, 8, ["id", "selectId", "focusedOptionId", "options", "activeOptionPath", "templates", "optionLabel", "optionValue", "optionDisabled", "optionGroupLabel", "optionGroupChildren", "onOptionChange"]),
983
+ vue.createElementVNode("span", _hoisted_6, vue.toDisplayString($options.selectedMessageText), 1)
620
984
  ])
621
- ], 2))
985
+ ], 16))
622
986
  : vue.createCommentVNode("", true)
623
987
  ]),
624
988
  _: 1
625
- }, 8, ["onEnter", "onLeave", "onAfterLeave"])
989
+ }, 8, ["onEnter", "onAfterEnter", "onLeave", "onAfterLeave"])
626
990
  ]),
627
991
  _: 1
628
992
  }, 8, ["appendTo"])