primevue 3.16.2 → 3.17.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (797) hide show
  1. package/README.md +2 -1
  2. package/accordion/Accordion.d.ts +23 -5
  3. package/accordion/Accordion.vue +194 -77
  4. package/accordion/accordion.cjs.js +202 -96
  5. package/accordion/accordion.cjs.min.js +1 -1
  6. package/accordion/accordion.esm.js +200 -98
  7. package/accordion/accordion.esm.min.js +1 -1
  8. package/accordion/accordion.js +203 -98
  9. package/accordion/accordion.min.js +1 -1
  10. package/accordiontab/AccordionTab.d.ts +33 -5
  11. package/accordiontab/AccordionTab.vue +8 -1
  12. package/accordiontab/accordiontab.cjs.js +7 -0
  13. package/accordiontab/accordiontab.cjs.min.js +1 -1
  14. package/accordiontab/accordiontab.esm.js +7 -0
  15. package/accordiontab/accordiontab.esm.min.js +1 -1
  16. package/accordiontab/accordiontab.js +7 -0
  17. package/accordiontab/accordiontab.min.js +1 -1
  18. package/api/Api.d.ts +1 -1
  19. package/api/api.cjs.js +299 -313
  20. package/api/api.esm.js +299 -313
  21. package/api/api.js +299 -313
  22. package/autocomplete/AutoComplete.d.ts +22 -17
  23. package/autocomplete/AutoComplete.vue +239 -126
  24. package/autocomplete/autocomplete.cjs.js +145 -108
  25. package/autocomplete/autocomplete.cjs.min.js +1 -1
  26. package/autocomplete/autocomplete.esm.js +146 -109
  27. package/autocomplete/autocomplete.esm.min.js +1 -1
  28. package/autocomplete/autocomplete.js +145 -108
  29. package/autocomplete/autocomplete.min.js +1 -1
  30. package/avatar/Avatar.d.ts +4 -4
  31. package/avatar/Avatar.vue +15 -11
  32. package/avatar/avatar.cjs.js +11 -7
  33. package/avatar/avatar.cjs.min.js +1 -1
  34. package/avatar/avatar.esm.js +11 -7
  35. package/avatar/avatar.esm.min.js +1 -1
  36. package/avatar/avatar.js +11 -7
  37. package/avatar/avatar.min.js +1 -1
  38. package/avatargroup/AvatarGroup.d.ts +6 -9
  39. package/avatargroup/AvatarGroup.vue +1 -1
  40. package/badge/Badge.d.ts +4 -5
  41. package/badge/Badge.vue +16 -13
  42. package/badge/badge.cjs.js +14 -11
  43. package/badge/badge.esm.js +14 -11
  44. package/badge/badge.js +14 -11
  45. package/badgedirective/badgedirective.cjs.js +8 -10
  46. package/badgedirective/badgedirective.esm.js +8 -10
  47. package/badgedirective/badgedirective.js +8 -10
  48. package/blockui/BlockUI.d.ts +6 -6
  49. package/blockui/BlockUI.vue +13 -15
  50. package/blockui/blockui.cjs.js +11 -13
  51. package/blockui/blockui.cjs.min.js +1 -1
  52. package/blockui/blockui.esm.js +11 -13
  53. package/blockui/blockui.esm.min.js +1 -1
  54. package/blockui/blockui.js +11 -13
  55. package/blockui/blockui.min.js +1 -1
  56. package/breadcrumb/Breadcrumb.d.ts +5 -6
  57. package/breadcrumb/Breadcrumb.vue +2 -2
  58. package/breadcrumb/BreadcrumbItem.vue +18 -15
  59. package/breadcrumb/breadcrumb.cjs.js +15 -12
  60. package/breadcrumb/breadcrumb.esm.js +15 -12
  61. package/breadcrumb/breadcrumb.js +15 -12
  62. package/button/Button.d.ts +10 -7
  63. package/button/Button.vue +22 -14
  64. package/button/button.cjs.js +19 -11
  65. package/button/button.cjs.min.js +1 -1
  66. package/button/button.esm.js +19 -11
  67. package/button/button.esm.min.js +1 -1
  68. package/button/button.js +19 -11
  69. package/button/button.min.js +1 -1
  70. package/calendar/Calendar.d.ts +14 -14
  71. package/calendar/Calendar.vue +793 -583
  72. package/calendar/calendar.cjs.js +581 -526
  73. package/calendar/calendar.cjs.min.js +1 -1
  74. package/calendar/calendar.esm.js +581 -526
  75. package/calendar/calendar.esm.min.js +1 -1
  76. package/calendar/calendar.js +581 -526
  77. package/calendar/calendar.min.js +1 -1
  78. package/card/Card.d.ts +5 -7
  79. package/card/Card.vue +5 -5
  80. package/carousel/Carousel.d.ts +29 -19
  81. package/carousel/Carousel.vue +537 -528
  82. package/carousel/carousel.cjs.js +496 -493
  83. package/carousel/carousel.cjs.min.js +1 -1
  84. package/carousel/carousel.esm.js +496 -493
  85. package/carousel/carousel.esm.min.js +1 -1
  86. package/carousel/carousel.js +645 -642
  87. package/carousel/carousel.min.js +1 -1
  88. package/cascadeselect/CascadeSelect.d.ts +19 -14
  89. package/cascadeselect/CascadeSelect.vue +186 -100
  90. package/cascadeselect/CascadeSelectSub.vue +44 -14
  91. package/cascadeselect/cascadeselect.cjs.js +156 -95
  92. package/cascadeselect/cascadeselect.cjs.min.js +1 -1
  93. package/cascadeselect/cascadeselect.esm.js +157 -96
  94. package/cascadeselect/cascadeselect.esm.min.js +1 -1
  95. package/cascadeselect/cascadeselect.js +156 -95
  96. package/cascadeselect/cascadeselect.min.js +1 -1
  97. package/chart/Chart.d.ts +6 -7
  98. package/chart/Chart.vue +12 -12
  99. package/chart/chart.cjs.js +11 -11
  100. package/chart/chart.cjs.min.js +1 -1
  101. package/chart/chart.esm.js +11 -11
  102. package/chart/chart.esm.min.js +1 -1
  103. package/chart/chart.js +11 -11
  104. package/chart/chart.min.js +1 -1
  105. package/checkbox/Checkbox.d.ts +12 -12
  106. package/checkbox/Checkbox.vue +48 -20
  107. package/checkbox/checkbox.cjs.js +28 -17
  108. package/checkbox/checkbox.cjs.min.js +1 -1
  109. package/checkbox/checkbox.esm.js +28 -17
  110. package/checkbox/checkbox.esm.min.js +1 -1
  111. package/checkbox/checkbox.js +28 -17
  112. package/checkbox/checkbox.min.js +1 -1
  113. package/chip/Chip.d.ts +5 -5
  114. package/chip/Chip.vue +13 -11
  115. package/chip/chip.cjs.js +7 -4
  116. package/chip/chip.esm.js +7 -4
  117. package/chip/chip.js +7 -4
  118. package/chips/Chips.d.ts +9 -9
  119. package/chips/Chips.vue +89 -33
  120. package/chips/chips.cjs.js +48 -26
  121. package/chips/chips.cjs.min.js +1 -1
  122. package/chips/chips.esm.js +48 -26
  123. package/chips/chips.esm.min.js +1 -1
  124. package/chips/chips.js +48 -26
  125. package/chips/chips.min.js +1 -1
  126. package/colorpicker/ColorPicker.d.ts +11 -12
  127. package/colorpicker/ColorPicker.vue +146 -110
  128. package/colorpicker/colorpicker.cjs.js +113 -74
  129. package/colorpicker/colorpicker.cjs.min.js +1 -1
  130. package/colorpicker/colorpicker.esm.js +113 -74
  131. package/colorpicker/colorpicker.esm.min.js +1 -1
  132. package/colorpicker/colorpicker.js +113 -74
  133. package/colorpicker/colorpicker.min.js +1 -1
  134. package/column/Column.d.ts +5 -6
  135. package/column/Column.vue +1 -1
  136. package/columngroup/ColumnGroup.d.ts +5 -7
  137. package/columngroup/ColumnGroup.vue +1 -1
  138. package/config/PrimeVue.d.ts +4 -2
  139. package/config/config.cjs.js +14 -29
  140. package/config/config.cjs.min.js +1 -1
  141. package/config/config.esm.js +14 -29
  142. package/config/config.esm.min.js +1 -1
  143. package/config/config.js +14 -29
  144. package/config/config.min.js +1 -1
  145. package/confirmationoptions/ConfirmationOptions.d.ts +4 -0
  146. package/confirmationservice/confirmationservice.cjs.js +1 -0
  147. package/confirmationservice/confirmationservice.esm.js +1 -0
  148. package/confirmationservice/confirmationservice.js +1 -0
  149. package/confirmdialog/ConfirmDialog.d.ts +11 -5
  150. package/confirmdialog/ConfirmDialog.vue +25 -15
  151. package/confirmdialog/confirmdialog.cjs.js +34 -16
  152. package/confirmdialog/confirmdialog.cjs.min.js +1 -1
  153. package/confirmdialog/confirmdialog.esm.js +34 -16
  154. package/confirmdialog/confirmdialog.esm.min.js +1 -1
  155. package/confirmdialog/confirmdialog.js +35 -17
  156. package/confirmdialog/confirmdialog.min.js +1 -1
  157. package/confirmpopup/ConfirmPopup.d.ts +5 -8
  158. package/confirmpopup/ConfirmPopup.vue +44 -32
  159. package/confirmpopup/confirmpopup.cjs.js +24 -14
  160. package/confirmpopup/confirmpopup.cjs.min.js +1 -1
  161. package/confirmpopup/confirmpopup.esm.js +24 -14
  162. package/confirmpopup/confirmpopup.esm.min.js +1 -1
  163. package/confirmpopup/confirmpopup.js +24 -14
  164. package/confirmpopup/confirmpopup.min.js +1 -1
  165. package/contextmenu/ContextMenu.d.ts +4 -5
  166. package/contextmenu/ContextMenu.vue +23 -19
  167. package/contextmenu/ContextMenuSub.vue +54 -42
  168. package/contextmenu/contextmenu.cjs.js +52 -44
  169. package/contextmenu/contextmenu.cjs.min.js +1 -1
  170. package/contextmenu/contextmenu.esm.js +52 -44
  171. package/contextmenu/contextmenu.esm.min.js +1 -1
  172. package/contextmenu/contextmenu.js +52 -44
  173. package/contextmenu/contextmenu.min.js +1 -1
  174. package/core/core.js +1918 -1744
  175. package/core/core.min.js +14 -14
  176. package/datatable/BodyCell.vue +93 -75
  177. package/datatable/ColumnFilter.vue +137 -86
  178. package/datatable/DataTable.d.ts +24 -24
  179. package/datatable/DataTable.vue +470 -296
  180. package/datatable/FooterCell.vue +20 -13
  181. package/datatable/HeaderCell.vue +108 -51
  182. package/datatable/HeaderCheckbox.vue +12 -5
  183. package/datatable/RowCheckbox.vue +14 -6
  184. package/datatable/RowRadioButton.vue +4 -4
  185. package/datatable/TableBody.vue +135 -83
  186. package/datatable/TableFooter.vue +17 -20
  187. package/datatable/TableHeader.vue +132 -52
  188. package/datatable/TableLoadingBody.vue +3 -3
  189. package/datatable/datatable.cjs.js +696 -559
  190. package/datatable/datatable.cjs.min.js +1 -1
  191. package/datatable/datatable.esm.js +696 -559
  192. package/datatable/datatable.esm.min.js +1 -1
  193. package/datatable/datatable.js +696 -559
  194. package/datatable/datatable.min.js +1 -1
  195. package/dataview/DataView.d.ts +8 -8
  196. package/dataview/DataView.vue +80 -66
  197. package/dataview/dataview.cjs.js +31 -35
  198. package/dataview/dataview.cjs.min.js +1 -1
  199. package/dataview/dataview.esm.js +31 -35
  200. package/dataview/dataview.esm.min.js +1 -1
  201. package/dataview/dataview.js +31 -35
  202. package/dataview/dataview.min.js +1 -1
  203. package/dataviewlayoutoptions/DataViewLayoutOptions.d.ts +5 -6
  204. package/dataviewlayoutoptions/DataViewLayoutOptions.vue +28 -34
  205. package/dataviewlayoutoptions/dataviewlayoutoptions.cjs.js +19 -25
  206. package/dataviewlayoutoptions/dataviewlayoutoptions.cjs.min.js +1 -1
  207. package/dataviewlayoutoptions/dataviewlayoutoptions.esm.js +19 -25
  208. package/dataviewlayoutoptions/dataviewlayoutoptions.esm.min.js +1 -1
  209. package/dataviewlayoutoptions/dataviewlayoutoptions.js +46 -52
  210. package/dataviewlayoutoptions/dataviewlayoutoptions.min.js +1 -1
  211. package/deferredcontent/DeferredContent.d.ts +6 -7
  212. package/deferredcontent/DeferredContent.vue +6 -9
  213. package/deferredcontent/deferredcontent.cjs.js +5 -8
  214. package/deferredcontent/deferredcontent.esm.js +5 -8
  215. package/deferredcontent/deferredcontent.js +5 -8
  216. package/dialog/Dialog.d.ts +10 -10
  217. package/dialog/Dialog.vue +64 -60
  218. package/dialog/dialog.cjs.js +50 -46
  219. package/dialog/dialog.cjs.min.js +1 -1
  220. package/dialog/dialog.esm.js +50 -46
  221. package/dialog/dialog.esm.min.js +1 -1
  222. package/dialog/dialog.js +50 -46
  223. package/dialog/dialog.min.js +1 -1
  224. package/divider/Divider.d.ts +4 -5
  225. package/divider/Divider.vue +15 -12
  226. package/divider/divider.cjs.js +17 -12
  227. package/divider/divider.cjs.min.js +1 -1
  228. package/divider/divider.esm.js +17 -12
  229. package/divider/divider.esm.min.js +1 -1
  230. package/divider/divider.js +17 -12
  231. package/divider/divider.min.js +1 -1
  232. package/dock/Dock.d.ts +5 -6
  233. package/dock/Dock.vue +3 -3
  234. package/dock/DockSub.vue +46 -25
  235. package/dock/dock.cjs.js +30 -23
  236. package/dock/dock.cjs.min.js +1 -1
  237. package/dock/dock.esm.js +30 -23
  238. package/dock/dock.esm.min.js +1 -1
  239. package/dock/dock.js +30 -23
  240. package/dock/dock.min.js +1 -1
  241. package/dropdown/Dropdown.d.ts +31 -17
  242. package/dropdown/Dropdown.vue +255 -125
  243. package/dropdown/dropdown.cjs.js +177 -109
  244. package/dropdown/dropdown.cjs.min.js +1 -1
  245. package/dropdown/dropdown.esm.js +178 -110
  246. package/dropdown/dropdown.esm.min.js +1 -1
  247. package/dropdown/dropdown.js +177 -109
  248. package/dropdown/dropdown.min.js +1 -1
  249. package/dynamicdialog/DynamicDialog.d.ts +4 -4
  250. package/dynamicdialog/DynamicDialog.vue +10 -10
  251. package/dynamicdialog/dynamicdialog.cjs.js +11 -9
  252. package/dynamicdialog/dynamicdialog.cjs.min.js +1 -1
  253. package/dynamicdialog/dynamicdialog.esm.js +11 -9
  254. package/dynamicdialog/dynamicdialog.esm.min.js +1 -1
  255. package/dynamicdialog/dynamicdialog.js +11 -9
  256. package/dynamicdialog/dynamicdialog.min.js +1 -1
  257. package/editor/Editor.d.ts +20 -4
  258. package/editor/Editor.vue +506 -466
  259. package/editor/editor.cjs.js +99 -45
  260. package/editor/editor.cjs.min.js +1 -1
  261. package/editor/editor.esm.js +82 -42
  262. package/editor/editor.esm.min.js +1 -1
  263. package/editor/editor.js +83 -47
  264. package/editor/editor.min.js +1 -1
  265. package/fieldset/Fieldset.d.ts +9 -5
  266. package/fieldset/Fieldset.vue +28 -20
  267. package/fieldset/fieldset.cjs.js +31 -19
  268. package/fieldset/fieldset.cjs.min.js +1 -1
  269. package/fieldset/fieldset.esm.js +32 -20
  270. package/fieldset/fieldset.esm.min.js +1 -1
  271. package/fieldset/fieldset.js +31 -19
  272. package/fieldset/fieldset.min.js +1 -1
  273. package/fileupload/FileUpload.d.ts +11 -11
  274. package/fileupload/FileUpload.vue +75 -69
  275. package/fileupload/fileupload.cjs.js +56 -50
  276. package/fileupload/fileupload.cjs.min.js +1 -1
  277. package/fileupload/fileupload.esm.js +56 -50
  278. package/fileupload/fileupload.esm.min.js +1 -1
  279. package/fileupload/fileupload.js +56 -50
  280. package/fileupload/fileupload.min.js +1 -1
  281. package/fullcalendar/FullCalendar.d.ts +5 -7
  282. package/fullcalendar/FullCalendar.vue +6 -6
  283. package/fullcalendar/fullcalendar.cjs.js +3 -2
  284. package/fullcalendar/fullcalendar.esm.js +3 -2
  285. package/fullcalendar/fullcalendar.js +3 -2
  286. package/galleria/Galleria.d.ts +4 -4
  287. package/galleria/Galleria.vue +39 -34
  288. package/galleria/GalleriaContent.vue +58 -31
  289. package/galleria/GalleriaItem.vue +44 -36
  290. package/galleria/GalleriaItemSlot.vue +2 -1
  291. package/galleria/GalleriaThumbnails.vue +107 -91
  292. package/galleria/galleria.cjs.js +180 -152
  293. package/galleria/galleria.cjs.min.js +1 -1
  294. package/galleria/galleria.esm.js +180 -152
  295. package/galleria/galleria.esm.min.js +1 -1
  296. package/galleria/galleria.js +180 -152
  297. package/galleria/galleria.min.js +1 -1
  298. package/image/Image.d.ts +4 -5
  299. package/image/Image.vue +19 -15
  300. package/image/image.cjs.js +11 -7
  301. package/image/image.cjs.min.js +1 -1
  302. package/image/image.esm.js +11 -7
  303. package/image/image.esm.min.js +1 -1
  304. package/image/image.js +11 -7
  305. package/image/image.min.js +1 -1
  306. package/inlinemessage/InlineMessage.d.ts +4 -5
  307. package/inlinemessage/InlineMessage.vue +12 -9
  308. package/inlinemessage/inlinemessage.cjs.js +11 -8
  309. package/inlinemessage/inlinemessage.esm.js +11 -8
  310. package/inlinemessage/inlinemessage.js +11 -8
  311. package/inplace/Inplace.d.ts +6 -6
  312. package/inplace/Inplace.vue +11 -11
  313. package/inplace/inplace.cjs.js +9 -9
  314. package/inplace/inplace.cjs.min.js +1 -1
  315. package/inplace/inplace.esm.js +9 -9
  316. package/inplace/inplace.esm.min.js +1 -1
  317. package/inplace/inplace.js +9 -9
  318. package/inplace/inplace.min.js +1 -1
  319. package/inputmask/InputMask.d.ts +11 -12
  320. package/inputmask/InputMask.vue +119 -92
  321. package/inputmask/inputmask.cjs.js +116 -89
  322. package/inputmask/inputmask.cjs.min.js +1 -1
  323. package/inputmask/inputmask.esm.js +116 -89
  324. package/inputmask/inputmask.esm.min.js +1 -1
  325. package/inputmask/inputmask.js +116 -89
  326. package/inputmask/inputmask.min.js +1 -1
  327. package/inputnumber/InputNumber.d.ts +17 -17
  328. package/inputnumber/InputNumber.vue +237 -177
  329. package/inputnumber/inputnumber.cjs.js +208 -171
  330. package/inputnumber/inputnumber.cjs.min.js +1 -1
  331. package/inputnumber/inputnumber.esm.js +208 -171
  332. package/inputnumber/inputnumber.esm.min.js +1 -1
  333. package/inputnumber/inputnumber.js +208 -171
  334. package/inputnumber/inputnumber.min.js +1 -1
  335. package/inputswitch/InputSwitch.d.ts +10 -10
  336. package/inputswitch/InputSwitch.vue +39 -11
  337. package/inputswitch/inputswitch.cjs.js +23 -9
  338. package/inputswitch/inputswitch.cjs.min.js +1 -1
  339. package/inputswitch/inputswitch.esm.js +23 -9
  340. package/inputswitch/inputswitch.esm.min.js +1 -1
  341. package/inputswitch/inputswitch.js +23 -9
  342. package/inputswitch/inputswitch.min.js +1 -1
  343. package/inputtext/InputText.d.ts +5 -6
  344. package/inputtext/InputText.vue +3 -3
  345. package/inputtext/inputtext.cjs.js +2 -2
  346. package/inputtext/inputtext.esm.js +2 -2
  347. package/inputtext/inputtext.js +2 -2
  348. package/knob/Knob.d.ts +10 -11
  349. package/knob/Knob.vue +47 -29
  350. package/knob/knob.cjs.js +27 -25
  351. package/knob/knob.cjs.min.js +1 -1
  352. package/knob/knob.esm.js +27 -25
  353. package/knob/knob.esm.min.js +1 -1
  354. package/knob/knob.js +27 -25
  355. package/knob/knob.min.js +1 -1
  356. package/listbox/Listbox.d.ts +17 -13
  357. package/listbox/Listbox.vue +144 -97
  358. package/listbox/listbox.cjs.js +96 -86
  359. package/listbox/listbox.cjs.min.js +1 -1
  360. package/listbox/listbox.esm.js +97 -87
  361. package/listbox/listbox.esm.min.js +1 -1
  362. package/listbox/listbox.js +96 -86
  363. package/listbox/listbox.min.js +1 -1
  364. package/megamenu/MegaMenu.d.ts +5 -6
  365. package/megamenu/MegaMenu.vue +108 -94
  366. package/megamenu/megamenu.cjs.js +77 -72
  367. package/megamenu/megamenu.cjs.min.js +1 -1
  368. package/megamenu/megamenu.esm.js +77 -72
  369. package/megamenu/megamenu.esm.min.js +1 -1
  370. package/megamenu/megamenu.js +77 -72
  371. package/megamenu/megamenu.min.js +1 -1
  372. package/menu/Menu.d.ts +5 -8
  373. package/menu/Menu.vue +29 -23
  374. package/menu/Menuitem.vue +21 -18
  375. package/menu/menu.cjs.js +38 -29
  376. package/menu/menu.cjs.min.js +1 -1
  377. package/menu/menu.esm.js +38 -29
  378. package/menu/menu.esm.min.js +1 -1
  379. package/menu/menu.js +38 -29
  380. package/menu/menu.min.js +1 -1
  381. package/menubar/Menubar.d.ts +5 -6
  382. package/menubar/Menubar.vue +14 -15
  383. package/menubar/MenubarSub.vue +79 -62
  384. package/menubar/menubar.cjs.js +56 -58
  385. package/menubar/menubar.cjs.min.js +1 -1
  386. package/menubar/menubar.esm.js +56 -58
  387. package/menubar/menubar.esm.min.js +1 -1
  388. package/menubar/menubar.js +56 -58
  389. package/menubar/menubar.min.js +1 -1
  390. package/menuitem/MenuItem.d.ts +2 -2
  391. package/message/Message.d.ts +5 -5
  392. package/message/Message.vue +19 -14
  393. package/message/message.cjs.js +15 -10
  394. package/message/message.cjs.min.js +1 -1
  395. package/message/message.esm.js +15 -10
  396. package/message/message.esm.min.js +1 -1
  397. package/message/message.js +15 -10
  398. package/message/message.min.js +1 -1
  399. package/multiselect/MultiSelect.d.ts +21 -16
  400. package/multiselect/MultiSelect.vue +240 -150
  401. package/multiselect/multiselect.cjs.js +184 -133
  402. package/multiselect/multiselect.cjs.min.js +1 -1
  403. package/multiselect/multiselect.esm.js +185 -134
  404. package/multiselect/multiselect.esm.min.js +1 -1
  405. package/multiselect/multiselect.js +184 -133
  406. package/multiselect/multiselect.min.js +1 -1
  407. package/orderlist/OrderList.d.ts +5 -5
  408. package/orderlist/OrderList.vue +65 -60
  409. package/orderlist/orderlist.cjs.js +51 -53
  410. package/orderlist/orderlist.esm.js +51 -53
  411. package/orderlist/orderlist.js +51 -53
  412. package/organizationchart/OrganizationChart.d.ts +4 -4
  413. package/organizationchart/OrganizationChart.vue +13 -17
  414. package/organizationchart/OrganizationChartNode.vue +20 -12
  415. package/organizationchart/organizationchart.cjs.js +14 -16
  416. package/organizationchart/organizationchart.cjs.min.js +1 -1
  417. package/organizationchart/organizationchart.esm.js +14 -16
  418. package/organizationchart/organizationchart.esm.min.js +1 -1
  419. package/organizationchart/organizationchart.js +14 -16
  420. package/organizationchart/organizationchart.min.js +1 -1
  421. package/overlaypanel/OverlayPanel.d.ts +5 -5
  422. package/overlaypanel/OverlayPanel.vue +60 -50
  423. package/overlaypanel/overlaypanel.cjs.js +40 -32
  424. package/overlaypanel/overlaypanel.cjs.min.js +1 -1
  425. package/overlaypanel/overlaypanel.esm.js +40 -32
  426. package/overlaypanel/overlaypanel.esm.min.js +1 -1
  427. package/overlaypanel/overlaypanel.js +40 -32
  428. package/overlaypanel/overlaypanel.min.js +1 -1
  429. package/package.json +1 -1
  430. package/paginator/CurrentPageReport.vue +47 -47
  431. package/paginator/FirstPageLink.vue +11 -8
  432. package/paginator/JumpToPageDropdown.vue +7 -6
  433. package/paginator/JumpToPageInput.vue +3 -3
  434. package/paginator/LastPageLink.vue +11 -8
  435. package/paginator/NextPageLink.vue +11 -8
  436. package/paginator/PageLinks.vue +3 -4
  437. package/paginator/Paginator.d.ts +5 -5
  438. package/paginator/Paginator.vue +39 -39
  439. package/paginator/PrevPageLink.vue +11 -8
  440. package/paginator/RowsPerPageDropdown.vue +7 -6
  441. package/paginator/paginator.cjs.js +110 -91
  442. package/paginator/paginator.cjs.min.js +1 -1
  443. package/paginator/paginator.esm.js +110 -91
  444. package/paginator/paginator.esm.min.js +1 -1
  445. package/paginator/paginator.js +633 -614
  446. package/paginator/paginator.min.js +1 -1
  447. package/panel/Panel.d.ts +9 -5
  448. package/panel/Panel.vue +29 -11
  449. package/panel/panel.cjs.js +24 -14
  450. package/panel/panel.cjs.min.js +1 -1
  451. package/panel/panel.esm.js +24 -14
  452. package/panel/panel.esm.min.js +1 -1
  453. package/panel/panel.js +24 -14
  454. package/panel/panel.min.js +1 -1
  455. package/panelmenu/PanelMenu.d.ts +5 -5
  456. package/panelmenu/PanelMenu.vue +46 -38
  457. package/panelmenu/PanelMenuSub.vue +40 -29
  458. package/panelmenu/panelmenu.cjs.js +56 -52
  459. package/panelmenu/panelmenu.cjs.min.js +1 -1
  460. package/panelmenu/panelmenu.esm.js +56 -52
  461. package/panelmenu/panelmenu.esm.min.js +1 -1
  462. package/panelmenu/panelmenu.js +56 -52
  463. package/panelmenu/panelmenu.min.js +1 -1
  464. package/password/Password.d.ts +12 -7
  465. package/password/Password.vue +156 -79
  466. package/password/password.cjs.js +135 -74
  467. package/password/password.cjs.min.js +1 -1
  468. package/password/password.esm.js +135 -74
  469. package/password/password.esm.min.js +1 -1
  470. package/password/password.js +135 -74
  471. package/password/password.min.js +1 -1
  472. package/picklist/PickList.d.ts +9 -9
  473. package/picklist/PickList.vue +99 -78
  474. package/picklist/picklist.cjs.js +71 -66
  475. package/picklist/picklist.cjs.min.js +1 -1
  476. package/picklist/picklist.esm.js +71 -66
  477. package/picklist/picklist.esm.min.js +1 -1
  478. package/picklist/picklist.js +71 -66
  479. package/picklist/picklist.min.js +1 -1
  480. package/portal/Portal.d.ts +3 -3
  481. package/portal/Portal.vue +2 -2
  482. package/portal/portal.cjs.js +1 -1
  483. package/portal/portal.esm.js +1 -1
  484. package/portal/portal.js +1 -1
  485. package/progressbar/ProgressBar.d.ts +4 -5
  486. package/progressbar/ProgressBar.vue +63 -51
  487. package/progressbar/progressbar.cjs.js +2 -2
  488. package/progressbar/progressbar.cjs.min.js +1 -1
  489. package/progressbar/progressbar.esm.js +2 -2
  490. package/progressbar/progressbar.esm.min.js +1 -1
  491. package/progressbar/progressbar.js +2 -2
  492. package/progressbar/progressbar.min.js +1 -1
  493. package/progressspinner/ProgressSpinner.d.ts +5 -7
  494. package/progressspinner/ProgressSpinner.vue +1 -1
  495. package/radiobutton/RadioButton.d.ts +9 -9
  496. package/radiobutton/RadioButton.vue +41 -13
  497. package/radiobutton/radiobutton.cjs.js +24 -10
  498. package/radiobutton/radiobutton.cjs.min.js +1 -1
  499. package/radiobutton/radiobutton.esm.js +24 -10
  500. package/radiobutton/radiobutton.esm.min.js +1 -1
  501. package/radiobutton/radiobutton.js +24 -10
  502. package/radiobutton/radiobutton.min.js +1 -1
  503. package/rating/Rating.d.ts +54 -5
  504. package/rating/Rating.vue +88 -62
  505. package/rating/rating.cjs.js +105 -84
  506. package/rating/rating.cjs.min.js +1 -1
  507. package/rating/rating.esm.js +106 -85
  508. package/rating/rating.esm.min.js +1 -1
  509. package/rating/rating.js +106 -86
  510. package/rating/rating.min.js +1 -1
  511. package/resources/themes/arya-blue/theme.css +23 -12
  512. package/resources/themes/arya-green/theme.css +23 -12
  513. package/resources/themes/arya-orange/theme.css +23 -12
  514. package/resources/themes/arya-purple/theme.css +23 -12
  515. package/resources/themes/bootstrap4-dark-blue/theme.css +24 -13
  516. package/resources/themes/bootstrap4-dark-purple/theme.css +24 -13
  517. package/resources/themes/bootstrap4-light-blue/theme.css +24 -13
  518. package/resources/themes/bootstrap4-light-purple/theme.css +24 -13
  519. package/resources/themes/fluent-light/theme.css +23 -12
  520. package/resources/themes/lara-dark-blue/theme.css +23 -12
  521. package/resources/themes/lara-dark-indigo/theme.css +23 -12
  522. package/resources/themes/lara-dark-purple/theme.css +23 -12
  523. package/resources/themes/lara-dark-teal/theme.css +23 -12
  524. package/resources/themes/lara-light-blue/theme.css +23 -12
  525. package/resources/themes/lara-light-indigo/theme.css +23 -12
  526. package/resources/themes/lara-light-purple/theme.css +23 -12
  527. package/resources/themes/lara-light-teal/theme.css +23 -12
  528. package/resources/themes/luna-amber/theme.css +24 -13
  529. package/resources/themes/luna-blue/theme.css +24 -13
  530. package/resources/themes/luna-green/theme.css +24 -13
  531. package/resources/themes/luna-pink/theme.css +24 -13
  532. package/resources/themes/md-dark-deeppurple/theme.css +46 -20
  533. package/resources/themes/md-dark-indigo/theme.css +46 -20
  534. package/resources/themes/md-light-deeppurple/theme.css +46 -20
  535. package/resources/themes/md-light-indigo/theme.css +46 -20
  536. package/resources/themes/mdc-dark-deeppurple/theme.css +46 -20
  537. package/resources/themes/mdc-dark-indigo/theme.css +46 -20
  538. package/resources/themes/mdc-light-deeppurple/theme.css +46 -20
  539. package/resources/themes/mdc-light-indigo/theme.css +46 -20
  540. package/resources/themes/nova/theme.css +24 -13
  541. package/resources/themes/nova-accent/theme.css +23 -12
  542. package/resources/themes/nova-alt/theme.css +24 -13
  543. package/resources/themes/nova-vue/theme.css +24 -13
  544. package/resources/themes/rhea/theme.css +23 -12
  545. package/resources/themes/saga-blue/theme.css +23 -12
  546. package/resources/themes/saga-green/theme.css +23 -12
  547. package/resources/themes/saga-orange/theme.css +23 -12
  548. package/resources/themes/saga-purple/theme.css +23 -12
  549. package/resources/themes/tailwind-light/theme.css +23 -12
  550. package/resources/themes/vela-blue/theme.css +23 -12
  551. package/resources/themes/vela-green/theme.css +23 -12
  552. package/resources/themes/vela-orange/theme.css +23 -12
  553. package/resources/themes/vela-purple/theme.css +23 -12
  554. package/ripple/ripple.cjs.js +7 -1
  555. package/ripple/ripple.esm.js +7 -1
  556. package/ripple/ripple.js +7 -1
  557. package/row/Row.d.ts +6 -9
  558. package/row/Row.vue +1 -1
  559. package/scrollpanel/ScrollPanel.d.ts +9 -5
  560. package/scrollpanel/ScrollPanel.vue +194 -56
  561. package/scrollpanel/scrollpanel.cjs.js +180 -56
  562. package/scrollpanel/scrollpanel.cjs.min.js +1 -1
  563. package/scrollpanel/scrollpanel.esm.js +181 -57
  564. package/scrollpanel/scrollpanel.esm.min.js +1 -1
  565. package/scrollpanel/scrollpanel.js +180 -56
  566. package/scrollpanel/scrollpanel.min.js +1 -1
  567. package/scrolltop/ScrollTop.d.ts +5 -7
  568. package/scrolltop/ScrollTop.vue +18 -23
  569. package/scrolltop/scrolltop.cjs.js +14 -19
  570. package/scrolltop/scrolltop.cjs.min.js +1 -1
  571. package/scrolltop/scrolltop.esm.js +14 -19
  572. package/scrolltop/scrolltop.esm.min.js +1 -1
  573. package/scrolltop/scrolltop.js +14 -19
  574. package/scrolltop/scrolltop.min.js +1 -1
  575. package/selectbutton/SelectButton.d.ts +11 -11
  576. package/selectbutton/SelectButton.vue +50 -32
  577. package/selectbutton/selectbutton.cjs.js +30 -25
  578. package/selectbutton/selectbutton.esm.js +30 -25
  579. package/selectbutton/selectbutton.js +30 -25
  580. package/sidebar/Sidebar.d.ts +6 -6
  581. package/sidebar/Sidebar.vue +24 -14
  582. package/sidebar/sidebar.cjs.js +20 -10
  583. package/sidebar/sidebar.cjs.min.js +1 -1
  584. package/sidebar/sidebar.esm.js +20 -10
  585. package/sidebar/sidebar.esm.min.js +1 -1
  586. package/sidebar/sidebar.js +20 -10
  587. package/sidebar/sidebar.min.js +1 -1
  588. package/skeleton/Skeleton.d.ts +5 -7
  589. package/skeleton/Skeleton.vue +12 -11
  590. package/skeleton/skeleton.cjs.js +10 -9
  591. package/skeleton/skeleton.cjs.min.js +1 -1
  592. package/skeleton/skeleton.esm.js +10 -9
  593. package/skeleton/skeleton.esm.min.js +1 -1
  594. package/skeleton/skeleton.js +10 -9
  595. package/skeleton/skeleton.min.js +1 -1
  596. package/slider/Slider.d.ts +7 -8
  597. package/slider/Slider.vue +162 -141
  598. package/slider/slider.cjs.js +100 -127
  599. package/slider/slider.cjs.min.js +1 -1
  600. package/slider/slider.esm.js +100 -127
  601. package/slider/slider.esm.min.js +1 -1
  602. package/slider/slider.js +100 -127
  603. package/slider/slider.min.js +1 -1
  604. package/speeddial/SpeedDial.d.ts +8 -8
  605. package/speeddial/SpeedDial.vue +54 -39
  606. package/speeddial/speeddial.cjs.js +44 -36
  607. package/speeddial/speeddial.esm.js +44 -36
  608. package/speeddial/speeddial.js +44 -36
  609. package/splitbutton/SplitButton.d.ts +6 -6
  610. package/splitbutton/SplitButton.vue +9 -11
  611. package/splitbutton/splitbutton.cjs.js +7 -7
  612. package/splitbutton/splitbutton.cjs.min.js +1 -1
  613. package/splitbutton/splitbutton.esm.js +7 -7
  614. package/splitbutton/splitbutton.esm.min.js +1 -1
  615. package/splitbutton/splitbutton.js +7 -7
  616. package/splitbutton/splitbutton.min.js +1 -1
  617. package/splitter/Splitter.d.ts +10 -5
  618. package/splitter/Splitter.vue +158 -53
  619. package/splitter/splitter.cjs.js +156 -52
  620. package/splitter/splitter.cjs.min.js +1 -1
  621. package/splitter/splitter.esm.js +157 -53
  622. package/splitter/splitter.esm.min.js +1 -1
  623. package/splitter/splitter.js +156 -52
  624. package/splitter/splitter.min.js +1 -1
  625. package/splitterpanel/SplitterPanel.d.ts +4 -5
  626. package/splitterpanel/SplitterPanel.vue +3 -3
  627. package/splitterpanel/splitterpanel.cjs.js +2 -2
  628. package/splitterpanel/splitterpanel.esm.js +2 -2
  629. package/splitterpanel/splitterpanel.js +2 -2
  630. package/steps/Steps.d.ts +4 -5
  631. package/steps/Steps.vue +31 -23
  632. package/steps/steps.cjs.js +24 -16
  633. package/steps/steps.esm.js +24 -16
  634. package/steps/steps.js +24 -16
  635. package/styleclass/styleclass.cjs.js +19 -21
  636. package/styleclass/styleclass.esm.js +19 -21
  637. package/styleclass/styleclass.js +19 -21
  638. package/tabmenu/TabMenu.d.ts +4 -4
  639. package/tabmenu/TabMenu.vue +45 -34
  640. package/tabmenu/tabmenu.cjs.js +36 -25
  641. package/tabmenu/tabmenu.cjs.min.js +1 -1
  642. package/tabmenu/tabmenu.esm.js +36 -25
  643. package/tabmenu/tabmenu.esm.min.js +1 -1
  644. package/tabmenu/tabmenu.js +36 -25
  645. package/tabmenu/tabmenu.min.js +1 -1
  646. package/tabpanel/TabPanel.d.ts +33 -6
  647. package/tabpanel/TabPanel.vue +8 -1
  648. package/tabpanel/tabpanel.cjs.js +7 -0
  649. package/tabpanel/tabpanel.cjs.min.js +1 -1
  650. package/tabpanel/tabpanel.esm.js +7 -0
  651. package/tabpanel/tabpanel.esm.min.js +1 -1
  652. package/tabpanel/tabpanel.js +7 -0
  653. package/tabpanel/tabpanel.min.js +1 -1
  654. package/tabview/TabView.d.ts +22 -6
  655. package/tabview/TabView.vue +280 -96
  656. package/tabview/tabview.cjs.js +294 -131
  657. package/tabview/tabview.cjs.min.js +1 -1
  658. package/tabview/tabview.esm.js +296 -133
  659. package/tabview/tabview.esm.min.js +1 -1
  660. package/tabview/tabview.js +294 -131
  661. package/tabview/tabview.min.js +1 -1
  662. package/tag/Tag.d.ts +4 -5
  663. package/tag/Tag.vue +13 -10
  664. package/tag/tag.cjs.js +10 -7
  665. package/tag/tag.esm.js +10 -7
  666. package/tag/tag.js +10 -7
  667. package/terminal/Terminal.d.ts +5 -7
  668. package/terminal/Terminal.vue +10 -10
  669. package/terminal/terminal.cjs.js +3 -3
  670. package/terminal/terminal.cjs.min.js +1 -1
  671. package/terminal/terminal.esm.js +3 -3
  672. package/terminal/terminal.esm.min.js +1 -1
  673. package/terminal/terminal.js +3 -3
  674. package/terminal/terminal.min.js +1 -1
  675. package/textarea/Textarea.d.ts +5 -6
  676. package/textarea/Textarea.vue +7 -7
  677. package/textarea/textarea.cjs.js +6 -6
  678. package/textarea/textarea.esm.js +6 -6
  679. package/textarea/textarea.js +6 -6
  680. package/tieredmenu/TieredMenu.d.ts +4 -5
  681. package/tieredmenu/TieredMenu.vue +23 -15
  682. package/tieredmenu/TieredMenuSub.vue +62 -51
  683. package/tieredmenu/tieredmenu.cjs.js +60 -50
  684. package/tieredmenu/tieredmenu.cjs.min.js +1 -1
  685. package/tieredmenu/tieredmenu.esm.js +60 -50
  686. package/tieredmenu/tieredmenu.esm.min.js +1 -1
  687. package/tieredmenu/tieredmenu.js +60 -50
  688. package/tieredmenu/tieredmenu.min.js +1 -1
  689. package/timeline/Timeline.d.ts +4 -5
  690. package/timeline/Timeline.vue +6 -10
  691. package/timeline/timeline.cjs.js +3 -7
  692. package/timeline/timeline.cjs.min.js +1 -1
  693. package/timeline/timeline.esm.js +3 -7
  694. package/timeline/timeline.esm.min.js +1 -1
  695. package/timeline/timeline.js +3 -7
  696. package/timeline/timeline.min.js +1 -1
  697. package/toast/Toast.d.ts +10 -13
  698. package/toast/Toast.vue +36 -29
  699. package/toast/ToastMessage.vue +25 -18
  700. package/toast/toast.cjs.js +37 -23
  701. package/toast/toast.cjs.min.js +1 -1
  702. package/toast/toast.esm.js +37 -23
  703. package/toast/toast.esm.min.js +1 -1
  704. package/toast/toast.js +37 -23
  705. package/toast/toast.min.js +1 -1
  706. package/toastservice/toastservice.cjs.js +1 -0
  707. package/toastservice/toastservice.esm.js +1 -0
  708. package/toastservice/toastservice.js +1 -0
  709. package/togglebutton/ToggleButton.d.ts +10 -10
  710. package/togglebutton/ToggleButton.vue +42 -18
  711. package/togglebutton/togglebutton.cjs.js +25 -13
  712. package/togglebutton/togglebutton.cjs.min.js +1 -1
  713. package/togglebutton/togglebutton.esm.js +25 -13
  714. package/togglebutton/togglebutton.esm.min.js +1 -1
  715. package/togglebutton/togglebutton.js +25 -13
  716. package/togglebutton/togglebutton.min.js +1 -1
  717. package/toolbar/Toolbar.d.ts +8 -5
  718. package/toolbar/Toolbar.vue +9 -3
  719. package/toolbar/toolbar.cjs.js +14 -7
  720. package/toolbar/toolbar.cjs.min.js +1 -1
  721. package/toolbar/toolbar.esm.js +14 -7
  722. package/toolbar/toolbar.esm.min.js +1 -1
  723. package/toolbar/toolbar.js +14 -7
  724. package/toolbar/toolbar.min.js +1 -1
  725. package/tooltip/tooltip.cjs.js +36 -24
  726. package/tooltip/tooltip.cjs.min.js +1 -1
  727. package/tooltip/tooltip.esm.js +37 -25
  728. package/tooltip/tooltip.esm.min.js +1 -1
  729. package/tooltip/tooltip.js +36 -24
  730. package/tooltip/tooltip.min.js +1 -1
  731. package/tree/Tree.d.ts +7 -7
  732. package/tree/Tree.vue +66 -56
  733. package/tree/TreeNode.vue +70 -66
  734. package/tree/tree.cjs.js +99 -102
  735. package/tree/tree.cjs.min.js +1 -1
  736. package/tree/tree.esm.js +99 -102
  737. package/tree/tree.esm.min.js +1 -1
  738. package/tree/tree.js +99 -102
  739. package/tree/tree.min.js +1 -1
  740. package/treeselect/TreeSelect.d.ts +9 -9
  741. package/treeselect/TreeSelect.vue +130 -72
  742. package/treeselect/treeselect.cjs.js +89 -59
  743. package/treeselect/treeselect.cjs.min.js +1 -1
  744. package/treeselect/treeselect.esm.js +89 -59
  745. package/treeselect/treeselect.esm.min.js +1 -1
  746. package/treeselect/treeselect.js +89 -59
  747. package/treeselect/treeselect.min.js +1 -1
  748. package/treetable/BodyCell.vue +29 -19
  749. package/treetable/FooterCell.vue +19 -11
  750. package/treetable/HeaderCell.vue +44 -36
  751. package/treetable/TreeTable.d.ts +8 -8
  752. package/treetable/TreeTable.vue +229 -178
  753. package/treetable/TreeTableRow.vue +74 -58
  754. package/treetable/treetable.cjs.js +287 -253
  755. package/treetable/treetable.cjs.min.js +1 -1
  756. package/treetable/treetable.esm.js +287 -253
  757. package/treetable/treetable.esm.min.js +1 -1
  758. package/treetable/treetable.js +287 -253
  759. package/treetable/treetable.min.js +1 -1
  760. package/tristatecheckbox/TriStateCheckbox.d.ts +9 -9
  761. package/tristatecheckbox/TriStateCheckbox.vue +39 -18
  762. package/tristatecheckbox/tristatecheckbox.cjs.js +24 -15
  763. package/tristatecheckbox/tristatecheckbox.cjs.min.js +1 -1
  764. package/tristatecheckbox/tristatecheckbox.esm.js +24 -15
  765. package/tristatecheckbox/tristatecheckbox.esm.min.js +1 -1
  766. package/tristatecheckbox/tristatecheckbox.js +24 -15
  767. package/tristatecheckbox/tristatecheckbox.min.js +1 -1
  768. package/ts-helpers.d.ts +16 -10
  769. package/useconfirm/UseConfirm.d.ts +1 -1
  770. package/useconfirm/useconfirm.cjs.js +2 -1
  771. package/useconfirm/useconfirm.esm.js +2 -1
  772. package/useconfirm/useconfirm.js +2 -1
  773. package/usedialog/UseDialog.d.ts +1 -1
  774. package/usedialog/usedialog.cjs.js +2 -1
  775. package/usedialog/usedialog.esm.js +2 -1
  776. package/usedialog/usedialog.js +2 -1
  777. package/usetoast/usetoast.cjs.js +2 -1
  778. package/usetoast/usetoast.esm.js +2 -1
  779. package/usetoast/usetoast.js +2 -1
  780. package/utils/Utils.d.ts +7 -5
  781. package/utils/utils.cjs.js +183 -156
  782. package/utils/utils.cjs.min.js +1 -1
  783. package/utils/utils.esm.js +183 -156
  784. package/utils/utils.esm.min.js +1 -1
  785. package/utils/utils.js +183 -156
  786. package/utils/utils.min.js +1 -1
  787. package/vetur-attributes.json +160 -0
  788. package/vetur-tags.json +58 -8
  789. package/virtualscroller/VirtualScroller.d.ts +9 -9
  790. package/virtualscroller/VirtualScroller.vue +108 -96
  791. package/virtualscroller/virtualscroller.cjs.js +87 -89
  792. package/virtualscroller/virtualscroller.cjs.min.js +1 -1
  793. package/virtualscroller/virtualscroller.esm.js +87 -89
  794. package/virtualscroller/virtualscroller.esm.min.js +1 -1
  795. package/virtualscroller/virtualscroller.js +87 -89
  796. package/virtualscroller/virtualscroller.min.js +1 -1
  797. package/web-types.json +488 -2
@@ -1,12 +1,51 @@
1
1
  <template>
2
2
  <div ref="container" :id="id" :class="containerClass" @click="onContainerClick">
3
- <input v-if="editable" ref="focusInput" :id="inputId" type="text" :style="inputStyle" :class="inputStyleClass" :value="editableInputValue" :placeholder="placeholder" :tabindex="!disabled ? tabindex : -1" :disabled="disabled" autocomplete="off"
4
- role="combobox" :aria-label="ariaLabel" :aria-labelledby="ariaLabelledby" aria-haspopup="listbox" :aria-expanded="overlayVisible" :aria-controls="id + '_list'" :aria-activedescendant="focused ? focusedOptionId : undefined"
5
- @focus="onFocus" @blur="onBlur" @keydown="onKeyDown" @input="onEditableInput" v-bind="inputProps">
6
- <span v-else ref="focusInput" :id="inputId" :style="inputStyle" :class="inputStyleClass" :tabindex="!disabled ? tabindex : -1" role="combobox" :aria-label="ariaLabel || (label === 'p-emptylabel' ? undefined : label)" :aria-labelledby="ariaLabelledby"
7
- aria-haspopup="listbox" :aria-expanded="overlayVisible" :aria-controls="id + '_list'" :aria-activedescendant="focused ? focusedOptionId : undefined" :aria-disabled="disabled"
8
- @focus="onFocus" @blur="onBlur" @keydown="onKeyDown" v-bind="inputProps">
9
- <slot name="value" :value="modelValue" :placeholder="placeholder">{{label === 'p-emptylabel' ? '&nbsp;' : label || 'empty'}}</slot>
3
+ <input
4
+ v-if="editable"
5
+ ref="focusInput"
6
+ :id="inputId"
7
+ type="text"
8
+ :style="inputStyle"
9
+ :class="inputStyleClass"
10
+ :value="editableInputValue"
11
+ :placeholder="placeholder"
12
+ :tabindex="!disabled ? tabindex : -1"
13
+ :disabled="disabled"
14
+ autocomplete="off"
15
+ role="combobox"
16
+ :aria-label="ariaLabel"
17
+ :aria-labelledby="ariaLabelledby"
18
+ aria-haspopup="listbox"
19
+ :aria-expanded="overlayVisible"
20
+ :aria-controls="id + '_list'"
21
+ :aria-activedescendant="focused ? focusedOptionId : undefined"
22
+ @focus="onFocus"
23
+ @blur="onBlur"
24
+ @keydown="onKeyDown"
25
+ @input="onEditableInput"
26
+ v-bind="inputProps"
27
+ />
28
+ <span
29
+ v-else
30
+ ref="focusInput"
31
+ :id="inputId"
32
+ :style="inputStyle"
33
+ :class="inputStyleClass"
34
+ :tabindex="!disabled ? tabindex : -1"
35
+ role="combobox"
36
+ :aria-label="ariaLabel || (label === 'p-emptylabel' ? undefined : label)"
37
+ :aria-labelledby="ariaLabelledby"
38
+ aria-haspopup="listbox"
39
+ :aria-expanded="overlayVisible"
40
+ :aria-controls="id + '_list'"
41
+ :aria-activedescendant="focused ? focusedOptionId : undefined"
42
+ :aria-disabled="disabled"
43
+ @focus="onFocus"
44
+ @blur="onBlur"
45
+ @keydown="onKeyDown"
46
+ v-bind="inputProps"
47
+ >
48
+ <slot name="value" :value="modelValue" :placeholder="placeholder">{{ label === 'p-emptylabel' ? '&nbsp;' : label || 'empty' }}</slot>
10
49
  </span>
11
50
  <i v-if="showClear && modelValue != null" class="p-dropdown-clear-icon pi pi-times" @click="onClearClick" v-bind="clearIconProps"></i>
12
51
  <div class="p-dropdown-trigger">
@@ -21,42 +60,66 @@
21
60
  <slot name="header" :value="modelValue" :options="visibleOptions"></slot>
22
61
  <div v-if="filter" class="p-dropdown-header">
23
62
  <div class="p-dropdown-filter-container">
24
- <input type="text" ref="filterInput" :value="filterValue" @vnode-updated="onFilterUpdated" class="p-dropdown-filter p-inputtext p-component" :placeholder="filterPlaceholder"
25
- role="searchbox" autocomplete="off" :aria-owns="id + '_list'" :aria-activedescendant="focusedOptionId"
26
- @keydown="onFilterKeyDown" @blur="onFilterBlur" @input="onFilterChange" v-bind="filterInputProps"/>
63
+ <input
64
+ ref="filterInput"
65
+ type="text"
66
+ :value="filterValue"
67
+ @vnode-updated="onFilterUpdated"
68
+ class="p-dropdown-filter p-inputtext p-component"
69
+ :placeholder="filterPlaceholder"
70
+ role="searchbox"
71
+ autocomplete="off"
72
+ :aria-owns="id + '_list'"
73
+ :aria-activedescendant="focusedOptionId"
74
+ @keydown="onFilterKeyDown"
75
+ @blur="onFilterBlur"
76
+ @input="onFilterChange"
77
+ v-bind="filterInputProps"
78
+ />
27
79
  <span class="p-dropdown-filter-icon pi pi-search"></span>
28
80
  </div>
29
81
  <span role="status" aria-live="polite" class="p-hidden-accessible">
30
- {{filterResultMessageText}}
82
+ {{ filterResultMessageText }}
31
83
  </span>
32
84
  </div>
33
- <div class="p-dropdown-items-wrapper" :style="{'max-height': virtualScrollerDisabled ? scrollHeight : ''}">
34
- <VirtualScroller :ref="virtualScrollerRef" v-bind="virtualScrollerOptions" :items="visibleOptions" :style="{'height': scrollHeight}" :tabindex="-1" :disabled="virtualScrollerDisabled">
85
+ <div class="p-dropdown-items-wrapper" :style="{ 'max-height': virtualScrollerDisabled ? scrollHeight : '' }">
86
+ <VirtualScroller :ref="virtualScrollerRef" v-bind="virtualScrollerOptions" :items="visibleOptions" :style="{ height: scrollHeight }" :tabindex="-1" :disabled="virtualScrollerDisabled">
35
87
  <template v-slot:content="{ styleClass, contentRef, items, getItemOptions, contentStyle, itemSize }">
36
88
  <ul :ref="(el) => listRef(el, contentRef)" :id="id + '_list'" :class="['p-dropdown-items', styleClass]" :style="contentStyle" role="listbox">
37
89
  <template v-for="(option, i) of items" :key="getOptionRenderKey(option, getOptionIndex(i, getItemOptions))">
38
- <li v-if="isOptionGroup(option)" :id="id + '_' + getOptionIndex(i, getItemOptions)" :style="{height: itemSize ? itemSize + 'px' : undefined}" class="p-dropdown-item-group" role="option">
39
- <slot name="optiongroup" :option="option.optionGroup" :index="getOptionIndex(i, getItemOptions)">{{getOptionGroupLabel(option.optionGroup)}}</slot>
90
+ <li v-if="isOptionGroup(option)" :id="id + '_' + getOptionIndex(i, getItemOptions)" :style="{ height: itemSize ? itemSize + 'px' : undefined }" class="p-dropdown-item-group" role="option">
91
+ <slot name="optiongroup" :option="option.optionGroup" :index="getOptionIndex(i, getItemOptions)">{{ getOptionGroupLabel(option.optionGroup) }}</slot>
40
92
  </li>
41
- <li v-else v-ripple :id="id + '_' + getOptionIndex(i, getItemOptions)" :style="{height: itemSize ? itemSize + 'px' : undefined}"
42
- :class="['p-dropdown-item', {'p-highlight': isSelected(option), 'p-focus': focusedOptionIndex === getOptionIndex(i, getItemOptions), 'p-disabled': isOptionDisabled(option)}]"
43
- role="option" :aria-label="getOptionLabel(option)" :aria-selected="isSelected(option)" :aria-disabled="isOptionDisabled(option)" :aria-setsize="ariaSetSize" :aria-posinset="getAriaPosInset(getOptionIndex(i, getItemOptions))"
44
- @click="onOptionSelect($event, option)" @mousemove="onOptionMouseMove($event, getOptionIndex(i, getItemOptions))">
45
- <slot name="option" :option="option" :index="getOptionIndex(i, getItemOptions)">{{getOptionLabel(option)}}</slot>
93
+ <li
94
+ v-else
95
+ :id="id + '_' + getOptionIndex(i, getItemOptions)"
96
+ v-ripple
97
+ :style="{ height: itemSize ? itemSize + 'px' : undefined }"
98
+ :class="['p-dropdown-item', { 'p-highlight': isSelected(option), 'p-focus': focusedOptionIndex === getOptionIndex(i, getItemOptions), 'p-disabled': isOptionDisabled(option) }]"
99
+ role="option"
100
+ :aria-label="getOptionLabel(option)"
101
+ :aria-selected="isSelected(option)"
102
+ :aria-disabled="isOptionDisabled(option)"
103
+ :aria-setsize="ariaSetSize"
104
+ :aria-posinset="getAriaPosInset(getOptionIndex(i, getItemOptions))"
105
+ @click="onOptionSelect($event, option)"
106
+ @mousemove="onOptionMouseMove($event, getOptionIndex(i, getItemOptions))"
107
+ >
108
+ <slot name="option" :option="option" :index="getOptionIndex(i, getItemOptions)">{{ getOptionLabel(option) }}</slot>
46
109
  </li>
47
110
  </template>
48
111
  <li v-if="filterValue && (!items || (items && items.length === 0))" class="p-dropdown-empty-message" role="option">
49
- <slot name="emptyfilter">{{emptyFilterMessageText}}</slot>
112
+ <slot name="emptyfilter">{{ emptyFilterMessageText }}</slot>
50
113
  </li>
51
- <li v-else-if="(!options || (options && options.length === 0))" class="p-dropdown-empty-message" role="option">
52
- <slot name="empty">{{emptyMessageText}}</slot>
114
+ <li v-else-if="!options || (options && options.length === 0)" class="p-dropdown-empty-message" role="option">
115
+ <slot name="empty">{{ emptyMessageText }}</slot>
53
116
  </li>
54
117
  </ul>
55
- <span v-if="(!options || (options && options.length === 0))" role="status" aria-live="polite" class="p-hidden-accessible">
56
- {{emptyMessageText}}
118
+ <span v-if="!options || (options && options.length === 0)" role="status" aria-live="polite" class="p-hidden-accessible">
119
+ {{ emptyMessageText }}
57
120
  </span>
58
121
  <span role="status" aria-live="polite" class="p-hidden-accessible">
59
- {{selectedMessageText}}
122
+ {{ selectedMessageText }}
60
123
  </span>
61
124
  </template>
62
125
  <template v-if="$slots.loader" v-slot:loader="{ options }">
@@ -73,9 +136,9 @@
73
136
  </template>
74
137
 
75
138
  <script>
76
- import {ConnectedOverlayScrollHandler,ObjectUtils,DomHandler,ZIndexUtils,UniqueComponentId} from 'primevue/utils';
139
+ import { ConnectedOverlayScrollHandler, ObjectUtils, DomHandler, ZIndexUtils, UniqueComponentId } from 'primevue/utils';
77
140
  import OverlayEventBus from 'primevue/overlayeventbus';
78
- import {FilterService} from 'primevue/api';
141
+ import { FilterService } from 'primevue/api';
79
142
  import Ripple from 'primevue/ripple';
80
143
  import VirtualScroller from 'primevue/virtualscroller';
81
144
  import Portal from 'primevue/portal';
@@ -91,11 +154,11 @@ export default {
91
154
  optionDisabled: null,
92
155
  optionGroupLabel: null,
93
156
  optionGroupChildren: null,
94
- scrollHeight: {
95
- type: String,
96
- default: '200px'
97
- },
98
- filter: Boolean,
157
+ scrollHeight: {
158
+ type: String,
159
+ default: '200px'
160
+ },
161
+ filter: Boolean,
99
162
  filterPlaceholder: String,
100
163
  filterLocale: String,
101
164
  filterMatchMode: {
@@ -106,20 +169,56 @@ export default {
106
169
  type: Array,
107
170
  default: null
108
171
  },
109
- editable: Boolean,
110
- placeholder: String,
111
- disabled: Boolean,
172
+ editable: Boolean,
173
+ placeholder: {
174
+ type: String,
175
+ default: null
176
+ },
177
+ disabled: {
178
+ type: Boolean,
179
+ default: false
180
+ },
112
181
  dataKey: null,
113
- showClear: Boolean,
114
- inputId: String,
115
- inputStyle: null,
116
- inputClass: null,
117
- inputProps: null,
118
- panelStyle: null,
119
- panelClass: null,
120
- panelProps: null,
121
- filterInputProps: null,
122
- clearIconProps: null,
182
+ showClear: {
183
+ type: Boolean,
184
+ default: false
185
+ },
186
+ inputId: {
187
+ type: String,
188
+ default: null
189
+ },
190
+ inputClass: {
191
+ type: String,
192
+ default: null
193
+ },
194
+ inputStyle: {
195
+ type: null,
196
+ default: null
197
+ },
198
+ inputProps: {
199
+ type: null,
200
+ default: null
201
+ },
202
+ panelClass: {
203
+ type: String,
204
+ default: null
205
+ },
206
+ panelStyle: {
207
+ type: null,
208
+ default: null
209
+ },
210
+ panelProps: {
211
+ type: null,
212
+ default: null
213
+ },
214
+ filterInputProps: {
215
+ type: null,
216
+ default: null
217
+ },
218
+ clearIconProps: {
219
+ type: null,
220
+ default: null
221
+ },
123
222
  appendTo: {
124
223
  type: String,
125
224
  default: 'body'
@@ -132,6 +231,10 @@ export default {
132
231
  type: String,
133
232
  default: 'pi pi-spinner pi-spin'
134
233
  },
234
+ resetFilterOnHide: {
235
+ type: Boolean,
236
+ default: false
237
+ },
135
238
  virtualScrollerOptions: {
136
239
  type: Object,
137
240
  default: null
@@ -140,6 +243,14 @@ export default {
140
243
  type: Boolean,
141
244
  default: true
142
245
  },
246
+ autoFilterFocus: {
247
+ type: Boolean,
248
+ default: false
249
+ },
250
+ selectOnFocus: {
251
+ type: Boolean,
252
+ default: false
253
+ },
143
254
  filterMessage: {
144
255
  type: String,
145
256
  default: null
@@ -182,16 +293,14 @@ export default {
182
293
  searchTimeout: null,
183
294
  searchValue: null,
184
295
  isModelValueChanged: false,
185
- selectOnFocus: false,
186
296
  focusOnHover: false,
187
297
  data() {
188
298
  return {
189
- id: UniqueComponentId(),
190
299
  focused: false,
191
300
  focusedOptionIndex: -1,
192
301
  filterValue: null,
193
302
  overlayVisible: false
194
- }
303
+ };
195
304
  },
196
305
  watch: {
197
306
  modelValue() {
@@ -202,8 +311,6 @@ export default {
202
311
  }
203
312
  },
204
313
  mounted() {
205
- this.id = this.$attrs.id || this.id;
206
-
207
314
  this.autoUpdateModel();
208
315
  },
209
316
  updated() {
@@ -229,7 +336,7 @@ export default {
229
336
  },
230
337
  methods: {
231
338
  getOptionIndex(index, fn) {
232
- return this.virtualScrollerDisabled ? index : (fn && fn(index)['index']);
339
+ return this.virtualScrollerDisabled ? index : fn && fn(index)['index'];
233
340
  },
234
341
  getOptionLabel(option) {
235
342
  return this.optionLabel ? ObjectUtils.resolveFieldData(option, this.optionLabel) : option;
@@ -253,14 +360,14 @@ export default {
253
360
  return ObjectUtils.resolveFieldData(optionGroup, this.optionGroupChildren);
254
361
  },
255
362
  getAriaPosInset(index) {
256
- return (this.optionGroupLabel ? index - this.visibleOptions.slice(0, index).filter(option => this.isOptionGroup(option)).length : index) + 1;
363
+ return (this.optionGroupLabel ? index - this.visibleOptions.slice(0, index).filter((option) => this.isOptionGroup(option)).length : index) + 1;
257
364
  },
258
365
  show(isFocus) {
259
366
  this.$emit('before-show');
260
367
  this.overlayVisible = true;
261
- this.focusedOptionIndex = this.focusedOptionIndex !== -1 ? this.focusedOptionIndex : (this.autoOptionFocus ? this.findFirstFocusedOptionIndex() : -1);
368
+ this.focusedOptionIndex = this.focusedOptionIndex !== -1 ? this.focusedOptionIndex : this.autoOptionFocus ? this.findFirstFocusedOptionIndex() : -1;
262
369
 
263
- isFocus && this.$refs.focusInput.focus();
370
+ isFocus && DomHandler.focus(this.$refs.focusInput);
264
371
  },
265
372
  hide(isFocus) {
266
373
  const _hide = () => {
@@ -269,10 +376,13 @@ export default {
269
376
  this.focusedOptionIndex = -1;
270
377
  this.searchValue = '';
271
378
 
272
- isFocus && this.$refs.focusInput.focus();
273
- }
379
+ this.resetFilterOnHide && (this.filterValue = null);
380
+ isFocus && DomHandler.focus(this.$refs.focusInput);
381
+ };
274
382
 
275
- setTimeout(() => { _hide() }, 0); // For ScreenReaders
383
+ setTimeout(() => {
384
+ _hide();
385
+ }, 0); // For ScreenReaders
276
386
  },
277
387
  onFocus(event) {
278
388
  this.focused = true;
@@ -287,6 +397,8 @@ export default {
287
397
  this.$emit('blur', event);
288
398
  },
289
399
  onKeyDown(event) {
400
+ const metaKey = event.metaKey || event.ctrlKey;
401
+
290
402
  switch (event.code) {
291
403
  case 'ArrowDown':
292
404
  this.onArrowDownKey(event);
@@ -343,7 +455,7 @@ export default {
343
455
  break;
344
456
 
345
457
  default:
346
- if (ObjectUtils.isPrintableCharacter(event.key)) {
458
+ if (!metaKey && ObjectUtils.isPrintableCharacter(event.key)) {
347
459
  !this.overlayVisible && this.show();
348
460
  !this.editable && this.searchOptions(event, event.key);
349
461
  }
@@ -356,6 +468,7 @@ export default {
356
468
 
357
469
  this.searchValue = '';
358
470
  const matched = this.searchOptions(event, value);
471
+
359
472
  !matched && (this.focusedOptionIndex = -1);
360
473
 
361
474
  this.$emit('update:modelValue', value);
@@ -367,8 +480,7 @@ export default {
367
480
 
368
481
  if (DomHandler.hasClass(event.target, 'p-dropdown-clear-icon') || event.target.tagName === 'INPUT') {
369
482
  return;
370
- }
371
- else if (!this.overlay || !this.overlay.contains(event.target)) {
483
+ } else if (!this.overlay || !this.overlay.contains(event.target)) {
372
484
  this.overlayVisible ? this.hide(true) : this.show(true);
373
485
  }
374
486
  },
@@ -380,20 +492,20 @@ export default {
380
492
 
381
493
  if (relatedTarget === this.$refs.focusInput) {
382
494
  const firstFocusableEl = DomHandler.getFirstFocusableElement(this.overlay, ':not(.p-hidden-focusable)');
383
- firstFocusableEl && firstFocusableEl.focus();
384
- }
385
- else {
386
- this.$refs.focusInput.focus();
495
+
496
+ DomHandler.focus(firstFocusableEl);
497
+ } else {
498
+ DomHandler.focus(this.$refs.focusInput);
387
499
  }
388
500
  },
389
501
  onLastHiddenFocus() {
390
- this.$refs.firstHiddenFocusableElementOnOverlay.focus();
502
+ DomHandler.focus(this.$refs.firstHiddenFocusableElementOnOverlay);
391
503
  },
392
- onOptionSelect(event, option) {
504
+ onOptionSelect(event, option, isHide = true) {
393
505
  const value = this.getOptionValue(option);
394
506
 
395
507
  this.updateModel(event, value);
396
- this.hide(true);
508
+ isHide && this.hide(true);
397
509
  },
398
510
  onOptionMouseMove(event, index) {
399
511
  if (this.focusOnHover) {
@@ -488,8 +600,7 @@ export default {
488
600
 
489
601
  this.overlayVisible && this.hide();
490
602
  event.preventDefault();
491
- }
492
- else {
603
+ } else {
493
604
  const optionIndex = this.focusedOptionIndex !== -1 ? this.findPrevOptionIndex(this.focusedOptionIndex) : this.findLastFocusedOptionIndex();
494
605
 
495
606
  this.changeFocusedOptionIndex(event, optionIndex);
@@ -505,8 +616,7 @@ export default {
505
616
  if (pressedInInputText) {
506
617
  event.currentTarget.setSelectionRange(0, 0);
507
618
  this.focusedOptionIndex = -1;
508
- }
509
- else {
619
+ } else {
510
620
  this.changeFocusedOptionIndex(event, this.findFirstOptionIndex());
511
621
 
512
622
  !this.overlayVisible && this.show();
@@ -518,10 +628,10 @@ export default {
518
628
  if (pressedInInputText) {
519
629
  const target = event.currentTarget;
520
630
  const len = target.value.length;
631
+
521
632
  target.setSelectionRange(len, len);
522
633
  this.focusedOptionIndex = -1;
523
- }
524
- else {
634
+ } else {
525
635
  this.changeFocusedOptionIndex(event, this.findLastOptionIndex());
526
636
 
527
637
  !this.overlayVisible && this.show();
@@ -540,8 +650,7 @@ export default {
540
650
  onEnterKey(event) {
541
651
  if (!this.overlayVisible) {
542
652
  this.onArrowDownKey(event);
543
- }
544
- else {
653
+ } else {
545
654
  if (this.focusedOptionIndex !== -1) {
546
655
  this.onOptionSelect(event, this.visibleOptions[this.focusedOptionIndex]);
547
656
  }
@@ -561,11 +670,10 @@ export default {
561
670
  onTabKey(event, pressedInInputText = false) {
562
671
  if (!pressedInInputText) {
563
672
  if (this.overlayVisible && this.hasFocusableElements()) {
564
- this.$refs.firstHiddenFocusableElementOnOverlay.focus();
673
+ DomHandler.focus(this.$refs.firstHiddenFocusableElementOnOverlay);
565
674
 
566
675
  event.preventDefault();
567
- }
568
- else {
676
+ } else {
569
677
  if (this.focusedOptionIndex !== -1) {
570
678
  this.onOptionSelect(event, this.visibleOptions[this.focusedOptionIndex]);
571
679
  }
@@ -583,6 +691,8 @@ export default {
583
691
  ZIndexUtils.set('overlay', el, this.$primevue.config.zIndex.overlay);
584
692
  this.alignOverlay();
585
693
  this.scrollInView();
694
+
695
+ this.autoFilterFocus && DomHandler.focus(this.$refs.filterInput);
586
696
  },
587
697
  onOverlayAfterEnter() {
588
698
  this.bindOutsideClickListener();
@@ -605,8 +715,7 @@ export default {
605
715
  alignOverlay() {
606
716
  if (this.appendTo === 'self') {
607
717
  DomHandler.relativePosition(this.overlay, this.$el);
608
- }
609
- else {
718
+ } else {
610
719
  this.overlay.style.minWidth = DomHandler.getOuterWidth(this.$el) + 'px';
611
720
  DomHandler.absolutePosition(this.overlay, this.$el);
612
721
  }
@@ -618,6 +727,7 @@ export default {
618
727
  this.hide();
619
728
  }
620
729
  };
730
+
621
731
  document.addEventListener('click', this.outsideClickListener);
622
732
  }
623
733
  },
@@ -650,6 +760,7 @@ export default {
650
760
  this.hide();
651
761
  }
652
762
  };
763
+
653
764
  window.addEventListener('resize', this.resizeListener);
654
765
  }
655
766
  },
@@ -675,28 +786,32 @@ export default {
675
786
  return ObjectUtils.equals(this.modelValue, this.getOptionValue(option), this.equalityKey);
676
787
  },
677
788
  findFirstOptionIndex() {
678
- return this.visibleOptions.findIndex(option => this.isValidOption(option));
789
+ return this.visibleOptions.findIndex((option) => this.isValidOption(option));
679
790
  },
680
791
  findLastOptionIndex() {
681
- return ObjectUtils.findLastIndex(this.visibleOptions, option => this.isValidOption(option));
792
+ return ObjectUtils.findLastIndex(this.visibleOptions, (option) => this.isValidOption(option));
682
793
  },
683
794
  findNextOptionIndex(index) {
684
- const matchedOptionIndex = index < (this.visibleOptions.length - 1) ? this.visibleOptions.slice(index + 1).findIndex(option => this.isValidOption(option)) : -1;
795
+ const matchedOptionIndex = index < this.visibleOptions.length - 1 ? this.visibleOptions.slice(index + 1).findIndex((option) => this.isValidOption(option)) : -1;
796
+
685
797
  return matchedOptionIndex > -1 ? matchedOptionIndex + index + 1 : index;
686
798
  },
687
799
  findPrevOptionIndex(index) {
688
- const matchedOptionIndex = index > 0 ? ObjectUtils.findLastIndex(this.visibleOptions.slice(0, index), option => this.isValidOption(option)) : -1;
800
+ const matchedOptionIndex = index > 0 ? ObjectUtils.findLastIndex(this.visibleOptions.slice(0, index), (option) => this.isValidOption(option)) : -1;
801
+
689
802
  return matchedOptionIndex > -1 ? matchedOptionIndex : index;
690
803
  },
691
804
  findSelectedOptionIndex() {
692
- return this.hasSelectedOption ? this.visibleOptions.findIndex(option => this.isValidSelectedOption(option)) : -1;
805
+ return this.hasSelectedOption ? this.visibleOptions.findIndex((option) => this.isValidSelectedOption(option)) : -1;
693
806
  },
694
807
  findFirstFocusedOptionIndex() {
695
808
  const selectedIndex = this.findSelectedOptionIndex();
809
+
696
810
  return selectedIndex < 0 ? this.findFirstOptionIndex() : selectedIndex;
697
811
  },
698
812
  findLastFocusedOptionIndex() {
699
813
  const selectedIndex = this.findSelectedOptionIndex();
814
+
700
815
  return selectedIndex < 0 ? this.findLastOptionIndex() : selectedIndex;
701
816
  },
702
817
  searchOptions(event, char) {
@@ -706,11 +821,10 @@ export default {
706
821
  let matched = false;
707
822
 
708
823
  if (this.focusedOptionIndex !== -1) {
709
- optionIndex = this.visibleOptions.slice(this.focusedOptionIndex).findIndex(option => this.isOptionMatched(option));
710
- optionIndex = optionIndex === -1 ? this.visibleOptions.slice(0, this.focusedOptionIndex).findIndex(option => this.isOptionMatched(option)) : optionIndex + this.focusedOptionIndex;
711
- }
712
- else {
713
- optionIndex = this.visibleOptions.findIndex(option => this.isOptionMatched(option));
824
+ optionIndex = this.visibleOptions.slice(this.focusedOptionIndex).findIndex((option) => this.isOptionMatched(option));
825
+ optionIndex = optionIndex === -1 ? this.visibleOptions.slice(0, this.focusedOptionIndex).findIndex((option) => this.isOptionMatched(option)) : optionIndex + this.focusedOptionIndex;
826
+ } else {
827
+ optionIndex = this.visibleOptions.findIndex((option) => this.isOptionMatched(option));
714
828
  }
715
829
 
716
830
  if (optionIndex !== -1) {
@@ -742,17 +856,17 @@ export default {
742
856
  this.scrollInView();
743
857
 
744
858
  if (this.selectOnFocus) {
745
- this.updateModel(event, this.getOptionValue(this.visibleOptions[index]));
859
+ this.onOptionSelect(event, this.visibleOptions[index], false);
746
860
  }
747
861
  }
748
862
  },
749
863
  scrollInView(index = -1) {
750
864
  const id = index !== -1 ? `${this.id}_${index}` : this.focusedOptionId;
751
865
  const element = DomHandler.findSingle(this.list, `li[id="${id}"]`);
866
+
752
867
  if (element) {
753
868
  element.scrollIntoView && element.scrollIntoView({ block: 'nearest', inline: 'start' });
754
- }
755
- else if (!this.virtualScrollerDisabled) {
869
+ } else if (!this.virtualScrollerDisabled) {
756
870
  setTimeout(() => {
757
871
  this.virtualScroller && this.virtualScroller.scrollToIndex(index !== -1 ? index : this.focusedOptionIndex);
758
872
  }, 0);
@@ -761,8 +875,7 @@ export default {
761
875
  autoUpdateModel() {
762
876
  if (this.selectOnFocus && this.autoOptionFocus && !this.hasSelectedOption) {
763
877
  this.focusedOptionIndex = this.findFirstFocusedOptionIndex();
764
- const value = this.getOptionValue(this.visibleOptions[this.focusedOptionIndex]);
765
- this.updateModel(null, value);
878
+ this.onOptionSelect(null, this.visibleOptions[this.focusedOptionIndex], false);
766
879
  }
767
880
  },
768
881
  updateModel(event, value) {
@@ -774,7 +887,8 @@ export default {
774
887
  result.push({ optionGroup: option, group: true, index });
775
888
 
776
889
  const optionGroupChildren = this.getOptionGroupChildren(option);
777
- optionGroupChildren && optionGroupChildren.forEach(o => result.push(o));
890
+
891
+ optionGroupChildren && optionGroupChildren.forEach((o) => result.push(o));
778
892
 
779
893
  return result;
780
894
  }, []);
@@ -792,32 +906,43 @@ export default {
792
906
  },
793
907
  computed: {
794
908
  containerClass() {
795
- return ['p-dropdown p-component p-inputwrapper', {
796
- 'p-disabled': this.disabled,
797
- 'p-dropdown-clearable': this.showClear && !this.disabled,
798
- 'p-focus': this.focused,
799
- 'p-inputwrapper-filled': this.modelValue,
800
- 'p-inputwrapper-focus': this.focused || this.overlayVisible,
801
- 'p-overlay-open': this.overlayVisible
802
- }];
909
+ return [
910
+ 'p-dropdown p-component p-inputwrapper',
911
+ {
912
+ 'p-disabled': this.disabled,
913
+ 'p-dropdown-clearable': this.showClear && !this.disabled,
914
+ 'p-focus': this.focused,
915
+ 'p-inputwrapper-filled': this.modelValue,
916
+ 'p-inputwrapper-focus': this.focused || this.overlayVisible,
917
+ 'p-overlay-open': this.overlayVisible
918
+ }
919
+ ];
803
920
  },
804
921
  inputStyleClass() {
805
- return ['p-dropdown-label p-inputtext', this.inputClass, {
806
- 'p-placeholder': !this.editable && this.label === this.placeholder,
807
- 'p-dropdown-label-empty': !this.editable && !this.$slots['value'] && (this.label === 'p-emptylabel' || this.label.length === 0)
808
- }];
922
+ return [
923
+ 'p-dropdown-label p-inputtext',
924
+ this.inputClass,
925
+ {
926
+ 'p-placeholder': !this.editable && this.label === this.placeholder,
927
+ 'p-dropdown-label-empty': !this.editable && !this.$slots['value'] && (this.label === 'p-emptylabel' || this.label.length === 0)
928
+ }
929
+ ];
809
930
  },
810
931
  panelStyleClass() {
811
- return ['p-dropdown-panel p-component', this.panelClass, {
812
- 'p-input-filled': this.$primevue.config.inputStyle === 'filled',
813
- 'p-ripple-disabled': this.$primevue.config.ripple === false
814
- }];
932
+ return [
933
+ 'p-dropdown-panel p-component',
934
+ this.panelClass,
935
+ {
936
+ 'p-input-filled': this.$primevue.config.inputStyle === 'filled',
937
+ 'p-ripple-disabled': this.$primevue.config.ripple === false
938
+ }
939
+ ];
815
940
  },
816
941
  dropdownIconClass() {
817
- return ['p-dropdown-trigger-icon', (this.loading ? this.loadingIcon : 'pi pi-chevron-down')];
942
+ return ['p-dropdown-trigger-icon', this.loading ? this.loadingIcon : 'pi pi-chevron-down'];
818
943
  },
819
944
  visibleOptions() {
820
- const options = this.optionGroupLabel ? this.flatOptions(this.options) : (this.options || []);
945
+ const options = this.optionGroupLabel ? this.flatOptions(this.options) : this.options || [];
821
946
 
822
947
  return this.filterValue ? FilterService.filter(options, this.searchFields, this.filterValue, this.filterMatchMode, this.filterLocale) : options;
823
948
  },
@@ -826,11 +951,13 @@ export default {
826
951
  },
827
952
  label() {
828
953
  const selectedOptionIndex = this.findSelectedOptionIndex();
829
- return selectedOptionIndex !== -1 ? this.getOptionLabel(this.visibleOptions[selectedOptionIndex]) : (this.placeholder || 'p-emptylabel');
954
+
955
+ return selectedOptionIndex !== -1 ? this.getOptionLabel(this.visibleOptions[selectedOptionIndex]) : this.placeholder || 'p-emptylabel';
830
956
  },
831
957
  editableInputValue() {
832
958
  const selectedOptionIndex = this.findSelectedOptionIndex();
833
- return selectedOptionIndex !== -1 ? this.getOptionLabel(this.visibleOptions[selectedOptionIndex]) : (this.modelValue || '');
959
+
960
+ return selectedOptionIndex !== -1 ? this.getOptionLabel(this.visibleOptions[selectedOptionIndex]) : this.modelValue || '';
834
961
  },
835
962
  equalityKey() {
836
963
  return this.optionValue ? null : this.dataKey;
@@ -859,24 +986,27 @@ export default {
859
986
  selectedMessageText() {
860
987
  return this.hasSelectedOption ? this.selectionMessageText.replaceAll('{0}', '1') : this.emptySelectionMessageText;
861
988
  },
989
+ id() {
990
+ return this.$attrs.id || UniqueComponentId();
991
+ },
862
992
  focusedOptionId() {
863
993
  return this.focusedOptionIndex !== -1 ? `${this.id}_${this.focusedOptionIndex}` : null;
864
994
  },
865
995
  ariaSetSize() {
866
- return this.visibleOptions.filter(option => !this.isOptionGroup(option)).length;
996
+ return this.visibleOptions.filter((option) => !this.isOptionGroup(option)).length;
867
997
  },
868
998
  virtualScrollerDisabled() {
869
999
  return !this.virtualScrollerOptions;
870
1000
  }
871
1001
  },
872
1002
  directives: {
873
- 'ripple': Ripple
1003
+ ripple: Ripple
874
1004
  },
875
1005
  components: {
876
- 'VirtualScroller': VirtualScroller,
877
- 'Portal': Portal
1006
+ VirtualScroller: VirtualScroller,
1007
+ Portal: Portal
878
1008
  }
879
- }
1009
+ };
880
1010
  </script>
881
1011
 
882
1012
  <style>
@@ -890,7 +1020,7 @@ export default {
890
1020
  .p-dropdown-clear-icon {
891
1021
  position: absolute;
892
1022
  top: 50%;
893
- margin-top: -.5rem;
1023
+ margin-top: -0.5rem;
894
1024
  }
895
1025
 
896
1026
  .p-dropdown-trigger {
@@ -915,7 +1045,7 @@ export default {
915
1045
  opacity: 0;
916
1046
  }
917
1047
 
918
- input.p-dropdown-label {
1048
+ input.p-dropdown-label {
919
1049
  cursor: default;
920
1050
  }
921
1051
 
@@ -962,7 +1092,7 @@ input.p-dropdown-label {
962
1092
  .p-dropdown-filter-icon {
963
1093
  position: absolute;
964
1094
  top: 50%;
965
- margin-top: -.5rem;
1095
+ margin-top: -0.5rem;
966
1096
  }
967
1097
 
968
1098
  .p-fluid .p-dropdown {